summaryrefslogtreecommitdiff
path: root/graphics
diff options
context:
space:
mode:
Diffstat (limited to 'graphics')
-rw-r--r--graphics/circuit_macros/CHANGES6
-rw-r--r--graphics/circuit_macros/Copying2
-rw-r--r--graphics/circuit_macros/README120
-rw-r--r--graphics/circuit_macros/darrow.m42
-rw-r--r--graphics/circuit_macros/doc/AlogixMan.m42
-rw-r--r--graphics/circuit_macros/doc/AmpTableMan.m428
-rw-r--r--graphics/circuit_macros/doc/Circuit_macros.pdfbin1086791 -> 1135017 bytes
-rw-r--r--graphics/circuit_macros/doc/Circuit_macros.tex3
-rw-r--r--graphics/circuit_macros/doc/FF.m412
-rw-r--r--graphics/circuit_macros/doc/Makefile15
-rw-r--r--graphics/circuit_macros/doc/QTrans.m45
-rw-r--r--graphics/circuit_macros/doc/ResistorsMan.m430
-rw-r--r--graphics/circuit_macros/doc/SourcesMan.m423
-rw-r--r--graphics/circuit_macros/doc/Taps.m42
-rw-r--r--graphics/circuit_macros/doc/Version.tex2
-rw-r--r--graphics/circuit_macros/doc/body.tex94
-rw-r--r--graphics/circuit_macros/doc/defines.tex657
-rw-r--r--graphics/circuit_macros/doc/quick.m412
-rw-r--r--graphics/circuit_macros/doc/relaycoilMan.m460
-rw-r--r--graphics/circuit_macros/dpictools.pic79
-rw-r--r--graphics/circuit_macros/examples/Alogix.m412
-rw-r--r--graphics/circuit_macros/examples/AmpTable.m428
-rw-r--r--graphics/circuit_macros/examples/Buttons.m432
-rw-r--r--graphics/circuit_macros/examples/Chips.m47
-rw-r--r--graphics/circuit_macros/examples/Consumption.m412
-rw-r--r--graphics/circuit_macros/examples/Dini.m457
-rw-r--r--graphics/circuit_macros/examples/EVplugs.m482
-rw-r--r--graphics/circuit_macros/examples/Fuses.m42
-rw-r--r--graphics/circuit_macros/examples/Geometry.m42
-rw-r--r--graphics/circuit_macros/examples/Incleps.m43
-rw-r--r--graphics/circuit_macros/examples/Makefile44
-rw-r--r--graphics/circuit_macros/examples/MoreTable.m42
-rw-r--r--graphics/circuit_macros/examples/Quantum.m423
-rw-r--r--graphics/circuit_macros/examples/Resistors.m430
-rw-r--r--graphics/circuit_macros/examples/SQUID.m422
-rw-r--r--graphics/circuit_macros/examples/Sevensegment.m482
-rw-r--r--graphics/circuit_macros/examples/Shadowed.m4 (renamed from graphics/circuit_macros/examples/shadowed.m4)13
-rw-r--r--graphics/circuit_macros/examples/Sources.m422
-rw-r--r--graphics/circuit_macros/examples/Switches.m42
-rw-r--r--graphics/circuit_macros/examples/cbresistor.m480
-rw-r--r--graphics/circuit_macros/examples/dpv/AmpTableDPV.m425
-rw-r--r--graphics/circuit_macros/examples/dpv/DiniDPV.m458
-rw-r--r--graphics/circuit_macros/examples/dpv/EVplugsDPV.m482
-rw-r--r--graphics/circuit_macros/examples/dpv/GeometryDPV.m42
-rw-r--r--graphics/circuit_macros/examples/dpv/Makefile22
-rw-r--r--graphics/circuit_macros/examples/dpv/QuantumDPV.m423
-rw-r--r--graphics/circuit_macros/examples/dpv/ResistorsDPV.m435
-rw-r--r--graphics/circuit_macros/examples/dpv/SQUIDDPV.m419
-rw-r--r--graphics/circuit_macros/examples/dpv/SevensegmentDPV.m482
-rw-r--r--graphics/circuit_macros/examples/dpv/SourcesDPV.m440
-rw-r--r--graphics/circuit_macros/examples/dpv/Spec555DPV.m457
-rw-r--r--graphics/circuit_macros/examples/dpv/cbresistorDPV.m482
-rw-r--r--graphics/circuit_macros/examples/dpv/ex00DPV.m494
-rw-r--r--graphics/circuit_macros/examples/dpv/examplesDPV.htmx43
-rw-r--r--graphics/circuit_macros/examples/dpv/examplesDPVs.htmx33
-rw-r--r--graphics/circuit_macros/examples/dpv/quickDPV.m410
-rw-r--r--graphics/circuit_macros/examples/dpv/relaycoilDPV.m432
-rw-r--r--graphics/circuit_macros/examples/ex00.m491
-rw-r--r--graphics/circuit_macros/examples/examples.pdfbin1917517 -> 1936421 bytes
-rw-r--r--graphics/circuit_macros/examples/extras/Ant.m430
-rw-r--r--graphics/circuit_macros/examples/extras/Asymptotes.m493
-rw-r--r--graphics/circuit_macros/examples/extras/Birds.m4 (renamed from graphics/circuit_macros/examples/extras/birds.m4)0
-rw-r--r--graphics/circuit_macros/examples/extras/Bistable.m4 (renamed from graphics/circuit_macros/examples/extras/bistable.m4)0
-rw-r--r--graphics/circuit_macros/examples/extras/Brace.m4 (renamed from graphics/circuit_macros/examples/extras/brace.m4)0
-rw-r--r--graphics/circuit_macros/examples/extras/Ccurve.m414
-rw-r--r--graphics/circuit_macros/examples/extras/Chaos.m4 (renamed from graphics/circuit_macros/examples/extras/chaos.m4)0
-rw-r--r--graphics/circuit_macros/examples/extras/Chuck.m46
-rw-r--r--graphics/circuit_macros/examples/extras/ClassDAmp.m46
-rw-r--r--graphics/circuit_macros/examples/extras/Cruller.m467
-rw-r--r--graphics/circuit_macros/examples/extras/Cylinder.m443
-rw-r--r--graphics/circuit_macros/examples/extras/HSV.m4 (renamed from graphics/circuit_macros/examples/extras/hsv.m4)0
-rw-r--r--graphics/circuit_macros/examples/extras/Highgain.m410
-rw-r--r--graphics/circuit_macros/examples/extras/Koch.m433
-rw-r--r--graphics/circuit_macros/examples/extras/Makefile44
-rw-r--r--graphics/circuit_macros/examples/extras/Parallel-series.m415
-rw-r--r--graphics/circuit_macros/examples/extras/Person.m4 (renamed from graphics/circuit_macros/examples/extras/person.m4)0
-rw-r--r--graphics/circuit_macros/examples/extras/README_extras2
-rw-r--r--graphics/circuit_macros/examples/extras/Rotellipse.m4 (renamed from graphics/circuit_macros/examples/extras/rotellipse.m4)0
-rw-r--r--graphics/circuit_macros/examples/extras/SampleFlow.m48
-rw-r--r--graphics/circuit_macros/examples/extras/Spec555.m456
-rw-r--r--graphics/circuit_macros/examples/extras/Squiggle.m4 (renamed from graphics/circuit_macros/examples/extras/squiggle.m4)0
-rw-r--r--graphics/circuit_macros/examples/extras/Venus.m4 (renamed from graphics/circuit_macros/examples/extras/venus.m4)0
-rw-r--r--graphics/circuit_macros/examples/extras/ex17.m4 (renamed from graphics/circuit_macros/examples/ex17.m4)0
-rw-r--r--graphics/circuit_macros/examples/files.tex53
-rw-r--r--graphics/circuit_macros/examples/ics.m449
-rw-r--r--graphics/circuit_macros/examples/keyboard.m48
-rw-r--r--graphics/circuit_macros/examples/mf/cct.mf64
-rw-r--r--graphics/circuit_macros/examples/quick.m412
-rw-r--r--graphics/circuit_macros/examples/relaycoil.m414
-rw-r--r--graphics/circuit_macros/examples/xfig/xfiglib.fig8
-rw-r--r--graphics/circuit_macros/gpic.m42
-rw-r--r--graphics/circuit_macros/lib3D.m428
-rw-r--r--graphics/circuit_macros/libSLD.m42
-rw-r--r--graphics/circuit_macros/libcct.m4499
-rw-r--r--graphics/circuit_macros/libgen.m4141
-rw-r--r--graphics/circuit_macros/liblog.m42
-rw-r--r--graphics/circuit_macros/mfpic.m42
-rw-r--r--graphics/circuit_macros/mpost.m42
-rw-r--r--graphics/circuit_macros/pdf.m42
-rw-r--r--graphics/circuit_macros/pgf.m42
-rw-r--r--graphics/circuit_macros/postscript.m42
-rw-r--r--graphics/circuit_macros/psfrag.m42
-rw-r--r--graphics/circuit_macros/pstricks.m42
-rw-r--r--graphics/circuit_macros/svg.m42
-rw-r--r--graphics/circuit_macros/xfig.m42
-rw-r--r--graphics/metapost/contrib/macros/mpkiviat/LICENSE11
-rw-r--r--graphics/metapost/contrib/macros/mpkiviat/README.md18
-rw-r--r--graphics/metapost/contrib/macros/mpkiviat/doc/ctan.bib72
-rw-r--r--graphics/metapost/contrib/macros/mpkiviat/doc/fond.pdfbin0 -> 1309 bytes
-rw-r--r--graphics/metapost/contrib/macros/mpkiviat/doc/mpkiviat-doc.pdfbin0 -> 108472 bytes
-rw-r--r--graphics/metapost/contrib/macros/mpkiviat/doc/mpkiviat-doc.tex571
-rw-r--r--graphics/metapost/contrib/macros/mpkiviat/doc/test-2.pdfbin0 -> 3530 bytes
-rw-r--r--graphics/metapost/contrib/macros/mpkiviat/metapost/mpkiviat.mp318
-rw-r--r--graphics/pgf/contrib/circuitikz/README.md4
-rw-r--r--graphics/pgf/contrib/circuitikz/doc/changelog.tex62
-rw-r--r--graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdfbin13460 -> 13867 bytes
-rw-r--r--graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdfbin1761778 -> 2431321 bytes
-rw-r--r--graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex189
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/circuitikz.sty4
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex318
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/pgfcirctripoles.tex226
-rw-r--r--graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex4
-rw-r--r--graphics/pgf/contrib/liftarm/README.md12
-rw-r--r--graphics/pgf/contrib/liftarm/liftarm.pdfbin2004786 -> 2192283 bytes
-rw-r--r--graphics/pgf/contrib/liftarm/liftarm.sty1208
-rw-r--r--graphics/pgf/contrib/liftarm/liftarm.tex689
-rw-r--r--graphics/pgf/contrib/profsio/doc/ProfSio-doc-annexe71.pdfbin0 -> 17705 bytes
-rw-r--r--graphics/pgf/contrib/profsio/doc/ProfSio-doc-annexe71.tex18
-rw-r--r--graphics/pgf/contrib/profsio/doc/ProfSio-doc-annexe72.pdfbin0 -> 25368 bytes
-rw-r--r--graphics/pgf/contrib/profsio/doc/ProfSio-doc-annexe72.tex19
-rw-r--r--graphics/pgf/contrib/profsio/doc/ProfSio-doc-annexe73.pdfbin0 -> 23829 bytes
-rw-r--r--graphics/pgf/contrib/profsio/doc/ProfSio-doc-annexe73.tex19
-rw-r--r--graphics/pgf/contrib/profsio/doc/ProfSio-doc-fr.pdfbin498503 -> 570243 bytes
-rw-r--r--graphics/pgf/contrib/profsio/doc/ProfSio-doc-fr.tex102
-rw-r--r--graphics/pgf/contrib/profsio/tex/ProfSio.sty321
-rw-r--r--graphics/pgf/contrib/spath3/README.txt (renamed from graphics/pgf/contrib/spath3/README)2
-rw-r--r--graphics/pgf/contrib/spath3/spath3.pdfbin441114 -> 446012 bytes
-rw-r--r--graphics/pgf/contrib/spath3/spath3.tex63
-rw-r--r--graphics/pgf/contrib/spath3/spath3_code.dtx127
-rw-r--r--graphics/pgf/contrib/spath3/spath3_code.pdfbin833596 -> 840527 bytes
-rw-r--r--graphics/pgf/contrib/tkz-grapheur/README.md7
-rw-r--r--graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-doc-fr.pdfbin0 -> 724065 bytes
-rw-r--r--graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-doc-fr.tex1535
-rw-r--r--graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-exemples-integrales.pdfbin0 -> 141384 bytes
-rw-r--r--graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-exemples-integrales.tex251
-rw-r--r--graphics/pgf/contrib/tkz-grapheur/tex/tkz-grapheur.sty1679
-rw-r--r--graphics/pstricks/contrib/pst-mirror/Changes1
-rw-r--r--graphics/pstricks/contrib/pst-mirror/README3
-rw-r--r--graphics/pstricks/contrib/pst-mirror/doc/createEPS/test.pdfbin27939 -> 328729 bytes
-rw-r--r--graphics/pstricks/contrib/pst-mirror/doc/createEPS/test.tex10
-rw-r--r--graphics/pstricks/contrib/pst-mirror/doc/createEPS/tiger-b.eps7102
-rw-r--r--graphics/pstricks/contrib/pst-mirror/doc/createEPS/tiger-c.eps7101
-rw-r--r--graphics/pstricks/contrib/pst-mirror/doc/createEPS/tiger.eps2746
-rw-r--r--graphics/pstricks/contrib/pst-mirror/doc/createEPS/xb.pdfbin0 -> 2445 bytes
-rw-r--r--graphics/pstricks/contrib/pst-mirror/doc/createEPS/xc.pdfbin0 -> 4597 bytes
-rw-r--r--graphics/pstricks/contrib/pst-mirror/doc/pst-mirror-doc.pdfbin7092245 -> 7210837 bytes
-rw-r--r--graphics/pstricks/contrib/pst-mirror/doc/pst-mirror-doc.tex10
-rw-r--r--graphics/pstricks/contrib/pst-mirror/tex/pst-mirror.tex6
-rw-r--r--graphics/pstricks/contrib/pst-optic/Changes1
-rw-r--r--graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.bib11
-rw-r--r--graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.pdfbin463729 -> 516250 bytes
-rw-r--r--graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.tex52
-rw-r--r--graphics/pstricks/contrib/pst-optic/tex/pst-optic.tex20
163 files changed, 26186 insertions, 2594 deletions
diff --git a/graphics/circuit_macros/CHANGES b/graphics/circuit_macros/CHANGES
index 020a7de9e7..efb7f7a0e7 100644
--- a/graphics/circuit_macros/CHANGES
+++ b/graphics/circuit_macros/CHANGES
@@ -1,8 +1,12 @@
CHANGES
+Version 10.6: New macro geiger. Corrected dpv .txt files.
+ Tweaked macros ColoredV, ShadeObject, ebox, shadowed, shadedball, addtaps.
+ Options for macros delay, resistor, source, relaycoil. List of macros
+ reformatted in the manual.
Version 10.5: Options for numersous element macros: sfgarc, sfgline,
sfgself, LCintersect, LEintersect, and others. Systematic facilities
- for Filling and customizing element bodies. New macros ColoredV,
+ for filling and customizing element bodies. New macros ColoredV,
cangle, definergbcolor. Added dpictools.pic macros to the manual.
Removed obsolete macros. Edits of the manual.
Version 10.4: New options for source, sarrow, darrow routines.
diff --git a/graphics/circuit_macros/Copying b/graphics/circuit_macros/Copying
index 2e951040b8..7ec3b487d5 100644
--- a/graphics/circuit_macros/Copying
+++ b/graphics/circuit_macros/Copying
@@ -1,4 +1,4 @@
-* Circuit_macros Version 10.5, copyright (c) 2024 J. D. Aplevich under *
+* Circuit_macros Version 10.6, copyright (c) 2024 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/README b/graphics/circuit_macros/README
index a9f7f75c86..708d190f89 100644
--- a/graphics/circuit_macros/README
+++ b/graphics/circuit_macros/README
@@ -1,5 +1,5 @@
-* Circuit_macros Version 10.5, copyright (c) 2024 J. D. Aplevich under *
+* Circuit_macros Version 10.6, copyright (c) 2024 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
@@ -17,14 +17,15 @@
and non-WYSIWYG. Graphical interfaces are available for specific
operating systems.
- The macros are to be processed by an m4 macro processor, and evaluate to
- drawing commands in the pic "little language," which is easy to read and
- learn. The diagram is then automatically translated into TiKZ, PSTricks,
- or other formats for processing by LaTeX or other applications. Pic
- is well suited to line drawings requiring parametric or conditional
- components, fine adjustment, geometric calculations, repetition, or
- recursion. Arbitrary text for formatting by LaTeX can be included.
- Free interpreters for m4 and pic are readily available.
+ The macros are to be processed by an m4 macro processor, and evaluate
+ to drawing commands in the pic "little language," which is easy to
+ read and learn. The diagram is then automatically translated into
+ TiKZ, PSTricks, or other formats for processing by LaTeX or other
+ applications. Pic is well suited to line drawings requiring parametric
+ or conditional components, fine adjustment, geometric calculations
+ (it is Turing complete), repetition, or recursion. Arbitrary text
+ for formatting by LaTeX can be included. Free interpreters for m4
+ and pic are readily available.
Sources are available as a git repository at
https://gitlab.com/aplevich/Circuit_macros
@@ -110,14 +111,14 @@ USAGE
m4 gpic.m4 cct.m4 | gpic -t > cct.tex
- The basic commands given above suffice for documents of moderate
- size and complexity; otherwise, a "make" facility or equivalent should
- be used or, for modest documents, diagram processing can be controlled
+ The basic commands given above suffice for documents of moderate size
+ and complexity; otherwise, a "make" facility or equivalent should be
+ used or, for modest documents, diagram processing can be controlled
from within the tex document source as described in the manual. For
- near-immediate viewing of the basic process, three windows can be kept
- open: one in which to edit the source, one to process the source and
- produce postscript or pdf, and a viewer such as GSview 5.0, which updates
- when clicked.
+ near-immediate viewing of the results, three windows can be kept open:
+ one in which to edit the source, one to process the source and produce
+ postscript or pdf, and a viewer such as gv or GSview 5.0. A window
+ displaying the manual is also useful for composing a significant diagram.
INSTALLATION AND TESTING: See the INSTALL file.
@@ -148,7 +149,7 @@ DPIC:
Several Linux distributions will install dpic by command but the version
may not be the latest. A git repository containing complete source is at
https://gitlab.com/aplevich/dpic
- and source plus a Windows executable can be obtaied from
+ and source plus a Windows executable can be obtained from
http://ece.uwaterloo.ca/~aplevich/dpic/
The best advice is to obtain the newest version.
@@ -176,23 +177,24 @@ SVG output, Inkscape:
SVG is the native file format for the Inkscape graphics editor.
Therefore, elements defined by these macros can be output by dpic -v in
- svg format for later manipulation by Inkscape. A very basic palette of
- circuit elements for Inkscape is found in examples/paletteSVG.m4.
- In the examples subdirectory, type "make paletteSVG.svg", read the resulting
- file into Inkscape, and then ungroup the elements as desired. You would
- probably wish to add to or customize these elements for extensive use.
+ svg format for later manipulation by Inkscape. A basic palette of
+ circuit elements for Inkscape is found in examples/dpv/palettePDV.m4.
+ In the examples/dpv subdirectory, type "make paletteDPV.svg", read
+ the resulting file into Inkscape, and then ungroup the elements as
+ desired. You would probably wish to add to or customize these elements
+ for extensive use.
EXAMPLES
- A set of examples is included in this distribution, showing electric
- circuits, block diagrams, flow charts, signal-flow graphs, basic
- use of colour and fill, and other applications. Some of the examples
+ Numerous examples are included in this distribution, showing electric
+ circuits, block diagrams, flow charts, signal-flow graphs, basic use
+ of colour and fill, and other applications. Some of the examples
test the boundaries of the domain of application of dpic with m4
- macros. Read the manual Circuit_macros.pdf and view examples.pdf
- in the examples directory or make and view the html file in the
- examples/svg directory. For the curious, there are additional source
- files in the examples directory that are not shown in examples.pdf.
- Try http://ece.uwaterloo.ca/~aplevich/Circuit_macros/
- for the possibly unstable development version of these macros.
+ macros. Read the manual Circuit_macros.pdf and view examples.pdf in the
+ examples directory or make and view the html file in the examples/dpv
+ directory. For the curious, there are additional source files in
+ the examples/extras directory that are not shown in examples.pdf.
+ Try http://ece.uwaterloo.ca/~aplevich/Circuit_macros/ for the possibly
+ unstable development version of these macros.
The examples directory Makefile automates the generation of .ps, .eps,
.png, and .pdf files for individual diagrams. Subdirectories of the
@@ -220,10 +222,10 @@ INTEGRATION WITH OTHER TOOLS:
representative but keep in mind that systems and installations evolve
over time:
- A Python-based GUI called PyCirkuit is
- at https://pypi.org/project/pycirkuit/ and
- https://github.com/orestesmas/pycirkuit. For an
- introduction, look at the FOSDEM video by Orestes Mas:
+ A Python-based GUI called PyCirkuit is at
+ https://pypi.org/project/pycirkuit/ and
+ https://github.com/orestesmas/pycirkuit. For an introduction, look at
+ the FOSDEM video by Orestes Mas:
https://archive.fosdem.org/2020/schedule/event/pycirkuit/
A python build-automation tool, m4cm, by Peter Jan Randewijk is at
@@ -242,9 +244,10 @@ INTEGRATION WITH OTHER TOOLS:
https://www.youtube.com/watch?time_continue=53&v=pFRIBvUJHS4
A git repository of a KDE interface by Andrew G. for Linux is at
- https://github.com/ag-ckt/cirkuit/tree/V0.5.0.
+ https://github.com/ag-ckt/cirkuit/tree/V0.5.0 but it seems to be
+ unmaintained.
- Another recent introduction is at
+ A recent elementary introduction to Circuit_macros is at
https://www.root.cz/clanky/publikovanie-elektrickych-schem-a-diagramov-pomocou-circuit-macros/
It is in Czech but Google translate works well.
@@ -254,6 +257,10 @@ INTEGRATION WITH OTHER TOOLS:
A Windows batch file for Circuit_macros is found at
http://someonehasdonethis.blogspot.ca/2012/12/a-solution-for-drawing-circuit-diagrams.html
+ The eschpic package on Github contains macro definitions targeted at
+ IEC-style electrical drawings for industrial and automation purposes:
+ https://github.com/xwhatsit/eschpic
+
Mac users:
Descriptions of Mac installations have been published from time to time;
for example:
@@ -261,17 +268,15 @@ INTEGRATION WITH OTHER TOOLS:
VARIATIONS
Macros such as these will be modified inevitably to suit individual
- needs and taste. They continue to evolve in my own library as I use
- them and as others send comments. No such collection can hope to
- include all possible circuit-related symbols, so you will probably
- find yourself writing your own macros or adapting some of these.
- Be careful to rename modified macros to avoid confusion. The learning
- curve compares well to other packages, but there is no trivially
- easy way to produce high-quality graphics. (If "a picture is worth a
- thousand words," ask yourself how long it would take to write, revise,
- and perfect a thousand words.)
-
- See eschpic on Github for IEC-style electrical drawings.
+ needs and taste. They continue to evolve in my own library as I
+ use them and as others send comments. No such collection can hope to
+ include all possible circuit-related symbols, so you will probably find
+ yourself writing your own macros or adapting some of these. The example
+ files might be a good place to start. Be careful to rename modified
+ macros to avoid confusion. The learning curve compares well to other
+ packages, but there is no trivially easy way to produce high-quality
+ graphics. (If "a picture is worth a thousand words," ask yourself
+ how long it would take to write, revise, and perfect a thousand words.)
The pic language dates from the 1980s and was first developed
as a preprocessor for the *roff family of Unix wordprocessors.
@@ -318,15 +323,16 @@ Xfig:
LIBRARIES:
The file libgen.m4 contains general-purpose macros and is read
- automatically by other libraries. The file libcct.m4 defines basic
- circuit elements. Binary logic-circuit elements are in liblog.m4 and
- additional single-line elements are in libSLD.m4. Macros for drawing 3D
- projections are in lib3D.m4, and some macros for drawing double-line
- arrows are in darrow.m4. The file dpictools.pic contains pic macros
- and is read automatically by some of the examples.
-
-Feel free to contact me with comments or questions. I have retired
-from full-time work but continue the hobby of maintaining these files.
+ automatically by other libraries and the macro gen_init. The file
+ libcct.m4 defines basic circuit elements. Binary logic-circuit
+ elements are in liblog.m4 and additional single-line elements are
+ in libSLD.m4. Macros for drawing 3D projections are in lib3D.m4, and
+ some macros for drawing double-line arrows are in darrow.m4. The file
+ dpictools.pic contains dpic macros and is read automatically by some
+ of the examples.
+
+Feel free to contact me with comments or questions. I have retired from
+full-time professorship but continue the hobby of maintaining these files.
I may now be able to spend more time on individual requests but I may
not reply instantly to email.
diff --git a/graphics/circuit_macros/darrow.m4 b/graphics/circuit_macros/darrow.m4
index 49f8c9a878..da57311215 100644
--- a/graphics/circuit_macros/darrow.m4
+++ b/graphics/circuit_macros/darrow.m4
@@ -1,7 +1,7 @@
divert(-1)
darrow.m4 Macros for double lines and arrows
-* Circuit_macros Version 10.5, copyright (c) 2024 J. D. Aplevich under *
+* Circuit_macros Version 10.6, copyright (c) 2024 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/doc/AlogixMan.m4 b/graphics/circuit_macros/doc/AlogixMan.m4
index b524f555ee..1b51abd477 100644
--- a/graphics/circuit_macros/doc/AlogixMan.m4
+++ b/graphics/circuit_macros/doc/AlogixMan.m4
@@ -20,7 +20,7 @@ A: Autologix(
# replaced by NOT gates.
B: Autologix(Or(And(B,Not(C)),And(Not(A),B,C)),N) \
with .sw at A.e+(0.4,0.25)
- "{\sl Out}" at B.Out above ljust
+ "{\sl B.Out}" at B.Out above ljust
`"\shortstack[l]{\tt B: Autologix( \\ \tt \
Or(And(B,Not(C)),And(Not(A),B,C)),N)}"' \
wid 242pt__ ht 20pt__ at B.s+(0,-0.2)
diff --git a/graphics/circuit_macros/doc/AmpTableMan.m4 b/graphics/circuit_macros/doc/AmpTableMan.m4
index e820f8d1a9..e83bcdbe4a 100644
--- a/graphics/circuit_macros/doc/AmpTableMan.m4
+++ b/graphics/circuit_macros/doc/AmpTableMan.m4
@@ -1,23 +1,25 @@
.PS
# `AmptableMan.m4'
cct_init
+divert(-1)
+
+divert(0)dnl
+
movewid = 2pt__
-{
+{
{amp ; move ; "{\tt `amp'}" ljust}
- move down 0.4; right_
- {amp(,0.3) ; move ; "\tt `amp'(,0.3)" ljust}
- }
move right_ 2.0
-{ {delay(,,fill_(0.9)) ; move ;
- "`\tt\shortstack[l]{delay(,{,}\\ fill\_(0.9))}'" ljust}
- move down 0.4; right_
- {delay(,0.2) ; move ; "{\tt `delay'(,0.2)}" ljust}
- }
-
+ {amp(,5mm__) ; move ; "\tt `amp'(,5mm\_\_)" ljust}
move right_ 2.0
-{ {integrator ; move ; "\tt `integrator'" ljust}
+ {integrator ; move ; "\tt `integrator'" ljust}
+ }
move down 0.5; right_
- {integrator(,0.3) ; move ; "\tt `integrator'(,0.3)" wid 82pt__ ljust}
- }
+{
+ {delay(,,fill_(0.9)) ; move ;
+ "`\tt\shortstack[l]{delay(,{,}\\ fill\_(0.9))}'" ljust}
+ move right_ 2.0
+ {delay(,,type=S;body=shaded "blue!25"); move
+ "{\tt `delay'(,,type=S;}" ljust "{\tt body=shaded \"blue!25\")}" ljust}
+ }
.PE
diff --git a/graphics/circuit_macros/doc/Circuit_macros.pdf b/graphics/circuit_macros/doc/Circuit_macros.pdf
index 85a2703bc7..f20e440b8c 100644
--- a/graphics/circuit_macros/doc/Circuit_macros.pdf
+++ b/graphics/circuit_macros/doc/Circuit_macros.pdf
Binary files differ
diff --git a/graphics/circuit_macros/doc/Circuit_macros.tex b/graphics/circuit_macros/doc/Circuit_macros.tex
index a5529a90f9..9df6ca528d 100644
--- a/graphics/circuit_macros/doc/Circuit_macros.tex
+++ b/graphics/circuit_macros/doc/Circuit_macros.tex
@@ -58,11 +58,10 @@
{\normalfont\normalsize\bfseries%
\let\@@tmp\@svsec\def\@svsec{\llap{\@@tmp}}%
}}
+\makeatother
\renewcommand\contentsname{Contents, \Version}
-\makeatother
-
\hypersetup{
pdflang=English,
unicode=true,
diff --git a/graphics/circuit_macros/doc/FF.m4 b/graphics/circuit_macros/doc/FF.m4
index e8bdafe239..a0725dc29d 100644
--- a/graphics/circuit_macros/doc/FF.m4
+++ b/graphics/circuit_macros/doc/FF.m4
@@ -1,11 +1,11 @@
.PS
# `FF.m4'
log_init
-S: NOR_gate
+Sg: NOR_gate
left_
-R: NOR_gate at S+(0,-L_unit*(AND_ht+1))
- line from S.Out right L_unit*3 then down S.Out.y-R.In2.y then to R.In2
- line from R.Out left L_unit*3 then up S.In2.y-R.Out.y then to S.In2
- line left 4*L_unit from S.In1 ; "$S$sp_" rjust
- line right 4*L_unit from R.In1 ; "sp_$R$" ljust
+Rg: NOR_gate at Sg+(0,-L_unit*(AND_ht+1))
+ line from Sg.Out right L_unit*3 then down Sg.Out.y-Rg.In2.y then to Rg.In2
+ line from Rg.Out left L_unit*3 then up Sg.In2.y-Rg.Out.y then to Sg.In2
+ line left 4*L_unit from Sg.In1 ; "$S$" rjust
+ line right 4*L_unit from Rg.In1 ; "$R$" ljust
.PE
diff --git a/graphics/circuit_macros/doc/Makefile b/graphics/circuit_macros/doc/Makefile
index 0f0a596447..75b244f934 100644
--- a/graphics/circuit_macros/doc/Makefile
+++ b/graphics/circuit_macros/doc/Makefile
@@ -40,6 +40,9 @@ BOXDIMS = AntennasMan.tex bi_trans.tex ConfigA.tex ConfigB.tex ConfigC.tex \
LATEX = latex
LATEX = latex --quiet
+
+BIBTEX=BIBINPUTS=. bibtex
+
M4 = m4 -I $(LIBDIR)
# If M4PATH has been set:
M4 = m4
@@ -90,13 +93,13 @@ $(DOC).ps:
$(DOC).$(SFX): mode.tex citations $(PICTEX)
@printf "\n $(DOC).SFX=$(DOC).$(SFX):\n\n"
- $(LATEX) $(DOC) ; bibtex $(DOC)
+ $(LATEX) $(DOC) ; $(BIBTEX) $(DOC)
-@if grep -s "Warning: Reference " $(DOC).log ; then \
@printf "\n Warning:\n\n" ; \
- $(LATEX) $(DOC) ; bibtex $(DOC) ; \
+ $(LATEX) $(DOC) ; $(BIBTEX) $(DOC) ; \
elif test ! -f $(DOC).$(SFX) ; then\
@printf "\n No file $(DOC).$(SFX)\n\n" ; \
- $(LATEX) $(DOC) ; bibtex $(DOC) ; fi
+ $(LATEX) $(DOC) ; $(BIBTEX) $(DOC) ; fi
ACsymbol.tex DCsymbol.tex:
touch $(DOC).dim
@@ -105,16 +108,16 @@ ACsymbol.tex DCsymbol.tex:
citations: mode.tex $(DOC).bbl $(PICTEX)
@printf "\n citations:\n\n"
- $(LATEX) $(DOC) ; bibtex $(DOC)
+ $(LATEX) $(DOC) ; $(BIBTEX) $(DOC)
touch citations
$(DOC).bbl: $(DOC).bib $(DOC).aux
- bibtex $(DOC)
+ $(BIBTEX) $(DOC)
# $(DOC).aux: mode.tex $(DOCSRC) heading.tex $(VERBATIM) $(PICTEX)
$(DOC).aux: mode.tex $(DOCSRC) $(VERBATIM) $(PICTEX)
@printf "\n $(DOC).aux:\n\n"
- $(LATEX) $(DOC) ; bibtex $(DOC)
+ $(LATEX) $(DOC) ; $(BIBTEX) $(DOC)
rm -f $(BOXDIMS)
make $(BOXDIMS)
diff --git a/graphics/circuit_macros/doc/QTrans.m4 b/graphics/circuit_macros/doc/QTrans.m4
index 1bc3a15a0a..9eb1e0bfd6 100644
--- a/graphics/circuit_macros/doc/QTrans.m4
+++ b/graphics/circuit_macros/doc/QTrans.m4
@@ -2,17 +2,16 @@
#QTrans.m4
cct_init
elen = 0.75
- Origin: Here
Vs: source(up_ elen,S); llabel(-,V_s,+)
resistor(right_ elen); rlabel(,R_s)
dot
- { capacitor(down_ to (Here,Origin))
+ { capacitor(down_ to (Here,Vs.start))
rlabel(+,V,-); llabel(,{1\over{j\omega C}},)
dot }
arrowline(right_ elen*2/3); llabel(,I)
T1: transformer(down_ Vs.len,,6,,4) with .P1 at Here # Place P1
"$T1$" at last [].n above
- line from T1.P2 to Origin
+ line from T1.P2 to Vs.start
line from T1.S1 up_ to (T1.S1,Vs.end) then right_ elen*2/3
resistor(down_ Vs.len); rlabel(,R_L); b_current(I_L,rjust)
line to (T1.S2,Here) then to T1.S2
diff --git a/graphics/circuit_macros/doc/ResistorsMan.m4 b/graphics/circuit_macros/doc/ResistorsMan.m4
index d13795283d..b3a228c5b7 100644
--- a/graphics/circuit_macros/doc/ResistorsMan.m4
+++ b/graphics/circuit_macros/doc/ResistorsMan.m4
@@ -5,36 +5,32 @@ cct_init
movewid = 2 pt__
hm = 2.05
vm = 0.28
-{ {resistor ; move ;"`{\tt resistor}'" ljust}
+{ {A:resistor ; move ;"`{\tt resistor}'" ljust}
move right_ hm
- {resistor(,,Q) ; move ;"`\tt resistor(,{,}Q) '" ljust}
+ {Q:resistor(,5,Q) ; move ;"`\tt $\ldots$(,5{,}Q) '" ljust}
move right_ hm
- {resistor(,,V) ; move ;"`{\tt resistor(,{,}V)}'" ljust}
+ {V:resistor(,,V) ; move ;"`{\tt $\ldots$(,{,}V)}'" ljust}
}
move down vm; right_
-{ {resistor(,,ES) ; move ;"`\tt resistor(,{,}ES) '" ljust}
+{ {ES:resistor(,,ES); move ;"`\tt $\ldots$(,{,}ES) '" ljust}
move right_ hm
- {resistor(,,H) ; move ;"`\tt resistor(,{,}H) '" ljust}
+ {H:resistor(,4,H) ; move ;"`\tt $\ldots$(,4{,}H) '" ljust}
move right_ hm
- {resistor(,,AC) ; move ;"`{\tt resistor(,{,}AC)}'" ljust}
+ {AC:resistor(,,AC) ; move ;"`{\tt $\ldots$(,{,}AC)}'" ljust}
}
move down vm; right_
-{ {resistor(,5,B) ; move ;"`{\tt resistor(,5,B)}'" ljust}
+{ {B:resistor(,,B) ; move ;"`{\tt $\ldots$(,{,}B)}'" ljust}
move right_ hm
- {resistor(,,E) ; move
- "`\shortstack[l]{\tt resistor(,{,}E)\\ {\tt $\equiv$ ebox}}'" ljust}
+ {F:resistor(,,F) ; move ;"`\tt $\ldots$(,{,}F) '" ljust}
move right_ hm
- {ebox(,0.5,0.3) ; move ;"`{\tt ebox(,0.5,0.3)}'" ljust}
+ {E:resistor(,,E) ; move ; "`\tt $\ldots$(,{,}E) $\equiv$ ebox'" ljust}
}
- move down vm; right_
+ move down vm*1.1; right_
{ {ebox(,,,0.9) ; move ;"`{\tt ebox(,{,},0.9)}'" ljust}
move right_ hm
- {ebox(,,,,shaded "green") ; move
- "`{\tt ebox(,{,},{,}shaded \"green\")}'" ljust}
-}
- move down vm; right_
-{ {ebox(,wdth=0.2;box=dashed shaded "green";text="X") ; move
- "`{\tt ebox(,wdth=0.2;box=dashed shaded \"green\";text=\"X\")}'" ljust}
+ {ebox(,wdth=0.2;box=dashed shaded "green";text="H") ; move
+ "`\shortstack[l]{\tt ebox(,wdth=0.2;box=dashed shaded \"green\";\\' \
+ `\tt text=\"H\")}'" ljust}
}
.PE
diff --git a/graphics/circuit_macros/doc/SourcesMan.m4 b/graphics/circuit_macros/doc/SourcesMan.m4
index 6647a84d1d..e4c491e80d 100644
--- a/graphics/circuit_macros/doc/SourcesMan.m4
+++ b/graphics/circuit_macros/doc/SourcesMan.m4
@@ -19,18 +19,17 @@ define(`NL',`; move down $1; right_')
{source(,SC) ; move ; "`\tt source(,SC)'" ljust} NL
{source(,AC); move ; "`\tt source(,AC)'" ljust} NL
{source(,X) ; move ; "`\tt source(,X)'" ljust} NL
- {source(,F) ; move ; "`\tt source(,F)'" ljust} NL
{source(,G) ; move ; "`\tt source(,G)'" ljust} NL
{source(,Q) ; move ; "`\tt source(,Q)'" ljust} NL #(0.3)
+ {source(,F) ; move ; "`\tt source(,F)'" ljust} NL
+ {geiger(,,,,fill_(0.9)); move;
+ "`\tt \shortstack[l]{geiger(,{,},{,}\\ fill\_(0.9))}'" ljust} NL
}
move right_ 2.0
{
-# {source(,,0.4) ; move ; "`\tt source(,{,}0.4)'" ljust} NL(0.35)
{source(,,0.4,,shaded "yellow") ; move ;
"`\tt\shortstack[l]{source(,{,}0.4,{,}\\ shaded \"yellow\")}'" ljust} NL(0.35)
-# {source(,P) ; move ; "`\tt source(,P)'" ljust} NL
- {source(,P,,,fill_(0.9)) ; move ;
- "`\tt\shortstack[l]{source(,P,{,},\\ fill\_(0.9))}'" ljust} NL
+ {source(,P) ; move ; "`\tt source(,P)'" ljust} NL
{source(,U) ; move ; "`\tt source(,U)'" ljust} NL
{source(,H) ; move ; "`\tt source(,H)'" ljust} NL
{source(,R) ; move ; "`\tt source(,R)'" ljust} NL
@@ -38,18 +37,18 @@ define(`NL',`; move down $1; right_')
{source(,SCr) ; move ; "`\tt source(,SCr)'" ljust} NL
{source(,T) ; move ; "`\tt source(,T)'" ljust} NL
{source(,L) ; move ; "`\tt source(,L)'" ljust} NL
- {source(,B) ; move ; "`\tt source(,B)'" ljust} NL
+ {source(,B) ; move ; "`\tt source(,B)'" ljust} NL(moveht*0.8)
{nullator ; move ; "`\tt nullator'" ljust} NL(moveht*0.8)
{norator ; move ; "`\tt norator'" ljust} NL(moveht*0.9)
{ttmotor(,G) ; move ; "`\tt ttmotor(,G)'" ljust} NL(moveht*1.1)
- {proximity ; move ;
- "`\tt \shortstack[l]{proximity\\ = consource(,P)}'" ljust}
+ {battery ; move ; "`\tt battery'" ljust} NL(0.3)
+ {battery(,3,R) ; move ; "`\tt battery(,3,R)'" ljust} #NL(0.35)
}
move right_ 2.0
{source(,N) ; move ; "`\tt source(,N)'" ljust} NL
+ {source(,NA) ; move ; "`\tt source(,NA)'" ljust} NL
+ {source(,NB) ; move ; "`\tt source(,NB)'" ljust} NL
{source(,"\rm mA");move; "`\tt source(,\"mA\")'" ljust} NL(0.31)
-# {source(,"mA");move; "`\tt source(,'" ljust \
-# "`\tt \enskip \"mA\")'" ljust} NL(0.31)
{consource ; move ; "`\tt consource'" ljust} NL(0.32)
{consource(,I) ; move ; "`\tt consource(,I)'" ljust} NL(0.32)
{consource(,i) ; move ; "`\tt consource(,i)'" ljust} NL(0.32)
@@ -58,8 +57,8 @@ define(`NL',`; move down $1; right_')
{consource(,V) ; move ; "`\tt consource(,V)'" ljust} NL(0.32)
{consource(,v) ; move ; "`\tt consource(,v)'" ljust} NL(0.3)
{consource(,tv) ; move ; "`\tt consource(,tv)'" ljust} NL(0.3)
- {battery ; move ; "`\tt battery'" ljust} NL(0.3)
- {battery(,3,R) ; move ; "`\tt battery(,3,R)'" ljust} #NL(0.35)
+ {proximity ; move ;
+ "`\tt \shortstack[l]{proximity\\ = consource(,P)}'" ljust} NL(0.35)
iflatex(`ifpsfrag(,`latexcommand(})')')
.PE
diff --git a/graphics/circuit_macros/doc/Taps.m4 b/graphics/circuit_macros/doc/Taps.m4
index aa6b59251b..57d1ea792a 100644
--- a/graphics/circuit_macros/doc/Taps.m4
+++ b/graphics/circuit_macros/doc/Taps.m4
@@ -9,7 +9,7 @@ cct_init
"\sl R1.end" at R1.end above
"\sl Tap1" at Tap1 rjust
"\sl Tap2" at Tap2 ljust
- `"\tt right\_; t = 0.2in\_\_" ljust \
+ `"\tt right\_; t = 0.2 in\_\_" ljust \
"\tt R1:$\;$resistor(,{,}E)" ljust \
"\tt addtaps(<-,0.2,-t,0.8,t)" ljust' at R1.end+(0.3,0)
diff --git a/graphics/circuit_macros/doc/Version.tex b/graphics/circuit_macros/doc/Version.tex
index 4a5d56e9c4..0c66604489 100644
--- a/graphics/circuit_macros/doc/Version.tex
+++ b/graphics/circuit_macros/doc/Version.tex
@@ -1 +1 @@
-Version 10.5
+Version 10.6
diff --git a/graphics/circuit_macros/doc/body.tex b/graphics/circuit_macros/doc/body.tex
index b6b9ca0dde..79827bb2e4 100644
--- a/graphics/circuit_macros/doc/body.tex
+++ b/graphics/circuit_macros/doc/body.tex
@@ -64,7 +64,7 @@ processed by \Mfour and a \pic processor to
convert them to \TPGF, \PSTricks, other \latex-compatible code, \SVG,
or other formats.
In its basic usage, the method has the advantages and disadvantages of
-\tex itself, since it is macro-based and non-WYSIWYG,
+\tex itself since it is macro-based and non-WYSIWYG,
with ordinary text input. The book from which the above quotation
is taken correctly points out that the payoff can be in quality of
diagrams at the price of the time spent in drawing them.
@@ -73,7 +73,7 @@ A collection of basic components, most based on IEC and IEEE
standards~\cite{IECstd,IEEEstd},
and conventions for their internal
structure are described. Macros such as these are only a starting
-point, since it is often convenient to customize elements or to package
+point since it is often convenient to customize elements or to package
combinations of them for particular drawings or contexts,
a process for which \Mfour\ and \pic\ are well suited.
@@ -126,11 +126,11 @@ in \FR{quick} to illustrate the language and the production of basic
labeled circuits.
\begin{figure}[ht]
\parbox{\textwidth}{\small\verbatiminput{quick.m4}}%
- \hfill\llap{\raise-1.15in\hbox{\input quick }}%
- \vspace*{-\baselineskip}%
+ \hfill\llap{\raise-1in\hbox{\input quick }}%
+% \vspace*{-\baselineskip}%
\caption{The file {\tt quick.m4} and resulting diagram.
There are several ways of drawing the same picture; for example,
- nodes (such as {\tt Origin}) can be defined and circuit branches
+ nodes (example: {\tt Origin: Here}) can be defined and circuit branches
drawn between them; or absolute coordinates can be used (e.g.,
{\tt source(up\_ from (0,0) to (0,0.75))} ). Element sizes
can be varied and non-two-terminal elements included (\FR{QTrans})
@@ -501,7 +501,8 @@ truncates the line by {\tt x} at the start and {\tt y} at the end.
Any of the above means of specifying line (or arrow) direction and length
will be called a \linespec.
-Lines can be concatenated. For example, to draw a triangle:
+Lines can be concatenated to create multsegmented objects.
+For example, to draw a triangle:
{\tt line up\_ sqrt(3) right\_ 1 then down\_ sqrt(3) right\_ 1 then left\_ 2}
@@ -903,11 +904,11 @@ The first macro argument specifies the
\begin{figure}[H]
\input ResistorsMan
\caption{Resistors drawn by the macro
- {\tt resistor({\sl linespec, n}|E, {\sl chars}, {\sl cycle wid})}.
- The second argument is either an integer to specify number of cycles,
- the letter {\tt E}, or blank. The third argument specifies the desired
- variant.
- The default {\tt ebox} element designates a resistor.}
+ {\tt resistor({\sl linespec, n}, {\sl chars}, {\sl cycle wid})}.
+ The second argument is either an integer to specify number of cycles
+% the letter {\tt E},
+ or blank. The third argument specifies the desired variant.
+ The default {\tt ebox} element designates a box resistor.}
\label{Resistors}
\end{figure}
\noindent%
@@ -936,7 +937,7 @@ See \SR{Composite:} for the {\tt variable} macro.
\label{Capacitors}
\end{figure}
-Basic inductors are illustrated in \FR{Inductors}.
+Inductors are illustrated in \FR{Inductors}.
\begin{figure}[H]
\input InductorsMan
\caption{Basic inductors created with the
@@ -992,7 +993,8 @@ to draw a single cycle of a sinusoid or approximate sinusoid.
\begin{figure}[hbt]
\input SourcesMan
\caption{Sources and source-like elements. An argument of each
- element allows customization such as shading.}
+ element allows customization such as shading. The {\tt geiger}
+ macro is a wrapper for {\tt source}.}
\label{Sources}
\end{figure}
As a convenience,
@@ -1270,6 +1272,8 @@ The macro {\tt eleminit\_} in the two-terminal elements invokes
to establish element length and direction.
As shown in \FR{Oblique},
+``{\tt Point\_(-30); resistor}'' draws a resistor
+along a line with slope of~-30 degrees,
\begin{figure}[hbt]
\vspace{-\baselineskip}
\parbox{4.5in}{\small \verbatiminput{Oblique.m4}}%
@@ -1278,8 +1282,7 @@ As shown in \FR{Oblique},
\caption{Illustrating elements drawn at oblique angles.}
\label{Oblique}
\end{figure}
-``{\tt Point\_(-30); resistor}'' draws a resistor
-along a line with slope of~-30 degrees, and ``{\tt rpoint\_(to Z)}'' sets
+and ``{\tt rpoint\_(to Z)}'' sets
the current direction cosines to point from the current location to location Z.
Macro {\tt vec\_(x,y)}
evaluates to the position {\tt (x,y)} rotated as defined by the
@@ -1419,19 +1422,22 @@ the {\tt ground} macro, for example:
include a transformer, a composite element described in detail below,
followed by code for the figure.
\begin{figure}[H]
-% \vspace*{-\baselineskip}
-% \parbox{4in}{\small \verbatiminput{QTrans.m4}}%
-% \hspace*{-0.45in}\raise-0.15in\hbox{\input QTrans }
-% \vspace*{-\baselineskip}
\input Qtrans
\caption{The file {\tt quick.m4} modified to include a composite
element, the transformer, which is positioned by placing an
- internal point.}
-% transformer, of which the length and orientation of connectors
-% is given by the first argument, and which is positioned in this
-% example by placing the internal position {\sl P1.}}
+ internal point, thus:
+ {\tt T1:~transformer(down\_ Vs.len,{},6,{},4) with .P1 at Here}.}
\label{QTrans}
\end{figure}
+%\begin{figure}[H]
+% \parbox{\textwidth}{\small\verbatiminput{Qtrans.m4}}%
+% \hfill\llap{\raise-1in\hbox{\input Qtrans }}%
+% \caption{The file {\tt quick.m4} modified to include a composite
+% element, the transformer, which is positioned by placing an
+% internal point, thus:
+% {\tt T1:~transformer(down\_ Vs.len,{},6,{},4) with .P1 at Here}.}
+% \label{QTrans}
+% \end{figure}
\FR{Xform} shows variants of the transformer macro,
which has predefined internal locations
@@ -1457,12 +1463,12 @@ puts dots at opposite ends.
\end{figure}
The code for \FR{QTrans} is reproduced in the following.
-Label {\sl Vs} has been added for later reference.
-The transformer is positioned by placing internal position {\sl P1.}
+%Label {\sl Vs} has been added for later reference.
+The transformer is positioned by placing internal point {\sl P1.}
\verbatiminput{QTrans.m4}
-The macro {\tt
- potentiometer(\linespec,{\sl cycles},{\sl fractional pos},{\sl length},
+Another composite element,
+ {\tt potentiometer(\linespec,{\sl cycles},{\sl fractional pos},{\sl length},
$\ldots$)},
shown in \FR{Potentiometers},
first draws a resistor along the specified line, then adds arrows for taps
@@ -1983,6 +1989,7 @@ A macro is also provided for colored fills:
\noindent%
These macros depend heavily on the postprocessor and are intended only for
\PSTricks, \TPGF, \MetaPost, \SVG, and the Postscript or PDF output of \dpic.
+Their effects are fragile in some situations.
Basic \Pic\ objects are probably best colored and filled as discussed
in \SR{Planarobjects:}.
@@ -2056,7 +2063,9 @@ of input locations {\tt In1,} $\ldots$ {\tt In}$N,$ as illustrated
for the NOR gate in the figure. By default, $N=2$ except for macros
{\tt NOT\_gate} and {\tt BUFFER\_gate}, which have one input {\tt In1}
unless they are given a first argument, which is treated as the line
-specification of a two-terminal element.
+specification of a two-terminal element. Alternately, the first argument
+can be a sequence of letters {\tt P} or {\tt N} to define a number of
+normal or negated ({\tt Not}-circled) inputs.
\begin{figure}[H]
\vspace*{-0.5\baselineskip}
\input LogicMan
@@ -3068,7 +3077,7 @@ respectively, and {\tt custombox} evaluates to
{\tt B1:\ box wid (2) ht (boxht) "Hello"}.
The key prefix {\tt m4} of the automatically created parameter macros can be
-redefined if necessary, since it is given in the distribution by the line
+redefined if necessary since it is given in the distribution by the line
{\tt define(`key\_prefix',`m4')}.
@@ -3550,10 +3559,10 @@ packages available these days? It would depend on the context, but
and read but powerful enough (that is, Turing-complete) for coding the
geometrical calculations required for precise component sizing and
placement. It would be nice if arbitrary rotations and scaling were
-simpler and if a general path element with clipping were available
-as in \Postscript. However, all the power of \Postscript or \TPGF,
-for example, remains available, as arbitrary postprocessor code can be
-included with \pic code.
+simpler, if a general path element with clipping were available as in
+\Postscript, and if adding color across postprocessors were easier.
+However, all the power of \Postscript or \TPGF, for example, remains
+available, as arbitrary postprocessor code can be included with \pic code.
The \dpic interpreter has several output-format options that may be
useful. The {\tt eepicemu} and {\tt pict2e} extensions of the
@@ -3568,13 +3577,12 @@ editor, but SVG can also be used directly for web pages.
\Dpic will also generate low-level \MetaPost or \Postscript code, so
that diagrams defined using \pic can be manipulated and combined with
others.
-I learned to great benefit that the \Postscript output can be imported into
-CorelDraw and Adobe Illustrator for further processing,
-so that detailed diagram components produced by pic program can be combined
-with effects best acheived using a wysiwyg drawing program.
-With raw \Postscript, \PDF, and \SVG output however, the user is
-responsible for ensuring that the correct fonts are provided and for
-formatting the text.
+I learned to great benefit that the \Postscript output can be imported
+into CorelDraw and Adobe Illustrator for further processing, so that
+detailed diagram components produced by pic program can be combined
+with effects best acheived using a wysiwyg drawing program. With raw
+\Postscript, \PDF, and \SVG output however, the user is responsible for
+ensuring that the correct fonts are provided and for formatting the text.
Many thanks to the people who continue to send comments, questions,
and, occasionally, bug fixes. What began as a tool for my own use changed
@@ -3759,6 +3767,12 @@ Note that the loop index variable {\tt m4x} is automatically defined.
\noindent The cure is to add single quotes in pairs as necessary.
+ If text containing single quote characters causes difficulties
+ then replace the \LaTeX\ single quote by {\tt \bsl{}char39}
+ or disable the m4 quote characters temporarily as shown:
+
+ {\tt changequote(,)} {\sl text containing single quotes} {\tt changequote(`,)}
+
The only subtlety required in writing
\Mfour macros is deciding when to quote macro arguments. In the context
of circuits it seemed best to assume that arguments would not
diff --git a/graphics/circuit_macros/doc/defines.tex b/graphics/circuit_macros/doc/defines.tex
index 0c9c67bfbf..6cb3a997c7 100644
--- a/graphics/circuit_macros/doc/defines.tex
+++ b/graphics/circuit_macros/doc/defines.tex
@@ -1,6 +1,6 @@
%
-\newdimen{\leftwid}\setlength{\leftwid}{2in}
-\newdimen{\libwid}\setlength{\libwid}{0.5in}
+\newdimen{\leftwid}\setlength{\leftwid}{140pt}
+\newdimen{\libwid}\setlength{\libwid}{35pt}
\newdimen\rightwid
\setlength{\rightwid}{\textwidth}
\addtolength{\rightwid}{-\leftwid}
@@ -11,31 +11,31 @@
%\newcommand{\macx}[2]{%
% \phantomsection\pdfbookmark[subsection]{#1}{#2}#1}
-\newcommand{\macrodef}[5]{%\begin{minipage}[b]{\textwidth}%
-\phantomsection\pdfbookmark[subsubsection]{#1}{#2}%
-\setbox\Defbox=\hbox{\tt #1#3}%
+% This is alchemy but good enough for now.
+\newcommand{\macrodef}[5]{\paragraph*{\hfill}\noindent%
+ \phantomsection\pdfbookmark[subsubsection]{#1}{#2}\hspace*{-\parindent}%
+ \setbox\Defbox=\hbox{\tt #1#3}%
\ifdim\wd\Defbox>\textwidth%
- \setbox\Defbox=\hbox{\parbox{\textwidth}{\tt #1#3}}\fi
+ \setbox\Defbox=\hbox{\parbox[t]{\textwidth}{\tt #1#3}}\fi%
+ \nopagebreak%
\ifdim\wd\Defbox>\leftwid%
- \box\Defbox\hfill\break\hspace*{\leftwid}%
+ \box\Defbox\hfill\break\hspace*{-1ex}\hbox to \leftwid{\hfill}%
\else\hbox to \leftwid{\box\Defbox\hfill}\fi%
- \nopagebreak
- \hbox to \libwid{#4\hfill}\parbox[t]{\rightwid}%
- {\raggedright #5}%
- %\end{minipage}%
- \vspace{\parsep}\\}%
+ \hbox to \libwid{#4\hfill}%
+ \begin{minipage}[t]{\rightwid}\raggedright#5\end{minipage}}%
\newcommand{\seesect}[1]{ (\SR{#1})}
\newcommand{\Letter}[1]{\noindent%
\pdfbookmark[subsection]{#1}{#1}%
- \hskip-2em\hbox to 2em{#1\label{#1}\hfill}\relax}%
+ \hskip-2em\hbox to 2em{\par#1\label{#1}}\relax}%
\newcommand{\LR}[1]{\hyperref[#1]{{#1}}\hskip1em}
+\newcommand{\fra}[1]{\hbox{\sl frac#1}}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-\raggedbottom
+%\raggedbottom
\vspace{\abovedisplayskip}
\noindent
\LR{A} \LR{B} \LR{C} \LR{D} \LR{E} \LR{F} \LR{G} \LR{H} \LR{I} \LR{J}
@@ -50,7 +50,7 @@
\macrodef{abs\_}{abs_}{({\sl number})}%
{gen}%
{absolute value function}%
-\macrodef{ACsymbol}{ACsymbol}{(at {\sl position, len, ht,}%
+\macrodef{ACsymbol}{ACsymbol}{(at {\sl position, len, ht,} %
[n:][A]U|D|L|R|{\sl degrees}) }%
{cct}%
{draw a stack of $n$ (default 1) AC symbols
@@ -58,12 +58,12 @@
are used. The current drawing direction is default, otherwise Up, Down,
Left, Right, or at {\sl degrees} slant; \seesect{Twoterminal:} e.g.,\\
{\tt ebox; $\lbrace$ACsymbol(at last [],{,}dimen\_/8)$\rbrace$}}%
-\macrodef{adc}{adc}{({\sl width,height,nIn,nN,nOut,nS})}%
+\macrodef{adc}{adc}{({\sl width, height, nIn, nN, nOut, nS})}%
{cct}%
{Analog-digital converter with defined width, height, and number of
inputs {\tt In$i$}, top terminals {\tt N$i$}, ouputs {\tt Out$i$},
and bottom terminals~{\tt S$i$}}%
-\macrodef{addtaps}{addtaps}{[{\sl arrowhd}%
+\macrodef{addtaps}{addtaps}{([{\sl arrowhd}%
| type={\sl arrowhd};name={\sl Name}],
{\sl fraction, length, fraction, length,} $\cdots$)}%
{cct}%
@@ -81,7 +81,7 @@
\macrodef{Along\_}{Along_}{({\sl LinearObj,distance,}[R])}%
{gen}%
{Position arg2 (default all the way) along a linear object
- from {\tt .start} to {\tt .end}%
+ from {\tt .start} to {\tt .end}
(from {\tt .end} to {\tt .start} if arg3={\tt R}) }%
\macrodef{amp}{amp}{(\linespec, {\sl size}, {\sl attributes})}%
{cct}%
@@ -89,7 +89,7 @@
\macrodef{And, Or, Not, Nand, Nor, Xor, Nxor, Buffer}%
{And, Or, Not, Nand, Nor, Xor, Nxor, Buffer}{}%
{log}%
- {Wrappers of {\tt AND\_gate}, $\ldots$ for use in the {\tt Autologix}%
+ {Wrappers of {\tt AND\_gate}, $\ldots$ for use in the {\tt Autologix}
macro}%
\macrodef{AND\_gate}{AND_gate}{({\tt {\sl n}, [N][B],
[{\sl wid}, [{\sl ht}]], {\sl attributes}})}%
@@ -106,11 +106,11 @@
{\sl attributes})}%
{log}%
{general AND gate: $n$=number of inputs $(0\leq n\leq 16)$;
- {\sl chars:}%
+ {\sl chars:}
B=base and straight sides; A=Arc;
[N]NE,[N]SE,[N]I,[N]N,[N]S=inputs or circles;
[N]O=output; C=center.
- Otherwise, arg1 can be a sequence of letters {\tt P|N}%
+ Otherwise, arg1 can be a sequence of letters {\tt P|N}
to define normal or negated inputs; arg2 is as above except that
{\tt [N]I} is ignored. Arg 5 contains body attributes.}%
\macrodef{AND\_ht}{AND_ht}{}%
@@ -170,8 +170,8 @@
the macro affect the arc only,
e.g., {\tt arcr(A,r,0,pi\_/2,->) dotted ->}%
\seesect{Positions:}}%
-\macrodef{arcto}{arcto}{({\sl position 1},{\sl position 2},{\sl
- radius},[dashed|dotted])}%
+\macrodef{arcto}{arcto}{({\sl position 1}, {\sl position 2},
+ {\sl radius}, [dashed|dotted])}%
{gen}%
{line toward position 1 with rounded corner toward position 2}%
\macrodef{array}{array}{({\sl variable, expr1, expr2, \ldots})}%
@@ -181,15 +181,15 @@
\macrodef{array2}{array2}{({\sl variable, expr1, expr2, \ldots})}%
{dpictools}%
{$\;\;$ Populate a doubly-subscripted array:
- {\tt {\sl var}[{\sl expr1},1]={\sl expr2;}%
+ {\tt {\sl var}[{\sl expr1},1]={\sl expr2;}
{\sl var}[{\sl expr1},2]={\sl expr3;} \ldots}.}%
\macrodef{arraymax}{arraymax}{({\sl data array, n, index name, value})}%
{dpictools}%
{$\;\;$ Find the index in {\sl array[1:n]} of the first occurrence
of the maximum array element value. The value is assigned if arg4 is
nonblank; example:
- {\tt array(x,4,9,8,6); arraymax( x,4,i )}%
- assigns 2 to {\sl i,} and {\tt arraymax( x,4,i,m )}%
+ {\tt array(x,4,9,8,6); arraymax( x,4,i )}
+ assigns 2 to {\sl i,} and {\tt arraymax( x,4,i,m )}
assigns 2 to {\sl i} and 9 to {\sl m.}}%
\macrodef{arraymin}{arraymin}{({\sl data array, n, index name, value})}%
{dpictools}%
@@ -197,37 +197,36 @@
of the minimum array element value. The value is assigned if arg4 is
nonblank; see {\tt arraymax}.}%
\macrodef{arrester}{arrester}{(\linespec,{\sl chars},
- {\sl len}[:arrowhead ht],
- {\sl ht}[:arrowhead wid],
+ {\sl len}[:{\sl arrowhead ht}],
+ {\sl ht}[:{\sl arrowhead wid}],
{\sl attributes} )}%
{cct}%
-{ Arg2 {\sl chars:}\\
- {\tt G=} spark gap (default)\\
- {\tt g=} general (dots)\\
- {\tt E=} gas discharge\\
- {\tt S=} box enclosure\\
- {\tt C=} carbon block\\
- {\tt A=} electrolytic cell\\
- {\tt H=} horn gap\\
- {\tt P=} protective gap\\
- {\tt s=} sphere gap\\
- {\tt F=} film element\\
- {\tt M=} multigap\\
- {\sl Modifiers in arg2:}\\
- {\tt R=} right orientation\\
- {\tt L=} left orientation\\
- {\tt D=} 3-terminal element for {\tt S, E}
- only, with terminals {\sl A, B, G}\\
- Arg5 applies to options C, E, S
- \seesect{Twoterminal:}}%
+{Arg2 {\sl chars:}\\
+ {\tt G=} spark gap (default)\\
+ {\tt g=} general (dots)\\
+ {\tt E=} gas discharge\\
+ {\tt S=} box enclosure\\
+ {\tt C=} carbon block\\
+ {\tt A=} electrolytic cell\\
+ {\tt H=} horn gap\\
+ {\tt P=} protective gap\\
+ {\tt s=} sphere gap\\
+ {\tt F=} film element\\
+ {\tt M=} multigap\\
+ {\sl Modifiers appended to arg2:}\\
+ {\tt R=} right orientation\\
+ {\tt L=} left orientation\\
+ {\tt D=} add terminals {\sl A, B, G} for {\tt S, E} only\\
+ Arg5 applies to options C, E, S
+ \seesect{Twoterminal:}}%
\macrodef{arrowline}{arrowline}{(\linespec)}%
{cct}%
{line (dotted, dashed permissible) with centred arrowhead
\seesect{Twoterminal:}}%
-\macrodef{assign3}{assign3}{({\sl var name,var name,var name,arg4,arg5,arg6})}%
+\macrodef{assign3}{assign3}{({\sl name, name, name, arg4, arg5, arg6})}%
{gen}%
{Assigns \$1 = arg4 if \$1 is nonblank; similarly \$2 = arg5 and \$3 = arg6}%
-\macrodef{AutoGate}{AutoGate}{}%
+\macrodef{AutoGate}{AutoGate}{\relax}%
{log}%
{Draw the tree for a gate as in the {\tt Autologix} macro. No inputs
or external connections are drawn. The names of the internal gate
@@ -239,17 +238,18 @@
{Draw the Boolean expressions defined in function notation.
The first argument is a semicolon (;)-separated sequence of
Boolean function specifications using the functions
- {\tt And, Or, Not, Buffer, Xor, Nand, Nor, Nxor}%
+ {\tt And, Or, Not, Buffer, Xor, Nand, Nor, Nxor}
with variables, e.g.,
- {\tt Autologix(And(Or(x1,~x2),Or(~x1,x2)));}.
- Each function specification is of the form
+ {\tt Autologix(And(Or(x1,\~{}x2),Or(\~{}x1,x2)));}.\\
+ Each function specification is of the form\\
{\tt {\sl function}({\sl arguments}) [@{\sl attributes}]}.
\par
Function outputs are aligned vertically but appending
- {\tt@}{\sl attributes} to a function can be used to place it.
+ {\tt@}{\sl attributes} to a function can be used to place it; e.g.,
+ {\tt Nand(\~{}A,B) @with .n at last [].s+(0,-2bp\_\_).}
\par
The function arguments are variable names or nested Boolean functions.
- Each unique variable {\sl var} causes an input point {\tt In}{\sl var}%
+ Each unique variable {\sl var} causes an input point {\tt In}{\sl var}
to be defined. Preceding the variable by a {\tt \~{}} causes a NOT gate
to be drawn at the input.
The inputs are drawn in a row at the upper left by default.
@@ -264,15 +264,15 @@
Each variable {\sl var} corresponds also to one of the input array
points with label {\tt In}{\sl var}.
Setting {\tt offset=}{\sl value} displaces the
- drawn input list in order to disambiguate the input connections when {\tt L}%
+ drawn input list in order to disambiguate the input connections when {\tt L}
is used.
\par
In the (possibly rare) case where one or more inputs of a normal function
gate is to have a NOT-circle, an additional first argument of the function
- is inserted, of the form {\tt [{\sl charseq}]}, where {\sl charseq}%
+ is inserted, of the form {\tt [{\sl charseq}]}, where {\sl charseq}
is a string containing the characters {\tt P} for a normal input or
{\tt N} for a negated input, the length of the string equal to the number
- of gate inputs. For example:
+ of gate inputs. Example:
{\tt Autologix(Xor([PN],And(x,y),And(x,y)),LRV)}}%
\Letter{B}%
@@ -287,8 +287,8 @@
\macrodef{b\_}{b_}{}%
{gen}%
{blue color value}%
-\macrodef{b\_current}{b_current}{({\sl label},{\sl pos},In|Out,Start|End,{\sl
- frac})}%
+\macrodef{b\_current}{b_current}{({\sl label}, {\sl pos}, In|Out, Start|End,
+ {\sl frac})}%
{cct}%
{labelled branch-current arrow to {\sl frac} between branch end and body
\seesect{Branchcurrent:}}%
@@ -343,14 +343,14 @@
{cct}%
{left or right, N- or P-type bipolar transistor, without or with envelope
\seesect{Semiconductors:}}%
-\macrodef{boxcoord}{boxcoord}{({\sl planar obj},{\sl x fraction},{\sl y
- fraction})}%
+\macrodef{boxcoord}{boxcoord}{({\sl planar obj}, {\sl x fraction},
+ {\sl y fraction})}%
{gen}%
{internal point in a planar object}%
\macrodef{boxdim}{boxdim}{({\sl name},h|w|d|v,{\sl default})}%
{gen}%
- {evaluate, e.g.\ {\sl name}{\tt \_w} if defined, else {\sl default\/}%
- if given, else 0 {\tt v} gives sum of {\tt d} and {\tt h} values
+ {Evaluate, e.g.\ {\sl name}{\tt \_w} if defined, else {\sl default\/}
+ if given, else 0. {\tt v} gives sum of {\tt d} and {\tt h} values
\seesect{Interaction:}}%
\macrodef{BOX\_gate}{BOX_gate}{({\sl inputs, output, swid, sht, label,
attributes })}%
@@ -378,12 +378,12 @@
{log}%
{general buffer, {\sl chars:}\\
{\tt T}: triangle,\\
- {\tt [N]O}: output location {\tt Out}%
+ {\tt [N]O}: output location {\tt Out}
({\tt NO} draws circle {\tt N\_Out});\\
{\tt [N]I, [N]N, [N]S, [N]NE, [N]SE} input locations;\\
{\tt C}: centre location.\\
Args 4-6 allow alternative
- definitions of respective {\tt In, NE,}%
+ definitions of respective {\tt In, NE,}
and {\tt SE} argument sequences }%
\macrodef{BUF\_ht}{BUF_ht}{}%
{log}%
@@ -395,6 +395,7 @@
{cct}%
{buzzer, {\sl In1} to {\sl In3} defined, C=curved
\seesect{Composite:}}%
+
\Letter{C}%
\macrodef{cangle}{cangle}{({\sl Start, End},[d])}%
{gen}%
@@ -427,7 +428,7 @@
\seesect{Twoterminal:}}%
\macrodef{case}{case}{({\sl i, alt1, alt2, \ldots})}%
{dpictools}%
- {$\;\;$ Case statement for dpic; execute alternative {\sl i.}%
+ {$\;\;$ Case statement for dpic; execute alternative {\sl i.}
Example: {\tt case( 2, x=5, x=10, x=15 )} sets {\tt x} to 10.
Note: this is a macro so {\tt \${}n} refers to the {\sl n}-th
argument of {\tt case}.}%
@@ -453,19 +454,17 @@
\macrodef{Cintersect}{Cintersect}{({\sl Pos1, Pos2, rad1, rad2,} [R])}%
{gen}%
{Upper (lower if arg5={\tt R}) intersection of circles at
- {\sl Pos1} and {\sl Pos2}, radius {\sl rad1} and {\sl rad2}}%
-\macrodef{clabel}{clabel}{({\sl label},{\sl label},{\sl label},[{\sl arg4}],%
- [{\sl block name}])}%
+ {\sl Pos1} and {\sl Pos2}, radius {\sl rad1} and {\sl rad2}}
+\macrodef{clabel}{clabel}{( {\sl label}, {\sl label}, {\sl label},
+ {\sl relative position}, {\sl block name})}%
{cct}%
{Triple label along the drawing axis of the body of an element in the
current direction \seesect{Labels:}. Labels are placed at the
- beginning, centre, and end of the last {\tt []} block (or a named
- {\tt []} block). Each label is treated as math by default, but is
- copied literally if it is in double quotes or sprintf.
- {\sl Arg4} can be {\tt above,} {\tt below,} {\tt left,} or {\tt
- right} to supplement the default relative position. The fifth
- argument is the optional name of the {\tt []} block to be labelled,
- which is {\tt last []} by default.}%
+ beginning, centre, and end of the last {\tt []} block (or a {\tt
+ []} block named or enumerated in arg5). Each label is treated as
+ math by default, but is copied literally if it is in double quotes
+ or sprintf. {\sl Arg4} can be {\tt above,} {\tt below,} {\tt left,}
+ or {\tt right} to supplement the default relative position.}%
\macrodef{cm\_\_}{cm__}{}%
{gen}%
{absolute centimetres}%
@@ -477,19 +476,29 @@
{voltage or current controlled source with alternate forms;
{\tt R}: reversed polarity\seesect{Twoterminal:}}%
\macrodef{ColoredV}{ColoredV}{%
- (box|circle|ellipse,({\sl r,g,b})|(({\sl colorseq})),{\sl attributes})}%
+ (box|circle|ellipse,({\sl r,g,b})|(({\sl colorseq}))[:{\sl nlines}],%
+ {\sl attributes})}%
{gen}%
{box (default), circle, or ellipse in a {\tt []} block.
- If arg2 is blank then all formatting is in arg3. If arg2 is blank
+ If arg2 is blank
then all formatting is in arg3; if parenthesized r,g,b, the object
is shaded top to bottom white to the specified rgb color; if a
- double-parenthesized colorseq then the colorseq defines the internal
+ double-parenthesized {\sl colorseq} then the {\sl colorseq}
+ defines the internal
shading top to bottom. A {\sl colorseq} is of the form
- 0, r0,g0,b0, {\sl frac1},r1,g1,b1, {\sl frac2},r2,g2,b2,
- \ldots 1,rn,gn,bn with $0 < \hbox{\sl frac1} < \hbox{\sl frac2} \ldots 1$.
+ {\sl 0,r0,g0,b0,\\
+ frac1,r1,g1,b1,\\
+ frac2,r2,g2,b2,\\
+ \ldots\\
+ 1,rn,gn,bn}\\
+ with $0 < \hbox{\sl frac1} < \hbox{\sl frac2} \ldots 1$.
+ The number of {\sl colorseq} lines can be specified with the colon
+ (default {\tt height/(line thickness)*2)}.
Examples: {\tt ColoredV(circle,(1,0,0));
- ColoredV(ellipse,(1,0.04,1),wid 0.75 ht 1 outlined "magenta" "Goodbye");
- ColoredV(box,(1,0,0),outlined "blue" rad 0.1, (0,1,1,0, 1,0,0,1)).} }%
+ ColoredV(ellipse,(1,0.04,1),wid 0.75 ht 1 \textbackslash\\
+ $\;$ outlined "magenta" "Goodbye");
+ ColoredV(box,((0,1,1,0, 1,0,0,1)):50, \\
+ $\;$ outlined "blue" rad 0.1).} }%
\macrodef{contact}{contact}{({\sl chars})}%
{cct}%
{single-pole contact:
@@ -515,14 +524,14 @@
\seesect{Composite:}}%
\macrodef{contline}{contline}{({\sl line})}%
{gen}%
- {evaluates to {\tt continue}%
+ {evaluates to {\tt continue}
if processor is {\bf dpic}, otherwise to first arg (default {\tt line})}%
\macrodef{copy3}{copy3}{({\sl vector1,vector2})}%
{dpictools}%
{$\;\;$ Copy vector1 into vector named by arg2.}%
\macrodef{copythru}{copythru}{({\sl dpic macro name,} "{\sl file name}")}%
{dpictools}%
- {$\;\;$ Implements the gpic {\tt copy {\sl filename} thru {\sl macro-name}}%
+ {$\;\;$ Implements the gpic {\tt copy {\sl filename} thru {\sl macro-name}}
for file data separated by commas, spaces, or tabs.}%
\macrodef{corner}{corner}{({\sl line thickness,attributes,turn radians})}%
{gen}%
@@ -559,15 +568,17 @@
{\tt size={\sl expr};},
{\tt line={\sl attributes};} }%
\macrodef{crossover}{crossover}{(\linespec, [L|R][:{\sl line attributes}],
- Line1, Line2, .{.}.)}%
+ {\sl Linename1, Linename2,} $\ldots$)}%
{cct}%
- {line jumping left or right over ordered named lines\seesect{Semiconductors:}}%
+ {line jumping left or right over ordered named
+ lines\seesect{Semiconductors:}}%
\macrodef{crosswd\_}{crosswd_}{}%
{gen}%
{cross dimension}%
\macrodef{csdim\_}{csdim_}{}%
{cct}%
{controlled-source width}%
+
\Letter{D}%
\macrodef{dabove}{dabove}{(at {\sl location})}%
{darrow}%
@@ -583,12 +594,13 @@
{darrow}%
{Wrapper for {\tt darc}.
CCW arc in {\tt dline} style, with closed ends or (dpic only) arrowheads.
- Semicolon-separated {\sl parameters}:
- {\tt thick=}{\sl value}, {\tt wid=}{\sl value}, {\tt ends=}%
- {\sl x}{\tt -},
+ Semicolon-separated {\sl parameters}:\\
+ {\tt thick=}{\sl value};\\
+ {\tt wid=}{\sl value};\\
+ {\tt ends=} {\sl x}{\tt -},
{\tt -}{\sl x}, {\sl x}{\tt -}{\sl x}, {\tt ->}, {\sl x}{\tt ->},
- {\tt <-}, {\tt <-}{\sl x}, {\tt <->}%
- where {\sl x} means {\tt |} or (half-thickness line) {\tt !}.}%
+ {\tt <-}, {\tt <-}{\sl x}, {\tt <->},
+ where {\sl x} is {\tt |} or (half-thickness line) {\tt !}.}%
\macrodef{darc}{darc}{({\sl center position},
{\sl radius}, {\sl start radians}, {\sl end radians}, {\sl dline thickness},
{\sl arrowhead wid}, {\sl arrowhead ht},
@@ -599,8 +611,8 @@
Permissible {\sl end symbols}:
{\sl x}{\tt -},
{\tt -}{\sl x}, {\sl x}{\tt -}{\sl x}, {\tt ->}, {\sl x}{\tt ->},
- {\tt <-}, {\tt <-}{\sl x}, {\tt <->}%
- where {\sl x} means {\tt |} or (half-thickness line) {\tt !}.
+ {\tt <-}, {\tt <-}{\sl x}, {\tt <->}
+ where {\sl x} is {\tt |} or (half-thickness line) {\tt !}.
An inner arc is drawn overlaying the outer arc.
Example: {\tt darc(,{,},{,},{,},{,}outlined "red",outlined "yellow")}.}%
\macrodef{Darlington}{Darlington}{(L|R,{\sl chars})}%
@@ -616,14 +628,15 @@
Z= zener bias diode
\seesect{Semiconductors:}}%
\macrodef{darrow}{darrow}{(\linespec,
- t,t,{\sl width},{\sl arrowhd wd},{\sl arrowhd ht},{\sl parameters},
+ t, t, {\sl width}, {\sl arrowhd wd}, {\sl arrowhd ht}, {\sl parameters},
{\sl color attributes})}%
{darrow}%
{See also {\tt Darrow}.
Double arrow, truncated at beginning (arg2={\tt t}) or
end (arg3={\tt t}), specified sizes,
with arrowhead and optional closed stem. The parameters (arg7) are
- {\tt {\sl x}-} or {\tt ->} or {\tt {\sl x}->} or {\tt <-} or {\tt <-{\sl x}}%
+ {\tt {\sl x}-} or {\tt ->} or {\tt {\sl x}->} or {\tt <-} or
+ {\tt <-{\sl x}}
or {\tt <->} where {\sl x} is {\tt |} or {\tt !}.
The {\tt !-} or {\tt -!} parameters close
the stem with half-thickness lines to simplify butting to other objects.
@@ -639,7 +652,7 @@
{\tt thick=}{\sl val}; (total thicknes, ie width)\\
{\tt wid=}{\sl val}; (arrowhead width)\\
{\tt ht=}{\sl val}; (arrowhead height)\\
- {\tt ends=}%
+ {\tt ends=}
{\sl x}{\tt -}{\sl x} or
{\tt -}{\sl x} or
{\sl x}{\tt -} where {\sl x} is {\tt !} (half-width line)
@@ -669,30 +682,30 @@
{A DC symbol (a dashed line below a solid line).
The current drawing direction is default, otherwise Up, Down,
Left, Right, or at {\sl degrees} slant; e.g.,
- {\tt source(up\_ dimen\_); $\lbrace$ DCsymbol(at last [],{},{},R) $\rbrace$}%
+ {\tt source(up\_ dimen\_); $\lbrace$ DCsymbol(at last [],{},{},R) $\rbrace$}
\seesect{Twoterminal:} }%
\macrodef{DefineCMYKColor}{DefineCMYKColor}{({\sl color-name, c, m, y, k})}%
{dpictools}%
{$\;\;$ Like {\tt DefineRGBColor} but takes arguments in percent, i.e.,
- the range $[0,100].$ Define dpic macro {\sl colorname}%
+ the range $[0,100].$ Define dpic macro {\sl colorname}
according to the postprocessor specified by dpic command-line option.
The macro evaluates to a string.}%
\macrodef{DefineHSVColor}{DefineHSVColor}{({\sl color-name, h, s, v})}%
{dpictools}%
{$\;\;$ Like {\tt DefineRGBColor} but takes argument {\sl h} in the
range $[0,360],$ {\sl s} in $[0,1],$ and {\sl v} in $[0,1].$
- Define dpic macro {\sl colorname}%
+ Define dpic macro {\sl colorname}
according to the postprocessor specified by dpic command-line option.
The macro evaluates to a string.}%
\macrodef{DefineRGBColor}{DefineRGBColor}{({\sl color-name, r, g, b})}%
{dpictools}%
- {$\;\;$ Arguments are in the range 0 to 1. Define dpic macro {\sl colorname}%
+ {$\;\;$ Arguments are in the range 0 to 1. Define dpic macro {\sl colorname}
according to the postprocessor specified by dpic command-line option.
The macro evaluates to a string.}%
\macrodef{definergbcolor}{definergbcolor}{({\sl color-name, r, g, b})}%
{gen}%
{Arguments are in the range 0 to 1. Define color name
- according to the postprocessor. Similar to dpictools {\tt DefineRGBColor}%
+ according to the postprocessor. Similar to dpictools {\tt DefineRGBColor}
but the color name is an m4 macro, not a string.}%
\macrodef{delay}{delay}{(\linespec,{\sl size},{\sl attributes})}%
{cct}%
@@ -707,7 +720,7 @@
U|D|L|R|{\sl degrees}) (default {\tt U} for up)}%
{cct}%
{Delta symbol for power-system diagrams.
- {\sl keys:} {\tt size={\sl expression;}}%
+ {\sl keys:} {\tt size={\sl expression;}}
{\tt type=C|O} (default {\tt C} for closed;
{\tt O} draws an ``open'' symbol); }%
\macrodef{Demux}{Demux}{({\sl n},{\sl label},
@@ -727,9 +740,9 @@
\macrodef{dend}{dend}{(at {\sl location},
{\sl line thickness}{\tt |}{\sl attributes})}%
{darrow}%
- {Close (or start) double line (Note specifying {\tt dends=} for {\tt Dline}%
- is a similar function. Arg2 is dline thickness or atributes:
- {\tt thick={\sl expression};} (dline thickness in drawing units)
+ {Close (or start) double line (Note specifying {\tt dends=} for {\tt Dline}
+ is a similar function. Arg2 is dline thickness or atributes:\\
+ {\tt thick={\sl expression};} (dline thickness in drawing units)\\
{\tt outline=({\sl r,g,b})|"{\sl color}";}}%
\macrodef{d\_fet}{d_fet}{(\linespec,R,P,E|S)}%
{cct}%
@@ -744,10 +757,10 @@
$\hbox{\sl vec3} = \hbox{\sl vec1} - \hbox{\sl vec2}$.}%
\macrodef{dfitcurve}{dfitcurve}{({\sl Name, n, linetype, m})}%
{dpictools}%
- {$\;\;$ Draw a spline through {\sl Name}{\tt [m],} \ldots {\sl Name}{\tt [n]}%
+ {$\;\;$ Draw a spline through {\sl Name}{\tt [m],} \ldots {\sl Name}{\tt [n]}
with attribute {\sl linetype} {\tt dotted,} for example.
The calculated control points {\sl P[i]} satisfy approximately:
- {\sl P[0] = V[0];} {\sl P[i-1]/8 + P[i]*3/4 + P[i+1]/8 = V[i];}%
+ {\sl P[0] = V[0];} {\sl P[i-1]/8 + P[i]*3/4 + P[i+1]/8 = V[i];}
{\sl P[n] = V[n].} See m4 macro {\tt fitcurve.}}%
\macrodef{dfitpoints}{dfitpoints}{({\sl V,n,m,P,mp})}%
{dpictools}%
@@ -766,10 +779,9 @@
\macrodef{dimension\_}{dimension_}{(\linespec,{\sl offset},{\sl label},
D|H|W|{\sl blank width},{\sl tic offset},{\sl arrowhead })}%
{gen}%
- {macro for dimensioning diagrams;
- {\sl arrowhead=}{\tt -> | <-}}%
-\macrodef{diode}{diode}{(\linespec,%
-B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
+ {macro for dimensioning diagrams; {\sl arrowhead=}{\tt -> | <-}}%
+\macrodef{diode}{diode}{(\linespec,
+B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,
[R][E])}%
{cct}%
{diode:
@@ -815,7 +827,7 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
\macrodef{dlabel}{dlabel}{({\sl long},{\sl lat},{\sl label},{\sl
label},{\sl label},{\sl chars})}%
{cct}%
- {general triple label; {\sl chars:}%
+ {general triple label; {\sl chars:}
$X$ displacement {\tt {\sl long, lat}} with respect to the drawing
direction is from the centre of the last
line rather than the centre of the last {\tt [ ]};
@@ -825,8 +837,8 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
{\sl attributes})}%
{darrow}%
{Double line left turn 90 degrees. Attributes can be
- {\tt outline=({\sl r, g, b})|"{\sl color}";}%
- {\tt innershade=({\sl r, g, b})|"{\sl color}";}%
+ {\tt outline=({\sl r, g, b})|"{\sl color}";}
+ {\tt innershade=({\sl r, g, b})|"{\sl color}";}
where rgb values in parentheses or a defined color is specified.}%
\macrodef{Dline}{Dline}{(\linespec, {\sl parameters})}%
{darrow}%
@@ -847,7 +859,7 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
{See also {\tt Dline}.
Double line, truncated by half width at either end, closed
at either or both ends.
- {\sl parameters=}%
+ {\sl parameters=}
{\sl x}{\tt -}{\sl x} or
{\tt -}{\sl x} or
{\sl x}{\tt -} where {\sl x} is {\tt !} (half-width line)
@@ -900,9 +912,9 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
\macrodef{dright}{dright}{({\tt at} {\sl position}, {\sl line thickness},
{\sl attributes})}%
{darrow}%
- {Double line right turn 90 degrees. Attributes can be
- {\tt outline=({\sl r, g, b})|"{\sl color}";}%
- {\tt innershade=({\sl r, g, b})|"{\sl color}";}%
+ {Double line right turn 90 degrees. Attributes can be\\
+ {\tt outline=({\sl r, g, b})|"{\sl color}";}\\
+ {\tt innershade=({\sl r, g, b})|"{\sl color}";}\\
where rgb values in parentheses or a defined color is specified.}%
\macrodef{drjust}{drjust}{(at {\sl location})}%
{darrow}%
@@ -944,8 +956,8 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
{\tt diam={\sl expr};
circle={\sl circle attribs};}\\
{\tt GX}: box control mechanism, attribs:
- {\tt lgth={\sl expr}; wdth={\sl expr}; %
- box={\sl box attr};}%
+ {\tt lgth={\sl expr}; wdth={\sl expr};
+ box={\sl box attr};}
{\tt text={\sl char};}\\
{\tt H}: time delay closing\\
{\tt uH}: time delay opening\\
@@ -980,7 +992,7 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
\{ darrow(down\_,t) \}; darrow(right\_,t)}.
The attributes are
{\tt thick={\sl expr};} (line thickness in drawing units),
- {\tt innershade=({\sl r,g,b})|"{\sl color}";}%
+ {\tt innershade=({\sl r,g,b})|"{\sl color}";}
{\tt outline=({\sl r,g,b})|"{\sl color}";}. }%
\macrodef{dtor\_}{dtor_}{}%
{gen}%
@@ -990,11 +1002,12 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
{darrow}%
{Tturn dline arg1 degrees left (ccw).
Attributes can be
- {\tt outline=({\sl r, g, b})|"{\sl color}";}%
- {\tt innershade=({\sl r, g, b})|"{\sl color}";}%
+ {\tt outline=({\sl r, g, b})|"{\sl color}";}
+ {\tt innershade=({\sl r, g, b})|"{\sl color}";}
where rgb values in parentheses or a defined color is specified.}%
-%
+
\Letter{E}%
+
\macrodef{earphone}{earphone}{( U|D|L|R|{\sl degrees, size})}%
{cct}%
{earphone, {\sl In1} to {\sl In3} defined
@@ -1064,8 +1077,9 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
\macrodef{expe}{expe}{}%
{gen}%
{exponential, base $e$}%
-%
+
\Letter{F}%
+
\macrodef{f\_box}{f_box}{({\sl boxspecs},{\sl text},{\sl expr1},$\cdots$)}%
{gen}%
{like {\tt s\_box} but the text is overlaid on a box of identical size.
@@ -1111,7 +1125,7 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
{log}%
{General flipflop.
Arg 1 modifies the box (labelled Chip) default specification.
- Each of args 3 to 6 is null or a string of {\sl pinspecs}%
+ Each of args 3 to 6 is null or a string of {\sl pinspecs}
separated by semicolons ({\tt;}). A {\sl Pinspec} is either empty
or of the form
{\tt[}{\sl pinopts}{\tt]:[}{\sl label}{\tt[:}{\sl Picname}{\tt]]}.
@@ -1119,10 +1133,10 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
Pins are placed top to bottom or left to right along the box edges with
null {\sl pinspecs} counted for placement. Pins are named by side and number
by default; eg {\tt W1, W2, ..., N1, N2, ..., E1, ..., S1, ...} ; however,
- if {\tt:}{\sl Picname} is present in a {\sl pinspec} then {\sl Picname}%
+ if {\tt:}{\sl Picname} is present in a {\sl pinspec} then {\sl Picname}
replaces the default name.
A {\sl pinspec} label is text placed at the pin base. Semicolons are
- not allowed in labels; use, e.g., {\tt \char92{}char59\char123\char125}%
+ not allowed in labels; use, e.g., {\tt \char92{}char59\char123\char125}
instead.
To put a bar over a label, use {\tt lg\_bartxt(}{\sl label}{\tt)}.
The {\sl pinopts} are {\tt[N|L|M][E]};
@@ -1131,8 +1145,8 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
{\tt M}: active low in;
{\tt E}: edge trigger \seesect{Logicgates:}.\\
Optional arg 7 is the length of pins}%
-\macrodef{foreach\_}{foreach_}{(`{\sl variable}',{\sl actions},{\sl
- value1, value2, $\ldots$})}%
+\macrodef{foreach\_}{foreach_}{(`{\sl variable}',{\sl actions},%
+ {\sl value1, value2, $\ldots$})}%
{gen}%
{Clone of Loopover\_ by a different name:
Repeat {\sl actions} with {\sl variable} set successively to
@@ -1144,7 +1158,8 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
\macrodef{FTcap}{FTcap}{({\sl chars})}%
{cct}%
{Feed-through capacitor; example of a composite element derived from
- a two-terminal element. Defined points: {\sl .Start, .End, .C .T1 .T2 T}%
+ a two-terminal element. Defined points:
+ {\sl .Start, .End, .C, .T1, .T2, T}\\
Arg 1: {\tt A}: type A (default),
{\tt B}: type B,
{\tt C}: type C
@@ -1153,8 +1168,9 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
{cct}%
{fuse symbol, type$=$
{\tt A|B|C|D|S|HB|HC|SB} or {\tt dA=D}\seesect{Twoterminal:}}%
-%
+
\Letter{G}%
+
\macrodef{gap}{gap}{(\linespec,{\sl fill},A)}%
{cct}%
{gap with (filled) dots, A=chopped arrow between dots\seesect{Twoterminal:}}%
@@ -1172,13 +1188,18 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
\macrodef{G\_hht}{G_hht}{}%
{log}%
{gate half-height in {\tt L\_unit}s}%
-\macrodef{glabel\_}{glabel_}{}%
+\macrodef{geiger}{geiger}{(\linespec, r, {\sl diameter}, R,
+ {\sl body attributes, body name})}%
{cct}%
- {internal general labeller}%
+ {Wrapper that calls {\tt source} with identical arguments except
+ arg2, which is blank or {\tt r} for right orientation.}
+%\macrodef{glabel\_}{glabel_}{}%
+% {cct}%
+% {internal general labeller}%
%\macrodef{gpar\_}{gpar_}{({\sl element},{\sl element},{\sl separation})}%
% {cct}%
% {two same-direction elements in parallel}%
-\macrodef{gpolyline\_}{gpolyline_}{({\sl fraction},{\sl location}, ...)}%
+\macrodef{gpolyline\_}{gpolyline_}{({\sl fraction}, {\sl location}, ...)}%
{gen}%
{internal to {\tt gshade}}%
\macrodef{graystring}{graystring}{({\sl gray value})}%
@@ -1209,11 +1230,12 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
vertices, attempting to avoid sharp corners}%
\macrodef{gyrator}{gyrator}{({\sl box specs,space ratio,pin lgth,}[N][V])}%
{cct}%
- {Gyrator two-port wrapper for {\tt nport}, {\tt N} omits pin dots; {\tt V}%
+ {Gyrator two-port wrapper for {\tt nport}, {\tt N} omits pin dots; {\tt V}
gives a vertical orientation
\seesect{Composite:}}%
-%
+
\Letter{H}%
+
\macrodef{hatchbox}{hatchbox}{({\sl boxspec,hashsep,hatchspec,angle})
{\rm or} hatchbox({\sl keys})}%
{gen}%
@@ -1227,7 +1249,7 @@ B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,%
{\tt fillcolor="{\sl color}"|({\sl r,g,b});}\\
{\tt hatchsep={\sl expr};}\\
{\tt hatchspec={\sl attributes};}\\
- {\tt angle={\sl expr};}%
+ {\tt angle={\sl expr};}
e.g.,
{\tt hatchbox(outlined "blue",{},dashed outlined "green" thick 0.4)};\\
also
@@ -1251,26 +1273,26 @@ n|e|s|w,{\sl length})}%
{Heater element with curved sides\seesect{Twoterminal:}.
{\tt R} means right orientation;
{\tt T} truncates leads to the width of the body.
- The {\sl keys} for the body are
- {\tt lgth={\sl expr};}%
+ The {\sl keys} for the body are\\
+ {\tt lgth={\sl expr};}
{\tt wdth={\sl expr};} (default {\tt lgth*2/5});
{\tt cycles={\sl expr};}%
{\tt line={\sl attributes};} (e.g., {\tt dotted, dashed, outlined})}%
\macrodef{heater}{heater}{({\sl linespec, ndivisions|keys, wid, ht,
boxspec}|[E[R][T]])}%
{cct}%
- {Heater element\seesect{Twoterminal:}. If arg 5 contains {\tt E,}%
- draws an {\tt heatere({\sl linespec, keys,} [R][T]),}%
+ {Heater element\seesect{Twoterminal:}. If arg 5 contains {\tt E,}
+ draws an {\tt heatere({\sl linespec, keys,} [R][T]),}
otherwise a
{\tt heatert({\sl linespec, nparts, wid, ht, boxspec})}}%
\macrodef{heatert}{heatert}{({\sl linespec, nparts|keys, wid, ht, boxspec})}%
{cct}%
{Two-terminal rectangular heater element\seesect{Twoterminal:}.
The {\sl keys} for the body are
- {\tt parts={\sl expr};}%
- {\tt lgth={\sl expr};}%
+ {\tt parts={\sl expr};}
+ {\tt lgth={\sl expr};}
{\tt wdth={\sl expr};} (default {\tt lgth*2/5});
- {\tt box={\sl body attributes};}%
+ {\tt box={\sl body attributes};}
(e.g., {\tt dotted, dashed, outlined, shaded}).
Args 3--5 are unused if any key is given}%
\macrodef{hexadecimal\_}{hexadecimal_}{($n$, [$m$])}%
@@ -1301,8 +1323,9 @@ n|e|s|w,{\sl length})}%
\macrodef{ht\_}{ht_}{}%
{gen}%
{height relative to current direction}%
-%
+
\Letter{I}%
+
\macrodef{ifdpic}{ifdpic}{({\sl if true},{\sl if false})}%
{gen}%
{test if dpic has been specified as pic processor}%
@@ -1314,8 +1337,7 @@ n|e|s|w,{\sl length})}%
{gen}%
{test if the second argument is a substring of the first; also
{\tt ifinstr({\sl string},{\sl string},{\sl if true},{\sl
- string},{\sl string},{\sl if true}, $\ldots$ {\sl if false})}%
- }%
+ string},{\sl string},{\sl if true}, $\ldots$ {\sl if false})} }%
\macrodef{ifmfpic}{ifmfpic}{({\sl if true},{\sl if false})}%
{gen}%
{test if mfpic has been specified as pic post-processor}%
@@ -1381,12 +1403,13 @@ n|e|s|w,{\sl length})}%
{corrected (old) gpic $int()$ function}%
\macrodef{IOdefs}{IOdefs}{(\linespec,{\sl label},[P|N]*,L|R) }%
{log}%
- {Define locations {\sl label}{\tt 1}, $\ldots$ {\sl label}{\tt n}%
+ {Define locations {\sl label}{\tt 1}, $\ldots$ {\sl label}{\tt n}
along the line; {\tt P}: label only;
{\tt N}: with {\tt NOT\_circle};
{\tt R}: circle to right of current direction }%
-%
+
\Letter{J}%
+
\macrodef{jack}{jack}{(U|D|L|R|{\sl degrees},{\sl chars})}%
{cct}%
{arg1: drawing direction; string arg2: {\tt R}: right orientation,
@@ -1402,9 +1425,9 @@ n|e|s|w,{\sl length})}%
{ Two-terminal solder jumper with named body parts.
The {\sl chars} character sequence specifies the jumper components,
and normally begins with {\tt C} and ends with {\tt D.} The character
- {\tt E} is an empty (blank) gap, {\tt J} is a filled gap, {\tt B}%
- is a box component. The components are named {\sl T1, T2, \ldots}%
- Examples: {\tt CED} is a simple open jumper (the default); {\tt CJD}%
+ {\tt E} is an empty (blank) gap, {\tt J} is a filled gap, {\tt B}
+ is a box component. The components are named {\sl T1, T2, \ldots}
+ Examples: {\tt CED} is a simple open jumper (the default); {\tt CJD}
closed; {\tt CEBED} three-contact open; {\tt CJBED} three-contact
open and closed.
The {\sl keys} are: {\tt type=}{\sl chars} as previously;
@@ -1412,21 +1435,23 @@ n|e|s|w,{\sl length})}%
{\tt wdth=}{\sl expr};
{\tt name=}{\sl chars} (the body name)%
\seesect{Twoterminal:}}%
-%
+
\Letter{K}%
+
\macrodef{KelvinR}{KelvinR}{({\sl cycles},[R],{\sl cycle wid})}%
{cct}%
- {IEEE resistor in a {\tt [ ]} block with Kelvin taps {\sl T1} and {\sl T2}%
+ {IEEE resistor in a {\tt [ ]} block with Kelvin taps {\sl T1} and {\sl T2}
\seesect{Composite:}}%
-%
+
\Letter{L}%
+
\macrodef{lamp}{lamp}{(\linespec, [R][T])}%
{cct}%
{Two-terminal incandescent lamp. {\tt T} truncates leads to the body width.
\seesect{Twoterminal:}}%
\macrodef{langle}{langle}{({\sl Start, End})}%
{gen}%
- {Angle in radians from horizontal of the line from {\sl Start}%
+ {Angle in radians from horizontal of the line from {\sl Start}
to {\sl End}.}%
\macrodef{larrow}{larrow}{({\sl label},{\tt ->|<-},{\sl dist})}%
{cct}%
@@ -1459,7 +1484,7 @@ n|e|s|w,{\sl length})}%
\macrodef{length3D}{length3D}{(x,y,z)}%
{3D}%
{Euclidean length of triple x,y,z}%
-\macrodef{LEtangent}{LEtangent}{({\sl Pos1, Centre, ellips wid, ellipse ht}%
+\macrodef{LEtangent}{LEtangent}{({\sl Pos1, Centre, ellips wid, ellipse ht,}
[R])}%
{gen}%
{ Left (right if arg5=R) tangent point of line
@@ -1498,23 +1523,21 @@ n|e|s|w,{\sl length})}%
{set line thickness in points}%
\macrodef{lin\_leng}{lin_leng}{({\sl line-reference})}%
{gen}%
- {length of a line, equivalent to {\sl line-reference}{\tt .len}%
+ {length of a line, equivalent to {\sl line-reference}{\tt .len}
with dpic}%
\macrodef{ljust\_}{ljust_}{}%
{gen}%
{ljust with respect to current direction}%
-\macrodef{llabel}{llabel}{({\sl label},{\sl label},{\sl label},[{\sl arg4}],%
- [{\sl block name}])}%
+\macrodef{llabel}{llabel}{( {\sl label}, {\sl label}, {\sl label},
+ {\sl relative position}, {\sl block name})}%
{cct}%
{Triple label on the left of the body of an element with respect to the
current direction \seesect{Labels:}. Labels are placed at the
- beginning, centre, and end of the last {\tt []} block (or a named
- {\tt []} block). Each label is treated as math by default, but is
- copied literally if it is in double quotes or defined by sprintf.
- {\sl Arg4} can be {\tt above,} {\tt below,} {\tt left,} or {\tt
- right} to supplement the default relative position. The fifth
- argument is the optional name of the {\tt []} block to be labelled,
- which is {\tt last []} by default}%
+ beginning, centre, and end of the last {\tt []} block (or a {\tt []} block
+ named or enumerated in arg5). Each label is treated as math by
+ default, but is copied literally if it is in double quotes or defined
+ by sprintf. {\sl Arg4} can be {\tt above,} {\tt below,} {\tt left,}
+ or {\tt right} to supplement the default relative position.}%
\macrodef{loc\_}{loc_}{({\sl x}, {\sl y})}%
{gen}%
{location adjusted for current direction}%
@@ -1531,7 +1554,7 @@ n|e|s|w,{\sl length})}%
\macrodef{loop}{loop}{({\sl initial assignments, test, loop end, statements})}%
{dpictools}%
{$\;\;$ C-like loop. Commas in arg3 and arg4 must
- be in quotes or parentheses. Example:
+ be in quotes or parentheses. Example:\\
{\tt loop(i=1, i<=3, i+=1, print i)} prints 1, 2, 3.}%
\macrodef{Loopover\_}{Loopover_}{(`{\sl variable}',{\sl actions},{\sl
value1, value2, $\ldots$})}%
@@ -1543,7 +1566,7 @@ n|e|s|w,{\sl length})}%
{\sl fill},
{\sl zero ht})} {gen}%
{for lollipop graphs: filled circle with stem to
- (xcoord,zeroht)}%
+ {\tt ({\sl xcoord,zeroht})}}%
\macrodef{lp\_xy}{lp_xy}{}%
{log}%
{coordinates used by {\tt lg\_pin}}%
@@ -1564,8 +1587,9 @@ n|e|s|w,{\sl length})}%
\macrodef{L\_unit}{L_unit}{}%
{log}%
{logic-element grid size}%
-%
+
\Letter{M}%
+
\macrodef{m4\_arrow}{m4_arrow}{(\linespec,{\sl ht},{\sl wid})}%
{gen}%
{arrow with adjustable head, filled when possible}%
@@ -1597,8 +1621,7 @@ n|e|s|w,{\sl length})}%
{memristor element\seesect{Twoterminal:}}%
\macrodef{microphone}{microphone}{( A|U|D|L|R|{\sl degrees, size, attributes})}%
{cct}%
- {microphone; if arg1 = A: upright mic, otherwise arg1 sets
- direction
+ {microphone; if arg1 = A: upright mic, otherwise arg1 sets direction
of standard microphone with {\sl In1} to {\sl In3} defined
\seesect{Composite:}}%
\macrodef{Min}{Min}{({\sl arg, arg, $\ldots$})}%
@@ -1615,7 +1638,7 @@ n|e|s|w,{\sl length})}%
({\sl Position1,Position2,Position3,length,line attributes})}%
{gen}%
{e.g., {\tt mitre\_(A,B,C)} draws angle ABC with legs
- of length arg4 (default {\tt linethick bp\_\_/2}); sets {\tt Here}%
+ of length arg4 (default {\tt linethick bp\_\_/2}); sets {\tt Here}
to Position2
\seesect{Corners:}}%
\macrodef{mm\_\_}{mm__}{}%
@@ -1656,7 +1679,7 @@ n|e|s|w,{\sl length})}%
numbers, {\tt H} display hexadecimal pin numbers, {\tt X} do not
print pin numbers, {\tt N[{\sl n}]} puts Sel or Sel$0$ .. Sel$n$
at the top (i.e., to the left of the drawing direction), {\tt
- S[{\sl n}]} puts the Sel inputs at the bottom (default) {\tt OE}%
+ S[{\sl n}]} puts the Sel inputs at the bottom (default) {\tt OE}
({\tt N}: negated) {\tt OE} pin \seesect{Logicgates:}}%
\macrodef{Mux\_wid}{Mux_wid}{}%
{cct}%
@@ -1664,8 +1687,9 @@ n|e|s|w,{\sl length})}%
\macrodef{Mx\_pins}{Mx_pins}{}%
{log}%
{max number of gate inputs without wings}%
-%
+
\Letter{N}%
+
\macrodef{NAND\_gate}{NAND_gate}{({\tt {\sl n}, [N][B],
[{\sl wid}, [{\sl ht}]], {\sl attributes}})}%
{log}%
@@ -1756,8 +1780,9 @@ nw,nn,ne,ns,pin lgth,style, other commands})}%
Otherwise, arg1 can be a sequence of letters {\tt P|N} to define
normal or negated inputs.
\seesect{Logicgates:}}%
-%
+
\Letter{O}%
+
\macrodef{opamp}{opamp}{\tt (\linespec,{\sl label, label, size|keys, chars,
other commands})}%
{cct}%
@@ -1794,13 +1819,14 @@ nw,nn,ne,ns,pin lgth,style, other commands})}%
{\tt [N]P}: XOR arc;\\
{\tt [N]O}: output; C=center.\\
Otherwise, arg1 can be a sequence of letters {\tt P|N} to define
- normal or negated inputs. If arg5 contains {\tt shaded rgbstring(...)}%
+ normal or negated inputs. If arg5 contains {\tt shaded rgbstring(...)}
the arguments of {\tt rgbstring} may not contain parentheses.}%
\macrodef{OR\_rad}{OR_rad}{}%
{log}%
{radius of OR input face in {\tt L\_unit}s}%
-%
+
\Letter{P}%
+
\macrodef{parallel\_}{parallel_}{(\char96{\sl elementspec}\char39,%
\char96{\sl elementspec}\char39 $\ldots$)}%
{cct}%
@@ -1843,10 +1869,10 @@ nw,nn,ne,ns,pin lgth,style, other commands})}%
\macrodef{pi\_}{pi_}{}%
{gen}%
{$\pi$}%
-\macrodef{plug}{plug}{(U|D|L|R|{\sl degrees},[2|3][R])}%
+\macrodef{plug}{plug}{\smash{(U|D|L|R|{\sl degrees},[2|3][R])}}%
{cct}%
- {arg1: drawing direction; string arg2: {\tt R} right orientation,
- {\tt 2|3} number of conductors \seesect{Composite:}}%
+ {Phone plug; arg1: drawing direction; arg2: {\tt R} right orientation,
+ {\tt 2|3} number of conductors\seesect{Composite:}}%
\macrodef{pmod}{pmod}{({\sl integer}, {\sl integer})}%
{gen}%
{+ve $\hbox{mod}(M,N)$ e.g., $\hbox{\tt pmod}(-3,5)=2$}%
@@ -1865,19 +1891,22 @@ nw,nn,ne,ns,pin lgth,style, other commands})}%
{\tt line={\sl line attributes};} (e.g., {\tt dashed shaded "blue"}),
{\tt rot={\sl degrees};} (angle of first internal vertex {\tt V[0]}),
{\tt side|rad={\sl expression};} size by side length or by radius.
+ {\tt radv={\sl expression};} radius of rounded vertices. If this is
+ nonzero then any fill has to be by {\tt rgbfill(r,g,b,polygon(...)).}
The internal defined points are the centre {\tt C} and vertices
- {\tt V[0]} $\ldots$ {\tt V[{\sl n}-1]}. }%
+ {\tt V[0]} $\ldots$ {\tt V[{\sl n}]}. }%
\macrodef{posarray}{posarray}{({\sl Name, Position1, Position2, \ldots})}%
{dpictools}%
{$\;\;$ Populate a singly-subscripted array of positions:
- {\tt {\sl Name}[1]:{\sl Position1;}%
+ {\tt {\sl Name}[1]:{\sl Position1;}
{\sl Name}[2]={\sl Position2;} \ldots}.}%
\macrodef{posarray2}{posarray2}{({\sl Name, expr, Position1, Position2,
\ldots})}%
{dpictools}%
{$\;\;$ Populate a doubly-subscripted array of positions:
- {\tt {\sl Name}[{\sl expr},1]={\sl Position1;}%
+ {\tt {\sl Name}[{\sl expr},1]={\sl Position1;}
{\sl Name}[{\sl expr},2]={\sl Position2;} \ldots}.}%
+
\macrodef{potentiometer}{potentiometer}{(\linespec,%
{\sl cycles},{\sl fractional pos},{\sl length},$\cdots$)} {cct}%
{resistor with taps T1, T2, $\ldots$
@@ -1905,7 +1934,7 @@ nw,nn,ne,ns,pin lgth,style, other commands})}%
\macrodef{PtoL}{PtoL}{({\sl position}, U|D|L|R|{\sl degrees}, {\sl length}) }%
{gen}%
{Evaluates to {\tt from {\sl position} to
- {\sl position} + Rect\_({\sl length, angle}) }%
+ {\sl position} + Rect\_({\sl length, angle}) }
from the polar-coordinate data in the arguments }%
\macrodef{pt\_\_}{pt__}{}%
{gen}%
@@ -1918,7 +1947,7 @@ nw,nn,ne,ns,pin lgth,style, other commands})}%
{gen}%
{Key-value definition.
If {\sl string} contains the substring
- {\sl key}{\tt =}{\sl expr} then macro {\tt m4{\sl key}}%
+ {\sl key}{\tt =}{\sl expr} then macro {\tt m4{\sl key}}
is defined using {\tt pushdef()} to
expand to {\tt ({\sl expr})}, or to {\tt ({\sl default value})} if the
substring is missing. Arg 1 can contain several such substrings separated
@@ -1927,10 +1956,15 @@ nw,nn,ne,ns,pin lgth,style, other commands})}%
\seesect{Macroarguments:}}%
\macrodef{pushkeys\_}{pushkeys_}{({\sl string, key sequence})}%
{gen}%
- {Multiple key-value definitions. Arg 2 is a semicolon-separated
- sequence of terms of the form {\tt {\sl key}:{\sl default value}:[N]}%
+ {Multiple key-value definitions. Arg2 is a semicolon-separated
+ sequence of terms of the form {\tt {\sl key}:{\sl default-value}[:N]}
which must contain no semicolons and the default values contain no colons.
+ A key may not be the tail of another key.
Macro {\tt pushkey\_} is applied to each of the terms in order.
+ Quote arg2 for robustness and, if an argument depends on a previous
+ argument, add quotes to delay expansion; for example
+ {\tt pushkeys\_(\char96\$1\char39,\char96{}hght:0.5;
+ wdth:m4\char96\char39hght/2\char39)}.
\seesect{Macroarguments:}}%
\macrodef{pvcell}{pvcell}{({\sl linespec, width, height, attributes})}%
{cct}%
@@ -1938,8 +1972,9 @@ nw,nn,ne,ns,pin lgth,style, other commands})}%
\macrodef{px\_\_}{px__}{}%
{gen}%
{absolute SVG screen pixels}%
-%
+
\Letter{R}%
+
\macrodef{randn}{randn}{({\sl array name, $n,$ mean, stddev})}%
{dpictools}%
{$\;\;$ Assign $n$ Gaussian random numbers in array
@@ -1973,6 +2008,7 @@ degrees, attributes})}%
{\tt SOR}: slow operating and release;\\
{\tt SR}: slow release;\\
{\tt HS}: high speed;\\
+ {\tt S}: diagonal slash;\\
{\tt NAC}: unaffected by AC current;\\
{\tt AC}: AC current;\\
{\tt ML}: mechanically latched;\\
@@ -1997,19 +2033,20 @@ degrees, attributes})}%
\macrodef{resetrgb}{resetrgb}{}%
{gen}%
{cancel {\tt r\_, g\_, b\_} color definitions}%
-\macrodef{resistor}{resistor}{(\linespec, n|E, {\sl chars}, {\sl cycle wid})}%
+\macrodef{resistor}{resistor}{(\linespec, n, {\sl chars}, {\sl cycle wid})}%
{cct}%
{resistor, n cycles (default 3), {\sl chars:}\\
{\tt AC}: general complex element,\\
{\tt E}: {\tt ebox},\\
{\tt ES}: {\tt ebox} with slash,\\
+ {\tt F}: FDNR (frequency-dependent negative resistor),\\
{\tt Q}: offset,\\
{\tt H}: squared,\\
{\tt N}: IEEE,\\
{\tt B}: not burnable,\\
{\tt V}: varistor variant,\\
- {\tt R}: right-oriented,\\
- {\sl cycle width} (default {\tt dimen\_}$/6$)
+ {\tt R}: right-oriented;\\
+ Arg4: {\sl cycle width} (default {\tt dimen\_}$/6$)
\seesect{Twoterminal:}}%
\macrodef{resized}{resized}{({\sl factor},`{\sl macro name}',args)}%
{cct}%
@@ -2048,38 +2085,37 @@ degrees, attributes})}%
{dpictools}%
{$\;\;$ rgb color triple to hsv with {\sl h} range 0 to 360.}%
\macrodef{RightAngle}{RightAngle}{({\sl Pos1, Pos2, Pos3, line len,
- attributes})} {gen}%
- {Draw a right-angle symbol at {\sl Pos2}, of size
- given by arg4. Arg5 =
- line attributes, e.g., {\tt outlined "gray"}}%
+ attributes})}%
+ {gen}%
+ {Draw a right-angle symbol at {\sl Pos2}, of size given by arg4.
+ Arg5 = line attributes, e.g., {\tt outlined "gray"} or e.g. to add a dot,
+ {\tt ;dot(at last line.c)}}%
\macrodef{right\_}{right_}{}%
{gen}%
{set current direction right \seesect{Placing:}}%
\macrodef{rjust\_}{rjust_}{}%
{gen}%
{right justify with respect to current direction}%
-\macrodef{rlabel}{rlabel}{({\sl label},{\sl label},{\sl label},[{\sl arg4}],%
- [{\sl block name}])}%
+\macrodef{rlabel}{rlabel}{( {\sl label}, {\sl label}, {\sl label},
+ {\sl relative position}, {\sl block name})}%
{cct}%
{Triple label on the right of the body of an element with respect to the
current direction \seesect{Labels:}. Labels are placed at the
- beginning, centre, and end of the last {\tt []} block (or a named
- {\tt []} block). Each label is treated as math by default, but is
- copied literally if it is in double quotes or defined by sprintf.
- {\sl Arg4} can be {\tt above,} {\tt below,} {\tt left,} or {\tt
- right} to supplement the default relative position. The fifth
- argument is the optional name of the {\tt []} block to be labelled,
- which is {\tt last []} by default}%
+ beginning, centre, and end of the last {\tt []} block (or a {\tt []} block
+ named or enumerated in arg5). Each label is treated as math by
+ default, but is copied literally if it is in double quotes or defined
+ by sprintf. {\sl Arg4} can be {\tt above,} {\tt below,} {\tt left,}
+ or {\tt right} to supplement the default relative position.}%
\macrodef{rot3Dx}{rot3Dx}{({\sl radians,x,y,z})}%
{3D} {rotates x,y,z about x axis}%
\macrodef{rot3Dy}{rot3Dy}{({\sl radians,x,y,z})}%
{3D} {rotates x,y,z about y axis}%
\macrodef{rot3Dz}{rot3Dz}{({\sl radians,x,y,z})}%
{3D} {rotates x,y,z about z axis}%
-\macrodef{rotbox}{rotbox}{({\sl wid,ht,type},[r|t={\sl val}])}%
+\macrodef{rotbox}{rotbox}{({\sl wid,ht,attributes},[r|t={\sl val}])}%
{gen}%
{box oriented in current direction in {\tt [ ]} block;
- {\sl type=} e.g. {\tt dotted shaded "green".} Defined internal
+ {\sl attributes:} e.g. {\tt dotted shaded "green".} Defined internal
locations: N, E, S, W (and NE, SE, NW, SW if arg4 is blank). If arg4
is {\tt r=}{\sl val} then corners have radius {\sl val}. If arg4 is
{\tt t=}{\sl val} then a spline with tension {\sl val} is used to draw
@@ -2097,8 +2133,7 @@ degrees, attributes})}%
{rotate {\sl x,y} by theta radians}%
\macrodef{round}{round}{(at {\sl location,line thickness,attributes})}%
{gen}%
- {filled circle for rounded corners; attributes={\tt colored
- "gray"}%
+ {filled circle for rounded corners; attributes={\tt colored "gray"}
for example; leaves {\tt Here} unchanged if arg1 is blank
\seesect{Corners:}}%
\macrodef{rpoint\_}{rpoint_}{(\linespec)}%
@@ -2148,13 +2183,14 @@ degrees, attributes})}%
\macrodef{rvec\_}{rvec_}{({\sl x},{\sl y})}%
{gen}%
{location relative to current direction}%
-%
+
\Letter{S}%
+
\macrodef{sarrow}{sarrow}{(\linespec,{\sl keys})}%
{gen}%
{Single-segment, single-headed special arrows with {\sl keys}:\\
{\tt type=}{\tt O[pen]} (default)
- | {\tt D[iamond]} | {\tt C[rowfoot]} | {\tt P[lain]}%
+ | {\tt D[iamond]} | {\tt C[rowfoot]} | {\tt P[lain]}
| {\tt R[ight]} | {\tt L[eft]} {\tt ;}\\
{\tt wdth=}{\sl expression}{\tt ;} (default {\tt arrowwid})\\
{\tt lgth=}{\sl expression}{\tt ;} (default {\tt arrowht})\\
@@ -2169,8 +2205,9 @@ degrees, attributes})}%
\macrodef{s\_box}{s_box}{({\sl text},{\sl expr1},$\cdots$)}%
{gen}%
{generate dimensioned text string using {\tt\char92{}boxdims} from
- {\tt boxdims.sty}. Two or more args are passed to {\tt sprintf()}%
+ {\tt boxdims.sty}. Two or more args are passed to {\tt sprintf()}
(default 90) degrees \seesect{Interaction:}}%
+
\macrodef{sbs}{sbs}{({\sl linespec, chars, label})}%
{cct}%
{Wrapper to place an SBS thyristor as a two-terminal element with
@@ -2191,17 +2228,22 @@ degrees, attributes})}%
\seesect{Semiconductors:}}%
\macrodef{s\_dp}{s_dp}{({\sl name},{\sl default})}%
{gen}%
- {depth of the most recent (or named) {\tt s\_box}%
+ {depth of the most recent (or named) {\tt s\_box}
\seesect{Interaction:}}%
\macrodef{series\_}{series_}{({\sl elementspec}, {\sl elementspec},
$\ldots$)}%
{cct}%
{ Series combination in a {\tt []} block of elements
- with shortened default length. An {\sl elementspec} is of the
- form {\tt [{\sl Label}:] {\sl element}; [{\sl attributes}]},
- where an {\sl attribute} is of the form {\tt [llabel($\ldots$);] |
- [rlabel($\ldots$);] [b\_current($\ldots$);]}. Internal points {\tt
- Start}, {\tt End}, and {\tt C} are defined
+ with shortened default length.
+ Each argument is an elementspec of the form\\
+ {\tt[Sep={\sl val};][{\sl Label}:]{\sl element};[{\sl attributes}]} where
+ an {\sl attribute} is of the form\\
+ {\tt[llabel($\ldots$);]|[rlabel($\ldots$);]|[b\_current($\ldots$);]}.\\
+ An argument may also be {\tt series\_($\ldots$)} or {\tt
+ parallel\_($\ldots$)} {\em without} attributes or quotes.
+ An element may have normal arguments but should not
+ change the drawing direction.
+ Internal points {\tt Start}, {\tt End}, and {\tt C} are defined
\seesect{Seriesandparallel:} }%
\macrodef{se\_}{se_}{}%
{gen}%
@@ -2217,7 +2259,7 @@ $\ldots$)}%
\macrodef{setkey\_}{setkey_}{({\sl string, key, default,}[N])}%
{gen}%
{Key-value definition, like {\tt pushkey\_()} but the resulting
- macro is defined using {\tt define()} rather than {\tt pushdef().}%
+ macro is defined using {\tt define()} rather than {\tt pushdef().}
\seesect{Macroarguments:}}%
\macrodef{setkeys\_}{setkeys_}{({\sl string, key sequence})}%
{gen}%
@@ -2251,11 +2293,10 @@ justification},cw|ccw,
\macrodef{sfgbelow}{sfgbelow}{}%
{cct}%
{like below but with extra space}%
-\macrodef{sfg\_init}{sfg_init}{({\sl default line len, node rad,
-arrowhd len,
- arrowhd wid}), (reads {\tt libcct.m4})} {cct}%
- {initialization of signal
- flow graph macros}%
+\macrodef{sfg\_init}{sfg_init}{({\sl default line len, node rad, arrowhd len,
+ arrowhd wid}), (reads {\tt libcct.m4})}
+ {cct}%
+ {initialization of signal flow graph macros}%
\macrodef{sfgline}{sfgline}{(\linespec,{\sl text},{\tt
sfgabove|sfgbelow|ljust|rjust},{\sl line attributes})}%
{cct}%
@@ -2265,7 +2306,7 @@ arrowhd len,
circle attributes})}%
{cct}%
{small circle default white interior, with text label. The default
- label position is inside if the diameter is bigger than {\tt textht}%
+ label position is inside if the diameter is bigger than {\tt textht}
and {\tt textwid}; otherwise it is {\tt sfgabove.} Options such as
color, fill, or line thickness can be given, e.g.,
{\tt thick 0.8 outlined "red" shaded "orange"}. }%
@@ -2279,11 +2320,19 @@ arrowhd len,
\macrodef{shade}{shade}{({\sl gray value},{\sl closed line specs})}%
{gen}%
{Fill arbitrary closed curve. Note: when producing pdf via pdflatex, line
- thickness changes within this macro must be made via the {\tt linethick}%
+ thickness changes within this macro must be made via the {\tt linethick}
environment variable rather than by the {\tt thickness} line attribute}%
\macrodef{shadebox}{shadebox}{(box {\sl attributes, shade width})}%
{gen}%
{Box with edge shading. Arg2 is in points. See also {\tt shaded} }%
+\macrodef{shadedball}{shadedball}{({\sl radius, highlight radius,
+ highlight degrees, initial gray, final gray} | ({\sl rf,gf,bf}))}%
+ {3D}%
+ { Shaded ball in {\tt [ ]} box.
+ The highlight is by default at {\sl radius}*3/5 and angle 110 deg
+ (or arg2 deg); if setlight has been invoked then its azimuth and
+ elevation arguments determine highlight position. Arg5 can be a
+ parenthesized rgb color.}
\macrodef{ShadedPolygon}{ShadedPolygon}{({\sl vertexseq, line attributes,
degrees, colorseq})} {gen}%
{Draws the polygon specified in arg1 and
@@ -2293,35 +2342,49 @@ arrowhd len,
(or names) of the polygon in cw or ccw order. A {\sl colorseq} is of
the form 0, r0,g0,b0, {\sl frac1},r1,g1,b1, {\sl frac2},r2,g2,b2,
\ldots 1,rn,gn,bn with $0 < \hbox{\sl frac1} < \hbox{\sl frac2} \ldots 1$ }%
-\macrodef{ShadeObject}{ShadeObject}{({\sl drawroutine name, n, colorseq})}%
+\macrodef{ShadeObject}{ShadeObject}{({\sl drawroutine, n, colorseq})}%
{dpictools}%
- {$\;\;$ Fill an area in a {\tt []} block with graded color
+ {$\;\;$
+ Fill an area in a {\tt []} block with graded color
defined by {\sl colorseq,} an indexed sequence of rgb colors:
- {\sl 0,r0,g0,b0,}%
- {\sl frac1,r1,g1,b1,}%
- {\sl frac2,r2,g2,b2,}%
+ \fra{0}{\sl,r0,g0,b0,}
+ \fra{1}{\sl,r1,g1,b1,}
\ldots
- {\sl 1,rn,gn,bn}%
- with $0 < \hbox{\sl frac1}$ $< \hbox{\sl frac2} <$ $\ldots < 1.$ The macro
- {\sl drawroutine{\tt(}frac, r, g, b{\tt)}} typically draws a colored line
+ \fra{n}{\sl,rn,gn,bn} with\\
+ $0 \leq \fra{0} < \fra{1}$
+ $< \fra{2} <$
+ $\ldots$
+ $\fra{n} \leq 1.$\\
+ (Often $\fra{0} = 0$ and $\fra{n} = 1.$)
+ The dpic macro\\
+ {\sl drawroutine{\tt(}frac, r, g, b{\tt)}}\\
+ typically draws a colored line
and must be defined according to the area to be filled.
- The routine is called $n{+}1$ times for
- $\hbox{\sl frac}= 0, 1/n, 2/n, \ldots 1$ with rgb arguments interpolated
- in hsv space between {\sl colorseq} points.
+ This routine is called $n{+}1$ times for
+ $\fra{}= \fra{0},\;$
+ $\fra{0} + 1/n\times(\fra{n}{-}\fra{0}),$
+ $\fra{0} + 2/n\times(\fra{n}{-}\fra{0}),$
+ \ldots
+ \fra{n}\\
+ (i.e., often
+ $\fra{} = 0, 1/n, 2/n, \ldots 1$)\\
+ with rgb
+ arguments interpolated in hsv space between {\sl colorseq} points
+ (which are specified in rgb-space).
Example (shade a box with 101 graded-color lines):\\
{\tt B: box\\
define HorizShade \lbr\ line right B.wid \textbackslash\\
- $\;$ thick B.ht/100/(1bp\_\_) from (0,-(\$1)*B.ht) \textbackslash\\
- $\;$ outlined rgbstring(\$2,\$3,\$4) \rbr;}%
- {\tt ShadeObject(HorizShade,100, 0,1,0,0, 1,0,0,1) \textbackslash\\
- $\;$ at B}.}%
+ $\;$ from (0,-(\char36{}1)*B.ht) \textbackslash\\
+ $\;$ outlined rgbstring(\char36{}2,\char36{}3,\char36{}4) \rbr;}\\
+ {\tt ShadeObject(HorizShade, B.ht/lthick, 0,1,0,0, 1,0,0,1) at B}.
+ }%
\macrodef{shadowed}{shadowed}{(box|circle|ellipse|line,
{\sl position spec, keys})}%
{gen}%
{ Object with specified shadow. {\sl possspec} is e.g.,
{\tt with .w at ...} or {\tt at} {\sl position}.
The {\sl keys} are
- {\tt attrib=}{\sl object attributes}{\tt ;}%
+ {\tt attrib=}{\sl object attributes}{\tt ;}
{\tt shadowthick=}{\sl expr}{\tt ;} (default {\tt linethick*)}5/4),
{\tt shadowcolor=}{\sl string}{\tt ;} (default {\tt "gray"}),
{\tt shadowangle=}{\sl expr}{\tt ;} (default $-45$)
@@ -2370,6 +2433,7 @@ arrowhd len,
e.g., to draw a dashed sine curve, amplitude {\sl a},
of {\sl n} cycles of length {\sl x} from {\sl A}, {\tt
sinusoid(a,twopi\_*n/x,-pi\_/2,0,x,dashed) with .Start at A}}%
+
\macrodef{sl\_box}{sl_box}{({\sl stem linespec, keys, stem object})}%
{SLD}%
{One-terminal SLD element: argument 1 is a \linespec\ to define the stem
@@ -2402,7 +2466,7 @@ arrowhd len,
{\tt C} for a curved breaker; adding a {\tt D} puts drawout elements
in the input and output leads.
Otherwise, the arguments are as for
- \MR{sl_ttbox}{\tt sl\_ttbox}%
+ \MR{sl_ttbox}{\tt sl\_ttbox}
\seesect{SingleLine:}}%
\macrodef{sl\_busbar}{sl_busbar}{({\sl linespec, np, keys})}%
{SLD}%
@@ -2469,19 +2533,19 @@ arrowhd len,
Argument 3 is null for no breaker in the stem, {\tt C} for a default
closed breaker, {\tt O} for an open breaker, {\tt X,} {\tt /,} or \bsl\ for
these marks, or
- \MR{sl_ttbox}{\tt sl\_ttbox}%
+ \MR{sl_ttbox}{\tt sl\_ttbox}
key-value pairs defining box attributes for the breaker
(default name {\sl Br})
- \label{sl_disk}%
+ \label{sl_disk}
\seesect{SingleLine:}}%
\macrodef{sl\_drawout}{sl_drawout}{({\sl linespec, keys,} R)}%
{SLD}%
{Two-terminal SLD element: argument 1 is a \linespec\ as for ordinary
two-terminal elements.
- Argument 2 contains semicolon (;)-separated key-value body attributes:
+ Argument 2 contains semicolon (;)-separated key-value body attributes:\\
{\tt type=T} (for truncated leads);
- {\tt lgth={\sl{}expr},}%
+ {\tt lgth={\sl{}expr},}
{\tt wdth={\sl{}expr}} (body size);
{\tt name={\sl{}Name}} (default {\sl Body});
{\tt line={\sl{}pic line attributes}}; (e.g., {\tt thick 2})
@@ -2498,7 +2562,7 @@ arrowhd len,
Argument 3 is null for no breaker in the stem, {\tt C} for a default
closed breaker, {\tt O} for an open breaker, {\tt X,} {\tt /,} or \bsl\ for
these marks, or
- \MR{sl_ttbox}{\tt sl\_ttbox}%
+ \MR{sl_ttbox}{\tt sl\_ttbox}
key-value pairs defining box attributes for the breaker
(default name {\sl Br})
\seesect{SingleLine:}}%
@@ -2518,19 +2582,20 @@ arrowhd len,
Argument 3 is null for no breaker in the stem, {\tt C} for a default
closed breaker, {\tt O} for an open breaker, {\tt X,} {\tt /,} or \bsl\ for
these marks, or
- \MR{sl_ttbox}{\tt sl\_ttbox}%
+ \MR{sl_ttbox}{\tt sl\_ttbox}
key-value pairs defining box attributes for the breaker
(default name {\sl Br})
\seesect{SingleLine:}}%
\macrodef{sl\_inverter}{sl_inverter}{({\sl ttbox args})}%
{SLD}%
{Two-terminal SLD element: the arguments are as for
- \MR{sl_ttbox}{\tt sl\_ttbox}%
+ \MR{sl_ttbox}{\tt sl\_ttbox}
\seesect{SingleLine:}}%
+
\macrodef{sl\_lamp}{sl_lamp}{({\sl stem linespec, keys, breaker})}%
{SLD}%
{One-terminal SLD element: the arguments are as for
- \MR{sl_disk}{\tt sl\_disk}%
+ \MR{sl_disk}{\tt sl\_disk}
\seesect{SingleLine:}}%
\macrodef{sl\_load}{sl_load}{({\sl stem linespec, keys, breaker})}%
{SLD}%
@@ -2549,7 +2614,7 @@ arrowhd len,
Argument 3 is null for no breaker in the stem, {\tt C} for a default
closed breaker, {\tt O} for an open breaker, {\tt X,} {\tt /,} or \bsl\ for
these marks, or
- \MR{sl_ttbox}{\tt sl\_ttbox}%
+ \MR{sl_ttbox}{\tt sl\_ttbox}
key-value pairs defining box attributes for the breaker
(default name {\sl Br})
\seesect{SingleLine:}}%
@@ -2571,7 +2636,7 @@ arrowhd len,
Argument 3 is null for no breaker in the stem, {\tt C} for a default
closed breaker, {\tt O} for an open breaker, {\tt X,} {\tt /,} or \bsl\ for
these marks, or
- \MR{sl_ttbox}{\tt sl\_ttbox}%
+ \MR{sl_ttbox}{\tt sl\_ttbox}
key-value pairs defining box attributes for the breaker
(default name {\sl Br})
\seesect{SingleLine:}}%
@@ -2587,8 +2652,7 @@ arrowhd len,
Argument 3 is null for no breaker in the input lead, {\tt C} for a default
closed breaker, {\tt O} for an open breaker, {\tt X,} {\tt /,} or \bsl\ for
- these marks, or
- key-value pairs as above defining breaker attributes
+ these marks, or key-value pairs as above defining breaker attributes
except that the default breaker name is {\sl BrI}.
Argument 4 defines the breaker in the output lead as for argument 3
@@ -2597,7 +2661,7 @@ arrowhd len,
\macrodef{sl\_rectifier}{sl_rectifier}{({\sl ttbox args})}%
{SLD}%
{Two-terminal SLD element: the arguments are as for
- \MR{sl_ttbox}{\tt sl\_ttbox}%
+ \MR{sl_ttbox}{\tt sl\_ttbox}
\seesect{SingleLine:}}%
\macrodef{sl\_slash}{sl_slash}{(at {\sl position, keys,}%
[$n$:]R|L|U|D|{\sl degrees})}%
@@ -2625,8 +2689,8 @@ arrowhd len,
Argument 3 is colon (:)-separated sequence of up to three breaker
attribute specifications for the input, output, and teriary breaker
- in order. A null or blank means no breaker, {\tt tt\_breaker}%
- specifications otherwise. Default breaker names are {\sl BrI}%
+ in order. A null or blank means no breaker, {\tt tt\_breaker}
+ specifications otherwise. Default breaker names are {\sl BrI}
and {\sl BrO} as for
{\tt sl\_transformer,} and {\sl Br} for the third breaker.
@@ -2699,7 +2763,7 @@ arrowhd len,
Argument 4 defines the breaker in the output lead as for argument 3
except that the default breaker name is {\sl BrO}.
- \label{sl_ttbox}%
+ \label{sl_ttbox}
\seesect{SingleLine:}}%
\macrodef{s\_name}{s_name}{}%
{gen}%
@@ -2713,37 +2777,39 @@ arrowhd len,
{dpictools}%
{$\;\;$ Trapezoid formed from a box with top corners displaced right by
$x$ offset and right corners displaced up by $y$ offset.}%
-\macrodef{source}{source}{(\linespec,
- V|v|tv|I|i|ti|ii|AC|B|F|G|H|J|Q|L|N|P|S[C[r]]|E[r]]|T|X|U|{\sl other}, {\sl
- diameter},R)}%
+\macrodef{source}{source}{(\linespec, {\sl char or chars}, {\sl diameter},R,
+ {\sl body attributes, body name})}%
{cct}%
- {source, arg2 blank or:\\
- {\tt V}: voltage source;\\
- {\tt v}: alternate voltage source;\\
- {\tt tv}: truncated-bar alternate voltage source;\\
- {\tt I}: current source;\\
- {\tt i}: alternate current source;\\
- {\tt ti}: truncated-bar alternate current source;\\
- {\tt ii}: double arrow current source; AC: AC source;\\
+ {Source; arg2 blank or:\\
+ {\tt AC}: AC source;\\
{\tt B}: bulb;\\
{\tt F}: fluorescent;\\
{\tt G}: generator;\\
{\tt H}: step function;\\
+ {\tt I}: current source;\\
+ {\tt i}: alternate current source;\\
+ {\tt ii}: double arrow current source;\\
+ {\tt ti}: truncated-bar alternate current source;\\
{\tt L}: lamp;\\
{\tt N}: neon;\\
+ {\tt NA}: neon 2;\\
+ {\tt NB}: neon 3;\\
{\tt P}: pulse;\\
{\tt Q}: charge;\\
{\tt R}: ramp;
- {\tt r}: right orientation;
{\tt S}: sinusoid;\\
- {\tt SC}: quarter arc;\\
- {\tt SE}: arc;\\
+ {\tt SC}: quarter arc, {\tt SCr} right orientation;\\
+ {\tt SE}: arc, {\tt SEr} right orientation;\\
{\tt T}: triangle;\\
{\tt U}: square-wave;\\
+ {\tt V}: voltage source;\\
{\tt X}: interior X;\\
+ {\tt v}: alternate voltage source;\\
+ {\tt tv}: truncated-bar alternate voltage source;\\
other: custom interior label or waveform;\\
arg 4: R: reversed polarity;\\
- arg 5 modifies the circle with e.g., color or fill
+ arg 5 modifies the circle (body) with e.g., color or fill;\\
+ arg 6 names the body {\tt [ ]} block
\seesect{Twoterminal:}}%
\macrodef{speaker}{speaker}{( U|D|L|R|{\sl degrees},{\sl size},H,attributes)}%
{cct}%
@@ -2775,8 +2841,7 @@ arrowhd len,
{Stack arg 2, arg 3, ... onto the named stack up to a blank arg}%
\macrodef{stackcopy\_}{stackcopy_}{(`{\sl name 1}',`{\sl name 2}')}%
{gen}%
- {Copy stack 1 into stack 2, preserving the order of pushed
- elements}%
+ {Copy stack 1 into stack 2, preserving the order of pushed elements}%
\macrodef{stackdo\_}{stackdo}{(`{\sl stackname}',{\sl commands})}%
{gen}%
{Empty the stack to the first blank entry, performing arg 2}%
@@ -2838,8 +2903,9 @@ arrowhd len,
\macrodef{sw\_}{sw_}{}%
{gen}%
{.sw with respect to current direction}%
-%
+
\Letter{T}%
+
\macrodef{tapped}{tapped}{(`{\sl two-terminal element}',
[{\sl arrowhd} | type={\sl arrowhd};name={\sl Name}],
{\sl fraction, length, fraction, length,} $\cdots$)}%
@@ -2871,13 +2937,13 @@ arrowhd len,
block. The permissible {\sl chars} are:
{\tt > | >{}> | < | <{}< | A | AA | M | O | OF}.
Type {\tt O} draws a node (circle); {\tt OF} a filled circle.
- Type {\tt M} is a black bar; {\tt A} is an open arc end; type {\tt AA}%
+ Type {\tt M} is a black bar; {\tt A} is an open arc end; type {\tt AA}
a double open arc. Type {\tt >} (the default) is an arrow-like output
connector; {\tt <} and {\tt <<} input connectors. Arg 3 is arrowhead
width or circle diameter when key-value pairs are not used.
If keys are specified, they are {\tt type=}{\sl chars} as previously;
{\tt wdth=}{\sl expr}; {\tt lgth=}{\sl expr}; {\tt sep=}{\sl expr};
- {\tt head=}{\sl attributes except} {\tt lgth, wdth.}%
+ {\tt head=}{\sl attributes except} {\tt lgth, wdth.}
The key {\tt sep=} is the double-head separation
\seesect{Composite:}}%
\macrodef{testexpr}{testexpr}{({\sl variable, expr1, expr2, \ldots})}%
@@ -2894,8 +2960,8 @@ arrowhd len,
{cct}%
{ Thermocouple drawn to the left (by default) of the
{\sl linespec} line. A {\tt T} argument truncates the leads so
- only the two branches appear. {\tt R=}%
- right orientation. \seesect{Twoterminal:}}%
+ only the two branches appear. {\tt R=} right orientation.
+ \seesect{Twoterminal:}}%
\macrodef{thicklines\_}{thicklines_}{({\sl number})}%
{gen}%
{set line thickness in points}%
@@ -2972,7 +3038,7 @@ arrowhd len,
{terminal strip, chars:
I (invisible terminals), C (default circle terminals), D (dot terminals),
O (omitted separator lines), {\tt wid=}value{\tt ;} total strip width,
- {\tt ht=}value{\tt ;} strip height, {\tt box={\sl shaded etc.};}%
+ {\tt ht=}value{\tt ;} strip height, {\tt box={\sl shaded etc.};}
\seesect{Composite:}}%
\macrodef{ttmotor}{ttmotor}{({\sl linespec, string, diameter, brushwid,
brushht})}%
@@ -2981,8 +3047,9 @@ brushht})}%
\macrodef{twopi\_}{twopi_}{}%
{gen}%
{$2\pi$}%
-%
+
\Letter{U}%
+
\macrodef{ujt}{ujt}{(\linespec,R,P,E)}%
{cct}%
{unijunction transistor, right, P-channel, envelope
@@ -2995,8 +3062,9 @@ brushht})}%
\macrodef{up\_}{up_}{}%
{gen}%
{set current direction up \seesect{Placing:}}%
-%
+
\Letter{V}%
+
\macrodef{variable}{variable}{(`{\sl element}', {\sl chars}, [+|-]{\sl angle},
{\sl length}, at position)}%
% {\tt [A|P|L|[u]N|[u]NN][C|S]},
@@ -3019,8 +3087,7 @@ brushht})}%
{The $x, y$ coordinate pair of the position}%
\macrodef{Vdiff\_}{Vdiff_}{({\sl position},{\sl position})}%
{gen}%
- {{\tt Vdiff\_(A,B)} evaluates to {\tt A-(B)} with dpic, {\tt
- A-(B.x,B.y)}%
+ {{\tt Vdiff\_(A,B)} evaluates to {\tt A-(B)} with dpic, {\tt A-(B.x,B.y)}
with gpic}%
\macrodef{vec\_}{vec_}{({\sl x},{\sl y})}%
{gen}%
@@ -3041,8 +3108,7 @@ brushht})}%
{unit-vector pair CCW-perpendicular to linear object}%
\macrodef{Vperp}{Vperp}{({\sl position name}, {\sl position name})}%
{gen}%
- {unit-vector pair CCW-perpendicular to line joining two named
- positions}%
+ {unit-vector pair CCW-perpendicular to line joining two named positions}%
\macrodef{vrot\_}{vrot_}{({\sl x},{\sl y},{\sl xcosine},{\sl ycosine})}%
{gen}%
{rotation operator}%
@@ -3054,11 +3120,11 @@ brushht})}%
{The vector in arg 1 multiplied by the scalar in arg 2}%
\macrodef{Vsum\_}{Vsum_}{({\sl position},{\sl position})}%
{gen}%
- {{\tt Vsum\_(A,B)} evaluates to {\tt A+B} with dpic, {\tt
- A+(B.x,B.y)}%
+ {{\tt Vsum\_(A,B)} evaluates to {\tt A+B} with dpic, {\tt A+(B.x,B.y)}
with gpic}%
-%
+
\Letter{W}%
+
\macrodef{while\_}{while_}{(`{\sl test}',`{\sl actions}')}%
{gen}%
{Integer m4 while loop}%
@@ -3082,8 +3148,9 @@ brushht})}%
\macrodef{XOR\_off}{XOR_off}{}%
{log}%
{XOR and NXOR offset of input face}%
-%
+
\Letter{X}%
+
\macrodef{xtal}{xtal}{(\linespec,{\sl keys})}%
{cct}%
{Quartz crystal. The {\sl keys} are
@@ -3102,7 +3169,9 @@ brushht})}%
\macrodef{xtract}{xtract}{({\sl string, substr1, substr2, $\ldots$})}%
{gen}%
{returns substrings if present}%
+
\Letter{Y}%
+
\macrodef{Ysymbol}{Ysymbol}{(at {\sl position},keys,
U|D|L|R|{\sl degrees}) (default {\tt U} for up)}%
{cct}%
diff --git a/graphics/circuit_macros/doc/quick.m4 b/graphics/circuit_macros/doc/quick.m4
index 7de2399601..1d849e2809 100644
--- a/graphics/circuit_macros/doc/quick.m4
+++ b/graphics/circuit_macros/doc/quick.m4
@@ -1,16 +1,14 @@
.PS # Pic input begins with .PS
cct_init # Read in macro definitions and set defaults
elen = 0.75 # Variables are allowed; default units are inches
-Origin: Here # Position names are capitalized
- source(up_ elen); llabel(-,v_s,+)
- resistor(right_ elen); rlabel(,R,)
+Vs: source(up_ elen); llabel(-,v_s,+) # Name and label the source
+ resistor(right_ elen); rlabel(,R,) # Semicolon and line end are equivalent
dot
{ # Save the current position and direction
- capacitor(down_ to (Here,Origin)) #(Here,Origin) = (Here.x,Origin.y)
- rlabel(+,v,-); llabel(,C,)
+ capacitor(down_ Vs.len); rlabel(+,v,-); llabel(,C,)
dot
} # Restore position and direction
line right_ elen*2/3
- inductor(down_ Here.y-Origin.y); rlabel(,L,); b_current(i)
- line to Origin
+ inductor(down_ Vs.len); rlabel(,L,); b_current(i)
+ line to (Vs,Here) # (Vs,Here) = (Vs.x,Here.y)
.PE # Pic input ends
diff --git a/graphics/circuit_macros/doc/relaycoilMan.m4 b/graphics/circuit_macros/doc/relaycoilMan.m4
index 962b0732b9..0d0641b2ad 100644
--- a/graphics/circuit_macros/doc/relaycoilMan.m4
+++ b/graphics/circuit_macros/doc/relaycoilMan.m4
@@ -1,44 +1,46 @@
+
.PS
-# relaycoil.m4
+# relaycoilMan.m4
cct_init
spc = dimen_/3
{ relaycoil; S: `"\tt relaycoil"' at last [].s+(0,-16bp__)
- {`"\sl V1"' wid 10bp__ at last [].V1 rjust
- `"\sl V2"' at last [].V2 ljust }
- K: relaycoil(NX,,,,fill_(0.9)) with .nw at last [].ne+(spc*4,0)
- `"\tt (NX,{,},{,}"' at (last [],S) `"\tt fill\_(0.9))"'
+ { "\sl V1" wid 10bp__ at last [].V1 rjust
+ "\sl V2" at last [].V2 ljust }
+ relaycoil(S) with .nw at last [].ne+(spc*2,0); "\tt (S)" at (last [],S)
+ K: relaycoil(NX) with .nw at last [].ne+(spc*3,0); "\tt (NX)" at (last [],S)
{ thinlines_
- spline <- from K.A1 left 7bp__ then up 4bp__ left 4bp__;`"\sl A1"' rjust
- arrow <- from K.A2 left 10bp__;`"\sl A2"' rjust
- spline <- from K.A3 left 7bp__ then down 4bp__ left 4bp__;`"\sl A3"' rjust
- spline <- from K.B1 right 7bp__ then up 4bp__ right 4bp__;`"\sl B1"' ljust
- arrow <- from K.B2 right 10bp__;`"\sl B2"' ljust
- spline <- from K.B3 right 7bp__ then down 4bp__ right 4bp__;`"\sl B3"' ljust
+ spline <- from K.A1 left 7bp__ then up 4bp__ left 4bp__; "\sl A1" rjust
+ arrow <- from K.A2 left 10bp__; "\sl A2" rjust
+ spline <- from K.A3 left 7bp__ then down 4bp__ left 4bp__; "\sl A3" rjust
+ spline <- from K.B1 right 7bp__ then up 4bp__ right 4bp__; "\sl B1" ljust
+ arrow <- from K.B2 right 10bp__; "\sl B2" ljust
+ spline <- from K.B3 right 7bp__ then down 4bp__ right 4bp__; "\sl B3" ljust
thicklines_
}
- relaycoil(AXSR) with .nw at last [].ne+(spc*5,0);`"\tt (AXSR)"' at (last [],S)
- {`"\sl V1"' at last [].V1 rjust;`"\sl V2"' at last [].V2 rjust }
- relaycoil(BXSR) with .nw at last [].ne+(spc*2,0);`"\tt (BXSR)"' at (last [],S)
- {`"\sl V1"' at last [].V1 ljust;`"\sl V2"' at last [].V2 ljust }
- relaycoil(SR) with .nw at last [].ne+(spc*3,0);`"\tt (SR)"' at (last [],S)
- relaycoil(SO) with .nw at last [].ne+(spc,0);`"\tt (SO)"' at (last [],S)
- relaycoil(SOR) with .nw at last [].ne+(spc,0);`"\tt (SOR)"' at (last [],S)
- relaycoil(PC) with .nw at last [].ne+(spc,0);`"\tt (PC)"' at (last [],S)
+ relaycoil(AXSR) with .nw at last [].ne+(spc*4,0); "\tt (AXSR)" at (last [],S)
+ { "\sl V1" at last [].V1 rjust; "\sl V2" at last [].V2 rjust }
+ relaycoil(BXSR) with .nw at last [].ne+(spc*2,0); "\tt (BXSR)" at (last [],S)
+ { "\sl V1" at last [].V1 ljust; "\sl V2" at last [].V2 ljust }
+ relaycoil(SR) with .nw at last [].ne+(spc*2,0); "\tt (SR)" at (last [],S)
+ spx = spc*3/4
+ relaycoil(SO) with .nw at last [].ne+(spx,0); "\tt (SO)" at (last [],S)
+ relaycoil(SOR) with .nw at last [].ne+(spx,0); "\tt (SOR)" at (last [],S)
+ relaycoil(PC) with .nw at last [].ne+(spx,0); "\tt (PC)" at (last [],S)
}
spc = dimen_/4
{
move down_ 3/4; right_
- relaycoil(HS); S:`"\tt (HS)"' at last [].s+(0,-12bp__)
- relaycoil(NAC) with .nw at last [].ne+(spc,0);`"\tt (NAC)"' at (last [],S)
- relaycoil(AC) with .nw at last [].ne+(spc,0);`"\tt (AC)"' at (last [],S)
- relaycoil(ML) with .nw at last [].ne+(spc,0);`"\tt (ML)"' at (last [],S)
- relaycoil(PO) with .nw at last [].ne+(spc,0);`"\tt (PO)"' at (last [],S)
- relaycoil(RM) with .nw at last [].ne+(spc,0);`"\tt (RM)"' at (last [],S)
- relaycoil(RH) with .nw at last [].ne+(spc,0);`"\tt (RH)"' at (last [],S)
- relaycoil(TH) with .nw at last [].ne+(spc,0);`"\tt (TH)"' at (last [],S)
- relaycoil(EL) with .nw at last [].ne+(spc,0);`"\tt (EL)"' at (last [],S)
- relaycoil(MR) with .sw at last [].se+(spc,0);`"\tt (MR)"' at (last [],S)
+ relaycoil(HS); S: "\tt (HS)" at last [].s+(0,-12bp__)
+ relaycoil(NAC) with .nw at last [].ne+(spc,0); "\tt (NAC)" at (last [],S)
+ relaycoil(AC) with .nw at last [].ne+(spc,0); "\tt (AC)" at (last [],S)
+ relaycoil(ML) with .nw at last [].ne+(spc,0); "\tt (ML)" at (last [],S)
+ relaycoil(PO) with .nw at last [].ne+(spc,0); "\tt (PO)" at (last [],S)
+ relaycoil(RM) with .nw at last [].ne+(spc,0); "\tt (RM)" at (last [],S)
+ relaycoil(RH) with .nw at last [].ne+(spc,0); "\tt (RH)" at (last [],S)
+ relaycoil(TH) with .nw at last [].ne+(spc,0); "\tt (TH)" at (last [],S)
+ relaycoil(EL) with .nw at last [].ne+(spc,0); "\tt (EL)" at (last [],S)
+ relaycoil(MR) with .sw at last [].se+(spc,0); "\tt (MR)" at (last [],S)
}
.PE
diff --git a/graphics/circuit_macros/dpictools.pic b/graphics/circuit_macros/dpictools.pic
index c6ba472200..415cd0329a 100644
--- a/graphics/circuit_macros/dpictools.pic
+++ b/graphics/circuit_macros/dpictools.pic
@@ -3,7 +3,7 @@
# m4 macro NeedDpicTools or the pic statement copy "HOMELIB_/dpictools.pic"
# when HOMELIB_ is defined or, generically, copy "<path>dpictools.pic"
-# Circuit_macros Version 10.5, copyright (c) 2024 J. D. Aplevich under #
+# Circuit_macros Version 10.6, copyright (c) 2024 J. D. Aplevich under #
# the LaTeX Project Public Licence in file Licence.txt. The files of #
# this distribution may be redistributed or modified provided that this #
# copyright notice is included and provided that modifications are clearly #
@@ -370,52 +370,57 @@ define DefineCMYKColor { cmyktorgb($2,$3,$4,r_CMYKRGB,g_CMYKRGB,b_CMYKRGB)
DefineRGBColor($1,r_CMYKRGB,g_CMYKRGB,b_CMYKRGB) }
# ShadeObject(DrawRoutineName, n, colorseq)
-# colorseq = 0,r0,g0,b0,
-# frac1,r1,g1,b1,
-# frac2,r2,g2,b2,
+# colorseq = frac0,r0,g0,b0,
+# frac1,r1,g1,b1,
# ...
-# 1,rn,gn,bn
-# with 0 < frac1 < frac2 < ... < 1
+# fracn,rn,gn,bn
+# with 0 <= frac0 < frac1 < ... < fracn <= 1
+# (Often frac0 = 0 and fracn = 1)
#
# calls DrawRoutineName(frac,r,g,b)
-# n+1 times for frac = 0, 1/n, 2/n, ... 1
+# n+1 times for frac =
+# frac0, frac0+1/n*(fracn-frac0),
+# frac0+2/n*(fracn-frac0), ... fracn
+# (i.e., often frac = 0, 1/n, 2/n, ... 1)
# with rgb args interpolated (in hsv space)
# between colorseq points
-#
# eg B: box; define HorizShade { line right B.wid thick B.ht/100/(1bp__) \
# from (0,-($1)*B.ht) outlined rgbstring($2,$3,$4) }
# ShadeObject(HorizShade, 100, 0,1,0,0, 1,0,0,1) at B
#
-define ShadeObject { [ Origin: Here; nSteps = abs($2)
- nextP = $3; nextR = $4; nextG = $5; nextB = $6
+define ShadeObject { [ Origin: Here; nSteps = max(abs($2),1)
+ nextF = $3; nextR = $4; nextG = $5; nextB = $6; lastF = nextF; frac0 = nextF
+ fracn = frac0; nextarg = 3; for done = 0 to 1 do { if nextarg < $+ then \
+ { exec sprintf("fracn = $%g",nextarg); nextarg +=4; done = 0 } }
+ if frac0 <= fracn then { $1(frac0,nextR,nextG,nextB) }
nextarg = 7
- thisP = nextP
- if $2 < 0 then { rgbtohsv(nextR,nextG,nextB,nextH,nextS,nextV) } \
- else { rgbtohsv(nextR^2,nextG^2,nextB^2,nextH,nextS,nextV) }
- if nextP*nSteps >= 1 then { nextP = 0 }
- $1(nextP,nextR,nextG,nextB)
- for stepnum = 1 to nSteps do {
- if stepnum > nextP*nSteps then {
- thisP = nextP; thisH = nextH; thisS = nextS; thisV = nextV
- exec sprintf("nextP = $%g; nextR = $%g; nextG = $%g; nextB = $%g",\
- nextarg,nextarg+1,nextarg+2,nextarg+3);
- nextarg +=4 }
- if nextP != thisP then {
- rgbtohsv(nextR^2,nextG^2,nextB^2,nextH,nextS,nextV)
- if thisS == 0 then { thisH = nextH }
- if nextS == 0 then { nextH = thisH }
- if thisH-nextH > 180 then { nextH += 360 } \
- else { if nextH-thisH > 180 then { thisH +=360 } } }
- if nextP > thisP then {
- x = (stepnum/nSteps-thisP)/(nextP-thisP)
- currP = thisP*(1-x) + nextP*x
- currH = thisH*(1-x) + nextH*x
- currS = thisS*(1-x) + nextS*x
- currV = thisV*(1-x) + nextV*x
- hsvtorgb(currH,currS,currV,cRsq,cGsq,cBsq)
- if $2 < 0 then { $1(currP,cRsq,cGsq,cBsq) } \
- else { $1(currP,sqrt(cRsq),sqrt(cGsq),sqrt(cBsq)) } }
- }
+ if $2 < 0 then { rgbtohsv(nextR,nextG,nextB, nextH,nextS,nextV) } \
+ else { rgbtohsv(nextR^2,nextG^2,nextB^2, nextH,nextS,nextV) }
+ for stepnum = 0 to nSteps do {
+ currF = frac0+stepnum/nSteps*(fracn-frac0)
+ if currF >= nextF then {
+ if nextarg >= $+ then { stepnum = nSteps } \
+ else { lastF = nextF; lastH = nextH; lastS = nextS; lastV = nextV
+ exec sprintf("nextF = $%g; nextR = $%g; nextG = $%g; nextB = $%g",\
+ nextarg,nextarg+1,nextarg+2,nextarg+3);
+ nextarg +=4 } }
+ if stepnum <= nSteps then {
+ if nextF != lastF then {
+ rgbtohsv(nextR^2,nextG^2,nextB^2,nextH,nextS,nextV)
+ if lastS == 0 then { lastH = nextH }
+ if nextS == 0 then { nextH = lastH }
+ if lastH-nextH > 180 then { nextH += 360 } \
+ else { if nextH-lastH > 180 then { lastH +=360 } } }
+ if nextF > lastF then {
+ x = (currF-lastF)/(nextF-lastF)
+ currH = lastH*(1-x) + nextH*x
+ currS = lastS*(1-x) + nextS*x
+ currV = lastV*(1-x) + nextV*x
+ hsvtorgb(currH,currS,currV,cRsq,cGsq,cBsq)
+ if (currF >= frac0) && (currF <= fracn) then {
+ if $2 < 0 then { $1(currF,cRsq,cGsq,cBsq) } \
+ else { $1(currF,sqrt(abs(cRsq)),sqrt(abs(cGsq)),sqrt(abs(cBsq))) } } }
+ } }
exec sprintf("$%g",nextarg)
] }
diff --git a/graphics/circuit_macros/examples/Alogix.m4 b/graphics/circuit_macros/examples/Alogix.m4
index f77a159875..b22f5bf5f4 100644
--- a/graphics/circuit_macros/examples/Alogix.m4
+++ b/graphics/circuit_macros/examples/Alogix.m4
@@ -19,14 +19,14 @@ A: Autologix(
# Draw a tree of gates only. The ~ has been
# replaced by NOT gates.
definergbcolor(lightblue,0.72,0.72,0.9)
-B: Autologix(Or(And(B,Not(C)),And(Not(A),B,C)),N,shaded "lightblue") \
+G: Autologix(Or(And(B,Not(C)),And(Not(A),B,C)),N,shaded "lightblue") \
with .sw at A.e+(1.3,-0.5)
- "{\sl Out}" at B.Out above ljust
- `"\shortstack[l]{\tt B: Autologix( \\ \tt \
+ "{\sl G.Out}" at G.Out above ljust
+ `"\shortstack[l]{\tt G: Autologix( \\ \tt \
Or(And(B,Not(C)),And(Not(A),B,C)),N,\\ \tt \
- shaded \"lightblue\")}"' wid 242pt__ ht 20pt__ at B.s+(0,-0.3)
- for_(1,4,1,`"{\sf\small\sl B.In`'m4x}" at B.In`'m4x rjust')
- "{\sf\small\sl B.In5}" at B.In5+(0,-1.5bp__) rjust
+ shaded \"lightblue\")}"' wid 242pt__ ht 20pt__ at G.s+(0,-0.3)
+ for_(1,4,1,`"{\sf\small\sl G.In`'m4x}" at G.In`'m4x rjust')
+ "{\sf\small\sl G.In5}" at G.In5+(0,-1.5bp__) rjust
# Here is how to include an arbitrary circuit
# (an SR-flipflop, for example)
diff --git a/graphics/circuit_macros/examples/AmpTable.m4 b/graphics/circuit_macros/examples/AmpTable.m4
index 023533c634..b7ff904cfc 100644
--- a/graphics/circuit_macros/examples/AmpTable.m4
+++ b/graphics/circuit_macros/examples/AmpTable.m4
@@ -1,23 +1,25 @@
.PS
# `Amptable.m4'
cct_init
+divert(-1)
+
+divert(0)dnl
+
movewid = 2pt__
-{
+{
{amp ; move ; "{\tt `amp'}" ljust}
- move down 0.4; right_
- {amp(,0.3) ; move ; "\tt `amp'(,0.3)" ljust}
- }
move right_ 2.0
-{ {delay(,,fill_(0.9)) ; move ;
- "`\tt\shortstack[l]{delay(,{,}\\ fill\_(0.9))}'" ljust}
- move down 0.4; right_
- {delay(,0.2) ; move ; "{\tt `delay'(,0.2)}" ljust}
- }
-
+ {amp(,5mm__) ; move ; "\tt `amp'(,5mm\_\_)" ljust}
move right_ 2.0
-{ {integrator ; move ; "\tt `integrator'" ljust}
+ {integrator ; move ; "\tt `integrator'" ljust}
+ }
move down 0.5; right_
- {integrator(,0.3) ; move ; "\tt `integrator'(,0.3)" wid 82pt__ ljust}
- }
+{
+ {delay(,,fill_(0.9)) ; move ;
+ "`\tt\shortstack[l]{delay(,{,}\\ fill\_(0.9))}'" ljust}
+ move right_ 2.0
+ {delay(,,type=S;body=shaded "blue!25"); move
+ "{\tt `delay'(,,type=S;}" ljust "{\tt body=shaded \"blue!25\")}" ljust}
+ }
.PE
diff --git a/graphics/circuit_macros/examples/Buttons.m4 b/graphics/circuit_macros/examples/Buttons.m4
index e7e5b004dc..7ccea6c28a 100644
--- a/graphics/circuit_macros/examples/Buttons.m4
+++ b/graphics/circuit_macros/examples/Buttons.m4
@@ -3,7 +3,6 @@
gen_init
NeedDpicTools
-
divert(-1)
#################################################################
@@ -67,36 +66,21 @@ define(`BoxButton',`[
linedensity = ifelse(`$4',,150/scale,`$4')
nsteps=10
define BxBshadow {
- box ht boxh wid boxw rad boxh/2 \
+ B: box ht boxh wid boxw rad boxh/2 \
outlined rgbstring($`'2,$`'3,$`'4) at (0,($`'1)*4*linethick bp__)
}
Q: ShadeObject(BxBshadow,nsteps,
0, 1,1,1,
1, r3,g3,b3)
# Shaded body
- lthk = boxh/nsteps/(1bp__)
- define BxBshade {
- v = boxh*(1-($`'1))
- h = (boxw-boxh)/2+sqrt((boxh/2)^2-(v-boxh/2)^2)
- line from (-h,v) to (h,v) thick lthk outlined rgbstring($`'2,$`'3,$`'4)
- }
- nsteps = boxh*linedensity
- C: ShadeObject(BxBshade,nsteps,
- 0, r1, g1, b1,
- 0.45,r2, g2, b2,
- 1, r3, g3, b3) with .n at Q.n
+ C: ColoredV(box,
+ (( 0,r1,g1,b1, 0.45,r2,g2,b2, 1,r3,g3,b3)):boxh/(Q.B.thick bp__)*2,
+ wid boxw ht boxh rad boxh/2 invis) with .n at Q.n
# Shaded highlight
- bh = boxh*0.4
- bw = boxw*4/4.5
- define BxBhighlight {
- v = bh*(1-($`'1)); h = (bw-bh)/2+sqrt((bh/2)^2-(v-bh/2)^2)
- line from (-h,v) to (h,v) thick lthk outlined rgbstring($`'2,$`'3,$`'4)
- }
- nsteps = bh*linedensity
- ShadeObject(BxBhighlight,nsteps,
- 0,1,1,1,
- 8/nsteps,1,1,1,
- 1, r2,g2,b2) with .n at Q.n+(0,-boxh/20)
+ bh = boxht*0.4
+ ColoredV(box,((0,1,1,1, 8/(bh*linedensity),1,1,1, 1,r2,g2,b2)),
+ ht bh wid boxw*4/4.5 rad bh/2 invis) \
+ with .n at Q.n+(0,-boxh/20)
`$5']')
#################################################################
diff --git a/graphics/circuit_macros/examples/Chips.m4 b/graphics/circuit_macros/examples/Chips.m4
index 57f9e29e97..7718cfc095 100644
--- a/graphics/circuit_macros/examples/Chips.m4
+++ b/graphics/circuit_macros/examples/Chips.m4
@@ -9,8 +9,11 @@ Chips: [
ic4017
{"\sf 4017" at last [].Chip.sw below ljust}
move
- ic4510
- {"\sf 4510" at last [].Chip.sw below ljust}
+# ic4510
+# {"\sf 4510" at last [].Chip.sw below ljust}
+# move
+ ic555
+ {"\sf 555" at last [].Chip.sw below ljust}
move
icVS1053
{"\sf VS1053" at last [].Chip.sw below ljust}
diff --git a/graphics/circuit_macros/examples/Consumption.m4 b/graphics/circuit_macros/examples/Consumption.m4
index 3b165abb7f..5ae20e31c3 100644
--- a/graphics/circuit_macros/examples/Consumption.m4
+++ b/graphics/circuit_macros/examples/Consumption.m4
@@ -473,14 +473,18 @@ Cl: s_box(Coal) at dtop(2000,0.36+3pt__)
rs_box(Population) at dtop(1975,0.9)
define(`text_ang',90)
+ command "\newcommand{\pct}{$\mskip\thinmuskip$\char37}"
brpos = 2016
Q:s_box(`$\left.\vbox to 1.50in{}\right\}$') with .w at dtop(brpos,1.04)
- Label: rs_box(`\shortstack{90\,\%\\ nonrenewable}') with .w at Q.e
+# Label: rs_box(`\shortstack{90\,\%\\ nonrenewable}') with .w at Q.e
+ Label: rs_box(`90\pct') at Q.e+(5bp__,0)
+ rs_box(`nonrenewable') with .w at last "".e+(2bp__,0)
s_box(`$\left.\vbox to 0.2in{}\right\}$') with .w at dtop(brpos+0.5,0.1)
- rs_box(`\shortstack[l]{10\,\%\\ renewable}') \
- with .sw at (Label.w,dtop(brpos,0.05))
+# rs_box(`\shortstack[l]{10\,\%\\ renewable}')
+ rs_box(`10\pct') with .sw at (Label.w,dtop(brpos,0.05))
+ rs_box(`renewable') with .sw at last "".se+(2bp__,0)
linethick_(0.6)
arrow <- from dtop(1998,1.55) left 0.15 up 0.2
@@ -519,6 +523,6 @@ Q: NPopulation.end + (-1.25,-0.1)
#print maxpswid-(last [].wid-maxx)
#print (last [].wid,last [].ht)
-showbox_
+#showbox_
}
.PE
diff --git a/graphics/circuit_macros/examples/Dini.m4 b/graphics/circuit_macros/examples/Dini.m4
index 85bf0d30c7..4b272ae2f1 100644
--- a/graphics/circuit_macros/examples/Dini.m4
+++ b/graphics/circuit_macros/examples/Dini.m4
@@ -6,7 +6,7 @@
# https://tex.stackexchange.com/questions/516734/plot-dinis-surface
threeD_init
NeedDpicTools
-scale = 1.5
+scale = 2.0
[
viewazimuth = 0 # View angles in degrees
viewelevation = 20
@@ -190,5 +190,58 @@ array2(h,m4inx,53,54,55,58,59,57)
for_(2,5,1,`to Project((v[x[m4x],1]),(v[x[m4x],2]),(v[x[m4x],3]))\')\
to Project((v[x[1],1]),(v[x[1],2]),(v[x[1],3])) thick 0.2 fill_(0)
}
-] scaled 2.5 with .sw at last [].se+(1,0)
+] scaled 2.5 with .sw at last [].se+(0.5,0)
+[
+#.PE
+#.PS
+## BlueBall.m4
+## https://latex.org/forum/viewtopic.php?f=5&t=30639
+#threeD_init
+#NeedDpicTools
+
+ ballrad = 2.5
+ cylrad = ballrad*0.87
+ hht =sqrt(ballrad^2-cylrad^2)
+ azimuth = 0
+ elevation = atan2(hht,cylrad)*rtod_ # disks touch at C
+ setview(azimuth,elevation)
+ sinelev = sind(elevation)
+
+ linethick_(1)
+ C: shadedball(ballrad,,,,(0,1,1)) at (0,0)
+ Op: C+Project(0,0,hht)
+ O: C+Project(0,0,-hht)
+ line dashed from Op+( cylrad,0) down Op.y-O.y
+ line dashed from Op+(-cylrad,0) down Op.y-O.y
+
+ define(`Normal',`cosd(`$1')*cylrad,sind(`$1')*cylrad,-hht')
+ define Cylvis { $`'2 = dot3D(Normal($`'1),View3D) }
+ findroot(Cylvis,5,170,1e-8,rA)
+ A: Project(Normal(rA))
+ B: O+(-(A.x-O.x),A.y-O.y)
+ aA = atan2(A.y-O.y,(A.x-O.x)*sinelev)
+ ellipsearc(cylrad*2,cylrad*2*sinelev,aA,-pi_-aA,0,cw) with .C at O
+ ellipsearc(cylrad*2,cylrad*2*sinelev,-pi_-aA-4*dtor_,aA+4*dtor_,,cw,dashed) \
+ with .C at O
+ ellipsearc(cylrad*2,cylrad*2*sinelev,-aA,pi_+aA,0,cw) with .C at Op
+ ellipsearc(cylrad*2,cylrad*2*sinelev,pi_+aA+4*dtor_,-aA-4*dtor_,,cw,dashed) \
+ with .C at Op
+
+ dot(at C); # "$T$" at last [].w rjust below
+ dot(at O); # "$O$" at last [].s below
+ dot(at A); # "$A$" at last [].s ljust below
+ dot(at B); # "$B$" at last [].s rjust below
+ dot(at Op); # "$O'$" at last [].n above
+ Ap: dot(at Op+(A-O)); # "$A'$" at Ap.n ljust above
+ Bp: dot(at Op+(B-O)); # "$B'$" at Bp.n rjust above
+
+ linethick_(0.4)
+ line dashed from Ap to A then to O then to Op
+ line dashed from A to C
+ line dashed from Bp to B
+ V: Between_(O,A,0.15)
+ U: C+Project(0,0,-hht+0.15)
+ line from U to U+(V-O) then to V
+ ] with .w at last [].e+(0.5,0)
+
.PE
diff --git a/graphics/circuit_macros/examples/EVplugs.m4 b/graphics/circuit_macros/examples/EVplugs.m4
index d3e40c8dd2..50afde5355 100644
--- a/graphics/circuit_macros/examples/EVplugs.m4
+++ b/graphics/circuit_macros/examples/EVplugs.m4
@@ -14,7 +14,7 @@ divert(-1)
twdth=expr; # tab width
thgt=expr; # tab hght
thick=expr; # outer line thickness (pt)
- inthick=expr; # inner line thickness (pt)
+ thickin=expr; # inner line thickness (pt)
BG=attributes; # shaded gray etc
L1=attributes; # L1 attributes ...
N=attributes;
@@ -23,21 +23,21 @@ divert(-1)
CP=attributes; '
define(`pEVskale',25.4) dnl default plug size (20 mm)
define(`EV_J1772',`[ pushkeys_(`$1', `wdth:20/pEVskale;
- twdth:3.5/20*m4wdth; thgt:1.5/20*m4wdth; diamLNP:6/20*m4wdth;
- thick:2; inthick:1.5; BG::N; L1::N; N::N; PE::N; PP::N; CP::N; ')
+ twdth:3.5/20*m4`'wdth; thgt:1.5/20*m4`'wdth; diamLNP:6/20*m4`'wdth;
+ thick:2; thickin:1.5; BG::N; L1::N; N::N; PE::N; PP::N; CP::N; ')
tang = atan2(m4twdth/2,m4wdth/2)*rtod_
TS: (Rect_(m4wdth/2,-90-tang)); TE: (Rect_(m4wdth/2,-90+tang))
Tab: line thick m4thick from TS down_ m4thgt \
then to TE-(0,m4thgt) then to TE m4BG
Arc: arc thick m4thick to TS with .c at (0,0) m4BG
round(at TS,last arc.thick); round(at TE,last arc.thick)
- L1: circle diam m4diamLNP thick m4inthick at (Rect_(m4wdth/4,150)) m4L1
- N: circle diam m4diamLNP thick m4inthick at (Rect_(m4wdth/4, 30)) m4N
- PE: circle diam m4diamLNP thick m4inthick at (0,-m4wdth/4) m4PE
- PP: circle diam m4diamLNP*0.55 thick m4inthick at (Rect_(m4wdth/3,210)) m4PP
- CP: circle diam m4diamLNP*0.55 thick m4inthick at (Rect_(m4wdth/3,-30)) m4CP
+ L1: circle diam m4diamLNP thick m4thickin at (Rect_(m4wdth/4,150)) m4L1
+ N: circle diam m4diamLNP thick m4thickin at (Rect_(m4wdth/4, 30)) m4N
+ PE: circle diam m4diamLNP thick m4thickin at (0,-m4wdth/4) m4PE
+ PP: circle diam m4diamLNP*0.55 thick m4thickin at (Rect_(m4wdth/3,210)) m4PP
+ CP: circle diam m4diamLNP*0.55 thick m4thickin at (Rect_(m4wdth/3,-30)) m4CP
`$2' popdef(`m4CP',`m4PP',`m4PE',`m4N',`m4L1',`m4BG',
- `m4wdth',`m4diamLNP',`m4twdth',`m4thgt',`m4thick',`m4inthick') ]')
+ `m4wdth',`m4diamLNP',`m4twdth',`m4thgt',`m4thick',`m4thickin') ]')
`EV_J3068(keys,shade)
EV charging plug in a [] block
@@ -46,7 +46,7 @@ define(`EV_J1772',`[ pushkeys_(`$1', `wdth:20/pEVskale;
twdth=expr; # tab width
thgt=expr; # tab hght
thick=expr; # outer line thickness (pt)
- inthick=expr; # inner line thickness (pt)
+ thickin=expr; # inner line thickness (pt)
BG=attributes; # shaded gray etc
L1|L2|L3=attributes; # pin attributes ...
N=attributes;
@@ -55,7 +55,7 @@ define(`EV_J1772',`[ pushkeys_(`$1', `wdth:20/pEVskale;
CP=attributes;
arg2= R:G:B background fill color '
define(`EV_J3068',`[ pushkeys_(`$1',
- `wdth:25/pEVskale; diamLNP:m4wdth*0.25; thick:2; inthick:1.5;
+ `wdth:25/pEVskale; diamLNP:m4`'wdth*0.25; thick:2; thickin:1.5;
BG::N; L1::N; L2::N; L3::N; N::N; PE::N; PP::N; CP::N; ')
C: Here
NE: C+(Rect_(m4wdth/2,45)); NW: C+(Rect_(m4wdth/2,135))
@@ -68,14 +68,14 @@ define(`EV_J3068',`[ pushkeys_(`$1',
arc thick m4thick to Ac+(0,m4diamLNP/2) with .c at Ac m4BG
Top: line thick m4thick to (NW+NE-Ac, Here) m4BG
arc thick m4thick to NW with .c at Here+(0,-m4diamLNP/2) m4BG
- PE: circle diam m4diamLNP thick m4inthick at C m4PE
- PP: circle diam m4diamLNP*0.55 thick m4inthick at C+(Rect_(m4wdth/3,45)) m4PP
- CP: circle diam m4diamLNP*0.55 thick m4inthick at C+(Rect_(m4wdth/3,135)) m4CP
- L1: circle diam m4diamLNP thick m4inthick at C+(m4wdth*.3,0) m4L1
- L2: circle diam m4diamLNP thick m4inthick at C+(Rect_(m4wdth*.3,-60)) m4L2
- L3: circle diam m4diamLNP thick m4inthick at C+(Rect_(m4wdth*.3,-120)) m4L3
- N: circle diam m4diamLNP thick m4inthick at C-(m4wdth*.3,0) m4N
- `$3' popdef(`m4wdth',`m4diamLNP',`m4thick',`m4inthick',
+ PE: circle diam m4diamLNP thick m4thickin at C m4PE
+ PP: circle diam m4diamLNP*0.55 thick m4thickin at C+(Rect_(m4wdth/3,45)) m4PP
+ CP: circle diam m4diamLNP*0.55 thick m4thickin at C+(Rect_(m4wdth/3,135)) m4CP
+ L1: circle diam m4diamLNP thick m4thickin at C+(m4wdth*.3,0) m4L1
+ L2: circle diam m4diamLNP thick m4thickin at C+(Rect_(m4wdth*.3,-60)) m4L2
+ L3: circle diam m4diamLNP thick m4thickin at C+(Rect_(m4wdth*.3,-120)) m4L3
+ N: circle diam m4diamLNP thick m4thickin at C-(m4wdth*.3,0) m4N
+ `$3' popdef(`m4wdth',`m4diamLNP',`m4thick',`m4thickin',
`m4BG',`m4L1',`m4L2',`m4L3',`m4N',`m4PE',`m4PP',`m4CP') ]')
`EV_CCS1(J1772 keys,DC keys)
@@ -84,20 +84,20 @@ define(`EV_J3068',`[ pushkeys_(`$1',
diamPM=expr; # diam of DC+, DC- circles
sep=expr; # separation of Jack and DC
thick=expr; # outer line thickness (pt)
- inthick=expr; # inner line thickness (pt)
+ thickin=expr; # inner line thickness (pt)
BG=attributes; # shaded gray etc
DCplus=attributes;
DCminus=attributes; '
define(`EV_CCS1',`[
J: EV_J1772(`$1')
- pushkeys_(`$2',`wdth:J.wid:23.5/20; hght:J.wid*11/20; diamPM:m4hght*7/11;
- sep:J.wid*3/30; thick:J.Arc.thick; inthick:J.PE.thick;
+ pushkeys_(`$2',`wdth:J.wid:23.5/20; hght:J.wid*11/20; diamPM:m4`'hght*7/11;
+ sep:J.wid*3/30; thick:J.Arc.thick; thickin:J.PE.thick;
BG::N; DCplus::N; DCminus::N;')
DC: [ Box: box thick m4thick wid m4wdth ht m4hght rad m4hght/2 m4BG
- DCplus: circle thick m4inthick diam m4diamPM at Box.w+(m4hght/2,0) m4DCplus
- DCminus:circle thick m4inthick diam m4diamPM at Box.e-(m4hght/2,0) m4DCminus
+ DCplus: circle thick m4thickin diam m4diamPM at Box.w+(m4hght/2,0) m4DCplus
+ DCminus:circle thick m4thickin diam m4diamPM at Box.e-(m4hght/2,0) m4DCminus
] with .n at J.s+(0,-m4sep)
- popdef(`m4wdth',`m4hght',`m4diamPM',`m4sep',`m4thick',`m4inthick',`m4BG',
+ popdef(`m4wdth',`m4hght',`m4diamPM',`m4sep',`m4thick',`m4thickin',`m4BG',
`m4DCplus',`m4DCminus')
]')
@@ -107,22 +107,22 @@ define(`EV_CCS1',`[
diamPM=expr; # diam of DC+, DC- circles
sep=expr; # separation of Jack and DC
thick=expr; # outer line thickness (pt)
- inthick=expr; # inner line thickness (pt)
+ thickin=expr; # inner line thickness (pt)
BG=attributes; # shaded gray etc
DCplus=attributes;
DCminus=attributes;
arg2= R:G:B background fill color '
define(`EV_CCS2',`[
J: EV_J3068(`$1',`$2')
- pushkeys_(`$3',`wdth:J.wid:23.5/20; hght:J.wid*11/20; diamPM:m4hght*7/11;
- sep:J.wid*3/30; thick:J.Arc.thick; inthick:J.PE.thick;
+ pushkeys_(`$3',`wdth:J.wid:23.5/20; hght:J.wid*11/20; diamPM:m4`'hght*7/11;
+ sep:J.wid*3/30; thick:J.Arc.thick; thickin:J.PE.thick;
BG::N; DCplus::N; DCminus::N;')
DC: [ Box: box thick m4thick wid m4wdth ht m4hght rad m4hght/2 dnl
m4BG ifelse(`$2',,,`shaded rgbstring(patsubst(`$2',:,`,'))')
- DCplus: circle thick m4inthick diam m4diamPM at Box.w+(m4hght/2,0) m4DCplus
- DCminus:circle thick m4inthick diam m4diamPM at Box.e-(m4hght/2,0) m4DCminus
+ DCplus: circle thick m4thickin diam m4diamPM at Box.w+(m4hght/2,0) m4DCplus
+ DCminus:circle thick m4thickin diam m4diamPM at Box.e-(m4hght/2,0) m4DCminus
] with .n at J.s+(0,-m4sep)
- popdef(`m4wdth',`m4hght',`m4diamPM',`m4sep',`m4thick',`m4inthick',`m4BG',
+ popdef(`m4wdth',`m4hght',`m4diamPM',`m4sep',`m4thick',`m4thickin',`m4BG',
`m4DCplus',`m4DCminus')
]')
@@ -130,12 +130,12 @@ define(`EV_CCS2',`[
EV charging plug in a [] block
keys: wdth=expr; # plug width
thick=expr; # outer line thickness (pt)
- inthick=expr; # inner line thickness (pt)
+ thickin=expr; # inner line thickness (pt)
BG=attributes; # background shaded gray etc
DCplus=|DCminusNS=|FG=|NC=|SS1=|DCP=|PP=|
CL=|CH=|SS2=attributes # pin attributes ...'
define(`EV_CHAdeMO',`[ pushdef(`m4sk',33/140/pEVskale) pushkeys_(`$1',
- `wdth:140*m4sk; thick:m4wdth*9/140/(1bp__); inthick:m4thick*1.5/9;
+ `wdth:140*m4sk; thick:m4`'wdth*9/140/(1bp__); thickin:m4`'thick*1.5/9;
BG::N; DCplus::N; DCminus::N;N::N;S::N;
FG::N; NC::N; SS1::N; DCP::N; PP::N; CL::N; CH::N; SS2::N')
C: circle thick m4thick diam m4wdth-m4thick bp__ m4BG
@@ -144,18 +144,18 @@ define(`EV_CHAdeMO',`[ pushdef(`m4sk',33/140/pEVskale) pushkeys_(`$1',
line thick m4thick*0.6 from C+(Rect_(C.rad+m4thick bp__*3/4,138)) \
to C+(Rect_(C.rad+m4thick bp__*3/4,130)) then right m4thick bp__ m4BG
idiam = (m4wdth-m4thick bp__*2)*47/(27+47*2)
- N: circle diam idiam thick m4inthick with .n at C.n-(0,m4thick bp__/2) m4N
- S: circle diam idiam thick m4inthick with .s at C.s+(0,m4thick bp__/2) m4S
- E: circle diam idiam thick m4inthick at Cintersect(N,N.diam,S,S.diam) m4DCminus
- W: circle diam idiam thick m4inthick at Cintersect(S,S.diam,N,N.diam) m4DCplus
+ N: circle diam idiam thick m4thickin with .n at C.n-(0,m4thick bp__/2) m4N
+ S: circle diam idiam thick m4thickin with .s at C.s+(0,m4thick bp__/2) m4S
+ E: circle diam idiam thick m4thickin at Cintersect(N,N.diam,S,S.diam) m4DCminus
+ W: circle diam idiam thick m4thickin at Cintersect(S,S.diam,N,N.diam) m4DCplus
foreach_(`Z',
- `line thick m4inthick up Z.diam*0.6 right Z.diam*0.6 with .c at Z
- line thick m4inthick up Z.diam*0.6 left Z.diam*0.6 with .c at Z',N,S)
+ `line thick m4thickin up Z.diam*0.6 right Z.diam*0.6 with .c at Z
+ line thick m4thickin up Z.diam*0.6 left Z.diam*0.6 with .c at Z',N,S)
foreach_(`L',`L: circle diam idiam/4 thick linethick/2 \
at N+(Rect_(idiam/4,90*m4Lx)) m4xpand(m4`'L)',FG,NC,DCP,SS1)
foreach_(`L',`L: circle diam idiam/4 thick linethick/2 \
at S+(Rect_(idiam/4,90*m4Lx)) m4xpand(m4`'L)',PP,CL,SS2,CH)
- `$3' popdef(`m4sk',`m4wdth',`m4thick',`m4inthick',`m4BG',
+ `$3' popdef(`m4sk',`m4wdth',`m4thick',`m4thickin',`m4BG',
`m4DCplus',`m4DCminus',`m4N',`m4S',
`m4FG',`m4NC',`m4SS1',`m4DCP',`m4PP',`m4CL',`m4CH',`m4SS2') ]')
@@ -173,7 +173,7 @@ define(`EV_CHAdeMO',`[ pushdef(`m4sk',33/140/pEVskale) pushkeys_(`$1',
Gndinner=attributes;
PP=attributes;
CP=attributes; '
-define(`EV_NAC',`[ pushkeys_(`$1', `wdth:1.6; diamL:m4wdth*0.28; BG::N;
+define(`EV_NAC',`[ pushkeys_(`$1', `wdth:1.6; diamL:m4`'wdth*0.28; BG::N;
L1::N; L1inner::N; L2::N; L2inner::N; Gndinner::N; inner::N;
Gnd::N; PP::N; CP::N; ')
sN = 1/pEVskale*m4wdth/1.6 # drawing coord scale factor
diff --git a/graphics/circuit_macros/examples/Fuses.m4 b/graphics/circuit_macros/examples/Fuses.m4
index 68629f407d..dcffba66cb 100644
--- a/graphics/circuit_macros/examples/Fuses.m4
+++ b/graphics/circuit_macros/examples/Fuses.m4
@@ -42,7 +42,7 @@ movewid = 0.25
jumper(,CJBED) ; {"`\tt $\ldots$(,CJBED)'" at last line.c+(0,-0.2) }
move
jumper(,body=outlined "gray" shaded "gray";)
- "`\tt $\ldots$(,body=outlined \"gray\" \textbackslash'" \
+ "`\tt $\ldots$(,body=outlined \"gray\" \textbackslash'" wid 168bp__ \
at last line.start+(0,-20bp__) ljust \
"`\tt \hphantom{body=}shaded \"gray\";)'" ljust
}
diff --git a/graphics/circuit_macros/examples/Geometry.m4 b/graphics/circuit_macros/examples/Geometry.m4
index 3a50622603..df026547fe 100644
--- a/graphics/circuit_macros/examples/Geometry.m4
+++ b/graphics/circuit_macros/examples/Geometry.m4
@@ -144,7 +144,7 @@ Fig4: [ ls = 2/3 # local scale
Y: LCintersect(HZ,CC4,C4.rad,R); "$Y$" at Y above
X: LCintersect(HZ,CC2,C2.rad); "$X$" at X above rjust
- Loopover_(`P',`dot(at P)',X,Y,Z)
+ foreach_(`P',`dot(at P)',X,Y,Z)
line dashed from X to Y chop -linewid/2
RightAngle(A,Z,Y)
diff --git a/graphics/circuit_macros/examples/Incleps.m4 b/graphics/circuit_macros/examples/Incleps.m4
index 7f02f308c1..28543ca6f3 100644
--- a/graphics/circuit_macros/examples/Incleps.m4
+++ b/graphics/circuit_macros/examples/Incleps.m4
@@ -10,6 +10,9 @@ sinclude(examples.dim) # Change examples to the name of the main LaTeX file.
define(`backarrow',`darrow(`$1',,,2pt__,6pt__,6pt__,<-|)')
S: s_box(`\includegraphics[width=3in]{Incl}')
+# A blank box the size of the included eps figure:
+#S: s_box("\hskip %gin\vrule width 0pt height %gin",\
+# boxdim(InclA,w),boxdim(InclA,v))
ifgpic(`S: box invis ht s_ht wid s_wd with .c at S.n')
thinlines_
diff --git a/graphics/circuit_macros/examples/Makefile b/graphics/circuit_macros/examples/Makefile
index 252fe33fe9..f2f54e02d0 100644
--- a/graphics/circuit_macros/examples/Makefile
+++ b/graphics/circuit_macros/examples/Makefile
@@ -36,6 +36,11 @@ PIC = dpic
#PIC = $$HOME/dpic/pascaldev/test/dpic
#PIC = $$HOME/dpic/pascal/test/dpic
+# Quiet mode for MiKTeX:
+# QLATEX = latex --quiet
+# Quiet mode for texlive:
+QLATEX = latex -interaction=batchmode
+
#MODE = -p
MODE = -g
@@ -62,11 +67,11 @@ TEXPICS = \
Audio.tex Bip.tex Btree.tex Buttons.tex Byte.tex \
Capacitors.tex CanLogic.tex Chips.tex Conn.tex Connectors.tex \
Contacts.tex Contact.tex control.tex Crow.tex \
- csc.tex Csource.tex Decoder.tex \
+ cbresistor.tex csc.tex Csource.tex Decoder.tex \
Demultiplexer.tex diamond.tex Dini.tex Diodes.tex Drive.tex \
EEP.tex Emarrows.tex Escher.tex EVplugs.tex \
- ex00.tex ex01.tex ex02.tex ex03.tex ex04.tex ex05.tex ex06.tex ex08.tex \
- ex09.tex ex10.tex ex11.tex ex12.tex ex15.tex ex16.tex ex17.tex ex18.tex \
+ ex01.tex ex02.tex ex03.tex ex04.tex ex05.tex ex06.tex ex08.tex \
+ ex09.tex ex10.tex ex11.tex ex12.tex ex15.tex ex16.tex ex18.tex \
ex21.tex exp.tex fet.tex Flow.tex Fuses.tex \
Geometry.tex GrayCode.tex graysurf.tex Grounds.tex \
Headers.tex Heathkit.tex \
@@ -78,9 +83,9 @@ TEXPICS = \
Quantum.tex quick.tex \
random.tex Rectifiers.tex recycle.tex relaycoil.tex Relay.tex \
Resistors.tex Rotbox.tex \
- Schottky.tex sfg.tex shadowed.tex shapes.tex ShiftR.tex Sierpinski.tex \
- Sixpole.tex \
- Smithchart.tex Sources.tex SQUID.tex Switches.tex \
+ Schottky.tex Sevensegment.tex sfg.tex Shadowed.tex shapes.tex \
+ ShiftR.tex Sierpinski.tex Sixpole.tex \
+ Smithchart.tex Sources.tex Switches.tex \
Tgate.tex Three.tex thyristor.tex TTLnand.tex Tubediags.tex \
UNO.tex ujt.tex Variable.tex Windings.tex worm.tex Xform.tex XOR.tex
@@ -135,10 +140,10 @@ LTXFILE=printf "|documentclass[11pt]{article}\n\
@touch $(DIMFILE) F_$*.dim
$(M4) pstricks.m4 $(DIMFILE) F_$*.dim $*.m4 | $(PIC) -p > $*.tex
@$(LTXFILE) > F_$*.tex
- latex --quiet F_$*
+ $(QLATEX) F_$*
touch F_$*.dim $(DIMFILE)
$(M4) pstricks.m4 $(DIMFILE) F_$*.dim $*.m4 | $(PIC) -p > $*.tex
- latex --quiet F_$*
+ $(QLATEX) F_$*
mv F_$*.dvi $*.dvi
rm -f F_*
.dvi.ps:
@@ -148,7 +153,7 @@ LTXFILE=printf "|documentclass[11pt]{article}\n\
@touch $(DIMFILE) F_$*.dim
$(M4) pstricks.m4 $(DIMFILE) F_$*.dim $*.m4 | $(PIC) -p > $*.tex
@$(LTXFILE) > F_$*.tex
- latex --quiet F_$*
+ $(QLATEX) F_$*
dvips $(DVIPSOPTS) F_$* -o $*.ps
chmod 644 $*.ps
rm -f F_*
@@ -156,9 +161,9 @@ LTXFILE=printf "|documentclass[11pt]{article}\n\
@touch $(DIMFILE) F_$*.dim
$(M4) pstricks.m4 $(DIMFILE) F_$*.dim $*.m4 | $(PIC) -p > $*.tex
@$(LTXFILE) > F_$*.tex
- latex --quiet F_$*
+ $(QLATEX) F_$*
$(M4) pstricks.m4 $(DIMFILE) F_$*.dim $*.m4 | $(PIC) -p > $*.tex
- latex --quiet F_$*
+ $(QLATEX) F_$*
dvips F_$* -T128cm,28cm -o $*.ps
# Recent changes to PSTricks(?) have clashed with the use of TeXtoEPS
# so use ps2epsi
@@ -171,9 +176,9 @@ LTXFILE=printf "|documentclass[11pt]{article}\n\
@touch $(DIMFILE) F_$*.dim
$(M4) pgf.m4 $(DIMFILE) F_$*.dim $*.m4 | $(PIC) -g > $*.tex
@$(PDFLTXSRC) > F_$*.tex
- pdflatex --quiet F_$*
+ pdf$(QLATEX) F_$*
$(M4) pgf.m4 $(DIMFILE) F_$*.dim $*.m4 | $(PIC) -g > $*.tex
- pdflatex --quiet F_$*
+ pdf$(QLATEX) F_$*
mv F_$*.pdf $*.pdf
rm -f F_*
.m4.png:
@@ -192,7 +197,8 @@ LTXFILE=printf "|documentclass[11pt]{article}\n\
# rm $*.pdf
.m4.svg:
make $*.pdf
- dvisvgm --pdf $*.pdf $*.svg
+# dvisvgm --pdf $*.pdf $*.svg
+ pdf2svg $*.pdf $*.svg
chmod 644 $*.svg
# rm $*.pdf
@@ -244,25 +250,25 @@ $(DOC).dvi: $(DOC).tex files.tex header.tex psmode
tst:
@$(LTXFILE) | sed -e 's/{\.tex}/{test.tex}/' > tst.tex
- make CONF=pstricks.m4 PIC=dpic MODE=-p test.tex; latex --quiet tst
+ make CONF=pstricks.m4 PIC=dpic MODE=-p test.tex; $(QLATEX) tst
rm -f test.tex test.pic
- make CONF=pstricks.m4 PIC=dpic MODE=-p test.tex; latex --quiet tst
+ make CONF=pstricks.m4 PIC=dpic MODE=-p test.tex; $(QLATEX) tst
dvips $(DVIPSOPTS) tst -o tst.ps
tst1:
@$(LTXFILE) | sed -e 's/{\.tex}/{test.tex}/' > tst.tex
- make CONF=pstricks.m4 PIC=dpic MODE=-p test.tex; latex --quiet tst
+ make CONF=pstricks.m4 PIC=dpic MODE=-p test.tex; $(QLATEX) tst
dvips $(DVIPSOPTS) tst -o tst.ps
tikz:
@$(LTXFILE) | sed -e 's/{\.tex}/{test.tex}/' -e 's/pstricks/tikz/' > tst.tex
- make CONF=pgf.m4 PIC=dpic MODE=-g test.tex; latex --quiet tst
+ make CONF=pgf.m4 PIC=dpic MODE=-g test.tex; $(QLATEX) tst
dvips $(DVIPSOPTS) tst -o tst.ps
gpic:
@$(LTXFILE) | sed -e 's/{\.tex}/{test.tex}/' > tst.tex
rm -f test.tex test.pic
- make CONF=gpic.m4 PIC=pic MODE=-t test.tex; latex --quiet tst
+ make CONF=gpic.m4 PIC=pic MODE=-t test.tex; $(QLATEX) tst
dvips $(DVIPSOPTS) tst -o tst.ps
echopics:
diff --git a/graphics/circuit_macros/examples/MoreTable.m4 b/graphics/circuit_macros/examples/MoreTable.m4
index cc198c198b..d1c7be02c9 100644
--- a/graphics/circuit_macros/examples/MoreTable.m4
+++ b/graphics/circuit_macros/examples/MoreTable.m4
@@ -72,5 +72,5 @@ vm = 0.28
{xtal(,type=R;outerdiam=0.2) ; move ;"`{\tt xtal(,type=R)}'" ljust}
}
-] with .nw at Heater.sw+(0,-0.3)
+] with .nw at Heater.sw+(0,-0.4)
.PE
diff --git a/graphics/circuit_macros/examples/Quantum.m4 b/graphics/circuit_macros/examples/Quantum.m4
index 9de7aeddab..02826d9768 100644
--- a/graphics/circuit_macros/examples/Quantum.m4
+++ b/graphics/circuit_macros/examples/Quantum.m4
@@ -17,6 +17,7 @@ define(`Meter',`[ Box: box wid boxwid*3/2 fill_(1)
arc cw from C+(-r,0) to C+(r,0) with .c at C
arrow from C+(-r/4,0) to C+(0.9*r,0.9*r) ]')
+[
X: Bus(,shaded rgbstring(0.5,0.5,1) "X")
A1: Bus(from X.start+(0,-boxht*3/2), shaded "red" "A")
A2: Bus(from 2 between X.start and A1.start,shaded "red" "A")
@@ -27,5 +28,27 @@ A2: Bus(from 2 between X.start and A1.start,shaded "red" "A")
Meter with .e at X.end
box wid boxwid*1.2 ht boxht*1.2 fill_(1) "$R_{\psi}^{\pi/2}$" \
at A2.end-(4.5*boxwid,0)
+]
+
+#.PE
+#.PS
+# SQUID.m4
+cct_init
+
+[
+down_
+#source
+S1: SQUID
+ "J1" at S1.J1 above rjust
+ "J2" at S1.J2 above ljust
+
+S2: SQUID(3,dimen_*1.5,-120) at S1.e+(elen_,0)
+ "J1" at S2.J1 above rjust
+ "J2" at S2.J2 below ljust
+ "J3" at S2.J3 above ljust
+ arcrad = S2.C.rad*0.7
+ arc from S2.c+(Rect_(arcrad,-135)) to S2.c+(Rect_(arcrad,-45)) \
+ with .c at S2.C ->
+ ] with .w at last [].e+(boxht,0)
.PE
diff --git a/graphics/circuit_macros/examples/Resistors.m4 b/graphics/circuit_macros/examples/Resistors.m4
index 5e96f95822..8dd31005c8 100644
--- a/graphics/circuit_macros/examples/Resistors.m4
+++ b/graphics/circuit_macros/examples/Resistors.m4
@@ -5,36 +5,32 @@ cct_init
movewid = 2 pt__
hm = 2.05
vm = 0.28
-{ {resistor ; move ;"`{\tt resistor}'" ljust}
+{ {A:resistor ; move ;"`{\tt resistor}'" ljust}
move right_ hm
- {resistor(,,Q) ; move ;"`\tt resistor(,{,}Q) '" ljust}
+ {Q:resistor(,5,Q) ; move ;"`\tt $\ldots$(,5{,}Q) '" ljust}
move right_ hm
- {resistor(,,V) ; move ;"`{\tt resistor(,{,}V)}'" ljust}
+ {V:resistor(,,V) ; move ;"`{\tt $\ldots$(,{,}V)}'" ljust}
}
move down vm; right_
-{ {resistor(,,ES) ; move ;"`\tt resistor(,{,}ES) '" ljust}
+{ {ES:resistor(,,ES); move ;"`\tt $\ldots$(,{,}ES) '" ljust}
move right_ hm
- {resistor(,,H) ; move ;"`\tt resistor(,{,}H) '" ljust}
+ {H:resistor(,4,H) ; move ;"`\tt $\ldots$(,4{,}H) '" ljust}
move right_ hm
- {resistor(,,AC) ; move ;"`{\tt resistor(,{,}AC)}'" ljust}
+ {AC:resistor(,,AC) ; move ;"`{\tt $\ldots$(,{,}AC)}'" ljust}
}
move down vm; right_
-{ {resistor(,5,B) ; move ;"`{\tt resistor(,5,B)}'" ljust}
+{ {B:resistor(,,B) ; move ;"`{\tt $\ldots$(,{,}B)}'" ljust}
move right_ hm
- {resistor(,,E) ; move
- "`\shortstack[l]{\tt resistor(,{,}E)\\ {\tt $\equiv$ ebox}}'" ljust}
+ {F:resistor(,,F) ; move ;"`\tt $\ldots$(,{,}F) '" ljust}
move right_ hm
- {ebox(,0.5,0.3) ; move ;"`{\tt ebox(,0.5,0.3)}'" ljust}
+ {E:resistor(,,E) ; move ; "`\tt $\ldots$(,{,}E) $\equiv$ ebox'" ljust}
}
- move down vm; right_
+ move down vm*1.1; right_
{ {ebox(,,,0.9) ; move ;"`{\tt ebox(,{,},0.9)}'" ljust}
move right_ hm
- {ebox(,,,,shaded "yellow") ; move
- "`{\tt ebox(,{,},{,}shaded \"yellow\")}'" ljust}
-}
- move down vm; right_
-{ {ebox(,wdth=0.2;box=dashed shaded "green";text="X") ; move
- "`{\tt ebox(,wdth=0.2;box=dashed shaded \"green\";text=\"X\")}'" ljust}
+ {ebox(,wdth=0.2;box=dashed shaded "green";text="H") ; move
+ "`\shortstack[l]{\tt ebox(,wdth=0.2;box=dashed shaded \"green\";\\' \
+ `\tt text=\"H\")}'" ljust}
}
.PE
diff --git a/graphics/circuit_macros/examples/SQUID.m4 b/graphics/circuit_macros/examples/SQUID.m4
deleted file mode 100644
index 54f50f9fa6..0000000000
--- a/graphics/circuit_macros/examples/SQUID.m4
+++ /dev/null
@@ -1,22 +0,0 @@
-.PS
-# SQUID.m4
-cct_init
-
-divert(-1)
-divert(0)dnl
-
-down_
-#source
-S1: SQUID
- "J1" at S1.J1 above rjust
- "J2" at S1.J2 above ljust
-
-S2: SQUID(3,dimen_*1.5,-120) at S1.e+(elen_,0)
- "J1" at S2.J1 above rjust
- "J2" at S2.J2 below ljust
- "J3" at S2.J3 above ljust
- arcrad = S2.C.rad*0.7
- arc from S2.c+(Rect_(arcrad,-135)) to S2.c+(Rect_(arcrad,-45)) \
- with .c at S2.C ->
-
-.PE
diff --git a/graphics/circuit_macros/examples/Sevensegment.m4 b/graphics/circuit_macros/examples/Sevensegment.m4
new file mode 100644
index 0000000000..af45f48edb
--- /dev/null
+++ b/graphics/circuit_macros/examples/Sevensegment.m4
@@ -0,0 +1,82 @@
+.PS
+# Sevensegment.m4
+# https://tex.stackexchange.com/questions/644009/seven-segments-anchors-how-to-use-them
+gen_init
+divert(-1)
+ `sevensegment(keys)
+ Seven-segment display in a [] block. keys:
+ hght=expr; (default boxht)
+ wdth=expr; (default hght*3.3/5.85)
+ slant=fraction; top is skewed slant fraction of ht
+ segwid=expr; segment width
+ gap=expr; gap between segments
+ bevel=fraction; corner truncation
+ on=attributes; "on" segment attributes
+ off=attributes; "off" segment attributes
+ code=[0-8][.]; displayed number .=decimal point
+ or
+ code=Xddddddd[.] where each d=0 or 1 to define
+ Segment1 to Segment7 off or on
+ Segments are labeled Seg1 Seg2 ... Seg7
+ and the decimal point is Seg8'
+define(`sevensegment', # hght, wdth, slant, segwid, gap, bevel, on, off, code
+ `[ pushkeys_(`$1',`hght:boxht; wdth:m4`'hght*3.3/5.85; slant:0;
+ segwid:0.75/3.2*m4`'wdth; gap:0.12/3.2*m4`'wdth; bevel:0.4;
+ on:outlined "red" shaded "red":N; off:outlined "lightgray":N;
+ code:00000010:N;')
+ gapch = m4gap/2*sqrt(2)
+ ifinstr(m4code,.,`define(`m4tmp',substr(m4code,0,decr(len(m4code))))dnl
+ pushdef(`dodp',1)poppushdef(`m4code',m4tmp)')dnl
+ ifinstr(m4code,X,`pushdef(`opcode',substr(m4code,1))',
+ `foreach_(`m4cd',`pushdef(`Cd'decr(m4Lx),m4cd)',1111110,0110000,1101101,
+ 1111001,0110011,1011011,1011111,1110000,1111111,1111011)dnl
+ pushdef(`opcode',Cd`'m4code)')dnl
+ for_(1,7,1,`pushdef(`attrib'm4x,
+ ifelse(substr(opcode,decr(m4x),1),1,`m4on',`m4off'))')dnl
+ Seg1: m4segment(R,m4bevel,m4bevel,attrib1) \
+ with .S at m4slu(0,m4hght-m4segwid)
+ inner = distance(Seg1.SW,Seg1.SE) + gapch*2
+ Seg2: m4segment(D,0.5,m4bevel,attrib2) with .S at \
+ m4slu(m4wdth/2-m4segwid,m4hght-m4segwid-inner/2)
+ Seg3: m4segment(D,m4bevel,0.5,attrib3) with .S at \
+ m4slu(m4wdth/2-m4segwid,m4segwid+inner/2)
+ Seg4: m4segment(L,m4bevel,m4bevel,attrib4) with .S at m4slu(0,m4segwid)
+ Seg5: m4segment(U,0.5,m4bevel,attrib5) with .S at \
+ m4slu(-m4wdth/2+m4segwid,m4segwid+inner/2)
+ Seg6: m4segment(U,m4bevel,0.5,attrib6) with .S at \
+ m4slu(-m4wdth/2+m4segwid,m4hght-m4segwid-inner/2)
+ Seg7: m4segment(R,0.5,0.5,attrib7) with .c at m4slu(0,m4hght/2)
+ ifelse(dodp,1,`Seg8: circle diam m4segwid m4on \
+ at m4slu(Seg3.e.x+m4segwid/2+m4gap,Seg4.s.y+m4segwid/2)') popdef(`dodp')
+ popdef(`m4hght',`m4wdth',`m4slant',`m4segwid',`m4gap',`m4bevel',
+ `m4on',`m4off',`m4code',`opcode')dnl
+ for_(1,7,1,`popdef(`attrib'm4x)') for_(0,9,1,`popdef(`Cd'm4x)')dnl
+ ]')
+define(`m4segment',`[ setdir_(`$1')
+ m4seven_pos(SE,E,NE,,`$2'); m4seven_pos(SW,W,NW,-,`$3')
+ resetdir_
+ S: 1/2 between SW and SE
+ Line: line from m4slu(S.x,S.y) to m4slu(SE.x,SE.y) then to m4slu(E.x,E.y) \
+ then to m4slu(NE.x,NE.y) then to m4slu(NW.x,NW.y) then to m4slu(W.x,W.y) \
+ then to m4slu(SW.x,SW.y) then to m4slu(S.x,S.y) `$4' ] ')
+define(`m4seven_pos',
+ `AA: (`$4'(m4wdth/2-m4segwid-gapch),0); `$1': rot_(AA.x,AA.y,rp_ang)
+ BA: AA + (`$4'1,1)*m4segwid*(1-`$5'); `$2': rot_(BA.x,BA.y,rp_ang)
+ CA: BA - (`$4'1,-1)*m4segwid*`$5'; `$3': rot_(CA.x,CA.y,rp_ang) ')
+define(`m4slu',`(`$1'+(`$2')*m4slant,`$2')')
+
+divert(0)dnl
+
+
+[
+ S: sevensegment(code=4.;hght=1)
+ { for_(1,8,1,`"m4x" at S.Seg`'m4x') }
+ move right 0.25
+ P: sevensegment(code=X1100011;off=invis;hght=1)
+ ]
+[
+ for_(0,9,1,`sevensegment(code=m4x`'ifelse(m4x,1,.);slant=1/4;off=invis)
+ move movewid/4')
+ ] with .nw at last [].sw+(0,-boxht/3)
+
+.PE
diff --git a/graphics/circuit_macros/examples/shadowed.m4 b/graphics/circuit_macros/examples/Shadowed.m4
index 1f26d36049..fbac6a5b5d 100644
--- a/graphics/circuit_macros/examples/shadowed.m4
+++ b/graphics/circuit_macros/examples/Shadowed.m4
@@ -1,15 +1,12 @@
.PS
-# shadowed.m4
+# Shadowed.m4
gen_init
NeedDpicTools
-divert(-1)
-
-divert(0)dnl
Boxes: [
movewid = movewid/2
B1: shadowed(,,
- rad=0bp__; shadowthick=lthick*4; shadowcolor="lightgray"; shadowangle=-60; \
+ shadowthick=lthick*4; shadowcolor="lightgray"; shadowangle=-60; \
attrib=fill_(0.85) "box")
move
@@ -55,6 +52,12 @@ move
move
ColoredV(ellipse,,outlined "magenta" shaded "yellow" "Goodbye")
+
+move
+ ColoredV(box,
+ ((0,0,0,0, 0.25,0,0,0, 0.251,1,1,1, 0.8,1,1,1, 0.801,1,0,0, 1,1,0,0)),
+ ht 3/4 wid 1 rad 3/32)
+ "\textcolor{white}{Heading}" at last [].n below
] with .nw at Boxes.sw #+(0,-moveht)
.PE
diff --git a/graphics/circuit_macros/examples/Sources.m4 b/graphics/circuit_macros/examples/Sources.m4
index 8c4f9634db..ceeea28cb0 100644
--- a/graphics/circuit_macros/examples/Sources.m4
+++ b/graphics/circuit_macros/examples/Sources.m4
@@ -19,18 +19,17 @@ define(`NL',`; move down $1; right_')
{source(,SC) ; move ; "`\tt source(,SC)'" ljust} NL
{source(,AC); move ; "`\tt source(,AC)'" ljust} NL
{source(,X) ; move ; "`\tt source(,X)'" ljust} NL
- {source(,F) ; move ; "`\tt source(,F)'" ljust} NL
{source(,G) ; move ; "`\tt source(,G)'" ljust} NL
{source(,Q) ; move ; "`\tt source(,Q)'" ljust} NL #(0.3)
+ {source(,F) ; move ; "`\tt source(,F)'" ljust} NL
+ {geiger(,,,,fill_(0.9)); move;
+ "`\tt \shortstack[l]{geiger(,{,},{,}\\ fill\_(0.9))}'" ljust} NL
}
move right_ 2.0
{
-# {source(,,0.4) ; move ; "`\tt source(,{,}0.4)'" ljust} NL(0.35)
{source(,,0.4,,shaded "yellow") ; move ;
"`\tt\shortstack[l]{source(,{,}0.4,{,}\\ shaded \"yellow\")}'" ljust} NL(0.35)
-# {source(,P) ; move ; "`\tt source(,P)'" ljust} NL
- {source(,P,,,fill_(0.9)) ; move ;
- "`\tt\shortstack[l]{source(,P,{,},\\ fill\_(0.9))}'" ljust} NL
+ {source(,P) ; move ; "`\tt source(,P)'" ljust} NL
{source(,U) ; move ; "`\tt source(,U)'" ljust} NL
{source(,H) ; move ; "`\tt source(,H)'" ljust} NL
{source(,R) ; move ; "`\tt source(,R)'" ljust} NL
@@ -38,17 +37,18 @@ define(`NL',`; move down $1; right_')
{source(,SCr) ; move ; "`\tt source(,SCr)'" ljust} NL
{source(,T) ; move ; "`\tt source(,T)'" ljust} NL
{source(,L) ; move ; "`\tt source(,L)'" ljust} NL
- {source(,B) ; move ; "`\tt source(,B)'" ljust} NL
+ {source(,B) ; move ; "`\tt source(,B)'" ljust} NL(moveht*0.8)
{nullator ; move ; "`\tt nullator'" ljust} NL(moveht*0.8)
{norator ; move ; "`\tt norator'" ljust} NL(moveht*0.9)
{ttmotor(,G) ; move ; "`\tt ttmotor(,G)'" ljust} NL(moveht*1.1)
- {proximity ; move ; "`\tt \shortstack[l]{proximity\\ = consource(,P)}'" ljust}
+ {battery ; move ; "`\tt battery'" ljust} NL(0.3)
+ {battery(,3,R) ; move ; "`\tt battery(,3,R)'" ljust} #NL(0.35)
}
move right_ 2.0
{source(,N) ; move ; "`\tt source(,N)'" ljust} NL
+ {source(,NA) ; move ; "`\tt source(,NA)'" ljust} NL
+ {source(,NB) ; move ; "`\tt source(,NB)'" ljust} NL
{source(,"\rm mA");move; "`\tt source(,\"mA\")'" ljust} NL(0.31)
-# {source(,"mA");move; "`\tt source(,'" ljust \
-# "`\tt \enskip \"mA\")'" ljust} NL(0.31)
{consource ; move ; "`\tt consource'" ljust} NL(0.32)
{consource(,I) ; move ; "`\tt consource(,I)'" ljust} NL(0.32)
{consource(,i) ; move ; "`\tt consource(,i)'" ljust} NL(0.32)
@@ -57,8 +57,8 @@ define(`NL',`; move down $1; right_')
{consource(,V) ; move ; "`\tt consource(,V)'" ljust} NL(0.32)
{consource(,v) ; move ; "`\tt consource(,v)'" ljust} NL(0.3)
{consource(,tv) ; move ; "`\tt consource(,tv)'" ljust} NL(0.3)
- {battery ; move ; "`\tt battery'" ljust} NL(0.3)
- {battery(,3,R) ; move ; "`\tt battery(,3,R)'" ljust} #NL(0.35)
+ {proximity ; move ;
+ "`\tt \shortstack[l]{proximity\\ = consource(,P)}'" ljust} NL(0.35)
iflatex(`ifpsfrag(,`latexcommand(})')')
.PE
diff --git a/graphics/circuit_macros/examples/Switches.m4 b/graphics/circuit_macros/examples/Switches.m4
index 0b2d00d0e0..7b25160394 100644
--- a/graphics/circuit_macros/examples/Switches.m4
+++ b/graphics/circuit_macros/examples/Switches.m4
@@ -138,7 +138,7 @@ movewid = 0.25
"\tt circle=\"M\")" ljust}
move right_
dswitch(,,WBcDIGC,circle="M")
- {"\tt (,{,}WBcDIGC," ljust at last line.start+(0,-15bp__) \
+ {"\tt (,{,}WBcDIGC," wid 72bp__ ljust at last line.start+(0,-15bp__) \
"\tt circle=\"M\")" ljust}
}
diff --git a/graphics/circuit_macros/examples/cbresistor.m4 b/graphics/circuit_macros/examples/cbresistor.m4
new file mode 100644
index 0000000000..152e42758c
--- /dev/null
+++ b/graphics/circuit_macros/examples/cbresistor.m4
@@ -0,0 +1,80 @@
+.PS
+# cbresistor.m4
+# https://tex.stackexchange.com/questions/709339/create-command-with-decoration-in-tikz
+# https://www.google.com/search?client=firefox-b-d&q=resistor+color+code
+cct_init
+divert(-1)
+
+ `cbresistor(linespec, keys)
+ keys:
+ lgth=expr; wdth=expr;
+ body=body attributes, e.g. shaded "green"
+ type=A|B; pinched body shape
+ colors=color:color:...;
+ Up to 6 colors, a color may be nul '
+define(`cbresistor',`eleminit_(`$1')
+ pushkeys_(`$2',`lgth:dimen_/2; wdth:dimen_/5; body::N; colors::N; type::N')dnl
+{line to rvec_(max(0,rp_len/2-m4lgth/2),0) thick linethick*3/2; M4cbW: Here
+ ifelse(m4type,B,
+ `[L:rotbox(m4lgth*3/23, m4wdth, shaded "darkgray" m4body,r=m4wdth/20)
+ C:rotbox(m4lgth*17/23, m4wdth*9/10, shaded "darkgray" m4body) \
+ with .W at L.E
+ R:rotbox(m4lgth*3/23, m4wdth, shaded "darkgray" m4body,r=m4wdth/20) \
+ with .W at C.E] with .L.W at Here; move to last [].R.E',
+ `rotbox(m4lgth, m4wdth, shaded "darkgray" m4body) with .W at Here')
+ ifelse(m4colors,,,`define(`m4bw',(m4lgth/23))dnl
+ definergbcolor(silver,0.75,0.75,0.75)
+ definergbcolor(gold,1,215/255,0)
+ stacksplit_(`cbrstack',m4colors,:)stackreverse_(`cbrstack')dnl
+ stackargs_(`m4pos',22,17,12,7,5,2)dnl
+ stackdo_(`cbrstack',`ifelse(cbrstack,nul,,
+ `{ move to M4cbW+vec_(m4pos*m4bw-m4bw/2,0)
+ define(`m4ctr',ifelse(m4type,B,eval((m4pos>3)*(m4pos<20)),0))dnl
+ line m4colorfix(outlined,cbrstack) thick m4bw*1.8/(1bp__) \
+ from rvec_(0,-ifelse(m4ctr,1,0.9*)m4wdth/2) \
+ to rvec_(0, ifelse(m4ctr,1,0.9*)m4wdth/2)
+ ifelse(ifelse(cbrstack,silver,1,cbrstack,gold,1),1,
+ `line outlined rgbstring(0.8,0.8,0.8) thick last line.thick \
+ from 0.2 along_(last line) to 0.4 along_(last line)
+ line outlined "white" thick last line.thick \
+ from 0.25 along_(2nd last line) to 0.3 along_(2nd last line)')
+ }')
+ popdef(`m4pos')') stackdo_(`m4pos')')
+ line to rvec_(max(0,rp_len/2-m4lgth/2),0) thick linethick*3/2}
+ popdef(`m4lgth',`m4wdth',`m4body',`m4colors',`m4type')dnl
+ line to rvec_(rp_len,0) invis ')
+
+divert(0)dnl
+
+linewid = 3/2*linewid
+ifsvg(definergbcolor(Dandelion,0.95,0.65,0.2))
+ifsvg(definergbcolor(Peach,0.76,0.5,0.1))
+
+define(`dpr',
+ `{ cbresistor(,type=B;
+ body=m4colorfix(shaded,Dandelion) m4colorfix(outlined,Peach);
+ colors=`$2') }
+ {iflatex(`sprintf("\SI{%g}{\ohm}",`$1')')ifsvg("``$1'svg_Omega'") \
+ at last line.end+(10bp__,-5bp__) rjust}
+ move right_ moveht*5/6; down_ ')
+
+ define(`elen_',(3/2*linewid))
+ define(`dimen_',(5/4*linewid))
+ down_
+ foreach_(`pair',`dpr(patsubst(pair,-,`,'):nul:black:silver)',
+ 10-brown:black,
+ 12-brown:red,
+ 15-brown:green,
+ 18-brown:gray,
+ 22-red:red,
+ 27-red:Violet,
+ 33-orange:orange,
+ 39-orange:white,
+ 47-yellow:Violet,
+ 56-green:blue,
+ 68-blue:gray,
+ 82-gray:red)
+ dpr(100,brown:black:nul:brown:gold)
+ {"iflatex(\SI{5}{\percent},5 %)" at last line.end+(10bp__,-15bp__) rjust}
+
+.PE
diff --git a/graphics/circuit_macros/examples/dpv/AmpTableDPV.m4 b/graphics/circuit_macros/examples/dpv/AmpTableDPV.m4
index 2850ff5ad7..ab6d34b9e2 100644
--- a/graphics/circuit_macros/examples/dpv/AmpTableDPV.m4
+++ b/graphics/circuit_macros/examples/dpv/AmpTableDPV.m4
@@ -1,25 +1,24 @@
.PS
-# `Amptable.m4'
+# `AmptableDPV.m4'
cct_init(svg_font(sans-serif,11bp__))
textwid = 0.7
movewid = 2pt__
-{
+{
{amp ; move ; "`amp'" ljust}
- move down 0.4; right_
- {amp(,0.3) ; move ; "`amp'(,0.3)" ljust}
- }
move right_ 2.0
-{ {delay ; move ; "`delay'" ljust}
- move down 0.4; right_
- {delay(,0.2) ; move ; "`delay'(,0.2)" ljust}
- }
-
+ {amp(,5mm__) ; move ; "`amp(,5mm__)'" ljust}
move right_ 2.0
-{ {integrator ; move ; "`integrator'" ljust}
+ {integrator ; move ; "`integrator'" ljust}
+ }
move down 0.5; right_
- {integrator(,0.3) ; move ; "`integrator'(,0.3)" wid 1.2 at Here ljust}
- }
+{
+ {delay(,,fill_(0.9)) ; move ;
+ "`delay(,,'" ljust "`fill_(0.9))'" ljust}
+ move right_ 2.0
+ {delay(,,type=S;body=shaded rgbstring(0.75,0.75,1)); move
+ "`delay(,,type=S;" ljust "body=shaded rgbstring(0.75,0.75,1)')" ljust}
+ }
command "</g>" # end font
.PE
diff --git a/graphics/circuit_macros/examples/dpv/DiniDPV.m4 b/graphics/circuit_macros/examples/dpv/DiniDPV.m4
index 1846917a4a..7d48ca590d 100644
--- a/graphics/circuit_macros/examples/dpv/DiniDPV.m4
+++ b/graphics/circuit_macros/examples/dpv/DiniDPV.m4
@@ -3,9 +3,10 @@
# This diagram can be produced using, e.g.
# m4 pdf.m4 Dini.m4 | dpic -d > Dini.pdf
+# https://tex.stackexchange.com/questions/516734/plot-dinis-surface
threeD_init
NeedDpicTools
-scale = 1.5
+scale = 2.0
[
viewazimuth = 0 # View angles in degrees
viewelevation = 20
@@ -189,5 +190,58 @@ array2(h,m4inx,53,54,55,58,59,57)
for_(2,5,1,`to Project((v[x[m4x],1]),(v[x[m4x],2]),(v[x[m4x],3]))\')\
to Project((v[x[1],1]),(v[x[1],2]),(v[x[1],3])) thick 0.2 fill_(0)
}
-] scaled 2.5 with .sw at last [].se+(1,0)
+] scaled 2.5 with .sw at last [].se+(0.5,0)
+[
+#.PE
+#.PS
+## BlueBall.m4
+## https://latex.org/forum/viewtopic.php?f=5&t=30639
+#threeD_init
+#NeedDpicTools
+
+ ballrad = 2.5
+ cylrad = ballrad*0.87
+ hht =sqrt(ballrad^2-cylrad^2)
+ azimuth = 0
+ elevation = atan2(hht,cylrad)
+ setview(azimuth,elevation*rtod_)
+ sinelev = sin(elevation)
+
+ linethick_(1)
+ C: shadedball(ballrad,,,,(0,1,1)) at (0,0)
+ Op: C+Project(0,0,hht)
+ O: C+Project(0,0,-hht)
+ line dashed from Op+( cylrad,0) down Op.y-O.y
+ line dashed from Op+(-cylrad,0) down Op.y-O.y
+
+ define(`Normal',`cosd(`$1')*cylrad,sind(`$1')*cylrad,-hht')
+ define Cylvis { $`'2 = dot3D(Normal($`'1),View3D) }
+ findroot(Cylvis,5,170,1e-8,rA)
+ A: Project(Normal(rA))
+ B: O+(-(A.x-O.x),A.y-O.y)
+ aA = atan2(A.y-O.y,(A.x-O.x)*sinelev)
+ ellipsearc(cylrad*2,cylrad*2*sinelev,aA,-pi_-aA,0,cw) with .C at O
+ ellipsearc(cylrad*2,cylrad*2*sinelev,-pi_-aA-4*dtor_,aA+4*dtor_,,cw,dashed) \
+ with .C at O
+ ellipsearc(cylrad*2,cylrad*2*sinelev,-aA,pi_+aA,0,cw) with .C at Op
+ ellipsearc(cylrad*2,cylrad*2*sinelev,pi_+aA+4*dtor_,-aA-4*dtor_,,cw,dashed) \
+ with .C at Op
+
+ dot(at C); # "$T$" at last [].w rjust below
+ dot(at O); # "$O$" at last [].s below
+ dot(at A); # "$A$" at last [].s ljust below
+ dot(at B); # "$B$" at last [].s rjust below
+ dot(at Op); # "$O'$" at last [].n above
+ Ap: dot(at Op+(A-O)); # "$A'$" at Ap.n ljust above
+ Bp: dot(at Op+(B-O)); # "$B'$" at Bp.n rjust above
+
+ linethick_(0.4)
+ line dashed from Ap to A then to O then to Op
+ line dashed from A to C
+ line dashed from Bp to B
+ V: Between_(O,A,0.15)
+ U: C+Project(0,0,-hht+0.15)
+ line from U to U+(V-O) then to V
+ ] with .w at last [].e+(0.5,0)
+
.PE
diff --git a/graphics/circuit_macros/examples/dpv/EVplugsDPV.m4 b/graphics/circuit_macros/examples/dpv/EVplugsDPV.m4
index d3e40c8dd2..50afde5355 100644
--- a/graphics/circuit_macros/examples/dpv/EVplugsDPV.m4
+++ b/graphics/circuit_macros/examples/dpv/EVplugsDPV.m4
@@ -14,7 +14,7 @@ divert(-1)
twdth=expr; # tab width
thgt=expr; # tab hght
thick=expr; # outer line thickness (pt)
- inthick=expr; # inner line thickness (pt)
+ thickin=expr; # inner line thickness (pt)
BG=attributes; # shaded gray etc
L1=attributes; # L1 attributes ...
N=attributes;
@@ -23,21 +23,21 @@ divert(-1)
CP=attributes; '
define(`pEVskale',25.4) dnl default plug size (20 mm)
define(`EV_J1772',`[ pushkeys_(`$1', `wdth:20/pEVskale;
- twdth:3.5/20*m4wdth; thgt:1.5/20*m4wdth; diamLNP:6/20*m4wdth;
- thick:2; inthick:1.5; BG::N; L1::N; N::N; PE::N; PP::N; CP::N; ')
+ twdth:3.5/20*m4`'wdth; thgt:1.5/20*m4`'wdth; diamLNP:6/20*m4`'wdth;
+ thick:2; thickin:1.5; BG::N; L1::N; N::N; PE::N; PP::N; CP::N; ')
tang = atan2(m4twdth/2,m4wdth/2)*rtod_
TS: (Rect_(m4wdth/2,-90-tang)); TE: (Rect_(m4wdth/2,-90+tang))
Tab: line thick m4thick from TS down_ m4thgt \
then to TE-(0,m4thgt) then to TE m4BG
Arc: arc thick m4thick to TS with .c at (0,0) m4BG
round(at TS,last arc.thick); round(at TE,last arc.thick)
- L1: circle diam m4diamLNP thick m4inthick at (Rect_(m4wdth/4,150)) m4L1
- N: circle diam m4diamLNP thick m4inthick at (Rect_(m4wdth/4, 30)) m4N
- PE: circle diam m4diamLNP thick m4inthick at (0,-m4wdth/4) m4PE
- PP: circle diam m4diamLNP*0.55 thick m4inthick at (Rect_(m4wdth/3,210)) m4PP
- CP: circle diam m4diamLNP*0.55 thick m4inthick at (Rect_(m4wdth/3,-30)) m4CP
+ L1: circle diam m4diamLNP thick m4thickin at (Rect_(m4wdth/4,150)) m4L1
+ N: circle diam m4diamLNP thick m4thickin at (Rect_(m4wdth/4, 30)) m4N
+ PE: circle diam m4diamLNP thick m4thickin at (0,-m4wdth/4) m4PE
+ PP: circle diam m4diamLNP*0.55 thick m4thickin at (Rect_(m4wdth/3,210)) m4PP
+ CP: circle diam m4diamLNP*0.55 thick m4thickin at (Rect_(m4wdth/3,-30)) m4CP
`$2' popdef(`m4CP',`m4PP',`m4PE',`m4N',`m4L1',`m4BG',
- `m4wdth',`m4diamLNP',`m4twdth',`m4thgt',`m4thick',`m4inthick') ]')
+ `m4wdth',`m4diamLNP',`m4twdth',`m4thgt',`m4thick',`m4thickin') ]')
`EV_J3068(keys,shade)
EV charging plug in a [] block
@@ -46,7 +46,7 @@ define(`EV_J1772',`[ pushkeys_(`$1', `wdth:20/pEVskale;
twdth=expr; # tab width
thgt=expr; # tab hght
thick=expr; # outer line thickness (pt)
- inthick=expr; # inner line thickness (pt)
+ thickin=expr; # inner line thickness (pt)
BG=attributes; # shaded gray etc
L1|L2|L3=attributes; # pin attributes ...
N=attributes;
@@ -55,7 +55,7 @@ define(`EV_J1772',`[ pushkeys_(`$1', `wdth:20/pEVskale;
CP=attributes;
arg2= R:G:B background fill color '
define(`EV_J3068',`[ pushkeys_(`$1',
- `wdth:25/pEVskale; diamLNP:m4wdth*0.25; thick:2; inthick:1.5;
+ `wdth:25/pEVskale; diamLNP:m4`'wdth*0.25; thick:2; thickin:1.5;
BG::N; L1::N; L2::N; L3::N; N::N; PE::N; PP::N; CP::N; ')
C: Here
NE: C+(Rect_(m4wdth/2,45)); NW: C+(Rect_(m4wdth/2,135))
@@ -68,14 +68,14 @@ define(`EV_J3068',`[ pushkeys_(`$1',
arc thick m4thick to Ac+(0,m4diamLNP/2) with .c at Ac m4BG
Top: line thick m4thick to (NW+NE-Ac, Here) m4BG
arc thick m4thick to NW with .c at Here+(0,-m4diamLNP/2) m4BG
- PE: circle diam m4diamLNP thick m4inthick at C m4PE
- PP: circle diam m4diamLNP*0.55 thick m4inthick at C+(Rect_(m4wdth/3,45)) m4PP
- CP: circle diam m4diamLNP*0.55 thick m4inthick at C+(Rect_(m4wdth/3,135)) m4CP
- L1: circle diam m4diamLNP thick m4inthick at C+(m4wdth*.3,0) m4L1
- L2: circle diam m4diamLNP thick m4inthick at C+(Rect_(m4wdth*.3,-60)) m4L2
- L3: circle diam m4diamLNP thick m4inthick at C+(Rect_(m4wdth*.3,-120)) m4L3
- N: circle diam m4diamLNP thick m4inthick at C-(m4wdth*.3,0) m4N
- `$3' popdef(`m4wdth',`m4diamLNP',`m4thick',`m4inthick',
+ PE: circle diam m4diamLNP thick m4thickin at C m4PE
+ PP: circle diam m4diamLNP*0.55 thick m4thickin at C+(Rect_(m4wdth/3,45)) m4PP
+ CP: circle diam m4diamLNP*0.55 thick m4thickin at C+(Rect_(m4wdth/3,135)) m4CP
+ L1: circle diam m4diamLNP thick m4thickin at C+(m4wdth*.3,0) m4L1
+ L2: circle diam m4diamLNP thick m4thickin at C+(Rect_(m4wdth*.3,-60)) m4L2
+ L3: circle diam m4diamLNP thick m4thickin at C+(Rect_(m4wdth*.3,-120)) m4L3
+ N: circle diam m4diamLNP thick m4thickin at C-(m4wdth*.3,0) m4N
+ `$3' popdef(`m4wdth',`m4diamLNP',`m4thick',`m4thickin',
`m4BG',`m4L1',`m4L2',`m4L3',`m4N',`m4PE',`m4PP',`m4CP') ]')
`EV_CCS1(J1772 keys,DC keys)
@@ -84,20 +84,20 @@ define(`EV_J3068',`[ pushkeys_(`$1',
diamPM=expr; # diam of DC+, DC- circles
sep=expr; # separation of Jack and DC
thick=expr; # outer line thickness (pt)
- inthick=expr; # inner line thickness (pt)
+ thickin=expr; # inner line thickness (pt)
BG=attributes; # shaded gray etc
DCplus=attributes;
DCminus=attributes; '
define(`EV_CCS1',`[
J: EV_J1772(`$1')
- pushkeys_(`$2',`wdth:J.wid:23.5/20; hght:J.wid*11/20; diamPM:m4hght*7/11;
- sep:J.wid*3/30; thick:J.Arc.thick; inthick:J.PE.thick;
+ pushkeys_(`$2',`wdth:J.wid:23.5/20; hght:J.wid*11/20; diamPM:m4`'hght*7/11;
+ sep:J.wid*3/30; thick:J.Arc.thick; thickin:J.PE.thick;
BG::N; DCplus::N; DCminus::N;')
DC: [ Box: box thick m4thick wid m4wdth ht m4hght rad m4hght/2 m4BG
- DCplus: circle thick m4inthick diam m4diamPM at Box.w+(m4hght/2,0) m4DCplus
- DCminus:circle thick m4inthick diam m4diamPM at Box.e-(m4hght/2,0) m4DCminus
+ DCplus: circle thick m4thickin diam m4diamPM at Box.w+(m4hght/2,0) m4DCplus
+ DCminus:circle thick m4thickin diam m4diamPM at Box.e-(m4hght/2,0) m4DCminus
] with .n at J.s+(0,-m4sep)
- popdef(`m4wdth',`m4hght',`m4diamPM',`m4sep',`m4thick',`m4inthick',`m4BG',
+ popdef(`m4wdth',`m4hght',`m4diamPM',`m4sep',`m4thick',`m4thickin',`m4BG',
`m4DCplus',`m4DCminus')
]')
@@ -107,22 +107,22 @@ define(`EV_CCS1',`[
diamPM=expr; # diam of DC+, DC- circles
sep=expr; # separation of Jack and DC
thick=expr; # outer line thickness (pt)
- inthick=expr; # inner line thickness (pt)
+ thickin=expr; # inner line thickness (pt)
BG=attributes; # shaded gray etc
DCplus=attributes;
DCminus=attributes;
arg2= R:G:B background fill color '
define(`EV_CCS2',`[
J: EV_J3068(`$1',`$2')
- pushkeys_(`$3',`wdth:J.wid:23.5/20; hght:J.wid*11/20; diamPM:m4hght*7/11;
- sep:J.wid*3/30; thick:J.Arc.thick; inthick:J.PE.thick;
+ pushkeys_(`$3',`wdth:J.wid:23.5/20; hght:J.wid*11/20; diamPM:m4`'hght*7/11;
+ sep:J.wid*3/30; thick:J.Arc.thick; thickin:J.PE.thick;
BG::N; DCplus::N; DCminus::N;')
DC: [ Box: box thick m4thick wid m4wdth ht m4hght rad m4hght/2 dnl
m4BG ifelse(`$2',,,`shaded rgbstring(patsubst(`$2',:,`,'))')
- DCplus: circle thick m4inthick diam m4diamPM at Box.w+(m4hght/2,0) m4DCplus
- DCminus:circle thick m4inthick diam m4diamPM at Box.e-(m4hght/2,0) m4DCminus
+ DCplus: circle thick m4thickin diam m4diamPM at Box.w+(m4hght/2,0) m4DCplus
+ DCminus:circle thick m4thickin diam m4diamPM at Box.e-(m4hght/2,0) m4DCminus
] with .n at J.s+(0,-m4sep)
- popdef(`m4wdth',`m4hght',`m4diamPM',`m4sep',`m4thick',`m4inthick',`m4BG',
+ popdef(`m4wdth',`m4hght',`m4diamPM',`m4sep',`m4thick',`m4thickin',`m4BG',
`m4DCplus',`m4DCminus')
]')
@@ -130,12 +130,12 @@ define(`EV_CCS2',`[
EV charging plug in a [] block
keys: wdth=expr; # plug width
thick=expr; # outer line thickness (pt)
- inthick=expr; # inner line thickness (pt)
+ thickin=expr; # inner line thickness (pt)
BG=attributes; # background shaded gray etc
DCplus=|DCminusNS=|FG=|NC=|SS1=|DCP=|PP=|
CL=|CH=|SS2=attributes # pin attributes ...'
define(`EV_CHAdeMO',`[ pushdef(`m4sk',33/140/pEVskale) pushkeys_(`$1',
- `wdth:140*m4sk; thick:m4wdth*9/140/(1bp__); inthick:m4thick*1.5/9;
+ `wdth:140*m4sk; thick:m4`'wdth*9/140/(1bp__); thickin:m4`'thick*1.5/9;
BG::N; DCplus::N; DCminus::N;N::N;S::N;
FG::N; NC::N; SS1::N; DCP::N; PP::N; CL::N; CH::N; SS2::N')
C: circle thick m4thick diam m4wdth-m4thick bp__ m4BG
@@ -144,18 +144,18 @@ define(`EV_CHAdeMO',`[ pushdef(`m4sk',33/140/pEVskale) pushkeys_(`$1',
line thick m4thick*0.6 from C+(Rect_(C.rad+m4thick bp__*3/4,138)) \
to C+(Rect_(C.rad+m4thick bp__*3/4,130)) then right m4thick bp__ m4BG
idiam = (m4wdth-m4thick bp__*2)*47/(27+47*2)
- N: circle diam idiam thick m4inthick with .n at C.n-(0,m4thick bp__/2) m4N
- S: circle diam idiam thick m4inthick with .s at C.s+(0,m4thick bp__/2) m4S
- E: circle diam idiam thick m4inthick at Cintersect(N,N.diam,S,S.diam) m4DCminus
- W: circle diam idiam thick m4inthick at Cintersect(S,S.diam,N,N.diam) m4DCplus
+ N: circle diam idiam thick m4thickin with .n at C.n-(0,m4thick bp__/2) m4N
+ S: circle diam idiam thick m4thickin with .s at C.s+(0,m4thick bp__/2) m4S
+ E: circle diam idiam thick m4thickin at Cintersect(N,N.diam,S,S.diam) m4DCminus
+ W: circle diam idiam thick m4thickin at Cintersect(S,S.diam,N,N.diam) m4DCplus
foreach_(`Z',
- `line thick m4inthick up Z.diam*0.6 right Z.diam*0.6 with .c at Z
- line thick m4inthick up Z.diam*0.6 left Z.diam*0.6 with .c at Z',N,S)
+ `line thick m4thickin up Z.diam*0.6 right Z.diam*0.6 with .c at Z
+ line thick m4thickin up Z.diam*0.6 left Z.diam*0.6 with .c at Z',N,S)
foreach_(`L',`L: circle diam idiam/4 thick linethick/2 \
at N+(Rect_(idiam/4,90*m4Lx)) m4xpand(m4`'L)',FG,NC,DCP,SS1)
foreach_(`L',`L: circle diam idiam/4 thick linethick/2 \
at S+(Rect_(idiam/4,90*m4Lx)) m4xpand(m4`'L)',PP,CL,SS2,CH)
- `$3' popdef(`m4sk',`m4wdth',`m4thick',`m4inthick',`m4BG',
+ `$3' popdef(`m4sk',`m4wdth',`m4thick',`m4thickin',`m4BG',
`m4DCplus',`m4DCminus',`m4N',`m4S',
`m4FG',`m4NC',`m4SS1',`m4DCP',`m4PP',`m4CL',`m4CH',`m4SS2') ]')
@@ -173,7 +173,7 @@ define(`EV_CHAdeMO',`[ pushdef(`m4sk',33/140/pEVskale) pushkeys_(`$1',
Gndinner=attributes;
PP=attributes;
CP=attributes; '
-define(`EV_NAC',`[ pushkeys_(`$1', `wdth:1.6; diamL:m4wdth*0.28; BG::N;
+define(`EV_NAC',`[ pushkeys_(`$1', `wdth:1.6; diamL:m4`'wdth*0.28; BG::N;
L1::N; L1inner::N; L2::N; L2inner::N; Gndinner::N; inner::N;
Gnd::N; PP::N; CP::N; ')
sN = 1/pEVskale*m4wdth/1.6 # drawing coord scale factor
diff --git a/graphics/circuit_macros/examples/dpv/GeometryDPV.m4 b/graphics/circuit_macros/examples/dpv/GeometryDPV.m4
index 18e0cb2fcd..eb87bd8f45 100644
--- a/graphics/circuit_macros/examples/dpv/GeometryDPV.m4
+++ b/graphics/circuit_macros/examples/dpv/GeometryDPV.m4
@@ -145,7 +145,7 @@ Fig4: [ ls = 2/3 # local scale
Y: LCintersect(HZ,CC4,C4.rad,R); "Y" at Y above
X: LCintersect(HZ,CC2,C2.rad); "X" at X above rjust
- Loopover_(`P',`dot(at P)',X,Y,Z)
+ foreach_(`P',`dot(at P)',X,Y,Z)
line dashed from X to Y chop -linewid/2
RightAngle(A,Z,Y)
diff --git a/graphics/circuit_macros/examples/dpv/Makefile b/graphics/circuit_macros/examples/dpv/Makefile
index 30cd004402..f9e04756c7 100644
--- a/graphics/circuit_macros/examples/dpv/Makefile
+++ b/graphics/circuit_macros/examples/dpv/Makefile
@@ -4,9 +4,9 @@ LIBDIR = $$HOME/lib
M4LIBS = svg.m4 DPVconfig.m4
M4LIBS = svg.m4
M4 = m4
-# PDFCONVERT = pdf2svg
+PDFCONVERT = pdf2svg
# The current dvisvgm outputs CRLF line endings
-PDFCONVERT = dvisvgm
+# PDFCONVERT = dvisvgm
# To process a single file, copy it to test.m4 and type "make tst"
# to produce tstDPV.html
@@ -17,6 +17,10 @@ DPIC = dpic
#DPIC = ../dpic/bison/dpic
#DPIC = ../dpic/bi*dev/dpic
+# Quiet mode for MiKTeX or texlive
+# QLATEX = latex --quiet
+QLATEX = latex -interaction=batchmode
+
# To test the Windows executable. Change these as needed for the operating
# system. NOTE: cscDPV.m4 and Connectors.m4 use awk and sed which
# do not work at present with the Windows version.
@@ -41,13 +45,15 @@ DPIC = dpic
echo "\begin{document}" >> F_$*.tex
echo "\input $*.tex" >> F_$*.tex
echo "\end{document}" >> F_$*.tex
- pdflatex --quiet F_$*
+ pdf$(QLATEX) F_$*
$(M4) pgf.m4 F_$*.dim $*.m4 > $*.pic
$(DPIC) -g $*.pic >> $*.tex
- pdflatex --quiet F_$*
+ pdf$(QLATEX) F_$*
if test "$(PDFCONVERT)" = "pdf2svg" ; then \
+ echo "Using pdf2svg" ; \
pdf2svg F_$*.pdf $*.xsvg && cat $*.xsvg | tr -d '\r' > $*.svg ; \
else \
+ echo "Using dvisvgm" ; \
dvisvgm --pdf F_$*.pdf && cat F_$**.svg | tr -d '\r' > $*.svg ; \
cp $*.svg $*.xsvg ; \
fi
@@ -72,14 +78,14 @@ CCTDPV = \
NLGDPV.svg NPDTDPV.svg NportDPV.svg OpampDPV.svg OptoisoDPV.svg \
PconnDPV.svg PlateDPV.svg PushPullDPV.svg QuantumDPV.svg \
RectifiersDPV.svg RelayDPV.svg ResistorsDPV.svg RotboxDPV.svg\
- SchottkyDPV.svg ShiftRDPV.svg SierpinskiDPV.svg \
- SixpoleDPV.svg SourcesDPV.svg SQUIDDPV.svg SwitchesDPV.svg \
+ SchottkyDPV.svg SevensegmentDPV.svg ShiftRDPV.svg SierpinskiDPV.svg \
+ SixpoleDPV.svg SourcesDPV.svg Spec555DPV.svg SwitchesDPV.svg \
TTLnandDPV.svg TgateDPV.svg ThreeDPV.svg \
TubediagsDPV.svg VariableDPV.svg WindingsDPV.svg XformDPV.svg \
- controlDPV.svg cscDPV.svg diamondDPV.svg ex00DPV.svg \
+ cbresistorDPV.svg controlDPV.svg cscDPV.svg diamondDPV.svg \
ex01DPV.svg ex02DPV.svg ex03DPV.svg ex04DPV.svg ex05DPV.svg ex06DPV.svg \
ex08DPV.svg ex09DPV.svg ex10DPV.svg ex11DPV.svg ex12DPV.svg \
- ex15DPV.svg ex16DPV.svg ex17DPV.svg ex18DPV.svg ex21DPV.svg \
+ ex15DPV.svg ex16DPV.svg ex18DPV.svg ex21DPV.svg \
expDPV.svg fetDPV.svg graysurfDPV.svg keyboardDPV.svg lcctDPV.svg \
pwrsupplyDPV.svg quickDPV.svg randomDPV.svg recycleDPV.svg relaycoilDPV.svg \
roseDPV.svg sfgDPV.svg shapesDPV.svg SmithchartDPV.svg paletteDPV.svg \
diff --git a/graphics/circuit_macros/examples/dpv/QuantumDPV.m4 b/graphics/circuit_macros/examples/dpv/QuantumDPV.m4
index 7d2de93cbd..49ed173ffd 100644
--- a/graphics/circuit_macros/examples/dpv/QuantumDPV.m4
+++ b/graphics/circuit_macros/examples/dpv/QuantumDPV.m4
@@ -17,6 +17,7 @@ define(`Meter',`[ Box: box wid boxwid*3/2 fill_(1)
arc cw from C+(-r,0) to C+(r,0) with .c at C
arrow from C+(-r/4,0) to C+(0.9*r,0.9*r) ]')
+[
X: Bus(,shaded rgbstring(0.5,0.5,1) "X")
A1: Bus(from X.start+(0,-boxht*3/2), shaded "red" "A")
A2: Bus(from 2 between X.start and A1.start, shaded "red" "A")
@@ -27,5 +28,27 @@ A2: Bus(from 2 between X.start and A1.start, shaded "red" "A")
Meter with .e at X.end
box wid boxwid*1.2 ht boxht*1.2 fill_(1) at A2.end-(4.5*boxwid,0) \
"svg_it(R)svg_sub(svg_psi)svg_sup(svg_pi/2,,,-1.2ex)"
+ ]
+#.PE
+#.PS
+# SQUIDDPV.m4
+[
+cct_init(svg_font(sans-serif,11bp__))
+
+down_
+S1: SQUID
+ "J1" at S1.J1 above rjust wid 15bp__
+ "J2" at S1.J2 above ljust
+
+S2: SQUID(3,dimen_*1.5,-120) at S1.e+(elen_,0)
+ "J1" at S2.J1 above rjust
+ "J2" at S2.J2 below ljust
+ "J3" at S2.J3 above ljust
+ arcrad = S2.C.rad*0.7
+ arc from S2.c+(Rect_(arcrad,-135)) to S2.c+(Rect_(arcrad,-45)) \
+ with .c at S2.C ->
+ ] with .w at last [].e+(boxht,0)
+
+ command "</g>" # end font
.PE
diff --git a/graphics/circuit_macros/examples/dpv/ResistorsDPV.m4 b/graphics/circuit_macros/examples/dpv/ResistorsDPV.m4
index e9f54c3399..793128e2ea 100644
--- a/graphics/circuit_macros/examples/dpv/ResistorsDPV.m4
+++ b/graphics/circuit_macros/examples/dpv/ResistorsDPV.m4
@@ -2,46 +2,37 @@
# `ResistorsDPV.m4'
cct_init(svg_font(sans-serif,11pt__))
textwid = 1.5
+
movewid = 2 pt__
hm = 2.1
vm = 0.28
-
-hm = 2.05
-vm = 0.28
{
{resistor ; move ; svgLink(NportDPV.svg,"`resistor'" ljust)}
move right_ hm
- {resistor(,,Q) ; move ; "`resistor(,,Q) '" ljust}
+ {resistor(,5,Q) ; move ;"`...(,5,Q) '" ljust}
move right_ hm
- {resistor(,,V) ; move ; "`resistor(,,V) '" ljust}
+ {resistor(,,V) ; move ;"`...(,,V)'" ljust}
}
move down vm; right_
-{
- {resistor(,,ES) ; move ; "`resistor(,,ES) '" ljust}
+{ {resistor(,,ES) ; move ;"`...(,,ES) '" ljust}
move right_ hm
- {resistor(,,H) ; move ; "`resistor(,,H) '" ljust}
+ {resistor(,4,H) ; move ;"`...(,4,H) '" ljust}
move right_ hm
- {resistor(,,AC) ; move ; "`resistor(,,AC) '" ljust}
+ {resistor(,,AC) ; move ;"`...(,,AC)'" ljust}
}
move down vm; right_
-{
- {resistor(,5,B) ; move ; "`resistor(,5,B) '" ljust}
+{ {resistor(,,B) ; move ;"`...(,,B)'" ljust}
move right_ hm
- {resistor(,,E) ; move
- "`resistor(,,E)'" ljust " svg_equiv `ebox'" ljust}
+ {resistor(,,F) ; move ;"`...(,,F) '" ljust}
move right_ hm
- {ebox(,0.5,0.3) ; move ;"`ebox(,0.5,0.3) '" ljust}
+ {resistor(,,E) ; move ;"`...(,,E) svg_equiv ebox'" ljust}
}
- move down vm; right_
-{
- {ebox(,,,0.6) ; move ; "`ebox(,,,0.6) '" ljust}
+ move down vm*1.1; right_
+{ {ebox(,,,0.9) ; move ;"`ebox(,,,0.9)'" ljust}
move right_ hm
- {ebox(,,,,shaded "yellow") ; move ;"`ebox(,,,,shaded \"yellow\") '" ljust}
-}
- move down vm; right_
-{
{ebox(,wdth=0.2;box=dashed shaded "green";text="X") ; move
- "`ebox(,wdth=0.2;box=dashed shaded \"green\";text=\"X\")'" ljust}
+ "`ebox(,wdth=0.2;box=dashed shaded \"green\";'" ljust \
+ "`text=\"X\")'" ljust}
}
command "</g>" # end font
diff --git a/graphics/circuit_macros/examples/dpv/SQUIDDPV.m4 b/graphics/circuit_macros/examples/dpv/SQUIDDPV.m4
deleted file mode 100644
index a6beabbfe0..0000000000
--- a/graphics/circuit_macros/examples/dpv/SQUIDDPV.m4
+++ /dev/null
@@ -1,19 +0,0 @@
-.PS
-# SQUIDDPV.m4
-cct_init(svg_font(sans-serif,11bp__))
-
-down_
-S1: SQUID
- "J1" at S1.J1 above rjust wid 15bp__
- "J2" at S1.J2 above ljust
-
-S2: SQUID(3,dimen_*1.5,-120) at S1.e+(elen_,0)
- "J1" at S2.J1 above rjust
- "J2" at S2.J2 below ljust
- "J3" at S2.J3 above ljust
- arcrad = S2.C.rad*0.7
- arc from S2.c+(Rect_(arcrad,-135)) to S2.c+(Rect_(arcrad,-45)) \
- with .c at S2.C ->
-
- command "</g>" # end font
-.PE
diff --git a/graphics/circuit_macros/examples/dpv/SevensegmentDPV.m4 b/graphics/circuit_macros/examples/dpv/SevensegmentDPV.m4
new file mode 100644
index 0000000000..af45f48edb
--- /dev/null
+++ b/graphics/circuit_macros/examples/dpv/SevensegmentDPV.m4
@@ -0,0 +1,82 @@
+.PS
+# Sevensegment.m4
+# https://tex.stackexchange.com/questions/644009/seven-segments-anchors-how-to-use-them
+gen_init
+divert(-1)
+ `sevensegment(keys)
+ Seven-segment display in a [] block. keys:
+ hght=expr; (default boxht)
+ wdth=expr; (default hght*3.3/5.85)
+ slant=fraction; top is skewed slant fraction of ht
+ segwid=expr; segment width
+ gap=expr; gap between segments
+ bevel=fraction; corner truncation
+ on=attributes; "on" segment attributes
+ off=attributes; "off" segment attributes
+ code=[0-8][.]; displayed number .=decimal point
+ or
+ code=Xddddddd[.] where each d=0 or 1 to define
+ Segment1 to Segment7 off or on
+ Segments are labeled Seg1 Seg2 ... Seg7
+ and the decimal point is Seg8'
+define(`sevensegment', # hght, wdth, slant, segwid, gap, bevel, on, off, code
+ `[ pushkeys_(`$1',`hght:boxht; wdth:m4`'hght*3.3/5.85; slant:0;
+ segwid:0.75/3.2*m4`'wdth; gap:0.12/3.2*m4`'wdth; bevel:0.4;
+ on:outlined "red" shaded "red":N; off:outlined "lightgray":N;
+ code:00000010:N;')
+ gapch = m4gap/2*sqrt(2)
+ ifinstr(m4code,.,`define(`m4tmp',substr(m4code,0,decr(len(m4code))))dnl
+ pushdef(`dodp',1)poppushdef(`m4code',m4tmp)')dnl
+ ifinstr(m4code,X,`pushdef(`opcode',substr(m4code,1))',
+ `foreach_(`m4cd',`pushdef(`Cd'decr(m4Lx),m4cd)',1111110,0110000,1101101,
+ 1111001,0110011,1011011,1011111,1110000,1111111,1111011)dnl
+ pushdef(`opcode',Cd`'m4code)')dnl
+ for_(1,7,1,`pushdef(`attrib'm4x,
+ ifelse(substr(opcode,decr(m4x),1),1,`m4on',`m4off'))')dnl
+ Seg1: m4segment(R,m4bevel,m4bevel,attrib1) \
+ with .S at m4slu(0,m4hght-m4segwid)
+ inner = distance(Seg1.SW,Seg1.SE) + gapch*2
+ Seg2: m4segment(D,0.5,m4bevel,attrib2) with .S at \
+ m4slu(m4wdth/2-m4segwid,m4hght-m4segwid-inner/2)
+ Seg3: m4segment(D,m4bevel,0.5,attrib3) with .S at \
+ m4slu(m4wdth/2-m4segwid,m4segwid+inner/2)
+ Seg4: m4segment(L,m4bevel,m4bevel,attrib4) with .S at m4slu(0,m4segwid)
+ Seg5: m4segment(U,0.5,m4bevel,attrib5) with .S at \
+ m4slu(-m4wdth/2+m4segwid,m4segwid+inner/2)
+ Seg6: m4segment(U,m4bevel,0.5,attrib6) with .S at \
+ m4slu(-m4wdth/2+m4segwid,m4hght-m4segwid-inner/2)
+ Seg7: m4segment(R,0.5,0.5,attrib7) with .c at m4slu(0,m4hght/2)
+ ifelse(dodp,1,`Seg8: circle diam m4segwid m4on \
+ at m4slu(Seg3.e.x+m4segwid/2+m4gap,Seg4.s.y+m4segwid/2)') popdef(`dodp')
+ popdef(`m4hght',`m4wdth',`m4slant',`m4segwid',`m4gap',`m4bevel',
+ `m4on',`m4off',`m4code',`opcode')dnl
+ for_(1,7,1,`popdef(`attrib'm4x)') for_(0,9,1,`popdef(`Cd'm4x)')dnl
+ ]')
+define(`m4segment',`[ setdir_(`$1')
+ m4seven_pos(SE,E,NE,,`$2'); m4seven_pos(SW,W,NW,-,`$3')
+ resetdir_
+ S: 1/2 between SW and SE
+ Line: line from m4slu(S.x,S.y) to m4slu(SE.x,SE.y) then to m4slu(E.x,E.y) \
+ then to m4slu(NE.x,NE.y) then to m4slu(NW.x,NW.y) then to m4slu(W.x,W.y) \
+ then to m4slu(SW.x,SW.y) then to m4slu(S.x,S.y) `$4' ] ')
+define(`m4seven_pos',
+ `AA: (`$4'(m4wdth/2-m4segwid-gapch),0); `$1': rot_(AA.x,AA.y,rp_ang)
+ BA: AA + (`$4'1,1)*m4segwid*(1-`$5'); `$2': rot_(BA.x,BA.y,rp_ang)
+ CA: BA - (`$4'1,-1)*m4segwid*`$5'; `$3': rot_(CA.x,CA.y,rp_ang) ')
+define(`m4slu',`(`$1'+(`$2')*m4slant,`$2')')
+
+divert(0)dnl
+
+
+[
+ S: sevensegment(code=4.;hght=1)
+ { for_(1,8,1,`"m4x" at S.Seg`'m4x') }
+ move right 0.25
+ P: sevensegment(code=X1100011;off=invis;hght=1)
+ ]
+[
+ for_(0,9,1,`sevensegment(code=m4x`'ifelse(m4x,1,.);slant=1/4;off=invis)
+ move movewid/4')
+ ] with .nw at last [].sw+(0,-boxht/3)
+
+.PE
diff --git a/graphics/circuit_macros/examples/dpv/SourcesDPV.m4 b/graphics/circuit_macros/examples/dpv/SourcesDPV.m4
index ac6769e6ef..94326ce8d6 100644
--- a/graphics/circuit_macros/examples/dpv/SourcesDPV.m4
+++ b/graphics/circuit_macros/examples/dpv/SourcesDPV.m4
@@ -8,51 +8,57 @@ define(`NL',`; move down $1; right_')
{
{source ; move ; "`source'" ljust} NL
{source(,I) ; move ; "`source(,I)'" ljust} NL
- {source(,i) ; move ; "`source(,i)'" ljust} NL
- {source(,ti) ; move ; "`source(,ti)'" ljust} NL
- {source(,i) ; move ; "`source(,ii)'" ljust} NL
+ {C:source(,i) ; move ; "`source(,i)'" ljust} NL
+ {D:source(,ti) ; move ; "`source(,ti)'" ljust} NL
+ {source(,ii) ; move ; "`source(,ii)'" ljust} NL
{source(,V) ; move ; "`source(,V)'" ljust} NL
{source(,v) ; move ; "`source(,v)'" ljust} NL
{source(,tv) ; move ; "`source(,tv)'" ljust} NL
+ {source(,SC) ; move ; "`source(,SC)'" ljust} NL
{source(,AC); move ; "`source(,AC)'" ljust} NL
{source(,X) ; move ; "`source(,X)'" ljust} NL
- {source(,F) ; move ; "`source(,F)'" ljust} NL
{source(,G) ; move ; "`source(,G)'" ljust} NL
- {source(,Q) ; move ; "`source(,Q)'" ljust}
+ {source(,Q) ; move ; "`source(,Q)'" ljust} NL #(0.3)
+ {source(,F) ; move ; "`source(,F)'" ljust} NL
+ {geiger(,,,,fill_(0.9)); move;
+ "`geiger(,,,,'" ljust "`fill_(0.9))'" ljust} NL
}
move right_ 2.0
+
{
-# {source(,,0.4) ; move ; "`source(,,0.4)'" ljust} NL(0.35)
{source(,,0.4,,shaded "yellow") ; move ;
- "`source(,,0.4,," ljust "shaded \"yellow\")'" ljust} NL(0.35)
-# {source(,P) ; move ; "`source(,P)'" ljust} NL
- {source(,P,,,fill_(0.9)) ; move ;
- "`source(,P,,," ljust "fill_(0.9))'" ljust} NL
+ "`source(,,0.4,,'" ljust "`shaded \"yellow\")'" ljust} NL(0.35)
+ {source(,P) ; move ; "`source(,P)'" ljust} NL
{source(,U) ; move ; "`source(,U)'" ljust} NL
{source(,H) ; move ; "`source(,H)'" ljust} NL
{source(,R) ; move ; "`source(,R)'" ljust} NL
{source(,S) ; move ; "`source(,S)'" ljust} NL
+ {source(,SCr) ; move ; "`source(,SCr)'" ljust} NL
{source(,T) ; move ; "`source(,T)'" ljust} NL
{source(,L) ; move ; "`source(,L)'" ljust} NL
- {source(,B) ; move ; "`source(,B)'" ljust} NL
+ {source(,B) ; move ; "`source(,B)'" ljust} NL(moveht*0.8)
{nullator ; move ; "`nullator'" ljust} NL(moveht*0.8)
{norator ; move ; "`norator'" ljust} NL(moveht*0.9)
{ttmotor(,G) ; move ; "`ttmotor(,G)'" ljust} NL(moveht*1.1)
- {proximity ; move ; "`proximity" ljust "= consource(,P)'" ljust}
+ {battery ; move ; "`battery'" ljust} NL(0.3)
+ {battery(,3,R) ; move ; "`battery(,3,R)'" ljust}
+
}
move right_ 2.0
{source(,N) ; move ; "`source(,N)'" ljust} NL
- {source(,"svg_micro(A)"); move; "`source(,\"svg_micro(A)\")'" \
- wid 1.7 at Here ljust}NL(0.31)
- {consource ; move ; "`consource'" ljust } NL(0.32)
+ {source(,NA) ; move ; "`source(,NA)'" ljust} NL
+ {source(,NB) ; move ; "`source(,NB)'" ljust} NL
+ {source(,"mA");move; "`source(,\"mA\")'" ljust} NL(0.31)
+ {consource ; move ; "`consource'" ljust} NL(0.32)
{consource(,I) ; move ; "`consource(,I)'" ljust} NL(0.32)
{consource(,i) ; move ; "`consource(,i)'" ljust} NL(0.32)
{consource(,ti) ; move ; "`consource(,ti)'" ljust} NL(0.32)
+ {source(,SE) ; move ; "`source(,SE)'" ljust} NL
{consource(,V) ; move ; "`consource(,V)'" ljust} NL(0.32)
{consource(,v) ; move ; "`consource(,v)'" ljust} NL(0.3)
{consource(,tv) ; move ; "`consource(,tv)'" ljust} NL(0.3)
- {battery ; move ; "`battery'" ljust} NL(0.3)
- {battery(,3,R) ; move ; "`battery(,3,R)'" ljust} NL(0.35)
+ {proximity ; move ;
+ "`proximity'" ljust "` = consource(,P)'" wid 80bp__ ljust} NL(0.35)
command "</g>" # end font
.PE
diff --git a/graphics/circuit_macros/examples/dpv/Spec555DPV.m4 b/graphics/circuit_macros/examples/dpv/Spec555DPV.m4
new file mode 100644
index 0000000000..7a49b002b3
--- /dev/null
+++ b/graphics/circuit_macros/examples/dpv/Spec555DPV.m4
@@ -0,0 +1,57 @@
+.PS
+# Spec555.m4
+# https://tex.stackexchange.com/questions/64801/display-ics-with-circuitikz?rq=1
+log_init
+
+define(`spec555',`[ Chip: box wid 8*lg_pinsep ht 10*lg_pinsep fill_(0.9)
+ svg_font(sans-serif,8bp__)
+ P1: 3/4<Chip.sw,Chip.se>; {"1" below rjust at P1}; "GND" above at P1
+ P5: Chip.s; {"5" below rjust at P5}; "CTRL" above at P5
+ P2: 1/8<Chip.sw,Chip.nw>; {"2" above rjust at P2}; "TRG" ljust at P2
+ P6: 3/8<Chip.sw,Chip.nw>; {"6" above rjust at P6}; "THR" ljust at P6
+ P7: 7/8<Chip.sw,Chip.nw>; {"7" above rjust at P7}; "DIS" ljust at P7
+ P3: Chip.e; {"3" above ljust at P3}; "OUT" rjust at P3
+ P4: 3/4<Chip.nw,Chip.ne>; {"4" above rjust at P4}; "svg_emsp`'RESET" below \
+ at P4
+ P8: Chip.n; {"8" above rjust at P8}; "Vcc" below at P8
+ "NE-555" at Chip.c "TIMER"
+ command "</g>"
+ line left dimen_ from P7; X:dot
+ { R1:resistor(up_ P7.y-P6.y); rlabel(,68 k`'svg_ohm); dot }
+ R2:resistor(down_ P7.y-P6.y); llabel(,68 k`'svg_ohm); dot; {line to P6}
+ line to (Here,P2); SW: dot; {line to P2}
+ line from P8 to (P8,R1.end); dot ]')
+
+ svg_font(sans-serif,10bp__)
+ T1: spec555; "U1" at T1.Chip.nw above ljust
+ T2: spec555 with .Chip.w at T1.Chip.e+(2.5*dimen_,0)
+ "U2" at T2.Chip.nw above ljust
+ {line left_ dimen_/2 from (T1.X,T1.P7); diode(down_ T1.P7.y-T1.P6.y)
+ {"D1" wid 15bp__ rjust at last [].w "1N4148" rjust wid 36bp__}
+ line to (T1.X,Here); dot}
+ capacitor(down_ elen_*1.2 from T1.SW,E+); llabel(,10 uF); dot
+ dot(at Here-(dimen_/2,0),,1); G: dot(,,1); "GND" rjust at G.w
+ capacitor(from T1.P5 to (T1.P5,G),E+); rlabel(,0.01 nF); dot
+ line from T1.P1 to (T1.P1,G); dot
+ Vcc: dot(at (G,T1.R1.end),,1); "Vcc" wid 0.3 rjust at Vcc.w
+ dot(at (T1.P4,Vcc)); line to T1.P4
+ line right_ dimen_/2 from T1.P3;
+ R3: resistor(down_ to (Here,T2.s-(0,dimen_/4))); llabel(,10 k`'svg_ohm)
+ line to (T2.P5,Here) then to T2.P5
+ dot(at (T2.X,G)); ground
+ reversed(`capacitor',up_ to (Here,T2.P5),E+); rlabel(,100 nF)
+ line to (Here,T2.P2)
+ line from T2.P1 to (T2.P1,G); dot
+ line from T2.P4 to (T2.P4,Vcc) then to Vcc chop 0 chop dotrad_
+ dot(at (T2.X,T2.R1.end)+(0,dimen_/2),,1); {line to T2.R1.end chop dotrad_}
+ "+5 V to +15V" at last [].n above
+ capacitor(right_ dimen_ from T2.P3,C); llabel(," 100 uF")
+ Pot1: potentiometer(down_ (Here.y-G.y)/2) with .Start at Here
+ "Rx" wid 0.2 at Pot1.T1 ljust
+ Sp: speaker(R,,,fill_(0.9)) with .In5 at Pot1.End
+ "1" above rjust at Sp.In5; "2" below rjust at Sp.In7
+ "E1" at Sp.In2 rjust "Speaker" rjust
+ line from Sp.In7 to (Sp.In7,G) then to G chop 0 chop dotrad_
+ command "</g>"
+
+.PE
diff --git a/graphics/circuit_macros/examples/dpv/cbresistorDPV.m4 b/graphics/circuit_macros/examples/dpv/cbresistorDPV.m4
new file mode 100644
index 0000000000..c03122377c
--- /dev/null
+++ b/graphics/circuit_macros/examples/dpv/cbresistorDPV.m4
@@ -0,0 +1,82 @@
+.PS
+# cbresistor.m4
+# https://tex.stackexchange.com/questions/709339/create-command-with-decoration-in-tikz
+# https://www.google.com/search?client=firefox-b-d&q=resistor+color+code
+cct_init
+divert(-1)
+
+ `cbresistor(linespec, keys)
+ keys:
+ lgth=expr; wdth=expr;
+ body=body attributes, e.g. shaded "green"
+ type=A|B; pinched body shape
+ colors=color:color:...;
+ Up to 6 colors, a color may be nul '
+define(`cbresistor',`eleminit_(`$1')
+ pushkeys_(`$2',`lgth:dimen_/2; wdth:dimen_/5; body::N; colors::N; type::N')dnl
+{line to rvec_(max(0,rp_len/2-m4lgth/2),0) thick linethick*3/2; M4cbW: Here
+ ifelse(m4type,B,
+ `[L:rotbox(m4lgth*3/23, m4wdth, shaded "darkgray" m4body,r=m4wdth/20)
+ C:rotbox(m4lgth*17/23, m4wdth*9/10, shaded "darkgray" m4body) \
+ with .W at L.E
+ R:rotbox(m4lgth*3/23, m4wdth, shaded "darkgray" m4body,r=m4wdth/20) \
+ with .W at C.E] with .L.W at Here; move to last [].R.E',
+ `rotbox(m4lgth, m4wdth, shaded "darkgray" m4body) with .W at Here')
+ ifelse(m4colors,,,`define(`m4bw',(m4lgth/23))dnl
+ definergbcolor(silver,0.75,0.75,0.75)
+ definergbcolor(gold,1,215/255,0)
+ stacksplit_(`cbrstack',m4colors,:)stackreverse_(`cbrstack')dnl
+ stackargs_(`m4pos',22,17,12,7,5,2)dnl
+ stackdo_(`cbrstack',`ifelse(cbrstack,nul,,
+ `{ move to M4cbW+vec_(m4pos*m4bw-m4bw/2,0)
+ define(`m4ctr',ifelse(m4type,B,eval((m4pos>3)*(m4pos<20)),0))dnl
+ line m4colorfix(outlined,cbrstack) thick m4bw*1.8/(1bp__) \
+ from rvec_(0,-ifelse(m4ctr,1,0.9*)m4wdth/2) \
+ to rvec_(0, ifelse(m4ctr,1,0.9*)m4wdth/2)
+ ifelse(ifelse(cbrstack,silver,1,cbrstack,gold,1),1,
+ `line outlined rgbstring(0.8,0.8,0.8) thick last line.thick \
+ from 0.2 along_(last line) to 0.4 along_(last line)
+ line outlined "white" thick last line.thick \
+ from 0.25 along_(2nd last line) to 0.3 along_(2nd last line)')
+ }')
+ popdef(`m4pos')') stackdo_(`m4pos')')
+ line to rvec_(max(0,rp_len/2-m4lgth/2),0) thick linethick*3/2}
+ popdef(`m4lgth',`m4wdth',`m4body',`m4colors',`m4type')dnl
+ line to rvec_(rp_len,0) invis ')
+
+divert(0)dnl
+
+linewid = 3/2*linewid
+ifsvg(definergbcolor(Dandelion,0.95,0.65,0.2))
+ifsvg(definergbcolor(Peach,0.76,0.5,0.1))
+
+define(`dpr',
+ `{ cbresistor(,type=B;
+ body=m4colorfix(shaded,Dandelion) m4colorfix(outlined,Peach);
+ colors=`$2') }
+ {iflatex(`sprintf("\SI{%g}{\ohm}",`$1')')ifsvg("``$1'svg_Omega'") \
+ at last line.end+(10bp__,-5bp__) rjust}
+ move right_ moveht*5/6; down_ ')
+
+ define(`elen_',(3/2*linewid))
+ define(`dimen_',(5/4*linewid))
+[]
+[ down_
+ foreach_(`pair',`dpr(patsubst(pair,-,`,'):nul:black:silver)',
+ 10-brown:black,
+ 12-brown:red,
+ 15-brown:green,
+ 18-brown:gray,
+ 22-red:red,
+ 27-red:Violet,
+ 33-orange:orange,
+ 39-orange:white,
+ 47-yellow:Violet,
+ 56-green:blue,
+ 68-blue:gray,
+ 82-gray:red)
+ dpr(100,brown:black:nul:brown:gold)
+ {"iflatex(\SI{5}{\percent},5 %)" at last line.end+(10bp__,-15bp__) rjust}
+ ] with .nw at last [].ne+(30bp__,0)
+
+.PE
diff --git a/graphics/circuit_macros/examples/dpv/ex00DPV.m4 b/graphics/circuit_macros/examples/dpv/ex00DPV.m4
deleted file mode 100644
index 97c5268725..0000000000
--- a/graphics/circuit_macros/examples/dpv/ex00DPV.m4
+++ /dev/null
@@ -1,94 +0,0 @@
-.PS
-# ex00.m4
-gen_init(svg_font(sans-serif,11bp__))
-
-[
-thicklines_
-ewid = 2
-eht = 0.5
-E: ellipse wid ewid ht eht
-
- [ narrows = 5
- de = ewid/narrows
- for i=0 to narrows do {
- arrow down from i*de,0 }
- ] with .s at E.n+(0,0.25)
-
- "svg_bf(B)svg_it((t))" at last [].c
-
-thinlines_
- arrow from E.c to E.ne
- box invis fill_(1) ht 0.12 wid 0.12 with .c at last arrow.c "svg_it(r)"
-
- command "</g>" # end font
-]
-[
-# ex07.m4
-#gen_init
-
-Barrel: box invis ht 0.4 wid 1.5
- up
-Face: arc rad 2.6 from Barrel.e+(2.4,-1.7/2) to Barrel.e+(2.4,1.7/2)
-
- eps = 0.03
- arc ccw rad 2.6 from Face.start-(eps,0) to Face.end-(eps,0) \
- with .c at Face.c-(eps,0)
- line from Barrel.nw to Barrel.ne then to Face.end
- line from Barrel.sw to Barrel.se then to Face.start
- arc cw from Barrel.sw to Barrel.nw rad Barrel.ht*1.2
-
-Cathode: Barrel.w+(0.3,0)
-Term: Barrel.w+(-0.25,0)
- dcath = 0.13
- dan = 0.12
-
- line from Cathode up dcath/2 left dcath/2 then to Term.x,Cathode.y+dcath/2
- dot
- line from Cathode down dcath/2 left dcath/2 then to Term.x,Cathode.y-dcath/2
- dot
-
- hole = 0.06
-Hole: line invis up hole from Cathode+(0.5,-hole/2)
- line from Hole.end up dan-hole/2 then to Term.x,Cathode.y+dan; dot
- line from Hole.start down dan-hole/2 then to Term.x,Cathode.y-dan; dot
-
- platewid = 0.25
- platesep = 0.15
-Plates: box invis wid platewid ht platesep at Barrel.e+(-platewid/2,0)
- line right platewid from Plates.nw
- line right platewid from Plates.sw
- line up 0.3 from Plates.n
- line down 0.3 from Plates.s
-
-linethick_(1.4)
-
- move to Cathode+(0.03,0)
-Spot: 0.9<Face.start,Face.end>
- arcto(Plates.c,Spot,(Plates.c.x-Cathode.x)*0.90,outlined "lightgrey" thick 2)
- line to Spot chop 0 chop -0.02 outlined "lightgrey" thick 2
-
-thinlines_
-
- arrow <- from Cathode+(0.2,0.06) up 0.5 left 0.3
- "electron" above "gun" above
-
- arrow <- from Plates.nw+(0,0.06) up 0.5 left 0.3
- "deflection" above "plates" above
-
- arrow <- from 0.5<Plates.e,Spot>+(0,0.06) up 0.5 left 0.3
- "electron beam" at Here+(-0.3,0) above
-
- spline <- from 1.015<Plates.e,Spot> right 0.1 up 0.1 then up 0.1 \
- then up 0.1 left 0.1
- "spot of light" rjust
-
- "vacuum" at 0.5<Face.start,Face.end>+(-0.4,0) rjust
-
- arrow <- from Face.start+(0.1,0.5) left 0.6*1.4 down 0.3*1.4
- "phosphor coating" rjust
-
- arrow <- from 0.2<Barrel.se,Face.start> left 0.6 down 0.3
- "glass enclosure (tube)" rjust
-
-] with .sw at last [].se+(0.5,0)
-.PE
diff --git a/graphics/circuit_macros/examples/dpv/examplesDPV.htmx b/graphics/circuit_macros/examples/dpv/examplesDPV.htmx
index 52f7b939b8..3406d8ec8a 100644
--- a/graphics/circuit_macros/examples/dpv/examplesDPV.htmx
+++ b/graphics/circuit_macros/examples/dpv/examplesDPV.htmx
@@ -71,18 +71,13 @@ ifinstr(`$3',y,,`<hr>')')
<hr>
<p>
- This file shows diagrams in .svg format produced without the use of
- LaTeX or equivalent.
-<!--
- <A HREF="examples.html">png</A>
- versions are also available.
- The PDF equivalent can be found in examples.pdf of the distribution.
+ This file shows diagrams in .svg format produced
+ without the use of LaTeX or equivalent.
+ The diagrams have been selected and adapted from the Circuit_macros
+ examples in order to test the svg output of dpic.
</p>
-
<p>
--->
-The diagrams have been adapted from the Circuit_macros
-examples in order to test the svg output of dpic. Generating svg line
+Generating svg line
art is straightforward but formatting text is not because TeX, LaTeX,
and related word processors do not produce svg directly. Either
less-sophisticated text formatting must be employed for svg or an
@@ -136,7 +131,8 @@ There are other issues:
Change font face and dpic m4tt`'textht</g>, m4tt`'dptextratio</g>,
and m4tt`'textoffset</g> parameters.
If arg4 is blank, the font is changed and
- requires m4tt`'command "&lt;/g&gt;"</g> to cancel the font change.
+ requires m4tt`'command "&lt;/g&gt;"</g> at the end
+ to cancel the font change.
<br>
Note:
Nominal height = text height in drawing units; actual height =
@@ -305,7 +301,8 @@ SVG produced by dpic changecom(,)&`#'8194;changecom(`#')
<br><br>
(<a href="quick.txt" TYPE="text/plain" TARGET="_blank"
alt="quick">quick.m4</a>):
-SVG produced from quick.pdf by dvisvgm changecom(,)&`#'8194;changecom(`#')
+SVG produced from quick.pdf by dvisvgm or pdf2svg
+ changecom(,)&`#'8194;changecom(`#')
</p>
</td>
</table>
@@ -390,6 +387,9 @@ cfig(ConnDPV,
cfig(PconnDPV,
The m4tt`'pconnex</g> macro)
+cfig(cbresistorDPV,
+ Color-coded through-hole resistors)
+
cfig(EVplugsDPV,
Electric vehicle charging plug patterns make extensive
use of key=value pairs to set options)
@@ -430,6 +430,9 @@ cfig(WindingsDPV,
The macro
m4tt`'winding(L|R`,'diam`,'pitch`,'turns`,'core wid`,'core color)</g>)
+cfig(Spec555DPV,
+ A 555 timer example)
+
cfig(ex01DPV,
Two simple labeled circuits)
@@ -448,9 +451,6 @@ cfig(PushPullDPV,
cfig(QuantumDPV,
A quantum circuit)
-cfig(SQUIDDPV,
- Superconducting quantum interface device (drawing direction down))
-
cfig(SixpoleDPV,
A six-pole filter)
@@ -469,10 +469,6 @@ cfig(ThreeDPV,
cfig(MCDPV,
A three-phase switched AC-AC converter and a DC-DC converter)
-cfig(ex17DPV,
- A repetitive network created by Pic looping and
- a skewed circuit used to test the macro m4tt`'parallel_</g>)
-
cfig(ex12DPV,
A CMOS NAND gate`,' a test circuit`,' and an XMOSFET example)
@@ -586,9 +582,6 @@ cfig(ABlogixDPV,
cfig(XORDPV,
Realizations of the XOR function using m4tt`'Autologix</g>)
-cfig(ex00DPV,
- Line diagrams)
-
cfig(EEPDPV,
Part of a single-line diagram of a power distribution system
using draft elements)
@@ -603,6 +596,10 @@ cfig(GrayCodeDPV,
cfig(controlDPV,
Control-system block diagrams)
+cfig(SevensegmentDPV,
+ A customizable seven-segment display showing the numbered segments with
+ a custom shape and the numerals from 0 to 9)
+
cfig(ByteDPV,
Elementary splines)
@@ -690,7 +687,7 @@ cfig(keyboardDPV,
More objects drawn in relief)
cfig(DiniDPV,
- Dini surface and an icosahedron)
+ Dini surface`,' an icosahedron`,' and a sphere with inscribed cylinder)
cfig(SierpinskiDPV,
The Sierpinski triangle and a Cayley graph:
diff --git a/graphics/circuit_macros/examples/dpv/examplesDPVs.htmx b/graphics/circuit_macros/examples/dpv/examplesDPVs.htmx
index a52445d744..96a572b462 100644
--- a/graphics/circuit_macros/examples/dpv/examplesDPVs.htmx
+++ b/graphics/circuit_macros/examples/dpv/examplesDPVs.htmx
@@ -1,14 +1,3 @@
-<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
-<HTML>
-<HEAD>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<meta http-equiv="Content-Style-Type" content="text/css">
-<!--meta http-equiv="Content-Script-Type" content="text/javascript"-->
-<TITLE>SVG Examples: Circuit_macros Version XXX</TITLE>
-<meta name="keywords" content="HTML"
-content='Circuit elements, basic circuits, logic circuits and other diagrams,
-electric circuits, resistor, capacitor, inductor, diode, sources, amplifier,
-integrator, fuse, switch, antenna, opamp, transformer, relay, contact, jack,
plug, FET, UJT, thyristor, bipolar transistor, nport, windings, timer,
optical isolator, rectifier, bistable, oscillator, CMOS, MOSFET, power supply,
NAND gate, controlled source, synchronous machine, digital circuit, signal-flow
@@ -132,7 +121,8 @@ There are other issues:
Change font face and dpic m4tt`'textht</g>, m4tt`'dptextratio</g>,
and m4tt`'textoffset</g> parameters.
If arg4 is blank, the font is changed and
- requires m4tt`'command "&lt;/g&gt;"</g> to cancel the font change.
+ requires m4tt`'command "&lt;/g&gt;"</g> at the end
+ to cancel the font change.
<br>
Note:
Nominal height = text height in drawing units; actual height =
@@ -384,6 +374,9 @@ cfig(ConnDPV,
cfig(PconnDPV,
The m4tt`'pconnex</g> macro)
+cfig(cbresistorDPV,
+ Color-coded through-hole resistors)
+
cfig(EVplugsDPV,
Electric vehicle charging plug patterns make extensive
use of key=value pairs to set options)
@@ -448,9 +441,6 @@ cfig(PushPullDPV,
cfig(QuantumDPV,
A quantum circuit)
-cfig(SQUIDDPV,
- Superconducting quantum interface device (drawing direction down))
-
cfig(SixpoleDPV,
A six-pole filter)
@@ -469,10 +459,6 @@ cfig(ThreeDPV,
cfig(MCDPV,
A three-phase switched AC-AC converter and a DC-DC converter)
-cfig(ex17DPV,
- A repetitive network created by Pic looping and
- a skewed circuit used to test the macro m4tt`'parallel_</g>)
-
cfig(ex12DPV,
A CMOS NAND gate`,' a test circuit`,' and an XMOSFET example)
@@ -590,9 +576,6 @@ cfig(ABlogixDPV,
cfig(XORDPV,
Realizations of the XOR function using m4tt`'Autologix</g>)
-cfig(ex00DPV,
- Line diagrams)
-
')
cfig(EEPDPV,
Part of a single-line diagram of a power distribution system
@@ -613,6 +596,10 @@ cfig(controlDPV,
cfig(ByteDPV,
Elementary splines)
+cfig(SevensegmentDPV,
+ A customizable seven-segment display showing the numbered segments with
+ a custom shape and the numerals from 0 to 9)
+
ifelse(0,1,`
cfig(RotboxDPV,
The macro
@@ -698,7 +685,7 @@ cfig(keyboardDPV,
More objects drawn in relief)
cfig(DiniDPV,
- Dini surface and an icosahedron)
+ Dini surface`,' an icosahedron`,' and a sphere with inscribed cylinder)
cfig(SierpinskiDPV,
The Sierpinski triangle and a Cayley graph:
diff --git a/graphics/circuit_macros/examples/dpv/quickDPV.m4 b/graphics/circuit_macros/examples/dpv/quickDPV.m4
index 65a181f214..db9c15ce9d 100644
--- a/graphics/circuit_macros/examples/dpv/quickDPV.m4
+++ b/graphics/circuit_macros/examples/dpv/quickDPV.m4
@@ -4,18 +4,16 @@ cct_init # Set defaults
elen = 0.75 # Variables are allowed; default units are inches
move right 0.4
-Origin: Here # Position names are capitalized
- svgLink(SourcesDPV.svg,source(up_ elen))
+ svgLink(SourcesDPV.svg,Vs: source(up_ elen))
llabel(-,svg_it(v`'svg_sub(s)),+)
svgLink(ResistorsDPV.svg,resistor(right_ elen)); rlabel(,svg_it(R),)
dot
{ # Save current position and direction
- capacitor(down_ to (Here,Origin)) #(Here,Origin) = (Here.x,Origin.y)
- rlabel(+,svg_it(v),-); llabel(,svg_it(C))
+ capacitor(down_ Vs.len); rlabel(+,svg_it(v),-); llabel(,svg_it(C))
dot
} # Restore position and direction
line right_ elen*2/3
{move right 0.2}
- inductor(down_ Here.y-Origin.y); rlabel(,svg_it(L),); b_current("svg_it(i)")
- line to Origin
+ inductor(down_ Vs.len); rlabel(,svg_it(L),); b_current("svg_it(i)")
+ line to (Vs,Here) # (Vs,Here) = (Vs.x,Here.y)
.PE # Pic input ends
diff --git a/graphics/circuit_macros/examples/dpv/relaycoilDPV.m4 b/graphics/circuit_macros/examples/dpv/relaycoilDPV.m4
index fc2bc2738f..5ecd5aeec4 100644
--- a/graphics/circuit_macros/examples/dpv/relaycoilDPV.m4
+++ b/graphics/circuit_macros/examples/dpv/relaycoilDPV.m4
@@ -1,12 +1,13 @@
.PS
-# relaycoil.m4
+# relaycoilDPV.m4
cct_init
spc = dimen_/3
{ relaycoil; S: "svg_tt(`relaycoil')" at last [].s+(0,-20bp__)
{ "svg_it(V1)" wid 15bp__ at last [].V1 rjust
"svg_it(V2)" at last [].V2 ljust }
- K: relaycoil(NX) with .nw at last [].ne+(spc*4,0); "svg_tt((NX))" \
+ relaycoil(S) with .nw at last [].ne+(spc*2,0); "svg_tt((S))" at (last [],S)
+ K: relaycoil(NX) with .nw at last [].ne+(spc*3,0); "svg_tt((NX))" \
at (last [],S)
{ thinlines_
spline <- from K.A1 left 7bp__ then up 4bp__ left 4bp__
@@ -21,27 +22,30 @@ cct_init
"svg_it(B3)" ljust
thicklines_
}
- relaycoil(AXSR) with .nw at last [].ne+(spc*5,0); "svg_tt((AXSR))" \
+ relaycoil(AXSR) with .nw at last [].ne+(spc*4,0); "svg_tt((AXSR))" \
at (last [],S)
{ "svg_it(V1)" at last [].V1 rjust; "svg_it(V2)" at last [].V2 rjust }
relaycoil(BXSR) with .nw at last [].ne+(spc*2,0); "svg_tt((BXSR))" \
at (last [],S)
{ "svg_it(V1)" at last [].V1 ljust; "svg_it(V2)" at last [].V2 ljust }
- relaycoil(SR) with .nw at last [].ne+(spc*4,0); "svg_tt((SR))" at (last [],S)
- relaycoil(SO) with .nw at last [].ne+(spc,0); "svg_tt((SO))" at (last [],S)
- relaycoil(SOR) with .nw at last [].ne+(spc,0); "svg_tt((SOR))" at (last [],S)
+ relaycoil(SR) with .nw at last [].ne+(spc*2,0); "svg_tt((SR))" at (last [],S)
+ spx = spc*3/4
+ relaycoil(SO) with .nw at last [].ne+(spx,0); "svg_tt((SO))" at (last [],S)
+ relaycoil(SOR) with .nw at last [].ne+(spx,0); "svg_tt((SOR))" at (last [],S)
+ relaycoil(PC) with .nw at last [].ne+(spx,0); "svg_tt((PC))" at (last [],S)
}
{
move down_ 3/4; right_
relaycoil(HS); S: "svg_tt((HS))" at last [].s+(0,-12bp__)
- relaycoil(NAC) with .nw at last [].ne+(spc,0); "svg_tt((NAC))" at (last [],S)
- relaycoil(AC) with .nw at last [].ne+(spc,0); "svg_tt((AC))" at (last [],S)
- relaycoil(ML) with .nw at last [].ne+(spc,0); "svg_tt((ML))" at (last [],S)
- relaycoil(PO) with .nw at last [].ne+(spc,0); "svg_tt((PO))" at (last [],S)
- relaycoil(RM) with .nw at last [].ne+(spc,0); "svg_tt((RM))" at (last [],S)
- relaycoil(RH) with .nw at last [].ne+(spc,0); "svg_tt((RH))" at (last [],S)
- relaycoil(TH) with .nw at last [].ne+(spc,0); "svg_tt((TH))" at (last [],S)
- relaycoil(EL) with .nw at last [].ne+(spc,0); "svg_tt((EL))" at (last [],S)
+ relaycoil(NAC) with .nw at last [].ne+(spx,0); "svg_tt((NAC))" at (last [],S)
+ relaycoil(AC) with .nw at last [].ne+(spx,0); "svg_tt((AC))" at (last [],S)
+ relaycoil(ML) with .nw at last [].ne+(spx,0); "svg_tt((ML))" at (last [],S)
+ relaycoil(PO) with .nw at last [].ne+(spx,0); "svg_tt((PO))" at (last [],S)
+ relaycoil(RM) with .nw at last [].ne+(spx,0); "svg_tt((RM))" at (last [],S)
+ relaycoil(RH) with .nw at last [].ne+(spx,0); "svg_tt((RH))" at (last [],S)
+ relaycoil(TH) with .nw at last [].ne+(spx,0); "svg_tt((TH))" at (last [],S)
+ relaycoil(EL) with .nw at last [].ne+(spx,0); "svg_tt((EL))" at (last [],S)
+ relaycoil(MR) with .sw at last [].se+(spx,0); "svg_tt((MR))" at (last [],S)
}
.PE
diff --git a/graphics/circuit_macros/examples/ex00.m4 b/graphics/circuit_macros/examples/ex00.m4
deleted file mode 100644
index 21131aa8a1..0000000000
--- a/graphics/circuit_macros/examples/ex00.m4
+++ /dev/null
@@ -1,91 +0,0 @@
-.PS
-# ex00.m4
-gen_init
-
-[
-thicklines_
-ewid = 2
-eht = 0.5
-E: ellipse wid ewid ht eht
-
- [ narrows = 5
- de = ewid/narrows
- for i=0 to narrows do {
- arrow down from i*de,0 }
- ] with .s at E.n+(0,0.25)
-
- "{\bf B$(t)$}" at last [].c
-
-thinlines_
- arrow from E.c to E.ne
- box invis fill_(1) ht 0.12 wid 0.12 with .c at last arrow.c "$r$"
-]
-[
-# ex07.m4
-# gen_init
-
-Barrel: box invis ht 0.4 wid 1.5
- up
-Face: arc rad 2.6 from Barrel.e+(2.4,-1.7/2) to Barrel.e+(2.4,1.7/2)
-
- eps = 0.03
- arc ccw rad 2.6 from Face.start-(eps,0) to Face.end-(eps,0) \
- with .c at Face.c-(eps,0)
- line from Barrel.nw to Barrel.ne then to Face.end
- line from Barrel.sw to Barrel.se then to Face.start
- arc cw from Barrel.sw to Barrel.nw rad Barrel.ht*1.2
-
-Cathode: Barrel.w+(0.3,0)
-Term: Barrel.w+(-0.25,0)
- dcath = 0.13
- dan = 0.12
-
- line from Cathode up dcath/2 left dcath/2 then to Term.x,Cathode.y+dcath/2
- dot
- line from Cathode down dcath/2 left dcath/2 then to Term.x,Cathode.y-dcath/2
- dot
-
- hole = 0.06
-Hole: line invis up hole from Cathode+(0.5,-hole/2)
- line from Hole.end up dan-hole/2 then to Term.x,Cathode.y+dan; dot
- line from Hole.start down dan-hole/2 then to Term.x,Cathode.y-dan; dot
-
- platewid = 0.25
- platesep = 0.15
-Plates: box invis wid platewid ht platesep at Barrel.e+(-platewid/2,0)
- line right platewid from Plates.nw
- line right platewid from Plates.sw
- line up 0.3 from Plates.n
- line down 0.3 from Plates.s
-
-linethick_(1.4)
- move to Cathode+(0.03,0)
-Spot: 0.9<Face.start,Face.end>
- arcto(Plates.c,Spot,(Plates.c.x-Cathode.x)*0.90,outlined "gray")
- line to Spot chop 0 chop -0.02 outlined "gray"
-
-thinlines_
-
- arrow <- from Cathode+(0.2,0.06) up 0.5 left 0.3
- "{\sl electron}" above "{\sl gun}" above
-
- arrow <- from Plates.nw+(0,0.06) up 0.5 left 0.3
- "{\sl deflection}" above "{\sl plates}" above
-
- arrow <- from 0.5<Plates.e,Spot>+(0,0.06) up 0.5 left 0.3
- "{\sl electron beam}" at Here+(-0.3,0) above
-
- spline <- from 1.015<Plates.e,Spot> right 0.1 up 0.1 then up 0.1 \
- then up 0.1 left 0.1
- "{\sl spot of light}sp_" rjust
-
- "{\sl vacuum}sp_" at 0.5<Face.start,Face.end>+(-0.4,0) rjust
-
- arrow <- from Face.start+(0.1,0.5) left 0.6*1.4 down 0.3*1.4
- "{\sl phosphor coating}sp_" rjust
-
- arrow <- from 0.2<Barrel.se,Face.start> left 0.6 down 0.3
- "{\sl glass enclosure (tube)}sp_" rjust
-
-] with .sw at last [].se+(0.5,0)
-.PE
diff --git a/graphics/circuit_macros/examples/examples.pdf b/graphics/circuit_macros/examples/examples.pdf
index c89e3360f3..dd6c413740 100644
--- a/graphics/circuit_macros/examples/examples.pdf
+++ b/graphics/circuit_macros/examples/examples.pdf
Binary files differ
diff --git a/graphics/circuit_macros/examples/extras/Ant.m4 b/graphics/circuit_macros/examples/extras/Ant.m4
deleted file mode 100644
index f4a22226a2..0000000000
--- a/graphics/circuit_macros/examples/extras/Ant.m4
+++ /dev/null
@@ -1,30 +0,0 @@
-.PS
-# Ant.m4 (Langton's ant)
-# https://tex.stackexchange.com/questions/361838/how-to-create-a-langtons-ant-in-latex/361891
-# https://en.wikipedia.org/wiki/Langton%27s_ant
-gen_init
-NeedDpicTools
- picwid = 5
- D: (0,0); DD: (1,0); t[D] = 0
- minx = 0; miny = 0; maxx = 0; maxy = 0
- for i = 0 to 10500 do {
- if (t[D]%2) == 0 then { DD: (-DD.y,DD.x) } else { DD: (DD.y,-DD.x) }
- t[D] += 1
- D: D+DD
- if D.x > maxx then { maxx = D.x; for y = miny to maxy do { t[maxx,y] = 0 }} \
- else { if D.x < minx then {
- minx = D.x; for y = miny to maxy do { t[minx,y] = 0 }}}
- if D.y > maxy then { maxy = D.y; for x = minx to maxx do { t[x,maxy] = 0 }} \
- else { if D.y < miny then {
- miny = D.y; for x = minx to maxx do { t[x,miny] = 0 }}}
- }
- boxwid = picwid/(maxx-minx)
- boxht = picwid/(maxy-miny)
- if boxht > boxwid then { boxht = boxwid } else { boxwid = boxht }
- circlerad = boxht/2
- hue = 240; val = 1
- for i = minx to maxx do { for j = miny to maxy do {
- if t[i,j]!=0 then { sat = (t[i,j]%20)/20
- hsvtorgb(hue,sat,val,r,g,b)
- circle colored rgbstring(r,g,b) at (-i,j)*boxwid } }}
-.PE
diff --git a/graphics/circuit_macros/examples/extras/Asymptotes.m4 b/graphics/circuit_macros/examples/extras/Asymptotes.m4
new file mode 100644
index 0000000000..4afd0f5758
--- /dev/null
+++ b/graphics/circuit_macros/examples/extras/Asymptotes.m4
@@ -0,0 +1,93 @@
+.PS
+# Asymptotes.m4
+# https://tex.stackexchange.com/questions/706340/create-an-asymptotes-summary-diagram-for-a-function
+gen_init
+
+definergbcolor(armygreen,0.29,0.33,0.13)
+definergbcolor(vlightgray,0.95,0.95,0.95)
+boxrad = 7bp__
+
+define(`greenbox',`box wid 90bp__ \
+ outlined "armygreen!90" shaded "armygreen!90" \
+ "{\color{white} `$1'}" ')
+
+define(`graybox',`box thick 0.4 outlined "gray" shaded "vlightgray" \
+ `$1'')
+
+ changequote(,) command "\newcommand{\eace}{\'e}
+ \newcommand{\squote}{\char39}
+ \newcommand{\dequation}{d'\'equation}"
+ changequote(`,)
+
+foreach_(`txt',`L`'m4Lx: graybox(wid 72bp__ ht 130 bp__ \
+ "\parbox{72bp}{\begin{centering}
+ {\sf txt \\ \vfill\vbox{}}
+ \end{centering}}")
+ ifelse(m4Lx,6,,`move 10bp__')',
+
+ `$(C_f)$ admet\\ Une asymptote\\ horizontale\\ \dequation:\\
+ $y = a$\\ au voisinage\\ de $\infty$',
+
+ `$(C_f)$ admet\\ Une asymptote\\ oblique\\ \dequation:\\
+ $y = ax+b$\\ au voisinage\\ de $\infty$',
+
+ `\hbox{}\vspace*{0.5\baselineskip}
+ $(C_f)$ admet\\ Une branche\\ parabolique\\ de direction\\
+ la droite\\ \dequation:\\
+ $y = ax$\\ au voisinage\\ de $\infty$',
+
+ `$(C_f)$ admet\\ Une branche\\ parabolique\\ de direction\\
+ l\squote{}axe des\\ ordonn\eace{}s\\ au voisinage\\ de $\infty$',
+
+ `$(C_f)$ admet\\ Une branche\\ parabolique\\ de direction\\
+ l\squote{}axe des\\ abscisses\\ au voisinage\\ de $\infty$',
+
+ `\vspace*{1ex}$(C_f)$ admet\\ Une \\ asymptote\\ verticale\\
+ \dequation:\\[1ex]
+ $x = a$\\ \hbox{}\hfill\hbox{}')
+
+ M: [ M1: graybox(wid 105bp__ \
+ "$\lim\limits_{x\rightarrow\infty} [f(x)-ax] = b$")
+ move 3bp__
+ M2: graybox(wid 105bp__ \
+ "$\lim\limits_{x\rightarrow\infty} [f(x)-ax] = \infty$")
+ ] with .s at ((L2.x+L4.x)/2,L2.n.y+boxht)
+
+ U:[ foreach_(`txt',`U`'m4Lx:graybox(wid 100bp__ ifelse(m4Lx,1,`+20bp__') "txt")
+ ifelse(m4Lx,4,,`move 2bp__')',
+ `$\lim\limits_{x\rightarrow\infty} [f(x)-(ax{+}b)] = 0$',
+ `\(\lim\limits_{x\rightarrow\infty} \frac{f(x)}{x} =
+ \raisebox{-0.5ex}{$a \atop {(a \neq 0)}$}\)',
+ `\(\lim\limits_{x\rightarrow\infty} \frac{f(x)}{x} = \infty \)',
+ `\(\lim\limits_{x\rightarrow\infty} \frac{f(x)}{x} = 0 \)')
+ ] with .s at ((L1.x+L6.x)/2,M.n.y+boxht)
+
+ T1: greenbox($\lim\limits_{x\rightarrow\infty} f(x) = a$) \
+ with .s at (L1.x,U.n.y+boxht)
+ T2: greenbox($\lim\limits_{x\rightarrow\infty} f(x) = \infty$) \
+ with .s at ((L1.x+L6.x)/2,T1.s.y)
+ T3: greenbox($\lim\limits_{x\rightarrow a} f(x) = \infty$) \
+ with .e at (L6.e.x,T2.y)
+
+ linethick_(1)
+ arrow from (U.w.x-5bp__,T1.s.y) down T1.s.y-L1.n.y
+ A: (T2.w.x,T2.s.y+boxrad); B1: U.U1.n+(boxht,0)
+ move to A; arcto((B1,A),B1,boxrad*3/2); arrow to B1
+ A: (U.U3.w.x+boxrad,T2.s.y); arrow from A to (A,U.U3.n)
+ B2: (1/2 between M.M1.e and M.M2.w,U.U2.n)
+ line from A+(-5bp__,0) down_ 10bp__ then left 10bp__
+ arcto((B2,Here),B2,boxrad*3/2); arrow to B2
+ B3: (L5.e.x-2*boxrad,U.U4.n.y)
+ line from A+( 5bp__,0) down_ 10bp__ then right_ 10 bp__
+ arcto((B3,Here),B3,boxrad*3/2); arrow to B3
+ arrow from (B3,U.U4.s) to (B3,L5.n)
+ arrow from (U.U4.e.x+5bp__,T3.s.y) down T3.s.y-L6.n.y
+ line from U.U2.s+(-5bp__,0) down_ 10bp__ then left_ 10bp__
+ arcto((M.M1.n,Here),M.M1.n,boxrad*3/2); arrow to M.M1.n
+ arrow from (Here,M.M1.s) down M.M1.s.y-L2.n.y
+ line from U.U2.s+( 5bp__,0) down_ 10bp__ then right_ 10bp__
+ arcto((M.M2.n,Here),M.M2.n,boxrad*3/2); arrow to M.M2.n
+ arrow from (L3.e.x-boxrad*3/2,M.M2.s.y) down M.M2.s.y-L3.n.y
+ arrow from (M.M2.e.x+5bp__,U.U3.s.y) down U.U3.s.y-L4.n.y
+ arrow from (M.w.x-5bp__,U.U1.s.y) down U.U1.s.y-L2.n.y
+.PE
diff --git a/graphics/circuit_macros/examples/extras/birds.m4 b/graphics/circuit_macros/examples/extras/Birds.m4
index 4b42ea35af..4b42ea35af 100644
--- a/graphics/circuit_macros/examples/extras/birds.m4
+++ b/graphics/circuit_macros/examples/extras/Birds.m4
diff --git a/graphics/circuit_macros/examples/extras/bistable.m4 b/graphics/circuit_macros/examples/extras/Bistable.m4
index ac49023863..ac49023863 100644
--- a/graphics/circuit_macros/examples/extras/bistable.m4
+++ b/graphics/circuit_macros/examples/extras/Bistable.m4
diff --git a/graphics/circuit_macros/examples/extras/brace.m4 b/graphics/circuit_macros/examples/extras/Brace.m4
index b0089fe96d..b0089fe96d 100644
--- a/graphics/circuit_macros/examples/extras/brace.m4
+++ b/graphics/circuit_macros/examples/extras/Brace.m4
diff --git a/graphics/circuit_macros/examples/extras/Ccurve.m4 b/graphics/circuit_macros/examples/extras/Ccurve.m4
deleted file mode 100644
index 6f3b537aac..0000000000
--- a/graphics/circuit_macros/examples/extras/Ccurve.m4
+++ /dev/null
@@ -1,14 +0,0 @@
-.PS
-# Ccurve.m4
-gen_init
-scale = 1.5
-# Gosper C curve
-
-`define' c_curve {if $3==0 then { continue by ($1,$2) } else {
- c_curve( ($1-$2)/2, ($1+$2)/2, $3-1)
- c_curve( ($1+$2)/2, ($2-$1)/2, $3-1)}}
-
-line from 0,4 to 0,4
-c_curve(0,4,10)
-
-.PE
diff --git a/graphics/circuit_macros/examples/extras/chaos.m4 b/graphics/circuit_macros/examples/extras/Chaos.m4
index 17ae070e58..17ae070e58 100644
--- a/graphics/circuit_macros/examples/extras/chaos.m4
+++ b/graphics/circuit_macros/examples/extras/Chaos.m4
diff --git a/graphics/circuit_macros/examples/extras/Chuck.m4 b/graphics/circuit_macros/examples/extras/Chuck.m4
index df83a8ce0e..3d85390e80 100644
--- a/graphics/circuit_macros/examples/extras/Chuck.m4
+++ b/graphics/circuit_macros/examples/extras/Chuck.m4
@@ -216,11 +216,5 @@ dimension_thick
r_dimen(from D[3]+(0,-14) right 35,0,35)
r_dimen(from (0,D[3].y-14) right 35,0,35)
-# arrow <- down 30 left 30 from D[3] chop 16/2 chop 0 then left 5
-# "16 DRILL 23 CBORE" rjust "4 HOLES" rjust
-
-# arrow <- from (-305/2,30.6+10+2) up 5 left 5 then up 13
-# s_box(SEE (A)) with .sw at Here+(-5pt__,2pt__)
-
command "}%"
.PE
diff --git a/graphics/circuit_macros/examples/extras/ClassDAmp.m4 b/graphics/circuit_macros/examples/extras/ClassDAmp.m4
index b8e845cf06..93f73a17cb 100644
--- a/graphics/circuit_macros/examples/extras/ClassDAmp.m4
+++ b/graphics/circuit_macros/examples/extras/ClassDAmp.m4
@@ -9,7 +9,7 @@ Q1: mosfet(down_ dimen_*5/4,R,TFSDdPyQdB)
dot(at Q1.S)
{ line up_ dimen_/4
dot(,,1); "ifsvg(`svg_it(V)svg_sub(DD)',`$V_{\hbox{\scriptsize DD}}$')" \
- at last [].n+(0,0.05) above }
+ at last [].e ljust }
line left_ dimen_*2/3
SW: switch(left_ dimen_,`$1',D); ifelse(`$1',,`rlabel(,SW1)',`llabel(,SW2)')
Q2: mosfet(up_ dimen_*5/4,,TFSDPyQuB) with .D at Q1.D
@@ -27,7 +27,7 @@ T: dot; right_
]')
S1: String
-S2: String(R) with .Q1.S at S1.Q2.D+(0,-2*elen_)
+S2: String(R) with .Q1.S at S1.Q2.D+(0,-3/2*elen_)
I1: line left_ dimen_/2 from S1.Comp.In1
sinusoid(dimen_/4,twopi_/(dimen_/2),-pi_/2,0,dimen_/2) \
with .Start at I1.end-(textoffset,0)
@@ -51,7 +51,7 @@ NO: dot(at N.Out+(dimen_/12,0))
dot
{ line up_ dimen_/2; diode(to (NO,Here),Z); line to NO }
{ capacitor(down_ dimen_); ground(,T,S)
- llabel(,iflatex(C_{\hbox{\scriptsize On}},ifsvg(svg_it(R)`'svg_sub(On)))) }
+ llabel(iflatex(C_{\hbox{\scriptsize On}},ifsvg(svg_it(R)`'svg_sub(On)))) }
line dashed to (S1.SW,Here)
arrow <-> dashed from S1.SW to S2.SW chop dimen_/4
diff --git a/graphics/circuit_macros/examples/extras/Cruller.m4 b/graphics/circuit_macros/examples/extras/Cruller.m4
deleted file mode 100644
index d2c215ae13..0000000000
--- a/graphics/circuit_macros/examples/extras/Cruller.m4
+++ /dev/null
@@ -1,67 +0,0 @@
-.PS
-# Cruller.m4
-threeD_init
-NeedDpicTools
-scale = 2.54
-
-define(`lobe',`(sind(6*(`$1'))+4)/5*2.25')
-
- viewazimuth = 20 # Set view angles in degrees
- viewelevation = 30
- setview(viewazimuth,viewelevation,0)
-
- dt = 3 # major angle degrees per facet
- ds = 10 # minor angle degrees per facet
-
- tradius = 6
-define(`cruller',`rot3Dz((`$1')*dtor_,
- sum3D(0,tradius,0,0,Rect_(lobe(`$2'+2*(`$1')),`$2')))')
-
-define(`tvisible',`dot3D(View3D,
- cross3D(diff3D(cruller(`$1'+dt/2,`$2'),cruller(`$1',`$2')),
- diff3D(cruller(`$1',`$2'+ds/2),cruller(`$1',`$2'))))')
-
- # create the arrays and sort
- n = 0
- for t = dt to 360+dt/2 by dt do {
- for s=ds/2 to 360.1 by ds do {
- if tvisible(t,s) > -0.01 then {
- n +=1
- t[n] = t
- s[n] = s
- d[n] = dot3D(cruller(t,s),view3D1,view3D2,view3D3) # view distance
- ix[n] = n
- }
- } }
-# prval(n)
- dpquicksort(d,1,n,ix)
-
- # Background
-Bne: (9,6)
-Bsw: (-9,-6)
-B: 0.5 between Bne and Bsw
-iflatex(`line fill_(0.75) \
- from (Bsw,Bne) to Bsw then to (Bne,Bsw) then to Bne then to (Bsw,Bne)',
- `ShadedPolygon((Bsw,Bne):Bsw:(Bne,Bsw):Bne,,-30,
- 0,1,1,1,
- .5,.1,.4,0,
- 1,0,0,0) at B')
- # draw the facets
-thinlines_
-[
- rgbtohsv(0.6,0.4,0,h,s,v)
- for i = 1 to n do {
- tc = t[ix[i]]; sc = s[ix[i]]
- SE: (Project(cruller(tc+dt/2,sc-ds/2)))
- SW: (Project(cruller(tc-dt/2,sc-ds/2)))
- NW: (Project(cruller(tc-dt/2,sc+ds/2)))
- NE: (Project(cruller(tc+dt/2,sc+ds/2)))
- f = ((dcosine3D(3,cruller(tc,sc))/2.25+1)/2)^2
- hsvtorgb(h,(1-f)*s,1,r,g,b)
- line outlined rgbstring(r,g,b) shaded rgbstring(r,g,b) ifpdf( invis ) \
- from SE to SW then to NW then to NE then to SE }
- ] at B
-
-thicklines_
-
-.PE
diff --git a/graphics/circuit_macros/examples/extras/Cylinder.m4 b/graphics/circuit_macros/examples/extras/Cylinder.m4
deleted file mode 100644
index abe9a9bac7..0000000000
--- a/graphics/circuit_macros/examples/extras/Cylinder.m4
+++ /dev/null
@@ -1,43 +0,0 @@
-.PS
-# Cylinder.m4
-gen_init(SIdefaults) # lengths are in mm
-
-define(`cylinder',`[ angle = ifelse(`$3',,20,`$3')
- w = ifelse(`$1',,boxwid,`$1')
- h = ifelse(`$2',,boxht,`$2')
- B: ellipse wid w ht sind(angle)*w
- S: box invis wid w ht h fill_(1) with .s at B
- line from S.nw to S.sw
- line from S.ne to S.se
- T: ellipse wid w ht sind(angle)*w at B+(0,h)
- ]')
-
-define Cylinder { [ dtor = atan2(1,0)/90
- if "$1"=="" then { w = boxwid } else { w = $1 }
- if "$2"=="" then { h = boxht } else { h = $2 }
- if "$3"=="" then { angle = 20 } else { angle = $3 }
- B: ellipse wid w ht sin(angle*dtor)*w
- S: box invis wid w ht h fill 1 with .s at B
- line from S.nw to S.sw
- line from S.ne to S.se
- T: ellipse wid w ht sin(angle*dtor)*w at B+(0,h)
- ] }
-
-M4: [
- cylinder
- move
- cylinder(,,15)
- move
- cylinder(3,50)
- ]
-"M4 macro" at last [].s below
-
-Pic: [
- Cylinder
- move
- Cylinder(,,15)
- move
- Cylinder(3,50)
- ] with .w at M4.e+(5,0)
-"pic macro" at last [].s below
-.PE
diff --git a/graphics/circuit_macros/examples/extras/hsv.m4 b/graphics/circuit_macros/examples/extras/HSV.m4
index 662184dd7d..662184dd7d 100644
--- a/graphics/circuit_macros/examples/extras/hsv.m4
+++ b/graphics/circuit_macros/examples/extras/HSV.m4
diff --git a/graphics/circuit_macros/examples/extras/Highgain.m4 b/graphics/circuit_macros/examples/extras/Highgain.m4
index 06bc62985e..71cbc74a49 100644
--- a/graphics/circuit_macros/examples/extras/Highgain.m4
+++ b/graphics/circuit_macros/examples/extras/Highgain.m4
@@ -48,23 +48,23 @@ define(`vectorsize',
[
R: darrow(right linewid,,,,,,|-)
- { s_box($R$) dabove(at R.start+(5pt__,0)) }
+ { "$R$" dabove(at R.start+(5pt__,0)) }
Sum: circle invis "$\sum$"
darrow(right_ linewid*5/4)
- { s_box($E$) dabove(at last line) }
+ { "$E$" dabove(at last line) }
vectorsize(p,at 1/4 along_(last line))
Gain: shadebox(box "$G = \diag\mat{g_i}$" wid boxwid*1.5 ht boxht*0.75 )
darrow(,,,,,,!-)
- { s_box($U^{\prime}$) dabove(at last line) }
+ { "$U^{\prime}$" dabove(at last line) }
Compensator: shadebox(box wid boxwid*1.5 "\sl Compensator" "$K(s)$")
darrow(right_ linewid*5/4,,,,,,!-)
vectorsize(m,at 1/4 along_(last line))
- { s_box($U$) dabove(at last line) }
+ { "$U$" dabove(at last line) }
Plant: shadebox(box "\sl Plant" "$H(s)$" )
dline(right_ linewid*3/4 from Plant.e,,,,!-)
vectorsize(p,at last line)
Y: dtee(R)
- {s_box($Y$) dabove}
+ {"$Y$" dabove}
darrow(right_ linewid*2/3,t)
dline(down boxht from Y,t)
diff --git a/graphics/circuit_macros/examples/extras/Koch.m4 b/graphics/circuit_macros/examples/extras/Koch.m4
deleted file mode 100644
index cb122c10b6..0000000000
--- a/graphics/circuit_macros/examples/extras/Koch.m4
+++ /dev/null
@@ -1,33 +0,0 @@
-.PS
-# Koch snowflake
-gen_init
-
- leng = 4
- X: 3,5
- nsides = 3; rot[1] = 0; rot[2] = -120; rot[3] = -120
- depth=4
-
- for i=1 to depth do {
- for j=1 to nsides do { tmp[j] = rot[j] }
- leng = leng/3
- k = 0
- for j=1 to nsides do {
- rot[k+1] = tmp[j]
- rot[k+2] = 60
- rot[k+3] = -120
- rot[k+4] = 60
- k += 4
- }
- nsides = k
- }
-
- a = 0
- line from X to X
- for i=1 to nsides do {
- a += rot[i]
-# X: X+(Rect_(leng,a))
-# continue to X
- continue by (Rect_(leng,a))
- }
-
-.PE
diff --git a/graphics/circuit_macros/examples/extras/Makefile b/graphics/circuit_macros/examples/extras/Makefile
index efc8a2b23e..a29b0a81fd 100644
--- a/graphics/circuit_macros/examples/extras/Makefile
+++ b/graphics/circuit_macros/examples/extras/Makefile
@@ -51,7 +51,7 @@ BOXDIMS =
DVIPSOPTS = -G0 -t letter
DIMFILE = $(DOC).dim
-BS = tr '|' '\134'
+TRSLASH = tr '|' '\134'
# Might be needed (change latex commands to $(LTX) )
# LTX = latex --shell-escape
@@ -62,13 +62,13 @@ XTRASRC=printf "|documentclass[11pt]{article}\n\
|usepackage{times,boxdims,siunitx,amssymb,tikz}\n\
|setlength{|textwidth}{8in} |setlength{|textheight}{10.5in}\n\
|setlength{|hoffset}{-2cm} |setlength{|voffset}{-3cm}\n\
-|begin{document}\n" | $(BS)
+|begin{document}\n" | $(TRSLASH)
PDFLTXSRC=printf "|documentclass[11pt]{standalone}\n\
|usepackage{times,boxdims,siunitx,amssymb,tikz,geometry}\n\
|geometry{paperwidth=15in,paperheight=14in,margin=1in}\n\
|pagestyle{empty}|thispagestyle{empty}\n\
-|begin{document}|noindent|input{"$*".tex}|end{document}\n" | $(BS)
+|begin{document}|noindent|input{"$*".tex}|end{document}\n" | $(TRSLASH)
LTXFILE=printf "|documentclass[11pt]{article}\n\
|usepackage[dvipsnames]{xcolor}\n\
@@ -81,7 +81,7 @@ LTXFILE=printf "|documentclass[11pt]{article}\n\
|newbox|graph\n\
|begin{document}\n\
|noindent|input{"$*".tex}|box|graph\n\
-|end{document}\n" | $(BS)
+|end{document}\n" | $(TRSLASH)
.SUFFIXES: .ps .dvi .tex .m4 .pic .eps .png .pdf .svg .tif .gif
.m4.pic:
@@ -158,33 +158,39 @@ LTXFILE=printf "|documentclass[11pt]{article}\n\
#########################################################################
-$(DOC).pdf:
+$(DOC).pdf: texfiles
@$(XTRASRC) > extras.tex
touch extras.dim
-for fl in `ls *.m4` ; do \
file=`basename $$fl .m4` ; \
- echo $$file.m4 ; \
- $(M4) pgf.m4 extras.dim $$file.m4 | $(PIC) -g > $$file.tex ; \
- printf "\n\n|noindent|parbox{|textwidth}{\n" | $(BS) >> extras.tex ; \
- printf "|input{$$file.tex}\n" | $(BS) >> extras.tex ; \
+ printf "\n\n|noindent|parbox{|textwidth}{\n" | $(TRSLASH) >> extras.tex; \
+ printf "|input{$$file.tex}\n" | $(TRSLASH) >> extras.tex ; \
printf "\n $$file.m4\n}\n|vspace{|baselineskip}" \
- | sed -e 's/_/|_/g' | $(BS) >> extras.tex ; \
- done
- printf "\n|end{document}\n" | $(BS) >> extras.tex
- pdflatex extras
- -for file in $(XBOXDIMS) ; do \
- rm -f $$file.tex ; \
- $(M4) pgf.m4 extras.dim $$file.m4 | $(PIC) -g > $$file.tex ; \
+ | sed -e 's/_/|_/g' | $(TRSLASH) >> extras.tex ; \
done
+ printf "\n|end{document}\n" | $(TRSLASH) >> extras.tex
pdflatex extras
+# -for file in $(XBOXDIMS) ; do \
+# rm -f $$file.tex ; \
+# $(M4) pgf.m4 extras.dim $$file.m4 | $(PIC) -g > $$file.tex ; \
+# done
+# pdflatex extras
+
+texfiles:
+ touch extras.dim
+ for fl in `ls *.m4` ; do \
+ file=`basename $$fl .m4` ; \
+ echo $$file.m4 ; \
+ $(M4) pgf.m4 extras.dim $$file.m4 | $(PIC) -g > $$file.tex ; done
+ touch texfiles
$(DOC).ps: psmode $(DOC).dvi
psmode:
- printf "|usepackage{pstricks,pst-grad}\n" | $(BS) > mode.tex
+ printf "|usepackage{pstricks,pst-grad}\n" | $(TRSLASH) > mode.tex
pdfmode:
- printf "|usepackage{tikz}\n" | $(BS) > mode.tex
+ printf "|usepackage{tikz}\n" | $(TRSLASH) > mode.tex
$(DOC).dvi: $(DOC).tex files.tex header.tex psmode
touch $(DOC).dim
@@ -208,4 +214,4 @@ tst1:
dvips $(DVIPSOPTS) tst -o tst.ps
clean:
- rm -f *.ps *.pdf *.tex *.dim *.pic *.log *.dms *.aux *.svg
+ rm -f *.ps *.pdf *.tex *.dim *.pic *.log *.dms *.aux *.svg texfiles
diff --git a/graphics/circuit_macros/examples/extras/Parallel-series.m4 b/graphics/circuit_macros/examples/extras/Parallel-series.m4
new file mode 100644
index 0000000000..fb20cc21eb
--- /dev/null
+++ b/graphics/circuit_macros/examples/extras/Parallel-series.m4
@@ -0,0 +1,15 @@
+.PS
+# parallel-series.m4
+# https://tex.stackexchange.com/questions/709074/how-to-plot-a-block-diagram-with-tikz
+cct_init
+
+ dot; line right_ dimen_/2
+ parallel_(
+ parallel_(
+ `ebox(,wdth=0.2;text="$x_1$")',
+ `Sep=dimen_*3/4;ebox(,wdth=0.2;text="$x_2$")'),
+ Sep=dimen_;series_(
+ `ebox(,wdth=0.2;text="$x_3$")',
+ `ebox(,wdth=0.2;text="$x_4$")'))
+ line right_ dimen_/2; dot
+.PE
diff --git a/graphics/circuit_macros/examples/extras/person.m4 b/graphics/circuit_macros/examples/extras/Person.m4
index 4fdf09d387..4fdf09d387 100644
--- a/graphics/circuit_macros/examples/extras/person.m4
+++ b/graphics/circuit_macros/examples/extras/Person.m4
diff --git a/graphics/circuit_macros/examples/extras/README_extras b/graphics/circuit_macros/examples/extras/README_extras
index 45074a49b2..ebef7cfcd1 100644
--- a/graphics/circuit_macros/examples/extras/README_extras
+++ b/graphics/circuit_macros/examples/extras/README_extras
@@ -11,4 +11,4 @@ often be done reasonably in several possible languages.
This directory is assumed to be a subdirectory of the examples directory
in order to include the necessary definition files.
-Type "make" and, to clean up, "make clean".
+Type "make" to create extras.pdf and, to clean up, "make clean".
diff --git a/graphics/circuit_macros/examples/extras/rotellipse.m4 b/graphics/circuit_macros/examples/extras/Rotellipse.m4
index a49ce308b3..a49ce308b3 100644
--- a/graphics/circuit_macros/examples/extras/rotellipse.m4
+++ b/graphics/circuit_macros/examples/extras/Rotellipse.m4
diff --git a/graphics/circuit_macros/examples/extras/SampleFlow.m4 b/graphics/circuit_macros/examples/extras/SampleFlow.m4
index 077a0ba6e3..94e334c46a 100644
--- a/graphics/circuit_macros/examples/extras/SampleFlow.m4
+++ b/graphics/circuit_macros/examples/extras/SampleFlow.m4
@@ -2,11 +2,11 @@
# SampleFlow.m4
darrow_init
-boxwid = 1.9
-boxht = 1.0
+boxwid = 1.15
+boxht = 0.6
linethick = 1.2
- define(`dlthick',0.25)
+ define(`dlthick',0.125)
define(`dfillcolor',`0.7,0.7,0.7')
define rbox {box rad boxht/10}
@@ -17,7 +17,7 @@ linethick = 1.2
dleft
darrow(to last box.w) } }
- command "{\sf\huge"
+ command "{\sf"
B1: rbox
{ "Sample" ljust indent "Acquisition" ljust }
diff --git a/graphics/circuit_macros/examples/extras/Spec555.m4 b/graphics/circuit_macros/examples/extras/Spec555.m4
new file mode 100644
index 0000000000..713ccb2967
--- /dev/null
+++ b/graphics/circuit_macros/examples/extras/Spec555.m4
@@ -0,0 +1,56 @@
+.PS
+# Spec555.m4
+# https://tex.stackexchange.com/questions/64801/display-ics-with-circuitikz?rq=1
+log_init
+
+define(`spec555',`[ Chip: box wid 8*lg_pinsep ht 10*lg_pinsep fill_(0.9)
+ command "{\scriptsize\sf"
+ P1: "1" at 3/4<Chip.sw,Chip.se> below rjust; "GND" above
+ P5: "5" at Chip.s below rjust ; "CTRL" above
+ P2: "2" at 1/8<Chip.sw,Chip.nw> above rjust; "TRG" ljust
+ P6: "6" at 3/8<Chip.sw,Chip.nw> above rjust; "THR" ljust
+ P7: "7" at 7/8<Chip.sw,Chip.nw> above rjust; "DIS" ljust
+ P3: "3" at Chip.e above ljust ; "OUT" rjust
+ P4: "4" at 3/4<Chip.nw,Chip.ne> above rjust; "\phantom{M}RESET" below
+ P8: "8" at Chip.n above rjust ; "Vcc" below
+ "NE-555" at Chip.c "TIMER"
+ command "}%"
+ line left dimen_ from P7; X:dot
+ { R1:resistor(up_ P7.y-P6.y); rlabel(,\SI{68}{\kilo\ohm}); dot }
+ R2:resistor(down_ P7.y-P6.y); llabel(,\SI{68}{\kilo\ohm}); dot; {line to P6}
+ line to (Here,P2); SW: dot; {line to P2}
+ line from P8 to (P8,R1.end); dot ]')
+
+ command "{\small\sf"
+ T1: spec555; "U1" at T1.Chip.nw above ljust
+ T2: spec555 with .Chip.w at T1.Chip.e+(2.5*dimen_,0)
+ "U2" at T2.Chip.nw above ljust
+ {line left_ dimen_/2 from (T1.X,T1.P7); diode(down_ T1.P7.y-T1.P6.y)
+ rlabel(,\shortstack{D1\\1N4148})
+ line to (T1.X,Here); dot}
+ capacitor(down_ elen_ from T1.SW,E+); llabel(,\SI{10}{\micro\farad}); dot
+ dot(at Here-(dimen_/2,0),,1); G: dot(,,1); "GND" rjust at G.w
+ capacitor(from T1.P5 to (T1.P5,G),E+); rlabel(,\SI{0.01}{\nano\farad}); dot
+ line from T1.P1 to (T1.P1,G); dot
+ Vcc: dot(at (G,T1.R1.end),,1); "Vcc" rjust at Vcc.w
+ dot(at (T1.P4,Vcc)); line to T1.P4
+ line right_ dimen_/2 from T1.P3;
+ R3: resistor(down_ to (Here,T2.s-(0,dimen_/4))); llabel(,\SI{10}{\kilo\ohm})
+ line to (T2.P5,Here) then to T2.P5
+ dot(at (T2.X,G)); ground
+ reversed(`capacitor',up_ to (Here,T2.P5),E+); rlabel(,\SI{100}{\nano\farad})
+ line to (Here,T2.P2)
+ line from T2.P1 to (T2.P1,G); dot
+ line from T2.P4 to (T2.P4,Vcc) then to Vcc chop 0 chop dotrad_
+ dot(at (T2.X,T2.R1.end)+(0,dimen_/2),,1); {line to T2.R1.end chop dotrad_}
+ "$+$\SI{5}{\volt} to $+$\SI{15}{\volt}" at last [].n above
+ capacitor(right_ dimen_ from T2.P3,C); llabel(,\SI{100}{\micro\farad})
+ Pot1: potentiometer(down_ (Here.y-G.y)/2) with .Start at Here
+ "Rx" at Pot1.T1 ljust
+ Sp: speaker(R,,,fill_(0.9)) with .In5 at Pot1.End
+ "1" above rjust at Sp.In5; "2" below rjust at Sp.In7
+ "\shortstack{E1\\Speaker}" at Sp.In2 rjust
+ line from Sp.In7 to (Sp.In7,G) then to G chop 0 chop dotrad_
+ command "}%"
+
+.PE
diff --git a/graphics/circuit_macros/examples/extras/squiggle.m4 b/graphics/circuit_macros/examples/extras/Squiggle.m4
index 671ae2addd..671ae2addd 100644
--- a/graphics/circuit_macros/examples/extras/squiggle.m4
+++ b/graphics/circuit_macros/examples/extras/Squiggle.m4
diff --git a/graphics/circuit_macros/examples/extras/venus.m4 b/graphics/circuit_macros/examples/extras/Venus.m4
index 676cd98143..676cd98143 100644
--- a/graphics/circuit_macros/examples/extras/venus.m4
+++ b/graphics/circuit_macros/examples/extras/Venus.m4
diff --git a/graphics/circuit_macros/examples/ex17.m4 b/graphics/circuit_macros/examples/extras/ex17.m4
index a304d7359b..a304d7359b 100644
--- a/graphics/circuit_macros/examples/ex17.m4
+++ b/graphics/circuit_macros/examples/extras/ex17.m4
diff --git a/graphics/circuit_macros/examples/files.tex b/graphics/circuit_macros/examples/files.tex
index 37bff79b12..45000c231b 100644
--- a/graphics/circuit_macros/examples/files.tex
+++ b/graphics/circuit_macros/examples/files.tex
@@ -158,6 +158,14 @@
\src{Pconn.m4}.}
}
+\ifmpost\else\bfig{
+ \centerline{\getpic{cbresistor}}
+ \caption{Color-coded through-hole resistors. All are
+ 10 percent tolerance except for the last,
+ which illustrates 5 percent
+ \src{cbresistor.m4}.}
+ }\fi
+
\ifmpost\else\ifpostscript\else\bfig{
\centerline{\getpic{EVplugs}}
\caption{Electric vehicle charging plug patterns make extensive
@@ -265,17 +273,12 @@
\bfig{
\centerline{\getpic{Quantum}}
- \caption{A quantum circuit
+ \caption{A quantum circuit and a
+ superconducting quantum interface device (drawing direction down)
\src{Quantum.m4}.}
}
\bfig{
- \centerline{\getpic{SQUID}}
- \caption{Superconducting quantum interface device (drawing direction down)
- \src{SQUID.m4}.}
- }
-
-\bfig{
\centerline{\getpic{Sixpole}}
\caption{A six-pole filter
\src{Sixpole.m4}.}
@@ -308,13 +311,6 @@
}
\bfig{
- \centerline{\getpic{ex17}}
- \caption{A repetitive network created by Pic looping and
- a skewed circuit used to test the macro {\tt parallel\_}
- \src{ex17.m4}.}
- }
-
-\bfig{
\centerline{\getpic{ex12}}
\caption{ A CMOS NAND gate, a test circuit, and an XMOSFET example
\src{ex12.m4}.}
@@ -521,12 +517,6 @@
\src{XOR.m4}.}
}
-\bfig{
- \centerline{\getpic{ex00}}
- \caption{Line diagrams
- \src{ex00.m4}.}
- }
-
\ifmpost\else\ifpostscript\else\bfig{
\centerline{\getpic{EEP}}
\caption{A test of experimental single-line diagram macros
@@ -541,8 +531,8 @@
\bfig{
\centerline{\getpic{GrayCode}}
- \caption{Gray code 10-bit encoder disk pattern and a crossbar switch
- illustrating the power of looping and branching
+ \caption{The power of looping and branching:
+ Gray code 10-bit encoder disk pattern and a crossbar switch
\src{GrayCode.m4}.}
}
@@ -559,6 +549,13 @@
}
\bfig{
+ \centerline{\getpic{Sevensegment}}
+ \caption{A customizable seven-segment display showing the
+ numbered segments, a custom shape, and the numerals from 0 to 9
+ \src{Sevensegment.m4}.}
+ }
+
+\bfig{
\centerline{\getpic{Rotbox}}
\caption{The macro
{\tt rotbox(}{\sl wid,ht,type,}{\tt [r|t=}{\sl val}{\tt ])}
@@ -567,12 +564,12 @@
}
\ifmpost\else\ifpostscript\else\bfig{
- \centerline{\getpic{shadowed}}
+ \centerline{\getpic{Shadowed}}
\caption{Embellishments: the top row illustrates
{\tt shadowed(box|circle|ellipse|line,[at {\sl position}],{\sl keys})}
and the second row
{\tt ColoredV(box|circle|ellipse,({\sl r,g,b})|(({\sl colorseq})),{\sl attributes})}
- \src{shadowed.m4}.}
+ \src{Shadowed.m4}.}
}\fi\fi
\bfig{
@@ -661,7 +658,7 @@
\ifpostscript%
\bfig{% For psfrag
\includegraphics[width=\textwidth]{rose.eps} %\centerline{\getpic{rose}}%ignore%
- \caption{The left object, used for testing {\tt dipic,} is redrawn from%ignore%
+ \caption{The left object, used for testing {\tt dpic,} is redrawn from%ignore%
a detail of the set design for the musical {\it Dracula.} This %ignore%
consumes much \LaTeX\ main memory but can be produced directly %ignore%
as pdf using \hbox{\tt dpic -d}, as svg using \hbox{\tt dpic -v}, %ignore%
@@ -712,7 +709,7 @@
\bfig{
\centerline{\getpic{Dini}}
- \caption{Dini surface and an icosahedron
+ \caption{Dini surface, an icosahedron, and a sphere with inscribed cylinder
\src{Dini.m4}.}
}
@@ -789,10 +786,10 @@
\caption{Overlaying a figure with line graphics %ignore%
\src{Incleps.m4}.}
}
-\else\ifpostscript\else% Postscript with psfrag (.eps.gz not allowed)
+\else\ifpostscript\else% Postscript with psfrag (.eps.gz not allowed)
\bfig{%
\centerline{\boxdims{InclA}{%ignore%
- \includegraphics[width=3in]{Incl.eps}}%
+ \includegraphics[width=3in]{Incl.eps}}% the background picture
\hspace*{-3in}\includegraphics{Incleps.eps}}%
\caption{Overlaying a figure with line graphics %ignore%
\src{Incleps.m4}.}}
diff --git a/graphics/circuit_macros/examples/ics.m4 b/graphics/circuit_macros/examples/ics.m4
index 42286d5a8f..5db6a17cea 100644
--- a/graphics/circuit_macros/examples/ics.m4
+++ b/graphics/circuit_macros/examples/ics.m4
@@ -78,29 +78,38 @@ define(`ic74LS138',`[ Chip: box wid_ lg_chipwd ht_ 11*lg_pinsep
lg_pin(Chip.se_+(0,9*lg_pinsep),Y7,Pin7,eN,7)
`$1']')
+define(`ic555',`[ Chip: DIP_chip_outline(8)
+ foreach_(`x',
+ `lg_pin(Chip.nw-(0,lg_pinsep*m4Lx),x,Pin`'m4Lx,w,m4Lx)',
+ GND, TR, OUT, RESET)
+ foreach_(`x',
+ `lg_pin(Chip.se+(0,lg_pinsep*m4Lx),x,Pin`'eval(m4Lx+4),e,eval(m4Lx+4))',
+ CTRL, THR, DIS, Vcc)
+ `$1']')
+
define(`ic4017',`[ Chip: DIP_chip_outline(16)
- Loopover_(`x',
+ foreach_(`x',
`lg_pin(Chip.nw-(0,lg_pinsep*m4Lx),x,Pin`'m4Lx,w,m4Lx)',
PL, Q3, I3, I0, CLE, Q0, TC, GND)
- Loopover_(`x',
+ foreach_(`x',
`lg_pin(Chip.se+(0,lg_pinsep*m4Lx),x,Pin`'eval(m4Lx+8),e,eval(m4Lx+8))',
MR, U/D, Q1, I1, I2, Q2, CLK, Vcc)
`$1']')
define(`ic4510',`[ Chip: DIP_chip_outline(16)
- Loopover_(`x',
+ foreach_(`x',
`lg_pin(Chip.nw-(0,lg_pinsep*m4Lx),x,Pin`'m4Lx,w,m4Lx)',
PL, Q3, I3, I0, CLE, Q0, TC, GND)
- Loopover_(`x',
+ foreach_(`x',
`lg_pin(Chip.se+(0,lg_pinsep*m4Lx),x,Pin`'eval(m4Lx+8),e,eval(m4Lx+8))',
MR, U/D, Q1, I1, I2, Q2, CLK, Vcc)
`$1']')
define(`icVS1053',`[ Chip: DIP_chip_outline(32)
- Loopover_(`x',
+ foreach_(`x',
`lg_pin(Chip.nw-(0,lg_pinsep*m4Lx),x,Pin`'m4Lx,w,m4Lx)',
LOUT,ROUT,GBUF,AGND,AGND,DREG,Vcc,3V3,GND,MISO,MOSI,sclk,RST,CS,DCS,DCS)
- Loopover_(`x',
+ foreach_(`x',
`lg_pin(Chip.se+(0,lg_pinsep*m4Lx),x,Pin`'eval(m4Lx+16),e,eval(m4Lx+16))',
SDCD,RX,TX,7,6,5,4,3,2,1,0,GND,3V3,AGND,MIC`$-$',MIC`$+$')
`$1']')
@@ -114,13 +123,13 @@ define(`ArduinoUno',`[
#
plen = ifelse(`$4',,`2*L_unit',`$4')
#
-Loopover_(`x',`ifelse(x,nul,,
+foreach_(`x',`ifelse(x,nul,,
`Pin`'eval(5+m4Lx): line left_ plen from Connector.nw-(0,(5+m4Lx)*lg_pinsep)
{ "x" ljust at last line.start }')',
IOREF, RESET,$+${3}V3,$+${5}V, GND, GND, VIN,
nul, A0, A1, A2, A3, A4, A5)
#
-Loopover_(`x',`ifelse(x,nul,,
+foreach_(`x',`ifelse(x,nul,,
`Pin`'eval(22-m4Lx): line right_ plen from Connector.ne-(0,m4Lx*lg_pinsep)
{ "x" rjust at last line.start }')',
SCL, SDA, AREF, GND, D13, D12, ic_tilde`'D11, ic_tilde`'D10, ic_tilde`'D9, D8,
@@ -137,22 +146,22 @@ define(`ArduinoLeonardo',`[
#
plen = ifelse(`$4',,`2*L_unit',`$4')
#
-Loopover_(`x',`ifelse(x,nul,,
+foreach_(`x',`ifelse(x,nul,,
`Pin`'eval(5+m4Lx): line left_ plen from Connector.nw-(0,(5+m4Lx)*lg_pinsep)
{ "x" ljust at last line.start }')',
IOREF, RESET,$+${3}V3,$+${5}V, GND, GND, VIN,
nul, A0, A1, A2, A3, A4, A5)
#
-Loopover_(`x',`ifelse(x,nul,,
+foreach_(`x',`ifelse(x,nul,,
`Pin`'eval(22-m4Lx): line right_ plen from Connector.ne-(0,m4Lx*lg_pinsep)
{ "x" rjust at last line.start }')',
SCL, SDA, AREF, GND,
ic_tilde`'D13, D12, ic_tilde`'D11, ic_tilde`'D10, ic_tilde`'D9, D8,
nul, D7, ic_tilde`'D6, ic_tilde`'D5, D4, ic_tilde`'D3, D2, TX D1, RX D0)
#
- `$4'] ')
+ `$4'] ') # `ArduinoLeonardo'
- `RPi( wid,ht,pinlen )'
+ `RPi( wid,ht,pinlen )' # Raspberry Pi connector
define(`RPi',`[
define(`m4bwid',`ifelse(`$1',,`34*L_unit',`$1')')dnl
define(`m4bht',`ifelse(`$2',,`21*lg_pinsep',`$2')')dnl
@@ -160,13 +169,13 @@ define(`RPi',`[
GPIO: box wid m4bwid ht m4bht
plen = ifelse(`$4',,`6*L_unit',`$4')
#
-define A_LeftGPIO {
+define A_LeftGPIO { dnl pin downcount, internal label , pin no above line
exec sprintf("Pin%g: line left_ plen from GPIO.nw-(0,%g)",\
2*(`$'1)-1,(`$'1)*lg_pinsep)
{ "`$'3" ljust at last line.start }
"`$'2" at last line.c above }
#
-Loopover_(`x',`ifelse(x,nul,,`A_LeftGPIO(m4Lx,patsubst(x,;,`,'))')',
+foreach_(`x',`ifelse(x,nul,,`A_LeftGPIO(m4Lx,patsubst(x,;,`,'))')',
;3V3,
2;SDA1, 3;SCL1, 4;GPIO\_GCLK,
;GND,
@@ -178,13 +187,13 @@ Loopover_(`x',`ifelse(x,nul,,`A_LeftGPIO(m4Lx,patsubst(x,;,`,'))')',
5;, 6;, 13;, 19;, 26;,
;GND )
#
-define A_RightGPIO {
+define A_RightGPIO { dnl pin downcount, internal label , pin no above line
exec sprintf("Pin%g: line right_ plen from GPIO.ne-(0,%g)",\
2*(`$'1),(`$'1)*lg_pinsep)
{ "`$'3" rjust at last line.start }
"`$'2" at last line.c above }
#
-Loopover_(`x',`ifelse(x,nul,,`A_RightGPIO(m4Lx,patsubst(x,;,`,'))')',
+foreach_(`x',`ifelse(x,nul,,`A_RightGPIO(m4Lx,patsubst(x,;,`,'))')',
;5V,
;5V,
;GND,
@@ -199,7 +208,7 @@ Loopover_(`x',`ifelse(x,nul,,`A_RightGPIO(m4Lx,patsubst(x,;,`,'))')',
;GND,
16;, 20;, 21; )
#
- `$4'] ')
+ `$4'] ') # `RPi'
`USB_C_Socket( wid, ht, pinlen )'
define(`USB_C_Socket',`[
@@ -209,14 +218,14 @@ define(`USB_C_Socket',`[
Base: box wid m4bwid ht m4bht rad 5/3*lg_pinsep
plen = ifelse(`$4',,`6*L_unit',`$4')
#
- Loopover_(`x',
+ foreach_(`x',
`B`'eval(13-m4Lx): dnl
line left_ plen from Base.n-(m4bwid/2,(m4Lx+0.5)*lg_pinsep)
{"x" ljust at last line.start}',
GND, RX1`$+$', RX1`$-$', VBUS, SBU2, D`$-$', D`$+$', CC2, VBUS, TX2`$-$',
TX2`$+$', GND)
#
- Loopover_(`x',
+ foreach_(`x',
`A`'m4Lx: line right_ plen from Base.n+(m4bwid/2,-(m4Lx+0.5)*lg_pinsep)
{"x" rjust at last line.start}',
GND, TX1`$+$', TX1`$-$', VBUS, CC1, D`$+$', D`$-$', SBU1, VBUS, RX2`$-$',
@@ -235,7 +244,7 @@ define(`HDMI_micro',`[
then left m4bwid*2/3 then to Here]
plen = ifelse(`$4',,`6*L_unit',`$4')
#
- Loopover_(`x',
+ foreach_(`x',
`Pin`'m4Lx: line left_ plen from Base.nw-(0,m4bwid/3+m4Lx*lg_pinsep)
{"x" ljust at last line.start}
"m4Lx" at last line.c above',
diff --git a/graphics/circuit_macros/examples/keyboard.m4 b/graphics/circuit_macros/examples/keyboard.m4
index 7966a7aa3b..613ab9c21c 100644
--- a/graphics/circuit_macros/examples/keyboard.m4
+++ b/graphics/circuit_macros/examples/keyboard.m4
@@ -19,8 +19,8 @@ define(`kbdshadewid',`(kbd_u/9)')
top=attribs; # top attributes '
define(`kbdkey',
`pushkeys_(`$2',
- wdth:kbd_u; hght:kbd_u*14/13+lthick; rad:kbd_u/10;
- shadewid:kbdshadewid; base:fill_(0.3):N; top:fill_(0.9):N)dnl
+ `wdth:kbd_u; hght:kbd_u*14/13+lthick; rad:kbd_u/10;
+ shadewid:kbdshadewid; base:fill_(0.3):N; top:fill_(0.9):N')dnl
[ Base: box wid m4wdth ht m4hght rad m4rad m4base
Top: box wid m4wdth-2*m4shadewid ht m4hght-m4shadewid-lthick \
rad m4rad*(kbd_u-2*m4shadewid)/(kbd_u) with .n \
@@ -53,14 +53,14 @@ define(`stkbdkey',
top=attribs; # top attributes '
define(`enterkey',
`pushkeys_(`$2',
- wdth:kbd_u*2.26;
+ `wdth:kbd_u*2.26;
hght:kbd_u*14/13*2+kbdrowsep+linethick bp__;
bhght: kbd_u*14/13;
twdth: kbd_u*3/2;
rad:kbd_u/10;
shadewid:kbdshadewid;
base:fill_(0.3):N;
- top:fill_(0.9):N)dnl
+ top:fill_(0.9):N')dnl
[ ltx = lthick; r = m4rad*(kbd_u-2*m4shadewid)/(kbd_u)
# thick outer
linethick = (m4shadewid+r)/(1bp__); lth2 = lthick/2
diff --git a/graphics/circuit_macros/examples/mf/cct.mf b/graphics/circuit_macros/examples/mf/cct.mf
index fc30c9dbad..37b64057d3 100644
--- a/graphics/circuit_macros/examples/mf/cct.mf
+++ b/graphics/circuit_macros/examples/mf/cct.mf
@@ -1,5 +1,5 @@
% cct.mf, generated by Mfpic, v1.10 2012/12/03,
-% from TeX source "font" on 2024/01/01 at 16:59
+% from TeX source "font" on 2024/05/30 at 10:30
numeric mfpicversion; mfpicversion := 110;
if unknown mode: mode := localfont; fi
if unknown mag: mag := 1000/1000; fi
@@ -299,7 +299,7 @@ resizedrawpen (0.4bp);
store (curpath)
drawn
-circle ((-0.3084,-0),0.002767);
+circle ((-0.3084,0),0.002767);
resizedrawpen (0.8bp);
@@ -426,7 +426,7 @@ endmfpic; % (8) line 123 in the TeX source.
%----------------------------<9>
unitlen := 1.0pt#;
xscale := 72; yscale := 72;
-bounds (0, 0.333333, -0, 0.03125);
+bounds (0, 0.333333, 0, 0.03125);
beginmfpic(9); % line 124 in the TeX source.
@@ -441,19 +441,19 @@ polyline (false)
store (curpath)
drawn
-arcplr ((0.072917,0),-180,-360,0.03125);
+arcplr ((0.072917,0),180,0,0.03125);
store (curpath)
drawn
-arcplr ((0.135417,0),-180,-360,0.03125);
+arcplr ((0.135417,0),180,0,0.03125);
store (curpath)
drawn
-arcplr ((0.197917,0),180,-0,0.03125);
+arcplr ((0.197917,0),180,0,0.03125);
store (curpath)
drawn
-arcplr ((0.260417,0),-180,-360,0.03125);
+arcplr ((0.260417,0),180,0,0.03125);
store (curpath)
drawn
@@ -491,11 +491,11 @@ arcplr ((0,-0.135417),90,-90,0.03125);
store (curpath)
drawn
-arcplr ((-0,-0.197917),90,-90,0.03125);
+arcplr ((0,-0.197917),90,-90,0.03125);
store (curpath)
drawn
-arcplr ((-0,-0.260417),90,-90,0.03125);
+arcplr ((0,-0.260417),90,-90,0.03125);
store (curpath)
drawn
@@ -525,7 +525,7 @@ polyline (false)
store (curpath)
drawn
-arcplr ((-0.072917,0),0,-180,0.03125);
+arcplr ((-0.072917,0),-0,-180,0.03125);
store (curpath)
drawn
@@ -1402,12 +1402,12 @@ polyline (false)
store (curpath)
drawn
polyline (false)
-((0.145833,0),
-(0.145833,0.0625),
-(0.1875,0.0625),
-(0.1875,-0.0625),
-(0.145833,-0.0625),
-(0.145833,0));
+((0.104167,0),
+(0.104167,0.0625),
+(0.229167,0.0625),
+(0.229167,-0.0625),
+(0.104167,-0.0625),
+(0.104167,0));
store (curpath)
drawn
@@ -1450,12 +1450,12 @@ polyline (false)
store (curpath)
drawn
polyline (false)
-((0,-0.145833),
-(0.0625,-0.145833),
-(0.0625,-0.1875),
-(-0.0625,-0.1875),
-(-0.0625,-0.145833),
-(0,-0.145833));
+((0,-0.104167),
+(0.0625,-0.104167),
+(0.0625,-0.229167),
+(-0.0625,-0.229167),
+(-0.0625,-0.104167),
+(0,-0.104167));
store (curpath)
drawn
@@ -3197,7 +3197,7 @@ polyline (false)
store (curpath)
drawn
-arcplr ((0,0.1375),-180,-360,0.175);
+arcplr ((0,0.1375),180,0,0.175);
store (curpath)
drawn
@@ -3379,19 +3379,19 @@ polyline (false)
store (curpath)
drawn
-arcplr ((0.072917,-0.104167),-180,-360,0.03125);
+arcplr ((0.072917,-0.104167),180,0,0.03125);
store (curpath)
drawn
-arcplr ((0.135417,-0.104167),-180,-360,0.03125);
+arcplr ((0.135417,-0.104167),180,0,0.03125);
store (curpath)
drawn
-arcplr ((0.197917,-0.104167),180,-0,0.03125);
+arcplr ((0.197917,-0.104167),180,0,0.03125);
store (curpath)
drawn
-arcplr ((0.260417,-0.104167),-180,-360,0.03125);
+arcplr ((0.260417,-0.104167),180,0,0.03125);
store (curpath)
drawn
@@ -3423,15 +3423,15 @@ arcplr ((0.260417,0.104167),-0,-180,0.03125);
store (curpath)
drawn
-arcplr ((0.197917,0.104167),0,-180,0.03125);
+arcplr ((0.197917,0.104167),-0,-180,0.03125);
store (curpath)
drawn
-arcplr ((0.135417,0.104167),0,-180,0.03125);
+arcplr ((0.135417,0.104167),-0,-180,0.03125);
store (curpath)
drawn
-arcplr ((0.072917,0.104167),0,-180,0.03125);
+arcplr ((0.072917,0.104167),-0,-180,0.03125);
store (curpath)
drawn
@@ -4844,7 +4844,7 @@ arcplr ((-0.310672,-0.001089),25.772366,-25.376934,0.35);
store (curpath)
drawn
polyline (false)
-((0,-0.151089),
+((-0,-0.151089),
(0.122222,-0.151089));
store (curpath)
@@ -5204,7 +5204,7 @@ arcplr ((-0.310672,-0.001089),25.772366,-25.376934,0.35);
store (curpath)
drawn
polyline (false)
-((0,-0.151089),
+((-0,-0.151089),
(0.122222,-0.151089));
store (curpath)
diff --git a/graphics/circuit_macros/examples/quick.m4 b/graphics/circuit_macros/examples/quick.m4
index 7de2399601..1d849e2809 100644
--- a/graphics/circuit_macros/examples/quick.m4
+++ b/graphics/circuit_macros/examples/quick.m4
@@ -1,16 +1,14 @@
.PS # Pic input begins with .PS
cct_init # Read in macro definitions and set defaults
elen = 0.75 # Variables are allowed; default units are inches
-Origin: Here # Position names are capitalized
- source(up_ elen); llabel(-,v_s,+)
- resistor(right_ elen); rlabel(,R,)
+Vs: source(up_ elen); llabel(-,v_s,+) # Name and label the source
+ resistor(right_ elen); rlabel(,R,) # Semicolon and line end are equivalent
dot
{ # Save the current position and direction
- capacitor(down_ to (Here,Origin)) #(Here,Origin) = (Here.x,Origin.y)
- rlabel(+,v,-); llabel(,C,)
+ capacitor(down_ Vs.len); rlabel(+,v,-); llabel(,C,)
dot
} # Restore position and direction
line right_ elen*2/3
- inductor(down_ Here.y-Origin.y); rlabel(,L,); b_current(i)
- line to Origin
+ inductor(down_ Vs.len); rlabel(,L,); b_current(i)
+ line to (Vs,Here) # (Vs,Here) = (Vs.x,Here.y)
.PE # Pic input ends
diff --git a/graphics/circuit_macros/examples/relaycoil.m4 b/graphics/circuit_macros/examples/relaycoil.m4
index 7966a32294..9a30b21795 100644
--- a/graphics/circuit_macros/examples/relaycoil.m4
+++ b/graphics/circuit_macros/examples/relaycoil.m4
@@ -6,7 +6,8 @@ cct_init
{ relaycoil; S: `"\tt relaycoil"' at last [].s+(0,-16bp__)
{ "\sl V1" wid 10bp__ at last [].V1 rjust
"\sl V2" at last [].V2 ljust }
- K: relaycoil(NX) with .nw at last [].ne+(spc*4,0); "\tt (NX)" at (last [],S)
+ relaycoil(S) with .nw at last [].ne+(spc*2,0); "\tt (S)" at (last [],S)
+ K: relaycoil(NX) with .nw at last [].ne+(spc*3,0); "\tt (NX)" at (last [],S)
{ thinlines_
spline <- from K.A1 left 7bp__ then up 4bp__ left 4bp__; "\sl A1" rjust
arrow <- from K.A2 left 10bp__; "\sl A2" rjust
@@ -16,14 +17,15 @@ cct_init
spline <- from K.B3 right 7bp__ then down 4bp__ right 4bp__; "\sl B3" ljust
thicklines_
}
- relaycoil(AXSR) with .nw at last [].ne+(spc*5,0); "\tt (AXSR)" at (last [],S)
+ relaycoil(AXSR) with .nw at last [].ne+(spc*4,0); "\tt (AXSR)" at (last [],S)
{ "\sl V1" at last [].V1 rjust; "\sl V2" at last [].V2 rjust }
relaycoil(BXSR) with .nw at last [].ne+(spc*2,0); "\tt (BXSR)" at (last [],S)
{ "\sl V1" at last [].V1 ljust; "\sl V2" at last [].V2 ljust }
- relaycoil(SR) with .nw at last [].ne+(spc*3,0); "\tt (SR)" at (last [],S)
- relaycoil(SO) with .nw at last [].ne+(spc,0); "\tt (SO)" at (last [],S)
- relaycoil(SOR) with .nw at last [].ne+(spc,0); "\tt (SOR)" at (last [],S)
- relaycoil(PC) with .nw at last [].ne+(spc,0); "\tt (PC)" at (last [],S)
+ relaycoil(SR) with .nw at last [].ne+(spc*2,0); "\tt (SR)" at (last [],S)
+ spx = spc*3/4
+ relaycoil(SO) with .nw at last [].ne+(spx,0); "\tt (SO)" at (last [],S)
+ relaycoil(SOR) with .nw at last [].ne+(spx,0); "\tt (SOR)" at (last [],S)
+ relaycoil(PC) with .nw at last [].ne+(spx,0); "\tt (PC)" at (last [],S)
}
spc = dimen_/4
{
diff --git a/graphics/circuit_macros/examples/xfig/xfiglib.fig b/graphics/circuit_macros/examples/xfig/xfiglib.fig
index 91a4e52740..d67703acc6 100644
--- a/graphics/circuit_macros/examples/xfig/xfiglib.fig
+++ b/graphics/circuit_macros/examples/xfig/xfiglib.fig
@@ -75,7 +75,7 @@ Single
5 1 0 1 0 -1 0 -1 -1 0 0 0 0 0 1500 263 1500 300 1463 263 1500 225
-6
2 1 0 1 0 -1 0 -1 -1 0 0 0 0 0 0 2
- 1437 525 1438 225
+ 1437 525 1437 225
2 1 0 1 0 -1 0 -1 -1 0 0 0 0 0 0 2
1400 525 1400 225
2 1 0 1 0 -1 0 -1 -1 0 0 0 0 0 0 2
@@ -135,11 +135,11 @@ Single
6 3300 75 3450 675
2 1 0 1 0 -1 0 -1 -1 0 0 0 0 0 0 2
3375 675 3375 425
-6 3300 325 3450 425
+6 3300 300 3450 450
2 1 0 1 0 -1 0 -1 -1 0 0 0 0 0 0 2
3425 425 3325 425
2 1 0 1 0 -1 0 -1 -1 0 0 0 0 0 0 6
- 3375 400 3300 400 3300 350 3450 350 3450 400 3375 400
+ 3375 450 3300 450 3300 300 3450 300 3450 450 3375 450
2 1 0 1 0 -1 0 -1 -1 0 0 0 0 0 0 2
3425 325 3325 325
-6
@@ -297,9 +297,11 @@ Single
6 1650 1575 2250 2025
2 1 0 1 0 -1 0 -1 -1 0 0 0 0 0 0 2
1650 1800 1775 1800
+6 1775 1590 2125 2010
2 1 0 1 0 -1 0 -1 -1 0 0 0 0 0 0 4
1915 2010 1775 2010 1775 1590 1915 1590
5 1 0 1 0 -1 0 -1 -1 0 0 0 0 0 1915 1800 1915 1590 2125 1800 1915 2010
+-6
2 1 0 1 0 -1 0 -1 -1 0 0 0 0 0 0 2
2125 1800 2250 1800
-6
diff --git a/graphics/circuit_macros/gpic.m4 b/graphics/circuit_macros/gpic.m4
index 4a69dcd786..b53634ead2 100644
--- a/graphics/circuit_macros/gpic.m4
+++ b/graphics/circuit_macros/gpic.m4
@@ -1,7 +1,7 @@
divert(-1)
gpic.m4 Initialization for gpic.
-* Circuit_macros Version 10.5, copyright (c) 2024 J. D. Aplevich under *
+* Circuit_macros Version 10.6, copyright (c) 2024 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/lib3D.m4 b/graphics/circuit_macros/lib3D.m4
index a7f3d95ac2..7cc49756ec 100644
--- a/graphics/circuit_macros/lib3D.m4
+++ b/graphics/circuit_macros/lib3D.m4
@@ -3,7 +3,7 @@ lib3D.m4 Macros for rotation, projection, and other
operations on argument triples representing
3D vectors or colors.
-* Circuit_macros Version 10.5, copyright (c) 2024 J. D. Aplevich under *
+* Circuit_macros Version 10.6, copyright (c) 2024 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
@@ -244,26 +244,34 @@ define(`M4F_P',
`shadedball( rad,
highlight rad, highlight degrees,
- initial shade, final shade )
+ initial gray, final gray | (rf,gf,bf) )
The highlight is by default at
radius rad*3/5 and angle 110 deg
(or arg2 deg); if setlight has been
- invoked then the highlight is as
- given by its azimuth and elevation arguments'
+ invoked then its azimuth and elevation arguments
+ determine highlight position.
+ Arg5 can be a parenthesized rgb color '
define(`shadedball',`[ C: (0,0); r = ifelse(`$1',,circlerad,`$1')
ifdef(`setlight_',
`H: (project(sprod3D(r,light3D1,light3D2,light3D3)))
hr = distance(C,H)',
`hr = ifelse(`$2',,r*3/5,`$2'); ha = ifelse(`$3',,110,`$3')
H: (cosd(ha)*hr,sind(ha)*hr)')
- u0 = ifelse(`$4',,1,`$4'); uf = ifelse(`$5',,0.25,`$5')
+ rgbtohsv(ifelse(`$4',,`1,1,1',``$4',`$4',`$4''),h0,s0,v0)
+ pushdef(`rgbf',`ifelse(`$5',,`(0.25,0.25,0.25)pushdef(`oneshade',1)',
+ substr(`$5',0,1)substr(`$5',decr(len(`$5')),1),(),`$5'pushdef(`oneshade',0),
+ `(`$5',`$5',`$5')pushdef(`oneshade',1)')')
+ rgbtohsv(patsubst(rgbf,`^ *('\|`) *$'),hf,sf,vf)
rm = r+hr; n = int(rm/(linethick bp__))
- for i=1 to n-1 do { x = i/n*rm; u = u0+(i/n)^2*(uf-u0)
+ for i=1 to n-1 do { x = i/n*rm; ifelse(oneshade,1,
+ `hs = h0+(i/n)^2*(hf-h0); ss = s0+(i/n)^2*(sf-s0); vs = v0+(i/n)^2*(vf-v0)
+ hsvtorgb(hs,ss,vs,ri,gi,bi)',
+ `hsvtorgb(hf,(i/n)^2,vf,ri,gi,bi)')
if x <= (r-hr) then {
- circle rad x thick linethick*1.6 outlined rgbstring(u,u,u) at H } \
- else { arc cw thick linethick*ifpgf(2,1.6) outlined rgbstring(u,u,u) \
+ circle rad x thick linethick*1.6 outlined rgbstring(ri,gi,bi) at H } \
+ else { arc cw thick linethick*ifpgf(2,1.6) outlined rgbstring(ri,gi,bi) \
from Cintersect(H,x,C,r) to Cintersect(H,x,C,r,R) with .c at H } }
- circle rad r ifpgf(+linethick bp__/2) at C
- `$6']')
+ circle rad r ifpgf(+linethick bp__/2) outlined rgbstring(ri,gi,bi) at C
+ `$6' popdef(`rgbf',`oneshade') ]')
divert(0)dnl
diff --git a/graphics/circuit_macros/libSLD.m4 b/graphics/circuit_macros/libSLD.m4
index d13d57a51b..c2b29ddcf8 100644
--- a/graphics/circuit_macros/libSLD.m4
+++ b/graphics/circuit_macros/libSLD.m4
@@ -2,7 +2,7 @@ divert(-1)
libSLD.m4 Draft macros for single-line diagram elements
-* Circuit_macros Version 10.5, copyright (c) 2024 J. D. Aplevich under *
+* Circuit_macros Version 10.6, copyright (c) 2024 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/libcct.m4 b/graphics/circuit_macros/libcct.m4
index 463ff4515e..d46990f88a 100644
--- a/graphics/circuit_macros/libcct.m4
+++ b/graphics/circuit_macros/libcct.m4
@@ -1,7 +1,7 @@
divert(-1)
libcct.m4
-* Circuit_macros Version 10.5, copyright (c) 2024 J. D. Aplevich under *
+* Circuit_macros Version 10.6, copyright (c) 2024 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
@@ -206,132 +206,126 @@ define(`capacitor',
{[box invis ht_ m4cht wid_ m4cwd ] at rvec_(rp_len/2,0)}
line to rvec_(rp_len,0) invis ')')
- `resistor( linespec, cycles, chars, cycle wid)
- cycles: default 3
- chars : AC: complex element
- E: ebox
- ES: ebox with slash
- Q: offset
- H: squared
- N: IEEE (default)
- B: not burnable
- V: varistor variant
- R: to right of drawing direction
- arg4: cycle width (default dimen_/6)'
+ `resistor( linespec, cycles, chars, cycle wid )
+ chars: AC: complex element
+ E: ebox
+ ES: ebox with slash
+ F: FDNR (freq-dependent neg resistor)
+ Q: offset
+ H: squared
+ N: IEEE (default)
+ B: not burnable
+ V: varistor variant
+ R: to right of drawing direction'
define(`resistor',
-`define(`m4h',`ifelse(`$4',,`dimen_/6',`($4)')/4')dnl
- ifinstr(
- `$2',E, # This is obsolete but kept for now
+`eleminit_(`$1'); M4S: last line.start; M4E: last line.end
+ define(`m4type',ifelse(`$3',,N,`$3',R,N,`$3')`')dnl
+ define(`m4neg',sc_draw(`m4type',R,-))dnl
+ define(`m4cycles',`ifelse(`$2',,3,(`$2'))')dnl
+ define(`m4cyclewid',`ifelse(`$4',,(dimen_/6),`($4)')')dnl
+ define(`m4lgth',`(m4cycles*m4cyclewid)')dnl
+ ifelse(
+ `$2',E, # This is obsolete but kept for now
`ebox(`$1',shift(shift($@)))',
- `$3',ES,
- `ebox(`$1')
- {line from last line.c+vec_( m4lgth*0.3, m4wdth/2) \
- to last line.c+vec_(-m4lgth*0.3,-m4wdth/2)}
- line invis from 2nd last line.start to 2nd last line.end',
- `$3',E,
- `ebox(`$1')',
- `$3',V,
- `M4_varistor($@)',
- `$3',AC,
- `ebox(`$1')
- { ACsymbol(at last [],m4h*3.5,m4h*2,R)
- [] wid 2nd last [].wid ht 2nd last [].ht at 2nd last [] }',
- `define(`dna_',ifelse(`$3',,N,`$3',R,N,`$3')`')dnl
- eleminit_(`$1')
- sc_draw(`dna_',N,
- `define(`m4n',`ifelse(`$2',,6,`eval(2*($2))')')dnl Default resistor:
- define(`m4v',2)dnl
- if m4h*m4n*2 > rp_len then { eleminit_(to rvec_(m4h*m4n*2,0)) }
- tr_xy_init(last line.c, m4h, sc_draw(`dna_',R,-))dnl
- { line from last line.start to tr_xy(-m4n,0)\
- for_(2,m4n,2,
- `then to tr_xy(eval(2*m4x-3-m4n), m4v) \
- then to tr_xy(eval(2*m4x-1-m4n),-m4v) \')dnl
- then to tr_xy(m4n, 0) \
- then to last line.end
- [box invis ht_ m4h*m4v*2 wid_ m4h*m4n*2] at 2nd last line.c
- }')
- sc_draw(`dna_',Q,
- `define(`m4n',`ifelse(`$2',,6,`eval(2*($2))')')dnl
- define(`m4v',2)dnl
- if m4h*m4n*2 > rp_len then { eleminit_(to rvec_(m4h*m4n*2,0)) }
- tr_xy_init(last line.c, m4h, sc_draw(`dna_',R,-))dnl
- { line from last line.start to tr_xy(-m4n,0)\
- for_(2,m4n,2,
- `then to tr_xy(eval(2*m4x-2-m4n), m4v*2) \
- then to tr_xy(eval(2*m4x-m4n),0) \')dnl
- then to tr_xy(m4n, 0) \
- then to last line.end
- [box invis ht_ m4h*m4v*2 wid_ m4h*m4n*2] at 2nd last line.c + ta_xy(0,m4v)
- }')
- sc_draw(`dna_',H,
- `define(`m4n',`ifelse(`$2',,5,`eval(2*($2)-1)')')dnl
- define(`m4hh',`m4h*6/5')dnl
- define(`m4v',7/3)dnl
- if m4hh*m4n*2 > rp_len then { eleminit_(to rvec_(m4hh*m4n*2,0)) }
- tr_xy_init(last line.c, m4hh, sc_draw(`dna_',R,-))dnl
- { line from last line.start to tr_xy(-m4n,0)\
- for_(-m4n,m4n,2,
- `ifelse(eval(((m4x+m4n)/2)%2),0,
- `then to tr_xy(m4x,m4v) \
- then to tr_xy(eval(m4x+2),m4v) \',
- `then to tr_xy(m4x,0) \
- ifelse(m4x,m4n,,`then to tr_xy(eval(m4x+2),0)')\')')dnl
- then to tr_xy(m4n, 0) \
- then to last line.end
- [box invis ht_ m4hh*m4v wid_ m4hh*m4n*2] at 2nd last line.c+(0,m4hh*m4v/2)
- }')
- sc_draw(`dna_',B,
- `resistor(`$1',`$2',dna_,`$4'); M4LBC: last line.c
- m4lbwd = last [].wid_+lthick*2; m4lbht = last [].ht_+lthick*2
- [lbox(m4lbwd,m4lbht,thick 0.4)] with .c at M4LBC
- [lbox(m4lbwd+2bp__,m4lbht+2bp__,thick 0.4)] with .c at M4LBC ')
-#
- line invis from 2nd last line.start to 2nd last line.end ')')
-
-define(`M4_varistor',`eleminit_(`$1')
- define(`m4wd',`dimen_/2')dnl
- define(`m4ht',`dimen_/4')dnl
- {line to rvec_(max(0,rp_len/2-m4wd/2),0)
- {m4fshade(m4fill,line to rvec_(0,ifinstr(`$3',R,,-)m4ht/2) \
- then to rvec_(m4wd/2,0) \
- then to Here)}
- move to rvec_(m4wd,0)
- m4fshade(m4fill,line to rvec_(0,ifinstr(`$3',R,-)m4ht/2) \
- then to rvec_(-m4wd/2,0) \
- then to Here)
- line to rvec_(max(0,rp_len/2-m4wd/2),0) }
- {[box invis ht_ m4ht wid_ m4wd] at rvec_(rp_len/2,0)}
- line to rvec_(rp_len,0) invis ')
+ m4type,N,
+ `define(`m4nN',`eval(2*m4cycles)')dnl Default resistor:
+ define(`m4v',2)dnl
+ if m4lgth > rp_len then { eleminit_(to rvec_(m4lgth,0)) }
+ tr_xy_init(last line.c, m4cyclewid/4, m4neg)dnl
+ { line from last line.start to tr_xy(-m4nN,0)\
+ for_(2,m4nN,2,
+ `then to tr_xy(eval(2*m4x-3-m4nN), m4v) \
+ then to tr_xy(eval(2*m4x-1-m4nN),-m4v) \')dnl
+ then to tr_xy(m4nN, 0) \
+ then to last line.end # This could be replaced for obtuse directions:
+ [box invis ht_ m4cyclewid*m4v/2 wid_ m4cyclewid*m4nN/2] at 2nd last line.c
+ }',
+ m4type,Q,
+ `define(`m4nQ',`eval(2*m4cycles)') define(`m4v',2)dnl
+ if m4cyclewid*m4nQ/2 > rp_len then {
+ eleminit_(to rvec_(m4cyclewid*m4nQ/2,0)) }
+ tr_xy_init(last line.c, m4cyclewid/4, m4neg)dnl
+ { line from last line.start to tr_xy(-m4nQ,0)\
+ for_(2,m4nQ,2,
+ `then to tr_xy(eval(2*m4x-2-m4nQ), m4v*2) \
+ then to tr_xy(eval(2*m4x-m4nQ),0) \')dnl
+ then to tr_xy(m4nQ, 0) \
+ then to last line.end
+ [box invis ht_ m4cyclewid*m4v/2 wid_ m4cyclewid*m4nQ/2] \
+ at 2nd last line.c + ta_xy(0,m4v)
+ }',
+ m4type,ES,
+ `ebox(`$1',m4lgth,dimen_/5)
+ {line from last line.c+vec_( dimen_/2*0.3, dimen_/5/2) \
+ to last line.c+vec_(-dimen_/2*0.3,-dimen_/5/2)}',
+ m4type,F,
+ `define(`m4cht',`dimen_/3') define(`m4cwd',`m4cht*0.9')dnl
+ {line to rvec_(rp_len/2-m4cwd/2,0)
+ {[for i=0 to m4cycles do {line from vec_(i*m4cwd/m4cycles,0) \
+ to vec_(i*m4cwd/m4cycles,m4cht)}] at rvec_(m4cwd/2,0)}
+ line from rvec_(m4cwd,0) to rvec_(rp_len/2+m4cwd/2,0)}',
+ m4type,H,
+ `define(`m4nH',`eval(2*m4cycles-1)')dnl
+ define(`m4hh',`m4cyclewid*6/5/4') define(`m4v',7/3)dnl
+ if m4hh*m4nH/2 > rp_len then { eleminit_(to rvec_(m4hh*m4nH/2,0)) }
+ tr_xy_init(last line.c, m4hh, m4neg)dnl
+ { line from last line.start to tr_xy(-m4nH,0)\
+ for_(-m4nH,m4nH,2,
+ `ifelse(eval(((m4x+m4nH)/2)%2),0,
+ `then to tr_xy(m4x,m4v) \
+ then to tr_xy(eval(m4x+2),m4v) \',
+ `then to tr_xy(m4x,0) \
+ ifelse(m4x,m4nH,,`then to tr_xy(eval(m4x+2),0)')\')')dnl
+ then to last line.end
+ [move from tr_xy(-m4nH,0) to tr_xy(m4nH,0) \
+ then to tr_xy(m4nH,m4v) then to tr_xy(-m4nH,m4v)] \
+ at 2nd last line.c+vec_(0,m4neg`'m4hh*m4v/2) }',
+ m4type,V,
+ `define(`m4ht',`(m4lgth/2)')dnl
+ {line to rvec_(max(0,rp_len/2-m4lgth/2),0)
+ {[m4fshade(m4fill,line to rvec_(0,ifinstr(`$3',R,,-)m4ht/2) \
+ then to rvec_(m4lgth,ifinstr(`$3',R,-)m4ht/2) \
+ then to rvec_(m4lgth,0) then to Here)] at rvec_(m4lgth/2,0) }
+ line from rvec_(m4lgth,0) to rvec_(max(0,rp_len/2+m4lgth/2),0) } ',
+ m4type,B,
+ `resistor(`$1',`$2',sc_draw(`m4type',B),`$4'); M4LBC: last line.c
+ m4lbwd = last [].wid_+lthick*2; m4lbht = last [].ht_+lthick*2
+ [lbox(m4lbwd,m4lbht,thick 0.4)] with .c at M4LBC
+ [lbox(m4lbwd+lthick*4,m4lbht+lthick*4,thick linethick/2)] with .c at M4LBC',
+ m4type,AC,
+ `ebox(`$1')
+ { ACsymbol(at last [],m4cyclewid*3.5/4,m4cyclewid/2,R)
+ [] wid 2nd last [].wid ht 2nd last [].ht at 2nd last [] } ')
+ ifelse(m4type,E,`ebox(`$1')',
+ `line invis from M4S to M4E') ')
`potentiometer(linespec, cycles,
fractional pos, length, fractional pos, length,...)
Resistor in a block, tapped at fractional positions
with specified (possibly negative) arrow lengths.
- Taps are labelled T1, T2, ...
- Uses side effects of resistor macro'
+ Taps are labelled T1, T2, ...'
define(`potentiometer',`[R: resistor(`$1',`$2')
- Start: R.start; End: R.end; C: 0.5 between Start and End
+ define(`m4n',`ifelse(`$2',,3,(`$2'))')dnl
+ Start: R.start; End: R.end; C: R.c
m4pot_arrows(1,ifelse(`$3',,0.5,`$3'),ifelse(`$4',,`dimen_*5/12',`$4'),
- shift(shift(shift(shift($@)))))] ')
-define(`m4pot_arrows',`ifelse(`$2',,,`
- x = (`$2')*2*m4n+1; x = (int(x)%4)+(x-int(x))
- M4_Tmp: `$2' between last [].c-vec_(prod_(m4n,m4h),0) \
- and last [].c+vec_(prod_(m4n,m4h),0)
- T`$1': M4_Tmp + vec_(0,ifelse(`$3',,`dimen_*5/12',`$3'))
- { arrow from T`$1' to M4_Tmp+vec_(0,m4h*m4v*(1-(x-2)*sign(x-2))) }
+ shift(shift(shift(shift($@)))))] ')
+define(`m4pot_arrows',`ifelse(`$2',,,`FrP: C+vec_((`$2'-0.5)*m4n*dimen_/6,0)
+ T`$1': FrP + vec_(0,ifelse(`$3',,`dimen_*5/12',`$3'))
+ x = (`$2')*4*m4n+1; x = (int(x)%4)+(x-int(x))
+ {arrow from T`$1' to FrP+vec_(0,dimen_/12*(1-(x-2)*sign(x-2)))}
m4pot_arrows(incr($1),shift(shift(shift($@))))')')
`KelvinR(cycles,[R],cycle wid)
IEEE resistor with kelvin taps added
- if arg1 is blank then a [] block is used'
+ if arg1 is blank then a [] block is used
+ Uses m4nN and tr_xy from resistor'
define(`KelvinR',`[
- M4R: resistor(,`$1',,`$3') define(`m4kRm',`ifinstr(`$2',R,-,+)')
- { dot(at tr_xy(-m4n,0),lthick)
- line to tr_xy(-m4n-1,m4kRm`'2) then to tr_xy(-m4n-1,m4kRm`'4)
+ M4R: resistor(,`$1',,`$3') define(`m4KRm',`ifinstr(`$2',R,-,+)')
+ { dot(at tr_xy(-m4nN,0),lthick)
+ line to tr_xy(-m4nN-1,m4KRm`'2) then to tr_xy(-m4nN-1,m4KRm`'4)
T1: Here
- dot(at tr_xy(m4n,0),lthick)
- line to tr_xy(m4n+1,m4kRm`'2) then to tr_xy(m4n+1,m4kRm`'4)
+ dot(at tr_xy(m4nN,0),lthick)
+ line to tr_xy(m4nN+1,m4KRm`'2) then to tr_xy(m4nN+1,m4KRm`'4)
T2: Here }
Start: M4R.start; End: M4R.end; C: M4R.c
`$4' ]') ')
@@ -375,20 +369,21 @@ define(`FTcap',`[ define(`FTctyp',`ifelse(`$1',,A,`$1')')dnl
`addtaps([ahead | type=ahead;name=Name],
fractional pos, length, fractional pos, length,...)
+ ahead = blank or one of . - <- -> <->
Tap names are Tap1, Tap2, ... or
- Name1, Name2, ... if specified
- ahead = blank or one of . - <- -> <-> '
+ Name1, Name2, ... if specified'
define(`addtaps',`
ifelse(`$2',,`undefine(`m4tap_x')popdef(`m4type',`m4name')',
`ifdef(`m4tap_x',`define(`m4tap_x',incr(m4tap_x))',
- `define(`m4tap_x',1) M4tap_w: last [].w_; M4tap_e: last [].e_
+ `define(`m4tap_x',1) dnl 1st time through
+ M4tap_w: last [].w_; M4tap_e: last [].e_
pushkeys_(`$1',type::N; name:Tap:N)dnl
- ifelse(m4type,,`ifinstr(`$1',=,,`define(`m4type',`$1')')')dnl
+ ifelse(m4type,,`ifinstr(`$1',=,,`poppushdef(`m4type',`$1')')')dnl
M4tap_xy: (last [].wid_,last [].ht_)')
{define(`m4tapl',`ifelse(`$3',,`dimen_/3',`$3')')dnl
move to (`$2' between M4tap_w and M4tap_e) + vec_(0,sign(m4tapl)*M4tap_xy.y/2)
- ifinstr(m4type,.,`{dot(,lthick)}define(`m4type')');dnl
- line ifelse(m4type,-,,m4type) to rvec_(0,m4tapl)
+ ifinstr(m4type,.,`{dot(,lthick)}');dnl
+ line ifelse(m4type,.,,m4type,-,,m4type) to rvec_(0,m4tapl)
m4name`'m4tap_x: Here }
addtaps(,shift(shift(shift($@))))')')
@@ -565,20 +560,30 @@ define(`transformer', `[ P1: Here define(`m4drt',m4_dir_)
define(`m4trdot',`{`$6'dot(at (0.5 between `$1' and `$2') \
+vec_(`$3'(`$4'+m4hlw)/2,`$5'dimen_/16), dotrad_/2)}')
- `delay( linespec, width, attributes )'
+ `delay( linespec, width, attributes or keys )
+ keys:
+ wdth=expr;
+ lgth=expr;
+ type=A|S;
+ body=attributes; e.g. shaded '
define(`delay',`eleminit_(`$1')
- define(`m4ht',`ifelse(`$2',,`delay_rad_*2',`($2)')')dnl
- define(`m4wd',`m4ht*5/6')dnl
- { line to rvec_(rp_len/2-m4wd/2,0)
- { line from rvec_(m4ht/3,-m4ht/2) \
- to rvec_(0,-m4ht/2)\
- then to rvec_(0,m4ht/2) \
- then to rvec_(m4ht/3,m4ht/2) `$3'
- arc cw from Here to rvec_(0,-m4ht) with .c at rvec_(0,-m4ht/2) `$3' }
- move to rvec_(m4wd,0)
- line to rvec_(rp_len/2-m4wd/2,0) }
- { [box invis ht_ m4ht wid_ m4wd ] at rvec_(rp_len/2,0)}
- line to rvec_(rp_len,0) invis ')
+ pushkeys_(`$3',`wdth:ifelse(`$2',,delay_rad_*2,`$2'); lgth:m4`'wdth*5/6;
+ type:A:N; body::N;') dnl
+ ifinstr(`$3',=,,`ifelse(m4body,,`poppushdef(`m4body',`$3')')')dnl
+ ifelse(m4type,S,`popdef(`m4lgth',`m4wdth')dnl
+ pushkeys_(`$3',`lgth:dimen_*6/5; wdth:m4`'lgth/4')')dnl
+ { line to rvec_(rp_len/2-m4lgth/2,0)
+ {ifelse(m4type,A,`[ W: Here
+ line from rvec_(m4wdth/3,-m4wdth/2) to rvec_(0,-m4wdth/2) \
+ then to rvec_(0,m4wdth/2) then to rvec_(m4wdth/3,m4wdth/2) m4body
+ arc cw to rvec_(0,-m4wdth) with .c at rvec_(0,-m4wdth/2) m4body ]',
+ m4type,S,
+ `rotbox(m4lgth,m4wdth,m4body,r=m4wdth/2,
+ {rotbox(m4wdth/4,m4wdth,) with .W at rvec_(-m4lgth+m4wdth/2,0)})')\
+ with .W at Here }
+ line from rvec_(m4lgth,0) to rvec_(rp_len/2+m4lgth/2,0) }
+ line to rvec_(rp_len,0) invis dnl
+ popdef(`m4wd',`m4wdth',`m4type',`m4body') ')
`xtal( linespec, keys ) (2-terminal crystal)
keys:
@@ -594,15 +599,15 @@ define(`delay',`eleminit_(`$1')
outer= outer circle attributes; (dotted ...)
inner= inner circle attributes; (shaded ...)'
define(`xtal',`eleminit_(`$1') pushkey_(`$2',type,N,N)
- ifelse(m4type,R,`pushkeys_(`$2',`outerdiam:dimen_/3; innerdiam:m4outerdiam*0.4;
- outer::N; inner::N') define(`m4wd',m4outerdiam) ',
+ ifelse(m4type,R,`pushkeys_(`$2',`outerdia:dimen_/3;innerdia:m4`'outerdia*0.4;
+ outer::N; inner::N;') define(`m4wd',m4outerdia) ',
`pushkeys_(`$2',`wdth:dimen_/4; lgth:m4wdth*2/3; bxwd:m4lgth/2; box::N;')dnl
define(`m4wd',m4lgth) ')
{ line to rvec_(rp_len/2-m4wd/2,0)
{[ Orig: Here; ifelse(m4type,R,
- `{circle diam m4outerdiam at rvec_(m4outerdiam/2,0) m4outer}
- {circle diam m4innerdiam at rvec_(m4outerdiam/2,0) m4inner}
- popdef(`m4type',`m4outerdiam',`m4innerdiam',`m4outer',`m4inner') ',
+ `{circle diam m4outerdia at rvec_(m4outerdia/2,0) m4outer}
+ {circle diam m4innerdia at rvec_(m4outerdia/2,0) m4inner}
+ popdef(`m4type',`m4outerdia',`m4innerdia',`m4outer',`m4inner') ',
`{line from rvec_(0,-m4wdth/3) \
to rvec_(0,m4wdth/3)}
{ move to rvec_(m4lgth/2-m4bxwd/2,0)
@@ -631,7 +636,8 @@ define(`xtal',`eleminit_(`$1') pushkey_(`$2',type,N,N)
ii = double arrowhead current source;
AC = AC source; B = bulb; F = fluorescent; G =
generator; H = step function; L = lamp;
- N = neon; P = pulse; Q = charge; R = ramp; r = right
+ N = neon; NA = neon 2; NB = neon 3;
+ P = pulse; Q = charge; R = ramp; r = right
orientation; S = sinusoid; SC = quarter arc; SE =
arc; T = triangle; U = square-wave; X = interior X;
other = custom interior label or waveform;
@@ -691,14 +697,28 @@ define(`source',`ifelse(`$4',R,
then to rvec_(m4h/2,0)
round
line to rvec_(m4h*3/4,0)}',
+ `$2',NA,`{ line from rvec_(-m4h,0) \
+ to rvec_(-m4h/5,0)
+ { line to rvec_(0,m4h) with .c at Here } }
+ { line from rvec_(m4h,0) \
+ to rvec_(m4h/5,0)
+ { line to rvec_(0,m4h) with .c at Here } }
+ { dot(at rvec_(-m4h/2,-m4h/2)) } ',
+ `$2',NB,`{ line from rvec_(-m4h,0) \
+ to rvec_(-m4h/2,0)
+ { line to rvec_(0,m4h) with .c at Here } }
+ { line from rvec_(m4h,0) \
+ to rvec_(m4h/2,0)
+ { dot(,,1) } }
+ { dot(at rvec_(0,-m4h/2)) } ',
`$2',N,`{ {line from rvec_(-m4h,0) \
to rvec_(-m4h/2,0)}
for_(70,250,180,
`{ line from rvec_(Rect_(m4h/2,-m4x)) \
- to rvec_(Rect_(m4h/2,m4x))
+ to rvec_(Rect_(m4h/2,m4x))
round }
{ arc cw from rvec_(Rect_(m4h/2,m4x)) \
- to rvec_(Rect_(m4h/2,-m4x)) \
+ to rvec_(Rect_(m4h/2,-m4x)) \
with .c at Here
round }')
{line from rvec_(m4h/2,0) \
@@ -834,6 +854,18 @@ define(`consource',`ifelse(`$3',R,
{[box invis ht_ 2*csdim_ wid_ 2*csdim_] at rvec_(rp_len/2,0)}
line to rvec_(rp_len,0) invis ')')
+ `geiger( linespec, r, diameter, R, attributes, body name)
+ Arguments as for source except arg2 r = right orientation '
+define(`geiger',`pushdef(`m4h',ifelse(`$3',,`sourcerad_',`($3)/2'))dnl
+ pushdef(`m4R',`ifelse(`$4',R,+180)')dnl
+ source(`$1',F,shift(shift($@)))
+ {dot(at rvec_(-rp_len/2,0)+vec_(Rect_(m4h*2/3,ifelse(`$2',r,,-)110 m4R)))}
+ {"iflatex($+$,+)" at rvec_(-rp_len/2,0) \
+ +vec_(Rect_(m4h*3/2,ifelse(`$2',r,,-)30 m4R))}
+ {em_arrows(ND,rp_ang*rtod_ ifelse(`$2',r,+,-)135 m4R,m4h) with .Head \
+ at rvec_(-rp_len/2,0)+vec_(Rect_(m4h*5/4,ifelse(`$2',r,-)45 m4R))} dnl
+ popdef(`m4h',`m4R') ')
+
`Proxim(size, U|D|L|R|degrees, attributes)
Proximity symbol
Arg2 default: current direction'
@@ -888,7 +920,7 @@ define(`battery',`ifelse(`$3',R,
`ebox(linespec, length, ht, greyvalue,
box attributes)
- Length and ht (of the elemet) are relative to
+ Length and ht (of the element) are relative to
the direction of linespec'
Alternative:
`ebox(linespec, keys)
@@ -902,23 +934,23 @@ define(`ebox',`eleminit_(`$1')
line to rvec_(max(0,rp_len/2-m4lgth/2),0); M4ebC: rvec_(m4lgth/2,0)
lbox(m4lgth,m4wdth,m4box)
ifelse(m4text,,,`{m4text at M4ebC};')',
- `define(`m4lgth',`ifelse(`$2',,dimen_/2,`$2')')dnl
- define(`m4wdth',`ifelse(`$3',,dimen_/5,`$3')')dnl
+ `pushdef(`m4lgth',`ifelse(`$2',,dimen_/2,`$2')')dnl
+ pushdef(`m4wdth',`ifelse(`$3',,dimen_/5,`$3')')dnl
line to rvec_(max(0,rp_len/2-m4lgth/2),0)
ifelse(`$4',,`lbox(m4lgth,m4wdth,`$5')',
`m4fshade(`$4',lbox(m4lgth,m4wdth,`$5'))')')
line to rvec_(max(0,rp_len/2-m4lgth/2),0)}
{[ box invis ht_ m4wdth wid_ m4lgth ] at rvec_(rp_len/2,0)}
- ifinstr(`$2',=,`popdef(`m4lgth',`m4wdth',`m4text',`m4box')')dnl
+ popdef(`m4wdth',`m4lgth')ifinstr(`$2',=,`popdef(`m4text',`m4box')')dnl
line to rvec_(rp_len,0) invis ')
`fuse( linespec, chars, wid, ht, attributes )
chars dA|B|C|D|S|SB|HB|HC or dA (=D)'
define(`fuse',`eleminit_(`$1')
- define(`m4fusetype',`ifelse(`$2',,A,`$2',D,dA,`$2')')dnl
- define(`m4ht',ifelse(`$4',,`dimen_/5'ifinstr(`$2',H,*5/3),`($4)'))dnl
- define(`m4d',ifinstr(`$2',H,`m4ht/5',0))dnl
- define(`m4wd',ifelse(`$3',,`m4ht*2',`($3)'))dnl
+ pushdef(`m4fusetype',`ifelse(`$2',,A,`$2',D,dA,`$2')')dnl
+ pushdef(`m4ht',ifelse(`$4',,`dimen_/5'ifinstr(`$2',H,*5/3),`($4)'))dnl
+ pushdef(`m4d',ifinstr(`$2',H,`m4ht/5',0))dnl
+ pushdef(`m4wd',ifelse(`$3',,`m4ht*2',`($3)'))dnl
{line to rvec_(max(0,rp_len/2-m4wd/2),0)
sc_draw(`m4fusetype',HB,
`{move to rvec_(m4d,0); lbox(m4wd-2*m4d,m4ht-2*m4d)}
@@ -959,6 +991,7 @@ define(`fuse',`eleminit_(`$1')
move to rvec_(m4wd,0); line to rvec_(max(0,rp_len/2-m4wd/2),0)')
}
{[box invis ht_ m4ht wid_ m4wd] at rvec_(rp_len/2,0)}
+ popdef(`m4wd',`m4d',`m4ht',`m4fusetype')dnl
line to rvec_(rp_len,0) invis ')
`arrester( linespec, [G|E|S][D[L|R]],
@@ -1113,7 +1146,7 @@ define(`heater',`ifinstr(`$5',E,
cycles=expr;
line=attributes'
define(`heatere',
-`pushkeys_(`$2',`lgth:dimen_/2; wdth:m4lgth*2/5; cycles:3; line::N;')dnl
+`pushkeys_(`$2',`lgth:dimen_/2; wdth:m4`'lgth*2/5; cycles:3; line::N;')dnl
ifinstr(`$3',R,`pushdef(`m4ng',-)pushdef(`m4cw')pushdef(`m4ccw',cw)',
`pushdef(`m4ng') pushdef(`m4cw',cw)pushdef(`m4ccw')')dnl
eleminit_(ifinstr(`$3',T,m4wdth,`$1'))
@@ -1738,16 +1771,16 @@ define(`amp',`eleminit_(`$1') define(`m4wd',`ifelse(`$2',,`dimen_',`($2)')')dnl
`integrator( linespec,size,attributes )'
define(`integrator',`eleminit_(`$1')
define(`m4wd',`ifelse(`$2',,`dimen_',`($2)')')dnl
- {line from rvec_(m4wd/4,m4wd/2) \
+ {[ In: Here
+ {line from rvec_(m4wd/4,m4wd/2) \
to rvec_(0,m4wd/2) \
then to rvec_(0,-m4wd/2) \
then to rvec_(m4wd/4,-m4wd/2) `$3' }
- {line from rvec_(m4wd*5/4,0) \
- to rvec_(m4wd/4,m4wd/2) \
- then to rvec_(m4wd/4,-m4wd/2) \
- then to rvec_(m4wd*5/4,0) `$3' }
+ line from rvec_(m4wd*5/4,0) \
+ to rvec_(m4wd/4,m4wd/2) \
+ then to rvec_(m4wd/4,-m4wd/2) \
+ then to rvec_(m4wd*5/4,0) `$3' ; Out: Here ] with .In at Here}
{line from rvec_(m4wd*5/4,0) to rvec_(max(rp_len,m4wd*5/4),0) }
- { [box invis ht_ m4wd wid_ m4wd*5/4] at rvec_(m4wd*5/8,0) }
line to rvec_(max(rp_len,m4wd*5/4),0) invis ')
`opamp(linespec,
@@ -1765,7 +1798,7 @@ define(`integrator',`eleminit_(`$1')
T: truncated point '
define(`opamp',
`[ pushdef(`m4dlgth',`ifinstr(`$4',=,dimen_,ifelse(`$4',,dimen_,`($4)'))')dnl
- pushkeys_(`$4',body::N; lgth:m4dlgth; wdth:m4lgth;)dnl
+ pushkeys_(`$4',`body::N; lgth:m4dlgth; wdth:m4`'lgth;')dnl
pushdef(`dna_',`$5')dnl
eleminit_(`$1',max(elen_-m4lgth/4,m4lgth))
W: Here
@@ -2224,23 +2257,23 @@ define(`sbs',`eleminit_(`$1'); M4_sbsS: last line.start; M4_sbsE: last line.end
`tgate( linespec, [B][R|L] ) Transmission gate
B= box form
L= left orientation'
-define(`tgate',`[ eleminit_(`$1') define(`m4tgm',ifinstr(`$2',L,-))
+define(`tgate',`[ eleminit_(`$1') pushdef(`m4tgm',ifinstr(`$2',L,-))
A: last line.start
B: last line.end
C: last line.center
ifinstr(`$2',B,
- `ebox(from A to B)
- Gb: C+vec_(0,m4tgm`'m4wdth/2)
+ `ebox(from A to B,,dimen_/5)
+ Gb: C+vec_(0,m4tgm`'dimen_/5/2)
L1: line from 2 between Gb and C to 4 between Gb and C',
- `m4gen_d(uLAQuR)
+ `m4gen_d(uLAQuR) pushdef(`m4dv',`dimen_/6')pushdef(`m4dh',sqrt(3)*m4dv/2)
Circle: circle thick max(4pt__,linethick/2) rad m4dh/4 \
at C+vec_(0,m4tgm`'m4dh/4*4/3)
L2: line from last circle+vec_(0,m4tgm`'m4dh/4) \
to C+vec_(0,m4tgm`'m4dh*3/2)
Gb: Here
- L3: line from C to C-vec_(0,m4tgm`'m4dh) ')
+ L3: line from C to C-vec_(0,m4tgm`'m4dh) popdef(`m4dv',`m4dh')')
G: Here
- `$3']')
+ `$3' popdef(`m4tgm')]')
`ptrans( linespec, [R|L] ) Pass transistor
L= left orientation'
define(`ptrans',`[ eleminit_(`$1') define(`m4ptm',ifinstr(`$2',L,-))
@@ -2739,7 +2772,9 @@ define(`$1',substr($1,0,m4I_)`'substr($1,m4t))')')dnl
sc_draw(dna string, chars, iftrue, iffalse)'
define(`sc_draw',`m4_dna(`$1',`$2')ifelse(m4I_,-1,`$4',`$3')')
- `Element labels at the start, centre, and end
+ `(r|l|c)label( label, label, label,
+ relative position, block name )
+ Element labels at the start, centre, and end
of the last [] block (or a named [] block)
in the current direction. Labels are
spaced and treated as math, but copied
@@ -2799,16 +2834,16 @@ define(`dlabel',`ifsvg(`changecom(,)')dnl
ifinstr(`$6',L,ljust,`$6',R,rjust) dnl
ifinstr(`$6',A,above,`$6',B,below) };') ifsvg(`changecom(`#',)')')
- `eleminit_( linespec, default length )
- compute element direction and length.
- Eleminit_ defines the position, length,
- and angle of two-terminal elements. It calls
- rpoint_ with its linespec or circuit-element
- default. The rpoint_ macro draws the invisible
- line determined by its argument, calculates the
- length and angle, and gives the angle to the
- point_ macro to set the rotation parameters used
- by vec_ and rvec_.'
+ `eleminit_( linespec, default length )
+ compute element direction and length.
+ eleminit_ defines the position, length,
+ and angle of two-terminal elements. It calls
+ rpoint_ with its linespec or circuit-element
+ default. The rpoint_ macro draws the invisible
+ line determined by its argument, calculates the
+ length and angle, and gives the angle to the
+ point_ macro to set the rotation parameters used
+ by vec_ and rvec_.'
define(`eleminit_',
`rpoint_(ifelse(`$1',,`to rvec_(ifelse(`$2',,`elen_',`$2'),0)',`$1'))')
@@ -2866,48 +2901,6 @@ define(`parallel_',
] with .Start at Here; move to last [].End
')
-ifelse(0,1,` dnl ignore the following two macro defs ##################
- `par_( element, element, separation )
- Parallel combination of two branches that have
- the same direction and length. The
- branch arguments must be quoted, e.g.
- par_(`resistor',`capacitor',dimen_)'
-` ***WARNING: this macro is considered obsolete'
-define(`par_',`[Start: Here; r = ifelse(`$3',,`dimen_',`$3')
- { move to Start + vec_(0,r/2); $1 }
- line from Start + vec_(0,r/2) \
- to Start + vec_(0,-r/2) ; $2
- line to rvec_(0,r)
- End: last line.c; `$4'] with .Start at Here
- move to last [].End')
-
- `gpar_( element, element, separation )
- Parallel combination of two branches that have
- the same direction, e.g.:
- down_; gpar_(
- resistor;llabel(,R_1);resistor;llabel(,R_2),
- capacitor;rlabel(,C))
- This macro trades simplicity for generality
- and robustness to gpic'
-` ***WARNING: this macro is considered obsolete'
-define(`gpar_',
- `[ M4_B1: Here; `$1'; M4_E1: Here
- M4_C: 0.5 between M4_B1 and M4_E1; eleminit_(from M4_B1 to M4_E1)
- E2:[ M4_B: Here; `$2'; M4_E: Here; `$4'] \
- with .c at M4_C + (rect_(ifelse(`$3',,`dimen_',`$3'),rp_ang-pi_/2))
- M4_B2: E2.M4_B; M4_E2: E2.M4_E
- s = distance(M4_B2,M4_E2)
- if rp_len*s == 0 then { r = 1 } else { r = (1+max(rp_len/s, s/rp_len))/2 }
- if rp_len < s then { Tmp:M4_B2; M4_B2:M4_B1; M4_B1:Tmp
- Tmp:M4_E2; M4_E2:M4_E1; M4_E1:Tmp }
- line from M4_B2 to r between M4_E2 and M4_B2
- Start: 0.5 between Here and M4_B1; line to M4_B1
- line from M4_E2 to r between M4_B2 and M4_E2
- End: 0.5 between Here and M4_E1
- C: 0.5 between Start and End; line to M4_E1 ] with .Start at Here
- move to last [].End ')
-') dnl end of ignore ########################
-
define(`m4sepdefault',`dimen_') `Default separation in the parallel_ macro'
define(`m4lendefault',`dimen_') `Default length in the series_ macro'
@@ -3180,6 +3173,7 @@ define(`contact',`[ dnl
SO slow operating
SOR slow operating and release
SR slow release
+ S diagonal slash
HS high speed
NAC unaffected by AC current
AC AC current
@@ -3230,6 +3224,8 @@ define(`relaycoil',`[ ifelse(`$4',,,`setdir_(`$4')')
sc_draw(`rcdna_',HS,
`{ move to rvec_(0,-(m4ht*5/8)); lbox(m4wd,m4ht/4) }
{ move to rvec_(m4wd/2,-(m4ht/2)); line to rvec_(0,-m4ht/4)} ')
+ sc_draw(`rcdna_',S,
+ `{ line from rvec_(0,m4ht/2) to rvec_(m4wd,-m4ht/2)}')
sc_draw(`rcdna_',NAC,
`{ m4fshade(0,lbox(m4wd/4,m4ht)) }
{ move to rvec_(m4wd*3/4,0); m4fshade(0,lbox(m4wd/4,m4ht)) } ')
@@ -3549,8 +3545,8 @@ define(`nport',`[Box: box `$1'
move to Box.nw+(0,-d); down_
m4portpins(-plg,d*r,d,W,`$8')
# `North side'
- ifelse(`$3',,,`define(`m4n',`($3)')
- d = Box.wid/(m4n*(r+1)+1)
+ define(`m4n',`($3)')
+ ifelse(`$3',,,`d = Box.wid/(m4n*(r+1)+1)
move to Box.nw+(d,0); right_
m4portpins(plg,d*r,d,N,`$8')')
# `East side'
@@ -3559,11 +3555,11 @@ define(`nport',`[Box: box `$1'
move to Box.ne+(0,-d); down_
m4portpins(plg,d*r,d,E,`$8')
# `South side'
- ifelse(`$5',,,`define(`m4n',`($5)')
- d = Box.wid/(m4n*(r+1)+1)
+ define(`m4n',`($5)')
+ ifelse(`$5',,,`d = Box.wid/(m4n*(r+1)+1)
move to Box.sw+(d,0); right_
m4portpins(-plg,d*r,d,S,`$8')')
- `$9']')
+ `$9' undefine(`m4n')]')
define(`m4portpins',`for_(1,m4n,1,
`{ if (`$1' != 0) then { line to rvec_(0,`$1') }
`$4'`'m4x`'a: ifelse(xtract(`$5',N),N,Here,`dot') }
@@ -3599,8 +3595,8 @@ define(`gyrator',
define(`proximity',`consource(`$1',P)')
`nullator(linespec, wid, ht, attributes)'
define(`nullator',`eleminit_(`$1')
- define(`m4wd',ifelse(`$2',,`dimen_/2',`($2)'))dnl
- define(`m4ht',ifelse(`$3',,`dimen_/4',`($3)'))dnl
+ pushdef(`m4wd',ifelse(`$2',,`dimen_/2',`($2)'))dnl
+ pushdef(`m4ht',ifelse(`$3',,`dimen_/4',`($3)'))dnl
{line to rvec_(max(0,rp_len/2-m4wd/2),0)
move to rvec_(m4wd/2,0)
{ spline ifdpic(0.58) from rvec_(ifdpic(0,-m4wd/20),m4ht/2) \
@@ -3617,11 +3613,11 @@ define(`nullator',`eleminit_(`$1')
line from rvec_(m4wd/2,0) \
to rvec_(max(0,rp_len/2),0)}
{[box invis ht_ m4ht wid_ m4wd] at rvec_(rp_len/2,0)}
- line to rvec_(rp_len,0) invis ')
+ line to rvec_(rp_len,0) invis popdef(`m4wd',`m4ht') ')
`norator(linespec, wid, ht, attributes)'
define(`norator',`eleminit_(`$1')
- define(`m4wd',ifelse(`$2',,`dimen_/2',`($2)'))dnl
- define(`m4ht',ifelse(`$3',,`dimen_/4',`($3)'))dnl
+ pushdef(`m4wd',ifelse(`$2',,`dimen_/2',`($2)'))dnl
+ pushdef(`m4ht',ifelse(`$3',,`dimen_/4',`($3)'))dnl
{line to rvec_(max(0,rp_len/2-m4wd/2),0)
move to rvec_(m4wd/2,0)
for i=-1 to 1 by 2 do { {
@@ -3633,7 +3629,7 @@ define(`norator',`eleminit_(`$1')
line from rvec_(m4wd/2,0) \
to rvec_(max(0,rp_len/2),0)}
{[box invis ht_ m4ht wid_ m4wd] at rvec_(rp_len/2,0)}
- line to rvec_(rp_len,0) invis ')
+ line to rvec_(rp_len,0) invis popdef(`m4wd',`m4ht') ')
`ACsymbol(at position, len, ht, [n:][A]U|D|L|R|degrees,
attributes)
@@ -3736,8 +3732,8 @@ define(`nterm',`[Box: box ifelse(`$1',,wid dimen_ ht dimen_*2/3,`$1')
move to Box.nw+(0,-d); down_
m4termpins(-plg,d,W,`$7')
# `North side'
- ifelse(`$3',,,`define(`m4n',`($3)')
- d = Box.wid/(m4n+1)
+ define(`m4n',`($3)') ifelse(`$3',,,
+ `d = Box.wid/(m4n+1)
move to Box.nw+(d,0); right_
m4termpins(plg,d,N,`$7')')
# `East side'
@@ -3750,7 +3746,7 @@ define(`nterm',`[Box: box ifelse(`$1',,wid dimen_ ht dimen_*2/3,`$1')
d = Box.wid/(m4n+1)
move to Box.sw+(d,0); right_
m4termpins(-plg,d,S,`$7')
- `$8']')
+ `$8' undefine(`m4n')]')
define(`m4termpins',`for_(1,m4n,1,
`{ if (`$1' != 0) then { line to rvec_(0,`$1') }
`$3'`'m4x: ifelse(xtract(`$4',N),N,Here,`dot') }
@@ -3759,8 +3755,8 @@ define(`m4termpins',`for_(1,m4n,1,
`speaker(U|D|L|R|degrees, vert size, type, attributes)
type=H horn'
define(`speaker',`[setdir_($1,R)
- define(`m4v',`ifelse(`$2',,`dimen_/3',`($2)/4')')dnl
- define(`m4h',`m4v*sqrt(2)')dnl
+ pushdef(`m4v',`ifelse(`$2',,`dimen_/3',`($2)/4')')dnl
+ pushdef(`m4h',`m4v*sqrt(2)')dnl
ifelse(`$3',H,
`{H1: line from rvec_(m4h,m4v/2) \
to rvec_(m4h*3/2,m4v*7/8) \
@@ -3779,24 +3775,24 @@ define(`speaker',`[setdir_($1,R)
In5: rvec_(m4h*3/4,m4v)
In6: rvec_(m4h/4,-m4v)
In7: rvec_(m4h*3/4,-m4v)
- `$5'; resetdir_ ]')
+ `$5'; resetdir_ popdef(`m4v',`m4h') ]')
`bell(U|D|L|R|degrees, vert size, attributes)'
define(`bell',`[setdir_($1,R)
- define(`m4h',`ifelse(`$2',,`dimen_/2',`($2)')')dnl
+ pushdef(`m4h',`ifelse(`$2',,`dimen_/2',`($2)')')dnl
{lbox(m4h,m4h,`$3')}
{Box: box invis ht_ m4h wid_ m4h at rvec_(m4h/2,0)}
{Circle: circle diameter m4h at rvec_(m4h*3/2,0) `$3'}
In1: rvec_(0,m4h/4)
In2: Here
In3: rvec_(0,-m4h/4)
- `$4'; resetdir_ ]')
+ `$4'; resetdir_ popdef(`m4h') ]')
`microphone(A|U|D|L|R|degrees, vert size,
attributes)
Arg1= A, upright mic
Thanks to Arnold Knott'
define(`microphone',`ifinstr(`$1',A,
- `[ define(`m4sfact',`(ifelse(`$2',,dimen_,(`$2'))*8/5)')
+ `[ pushdef(`m4sfact',`(ifelse(`$2',,dimen_,(`$2'))*8/5)')
circlerad = m4sfact/1000
cspace = m4sfact/100
bwd = m4sfact/10
@@ -3812,22 +3808,22 @@ define(`microphone',`ifinstr(`$1',A,
for j=-1 to 1 do {
{ circle at Here+(3*j*cspace,(abs(j)-3)*cspace) }
if j != 0 then {{ circle at Here+(j*3/2*cspace,0) }} }
- move up 5*cspace }; ]',
+ move up 5*cspace }; popdef(`m4sfact')]',
`[setdir_($1,R)
- define(`m4h',`ifelse(`$2',,`dimen_/2',`($2)')')dnl
+ pushdef(`m4h',`ifelse(`$2',,`dimen_/2',`($2)')')dnl
{L1: line from rvec_(m4h,-m4h/2) \
to rvec_(m4h,m4h/2)}
{Circle: circle diameter m4h at rvec_(m4h/2,0) `$3'}
In1: rvec_(m4h*(2-sqrt(3))/4,m4h/4)
In2: Here
In3: rvec_(m4h*(2-sqrt(3))/4,-m4h/4)
- `$4'; resetdir_ ]')')
+ `$4'; resetdir_ popdef(`m4h') ]')')
`buzzer(U|D|L|R|degrees, vert size,[C],
attributes)'
define(`buzzer',`[setdir_($1,R)
ifelse(`$3',,
- `define(`m4h',`ifelse(`$2',,`dimen_/2',`($2)')')dnl
+ `pushdef(`m4h',`ifelse(`$2',,`dimen_/2',`($2)')')dnl
{L1: line from rvec_(m4h,0) \
to rvec_(m4h,m4h/2) \
then to rvec_(0,m4h/2) \
@@ -3839,20 +3835,20 @@ define(`buzzer',`[setdir_($1,R)
to rvec_(m4h,m4h/2)+vec_(Rect_(m4h,-75))}
In1: rvec_(0,m4h/4)
In2: Here
- In3: rvec_(0,-m4h/4)',
- `$3',C,`define(`m4h',`ifelse(`$2',,`(dimen_/3)',`(($2)/2)')')dnl
+ In3: rvec_(0,-m4h/4) popdef(`m4h')',
+ `$3',C,`pushdef(`m4h',`ifelse(`$2',,`(dimen_/3)',`(($2)/2)')')dnl
{Face: line from rvec_(m4h,-m4h) \
to rvec_(m4h,m4h)}
{arc ccw from Face.end to Face.start with .c at Face.c `$4'}
In1: rvec_(m4h-sqrt(m4h^2-(m4h/3)^2),m4h/3)
In2: Here
- In3: rvec_(m4h-sqrt(m4h^2-(m4h/3)^2),-m4h/3)')
+ In3: rvec_(m4h-sqrt(m4h^2-(m4h/3)^2),-m4h/3) popdef(`m4h') ')
`$5'; resetdir_ ]')
`earphone(U|D|L|R|degrees, size, [C][R],
attributes)
earphone pair if arg3 contains C'
define(`earphone',`[ setdir_($1,R)
- define(`m4h',`ifelse(`$2',,`dimen_',`($2)')')dnl
+ pushdef(`m4h',`ifelse(`$2',,`dimen_',`($2)')')dnl
ifinstr(`$3',C,
`L: circle diam m4h*0.4 `$4'
R: circle diam m4h*0.4 at L+vec_(m4h,0) `$4'
@@ -3868,7 +3864,7 @@ define(`earphone',`[ setdir_($1,R)
In1: rvec_(0,m4h/8)
In2: Here
In3: rvec_(0,-m4h/8)')
- `$5'; resetdir_ ]')
+ `$5'; resetdir_ popdef(`m4h') ]')
`Signal-flow graph macros: labeled node,
directed labeled chopped straight line,
@@ -4023,9 +4019,7 @@ define(`winding',`[ define(`m4rt',`ifinstr(`$1',R,-)')
define(`tstrip',`[ setdir_(`$1')
define(`m4n',`ifelse(`$2',,4,`eval($2)')')dnl
ifelse(eval(m4n<1),1,`define(`m4n',1)')dnl
- pushkeys_(`$3',ht:dimen_/2; wid:m4n*m4ht*0.6; box::N;)
-# pushkey_(`$3',ht,dimen_/2)dnl
-# pushkey_(`$3',wid,m4n*m4ht*0.6)dnl
+ pushkeys_(`$3',`ht:dimen_/2; wid:m4n*m4`'ht*0.6; box::N;')
{Box: [shade(1,lbox(m4wid,m4ht,m4box))] }
bw = m4wid/(m4n)
ifinstr(`$3',O,,`for i=1 to m4n-1 do {
@@ -4122,12 +4116,11 @@ define(`plug',`[ setdir_(`$1')
with respect to the current drawing direction. The
default diameter is dimen_'
define(`SQUID',
-`[ define(`m4sqn',`ifelse(`$1',,2,`$1')')dnl
- define(`m4ssz',`ifelse(`$2',,`dimen_',`$2')')dnl
- define(`m4sof',`ifelse(`$3',,-90,`$3')')dnl
- define(`m4ssg',`ifelse(`$4',,+,`$4',ccw,+,-)(m4x-1)/(m4sqn)*360')dnl
- define(`m4sxlen',C.rad/4)dnl
-
+`[ pushdef(`m4sqn',`ifelse(`$1',,2,`$1')')dnl
+ pushdef(`m4ssz',`ifelse(`$2',,`dimen_',`$2')')dnl
+ pushdef(`m4sof',`ifelse(`$3',,-90,`$3')')dnl
+ pushdef(`m4ssg',`ifelse(`$4',,+,`$4',ccw,+,-)(m4x-1)/(m4sqn)*360')dnl
+ pushdef(`m4sxlen',C.rad/4)dnl
C: circle diam m4ssz
for_(1,m4sqn,1,
`move to C+vec_(Rect_(C.rad,m4sof`'m4ssg))
@@ -4136,7 +4129,7 @@ define(`SQUID',
to rvec_(Rect_(m4sxlen,m4sof`'m4ssg+225)) }
{ line from rvec_(Rect_(m4sxlen,m4sof`'m4ssg-45)) \
to rvec_(Rect_(m4sxlen,m4sof`'m4ssg-225)) }')
- `$5' ]')
+ `$5' popdef(`m4sqn',`m4ssz',`m4sof',`m4ssg',`m4sxlen') ]')
`==============================================================================
Customizations:
diff --git a/graphics/circuit_macros/libgen.m4 b/graphics/circuit_macros/libgen.m4
index c37bb1359d..f5f1be0d34 100644
--- a/graphics/circuit_macros/libgen.m4
+++ b/graphics/circuit_macros/libgen.m4
@@ -2,7 +2,7 @@ divert(-1)
libgen.m4 Base macros for dpic and gpic diagrams
-* Circuit_macros Version 10.5, copyright (c) 2024 J. D. Aplevich under *
+* Circuit_macros Version 10.6, copyright (c) 2024 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
@@ -156,7 +156,7 @@ ifdef(`threeD_init',,
hght=expr; arrowhead height
wdth=expr; arrowhead width'
define(`sfg_init',`cct_init
- pushkeys_(`$1',blen:m4bxx; rad:m4rxx; hght:m4hxx; wdth:m4wxx)dnl
+ pushkeys_(`$1',`blen:m4bxx; rad:m4rxx; hght:m4hxx; wdth:m4wxx')dnl
sfg_wid = ifelse(m4blen,(m4bxx),ifelse(`$1',,linewid/3*2.75,`$1'),m4blen)
sfg_rad = ifelse(m4rad,(m4rxx),ifelse(`$2',,1/32,`$2'),m4rad)
sfg_aht = ifelse(m4hght,(m4hxx),ifelse(`$3',,1/16,`$3'),m4hght)
@@ -192,7 +192,7 @@ define(`latexcommand',
`$2')')
define(`m4announceprocessor',`dnl Do not change the format of the next line:
-`#' `$1' Version 10.5: ifelse(m4picprocessor,gpic,`Gpic',
+`#' `$1' Version 10.6: ifelse(m4picprocessor,gpic,`Gpic',
m4postprocessor,pstricks,`PSTricks',
m4postprocessor,pgf,`TikZ PGF',
m4postprocessor,mfpic,`Mfpic',
@@ -872,7 +872,8 @@ define(`poppushdef',`popdef(`$1')pushdef(`$1',`$2')')
identifier:default value:N
containing up to 3 fields separated by arg 4
(default :). The separators may not appear
- elsewhere in the terms.'
+ elsewhere in the terms and a key must not
+ be the tail of another key.'
define(`pushkeys_',`Loopover_(`M4Z',
`pushkey_(`$1',patsubst(M4Z,ifelse(`$4',,:,`$4'),`,'))dnl',
patsubst(`$2',ifelse(`$3',,;,`$3'),`,'))')
@@ -884,7 +885,8 @@ define(`pushkeys_',`Loopover_(`M4Z',
identifier:default value:N
containing up to 3 fields separated by arg 4
(default :). The separators may not appear
- elsewhere in the terms.'
+ elsewhere in the terms and a key must not
+ be the tail of another key.'
define(`setkeys_',`Loopover_(`M4Z',
`setkey_(`$1',patsubst(M4Z,ifelse(`$4',,:,`$4'),`,'))dnl',
patsubst(`$2',ifelse(`$3',,;,`$3'),`,'))')
@@ -960,7 +962,7 @@ define(`f_box',`box ifelse(`$2',,
circle=attributes; '
define(`dotrad_',(0.02*scale))
define(`dot',`[ define(`m4ft',`ifelse(`$3',,0,(`$3'))')dnl
- pushkeys_(`$2',rad:m4nul:N;circle:fill_(m4ft):N)dnl
+ pushkeys_(`$2',`rad:m4nul:N;circle:fill_(m4ft):N')dnl
ifelse(m4rad,m4nul,`popdef(`m4rad')pushdef(`m4rad',
`ifinstr(`$2',=,`dotrad_',`ifelse(`$2',,`dotrad_',(`$2'))')')')dnl
ifdef(`r_',`rgbfill(r_+(1-r_)*m4ft, g_+(1-g_)*m4ft, b_+(1-b_)*m4ft,
@@ -973,7 +975,7 @@ define(`dot',`[ define(`m4ft',`ifelse(`$3',,0,(`$3'))')dnl
keys: size=expr;
line=attributes; (line attributes) '
define(`cross',`[
- pushkeys_(`$2',size:m4nul:N;line::N)dnl
+ pushkeys_(`$2',`size:m4nul:N;line::N')dnl
ifelse(m4size,m4nul,`popdef(`m4size')pushdef(`m4size',
`ifinstr(`$2',=,(0.05*scale),ifelse(`$2',,(0.05*scale),(`$2')))')')dnl
line from (0,-m4size/2) to (0,m4size/2) m4line
@@ -1009,25 +1011,28 @@ define(`shadebox',`ifelse(`$1',,box,`$1')
shadowed(box shaded "yellow" rad 0.1 "Text",
shadowthick=3bp__;shadowcolor="lightgray")'
define(`shadowed',`define(`m4object',`ifelse(`$1',,box,`$1')')dnl
- pushkeys_(`$3',attrib::N; rad:;
- shadowthick:lthick*5/4; shadowcolor:"gray":N; shadowangle:-45 )dnl
- ifelse(m4object,box,`box m4attrib ifelse(m4rad,,,`rad m4rad invis') `$2'
+ pushkeys_(`$3',`attrib::N; rad:;
+ shadowthick:lthick*5/4; shadowcolor:"gray":N; shadowangle:-45')dnl
+ ifelse(m4object,box,
+ `box m4attrib ifelse(m4rad,,,`rad m4rad invis') `$2'
if last box.thick < 0 then { m4shv = (m4shadowthick+lthick)/2 } \
else { m4shv=(m4shadowthick+last box.thick bp__)/2 }
+ M4T: (Rect_(m4shv,m4shadowangle))
ifelse(m4rad,,`{ line thick m4shadowthick/(1bp__) outlined m4shadowcolor \
- from last box.sw+(m4shv,-m4shv) to last box.se+(m4shv,-m4shv) \
- then to last box.ne+(m4shv,-m4shv) } ',
+ from last box.sw+(M4T.x,M4T.y) to last box.se+(M4T.x,M4T.y) \
+ then to last box.ne+(M4T.x,M4T.y) }
+ box fill_(1) m4attrib at last box.c ',
`M4C: last box.c
{ box m4attrib thick m4shadowthick/(1bp__) outlined m4shadowcolor \
- rad m4rad solid at M4C+(Rect_(m4shv,m4shadowangle)) }
+ rad m4rad solid at M4C+(M4T.x,M4T.y) }
box fill_(1) rad m4rad m4attrib at M4C ') ',
- `m4object m4attrib invis `$2'
- M4C: last m4object.c
- if last m4object.thick < 0 then { m4shv = (m4shadowthick+lthick)/2 } \
- else { m4shv=(m4shadowthick+last m4object.thick bp__)/2 }
- { m4object m4attrib thick m4shadowthick/(1bp__) outlined m4shadowcolor \
- solid at M4C+(Rect_(m4shv,m4shadowangle)) }
- m4object ifelse(m4object,line,,fill_(1)) m4attrib at M4C ')dnl
+ `m4object m4attrib invis `$2'
+ M4C: last m4object.c
+ if last m4object.thick < 0 then { m4shv = (m4shadowthick+lthick)/2 } \
+ else { m4shv=(m4shadowthick+last m4object.thick bp__)/2 }
+ { m4object m4attrib thick m4shadowthick/(1bp__) outlined m4shadowcolor \
+ solid at M4C+(Rect_(m4shv,m4shadowangle)) }
+ m4object ifelse(m4object,line,,fill_(1)) m4attrib at M4C ')dnl
popdef(`m4attrib',`m4rad',`m4shadowthick',`m4shadowcolor',`m4shadowangle') ')
`hatchbox(boxspec,hatchsep,hatchspec,angle)
@@ -1042,8 +1047,9 @@ define(`shadowed',`define(`m4object',`ifelse(`$1',,box,`$1')')dnl
hatchsep=expr;
hatchspec=attributes;
angle=expr; '
-define(`hatchbox',`[pushkeys_(`$1',wid:boxwid:N;ht:boxht:N;box::N;fillcolor::N;
- hatchsep:0.075*scale;hatchspec::N;angle:45)
+define(`hatchbox',`[
+ pushkeys_(`$1',`wid:boxwid:N; ht:boxht:N; box::N;fillcolor::N;
+ hatchsep:0.075*scale; hatchspec::N; angle:45')
b = ifelse(`$4',,m4angle,`$4')
a = pmod((ifelse(b,,45,b)+90),180)-90
if a >=0 then { B: box ifinstr(`$1',=,`wid m4wid ht m4ht m4box dnl
@@ -1099,12 +1105,12 @@ define(`lbox',`pushdef(`m4bwd',ifelse(`$1',,boxwid,(`$1')))dnl
then to rvec_(0,neg_(m4bht)/2) \
then to rvec_(m4bwd,neg_(m4bht)/2) \
then to rvec_(m4bwd,0) `$3' dnl
- popdef(`m4bwd')popdef(`m4bht') ')
+ popdef(`m4bwd',`m4bht') ')
`rotbox(wid,ht,type attribs,[r=val|t=val])
box oriented in current direction in [] block;
wd and ht are distances between line centers.
- type=attributes eg dotted shaded "green"
+ attributes: eg dotted shaded "green"
if arg4 is r=val then the corner radius is val
if arg4 is t=val then a "superellipse"
is drawn using a spline of tension val
@@ -1174,24 +1180,29 @@ define(`rotellipse',
e.g. ellipsearc(2,1,0,pi_,pi_/4,,dashed)
arg5 is the angle of the ellipse wid axis
Internal locations Start, End, C'
+
+ `ellipsearc(wid,ht,startrads,endrads,
+ rotangle,cw|ccw,linetype)
+ e.g. ellipsearc(2,1,0,pi_,pi_/4,,dashed)
+ arg5 is the angle of the ellipse wid axis
+ Internal locations Start, End, C'
define(`ellipsearc',`[ C: (0,0)
- a_earc = ifelse(`$1',,ellipsewid,`($1)')/2
- b_earc = ifelse(`$2',,ellipseht,`($2)')/2
- sa_earc = ifelse(`$3',,0,`$3')
- ea_earc = ifelse(`$4',,pi_/2,`$4')
- define(`m4ca',`ifelse(`$5',,1,cos(`$5'))')dnl
- define(`m4sa',`ifelse(`$5',,0,sin(`$5'))')dnl
- ifinstr(`$6',ccw,`define(`m4cw',ccw)',
- `ifinstr(`$6',cw,`define(`m4cw',cw)',`define(`m4cw',ccw)')')
+ a = ifelse(`$1',,ellipsewid,`($1)')/2
+ b = ifelse(`$2',,ellipseht,`($2)')/2
+ sa = ifelse(`$3',,0,`$3')
+ ea = ifelse(`$4',,pi_/2,`$4')
+ pushdef(`m4ca',`ifelse(`$5',,1,cos(`$5'))')dnl
+ pushdef(`m4sa',`ifelse(`$5',,0,sin(`$5'))')dnl
+ pushdef(`m4cw',`ifinstr(`$6',ccw,c,`$6',cw,,c)'cw)dnl
ifelse(m4cw,ccw,
- `if ea_earc < sa_earc then { ea_earc += twopi_ }',
- `if ea_earc > sa_earc then { ea_earc -= twopi_ }')
- n = max(4,floor(abs((ea_earc-sa_earc)/(10*dtor_)))+1)
- for i=0 to n do { aa_earc = sa_earc+i/n*(ea_earc-sa_earc)
- P[i]: (vrot_(a_earc*cos(aa_earc),b_earc*sin(aa_earc),m4ca,m4sa)) }
+ `if ea < sa then { ea += twopi_ }',
+ `if ea > sa then { ea -= twopi_ }')
+ n = max(4,floor(abs((ea-sa)/(10*dtor_)))+1)
+ for i=0 to n do { aa = sa+i/n*(ea-sa)
+ P[i]: (vrot_(a*cos(aa),b*sin(aa),m4ca,m4sa)) }
Start: P[0]
End: P[n]
- fitcurve(P,n,`$7') ]')
+ fitcurve(P,n,`$7') `$8' popdef(`m4cw',`m4sa',`m4ca') ]')
Small space for string justification
#efine(`sp_',`ifgpic(`\hbox{$\:$}')iflatex(`\hbox{$\;$}')')
@@ -1288,19 +1299,26 @@ define(`arcdimension_',`arc invis `$1' ; {
to M4ArcC+(rect_(m4hr,m4eang)) rad m4hr with .c at M4ArcC } }
ifelse(`$3',,,`m4lstring(`$3',"`$3'") at M4ArcC+(rect_(m4hr,m4hang))')
}')
+
`polygon(nsides,keys) regular polygon in [] block
keys: line=attribs; e.g. dashed shaded "red"
rot=degrees; angle of first vertex V[0]
side|rad=expr; size by radius or side
- Defined points: C, V[0], ... V[nsides-1]'
+ radv=expr; vertex radius
+ Defined internal points: C, V[0], ... V[nsides]'
define(`polygon',`[ C: Here; nsides=ifelse(`$1',,3,`$1')
a=360/nsides; b=(180-a)/2 # interior angles
pushkeys_(`$2',
- `line::N; rot:90; side:linewid; rad:m4side*sind(b)/sind(a);')dnl
+ `line::N; rot:90; side:linewid; radv:0; rad:m4`'side*sind(b)/sind(a);')dnl
for i=0 to nsides-1 do { V[i]: Rect_(m4rad,m4rot+a*i) }
V[nsides]: 0.5 between V[nsides-1] and V[0]
- line m4line from V[nsides] to V[0]; for i=1 to nsides do { continue to V[i] }
- `$3' popdef(`m4line',`m4rot',`m4side',`m4rad') ]')
+#for i=0 to nsides do { sprintf("%g",i) at V[i] above }
+ if m4radv!=0 then { move to V[nsides]
+ for i=0 to nsides-1 do { arcto(V[i],V[i+1],m4radv,m4line) }
+ line m4line to V[nsides] } \
+ else { line m4line from V[nsides] to V[0]; for i=1 to nsides do {
+ continue to V[i] } }
+ `$3' popdef(`m4line',`m4rot',`m4side',`m4radv',`m4rad') ]')
`shade(gray value,closed line specs)
Fill an arbitray closed curve with a gray value
@@ -1447,8 +1465,8 @@ m4postprocessor,xfig,
head= attributes (shaded etc)
name=Name (default Sarrow_)'
define(`sarrow',
- `pushkeys_(`$2',
- type:O:N;head::N;shaft:m4head:N;wdth:arrowwid;lgth:arrowht;name:Sarrow_:N)dnl
+ `pushkeys_(`$2',`type:O:N; head::N; shaft:m4`'head:N; wdth:arrowwid;
+ lgth:arrowht; name:Sarrow_:N')dnl
arrow `$1' m4head invis
m4_dx = last arrow.end.x-last arrow.start.x
m4_dy = last arrow.end.y-last arrow.start.y
@@ -1681,7 +1699,8 @@ define(`ArcAngle',`arcr(`$2',ifelse(`$4',,arcrad,`$4'),
`RightAngle(Pos1,Pos2,Pos3,linelen,attributes)
Draw a right angle symbol at Pos2
arg4: size
- arg5: line attributes, e.g. outlined "gray"'
+ arg5: line attributes, e.g. outlined "gray" or
+ e.g., ;dot(at last line.c)'
define(`RightAngle',
`RightA_C: `$1'; RightA_N: `$2'; RightA_B: `$3'
define(`m4AngleLen',`ifelse(`$4',,linewid/5,`$4')')
@@ -1859,7 +1878,8 @@ define(`sinusoid',
`graystring(value in [0,1])'
define(`graystring',`rgbstring(`$1',`$1',`$1')')
- `ColoredV(box|circle|ellipse,(r,g,b)|((colorseq)),
+ `ColoredV(box|circle|ellipse,
+ (r,g,b) | ((colorseq))[:nlines],
attributes)
box or circle or ellipse in a [] block.
If arg2 is blank then all formatting is in
@@ -1873,10 +1893,12 @@ define(`graystring',`rgbstring(`$1',`$1',`$1')')
frac2,r2,g2,b2,
...
1,rn,gn,bn
+ The number of colorseq lines drawn can be specified
+ with the colon (default height/lthick*2).
Examples: ColoredV(circle,(1,0,0))
ColoredV(ellipse,(1,0.04,1),
wid 0.75 ht 1 outlined "magenta" "Goodbye")
- ColoredV(box,((0,1,1,0, 1,0,0,1)),
+ ColoredV(box,((0,1,1,0, 1,0,0,1)):50,
outlined "blue" rad 0.1)'
define(`ColoredV',`[NeedDpicTools pushdef(`m4obj',ifelse(`$1',,box,`$1'))
C: m4obj `$3' ifsvg(,invis) # To avoid invalid svg
@@ -1889,13 +1911,15 @@ define(`ColoredV',`[NeedDpicTools pushdef(`m4obj',ifelse(`$1',,box,`$1'))
with .c at C.n-(0,C.ht*($`'1))}',
`define m4SObjLine {line outlined rgbstring($`'2,$`'3,$`'4) right \
C.wid*sqrt(abs(1-(1-($`'1)*2)^2)) with .c at C.n-(0,C.ht*($`'1))}')
- ShadeObject(m4SObjLine,int(C.ht/lthick*5/4),\
- ifelse(index(`$2',`(('),0,`patsubst(`$2',^ *`(('\|`))' *$)',
- `0,1,1,1,1,patsubst(`$2',^ *`('\|`)' *$)')) at C')
- m4obj ifelse(`$2',,,`m4colorfix(outlined,`$2')') `$3' with .c at C
- `$5' popdef(`m4obj') ]')
-
- `rgbstring(color triple: values in [0,1])
+ pushdef(`linect',`ifinstr(`$2',:,`patsubst(`$2',^.*:\(.*\)$,\1)',
+ `int(C.ht/lthick*2)')')
+ ShadeObject(m4SObjLine,linect,ifelse(index(`$2',`(('),0,
+ `patsubst(`$2',`(('\|`))'.*$)',`0,1,1,1,1,patsubst(`$2',^ *`('\|`)' *$)')) \
+ with .n at C.n') popdef(`linect')
+ m4obj ifelse(`$2',,,index(`$2',`(('),0,,`m4colorfix(outlined,`$2')') `$3' at C
+ `$4' popdef(`m4obj') ]')
+
+ `rgbstring(color triple with values in [0,1])
(example rgbstring(0.2,0.3,0.4) )
or, when allowed by the postprocessor,
rgbstring(color name)
@@ -2017,16 +2041,21 @@ define(`definergbcolor',
`ifpdf(`define(`$1',``'`$2' `$3' `$4'`'')',
`ifmpost(`command \
sprintf("color `$1'; `$1':=(%7.5f,%7.5f,%7.5f);",`$2',`$3',`$4')',
+`ifsvg(`define(`$1',`rgbstring(`$2',`$3',`$4')')',
`command \
sprintf("\definecolor{`$1'}{rgb}{%7.5f,%7.5f,%7.5f}%%",`$2',`$3',`$4')')')')')
+')
Pstricks conditional command
define(`psset_',`ifpstricks(`dnl
command sprintf("\psset{$@}%%")
')')
Internal color adjustments
- `m4colorfix(outlined|shaded,
- "colorname"|colorname|(r,g,b),sprintf(...))'
+ `m4colorfix(outlined|shaded|colored,
+ "colorname"|colorname|(r,g,b),sprintf(...))
+ Not really necessary most of the time; e.g.,
+ colored rgbstring(r,g,b)" works fine for tikz, pstricks,
+ and svg'
define(`m4colorfix',`ifelse(`$1',,,
`ifelse(`$2',,``$1' "grey"',index(`$2',`"'),0,``$1' `$2'',
index(`$2',sprintf),0,``$1' `$2'',
diff --git a/graphics/circuit_macros/liblog.m4 b/graphics/circuit_macros/liblog.m4
index 9c68aff0e2..31dd9b2aca 100644
--- a/graphics/circuit_macros/liblog.m4
+++ b/graphics/circuit_macros/liblog.m4
@@ -1,7 +1,7 @@
divert(-1)
liblog.m4 Logic gates
-* Circuit_macros Version 10.5, copyright (c) 2024 J. D. Aplevich under *
+* Circuit_macros Version 10.6, copyright (c) 2024 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/mfpic.m4 b/graphics/circuit_macros/mfpic.m4
index aa24fb7d34..2754139ec0 100644
--- a/graphics/circuit_macros/mfpic.m4
+++ b/graphics/circuit_macros/mfpic.m4
@@ -1,7 +1,7 @@
divert(-1)
mfpic.m4 Initialization for mfpic.
-* Circuit_macros Version 10.5, copyright (c) 2024 J. D. Aplevich under *
+* Circuit_macros Version 10.6, copyright (c) 2024 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/mpost.m4 b/graphics/circuit_macros/mpost.m4
index d6e0f1ed59..02a2375c27 100644
--- a/graphics/circuit_macros/mpost.m4
+++ b/graphics/circuit_macros/mpost.m4
@@ -1,7 +1,7 @@
divert(-1)
mpost.m4 Initialization for metapost.
-* Circuit_macros Version 10.5, copyright (c) 2024 J. D. Aplevich under *
+* Circuit_macros Version 10.6, copyright (c) 2024 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/pdf.m4 b/graphics/circuit_macros/pdf.m4
index 375c41e4a5..71916a2f3d 100644
--- a/graphics/circuit_macros/pdf.m4
+++ b/graphics/circuit_macros/pdf.m4
@@ -1,7 +1,7 @@
divert(-1)
pdf.m4 Initialization for pdf output.
-* Circuit_macros Version 10.5, copyright (c) 2024 J. D. Aplevich under *
+* Circuit_macros Version 10.6, copyright (c) 2024 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/pgf.m4 b/graphics/circuit_macros/pgf.m4
index 4ffc956930..845427083c 100644
--- a/graphics/circuit_macros/pgf.m4
+++ b/graphics/circuit_macros/pgf.m4
@@ -1,7 +1,7 @@
divert(-1)
pgf.m4 Initialization for Tikz-pgf.
-* Circuit_macros Version 10.5, copyright (c) 2024 J. D. Aplevich under *
+* Circuit_macros Version 10.6, copyright (c) 2024 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/postscript.m4 b/graphics/circuit_macros/postscript.m4
index 033e753d2d..7e4882451d 100644
--- a/graphics/circuit_macros/postscript.m4
+++ b/graphics/circuit_macros/postscript.m4
@@ -1,7 +1,7 @@
divert(-1)
postscript.m4 Initialization for Postscript output.
-* Circuit_macros Version 10.5, copyright (c) 2024 J. D. Aplevich under *
+* Circuit_macros Version 10.6, copyright (c) 2024 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/psfrag.m4 b/graphics/circuit_macros/psfrag.m4
index 86956e45b4..31eff163d0 100644
--- a/graphics/circuit_macros/psfrag.m4
+++ b/graphics/circuit_macros/psfrag.m4
@@ -2,7 +2,7 @@ divert(-1)
psfrag.m4 Initialization for dpic -f processing:
Postscript with psfrag strings
-* Circuit_macros Version 10.5, copyright (c) 2024 J. D. Aplevich under *
+* Circuit_macros Version 10.6, copyright (c) 2024 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/pstricks.m4 b/graphics/circuit_macros/pstricks.m4
index 7012c2c9b3..528fdcd147 100644
--- a/graphics/circuit_macros/pstricks.m4
+++ b/graphics/circuit_macros/pstricks.m4
@@ -1,7 +1,7 @@
divert(-1)
pstricks.m4 Initialization for PSTricks.
-* Circuit_macros Version 10.5, copyright (c) 2024 J. D. Aplevich under *
+* Circuit_macros Version 10.6, copyright (c) 2024 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/svg.m4 b/graphics/circuit_macros/svg.m4
index 30d832a9ea..4c3adb994b 100644
--- a/graphics/circuit_macros/svg.m4
+++ b/graphics/circuit_macros/svg.m4
@@ -1,7 +1,7 @@
divert(-1)
svg.m4 Initialization for svg output.
-* Circuit_macros Version 10.5, copyright (c) 2024 J. D. Aplevich under *
+* Circuit_macros Version 10.6, copyright (c) 2024 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/circuit_macros/xfig.m4 b/graphics/circuit_macros/xfig.m4
index b437249f14..c98819df7f 100644
--- a/graphics/circuit_macros/xfig.m4
+++ b/graphics/circuit_macros/xfig.m4
@@ -1,7 +1,7 @@
divert(-1)
xfig.m4 Initialization for xfig.
-* Circuit_macros Version 10.5, copyright (c) 2024 J. D. Aplevich under *
+* Circuit_macros Version 10.6, copyright (c) 2024 J. D. Aplevich under *
* the LaTeX Project Public Licence in file Licence.txt. The files of *
* this distribution may be redistributed or modified provided that this *
* copyright notice is included and provided that modifications are clearly *
diff --git a/graphics/metapost/contrib/macros/mpkiviat/LICENSE b/graphics/metapost/contrib/macros/mpkiviat/LICENSE
new file mode 100644
index 0000000000..130ede1e51
--- /dev/null
+++ b/graphics/metapost/contrib/macros/mpkiviat/LICENSE
@@ -0,0 +1,11 @@
+
+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”.
+
diff --git a/graphics/metapost/contrib/macros/mpkiviat/README.md b/graphics/metapost/contrib/macros/mpkiviat/README.md
new file mode 100644
index 0000000000..eb9666947d
--- /dev/null
+++ b/graphics/metapost/contrib/macros/mpkiviat/README.md
@@ -0,0 +1,18 @@
+# MPkiviat
+
+This package allows you to Kiviat diagrams.
+
+_This package is in beta version, do not hesitate to report bugs, as well as
+requests for improvement_.
+
+## Documentation
+
+* [English documentation](doc/mpkiviat-doc-en.pdf)
+
+## Contact
+
+Maxime Chupin, `notezik(at)gmail.com`
+
+## Licenses
+
+This projet is under LATEX Project Public License 1.3c. \ No newline at end of file
diff --git a/graphics/metapost/contrib/macros/mpkiviat/doc/ctan.bib b/graphics/metapost/contrib/macros/mpkiviat/doc/ctan.bib
new file mode 100644
index 0000000000..546a180815
--- /dev/null
+++ b/graphics/metapost/contrib/macros/mpkiviat/doc/ctan.bib
@@ -0,0 +1,72 @@
+
+@manual{ctan-latexmp,
+ title = {The \texttt{latexMP} package},
+ subtitle = {Interface for \LaTeX{}-based typesetting in MetaPost},
+ author = {Jens-Uwe Morawski},
+ date = {2020-06-21},
+ version = {1.2.1},
+ license = {pd},
+ mirror = {https://mirror.ctan.org/graphics/metapost/contrib/macros/latexmp},
+ url = {https://ctan.org/pkg/latexmp},
+ annotation = {The MetaPost package latexMP implements a user-friendly
+ interface to access \LaTeX{}-based typesetting capabilities in
+ MetaPost. The text to be typeset is given as string. This
+ allows even dynamic text elements, for example counters, to be
+ used in labels. Compared to other implementations it is much
+ more flexible, since it can be used as direct replacement for
+ , and much faster, compared for example to the
+ solution provided by .},
+}
+
+@manual{ctan-minim-mp,
+ title = {The \texttt{minim-mp} package},
+ subtitle = {Low-level mplib integration for LuaTeX},
+ author = {Esger Renkema},
+ date = {2024-04-06},
+ version = {2024/1.6},
+ license = {eupl},
+ mirror = {https://mirror.ctan.org/macros/luatex/generic/minim-mp},
+ url = {https://ctan.org/pkg/minim-mp},
+}
+@manual{ctan-lualatex-doc,
+ title = {The \texttt{lualatex-doc} package},
+ subtitle = {A guide to use of \LaTeX{} with LuaTeX},
+ author = {Manuel Pégourié-Gonnard},
+ date = {2023-12-07},
+ version = {},
+ license = {fdl},
+ mirror = {https://mirror.ctan.org/obsolete/info/luatex/lualatex-doc},
+ url = {https://ctan.org/pkg/lualatex-doc},
+}
+
+@manual{ctan-luatex,
+ title = {The \texttt{luatex} package},
+ subtitle = {The LuaTeX engine},
+ author = {{The LuaTeX Team}},
+ date = {2021-12-09},
+ license = {gpl2+},
+ url = {https://ctan.org/pkg/luatex},
+}
+@manual{ctan-metapost,
+ title = {The \texttt{metapost} package},
+ subtitle = {A development of Metafont for creating graphics},
+ author = {{The MetaPost Team} and John Hobby},
+ date = {2021-08-26},
+ license = {lgpl},
+ url = {https://ctan.org/pkg/metapost},
+ annotation = {MetaPost uses a language based on that of
+ to produce precise
+ technical illustrations. Its output is scalable PostScript or
+ SVG, rather than the bitmaps Metafont creates.},
+}
+
+@manual{ctan-luamplib,
+ title = {The \texttt{luamplib} package},
+ subtitle = {Use LuaTeX’s built-in MetaPost interpreter},
+ author = {Hans Hagen and Taco Hoekwater and Élie Roux and Manuel Pégourié-Gonnard and Philipp Gesang and Dohyun Kim},
+ date = {2024-05-10},
+ version = {2.30.0},
+ license = {gpl2},
+ mirror = {https://mirror.ctan.org/macros/luatex/generic/luamplib},
+ url = {https://ctan.org/pkg/luamplib},
+}
diff --git a/graphics/metapost/contrib/macros/mpkiviat/doc/fond.pdf b/graphics/metapost/contrib/macros/mpkiviat/doc/fond.pdf
new file mode 100644
index 0000000000..22218152cc
--- /dev/null
+++ b/graphics/metapost/contrib/macros/mpkiviat/doc/fond.pdf
Binary files differ
diff --git a/graphics/metapost/contrib/macros/mpkiviat/doc/mpkiviat-doc.pdf b/graphics/metapost/contrib/macros/mpkiviat/doc/mpkiviat-doc.pdf
new file mode 100644
index 0000000000..259f2c2846
--- /dev/null
+++ b/graphics/metapost/contrib/macros/mpkiviat/doc/mpkiviat-doc.pdf
Binary files differ
diff --git a/graphics/metapost/contrib/macros/mpkiviat/doc/mpkiviat-doc.tex b/graphics/metapost/contrib/macros/mpkiviat/doc/mpkiviat-doc.tex
new file mode 100644
index 0000000000..fadc0a0b71
--- /dev/null
+++ b/graphics/metapost/contrib/macros/mpkiviat/doc/mpkiviat-doc.tex
@@ -0,0 +1,571 @@
+% LTeX: language=en
+
+\documentclass[a4paper,english]{article}
+
+\usepackage{xcharter-otf}
+\usepackage[left=4cm]{geometry}
+\usepackage{xspace}
+\usepackage[svgnames]{xcolor}
+\usepackage{multicol}
+\usepackage{hologo}
+\usepackage{listings}
+\usepackage{showexpl} % examples
+\usepackage{mflogo}
+\usepackage{babel}
+\usepackage{tikz}
+\usepackage{url}
+\usepackage{tikz}
+\usepackage{luamplib}
+\usepackage{siunitx}
+\usepackage{accsupp}
+\usepackage{pdflscape}
+\usepackage{fancyvrb,xparse,xargs}
+\usepackage[colorlinks]{hyperref}
+\setmonofont{FiraCode-Regular}[
+BoldFont=FiraCode-Bold,
+Contextuals=Alternate, % Activate the calt feature
+Scale=MatchLowercase
+]
+\usepackage{biblatex}
+\usepackage{imakeidx}
+\makeindex[title=Index, columns=2]
+\usepackage[verbatim]{lstfiracode} % Activate ligatures in verbatim
+\usepackage[most]{tcolorbox}
+\tcbuselibrary{listings,breakable}
+\addbibresource{ctan.bib}
+\newcommand\package[1]{\href{https://ctan.org/pkg/#1}{#1}}
+\newcommand{\ctan}{\textsc{ctan}}
+\newtcolorbox{colourband}[1][]{%
+arc=0pt,outer arc=0pt,enhanced, breakable, spread sidewards, left*=0pt, right*=0pt, boxrule=0pt, colback=LightSteelBlue!10, #1}
+
+
+\definecolor{hellgelb}{rgb}{1,1,0.85}
+\definecolor{colKeys}{rgb}{0,0,1}
+\definecolor{colIdentifier}{rgb}{0,0,0}
+\definecolor{colComments}{rgb}{0.3,0.7,0.3}
+\definecolor{colString}{rgb}{0,0.5,0}
+\definecolor{mpcode}{rgb}{0.5,0.1,0.1}
+
+\lstset{%
+ language=metapost,%
+ float=hbp,%
+ basicstyle=\ttfamily, %
+ identifierstyle=\color{DarkSlateGrey}, %
+ keywordstyle=\color{DarkBlue}\itshape, %
+ stringstyle=\color{Green}, %
+ commentstyle=\color{LightSlateGrey}\itshape, %
+ columns=flexible, %
+ tabsize=4, %
+ extendedchars=true, %
+ showspaces=false, %
+ showstringspaces=false, %
+ numbers=left,
+ numbersep=1em,
+ numberstyle=\tiny\color{gray}, %
+ breaklines=true, %
+ breakautoindent=true,
+ captionpos=b,
+ xleftmargin=0em,
+ sensitive=true,
+ morekeywords=[10]{},
+ keywordstyle=[10]\color{Salmon},
+ morekeywords=[7]{draw_axis,
+ draw_grad,
+ draw_legends,
+ draw_line,
+ set_axis_color,
+ set_axis_legends,
+ set_kiviat_unit,
+ set_lattice_color,
+ set_lattice_grid, set_line_mark,
+ set_line_mark_scale,
+ set_line_mark_type,
+ filldraw_line,
+ set_axis,},
+ keywordstyle=[7]\color{FireBrick},
+ morekeywords=[8]{},
+ keywordstyle=[8]\color{Sienna},
+ morekeywords=[9]{},
+ keywordstyle=[9]\color{Olive}
+}
+\lstset{explpreset={pos=t,wide=false,rframe={},preset=\centering}}
+\lstdefinestyle{syntax}{backgroundcolor=\color{blue!15},numbers=none,xleftmargin=0pt,xrightmargin=0pt,
+ frame=single}
+\lstdefinestyle{code}{backgroundcolor=\color{red!15},%numbers=left,
+ xleftmargin=0pt,xrightmargin=0pt,
+ frame=single}
+
+\newtcblisting{mpcode}{
+ arc=0pt,outer arc=0pt,
+ colback=mpcode!3,
+ breakable,
+ boxsep=0pt,left=2pt,right=2pt,top=0pt,bottom=0pt, bottomtitle =
+ 3pt, toptitle=3pt,
+ boxrule=0pt,bottomrule=0.pt,toprule=0.pt, toprule at break =
+ 0pt, bottomrule at break = 0pt,
+ listing only,boxsep=0pt,listing
+ options={breaklines}
+}
+
+
+\newtcblisting{commandshell}{colback=black,colupper=white,colframe=black,
+ arc=0pt,
+ listing only,boxsep=0pt,listing
+ options={style=tcblatex,language=sh},
+ every listing line={\BeginAccSupp{ActualText={}}\textcolor{red}{\small\ttfamily\bfseries user \$> }}\EndAccSupp{}}
+
+\makeatletter
+\tcbset{%
+ listing metapost/.code={%
+ \def\tcbuselistingtext@input{\begin{mplibcode}
+ background:=(.988,.976,.976); input \jobname.listing;
+ \end{mplibcode}}%
+ }
+}
+\makeatother
+\newtcblisting[auto counter,]{ExempleMP}[1][]{%
+ arc=0pt,outer arc=0pt,
+ colback=FireBrick!3,
+ colframe=FireBrick,
+ breakable,fontupper=\small,
+ boxsep=0pt,left=2pt,right=2pt,top=0pt,bottom=2pt, bottomtitle =
+ 3pt, toptitle=3pt, lefttitle=5pt,
+ boxrule=0pt,bottomrule=0.5pt,toprule=0.5pt, toprule at break =
+ 0pt, bottomrule at break = 0pt,
+ listing side text,
+ listing metapost,
+ title={\bfseries\sffamily Exemple~\thetcbcounter},
+ listing options={breaklines},#1
+}
+
+
+\newcommand\mpkiviat{\texttt{mpkiviat}\xspace}
+\newcommand\fichier[1]{\texttt{#1}}
+\newcommand\variableGDD[1]{\texttt{\color{Sienna}#1}}
+\newcommand\typeMP[1]{\texttt{\color{Tomato}#1}}
+\newcommand\typeGDD[1]{\texttt{\color{Sienna}#1}}
+\newcommand\foncGDD[1]{\texttt{\color{Sienna}#1}}
+
+\newenvironment{Note}{
+ \noindent\textbf{Note~---~}}
+ {}
+
+
+
+%
+\colorlet{code}{blue!80!black}
+\newcommand\cmd{\texttt}
+\newcommand\code[1]{\texorpdfstring{\texttt{\color{code}#1}}{#1}}
+\newcommand*\cs[1]{\code{\textbackslash #1}}
+\newcommand*\macro{\par\bigskip\noindent\hspace{-30pt}%
+ \SaveVerb[aftersave={%
+ \UseVerb{Vitem}%
+ }%
+ ]{Vitem}%
+ % \bigskip
+}
+\newcommand\vitem[1][]{\SaveVerb[%
+ aftersave={\item[\textnormal{\UseVerb[#1]{vsave}}]}]{vsave}}
+\newcommand*\textme[1]{\textcolor{black}{\rmfamily\textit{#1}}}
+\newcommand*\meta[1]{% % meta
+ \textme{\ensuremath{\langle}#1\ensuremath{\rangle}}%
+}
+\newcommand*\optstar{% % optional star
+ \meta{\ensuremath{*}}\xspace
+}
+\DefineShortVerb{\|}
+\setlength{\fboxsep}{2pt}
+\fvset{%
+ codes={\catcode`\«\active \catcode`\×\active },
+ defineactive={\makefancyog\makefancytimes},
+ formatcom=\color{FireBrick},
+ frame=single
+}
+% rendre «...» équivalent à \meta{...}
+{\catcode`\«\active
+ \newcommandx\makefancyog[0][addprefix=\global]{%
+ \def«##1»{\meta{##1}}}}
+% rendre × équivalent à \optstar
+{\catcode`\×\active
+ \newcommandx\makefancytimes[0][addprefix=\global]{%
+ \def×{\optstar{}}}}
+
+\NewDocumentEnvironment{Macro}{ov}{%
+\Verb+#2+
+}{%
+}
+\newcommand{\return}[1]{~$\rightarrow$~#1}
+\newcommand{\indication}[1]{\hfill(\itshape #1)}
+
+\newcommand{\R}{\mathbf{R}}
+
+\begin{document}
+%% === Page de garde ===================================================
+\thispagestyle{empty}
+\begin{tikzpicture}[remember picture, overlay]
+ \node[below right, shift={(-4pt,4pt)}] at (current page.north west) {%
+ \includegraphics{fond.pdf}%
+ };
+\end{tikzpicture}%
+
+\noindent
+{\Huge \bfseries \mpkiviat}\\
+{\large Package \MP{} to draw Kiviat diagrams}\\[1cm]
+\parbox{0.6\textwidth}{
+\includegraphics[scale=0.86]{test-2.pdf}
+}\hfill
+\parbox{0.4\textwidth}{\Large\raggedleft
+ \textbf{Contributors}\\
+ Maxime \textsc{Chupin}\\
+ \url{notezik@gmail.com}
+}
+\vfill
+\begin{center}
+Version 0.1, 22th of may 2024\\
+\url{https://gitlab.gutenberg-asso.fr/mchupin/mpkiviat}
+\end{center}
+%% == Page de garde ====================================================
+\newpage
+
+\begin{abstract}
+ This \hologo{METAPOST} package allows to draw Kiviat diagram (or radar chart,
+ web chart, spider chart, etc.).
+\end{abstract}
+
+\tableofcontents
+
+
+\section{Introduction}
+
+\mpkiviat is a package to draw Kiviat diagram (web chart, spider chart, spider
+graph, spider web chart, star chart, star plot, cobweb chart, irregular polygon,or
+polar chart) with \MP~\cite{ctan-metapost}.
+
+\section{Installation}
+
+\mpkiviat is on \ctan{} and can also be installed via the package manager of
+your distribution.
+
+\begin{center}
+ \url{https://www.ctan.org/pkg/mpkiviat}
+\end{center}
+
+
+\subsection{With \TeX live under Linux or macOS}
+
+To install \mpkiviat with \TeX Live, you will have to create the directory
+\lstinline+texmf+ in your \lstinline+home+.
+
+\begin{commandshell}
+mkdir ~/texmf
+\end{commandshell}
+
+Then, you will have to place the \lstinline+mpkiviat.mp+ file in
+\begin{center}
+ \lstinline+~/texmf/metapost/mpkiviat/+
+\end{center}
+
+
+Once this is done, \mpkiviat will be loaded with the classic \MP{}
+input code
+\begin{mpcode}
+input mpkiviat
+\end{mpcode}
+
+\subsection{With Mik\TeX{} and Windows}
+
+These two systems are unknown to the author of \mpkiviat, so we
+refer you to the Mik\TeX documentation concerning the addition of local packages:
+\begin{center}
+ \url{http://docs.miktex.org/manual/localadditions.html}
+\end{center}
+
+
+
+\subsection{Dependencies}
+
+
+\mpkiviat depends, of course on \MP~\cite{ctan-metapost}, as well as the
+packages and---if \mpkiviat is not used with
+\hologo{LuaLaTeX}~\cite{ctan-lualatex-doc,ctan-luatex} and the
+\package{luamplib} or \package{minim-mp}~\cite{ctan-luamplib,ctan-minim-mp}
+packages---the \package{latexmp}~\cite{ctan-latexmp} package.
+
+
+\section{Axis and lattice}
+
+\begin{colourband}
+ \macro|set_axis(«list of axis names»)|
+\medskip
+
+ The \meta{list of axis names} is a list delimited by commas with the names of
+ the different axis as \typeMP{string} (e.g.
+ \lstinline+"Légumes","Fruits","Produits laitiers"+).
+ \index{set_axis@\lstinline+set_axis+}
+\end{colourband}
+
+The command to draw the Kiviat background is the following:
+
+
+\begin{colourband}
+ \macro|draw_axis|
+ \index{draw_axis@\lstinline+draw_axis+}
+\end{colourband}
+
+The combinaison of these two commands produces, for example:
+\begin{ExempleMP}[sidebyside=false]
+input mpkiviat;
+beginfig(1);
+set_axis("Légumes","Viande","Lait","Pain","Poissons");
+draw_axis;
+endfig;
+\end{ExempleMP}
+
+By default, legend of each axis are written, but you can avoid that using the
+following command:
+
+\begin{colourband}
+ \macro|set_axis_legends(«boolean»)|
+ \medskip
+
+ \begin{description}
+ \item[\meta{boolean}:] \typeMP{true} or \typeMP{false}
+ \end{description}
+ \index{set_axis_legends@\lstinline+set_axis_legends+}
+\end{colourband}
+
+
+Default value for each axis is 10, and there is 10 steps for the lattice. You
+can redefine that with the following command that \emph{should be set before the
+drawing command} :
+\begin{colourband}
+ \macro|set_lattice_grid(«unit»,«max»)|
+\medskip
+
+ \begin{description}
+ \item[\meta{unit}:] (\typeMP{numeric}) is the interval between two lines of the lattice;
+ \item[\meta{max}:] (\typeMP{numeric}) is the maximum value for each axis.
+ \end{description}
+ \index{set_lattice_grid@\lstinline+set_lattice_grid+}
+\end{colourband}
+
+You can print the graduations for the lattice with the following command:
+\begin{colourband}
+ \macro|draw_grad(«prefix»,«suffix»,«axis number»)|
+\medskip
+
+\begin{description}
+ \item[\meta{prefix}:] (\typeMP{string}) is a string to add before each graduation;
+ \item[\meta{suffix}:] (\typeMP{suffix}) is a string to add after each graduation;
+ \item[\meta{axis number}:] (\typeMP{numeric}) is an integer to choose the axis
+ used for printing the graduations.
+\end{description}
+\index{draw_grad@\lstinline+draw_grad+}
+\end{colourband}
+
+\mpkiviat defines a unit that can be modified to scale the entire graph with the
+following command (that must be used before the command \lstinline+set_axis+).
+
+\begin{colourband}
+ \macro|set_kiviat_unit(«unit»)|
+\medskip
+
+\begin{description}
+ \item[\meta{unit}:] (\typeMP{string}, default \SI{0.3}{cm}) is the unit to
+ draw the graph.
+\end{description}
+\index{set_kiviat_unit@\lstinline+set_kiviat_unit+}
+\end{colourband}
+
+One can set colors for the axis and the lattice with the two following commands.
+
+
+\begin{colourband}
+ \macro|set_axis_color(«color»)|
+\medskip
+
+ \begin{description}
+ \item[\meta{color}:] (\typeMP{color}) is the color for drawing the axis arrows.
+ \end{description}
+ \index{set_axis_color@\lstinline+set_axis_color+}
+\end{colourband}
+
+
+\begin{colourband}
+ \macro|set_lattice_color(«color»)|
+\medskip
+
+ \begin{description}
+ \item[\meta{color}:] (\typeMP{color}) is the color for drawing the lattice.
+ \end{description}
+ \index{set_lattice_color@\lstinline+set_lattice_color+}
+\end{colourband}
+
+
+
+The following example illustrates some of the previous commands.
+
+\begin{ExempleMP}[sidebyside=false]
+input mpkiviat;
+beginfig(1);
+set_kiviat_unit(0.4cm);
+set_axis("Légumes","Viande","Lait","Pain","Poissons");
+set_axis_color((0.7,0.1,0.1));
+set_lattice_color((0.5,0.5,0.9));
+set_lattice_grid(100,600);
+draw_axis;
+draw_grad("","~€",3);
+endfig;
+\end{ExempleMP}
+
+
+\section{Add lines}
+
+Once you have drawn the background, you can add lines for your Kiviat diagram.
+The basic command to do that is the following:
+
+\begin{colourband}
+ \macro|draw_line(«list of values»)(«color»)|
+\medskip
+
+ \begin{description}
+ \item[\meta{list of value}:] (list of \typeMP{string}) values for the
+ different axis of the Kiviat diagram (e.g. \lstinline+"9","2","3"+). The
+ values must match the settings of the lattice.
+ \item[\meta{color}:] (\typeMP{color}) is the color for drawing the line.
+ \end{description}
+ \index{draw_line@\lstinline+draw_line+}
+\end{colourband}
+
+You can also draw and fill a Kiviat line with the following command:
+
+\begin{colourband}
+ \macro|filldraw_line(«list of values»)(«color»)|
+\medskip
+
+ \begin{description}
+ \item[\meta{list of value}:] (list of \typeMP{string}) values for the
+ different axis of the Kiviat diagram (e.g. \lstinline+"9","2","3"+). The
+ values must match the settings of the lattice.
+ \item[\meta{color}:] (\typeMP{color}) is the color for drawing the line. The
+ filling color is transparent\footnote{Thanks to Anthony Phan \MP{} code : \url{http://www-math.univ-poitiers.fr/~phan/metalpha.html}.}
+ \end{description}
+ \index{filldraw_line@\lstinline+filldraw_line+}
+\end{colourband}
+
+By default, there is mark on a Kiviat line. You can remove marks with the
+following command, setting the booelan argument to \lstinline+false+.
+
+
+
+\begin{colourband}
+ \macro|set_line_mark(«boolean»)|
+\medskip
+
+
+\begin{description}
+ \item[\meta{boolean}:] \typeMP{true} or \typeMP{false}
+\end{description}
+ \index{set_line_mark@\lstinline+set_line_mark+}
+\end{colourband}
+
+You can also choose the type of mark. \mpkiviat provides three types :
+\lstinline+"square"+, by default, \lstinline+"circle"+ and \lstinline+"custom"+.
+To choose one of them, you have to use the following command:
+\begin{colourband}
+ \macro|set_line_mark_type(«type»)|
+\medskip
+
+
+\begin{description}
+ \item[\meta{type}:] (\typeMP{string}) \lstinline+"square"+, by default,
+ \lstinline+"circle"+ and \lstinline+"custom"+.
+\end{description}
+ \index{set_line_mark_type@\lstinline+set_line_mark_type+}
+\end{colourband}
+
+If you choose \lstinline+custom+, you will have to define a macro
+\lstinline+line_mark_custom+ that take a \typeMP{pair} as argument and that
+define a cycled path shifted around the \typeMP{pair}. For instance, the
+\lstinline+line_mark_square+ command is defined as:
+\begin{mpcode}
+def line_mark_square(expr p)=
+ (((-1,-1)--(1,-1)--(1,1)--(-1,1)--cycle scaled _line_mark_scale) shifted p)
+enddef;
+\end{mpcode}
+
+You can adjust the size of the marks using the following scaling macro:
+\begin{colourband}
+ \macro|set_line_mark_scale(«scaling factor»)|
+\medskip
+
+
+\begin{description}
+ \item[\meta{scaling factor}:] is a \typeMP{numeric} that is, by default, 1.
+\end{description}
+ \index{set_line_mark_scale@\lstinline+set_line_mark_scale+}
+\end{colourband}
+
+Here is an example that illustrates some of the previous commands.
+
+\begin{ExempleMP}[sidebyside=false]
+input mpkiviat;
+beginfig(1);
+set_lattice_grid(100,500);
+set_kiviat_unit(0.4cm);
+set_axis("McCabe","LOC","Live Variables","Halstead N","Variablenspanne");
+draw_axis;
+
+filldraw_line(400,300,380,200,250)(red);
+set_line_mark_type("circle");
+filldraw_line(300,320,180,400,150)(blue);
+set_line_mark_type("square");
+set_line_mark_scale(2);
+filldraw_line(100,420,280,200,50)(green);
+endfig;
+\end{ExempleMP}
+
+\section{Legends}
+
+\mpkiviat provides the following command to add legends to a Kiviat diagram:
+
+\begin{colourband}
+ \macro|draw_legends.«place»(«list of names»)|
+\medskip
+
+
+\begin{description}
+ \item[\meta{place}:] is one of the standard \MP{} suffixes :
+ empty, \lstinline+lft+, \lstinline+rt+, \lstinline+top+,
+ \lstinline+bot+, \lstinline+ulft+, \lstinline+urt+, \lstinline+llft+ and
+ \lstinline+lrt+. The legend is placed at the given place of the bounding box
+ of the complete Kiviat diagram (without the legend). If it is empty, the
+ default place is \lstinline+rt+.
+ \item[\meta{list of names}:] is the list of \typeMP{string} of names for the
+ different lines in the order of the construction.
+\end{description}
+ \index{draw_legends@\lstinline+draw_legends+}
+\end{colourband}
+
+\begin{ExempleMP}[sidebyside=false]
+input mpkiviat;
+beginfig(1);
+set_lattice_grid(100,500);
+set_kiviat_unit(0.4cm);
+set_axis("McCabe","LOC","Live Variables","Halstead N","Variablenspanne");
+draw_axis;
+
+filldraw_line(400,300,380,200,250)(red);
+set_line_mark_type("circle");
+filldraw_line(300,320,180,400,150)(blue);
+set_line_mark_type("square");
+set_line_mark_scale(2);
+filldraw_line(100,420,280,200,50)(green);
+draw_legends.lrt("Première", "Deuxième", "Troisième");
+endfig;
+\end{ExempleMP}
+
+\printbibliography
+\printindex
+
+\end{document}
diff --git a/graphics/metapost/contrib/macros/mpkiviat/doc/test-2.pdf b/graphics/metapost/contrib/macros/mpkiviat/doc/test-2.pdf
new file mode 100644
index 0000000000..7b6dec4a9a
--- /dev/null
+++ b/graphics/metapost/contrib/macros/mpkiviat/doc/test-2.pdf
Binary files differ
diff --git a/graphics/metapost/contrib/macros/mpkiviat/metapost/mpkiviat.mp b/graphics/metapost/contrib/macros/mpkiviat/metapost/mpkiviat.mp
new file mode 100644
index 0000000000..135a071df1
--- /dev/null
+++ b/graphics/metapost/contrib/macros/mpkiviat/metapost/mpkiviat.mp
@@ -0,0 +1,318 @@
+% mpkiviat.mp v0.1
+% @Author: Maxime Chupin
+% @Date: 22 may 2024
+% @License: LATEX Project Public License 1.3c.
+
+if not known mplib: input latexmp fi;
+pair _axis[];
+
+numeric _axis_number;
+numeric _kiviat_unit;
+
+numeric _lattice_unit,_lattice_max,_value_max,_unit_value;
+_lattice_unit := 1;
+_lattice_max :=10;
+_value_max := 10;
+_unit_value := 1;
+_kiviat_unit:=0.3cm;
+
+
+pair _kiviat_lines[][];
+path _kiviat_path[];
+color _kiviat_lines_color[];
+numeric _line_nbr;
+_line_nbr:=0;
+
+def set_lattice_grid(expr u,m)=
+ save _nbr;
+ _nbr := (m/u);
+ _value_max := m;
+ _unit_value := u;
+ _lattice_max := floor(_nbr);
+enddef;
+
+
+string _axis_names[];
+
+color _kiviat_lattice_color, _kiviat_axis_color;
+_kiviat_axis_color:= black;
+_kiviat_lattice_color:= 0.8*white;
+
+vardef set_axis_color(expr c)=
+ _kiviat_axis_color:= c;
+enddef;
+
+def set_kiviat_unit(expr u)=
+ _kiviat_unit:=u;
+enddef;
+
+vardef set_lattice_color(expr c)=
+ _kiviat_lattice_color:= c;
+enddef;
+
+vardef set_axis(text t)=
+ _line_nbr:=0;
+ save _st,_i;
+ _axis_number:=0;
+ for _st=t:
+ _axis_number:= _axis_number+1;
+ _axis_names[_axis_number]:=_st;
+ endfor
+ for i:=1 upto _axis_number:
+ _axis[i]:=(cosd(i/_axis_number*360)*_lattice_max*_kiviat_unit,sind(i/_axis_number*360)*_lattice_max*_kiviat_unit);
+ endfor
+enddef;
+
+
+
+
+
+boolean _legend;
+_legend:=true;
+
+% function to determine the point of the bb that intersect the line
+% determined by the angle of the corresponding axis
+vardef _pointbb (expr p, a)=
+ save _bb,_d,_point;
+ path _bb,_d;
+ pair _point;
+ _bb := bbox p;
+ _d := (0,0)--(3000*cosd(a),3000*sind(a));
+ _point := _bb intersectionpoint _d;
+ _point
+enddef;
+
+% set legends true/false
+vardef set_axis_legends(expr b)=
+ _legend:=b;
+enddef;
+
+def draw_axis =
+ save _plabel;
+ picture _plabel;
+ for i:=_lattice_unit step _lattice_unit until _lattice_max :
+ draw for j:=1 upto _axis_number: (i/_lattice_max)*_axis[j]--endfor cycle withcolor
+ _kiviat_lattice_color;
+ endfor
+ for i:=1 upto _axis_number:
+ drawarrow (0,0)--1.2*_axis[i] withcolor _kiviat_axis_color;
+ endfor
+ if(_legend):
+ for i:=1 upto _axis_number:
+ _plabel := image(label(textext(_axis_names[i]),origin)); % passage
+ % par image et label pour centrer la bbox
+ draw _plabel
+ shifted (1.2*_axis[i]+labeloffset*(cosd(angle _axis[i]),sind(angle
+ _axis[i]))+_pointbb(_plabel,angle _axis[i])) ;
+ endfor;
+ fi
+enddef;
+
+def draw_grad(expr p,s)(expr j)=
+ for i:=1 upto _lattice_max:
+ unfill bbox (textext(p&decimal(i*_unit_value)&s) shifted (i/_lattice_max*_axis[j]));
+ draw textext(p&decimal(i*_unit_value)&s) shifted (i/_lattice_max*_axis[j]);
+ endfor
+enddef;
+
+
+
+vardef _build_line(text t)=
+ save _values,_i;
+ _line_nbr:=_line_nbr+1;
+ _i:=0;
+ for _values=t:
+ _i:=_i+1;
+ _kiviat_lines[_line_nbr][_i]:=(_values/_value_max)*_axis[_i];
+ if(_i=1):
+ _kiviat_path[_line_nbr]:=_kiviat_lines[_line_nbr][_i];
+ else:
+ _kiviat_path[_line_nbr]:=_kiviat_path[_line_nbr]--_kiviat_lines[_line_nbr][_i];
+ fi
+ endfor
+ _kiviat_path[_line_nbr]:=_kiviat_path[_line_nbr]--cycle;
+enddef;
+
+
+boolean _line_mark_b;
+_line_mark_b:=true;
+numeric _line_mark_scale;
+_line_mark_scale:=1;
+
+def set_line_mark_scale(expr n)=
+ _line_mark_scale:=n;
+enddef;
+
+def set_line_mark(expr b)=
+ _line_mark_b:=b;
+enddef;
+
+def line_mark_square(expr p)=
+ ((((-1,-1)--(1,-1)--(1,1)--(-1,1)--cycle) scaled _line_mark_scale) shifted p)
+enddef;
+
+def line_mark_circle(expr p)=
+ ((fullcircle scaled 2.5 scaled _line_mark_scale) shifted p)
+enddef;
+
+string _mark_type;
+_mark_type := "square";
+string _save_type[];
+boolean _save_mark_b[];
+numeric _save_scale[];
+
+def set_line_mark_type(expr s)=
+ _mark_type:=s;
+enddef;
+
+def _mark_line(expr c)=
+ _save_type[_line_nbr]:=_mark_type;
+ _save_scale[_line_nbr]:=_line_mark_scale;
+ for i:=1 upto _axis_number:
+ fill
+ if(_mark_type="square"):
+ line_mark_square
+ elseif(_mark_type="circle"):
+ line_mark_circle
+ elseif(_mark_type="custom"):
+ line_mark_custom
+ fi
+ (_kiviat_lines[_line_nbr][i]) withcolor c;
+ endfor;
+enddef;
+
+vardef draw_line(text t)(expr c)=
+ _build_line(t);
+ _kiviat_lines_color[_line_nbr]:=c;
+ draw _kiviat_path[_line_nbr] withcolor c;
+ _save_mark_b[_line_nbr]:=_line_mark_b;
+ if(_line_mark_b):
+ _mark_line(c);
+ fi;
+enddef;
+
+
+vardef filldraw_line(text t)(expr c)=
+ _build_line(t);
+ _kiviat_lines_color[_line_nbr]:=c;
+ alphafill(_kiviat_path[_line_nbr],c,0.1);
+ draw _kiviat_path[_line_nbr] withcolor c;
+ _save_mark_b[_line_nbr]:=_line_mark_b;
+ if(_line_mark_b):
+ _mark_line(c);
+ fi;
+enddef;
+
+vardef _anchor@# (expr p)=
+ if(str @# = "top"):
+ (1/2*(urcorner p)+1/2*(ulcorner p))
+ elseif(str @# = "bot"):
+ (1/2*(lrcorner p)+1/2*(llcorner p))
+ elseif(str @# = "lft"):
+ (1/2*(llcorner p)+1/2*(ulcorner p))
+ elseif(str @# = "rt" ):
+ (1/2*(lrcorner p)+1/2*(urcorner p))
+ elseif(str @# = "urt"):
+ (urcorner p)
+ elseif(str @# = "ulft"):
+ (ulcorner p)
+ elseif(str @# = "lrt"):
+ (lrcorner p)
+ elseif(str @# = "llft"):
+ (llcorner p)
+ elseif(str @# = "c"):
+ (1/4*(lrcorner p)+1/4*(urcorner p)+1/4*(llcorner p)+1/4*(ulcorner p))
+ else:
+ (1/4*(lrcorner p)+1/4*(urcorner p)+1/4*(llcorner p)+1/4*(ulcorner p))
+ fi
+
+enddef;
+
+vardef draw_legends@# (text l) =
+ save _mypic,i,_s_scale;
+ _s_scale := _line_mark_scale;
+ picture _mypic;
+ _mypic = image(
+ i:=0;
+ for s=l:
+ i:=i+1;
+ draw ((0,0)--(0.7*_kiviat_unit,0)) shifted (0,i*(_kiviat_unit)) withcolor
+ _kiviat_lines_color[i];
+ if(_save_mark_b[i]):
+ _line_mark_scale:=_save_scale[i];
+ fill
+ if(_save_type[i]="square"):
+ line_mark_square
+ elseif(_save_type[i]="circle"):
+ line_mark_circle
+ elseif(_save_type[i]="custom"):
+ line_mark_custom
+ fi
+ (0.5[(0,0),(0.7*_kiviat_unit,0)] )shifted (0,i*(_kiviat_unit))
+ withcolor _kiviat_lines_color[i];
+ fi
+ label.rt(textext(s),(0.7*_kiviat_unit,0) shifted (0,i*(_kiviat_unit)));
+ endfor
+ draw bbox currentpicture;
+ _line_mark_scale := _s_scale ;
+ );
+ draw _mypic
+ if(str @# = "top"):
+ shifted (_anchor.top(currentpicture)-_anchor.bot(_mypic))
+ elseif(str @# = "bot"):
+ shifted (_anchor.bot(currentpicture)-_anchor.top(_mypic))
+ elseif(str @# = "lft"):
+ shifted (_anchor.lft(currentpicture)-_anchor.rt(_mypic))
+ elseif(str @# = "rt" ):
+ shifted (_anchor.rt(currentpicture)-_anchor.lft(_mypic))
+ elseif(str @# = "urt"):
+ shifted (_anchor.urt(currentpicture)-_anchor.ulft(_mypic))
+ elseif(str @# = "ulft"):
+ shifted (_anchor.ulft(currentpicture)-_anchor.urt(_mypic))
+ elseif(str @# = "lrt"):
+ shifted (_anchor.lrt(currentpicture)-_anchor.llft(_mypic))
+ elseif(str @# = "llft"):
+ shifted (_anchor.llft(currentpicture)-_anchor.lrt(_mypic))
+ else:
+ shifted (_anchor.rt(currentpicture)-_anchor.lft(_mypic))
+ fi
+ ;
+enddef;
+% transparency Phan : http://www-math.univ-poitiers.fr/~phan/metalpha.html
+% revisité par Jean-Michel Sarlat
+color _tc;
+numeric _ta;
+picture _ap;
+
+def _AlphaFill expr c =
+ _ap := nullpicture;
+ _AlphaPicture(currentpicture,c);
+ addto currentpicture also _ap;
+enddef;
+
+vardef _AlphaPicture(expr p,c) =
+ save p_; picture p_;
+ p_ := nullpicture;
+ addto p_ contour c withcolor _ta[background,_tc];
+ for p__ within p:
+ if (not clipped p__) and (not bounded p__):
+ addto p_ also p__ withcolor
+ _ta[(redpart p__,greenpart p__,bluepart p__), _tc];
+ else:
+ begingroup save _ap;
+ picture _ap; _ap = nullpicture;
+ _AlphaPicture(p__,pathpart p__);
+ addto p_ also _ap;
+ endgroup;
+ fi
+ endfor;
+ clip p_ to c;
+ addto _ap also p_;
+enddef;
+
+vardef alphafill(expr p,c,a) =
+ _tc := c; _ta := a;
+ _AlphaFill p
+enddef;
+
+endinput; \ No newline at end of file
diff --git a/graphics/pgf/contrib/circuitikz/README.md b/graphics/pgf/contrib/circuitikz/README.md
index 584e271042..30e3589b74 100644
--- a/graphics/pgf/contrib/circuitikz/README.md
+++ b/graphics/pgf/contrib/circuitikz/README.md
@@ -37,6 +37,8 @@ in the preamble and compile away, both with PS and PDF target output.
It is higly recommended to go through the [tutorials in the manual](https://circuitikz.github.io/circuitikz/circuitikzmanualgit.pdf#c) and to learn a bit of Ti*k*Z before for example, go through at least the [basic Ti*k*Z one](https://tikz.dev/tutorial), but there are more suggestions in the documentation.
+*Notice* that for the time being, due to [this bug](https://bugs.launchpad.net/ubuntu/+source/context/+bug/2058409), automatic (CI) checks for ConTeXt compatibility is disabled. I (Romano) am still checking it at home, but I am not able to have it integrated in the CI.
+
### Development or newer version
If you want to use the git version, go to the [GitHub page for the project](https://circuitikz.github.io/circuitikz/), download the last version (or the one you want to use) — it's the links called "download the latest version in a single file". You will have a file called `circuitikzgit.sty` that you should put somewhere in your LaTeX input path; the best place is in the same directory where your main file live. Then, just use it instead of the normal one:
@@ -53,7 +55,7 @@ Be aware that options and style files can (and do) change between versions, so y
### Older version
-There is a roll-back mechanism in the package, that let you use older versions if you need them; the details are in the manual, look at the section named *"Incompabilities between versions"* for details.
+There is a roll-back mechanism in the package, that let you use older versions if you need them; the details are in the manual, look at the section named *"Incompatibilities between versions"* for details.
You have all the code and the corresponding manual available in the [in the github page](http://circuitikz.github.io/circuitikz/) of the project, since version 0.6 onward.
diff --git a/graphics/pgf/contrib/circuitikz/doc/changelog.tex b/graphics/pgf/contrib/circuitikz/doc/changelog.tex
index c79304aa16..0806a20b78 100644
--- a/graphics/pgf/contrib/circuitikz/doc/changelog.tex
+++ b/graphics/pgf/contrib/circuitikz/doc/changelog.tex
@@ -5,6 +5,62 @@ full list of changes.
\begin{itemize}
\item
+ Version 1.6.9 (2024-05-25)
+
+ Several new components and a bug fix for a nasty long-standing bug
+ about switching diode types.
+
+ \begin{itemize}
+ \tightlist
+ \item
+ Added a Relais-Shape (contributed by
+ \href{https://github.com/circuitikz/circuitikz/pull/795}{Jakob
+ ``DraUX'' on GitHub}
+ \item
+ Added a center tap anchor for tube filament (suggested by
+ \href{https://github.com/circuitikz/circuitikz/issues/792}{user
+ bogger33 on GitHub})
+ \item
+ Added neon lamps (two versions, suggested by
+ \href{https://github.com/circuitikz/circuitikz/issues/793}{user
+ bogger33 on GitHub})
+ \item
+ Added a configurable spark gap (suggested by
+ \href{https://github.com/circuitikz/circuitikz/issues/800}{user
+ bogger33 on GitHub})
+ \item
+ Fix a long-standing problem when
+ \href{https://github.com/circuitikz/circuitikz/issues/794}{(locally)
+ switching diode type}
+ \end{itemize}
+\item
+ Version 1.6.8 (2024-05-05)
+
+ Several new components, more anchors, a bit of documentation
+ enhancement; maybe the biggest change is the new ``flexible'' tube.
+
+ \begin{itemize}
+ \tightlist
+ \item
+ Added \texttt{mid} anchor to all traditional switches
+ \item
+ Added a slashed generic European-style resistor (thanks to
+ \href{https://tex.stackexchange.com/q/711702/38080}{Jana})
+ \item
+ Added a multi-anode tube for implementing nixies and vfd (thanks to
+ \href{https://github.com/circuitikz/circuitikz/issues/785}{GitHub
+ user nogger33})
+ \item
+ Switch the default compiler to pdflatex (see
+ https://tex.stackexchange.com/q/709273/38080)
+ \item
+ Added a warning about color and engine in the documentation
+ \item
+ Enhanced the documentation for instruments (thanks to
+ \href{https://github.com/circuitikz/circuitikz/issues/787}{Github
+ user mxxmxm})
+ \end{itemize}
+\item
Version 1.6.7 (2024-02-09)
Several new blocks, more flexible generic anchors for blocks, and a
@@ -325,7 +381,7 @@ full list of changes.
B. Cameron, user \texttt{@cameroncb1} on GitHub)
\item
Added Shockley diode (suggested by
- {[}@dauph{]}(https://tex.stackexchange.com/questions/646039/creating-a-shockley-diode-in-circuitikz))
+ \href{https://tex.stackexchange.com/questions/646039/creating-a-shockley-diode-in-circuitikz}{@dauph})
\end{itemize}
\item
Version 1.5.2 (2022-05-08)
@@ -439,7 +495,7 @@ full list of changes.
Robustify some shapes: do not let arrows option pass to the inner
drawing (see
\href{https://tex.stackexchange.com/a/632084/38080}{here} and
- \href{https://matrix.to/\#/!NuxCISwYQJuyWwNsEI:matrix.org/$vQO6luq1F66LJ79dERmaqKI46qMBcjStqYCPi725uZE?via=matrix.org\&via=2krueger.de\&via=im.f3l.de}{here})
+ \href{https://matrix.to/\#/!NuxCISwYQJuyWwNsEI:matrix.org/$vQO6luq1F66LJ79dERmaqKI46qMBcjStqYCPi725uZE?via=matrix.org&via=2krueger.de&via=im.f3l.de}{here})
\item
Add warning about global draw options in the manual
\item
@@ -1503,7 +1559,7 @@ A detailed list of changes can be seen below.
\item
Fixed varcap symbol at small scalings
\item
- New packet-option "straightvoltages, to draw straight(no curved)
+ New packet-option ``straightvoltages, to draw straight(no curved)
voltage arrows
\item
New option ``invert'' to revert the node direction at paths
diff --git a/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf b/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf
index add5ceae2a..cc6865c72f 100644
--- a/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf
+++ b/graphics/pgf/contrib/circuitikz/doc/circuitikz-context.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf b/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf
index c21540a9be..9f3d2b57e0 100644
--- a/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf
+++ b/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex b/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex
index c775d7f9fc..ac116af09e 100644
--- a/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex
+++ b/graphics/pgf/contrib/circuitikz/doc/circuitikzmanual.tex
@@ -193,6 +193,13 @@ Finally, the \TikZ{} library \texttt{bending} is loaded by the package, and its
\subsection{Related and extension packages}
+\subsubsection{Related packages}
+
+At the Friedrich-Alexander-Universität, a group of developers are implementing a graphical interface to draw circuits with \Circuitikz{}.
+You can find more information \href{https://github.com/circuitikz/circuitikz/issues/782}{in this GitHub issue} or, better, in their \href{https://ussi.e-technik.uni-erlangen.de/}{main site}.
+
+\subsubsection{Extension packages}
+
\Circuitikz{} is meant to be, as much as possible, format-agnostic (which means that it can be used from \LaTeX{}, plain \TeX{} and~\ConTeXt). It is growing in functionality and components, but not everything can be added to the package. In this section, there is a list of packages, available at CTAN, that extend or enhance \Circuitikz{} but are distributed separately.\footnote{If you have a package or know a package that should be listed here, please contact the \Circuitikz{} authors, or, better, send a pull request to the project and it will be added.}
\begin{description}
@@ -212,6 +219,7 @@ This same issue creates a lot of problems with compatibility between \Circuitikz
Also, notice that several components will interact in a funny way with global path options. Depending on the specific component, some parameters are inherited by the internal shape, and some others are reset. This is not easy to fix in general. We want some options to go through --- fill color, dashed pattern for example --- and some others to stay only in the outer path; and if the background shape needs some option for drawing the internal shape, like for example a rounded corner, it \emph{must} reset the external option. So there is no perfect solution, although since \texttt{v1.5.0} the shapes have been ``robustified'', so that by default arced corners and arrows parameters will \emph{not} be propagated into the shape.
Arrows with \texttt{to[]} components don't work, anyway, so basically avoid this situation.
+In some cases, also the engine you are using (as \texttt{pdflatex}, \texttt{xelatex}, and so on) can impact coloring in corner cases (or even not so in the corner, like in \href{https://tex.stackexchange.com/q/709273/38080}{american-style voltage source signs}).
\begin{LTXexample}[varwidth=true, basicstyle=\small\ttfamily]
\begin{circuitikz}[]
@@ -2049,6 +2057,7 @@ If you want the arrows to behave like the legacy symbols (which are shapes), \em
\circuitdescbip{open}{Open circuit}{}
\circuitdescbip*{generic}{Generic (symmetric) bipole}{}
\circuitdescbip*{xgeneric}{Crossed generic (symmetric) bipole}{}
+ \circuitdescbip*{sgeneric}{Slashed generic bipole}{}
\circuitdescbip*{tgeneric}{Tunable generic bipole}{}
\circuitdescbip*{ageneric}{Generic asymmetric bipole}{}
\circuitdescbip*{memristor}{Memristor}{Mr}
@@ -2961,16 +2970,50 @@ A similar approach can be used for dependent sources. Just remember that the anc
\subsection{Instruments}
+\subsubsection{Basic round instruments}
+
\begin{groupdesc}
- \circuitdescbip*{ammeter}{Ammeter}{}
- \circuitdescbip*{voltmeter}{Voltmeter}{}
- \circuitdescbip*{ohmmeter}{Ohmmeter}{}
\circuitdescbip*{rmeter}{Round meter (use \texttt{t=...} for the symbol)}{}(left/135/0.2, right/45/0.2, center/-90/0.3)
\circuitdescbip*{rmeterwa}{Round meter with arrow (use \texttt{t=...} for the symbol)}{}(left/135/0.2, right/45/0.2, center/-90/0.3)
+ \circuitdescbip*{ammeter}{Legacy ammeter}{}
+ \circuitdescbip*{voltmeter}{Legacy voltmeter}{}
+ \circuitdescbip*{ohmmeter}{Legacy ohmmeter}{}
+\end{groupdesc}
+
+You can define styles if you want to use the new shapes for round instrument similarly to the legacy ones:%
+\footnote{Suggested by \href{https://github.com/circuitikz/circuitikz/issues/787}{user mxxmxn on GitHub}.}
+
+\begin{LTXexample}[varwidth=true]
+\tikzset{vmeter/.style={rmeterwa, t=V}}
+\tikzset{ameter/.style={rmeterwa, t=A}}
+\tikzset{ometer/.style={rmeterwa, t=$\Omega$}}
+
+\begin{tikzpicture}
+ % Old meter style
+ \draw (0,2) to[voltmeter] ++(2,0)
+ to[ammeter] ++(2,0)
+ to[ohmmeter] ++(2,0);
+ % New meter style
+ \draw (0,0) to[vmeter] ++(2,0)
+ to[ameter] ++(2,0)
+ to[ometer] ++(2,0);
+\end{tikzpicture}
+\end{LTXexample}
+
+\subsubsection{Square instruments}
+
+Sometimes it is better to use a shape for instruments which is very different from the round symbols used for sources.
+
+\begin{groupdesc}
\circuitdescbip*{smeter}{Square meter (use \texttt{t=...} for the symbol)}{}(left/135/0.2, right/45/0.2, center/-90/0.3, in 1/-135/.5, in 2/-45/.5)
\circuitdescbip*{qiprobe}{QUCS-style current probe}{}(left/135/0.2, right/45/0.2, center/-90/0.3)
\circuitdescbip*{qvprobe}{QUCS-style voltage probe}{}(left/135/0.2, right/45/0.2, center/-90/0.3)
\circuitdescbip*{qpprobe}{QUCS-style power probe}{}(left/135/0.2, right/45/0.2, center/-90/0.3, v+/-135/.5, v-/-45/.5)
+\end{groupdesc}
+
+\subsubsection{Oscilloscopes and current probes}
+
+\begin{groupdesc}
\circuitdescbip*[oscope]{oscope}{Oscilloscope\footnotemark}{}(left/135/0.2, right/45/0.2,
in 1/-135/0.4, in 2/-45/0.4)
\footnotetext{Suggested by \texttt{@nobrl} on GitHub}
@@ -3223,6 +3266,8 @@ Here you'll find bipoles that are not easily grouped in the categories above.
\circuitdescbip*{fuse}{Fuse}{}
\circuitdescbip*{afuse}{Asymmetric fuse}{asymmetric fuse}
\circuitdescbip{wfuse}{``wiggly'' fuse}{wiggly fuse}()[left/110/0.2, right/70/0.2]
+ \circuitdescbip*{relais}{Relais\footnotemark}{}
+ \footnotetext{Contributed by \href{https://github.com/circuitikz/circuitikz/pull/795}{Jakob «DraUX»}}
\circuitdescbip{squid}{Squid}{}
\circuitdescbip{barrier}{Barrier}{}
\circuitdescbip{openbarrier}{Open barrier}{}
@@ -3244,6 +3289,13 @@ If otherwise \texttt{americangfsurgearrester} option is active (or the style \te
\begin{groupdesc}
\circuitdescbip*{lamp}{Lamp}{}
\circuitdescbip*{bulb}{Bulb}{}
+ \circuitdescbip*{neonlampcc}{Neon lamp\footnotemark\ (double cathode style)}{}
+ \footnotetext{The neon lamps have been added in \texttt{v1.6.9} thanks to a suggestion by \href{https://github.com/circuitikz/circuitikz/issues/793}{user bogger33 on GitHub}.}
+ \circuitdescbip*{neonlampac}{Neon lamp (anode and cathode style)}{}
+ \circuitdescbip*{sparkgap}{Spark gap\footnotemark (unenclosed)}{}
+ \footnotetext{The spark gap has been added in \texttt{v1.6.9} thanks to a suggestion by \href{https://github.com/circuitikz/circuitikz/issues/800}{user bogger33 on GitHub}.}
+ \circuitdescbip*[sparkgap]{sparkgap, sparkgap/circle}{Spark gap}{}
+ \circuitdescbip*[sparkgap]{sparkgap, sparkgap/dot, sparkgap/circle}{Spark gap (gas filled)}{}
\circuitdescbip*{loudspeaker}{loudspeaker}{}( north/90/0.4, ne/45/0.4, east/0/0.4, se/-45/0.4, south/-90/0.4, sw/-135/0.4, west/180/0.4, nw/135/0.4, left/135/0.2, right/45/0.2, center/-135/0.2)
\circuitdescbip*{mic}{mic}{}( north/90/0.4, east/0/0.4, south/-90/0.4, west/180/0.4, left/135/0.2, right/45/0.2, center/-135/0.2)
\circuitdescbip*{tlmic}{tail-less mic\footnotemark}{}( north/90/0.4, east/0/0.4, south/-90/0.4, west/180/0.4, left/135/0.2, right/45/0.2, center/-135/0.2)
@@ -3281,9 +3333,9 @@ You have two types of microphones; \texttt{mic} has protruding connection and \t
\subsubsection{Miscellaneous element customization}\label{sec:tweak-misc}
-You can change the scale of all the miscellaneous elements by setting the key \texttt{misc/scale} to something different from the default \texttt{1.0}.
+You can change the scale of all the miscellaneous elements by setting the key \texttt{misc/scale} to something different from the default \texttt{1.0}; relative thickness can be controlled with \texttt{misc/thickness}.
-\paragraph{Wiggly fuses} can have (or not have) poles; you can switch between the two forms by setting to \texttt{true} or \texttt{false} (default \texttt{true}) the key \texttt{bipoles/wfuse/dots}; if they have poles, you can choose any of the pole shapes with the key \texttt{bipoles/wfuse/shape}.
+\paragraph{Wiggly fuses.} Wiggly fuses can have (or not have) poles; you can switch between the two forms by setting to \texttt{true} or \texttt{false} (default \texttt{true}) the key \texttt{bipoles/wfuse/dots}; if they have poles, you can choose any of the pole shapes with the key \texttt{bipoles/wfuse/shape}.
The pole nodes are named \texttt{-left} and \texttt{-right} so that you can access their borders.
\begin{LTXexample}[varwidth=true, basicstyle=\small\ttfamily]
@@ -3299,6 +3351,30 @@ The pole nodes are named \texttt{-left} and \texttt{-right} so that you can acce
\end{circuitikz}
\end{LTXexample}
+\paragraph{Neon lamps.} Neon lamp ``dot'' size is the same as the size of poles (\texttt{circ} and \texttt{ocirc}), and they can be changed locally:
+\begin{LTXexample}[varwidth=true, basicstyle=\small\ttfamily]
+\begin{tikzpicture}
+ \draw (0,0) to[neonlampcc, nodes width=0.03] ++(2,0)
+ to[neonlampac, misc/thickness=3] ++(2,0);
+\end{tikzpicture}
+\end{LTXexample}
+
+\paragraph{Spark gap.} The \texttt{sparkgap} component is similar to the (American) surge arrester, but it's more configurable; it will render bare (unenclosed) by default, but you can add a (fillable) enclosure with the key \texttt{sparkgap/circle} and a dot with \texttt{sparkgap/dot} (they are boolean keys, false by default).
+Moreover, the arrows are configurable like other arrows in the package (see~\ref{sec:tunablearrows}) using the \texttt{sparkgap end arrow} key (default \texttt{Triangle[scale=2]}). The gap is tunable with \texttt{sparkgap/gap} (default \texttt{0.05}).
+\begin{LTXexample}[varwidth=true, basicstyle=\small\ttfamily]
+\begin{tikzpicture}
+ \draw (0,2) to[sparkgap, l=gap\textsubscript{1}] ++(2,0)
+ to[sparkgap, sparkgap/circle,
+ sparkgap/dot, l=S2] ++(2,0);
+ \ctikzset{sparkgap end arrow={Kite[scale=1.5]}}
+ \draw (0,0) to[sparkgap, l=S3] ++(2,0)
+ to[sparkgap, l=S4, sparkgap/circle,
+ sparkgap/gap=0.15] ++(2,0);
+\end{tikzpicture}
+\end{LTXexample}
+As in neon lamps, the dot (if activated by the key \texttt{sparkgap/dot}) follows the size of poles and can be changed locally.
+
+
\subsection{Multiple wires (buses)}
These are simple drawings to indicate multiple wires.
@@ -4784,7 +4860,8 @@ Note that the \verb|diodetube| is used as component name to avoid clashes with t
Normally, the filament is not drawn. If you want a filament, put the \verb|filament| option in the node description:
\begin{groupdesc}
- \circuitdesc*{diodetube,filament}{Tube Diode}{}(anode/90/0.2, filament 1/-135/0.2, filament 2/-45/0.2 )
+ \circuitdesc*{diodetube,filament}{Tube Diode\footnotemark}{}(anode/90/0.2, filament 1/-90/0.4, filament 2/-45/0.2, filament center/0/0.5 )
+ \footnotetext{The \texttt{filament center} anchor has been added in \texttt{v1.6.9} thanks to a suggestion by \href{https://github.com/circuitikz/circuitikz/issues/792}{user bogger33 on GitHub}.}
\end{groupdesc}
Sometimes, you don't want the cathode to be drawn (but you do want the filament). Use the \verb|nocathode| option in the node description:
@@ -4826,18 +4903,27 @@ fully configurable, and the attributes are described below:
\verb|tubes/filament angle| & \verb|15| & angle from the centerpoint \\
\end{tabular}
-Conventionally, the model of the tube is indicated at the \verb|east| anchor:
+Conventionally, the model of the tube is indicated at the \verb|east| anchor, and you can access filament anchors if you need them:
-\begin{LTXexample}[varwidth]
-\ctikzset{tubes/width=1.4}
-\ctikzset{tubes/height=1}
-\begin{circuitikz}
-\draw (0,0) node[triode] (Tri) {};
-\draw (Tri.east) node[right] {12AX7};
-\end{circuitikz}
+\begin{LTXexample}[varwidth=true, basicstyle=\small\ttfamily]
+\ctikzset{tubes/width=1.4, tubes/height=1}
+\begin{circuitikz}
+ \draw (0,2) node[triode, filament] (Tri) {};
+ \draw (Tri.east) node[right] {12AX7};
+ \ctikzset{tubes/filament angle=40,
+ tubes/filament distance=0.2}
+ \draw (0,0) node[triode, filament] (Pent) {};
+ \draw (Pent.east) node[right] {BOH};
+ \path (Tri.filament 1) node[red,ocirc]{};
+ \path (Pent.filament 1) node[red,ocirc]{};
+ \path (Tri.filament center) node[blue,ocirc]{};
+ \draw (Pent.filament center) -- ++(0,-1) node[tlground]{};
+ \end{circuitikz}
\end{LTXexample}
+
+
Example triode amplifier:
\begin{lstlisting}
@@ -4947,6 +5033,60 @@ The dashed line pattern can be changed by setting the key \texttt{tubes/partial
\end{LTXexample}
+\subsubsection{Multi-anode tube}
+
+The multi-anode tube (\texttt{matube}) is a component thought to be tailored for several different usages,\footnote{It was added in \texttt{v1.6.8} after suggestions by user \texttt{bogger33} on GitHub \href{https://github.com/circuitikz/circuitikz/issues/781}{here} and \href{https://github.com/circuitikz/circuitikz/issues/785}{here}.} as shown in the examples below.
+
+The anchors for the multiple anodes have also alias names to ease the use in the case of implementing nixie tubes, because in that case the anode/cathode roles are swapped.
+
+\begin{groupdesc}
+ \circuitdesc*{matube}{Multi-anode tube}{}(anode 1/110/0.2, anode 2/60/0.2, anode 3/-30/0.2, cathode/-90/0.2, control/180/0.2 )
+ \circuitdesc*{matube, nixieanode, anodedot, nogrid}{Multi-anode tube used for nixie tubes}{}(nixie k1/110/0.2, nixie k2/60/0.2, nixie k3/-30/0.2, nixie a/-90/0.2)
+\end{groupdesc}
+
+Basically all the parameters available for triodes are available. The main difference is that the \texttt{anode width} parameter define the length of \emph{all} the anodes; those tubes are normally used with a \texttt{width} parameter bigger than \texttt{height}, to have an elongated device.
+
+The additional parameters/flags available only for \texttt{matube}s are the following.
+
+\begin{tabular}{l | l | l}
+ Key/Flag & Default value & Description\\
+ \hline
+ \texttt{anodes} & 3 & number of anodes \\
+ \texttt{anodedot} & false & substitute anodes bar for dots \\
+ \texttt{nixieanode} & false & substitute the cathode for the nixie-style anode \\
+ \texttt{nogrid} & false & suppresses the drawing of the grid \\
+\end{tabular}
+
+In the next example, we define a 10-anodes VFD tube:
+
+\begin{LTXexample}[varwidth=true, basicstyle=\small\ttfamily]
+\tikzset{vfd 10/.style={matube, filament, nocathode,
+ circuitikz/tubes/.cd,
+ width=3.6, height=1, anodes=10, anode width=0.6,
+ cathode width=0.1,
+}}
+\begin{circuitikz}[european]
+ \draw (0,0) node[vfd 10](A){};
+ \foreach \i in {1,...,10} \path (A.anode \i)
+ node[red, ocirc]{} node[above]{\tiny \i};
+\end{circuitikz}
+\end{LTXexample}
+
+And a 10-cathodes nixie tube:
+
+
+\begin{LTXexample}[varwidth=true, basicstyle=\small\ttfamily]
+\tikzset{nixie/.style={matube, nogrid, nixieanode,
+ anodedot, circuitikz/tubes/.cd, cathode width=0.6,
+ width=3.6, height=1, anodes=10, anode width=0.6,
+}}
+\begin{circuitikz}[european]
+\draw (0,0) node[nixie](A){};
+\foreach \i in {1,...,10} \path (A.nixie k\i)
+ node[red, ocirc]{} node[above]{\tiny \i};
+ \path (A.nixie a) node[red, ocirc]{};
+\end{circuitikz}
+\end{LTXexample}
\subsubsection{Other tubes-like components}
@@ -5831,28 +5971,28 @@ The switches can be scaled with the key \texttt{switches/scale} (default \texttt
These are all of the to-style type:
\begin{groupdesc}
- \circuitdescbip[cspst]{switch}{Switch}{spst}
+ \circuitdescbip[cspst]{switch}{Switch}{spst}(left/135/0.1, right/45/0.1, mid/90/0.3)
\circuitdescbip[cspst]{closing switch}{Closing switch}{cspst}
\circuitdescbip[ospst]{opening switch}{Opening switch}{ospst}
- \circuitdescbip[nos]{normal open switch}{Normally open switch}{nos}
+ \circuitdescbip[nos]{normal open switch}{Normally open switch}{nos}(left/135/0.1, right/45/0.1, mid/90/0.3)
\circuitdescbip[ncs]{normal closed switch}{Normally closed switch}{ncs}
\circuitdescbip[oncs]{opening normal closed switch}{Opening normally closed switch}{oncs}
\circuitdescbip[cncs]{closing normal closed switch}{Closing normally closed switch}{cncs}
\circuitdescbip[onos]{opening normal open switch}{Opening normally open switch}{onos}
\circuitdescbip[cnos]{closing normal open switch}{Closing normally open switch\footnotemark}{cnos}
\footnotetext{These last four were contributed by \href{https://tex.stackexchange.com/questions/693446/new-switch-components-for-circuitikz}{Jakob «DraUX»}}
- \circuitdescbip[pushbutton]{push button}{Normally open push button}{normally open push button, nopb}(tip/0/0.2)
- \circuitdescbip[ncpushbutton]{normally closed push button}{Normally closed push button}{ncpb}(tip/0/0.2)
- \circuitdescbip[pushbuttonc]{normally open push button closed}{Normally open push button (in closed position)}{nopbc}(tip/0/0.2)
- \circuitdescbip[ncpushbuttono]{normally closed push button open}{Normally closed push button (in open position)}{ncpbo}(tip/0/0.2)
- \circuitdescbip[toggleswitch]{toggle switch}{Toggle switch}{}
- \circuitdescbip*{reed}{Reed switch}{}
+ \circuitdescbip[pushbutton]{push button}{Normally open push button}{normally open push button, nopb}(tip/0/0.2, mid/-90/0.2)
+ \circuitdescbip[ncpushbutton]{normally closed push button}{Normally closed push button}{ncpb}(tip/0/0.2, mid/-90/0.2)
+ \circuitdescbip[pushbuttonc]{normally open push button closed}{Normally open push button (in closed position)}{nopbc}(tip/0/0.2, mid/-90/0.2)
+ \circuitdescbip[ncpushbuttono]{normally closed push button open}{Normally closed push button (in open position)}{ncpbo}(tip/0/0.2, mid/-90/0.2)
+ \circuitdescbip[toggleswitch]{toggle switch}{Toggle switch}{}(out 1/0/0.2, out 2/0/0.2, in/135/0.1, mid/-90/0.2)
+ \circuitdescbip*{reed}{Reed switch}{}(left/135/0.1, right/45/0.1, mid/90/0.3)
\end{groupdesc}
while this is a node-style component:
\begin{groupdesc}
- \circuitdesc{spdt}{spdt}{}( in/180/0.2, out 1/0/0.2, out 2/0/0.2 )
+ \circuitdesc{spdt}{spdt}{}(in/180/0.2, out 1/0/0.2, out 2/0/0.2, mid/90/0.2)
\end{groupdesc}
\begin{LTXexample}[varwidth=true]
@@ -9610,6 +9750,7 @@ after loading \Circuitikz, and it will try to patch the default commands to keep
Before 1.5.0, \Circuitikz{} used black as the default color. Now it tries to follow the current color, as \TikZ{} does normally; but notice that there is a difference with the fill strategy:
+
\begin{LTXexample}[pos=t]
\color{red}
Red text
@@ -9639,6 +9780,8 @@ Basically, you should have no problem if:
Nevertheless, if you really need to do strange things with colors you can read on; you can do almost everything but there are several glitches to take into account.
+Moreover, in some cases, also the engine you are using (as \texttt{pdflatex}, \texttt{xelatex}, and so on) can impact corner cases (or even not so corner, like in \href{https://tex.stackexchange.com/q/709273/38080}{american-style voltage source signs}).
+
\subsection{Shape colors}
The color of the components is stored in the key \verb!\circuitikzbasekey/color!. Circui\TikZ\ tries to follow the color set in \TikZ, although sometimes it fails. The following circuit will fail to draw the circuit in red if the patching of the inner commands of \TikZ{} fails, like for example in \ConTeXt{}.
diff --git a/graphics/pgf/contrib/circuitikz/tex/circuitikz.sty b/graphics/pgf/contrib/circuitikz/tex/circuitikz.sty
index fa00218f0f..afa91d4b2b 100644
--- a/graphics/pgf/contrib/circuitikz/tex/circuitikz.sty
+++ b/graphics/pgf/contrib/circuitikz/tex/circuitikz.sty
@@ -16,8 +16,8 @@
\providecommand\DeclareRelease[3]{}
\providecommand\DeclareCurrentRelease[2]{}
-\def\pgfcircversion{1.6.7}
-\def\pgfcircversiondate{2024/02/09}
+\def\pgfcircversion{1.6.9}
+\def\pgfcircversiondate{2024/05/25}
\DeclareRelease{0.4}{2012/12/20}{circuitikz-0.4-body.tex}
\DeclareRelease{v0.4}{2012/12/20}{circuitikz-0.4-body.tex}
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex
index 5be686bdff..626ed28812 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcircbipoles.tex
@@ -282,6 +282,26 @@
\pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
\pgfusepath{draw}
}
+%
+% generic slashed, suggested by Jana on TeX.stackexchange.com
+% https://tex.stackexchange.com/questions/711702/european-relay-with-circuitikz
+% inherit "generic" properties
+%
+\pgfcircdeclarebipolescaled{resistors}
+{}
+{\ctikzvalof{bipoles/generic/height}}
+{sgeneric}
+{\ctikzvalof{bipoles/generic/height}}
+{\ctikzvalof{bipoles/generic/width}}
+{
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@draworfill
+ % slash it
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+}
%% Generic empty tunable
\pgfcircdeclarebipolescaled{resistors}
{
@@ -805,6 +825,7 @@
\pgfcirc@activate@bipole@simple{l}{ageneric}
\pgfcirc@activate@bipole@simple{l}{tgeneric}
\pgfcirc@activate@bipole@simple{l}{xgeneric}
+\pgfcirc@activate@bipole@simple{l}{sgeneric}
\pgfcirc@activate@bipole@simple{l}{fullgeneric}
\pgfcirc@activate@bipole@simple{l}{tfullgeneric}
\pgfcirc@activate@bipole@simple{l}{short}
@@ -3675,9 +3696,9 @@
\pgf@circuit@fulldiodefalse
\ctikzset{diode/.is choice}
-\ctikzset{diode/empty/.code = \pgf@circuit@fulldiodefalse\pgf@circuit@strokediodefalse}%default
-\ctikzset{diode/full/.code = \pgf@circuit@fulldiodetrue }
-\ctikzset{diode/stroke/.code = \pgf@circuit@strokediodetrue}
+\ctikzset{diode/empty/.code = \pgf@circuit@fulldiodefalse\pgf@circuit@strokediodefalse}%default
+\ctikzset{diode/full/.code = \pgf@circuit@fulldiodetrue\pgf@circuit@strokediodefalse}
+\ctikzset{diode/stroke/.code = \pgf@circuit@fulldiodefalse\pgf@circuit@strokediodetrue}
\tikzset{full diodes/.style = { \circuitikzbasekey/diode = full}}
\tikzset{empty diodes/.style = { \circuitikzbasekey/diode = empty}}
@@ -4809,12 +4830,22 @@
\pgf@circ@subset@color@dash{switch arrows}
\pgfcirc@set@arrows{switch}{}{latexslim}
}
+\def\pgf@circ@savedanchor@trad@midlever#1#2{% #1 -> name #2 -> relative height
+ \savedanchor\midlever{% this is the full height of the "handle" of switch
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@y=\ctikzvalof{bipoles/#1/height}\pgf@circ@scaled@Rlen
+ \pgf@x=0pt\pgf@y=0.5\pgf@y
+ }
+ \anchor{mid}{\midlever\pgf@y=#2\pgf@y}
+}
%%>>>
%% Shapes Node for bipoles switches and similar things%<<<
%% (Closing) SPST
\pgfcircdeclarebipolescaled{switches}
-{}
+{
+ \pgf@circ@savedanchor@trad@midlever{spst}{0.6}
+}
{\ctikzvalof{bipoles/spst/depth}}
{cspst}
{\ctikzvalof{bipoles/spst/height}}
@@ -4836,7 +4867,9 @@
%% Opening SPST
\pgfcircdeclarebipolescaled{switches}
-{}
+{
+ \pgf@circ@savedanchor@trad@midlever{spst}{0.6}
+}
{\ctikzvalof{bipoles/spst/depth}}
{ospst}
{\ctikzvalof{bipoles/spst/height}}
@@ -4858,7 +4891,9 @@
%% Normal open Switch
\pgfcircdeclarebipolescaled{switches}
-{}
+{
+ \pgf@circ@savedanchor@trad@midlever{nos}{0.5}
+}
{\ctikzvalof{bipoles/nos/depth}}
{nos}
{\ctikzvalof{bipoles/nos/height}}
@@ -4873,7 +4908,9 @@
%% Normal closed Switch
\pgfcircdeclarebipolescaled{switches}
-{}
+{
+ \pgf@circ@savedanchor@trad@midlever{ncs}{0.5}
+}
{\ctikzvalof{bipoles/ncs/depth}}
{ncs}
{\ctikzvalof{bipoles/ncs/height}}
@@ -4892,7 +4929,9 @@
% Opening normal closed Switch
\pgfcircdeclarebipolescaled{switches}
-{}
+{
+ \pgf@circ@savedanchor@trad@midlever{ncs}{0.5}
+}
{\ctikzvalof{bipoles/ncs/depth}}
{oncs}
{\ctikzvalof{bipoles/ncs/height}}
@@ -4920,7 +4959,9 @@
%% Closing normal closed Switch
\pgfcircdeclarebipolescaled{switches}
-{}
+{
+ \pgf@circ@savedanchor@trad@midlever{ncs}{0.5}
+}
{\ctikzvalof{bipoles/ncs/depth}}
{cncs}
{\ctikzvalof{bipoles/ncs/height}}
@@ -4948,7 +4989,9 @@
%% Opening normal open Switch
\pgfcircdeclarebipolescaled{switches}
-{}
+{
+ \pgf@circ@savedanchor@trad@midlever{ncs}{0.5}
+}
{\ctikzvalof{bipoles/ncs/depth}}
{onos}
{\ctikzvalof{bipoles/ncs/height}}
@@ -4976,7 +5019,9 @@
%% Closing normal open Switch
\pgfcircdeclarebipolescaled{switches}
-{}
+{
+ \pgf@circ@savedanchor@trad@midlever{ncs}{0.5}
+}
{\ctikzvalof{bipoles/ncs/depth}}
{cnos}
{\ctikzvalof{bipoles/ncs/height}}
@@ -5006,6 +5051,8 @@
\pgfcircdeclarebipolescaled{switches}
{
\anchor{tip}{\northeast\pgf@x=0pt\relax}
+ % we can use the generic here, the "bar" is related to bipoles/*/height
+ \pgf@circ@savedanchor@trad@midlever{pushbutton}{0.5}
}
{\ctikzvalof{bipoles/pushbutton/height 2}}
{pushbutton}
@@ -5029,6 +5076,11 @@
\pgfcircdeclarebipolescaled{switches}
{
\anchor{tip}{\northeast\pgf@x=0pt\relax}
+ \savedanchor{\nodeheight}{
+ \pgf@x=0pt\pgf@y=\ctikzvalof{nodes width}\pgf@circ@Rlen
+ }
+ \anchor{mid}{\nodeheight\pgf@y=-\pgf@y}
+ % \pgf@circ@savedanchor@trad@midlever{pushbutton}{0.5}
}
{\ctikzvalof{bipoles/pushbutton/height 2}}
{ncpushbutton}
@@ -5054,11 +5106,15 @@
%% https://github.com/circuitikz/circuitikz/issues/128#issuecomment-731771299
\pgfcircdeclarebipolescaled{switches}
{
+ \savedanchor{\nodeheight}{
+ \pgf@x=0pt\pgf@y=\ctikzvalof{nodes width}\pgf@circ@Rlen
+ }
\anchor{tip}{
- \pgf@circ@res@temp=\ctikzvalof{nodes width}\pgf@circ@Rlen
+ \nodeheight\pgf@circ@res@temp=\pgf@y
\northeast\divide\pgf@y by 2\advance\pgf@y by \pgf@circ@res@temp
\pgf@x=0pt\relax
}
+ \anchor{mid}{\nodeheight}
}
{\ctikzvalof{bipoles/pushbutton/height 2}}
{pushbuttonc}
@@ -5082,11 +5138,15 @@
%% Normally closed Push Button now open
\pgfcircdeclarebipolescaled{switches}
{
+ \savedanchor{\nodeheight}{
+ \pgf@x=0pt\pgf@y=\ctikzvalof{nodes width}\pgf@circ@Rlen
+ }
\anchor{tip}{
- \pgf@circ@res@temp=\ctikzvalof{nodes width}\pgf@circ@Rlen
+ \nodeheight\pgf@circ@res@temp=\pgf@y
\northeast\divide\pgf@y by 2\advance\pgf@y by \pgf@circ@res@temp
\pgf@x=0pt\relax
}
+ \anchor{mid}{\northeast\pgf@x=0pt\pgf@y=-0.5\pgf@y}
}
{\ctikzvalof{bipoles/pushbutton/height 2}}
{ncpushbuttono}
@@ -5110,7 +5170,9 @@
}
%%% reed switches
\pgfcircdeclarebipolescaled{switches}
-{}
+{
+ \pgf@circ@savedanchor@trad@midlever{nos}{0.5}
+}
{\ctikzvalof{bipoles/reed/depth}}
{reed}
{\ctikzvalof{bipoles/reed/height}}
@@ -5237,14 +5299,10 @@
}
\pgfcircdeclarebipole{
- \anchor{out 1}{
- \northeast
- \pgf@y=0cm
- }
- \anchor{out 2}{
- \northeast
- \pgf@y=.8\pgf@y
- }
+ \anchor{out 1}{\northeast\pgf@y=0pt\relax}
+ \anchor{out 2}{\northeast\pgf@y=.8\pgf@y}
+ \anchor{in}{\northeast\pgf@y=0pt\pgf@x=-\pgf@x}
+ \anchor{mid}{\northeast\pgf@x=0.2\pgf@x\pgf@y=0.25\pgf@y}
}
{\ctikzvalof{tripoles/toggleswitch/height 2}}
{toggleswitch}
@@ -5304,82 +5362,30 @@
\pgf@x=-\ctikzvalof{tripoles/spdt/width}\pgf@circ@scaled@Rlen
\pgf@x=.5\pgf@x
}
- \anchor{left}{%
- \northwest
- \pgf@y=0pt
- }
- \anchor{in}{
- \northwest
- \pgf@y=0pt
- }
- \anchor{out 1}{
- \northwest
- \pgf@x=-\pgf@x
- }
- \anchor{out 2}{
- \northwest
- \pgf@x=-\pgf@x
- \pgf@y=-\pgf@y
- }
- \anchor{center}{
- \pgf@y=0pt
- \pgf@x=0pt
- }
- \anchor{east}{
- \northwest
- \pgf@y=0pt
- \pgf@x=-\pgf@x
- }
- \anchor{west}{
- \northwest
- \pgf@y=0pt
- }
- \anchor{south}{
- \northwest
- \pgf@x=0pt
- \pgf@y=-\pgf@y
- }
- \anchor{north}{
- \northwest
- \pgf@x=0pt
- }
- \anchor{south west}{
- \northwest
- \pgf@y=-\pgf@y
- }
- \anchor{north east}{
- \northwest
- \pgf@x=-\pgf@x
- }
- \anchor{north west}{
- \northwest
- }
- \anchor{south east}{
- \northwest
- \pgf@x=-\pgf@x
- \pgf@y=-\pgf@y
- }
+ \pgfcirc@northwest@symmetric@geoanchors
+ \anchor{in}{\northwest\pgf@y=0pt}
+ \anchor{out 1}{\northwest\pgf@x=-\pgf@x}
+ % this is "by eye", it'll be wrong with non-standard ocirc
+ \anchor{mid}{\northwest\pgf@x=0pt\pgf@y=0.37\pgf@y}
+ \anchor{out 2}{\northwest\pgf@x=-\pgf@x \pgf@y=-\pgf@y}
+ \anchor{center}{\pgf@y=0pt\pgf@x=0pt}
\pgf@circ@draw@component{
\pgf@circ@setcolor
-
\northwest
\pgf@circ@res@up = \pgf@y
\pgf@circ@res@down = -\pgf@y
\pgf@circ@res@right = -\pgf@x
\pgf@circ@res@left = \pgf@x
\pgf@circ@res@other = \ctikzvalof{tripoles/spdt/margin}\pgf@circ@res@left
-
-
+ %
\pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@up}}
\pgfpathlineto{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@up}}
\pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
\pgfpathlineto{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@down}}
-
+ %
\pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
\pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{0pt}}
-
\pgfusepath{draw}
-
\pgfscope
\pgftransformshift{\pgfpoint{-\pgf@circ@res@other}{\pgf@circ@res@up}}
\pgfnode{ocirc}{center}{}{spdt1}{\pgfusepath{stroke}}
@@ -5392,7 +5398,6 @@
\pgftransformshift{\pgfpoint{\pgf@circ@res@other}{0pt}}
\pgfnode{ocirc}{center}{}{spdt2}{\pgfusepath{stroke}}
\endpgfscope
-
\pgfscope
\pgfpathmoveto{\pgfpointshapeborder{spdt2}{\pgfpointorigin}}
\pgfpathlineto{
@@ -6972,7 +6977,7 @@
\ctikzset{bipoles/tlmic/width/.initial=.5}% it MUST be mic width *5/8
\ctikzset{bipoles/mic/bar thickness/.initial=1}
-% arresters, fuses, lamps, etc
+% arresters, fuses, relais, lamps, etc
\ctikzset{bipoles/european gas filled surge arrester/height/.initial=.30}
\ctikzset{bipoles/european gas filled surge arrester/width/.initial=.80}
@@ -6989,6 +6994,7 @@
\ctikzset{bipoles/afuse/height/.initial=.20}
\ctikzset{bipoles/afuse/width/.initial=.50}
\ctikzset{bipoles/lamp/height/.initial=.60}
+\ctikzset{bipoles/lamp/width/.initial=.60}
\ctikzset{bipoles/wfuse/height/.initial=.20}
\ctikzset{bipoles/wfuse/width/.initial=.50}
\ctikzset{bipoles/wfuse/shape/.initial=ocirc}
@@ -6996,9 +7002,22 @@
\ctikzset{bipoles/wfuse/dots/.is choice}
\ctikzset{bipoles/wfuse/dots/.is if=pgf@circ@wfuse@dots}
%
-\ctikzset{bipoles/lamp/width/.initial=.60}
+\ctikzset{bipoles/relais/height/.initial=.8}
+\ctikzset{bipoles/relais/width/.initial=.3}
+%
\ctikzset{bipoles/bulb/height/.initial=.8}
\ctikzset{bipoles/bulb/width/.initial=.8}
+% suggested by @bogger33, see https://github.com/circuitikz/circuitikz/issues/793
+\ctikzset{bipoles/neonlampcc/height/.initial=.60}
+\ctikzset{bipoles/neonlampac/height/.initial=.60}
+\pgf@circ@declare@family@arrows{sparkgap}
+\newif\ifpgf@sparkgap@dot
+\newif\ifpgf@sparkgap@circle
+\ctikzset{sparkgap/circle/.is if=pgf@sparkgap@circle}
+\ctikzset{sparkgap/dot/.is if=pgf@sparkgap@dot}
+\ctikzset{sparkgap/gap/.initial=.05}
+\ctikzset{bipoles/sparkgap/height/.initial=.60}
+%
\ctikzset{bipoles/squid/height/.initial=.60}
\ctikzset{bipoles/squid/width/.initial=.60}
\ctikzset{bipoles/barrier/height/.initial=.60}
@@ -7228,6 +7247,25 @@
\pgfnode{\cshape}{center}{}{\thisshape-right}{\pgfusepath{draw}}
\fi
}
+
+%% Relais
+\pgfcircdeclarebipolescaled{misc}
+{}
+{\ctikzvalof{bipoles/relais/height}}
+{relais}
+{\ctikzvalof{bipoles/relais/height}}
+{\ctikzvalof{bipoles/relais/width}}
+{
+ \pgfpathrectanglecorners{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgf@circ@draworfill
+ \pgfscope
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@down}}
+ \pgfusepath{draw}
+ \endpgfscope
+}
+
%% SQUID added by Cor Molenaar 5 March 2010
\pgfcircdeclarebipolescaled{misc}
{}
@@ -7335,11 +7373,116 @@
\pgfsetbeveljoin
\pgfpathlineto{\pgfpoint{\pgf@circ@res@right}{\pgf@circ@res@zero}}
\pgfusepath{draw}
-}% %>>>
+}%
+% neon lamps, suggested by @bogger33 https://github.com/circuitikz/circuitikz/issues/793
+% implemented by Romano
+% double-cathode (capacitor) style
+\pgfcircdeclarebipolescaled{misc}
+{}
+{\ctikzvalof{bipoles/neonlampcc/height}}
+{neonlampcc}
+{\ctikzvalof{bipoles/neonlampcc/height}}
+{\ctikzvalof{bipoles/neonlampcc/height}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
+ \pgf@circ@draworfill
+ %% leads in
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \def\@@w{0.2}\def\@@h{0.6}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{\@@w\pgf@circ@res@left}{0pt}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\@@w\pgf@circ@res@right}{0pt}}
+ %% "capacitor style" symbol
+ \pgfusepath{draw}
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\@@w\pgf@circ@res@right}{\@@h\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\@@w\pgf@circ@res@right}{\@@h\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{\@@w\pgf@circ@res@left}{\@@h\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\@@w\pgf@circ@res@left}{\@@h\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ %% dot
+ \pgftransformshift{\pgfpoint{\@@w\pgf@circ@res@left-3*\ctikzvalof{nodes width}\pgf@circ@Rlen}
+ {\@@h\pgf@circ@res@down + 2*\ctikzvalof{nodes width}\pgf@circ@Rlen}}
+ \pgfnode{circ}{center}{}{}{\pgfusepath{draw,fill}}
+}
+% anode-cathode style
+\pgfcircdeclarebipolescaled{misc}
+{}
+{\ctikzvalof{bipoles/neonlampac/height}}
+{neonlampac}
+{\ctikzvalof{bipoles/neonlampac/height}}
+{\ctikzvalof{bipoles/neonlampac/height}}
+{
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathellipse{\pgfpointorigin}{\pgfpoint{0}{\pgf@circ@res@up}}{\pgfpoint{\pgf@circ@res@left}{0}}
+ \pgf@circ@draworfill
+ %% leads in
+ \pgfsetlinewidth{\pgfstartlinewidth}
+ \def\@@w{0.5}\def\@@h{0.5}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{\@@w\pgf@circ@res@left}{0pt}}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\@@w\pgf@circ@res@right}{0pt}}
+ \pgfusepath{draw}
+ %% one terminal is a straight plate
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathmoveto{\pgfpoint{\@@w\pgf@circ@res@left}{\@@h\pgf@circ@res@down}}
+ \pgfpathlineto{\pgfpoint{\@@w\pgf@circ@res@left}{\@@h\pgf@circ@res@up}}
+ \pgfusepath{draw}
+ %% the other is an "ocirc" shape
+ \pgftransformshift{\pgfpoint{\@@w\pgf@circ@res@right}{0pt}}
+ \pgfnode{ocirc}{center}{}{}{\pgfusepath{draw,fill}}
+ %% dot
+ \pgftransformshift{\pgfpoint{-\@@w\pgf@circ@res@right}{\@@h\pgf@circ@res@down}}
+ \pgfnode{circ}{center}{}{}{\pgfusepath{draw,fill}}
+}
+% spark gap, suggested by @bogger33 https://github.com/circuitikz/circuitikz/issues/800
+\pgfcircdeclarebipolescaled{misc}
+{
+ \savedmacro{\changeh}{\edef\changeh{\ifpgf@sparkgap@circle 1 \else 0.5 \fi}}
+ \pgfcirc@border@extend@updown{\changeh}{\changeh}
+}
+{\ctikzvalof{bipoles/sparkgap/height}}
+{sparkgap}
+{\ctikzvalof{bipoles/sparkgap/height}}
+{\ctikzvalof{bipoles/sparkgap/height}}{
+ % circle (if requested)
+ \pgfscope
+ \ifpgf@sparkgap@circle
+ \pgf@circ@setlinewidth{bipoles}{\pgfstartlinewidth}
+ \pgfpathcircle{\pgfpointorigin}{\pgf@circ@res@up}
+ \pgf@circ@draworfill
+ \fi
+ \endpgfscope
+ % arrows
+ \pgfscope
+ \pgfcirc@set@arrows{sparkgap}{}{Triangle[scale=2]}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@right}{0pt}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{sparkgap/gap}\pgf@circ@res@right}{0pt}}
+ \pgfusepath{draw}
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@left}{0pt}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{sparkgap/gap}\pgf@circ@res@left}{0pt}}
+ \pgfusepath{draw}
+ \endpgfscope{}
+ % dot (if requested)
+ \ifpgf@sparkgap@dot
+ \pgftransformshift{\pgfpoint
+ {\ctikzvalof{sparkgap/gap}\pgf@circ@res@left-1*\ctikzvalof{nodes width}\pgf@circ@Rlen}
+ {-4*\ctikzvalof{nodes width}\pgf@circ@Rlen}}
+ \pgfnode{circ}{center}{}{}{\pgfusepath{draw,fill}}
+ \fi
+}
+
+%>>>
%% Path definitions for Miscellaneous%<<<
\pgfcirc@activate@bipole@simple{l}{lamp}
+\pgfcirc@activate@bipole@simple{l}{neonlampcc}
+\pgfcirc@activate@bipole@simple{l}{neonlampac}
+\pgfcirc@activate@bipole@simple{l}{sparkgap}
\pgfcirc@activate@bipole@simple{l}{bulb}
\pgfcirc@activate@bipole@simple{l}{squid}
\pgfcirc@activate@bipole@simple{l}{barrier}
@@ -7350,6 +7493,7 @@
\pgfcirc@style@to@style{asymmetric fuse}{afuse}
\pgfcirc@activate@bipole@simple{l}{wfuse}
\pgfcirc@activate@bipole{l}{wfuse}{wfuse}{wiggly fuse}
+\pgfcirc@activate@bipole@simple{l}{relais}
\def\pgf@circ@gfsurgearrester@path#1{\ifpgf@circuit@europeangfsurgearrester\pgf@circ@europeangfsurgearrester@path{#1}\else\pgf@circ@americangfsurgearrester@path{#1}\fi}
\pgfcirc@activate@bipole{l}{europeangfsurgearrester}{european gas filled surge arrester}{european gas filled surge arrester}
\pgfcirc@activate@bipole{l}{americangfsurgearrester}{american gas filled surge arrester}{american gas filled surge arrester}
diff --git a/graphics/pgf/contrib/circuitikz/tex/pgfcirctripoles.tex b/graphics/pgf/contrib/circuitikz/tex/pgfcirctripoles.tex
index 9c72001919..d8d089dd92 100644
--- a/graphics/pgf/contrib/circuitikz/tex/pgfcirctripoles.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/pgfcirctripoles.tex
@@ -4025,6 +4025,8 @@
\pgfmathsetmacro{\@@BDscale}{\ctikzvalof{tripoles/#1/bodydiode scale}* \ctikzvalof{\ctikzclass/scale}/\ctikzvalof{diodes/scale}}
\pgftransformscale{\@@BDscale}
\ifpgf@circuit@fulldiode
+ % I'm not sure why this is needed, but...
+ \pgf@circ@maybe@color{transistor bodydiode/color}
\pgfnode{fulldiodeshape}{center}{}{pgf@bodydiode}{\pgfusepath{fill}}
\else
\pgfnode{emptydiodeshape}{center}{}{pgf@bodydiode}{\pgfusepath{fill}}
@@ -8547,11 +8549,34 @@
\fi
}
-%% The diode (tube), triode, tetrode and pentode only differ in the
-%% number of grids. So we construct a generic declare function in
-%% which we can put code for the grid anchors and grid drawing code
-%% \pgfcircdeclaretube{tube name}{grid anchors}{grid drawing code}
-\long\def\pgfcircdeclaretube#1#2#3{%
+\long\def\pgfcirctubedrawanodestd{% Standard anode code (one anode)
+ % Anode (or plate)
+ \pgfpathmoveto{\pgfpoint{0pt}{\pgf@circ@res@up}} % north
+ \pgfpathlineto{\pgfpoint{0pt}{\ctikzvalof{tubes/anode distance}\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{-\ctikzvalof{tubes/anode width}\pgf@circ@res@right}{\ctikzvalof{tubes/anode distance}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tubes/anode width}\pgf@circ@res@right}{\ctikzvalof{tubes/anode distance}\pgf@circ@res@up}}
+}
+\long\def\pgfcirctubedrawcathodestd{% Standard cathode code (one cathode)
+ % Cathode
+ \ifpgf@circuit@tubes@nocathode
+ \pgf@circuit@tubes@nocathodefalse
+ \else
+ \pgfsetcornersarced{\pgfpoint{\ctikzvalof{tubes/cathode corners}\pgf@circ@res@up}{\ctikzvalof{tubes/cathode corners}\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{-\ctikzvalof{tubes/cathode width}\pgf@circ@res@right}{-\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{-\ctikzvalof{tubes/cathode width}\pgf@circ@res@right}{-\ctikzvalof{tubes/cathode distance}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tubes/cathode width}\pgf@circ@res@right}{-\ctikzvalof{tubes/cathode distance}\pgf@circ@res@up}}
+ \ifpgf@circuit@tubes@fullcathode
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tubes/cathode width}\pgf@circ@res@right}{-\pgf@circ@res@up}}
+ \pgf@circuit@tubes@fullcathodefalse
+ \else
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tubes/cathode width}\pgf@circ@res@right}{-\ctikzvalof{tubes/cathode distance}\pgf@circ@res@up-\ctikzvalof{tubes/cathode right extend}\pgf@circ@res@up}}
+ \fi
+ \fi
+}
+
+%% generic macro to create a tube. Most of them will use the standard macro for
+%% anode and cathode (see above)
+\long\def\pgfcircdeclaretubegeneric#1#2#3#4#5#6{% name, anchors, grid, anode, cathode variable anchors
\pgfdeclareshape{#1}{
\savedmacro{\ctikzclass}{\edef\ctikzclass{tubes}}
\saveddimen{\scaledRlen}{\pgfmathsetlength{\pgf@x}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}}
@@ -8590,6 +8615,11 @@
\pgf@y=\pgf@circ@res@up\advance\pgf@y by -\pgf@circ@res@right
\fi
}
+ \savedmacro{\tubes@filament@angle}{\edef\tubes@filament@angle{\ctikzvalof{tubes/filament angle}}}
+ \savedmacro{\tubes@filament@distance}{\edef\tubes@filament@distance{\ctikzvalof{tubes/filament distance}}}
+ \savedmacro{\tubes@tube@radius}{\edef\tubes@tube@radius{\ctikzvalof{tubes/tube radius}}}
+ \savedmacro{\tubes@cathode@width}{\edef\tubes@cathode@width{\ctikzvalof{tubes/cathode width}}}
+ \savedmacro{\tubes@cathode@distance}{\edef\tubes@cathode@distance{\ctikzvalof{tubes/cathode distance}}}
\anchor{tube ne}{\tubene}
\anchor{tubesq ne}{\tubesquarene}
% tube shape anchors: geo
@@ -8624,30 +8654,37 @@
\anchor{cathode}{%
\northwest
\pgf@y=-\pgf@y
- \pgf@x=\ctikzvalof{tubes/cathode width}\pgf@x
+ \pgf@x=\tubes@cathode@width\pgf@x
}
\anchor{cathode 1}{%
\northwest
\pgf@y=-\pgf@y
- \pgf@x=\ctikzvalof{tubes/cathode width}\pgf@x
+ \pgf@x=\tubes@cathode@width\pgf@x
}
\anchor{cathode 2}{%
\northwest
\pgf@y=-\pgf@y
- \pgf@x=-\ctikzvalof{tubes/cathode width}\pgf@x
+ \pgf@x=-\tubes@cathode@width\pgf@x
}
\anchor{filament 1}{%
\northwest
- \pgfmathparse{(\ctikzvalof{tubes/tube radius}*sin(\ctikzvalof{tubes/filament angle})}
+ \pgfmathparse{(\tubes@tube@radius*sin(\tubes@filament@angle)}
\pgf@x=\pgfmathresult\pgf@x
\pgf@y=-\pgf@y
}
\anchor{filament 2}{%
\northwest
- \pgfmathparse{(\ctikzvalof{tubes/tube radius}*sin(\ctikzvalof{tubes/filament angle})}
+ \pgfmathparse{(\tubes@tube@radius*sin(\tubes@filament@angle)}
\pgf@x=-\pgfmathresult\pgf@x
\pgf@y=-\pgf@y
}
+ \anchor{filament center}{%
+ \northwest
+ \pgf@ya=0.5\pgf@y
+ \pgf@ya=-\tubes@cathode@distance\pgf@y
+ \advance\pgf@ya by -\tubes@filament@distance\pgf@y
+ \pgf@x=0pt\pgf@y=\pgf@ya
+ }
% Extra anchors
#2%
@@ -8693,33 +8730,24 @@
\fi
% Anode (or plate)
- \pgfpathmoveto{\pgfpoint{0pt}{\pgf@circ@res@up}} % north
- \pgfpathlineto{\pgfpoint{0pt}{\ctikzvalof{tubes/anode distance}\pgf@circ@res@up}}
- \pgfpathmoveto{\pgfpoint{-\ctikzvalof{tubes/anode width}\pgf@circ@res@right}{\ctikzvalof{tubes/anode distance}\pgf@circ@res@up}}
- \pgfpathlineto{\pgfpoint{\ctikzvalof{tubes/anode width}\pgf@circ@res@right}{\ctikzvalof{tubes/anode distance}\pgf@circ@res@up}}
-
+ #4
% Cathode
- \ifpgf@circuit@tubes@nocathode
- \pgf@circuit@tubes@nocathodefalse
- \else
- \pgfsetcornersarced{\pgfpoint{\ctikzvalof{tubes/cathode corners}\pgf@circ@res@up}{\ctikzvalof{tubes/cathode corners}\pgf@circ@res@up}}
- \pgfpathmoveto{\pgfpoint{-\ctikzvalof{tubes/cathode width}\pgf@circ@res@right}{-\pgf@circ@res@up}}
- \pgfpathlineto{\pgfpoint{-\ctikzvalof{tubes/cathode width}\pgf@circ@res@right}{-\ctikzvalof{tubes/cathode distance}\pgf@circ@res@up}}
- \pgfpathlineto{\pgfpoint{\ctikzvalof{tubes/cathode width}\pgf@circ@res@right}{-\ctikzvalof{tubes/cathode distance}\pgf@circ@res@up}}
- \ifpgf@circuit@tubes@fullcathode
- \pgfpathlineto{\pgfpoint{\ctikzvalof{tubes/cathode width}\pgf@circ@res@right}{-\pgf@circ@res@up}}
- \pgf@circuit@tubes@fullcathodefalse
- \else
- \pgfpathlineto{\pgfpoint{\ctikzvalof{tubes/cathode width}\pgf@circ@res@right}{-\ctikzvalof{tubes/cathode distance}\pgf@circ@res@up-\ctikzvalof{tubes/cathode right extend}\pgf@circ@res@up}}
- \fi
- \fi
-
+ #5
% Draw the background
\pgfusepath{draw}
}
+ #6
}
}
+%% The diode (tube), triode, tetrode and pentode only differ in the
+%% number of grids. So we construct a generic declare function in
+%% which we can put code for the grid anchors and grid drawing code
+%% \pgfcircdeclaretube{tube name}{grid anchors}{grid drawing code}
+\long\def\pgfcircdeclaretube#1#2#3{% name, anchors, grid
+ \pgfcircdeclaretubegeneric{#1}{#2}{#3}{\pgfcirctubedrawanodestd}{\pgfcirctubedrawcathodestd}{}
+}
+
\pgfcircdeclaretube{diodetube}{}{} % shape diode already exists
\pgfcircdeclaretube{triode}
@@ -8951,7 +8979,143 @@
\pgfpathlineto{\pgfpoint{\pgf@circ@res@temp}{\pgfutil@tempdima-2*\ctikzvalof{tubes/grid separation}\pgf@circ@res@up}}
\pgfpathlineto{\pgfpoint{\ctikzvalof{tubes/cathode width}\pgf@circ@res@right-0.4142136*\ctikzvalof{tubes/cathode corners}\pgf@circ@res@right}{-\ctikzvalof{tubes/cathode distance}\pgf@circ@res@up-0.4142136*\ctikzvalof{tubes/cathode corners}\pgf@circ@res@up}}
-}% %>>>
+}%
+%
+% multi-anode tube, added by Romano for version 1.6.8, suggested by @bogger33 on GitHub
+% see https://github.com/circuitikz/circuitikz/issues/785
+%
+\ctikzset{tubes/anodes/.initial=3} % number of anodes. Ignored in most tubes.
+\newif\ifpgf@circuit@tubes@anodedot\pgf@circuit@tubes@anodedotfalse
+\pgfkeys{/tikz/anodedot/.add code={}{\pgf@circuit@tubes@anodedottrue}}
+\ctikzset{tubes/anodedot/.add code={}{\pgf@circuit@tubes@anodedottrue}}
+\newif\ifpgf@circuit@tubes@nogrid\pgf@circuit@tubes@nogridfalse
+\pgfkeys{/tikz/nogrid/.add code={}{\pgf@circuit@tubes@nogridtrue}}
+\ctikzset{tubes/nogrid/.add code={}{\pgf@circuit@tubes@nogridtrue}}
+\newif\ifpgf@circuit@tubes@nixieanode\pgf@circuit@tubes@nixieanodefalse
+\pgfkeys{/tikz/nixieanode/.add code={}{\pgf@circuit@tubes@nixieanodetrue}}
+\ctikzset{tubes/nixieanode/.add code={}{\pgf@circuit@tubes@nixieanodetrue}}
+\long\def\pgfcirctubedraw@multi@anode{% Separate to override in matubes
+ % Anodes (or plates)
+ % Use saved len/anchors to find the first drawn position.
+ \pgf@circ@res@temp=\anodelen\divide\pgf@circ@res@temp by 2 % half the anode length
+ \firstanodepos\pgf@circ@res@other=\pgf@x
+ \advance\pgf@circ@res@other by \pgf@circ@res@temp
+ \pgf@circ@count@a=0
+ \loop
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@other}{\pgf@circ@res@up}} % north
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other}{\ctikzvalof{tubes/anode distance}\pgf@circ@res@up}}
+ \ifpgf@circuit@tubes@anodedot
+ \pgfpathcircle{\pgfpoint{\pgf@circ@res@other}{\ctikzvalof{tubes/anode distance}\pgf@circ@res@up-0.5*\circlelen}}{\circlelen}
+ \else
+ % this is the horizontal line of the anode
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@other-\pgf@circ@res@temp}{\ctikzvalof{tubes/anode distance}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@other+\pgf@circ@res@temp}{\ctikzvalof{tubes/anode distance}\pgf@circ@res@up}}
+ \fi
+ \advance\pgf@circ@res@other by 4\pgf@circ@res@temp
+ \advance\pgf@circ@count@a by 1
+ \ifnum\pgf@circ@count@a<\Nanodes\relax
+ \repeat
+}
+\long\def\pgfcirctubedraw@cathode@or@nixie{%
+ \ifpgf@circuit@tubes@nixieanode
+ \pgfpathmoveto{\pgfpoint{0pt}{-\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{0pt}{-\ctikzvalof{tubes/cathode distance}\pgf@circ@res@up}}
+ \pgfpathmoveto{\pgfpoint{-\ctikzvalof{tubes/cathode width}\pgf@circ@res@right}{-\ctikzvalof{tubes/cathode distance}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\ctikzvalof{tubes/cathode width}\pgf@circ@res@right}{-\ctikzvalof{tubes/cathode distance}\pgf@circ@res@up}}
+ \else
+ \pgfcirctubedrawcathodestd
+ \fi
+}
+\pgfcircdeclaretubegeneric{matube}
+{% anchors
+ \savedmacro{\Nanodes}{\edef\Nanodes{\ctikzvalof{tubes/anodes}}}
+ \savedanchor\firstanodepos{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@up=\ctikzvalof{tubes/height}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@right=\ctikzvalof{tubes/width}\pgf@circ@scaled@Rlen
+ \pgf@circ@res@right=\ctikzvalof{tubes/anode width}\pgf@circ@res@right
+ % x and y are one half
+ \pgf@y=\pgf@circ@res@up
+ \pgf@y=.5\pgf@y
+ \pgf@x=-\pgf@circ@res@right
+ \pgf@x=.5\pgf@x
+ }
+ \saveddimen\anodelen{%
+ \pgfmathsetlength{\pgf@circ@scaled@Rlen}{\ctikzvalof{\ctikzclass/scale}\pgf@circ@Rlen}
+ \pgf@circ@res@right=\ctikzvalof{tubes/width}\pgf@circ@scaled@Rlen % full width, left to right
+ % the length of one of the N anodes is the full width divided by 2*N+1
+ \pgfmathsetlength\pgf@x{\ctikzvalof{tubes/anode width}*\pgf@circ@res@right/(2*\Nanodes-1)}
+ }
+ \saveddimen\circlelen{%
+ \pgf@x=\ctikzvalof{nodes width}\pgf@circ@Rlen
+ }
+ \anchor{grid} {% should not be used
+ \northwest
+ \pgf@y=\ctikzvalof{tubes/grid shift}\pgf@y
+ }
+ \anchor{control} {%
+ \northwest
+ \pgf@y=\ctikzvalof{tubes/grid shift}\pgf@y
+ }
+ \anchor{nixie a}{%
+ \northwest\pgf@x=0pt\pgf@y=-\pgf@y
+ }
+}
+{% grid
+ \ifpgf@circuit@tubes@nogrid\else
+ % Grid protrusion
+ \pgf@xa=-\ctikzvalof{tubes/tube radius}\pgf@circ@res@right
+ \advance\pgf@xa by -\ctikzvalof{tubes/grid protrusion}\pgf@circ@res@right
+ \pgfpathmoveto{\pgfpoint{-\pgf@circ@res@right}{\ctikzvalof{tubes/grid shift}\pgf@circ@res@up}}
+ \pgfpathlineto{\pgfpoint{\pgf@xa}{\ctikzvalof{tubes/grid shift}\pgf@circ@res@up}}
+ % Grid dashes: calculations
+ \pgf@xb=2\pgf@circ@res@right
+ \pgf@circ@res@step=\ctikzvalof{tubes/tube radius}\pgf@xb
+ \pgf@circ@count@a=\ctikzvalof{tubes/grid dashes} % dashes*2+1
+ \multiply\pgf@circ@count@a by 2\relax
+ \advance\pgf@circ@count@a by 1\relax
+ \advance\pgf@circ@res@step by -\pgf@xa
+ \divide\pgf@circ@res@step by \pgf@circ@count@a
+ % Grid dashes: draw
+ \pgf@circ@res@temp=\pgf@xa
+ \pgf@circ@count@a=\ctikzvalof{tubes/grid dashes}
+ \loop
+ \advance\pgf@circ@res@temp by\pgf@circ@res@step
+ \pgfpathmoveto{\pgfpoint{\pgf@circ@res@temp}{\ctikzvalof{tubes/grid shift}\pgf@circ@res@up}}
+ \advance\pgf@circ@res@temp by\pgf@circ@res@step
+ \pgfpathlineto{\pgfpoint{\pgf@circ@res@temp}{\ctikzvalof{tubes/grid shift}\pgf@circ@res@up}}
+ \advance\pgf@circ@count@a by-1
+ \ifnum\pgf@circ@count@a>0\relax
+ \repeat
+ \fi
+}
+{\pgfcirctubedraw@multi@anode}% anodes
+{\pgfcirctubedraw@cathode@or@nixie}% cathode
+{% extra dynamics anchors
+ \pgfutil@g@addto@macro\pgf@sh@s@matube{%
+ % Start with the maximum pin number and go backwards.
+ \pgf@circ@count@a=\Nanodes\relax
+ \pgfmathloop%
+ \ifnum\pgf@circ@count@a>0
+ \expandafter\xdef\csname pgf@anchor@matube@anode\space\the\pgf@circ@count@a\endcsname{%
+ \noexpand\pgf@circ@ma@anode@anchor{\the\pgf@circ@count@a}%
+ }
+ \expandafter\xdef\csname pgf@anchor@matube@nixie\space k\the\pgf@circ@count@a\endcsname{%
+ \noexpand\pgf@circ@ma@anode@anchor{\the\pgf@circ@count@a}%
+ }
+ \advance\pgf@circ@count@a by -1\relax%
+ \repeatpgfmathloop%
+ }%
+}
+\def\pgf@circ@ma@anode@anchor#1{
+ \firstanodepos
+ \pgf@circ@res@temp=\pgf@x
+ \pgfmathsetlength\pgf@x{\pgf@circ@res@temp + (0.5 + 2*(#1 -1))*\anodelen}
+}
+
+
+
+%>>>
\endinput
% vim: set fdm=marker fmr=%<<<,%>>>:
diff --git a/graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex b/graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex
index 92299ca649..4e4861071f 100644
--- a/graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex
+++ b/graphics/pgf/contrib/circuitikz/tex/t-circuitikz.tex
@@ -16,8 +16,8 @@
\startmodule[circuitikz]
\usemodule[tikz]
-\def\pgfcircversion{1.6.7}
-\def\pgfcircversiondate{2024/02/09}
+\def\pgfcircversion{1.6.9}
+\def\pgfcircversiondate{2024/05/25}
\writestatus{loading}{\pgfcircversiondate{} The CircuiTikz circuit drawing package version \pgfcircversion}
diff --git a/graphics/pgf/contrib/liftarm/README.md b/graphics/pgf/contrib/liftarm/README.md
index 2759458717..af687942b7 100644
--- a/graphics/pgf/contrib/liftarm/README.md
+++ b/graphics/pgf/contrib/liftarm/README.md
@@ -1,20 +1,20 @@
-# liftarm
+# `liftarm`
-Draw liftarms with TikZ
+## Geometric constructions with liftarms using Ti*k*Z and LaTeX3
-Version 2.0 (2022/04/07)
+Version 3.0 (2024/05/20)
-This package is based on the package TikZ and can be used to draw liftarms with TikZ. It provides several options for the appearance of the liftarms, a command which connects two liftarms, an environment to describe a construction and a method to animate a construction with one or more traces.
+This package is based on the package [Ti*k*Z](https://ctan.org/pkg/pgf) and can be used to draw geometric constructions with liftarms using Ti*k*Z. There are several options for the appearance of the liftarms. It provides an environment to connect multiple liftarms using the Newton-Raphson method and LU decomposition. It also provides an environment to describe a construction and a method to animate a construction with one or more traces.
%% README.md
%% Copyright 2022 Matthias Floré
%
% 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
+% 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'.
diff --git a/graphics/pgf/contrib/liftarm/liftarm.pdf b/graphics/pgf/contrib/liftarm/liftarm.pdf
index d428d1f7af..eddb6d4f1d 100644
--- a/graphics/pgf/contrib/liftarm/liftarm.pdf
+++ b/graphics/pgf/contrib/liftarm/liftarm.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/liftarm/liftarm.sty b/graphics/pgf/contrib/liftarm/liftarm.sty
index b850c8f16a..63d6b51f44 100644
--- a/graphics/pgf/contrib/liftarm/liftarm.sty
+++ b/graphics/pgf/contrib/liftarm/liftarm.sty
@@ -1,12 +1,12 @@
%% liftarm.sty
-%% Copyright 2022 Matthias Floré
+%% Copyright 2022-2024 Matthias Floré
%
% 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
+% 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'.
@@ -16,321 +16,897 @@
% This work consists of the files liftarm.pdf, liftarm.sty,
% liftarm.tex and README.md.
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{liftarm}[2022/04/07 v2.0 Draw liftarms with TikZ]
-\RequirePackage{etoolbox}
\RequirePackage[dvipsnames]{xcolor}
\RequirePackage{tikz}
\usetikzlibrary{calc}
-\newif\ifliftarm@animate
-\newif\ifliftarm@brick
-\newif\ifliftarm@connectreverse
-\newif\ifliftarm@contour
-\pgfkeys{
-/liftarm/.is family,
-/liftarm/.unknown/.code={\edef\liftarm@colorkey{\pgfkeyscurrentname}},
-/liftarm,
-axle holes/.store in=\liftarm@axleholes,
-brick/.is if=liftarm@brick,
-color/.store in=\liftarm@colorkey,
-color 0/.initial=Gray,
-color 1/.initial=darkgray,
-color 2/.initial=Yellow,
-color 3/.initial=Orange,
-color 4/.initial=Red,
-color 5/.initial=Green,
-color 6/.initial=Blue,
-color 7/.initial=Brown,
-color modulo/.initial=8,
-connect/.store in=\liftarm@connect,
-connect coordinate/.store in=\liftarm@connectcoordinate,
-connect reverse/.is if=liftarm@connectreverse,
-contour/.is if=liftarm@contour,
-coordinate/.store in=\liftarm@coordinate,
-globalize/.code n args={2}{\xdef#1{#2}},
-hole radius/.initial=0.3,
-liftarm 1/.style={liftarm 1 options/.style={#1}},
-liftarm 1 options/.style={},
-liftarm 2/.style={liftarm 2 options/.style={#1}},
-liftarm 2 options/.style={},
-liftarm thickness/.initial=0.92,
-mark color/.initial=Black,
-mark holes/.store in=\liftarm@markholes,
-origin/.initial=0,
-scalefactor/.initial=0.5,
-screw color/.initial=Black,
-screw holes/.store in=\liftarm@screwholes,
-screw holes angle/.initial=45,
-trace/.store in=\liftarm@trace,
-}
-\pgfmathsetmacro{\liftarm@axleholeangle}{14}%2*\liftarm@axleholeradius*sin(\liftarm@axleholeangle)=1.78/8
-\pgfmathsetmacro{\liftarm@screwholestartangle}{10}
-\newcommand{\liftarm}[4][]{
-\pgfmathsetmacro{\liftarm@length}{#3}
-\ifdim \liftarm@length pt<0 pt
-\PackageWarning{liftarm}{The length (\liftarm@length) of the liftarm is smaller than 0.}
-\else
-\pgfmathsetmacro{\liftarm@ang}{#4}
-\begin{scope}[shift={(#2)},rotate=\liftarm@ang]
-\pgfkeys{/liftarm,#1}
-\pgfmathsetmacro{\liftarm@origin}{\pgfkeysvalueof{/liftarm/origin}}
-\begin{scope}[shift={(-\liftarm@origin,0)}]
-\pgfmathsetmacro{\liftarm@halfthickness}{0.5*\pgfkeysvalueof{/liftarm/scalefactor}*\pgfkeysvalueof{/liftarm/liftarm thickness}}
-\pgfmathsetmacro{\liftarm@holeradius}{\pgfkeysvalueof{/liftarm/scalefactor}*\pgfkeysvalueof{/liftarm/hole radius}}
-\pgfmathsetmacro{\liftarm@halfstudwidth}{\pgfkeysvalueof{/liftarm/scalefactor}*0.3}
-\pgfmathsetmacro{\liftarm@studheight}{\pgfkeysvalueof{/liftarm/scalefactor}*0.2}
-\pgfmathsetmacro{\liftarm@halfplateheight}{\pgfkeysvalueof{/liftarm/scalefactor}*0.2}
-\pgfmathsetmacro{\liftarm@halfplatewidth}{\pgfkeysvalueof{/liftarm/scalefactor}*0.5}
-\pgfmathsetmacro{\liftarm@axleholeradius}{\liftarm@halfthickness}
-\pgfmathsetmacro{\liftarm@screwholeradius}{0.8*\liftarm@holeradius}
-\colorlet{liftarm@markcolor}{\pgfkeysvalueof{/liftarm/mark color}}
-\colorlet{liftarm@screwcolor}{\pgfkeysvalueof{/liftarm/screw color}}
-\pgfmathsetmacro{\liftarm@screwholesangle}{\pgfkeysvalueof{/liftarm/screw holes angle}}
-\ifcsname liftarm@colorkey\endcsname
-\colorlet{liftarm@color}{\liftarm@colorkey}
-\else
-\pgfmathsetmacro{\liftarm@colornumber}{int(mod(\liftarm@length,\pgfkeysvalueof{/liftarm/color modulo}))}
-\colorlet{liftarm@color}{\pgfkeysvalueof{/liftarm/color \liftarm@colornumber}}
-\fi
-\ifliftarm@brick
-\def\liftarm@shape{(-1,{-\liftarm@halfplatewidth-\liftarm@halfplateheight})--(-1,\liftarm@halfplatewidth)
-\foreach\liftarm@n in {-1,...,\liftarm@length}{
---({\liftarm@n+0.5-\liftarm@halfstudwidth},\liftarm@halfplatewidth)--({\liftarm@n+0.5-\liftarm@halfstudwidth},{\liftarm@halfplatewidth+\liftarm@studheight})--({\liftarm@n+0.5+\liftarm@halfstudwidth},{\liftarm@halfplatewidth+\liftarm@studheight})--({\liftarm@n+0.5+\liftarm@halfstudwidth},\liftarm@halfplatewidth)--({\liftarm@n+1},\liftarm@halfplatewidth)
-}
---({\liftarm@length+1},{-\liftarm@halfplatewidth-\liftarm@halfplateheight})--cycle}
-\else
-\def\liftarm@shape{(0,\liftarm@halfthickness) arc (90:270:\liftarm@halfthickness)--(\liftarm@length,-\liftarm@halfthickness) arc (-90:90:\liftarm@halfthickness)--cycle}
-\fi
-\fill[liftarm@color,even odd rule] \liftarm@shape
-\foreach\liftarm@n in {0,...,\liftarm@length}{
-(\liftarm@n,0) circle[radius=\liftarm@holeradius]
-};
-\ifliftarm@contour
-%\ifliftarm@brick
-%\else
-\draw[liftarm@color!75!Black,ultra thick] \liftarm@shape;
-%\fi
-\fi
-\ifcsname liftarm@axleholes\endcsname
-\foreach\liftarm@n in \liftarm@axleholes{
-\pgfmathsetmacro{\liftarm@axlehole}{\liftarm@n}
-\ifdim \liftarm@axlehole pt<0 pt
-\else
-\ifdim \liftarm@axlehole pt>\liftarm@length pt
-\else
-\foreach\liftarm@angle in {0,90,180,270}{
-\begin{scope}[shift={(\liftarm@axlehole,0)},rotate=\liftarm@angle]
-\fill[liftarm@color] (\liftarm@axleholeangle:\liftarm@axleholeradius) arc (\liftarm@axleholeangle:{90-\liftarm@axleholeangle}:\liftarm@axleholeradius)--({\liftarm@axleholeradius*sin(\liftarm@axleholeangle)},{\liftarm@axleholeradius*sin(\liftarm@axleholeangle)})--cycle;
-\end{scope}
-}
-\fi
-\fi
-}
-\fi
-\ifcsname liftarm@markholes\endcsname
-\foreach\liftarm@n in \liftarm@markholes{
-\pgfmathsetmacro{\liftarm@markhole}{\liftarm@n}
-\ifdim \liftarm@markhole pt<0 pt
-\else
-\ifdim \liftarm@markhole pt>\liftarm@length pt
-\else
-\fill[liftarm@markcolor] (\liftarm@markhole,0) circle[radius=\liftarm@holeradius];
-\fi
-\fi
-}
-\fi
-\ifcsname liftarm@screwholes\endcsname
-\foreach\liftarm@n in \liftarm@screwholes{
-\pgfmathsetmacro{\liftarm@screwhole}{\liftarm@n}
-\ifdim \liftarm@screwhole pt<0 pt
-\else
-\ifdim \liftarm@screwhole pt>\liftarm@length pt
-\else
-\begin{scope}[shift={(\liftarm@screwhole,0)},rotate=\liftarm@screwholesangle]
-\foreach\liftarm@n in {-1,1}{
-\fill[liftarm@screwcolor] ({\liftarm@screwholeradius*cos(\liftarm@screwholestartangle)},{\liftarm@n*\liftarm@screwholeradius*sin(\liftarm@screwholestartangle)}) arc ({\liftarm@n*\liftarm@screwholestartangle}:{\liftarm@n*(180-\liftarm@screwholestartangle)}:\liftarm@screwholeradius);
-}
-\end{scope}
-\fi
-\fi
-}
-\fi
-\ifcsname liftarm@coordinate\endcsname
-\foreach\liftarm@n/\liftarm@name in \liftarm@coordinate{
-\pgfmathsetmacro{\liftarm@value}{\liftarm@n}
-\coordinate (\liftarm@name) at (\liftarm@value,0);
-}
-\fi
-\ifcsname liftarm@trace\endcsname
-\ifliftarm@animate
-\foreach\liftarm@n/\liftarm@numberofframes/\liftarm@tracefigure in \liftarm@trace{
-\pgfmathsetmacro{\liftarm@value}{\liftarm@n}
-\gappto\liftarm@animateframestrace{\newframe\begin{scope}}
-\addtocounter{liftarm@animateframenumber}{1}
-\xappto\liftarm@animateframestrace{[shift={(#2)},rotate=\liftarm@ang]}
-\gappto\liftarm@animateframestrace{\begin{scope}}
-\xappto\liftarm@animateframestrace{[shift={(\liftarm@value-\liftarm@origin,0)}]}
-\ifdefempty{\liftarm@tracefigure}{
-\gappto\liftarm@animateframestrace{\fill[Black] (0,0) circle}
-\xappto\liftarm@animateframestrace{[radius=0.66*\liftarm@holeradius];}
-}
-{
-\xappto\liftarm@animateframestrace{\expandonce\liftarm@tracefigure}
-}
-\gappto\liftarm@animateframestrace{\end{scope}\end{scope}}
-\ifdefempty{\liftarm@numberofframes}{
-\csxappto{liftarm@animatetimeline0}{\theliftarm@animateframenumber x0,}
-}
-{
-\csxappto{liftarm@animatetimeline\theliftarm@animatestepnumber}{\theliftarm@animateframenumber x\liftarm@numberofframes,}
-}
-}
-\fi
-\fi
-\end{scope}
-\end{scope}
-\fi
-}
-\newcommand{\liftarmconnect}[5][]{
-\begin{scope}
-\pgfkeys{/liftarm,#1}
-\coordinate (liftarm@A) at (#2);
-\coordinate (liftarm@B) at (#4);
-\begin{scope}
-\pgfkeys{/liftarm,liftarm 1 options}
-\ifcsname liftarm@connect\endcsname
-\pgfmathsetmacro{\liftarm@connectlengthAtemp}{\liftarm@connect-\pgfkeysvalueof{/liftarm/origin}}
-\else
-\pgfmathsetmacro{\liftarm@connectlengthAtemp}{#3-\pgfkeysvalueof{/liftarm/origin}}
-\fi
-\xdef\liftarm@connectlengthA{\liftarm@connectlengthAtemp}
-\ifdim \liftarm@connectlengthA pt=0 pt
-\PackageWarning{liftarm}{The length of the first liftarm is 0.}
-\fi
-\end{scope}
-\begin{scope}
-\pgfkeys{/liftarm,liftarm 2 options}
-\ifcsname liftarm@connect\endcsname
-\pgfmathsetmacro{\liftarm@connectlengthBtemp}{\liftarm@connect-\pgfkeysvalueof{/liftarm/origin}}
-\else
-\pgfmathsetmacro{\liftarm@connectlengthBtemp}{#5-\pgfkeysvalueof{/liftarm/origin}}
-\fi
-\xdef\liftarm@connectlengthB{\liftarm@connectlengthBtemp}
-\ifdim \liftarm@connectlengthB pt=0 pt
-\PackageWarning{liftarm}{The length of the second liftarm is 0.}
-\fi
-\end{scope}
-\path
-let
-\p1=(liftarm@A),
-\p2=(liftarm@B),
-\n1={\x1/\pgf@xx},
-\n2={\y1/\pgf@yy},
-\n3={\x2/\pgf@xx},
-\n4={\y2/\pgf@yy}
-in
-[
-/liftarm/globalize={\liftarm@connectxalet}{\n3},
-/liftarm/globalize={\liftarm@connectyalet}{\n4},
-/liftarm/globalize={\liftarm@connectxblet}{\n1},
-/liftarm/globalize={\liftarm@connectyblet}{\n2}
-]
-;
-\pgfmathsetmacro{\liftarm@connectxa}{\liftarm@connectxalet}
-\pgfmathsetmacro{\liftarm@connectya}{\liftarm@connectyalet}
-\pgfmathsetmacro{\liftarm@connectxb}{\liftarm@connectxblet}
-\pgfmathsetmacro{\liftarm@connectyb}{\liftarm@connectyblet}
-\pgfmathsetmacro{\liftarm@absdiff}{abs(\liftarm@connectxa-\liftarm@connectxb)}
-\ifdim \liftarm@absdiff pt<0.001 pt
-\pgfmathsetmacro{\liftarm@connectanglegamma}{90}
-\ifdim \liftarm@connectya pt<\liftarm@connectyb pt
-\pgfmathsetmacro{\liftarm@connectangleshift}{0}
-\else
-\pgfmathsetmacro{\liftarm@connectangleshift}{180}
-\fi
-\else
-\pgfmathsetmacro{\liftarm@connectanglegamma}{atan((\liftarm@connectyb-\liftarm@connectya)/(\liftarm@connectxb-\liftarm@connectxa))}
-\ifdim \liftarm@connectxa pt<\liftarm@connectxb pt
-\pgfmathsetmacro{\liftarm@connectangleshift}{0}
-\else
-\pgfmathsetmacro{\liftarm@connectangleshift}{180}
-\fi
-\fi
-\pgfmathsetmacro{\liftarm@connectlength}{sqrt((\liftarm@connectyb-\liftarm@connectya)^2+(\liftarm@connectxb-\liftarm@connectxa)^2)}
-\ifdim \liftarm@connectlength pt=0 pt
-\PackageWarning{liftarm}{The length between the origins of the liftarms is 0.}
-\fi
-\pgfmathsetmacro{\liftarm@connectabsconnectlengthAminusconnectlengthB}{abs(\liftarm@connectlengthA-\liftarm@connectlengthB)}
-\ifdim \liftarm@connectabsconnectlengthAminusconnectlengthB pt>\liftarm@connectlength pt
-\PackageWarning{liftarm}{The liftarms can not be connected.}
-\fi
-\pgfmathsetmacro{\liftarm@connectconnectlengthAplusconnectlengthB}{\liftarm@connectlengthA+\liftarm@connectlengthB}
-\ifdim \liftarm@connectconnectlengthAplusconnectlengthB pt<\liftarm@connectlength pt
-\PackageWarning{liftarm}{The liftarms can not be connected.}
-\fi
-\pgfmathsetmacro{\liftarm@connectanglealpha}{acos(((\liftarm@connectlengthB)^2+(\liftarm@connectlength)^2-(\liftarm@connectlengthA)^2)/(2*(\liftarm@connectlength)*(\liftarm@connectlengthB)))}
-\pgfmathsetmacro{\liftarm@connectanglebeta}{acos(((\liftarm@connectlength)^2+(\liftarm@connectlengthA)^2-(\liftarm@connectlengthB)^2)/(2*\liftarm@connectlength*(\liftarm@connectlengthA)))}
-\pgfmathsetmacro{\liftarm@connectangledelta}{\liftarm@connectangleshift+180+\liftarm@connectanglegamma-\liftarm@connectanglebeta}
-\def\liftarm@liftarmA{\liftarm[liftarm 1 options]{#2}{#3}{\liftarm@connectangledelta}}
-\def\liftarm@liftarmB{\liftarm[liftarm 2 options]{#4}{#5}{\liftarm@connectangleshift+\liftarm@connectanglegamma+\liftarm@connectanglealpha}}
-\ifliftarm@connectreverse
-\liftarm@liftarmB
-\liftarm@liftarmA
-\else
-\liftarm@liftarmA
-\liftarm@liftarmB
-\fi
-\ifcsname liftarm@connectcoordinate\endcsname
-\coordinate (\liftarm@connectcoordinate) at ($(#2)+(\liftarm@connectangledelta:\liftarm@connectlengthA)$);
-\fi
-\end{scope}
-}
-\newcommand{\liftarm@construction}[2][]{\begin{tikzpicture}[#1]
-\liftarm@constructfigure
-#2
-\end{tikzpicture}}
-\newcommand{\liftarmconstruct}[3][]{\item #2\nopagebreak
+\ProvidesExplPackage{liftarm}{2024/05/20}{3.0}{Geometric constructions with liftarms using TikZ and LaTeX3}
+
+%%> \subsection{Variables}
+
+\newcounter { g__liftarm_animate_frame_number_counter }
+\newcounter { g__liftarm_animate_number_of_animation_counter }
+\newcounter { g__liftarm_animate_number_of_steps_counter }
+\newcounter { g__liftarm_animate_step_number_counter }
+
+\bool_new:N \l__liftarm_animate_bool
+\bool_new:N \l__liftarm_brick_bool
+\bool_new:N \l__liftarm_contour_bool
+\bool_new:N \l__liftarm_LU_bool
+
+\clist_new:N \l__liftarm_trace_clist
+
+\fp_new:N \l__liftarm_angle_fp
+\fp_const:Nn \c__liftarm_axle_hole_angle_fp { 21.76702028497987 }%asind ( 1.78 / ( 16 * 0.3 ) )
+\fp_new:N \l__liftarm_connect_det_fp
+\fp_new:N \l__liftarm_connect_norm_fp
+\fp_new:N \l__liftarm_connect_start_constant_x_fp
+\fp_new:N \l__liftarm_connect_start_constant_y_fp
+\fp_new:N \l__liftarm_connect_stop_value_fp
+\fp_new:c { l__liftarm_connect_two_1_option_0_angle_fp }
+\fp_new:c { l__liftarm_connect_two_1_option_1_angle_fp }
+\fp_new:c { l__liftarm_connect_two_2_option_0_angle_fp }
+\fp_new:c { l__liftarm_connect_two_2_option_1_angle_fp }
+\fp_new:N \l__liftarm_connect_two_angle_fp
+\fp_new:N \l__liftarm_connect_two_A_angle_fp
+\fp_new:N \l__liftarm_connect_two_A_length_fp
+\fp_new:N \l__liftarm_connect_two_A_x_fp
+\fp_new:N \l__liftarm_connect_two_A_y_fp
+\fp_new:N \l__liftarm_connect_two_B_angle_fp
+\fp_new:N \l__liftarm_connect_two_B_length_fp
+\fp_new:N \l__liftarm_connect_two_B_x_fp
+\fp_new:N \l__liftarm_connect_two_B_y_fp
+\fp_new:N \l__liftarm_connect_two_length_fp
+\fp_new:N \g__liftarm_coord_x_fp
+\fp_new:N \g__liftarm_coord_y_fp
+\fp_new:N \l__liftarm_half_thickness_fp
+\fp_new:N \l__liftarm_hole_radius_fp
+\fp_new:N \l__liftarm_length_fp
+\fp_new:N \l__liftarm_LU_maxA_fp
+\fp_new:N \l__liftarm_LU_tmp_fp
+\fp_new:N \l__liftarm_mark_radius_fp
+\fp_new:N \l__liftarm_origin_fp
+\fp_new:N \l__liftarm_origin_connect_initial_fp
+\fp_new:N \l__liftarm_scalefactor_fp
+\fp_new:N \l__liftarm_screw_angle_fp
+\fp_new:N \l__liftarm_screw_radius_fp
+
+\int_new:N \l__liftarm_connect_count_int
+\int_new:N \l__liftarm_connect_equation_int
+\int_new:N \l__liftarm_LU_count_int
+\int_new:N \l__liftarm_LU_imax_int
+\int_new:N \l__liftarm_LU_j_int
+\int_new:N \l__liftarm_LU_N_int
+
+\iow_new:N \g__liftarm_animate_write_timeline_iow
+
+\seq_new:N \l__liftarm_connect_coordinate_seq
+\seq_new:N \l__liftarm_connect_start_arg_seq
+\seq_new:N \l__liftarm_connect_start_coeff_seq
+\seq_new:N \l__liftarm_coordinate_seq
+\seq_new:N \l__liftarm_trace_item_seq
+
+\str_new:N \l__liftarm_connect_stop_type_str
+\str_new:N \l__liftarm_type_str
+
+\tl_new:N \g__liftarm_animate_frames_tl
+\tl_new:N \g__liftarm_animate_frames_trace_tl
+\tl_new:N \l__liftarm_animate_value_tl
+\tl_new:N \l__liftarm_color_tl
+\tl_new:N \g__liftarm_construct_tl
+\tl_const:Nn \c__liftarm_cos_sin_diff_x_tl { - sin }
+\tl_const:Nn \c__liftarm_cos_sin_diff_y_tl { cos }
+\tl_const:Nn \c__liftarm_cos_sin_x_tl { cos }
+\tl_const:Nn \c__liftarm_cos_sin_y_tl { sin }
+\tl_new:N \l__liftarm_holes_tl
+\tl_new:N \l__liftarm_shape_tl
+\tl_new:N \l__liftarm_tmp_tl
+
+%%> \subsection{Pgfkeys}
+
+\pgfkeys
+ {
+ / liftarm /. is~family ,
+ / liftarm ,
+ axle~holes /. initial = {} ,
+ brick /. code = { \bool_set:Nn \l__liftarm_brick_bool { \cs:w c_#1_bool\cs_end: } } ,
+ brick /. default = true ,
+ brick = false ,
+ color /. code~2~args =
+ {
+ \tl_clear_new:c { l__liftarm_color_\int_eval:n {#1}_tl }
+ \tl_set:cn { l__liftarm_color_\int_eval:n {#1}_tl } {#2}
+ } ,
+ color = { 0 } { Gray } ,
+ color = { 1 } { darkgray } ,
+ color = { 2 } { Yellow } ,
+ color = { 3 } { Orange } ,
+ color = { 4 } { Red } ,
+ color = { 5 } { Green } ,
+ color = { 6 } { Blue } ,
+ color = { 7 } { Brown } ,
+ color~modulo /. initial = 8 ,
+ connect~stop /. is~choice ,
+ connect~stop / 1-norm /. code =
+ {
+ \str_set:Nn \l__liftarm_connect_stop_type_str { 1-norm }
+ \fp_set:Nn \l__liftarm_connect_stop_value_fp {#1}
+ } ,
+ connect~stop / 1-norm /. default = 0.001 ,
+ connect~stop / 2-norm /. code =
+ {
+ \str_set:Nn \l__liftarm_connect_stop_type_str { 2-norm }
+ \fp_set:Nn \l__liftarm_connect_stop_value_fp {#1}
+ } ,
+ connect~stop / 2-norm /. default = 0.001 ,
+ connect~stop / iterations /. code =
+ {
+ \str_set:Nn \l__liftarm_connect_stop_type_str { iterations }
+ \fp_set:Nn \l__liftarm_connect_stop_value_fp {#1}
+ } ,
+ connect~stop / iterations /. default = 10 ,
+ connect~stop = 1-norm ,
+ contour /. code = { \bool_set:Nn \l__liftarm_contour_bool { \cs:w c_#1_bool\cs_end: } } ,
+ contour /. default = true ,
+ contour = false ,
+ contour~style /. style = { contour_style /. style = {#1} } ,
+ contour_style /. style = {} ,
+ coordinate /. initial = {} ,
+ hole~radius /. initial = 0.3 ,
+ liftarm~style /. style = { liftarm_style /. style = {#1} } ,
+ liftarm_style /. style = {} ,
+ liftarm~thickness /. initial = 0.92 ,
+ mark~holes /. initial = {} ,
+ mark~radius /. code =
+ {
+ \pgfmathparse {#1}
+ \fp_set:Nn \l__liftarm_mark_radius_fp { \pgfmathresult }
+ } ,
+ mark~radius = 1 ,
+ mark~style /. style = { mark_style /. style = {#1} } ,
+ mark_style /. style = {} ,
+ origin /. code =
+ {
+ \pgfmathparse {#1}
+ \fp_set:Nn \l__liftarm_origin_fp { \pgfmathresult }
+ } ,
+ origin = 0 ,
+ scalefactor /. code =
+ {
+ \pgfmathparse {#1}
+ \fp_set:Nn \l__liftarm_scalefactor_fp { \pgfmathresult }
+ } ,
+ scalefactor = 0.5 ,
+ screw~angle /. code =
+ {
+ \pgfmathparse {#1}
+ \fp_set:Nn \l__liftarm_screw_angle_fp { \pgfmathresult }
+ } ,
+ screw~angle = 10 ,
+ screw~holes /. initial = {} ,
+ screw~radius /. code =
+ {
+ \pgfmathparse {#1}
+ \fp_set:Nn \l__liftarm_screw_radius_fp { \pgfmathresult }
+ } ,
+ screw~radius = 0.8 ,
+ screw~style /. style = { screw_style /. style = {#1} } ,
+ screw_style /. style = {} ,
+ trace /. code = { \clist_set:Nn \l__liftarm_trace_clist {#1} } ,
+ type /. is~choice ,
+ type / liftarm /. code = { \str_set:Nn \l__liftarm_type_str { liftarm } } ,
+ type / liftarm /. value~forbidden ,
+ type / line~segment /. code = { \str_set:Nn \l__liftarm_type_str { line~segment } } ,
+ type / line~segment /. value~forbidden ,
+ type = liftarm ,
+ }
+
+\pgfkeys
+ {
+ / liftarm / connect_algorithm /. is~family ,
+ / liftarm / connect_algorithm /. unknown /. code = {} ,
+ / liftarm / connect_algorithm ,
+ coordinate /. initial = {} ,
+ origin /. code =
+ {
+ \pgfmathparse {#1}
+ \fp_set:Nn \l__liftarm_origin_fp { \pgfmathresult }
+ } ,
+ }
+
+%%> \subsection{Functions}
+
+\cs_generate_variant:Nn \clist_if_in:nnTF { enTF }
+\cs_generate_variant:Nn \clist_map_inline:nn { en }
+\cs_generate_variant:Nn \seq_map_indexed_inline:Nn { cn }
+\cs_generate_variant:Nn \tl_build_begin:N { c }
+\cs_generate_variant:Nn \tl_build_gbegin:N { c }
+\cs_generate_variant:Nn \tl_build_end:N { c }
+\cs_generate_variant:Nn \tl_build_gend:N { c }
+\cs_generate_variant:Nn \tl_build_put_right:Nn { ce , cn }
+\cs_generate_variant:Nn \tl_build_gput_right:Nn { ce , cn }
+
+\cs_new_protected:Npn \__liftarm_connect:nnnn #1#2#3#4
+ {
+ \int_incr:N \l__liftarm_connect_count_int
+ \fp_zero_new:c { l__liftarm_connect_angle_\int_use:N \l__liftarm_connect_count_int _fp }
+ \pgfmathparse {#4}
+ \fp_set:cn { l__liftarm_connect_angle_\int_use:N \l__liftarm_connect_count_int _fp } { \pgfmathresult * deg }
+ \fp_set_eq:NN \l__liftarm_origin_fp \l__liftarm_origin_connect_initial_fp
+ \pgfkeys
+ {
+ / liftarm / connect_algorithm ,
+ coordinate = \pgfkeysvalueof { / liftarm / coordinate } ,
+ #1
+ }
+ \seq_if_in:NnTF \l__liftarm_connect_coordinate_seq {#2}
+ {
+ \fp_set_eq:Nc \l__liftarm_connect_start_constant_x_fp { l__liftarm_connect_constant_x_coord_#2_fp }
+ \fp_set_eq:Nc \l__liftarm_connect_start_constant_y_fp { l__liftarm_connect_constant_y_coord_#2_fp }
+ \seq_set_eq:Nc \l__liftarm_connect_start_arg_seq { l__liftarm_connect_arg_coord_#2_seq }
+ \seq_set_eq:Nc \l__liftarm_connect_start_coeff_seq { l__liftarm_connect_coeff_coord_#2_seq }
+ }
+ {
+ \__liftarm_def_coord:n {#2}
+ \fp_set_eq:NN \l__liftarm_connect_start_constant_x_fp \g__liftarm_coord_x_fp
+ \fp_set_eq:NN \l__liftarm_connect_start_constant_y_fp \g__liftarm_coord_y_fp
+ \seq_clear:N \l__liftarm_connect_start_arg_seq
+ \seq_clear:N \l__liftarm_connect_start_coeff_seq
+ }
+ \clist_map_inline:en { \pgfkeysvalueof { / liftarm / connect_algorithm / coordinate } }
+ {
+ \seq_set_split:Nnn \l__liftarm_coordinate_seq { / } {##1}
+ \pgfmathparse { \seq_item:Nn \l__liftarm_coordinate_seq { 1 } }
+ \fp_set:Nn \l__liftarm_length_fp { \pgfmathresult - \l__liftarm_origin_fp }
+ \seq_if_in:NeTF \l__liftarm_connect_coordinate_seq { \seq_item:Nn \l__liftarm_coordinate_seq { 2 } }
+ {
+ \clist_map_inline:nn { x , y }
+ {
+ \int_incr:N \l__liftarm_connect_equation_int
+ \tl_clear_new:c { l__liftarm_connect_F_\int_use:N \l__liftarm_connect_equation_int _tl }
+ \tl_build_begin:c { l__liftarm_connect_F_\int_use:N \l__liftarm_connect_equation_int _tl }
+ \int_step_inline:nn { \l__liftarm_LU_N_int }
+ {
+ \tl_clear_new:c { l__liftarm_connect_Jacobian_\int_use:N \l__liftarm_connect_equation_int _########1_tl }
+ \tl_build_begin:c { l__liftarm_connect_Jacobian_\int_use:N \l__liftarm_connect_equation_int _########1_tl }
+ \tl_build_put_right:cn { l__liftarm_connect_Jacobian_\int_use:N \l__liftarm_connect_equation_int _########1_tl }
+ { 0 }
+ \fp_zero_new:c { l__liftarm_LU_A_\int_use:N \l__liftarm_connect_equation_int _########1_fp }
+ }
+ \tl_build_put_right:ce { l__liftarm_connect_F_\int_use:N \l__liftarm_connect_equation_int _tl }
+ {
+ \fp_use:c { l__liftarm_connect_constant_####1_coord_\seq_item:Nn \l__liftarm_coordinate_seq { 2 }_fp }
+ - \fp_use:c { l__liftarm_connect_start_constant_####1_fp }
+ - \fp_use:N \l__liftarm_length_fp * \cs:w c__liftarm_cos_sin_####1_tl\cs_end:
+ ( \exp_not:N \cs:w l__liftarm_connect_angle_\int_use:N \l__liftarm_connect_count_int _fp \exp_not:N \cs_end: )
+ }
+ \tl_build_put_right:ce
+ {
+ l__liftarm_connect_Jacobian_\int_use:N \l__liftarm_connect_equation_int _
+ \int_use:N \l__liftarm_connect_count_int _tl
+ }
+ {
+ - \fp_use:N \l__liftarm_length_fp * \cs:w c__liftarm_cos_sin_diff_####1_tl\cs_end:
+ ( \exp_not:N \cs:w l__liftarm_connect_angle_\int_use:N \l__liftarm_connect_count_int _fp \exp_not:N \cs_end: )
+ }
+ \seq_map_indexed_inline:cn { l__liftarm_connect_arg_coord_\seq_item:Nn \l__liftarm_coordinate_seq { 2 }_seq }
+ {
+ \tl_build_put_right:ce { l__liftarm_connect_F_\int_use:N \l__liftarm_connect_equation_int _tl }
+ {
+ + \seq_item:cn { l__liftarm_connect_coeff_coord_\seq_item:Nn \l__liftarm_coordinate_seq { 2 }_seq } {########1}
+ * \cs:w c__liftarm_cos_sin_####1_tl\cs_end:
+ ( \exp_not:N \cs:w l__liftarm_connect_angle_########2_fp \exp_not:N \cs_end: )
+ }
+ \tl_build_put_right:ce { l__liftarm_connect_Jacobian_\int_use:N \l__liftarm_connect_equation_int _########2_tl }
+ {
+ + \seq_item:cn { l__liftarm_connect_coeff_coord_\seq_item:Nn \l__liftarm_coordinate_seq { 2 }_seq } {########1}
+ * \cs:w c__liftarm_cos_sin_diff_####1_tl\cs_end:
+ ( \exp_not:N \cs:w l__liftarm_connect_angle_########2_fp \exp_not:N \cs_end: )
+ }
+ }
+ \seq_map_indexed_inline:Nn \l__liftarm_connect_start_arg_seq
+ {
+ \tl_build_put_right:ce { l__liftarm_connect_F_\int_use:N \l__liftarm_connect_equation_int _tl }
+ {
+ - \seq_item:Nn \l__liftarm_connect_start_coeff_seq {########1} * \cs:w c__liftarm_cos_sin_####1_tl\cs_end:
+ ( \exp_not:N \cs:w l__liftarm_connect_angle_########2_fp \exp_not:N \cs_end: )
+ }
+ \tl_build_put_right:ce { l__liftarm_connect_Jacobian_\int_use:N \l__liftarm_connect_equation_int _########2_tl }
+ {
+ - \seq_item:Nn \l__liftarm_connect_start_coeff_seq {########1} * \cs:w c__liftarm_cos_sin_diff_####1_tl\cs_end:
+ ( \exp_not:N \cs:w l__liftarm_connect_angle_########2_fp \exp_not:N \cs_end: )
+ }
+ }
+ \tl_build_end:c { l__liftarm_connect_F_\int_use:N \l__liftarm_connect_equation_int _tl }
+ \int_step_inline:nn { \l__liftarm_LU_N_int }
+ { \tl_build_end:c { l__liftarm_connect_Jacobian_\int_use:N \l__liftarm_connect_equation_int _########1_tl } }
+ }
+ }
+ {
+ \clist_map_inline:nn { x , y }
+ {
+ \fp_zero_new:c { l__liftarm_connect_constant_####1_coord_\seq_item:Nn \l__liftarm_coordinate_seq { 2 }_fp }
+ \fp_set_eq:cc { l__liftarm_connect_constant_####1_coord_\seq_item:Nn \l__liftarm_coordinate_seq { 2 }_fp }
+ { l__liftarm_connect_start_constant_####1_fp }
+ }
+ \clist_map_inline:nn { arg , coeff }
+ {
+ \seq_clear_new:c { l__liftarm_connect_####1_coord_\seq_item:Nn \l__liftarm_coordinate_seq { 2 }_seq }
+ \seq_set_eq:cc { l__liftarm_connect_####1_coord_\seq_item:Nn \l__liftarm_coordinate_seq { 2 }_seq }
+ { l__liftarm_connect_start_####1_seq }
+ }
+ \seq_put_right:ce { l__liftarm_connect_arg_coord_\seq_item:Nn \l__liftarm_coordinate_seq { 2 }_seq }
+ { \int_use:N \l__liftarm_connect_count_int }
+ \seq_put_right:ce { l__liftarm_connect_coeff_coord_\seq_item:Nn \l__liftarm_coordinate_seq { 2 }_seq }
+ { \fp_use:N \l__liftarm_length_fp }
+ \seq_put_right:Ne \l__liftarm_connect_coordinate_seq { \seq_item:Nn \l__liftarm_coordinate_seq { 2 } }
+ }
+ }
+ }
+
+\cs_new_protected:Npn \__liftarm_connect_stop_criterion:
+ {
+ \int_step_inline:nn { \l__liftarm_LU_N_int }
+ { \fp_set:cn { l__liftarm_LU_b_##1_fp } { \cs:w l__liftarm_connect_F_##1_tl\cs_end: } }
+ \str_case:Vn \l__liftarm_connect_stop_type_str
+ {
+ { 1-norm }
+ {
+ \fp_zero:N \l__liftarm_connect_norm_fp
+ \int_step_inline:nn { \l__liftarm_LU_N_int }
+ { \fp_add:Nn \l__liftarm_connect_norm_fp { abs ( \cs:w l__liftarm_LU_b_##1_fp\cs_end: ) } }
+ \bool_set:Nn \l__liftarm_LU_bool
+ { \fp_compare_p:nNn { \l__liftarm_connect_norm_fp } > { \l__liftarm_connect_stop_value_fp } }
+ }
+ { 2-norm }
+ {
+ \fp_zero:N \l__liftarm_connect_norm_fp
+ \int_step_inline:nn { \l__liftarm_LU_N_int }
+ { \fp_add:Nn \l__liftarm_connect_norm_fp { ( \cs:w l__liftarm_LU_b_##1_fp\cs_end: ) ^ 2 } }
+ \bool_set:Nn \l__liftarm_LU_bool
+ { \fp_compare_p:nNn { sqrt ( \l__liftarm_connect_norm_fp ) } > { \l__liftarm_connect_stop_value_fp } }
+ }
+ { iterations }
+ {
+ \bool_set:Nn \l__liftarm_LU_bool
+ { \fp_compare_p:nNn { \l__liftarm_LU_count_int } < { \l__liftarm_connect_stop_value_fp } }
+ }
+ }
+ }
+
+\cs_new_protected:Npn \__liftarm_def_coord:n #1
+ {
+ \path let \p { l__liftarm_coord } = (#1) in
+ [
+ / utils / exec =
+ {
+ \fp_gset:Nn \g__liftarm_coord_x_fp
+ { ( \pgf@yy * \x { l__liftarm_coord } - \pgf@yx * \y { l__liftarm_coord } ) / \l__liftarm_connect_det_fp }
+ \fp_gset:Nn \g__liftarm_coord_y_fp
+ { ( \pgf@xx * \y { l__liftarm_coord } - \pgf@xy * \x { l__liftarm_coord } ) / \l__liftarm_connect_det_fp }
+ }
+ ] ;
+ }
+
+\cs_new_protected:Npn \__liftarm_default:nnnn #1#2#3#4
+ {
+ \pgfmathparse {#3}
+ \fp_set:Nn \l__liftarm_length_fp { \pgfmathresult }
+ \fp_compare:nNnTF { \l__liftarm_length_fp } < { 0 }
+ { \PackageWarning { liftarm } { The~length~( \fp_use:N \l__liftarm_length_fp )~of~the~liftarm~is~smaller~than~0. } }
+ {
+ \pgfmathparse {#4}
+ \fp_set:Nn \l__liftarm_angle_fp { \pgfmathresult }
+ \begin { scope }
+ [
+ shift = { (#2) } ,
+ rotate = \fp_use:N \l__liftarm_angle_fp
+ ]
+ \pgfkeys { / liftarm , #1 }
+ \tl_set:Ne \l__liftarm_color_tl
+ {
+ \cs:w
+ l__liftarm_color_
+ \int_mod:nn { \fp_eval:n { trunc ( \l__liftarm_length_fp , 0 ) } } { \pgfkeysvalueof { / liftarm / color~modulo } }_tl
+ \cs_end:
+ }
+ \begin { scope } [ shift = { ( - \fp_use:N \l__liftarm_origin_fp , 0 ) } ]
+ \str_case:Vn \l__liftarm_type_str
+ {
+ { liftarm }
+ {
+ \pgfmathparse { \pgfkeysvalueof { / liftarm / liftarm~thickness } }
+ \fp_set:Nn \l__liftarm_half_thickness_fp { 0.5 * \l__liftarm_scalefactor_fp * \pgfmathresult }
+ \pgfmathparse { \pgfkeysvalueof { / liftarm / hole~radius } }
+ \fp_set:Nn \l__liftarm_hole_radius_fp { \l__liftarm_scalefactor_fp * \pgfmathresult }
+ \bool_if:NTF \l__liftarm_brick_bool
+ {
+ \tl_build_begin:N \l__liftarm_shape_tl
+ \tl_build_put_right:Ne \l__liftarm_shape_tl
+ {
+ ( -1 , \fp_eval:n { - \l__liftarm_scalefactor_fp * 0.7 } )
+ -- ( -1 , \fp_eval:n { \l__liftarm_scalefactor_fp * 0.5 } )
+ }
+ \int_step_inline:nnn { -1 } { \fp_eval:n { trunc ( \l__liftarm_length_fp , 0 ) } }
+ {
+ \tl_build_put_right:Ne \l__liftarm_shape_tl
+ {
+ -- (
+ \fp_eval:n { ##1 + 0.5 - \l__liftarm_scalefactor_fp * 0.3 } ,
+ \fp_eval:n { \l__liftarm_scalefactor_fp * 0.5 }
+ )
+ --++ ( 0 , \fp_eval:n { \l__liftarm_scalefactor_fp * 0.2 } )
+ --++ ( \fp_eval:n { \l__liftarm_scalefactor_fp * 0.6 } , 0 )
+ --++ ( 0 , \fp_eval:n { - \l__liftarm_scalefactor_fp * 0.2 } )
+ }
+ }
+ \tl_build_put_right:Ne \l__liftarm_shape_tl
+ {
+ -- ( \fp_eval:n { \l__liftarm_length_fp + 1 } , \fp_eval:n { \l__liftarm_scalefactor_fp * 0.5 } )
+ --++ ( 0 , \fp_eval:n { - \l__liftarm_scalefactor_fp * 1.2 } )
+ -- cycle
+ }
+ \tl_build_end:N \l__liftarm_shape_tl
+ }
+ {
+ \tl_set:Ne \l__liftarm_shape_tl
+ {
+ ( 0 , \fp_use:N \l__liftarm_half_thickness_fp )
+ arc
+ [
+ start~angle = 90 ,
+ end~angle = 270 ,
+ radius = \fp_use:N \l__liftarm_half_thickness_fp
+ ]
+ -- ( \fp_use:N \l__liftarm_length_fp , - \fp_use:N \l__liftarm_half_thickness_fp )
+ arc
+ [
+ start~angle = -90 ,
+ end~angle = 90 ,
+ radius = \fp_use:N \l__liftarm_half_thickness_fp
+ ]
+ -- cycle
+ }
+ }
+ \tl_build_begin:N \l__liftarm_holes_tl
+ \int_step_inline:nnn { 0 } { \fp_eval:n { trunc ( \l__liftarm_length_fp , 0 ) } }
+ {
+ \clist_if_in:enTF { \pgfkeysvalueof { / liftarm / axle~holes } } {##1}
+ {
+ \int_step_inline:nn { 4 }
+ {
+ \tl_build_put_right:Ne \l__liftarm_holes_tl
+ {
+ (
+ \fp_eval:n
+ {
+ ##1 + sqrt ( 2 ) * \l__liftarm_hole_radius_fp * sind ( \c__liftarm_axle_hole_angle_fp )
+ * cosd ( ####1 * 90 - 45 )
+ } ,
+ \fp_eval:n { sqrt ( 2 ) * \l__liftarm_hole_radius_fp * sind ( \c__liftarm_axle_hole_angle_fp )
+ * sind ( ####1 * 90 - 45 ) }
+ )
+ -- (
+ \fp_eval:n
+ {
+ ##1
+ + \l__liftarm_hole_radius_fp * cosd ( ####1 * 90 - \c__liftarm_axle_hole_angle_fp )
+ } ,
+ \fp_eval:n { \l__liftarm_hole_radius_fp * sind ( ####1 * 90 - \c__liftarm_axle_hole_angle_fp ) }
+ )
+ arc
+ [
+ start~angle = \fp_eval:n { ####1 * 90 - \c__liftarm_axle_hole_angle_fp } ,
+ end~angle = \fp_eval:n { ####1 * 90 + \c__liftarm_axle_hole_angle_fp } ,
+ radius = \fp_use:N \l__liftarm_hole_radius_fp
+ ]
+ --
+ }
+ }
+ \tl_build_put_right:Nn \l__liftarm_holes_tl { cycle }
+ }
+ {
+ \tl_build_put_right:Ne \l__liftarm_holes_tl
+ { ( ##1 , 0 ) circle [ radius = \fp_use:N \l__liftarm_hole_radius_fp ] }
+ }
+ }
+ \tl_build_end:N \l__liftarm_holes_tl
+ \fill [ \l__liftarm_color_tl , even~odd~rule , / liftarm / liftarm_style ]
+ \l__liftarm_shape_tl \l__liftarm_holes_tl ;
+ \bool_if:NT \l__liftarm_contour_bool
+ { \draw [ \l__liftarm_color_tl ! 75 ! black , ultra~thick , / liftarm / contour_style ] \l__liftarm_shape_tl ; }
+ \clist_map_inline:en { \pgfkeysvalueof { / liftarm / mark~holes } }
+ {
+ \fill [ black , / liftarm / mark_style ]
+ ( {##1} , 0 ) circle [ radius = \fp_eval:n { \l__liftarm_mark_radius_fp * \l__liftarm_hole_radius_fp } ] ;
+ }
+ \clist_map_inline:en { \pgfkeysvalueof { / liftarm / screw~holes } }
+ {
+ \clist_map_inline:nn { -1 , 1 }
+ {
+ \fill [ black , shift = { ( {##1} , 0 ) } , rotate = 45 , / liftarm / screw_style ]
+ (
+ \fp_eval:n { ####1 * \l__liftarm_screw_angle_fp }
+ \c_colon_str
+ \fp_eval:n { \l__liftarm_screw_radius_fp * \l__liftarm_hole_radius_fp }
+ )
+ arc
+ [
+ start~angle = \fp_eval:n { ####1 * \l__liftarm_screw_angle_fp } ,
+ end~angle = \fp_eval:n { ####1 * ( 180 - \l__liftarm_screw_angle_fp ) } ,
+ radius = \fp_eval:n { \l__liftarm_screw_radius_fp * \l__liftarm_hole_radius_fp }
+ ]
+ ;
+ }
+ }
+ }
+ { line~segment }
+ {
+ \draw [ \l__liftarm_color_tl , / liftarm / liftarm_style ] ( 0 , 0 ) -- ( \fp_use:N \l__liftarm_length_fp , 0 ) ;
+ }
+ }
+ \clist_map_inline:en { \pgfkeysvalueof { / liftarm / coordinate } }
+ {
+ \seq_set_split:Nnn \l__liftarm_coordinate_seq { / } {##1}
+ \coordinate ( \seq_item:Nn \l__liftarm_coordinate_seq { 2 } )
+ at ( { \seq_item:Nn \l__liftarm_coordinate_seq { 1 } } , 0 ) ;
+ }
+ \bool_if:NT \l__liftarm_animate_bool
+ {
+ \clist_map_inline:Nn \l__liftarm_trace_clist
+ {
+ \seq_set_split:Nnn \l__liftarm_trace_item_seq { / } {##1}
+ \stepcounter { g__liftarm_animate_frame_number_counter }
+ \tl_build_gput_right:Ne \g__liftarm_animate_frames_trace_tl
+ {
+ \exp_not:n { \newframe \begin } { scope }
+ [ shift = { (#2) } , rotate = \fp_use:N \l__liftarm_angle_fp ]
+ \exp_not:N \begin { scope }
+ [ shift = { ( \fp_eval:n { \seq_item:Nn \l__liftarm_trace_item_seq { 1 } - \l__liftarm_origin_fp } , 0 ) } ]
+ \tl_if_empty:eTF { \seq_item:Nn \l__liftarm_trace_item_seq { 3 } }
+ {
+ \exp_not:N \fill
+ [ black ] ( 0 , 0 ) circle [ radius = \fp_eval:n { \l__liftarm_hole_radius_fp * 2 / 3 } ] ;
+ }
+ { \seq_item:Nn \l__liftarm_trace_item_seq { 3 } }
+ \exp_not:n { \end { scope } \end { scope } }
+ }
+ \tl_if_empty:eTF { \seq_item:Nn \l__liftarm_trace_item_seq { 2 } }
+ {
+ \tl_build_gput_right:ce { g__liftarm_animate_timeline_0_tl }
+ { \theg__liftarm_animate_frame_number_counter x 0 , }
+ }
+ {
+ \pgfmathparse { \use:e { \seq_item:Nn \l__liftarm_trace_item_seq { 2 } } }
+ \tl_build_gput_right:ce { g__liftarm_animate_timeline_\theg__liftarm_animate_step_number_counter _tl }
+ { \theg__liftarm_animate_frame_number_counter x \fp_eval:n { \pgfmathresult } , }
+ }
+ }
+ }
+ \end { scope }
+ \end { scope }
+ }
+ }
+
+\cs_new_protected:Npn \__liftarm_LU_decomposition:
+ {
+ \int_step_inline:nn { \l__liftarm_LU_N_int }
+ {
+ \int_zero_new:c { l__liftarm_LU_P_##1_int }
+ \int_set:cn { l__liftarm_LU_P_##1_int } {##1}
+ }
+ \int_step_inline:nn { \l__liftarm_LU_N_int }
+ {
+ \fp_zero:N \l__liftarm_LU_maxA_fp
+ \int_set:Nn \l__liftarm_LU_imax_int {##1}
+ \int_step_inline:nnn {##1} { \l__liftarm_LU_N_int }
+ {
+ \fp_set:Nn \l__liftarm_LU_tmp_fp { abs ( \cs:w l__liftarm_LU_A_####1_##1_fp\cs_end: ) }
+ \fp_compare:nNnT { \l__liftarm_LU_tmp_fp } > { \l__liftarm_LU_maxA_fp }
+ {
+ \fp_set_eq:NN \l__liftarm_LU_maxA_fp \l__liftarm_LU_tmp_fp
+ \int_set:Nn \l__liftarm_LU_imax_int {####1}
+ }
+ }
+ \int_compare:nNnF { \l__liftarm_LU_imax_int } = {##1}
+ {
+ \int_set_eq:Nc \l__liftarm_LU_j_int { l__liftarm_LU_P_##1_int }
+ \int_set_eq:cc { l__liftarm_LU_P_##1_int } { l__liftarm_LU_P_\int_use:N \l__liftarm_LU_imax_int _int }
+ \int_set_eq:cN { l__liftarm_LU_P_\int_use:N \l__liftarm_LU_imax_int _int } \l__liftarm_LU_j_int
+ \int_step_inline:nn { \l__liftarm_LU_N_int }
+ {
+ \fp_set_eq:Nc \l__liftarm_LU_tmp_fp { l__liftarm_LU_A_##1_####1_fp }
+ \fp_set_eq:cc { l__liftarm_LU_A_##1_####1_fp } { l__liftarm_LU_A_\int_use:N \l__liftarm_LU_imax_int _####1_fp }
+ \fp_set_eq:cN { l__liftarm_LU_A_\int_use:N \l__liftarm_LU_imax_int _####1_fp } \l__liftarm_LU_tmp_fp
+ }
+ }
+ \int_step_inline:nnn { ##1 + 1 } { \l__liftarm_LU_N_int }
+ {
+ \fp_set:cn { l__liftarm_LU_A_####1_##1_fp }
+ { \cs:w l__liftarm_LU_A_####1_##1_fp\cs_end: / \cs:w l__liftarm_LU_A_##1_##1_fp\cs_end: }
+ \int_step_inline:nnn { ##1 + 1 } { \l__liftarm_LU_N_int }
+ {
+ \fp_sub:cn { l__liftarm_LU_A_####1_########1_fp }
+ { \cs:w l__liftarm_LU_A_####1_##1_fp\cs_end: * \cs:w l__liftarm_LU_A_##1_########1_fp\cs_end: }
+ }
+ }
+ }
+ }
+
+\cs_new_protected:Npn \__liftarm_LU_solve:
+ {
+ \int_step_inline:nn { \l__liftarm_LU_N_int }
+ {
+ \fp_zero_new:c { l__liftarm_LU_x_##1_fp }
+ \fp_set_eq:cc { l__liftarm_LU_x_##1_fp } { l__liftarm_LU_b_\int_use:c { l__liftarm_LU_P_##1_int }_fp }
+ \int_step_inline:nn { ##1 - 1 }
+ {
+ \fp_sub:cn { l__liftarm_LU_x_##1_fp }
+ { \cs:w l__liftarm_LU_A_##1_####1_fp\cs_end: * \cs:w l__liftarm_LU_x_####1_fp\cs_end: }
+ }
+ }
+ \int_step_inline:nnnn { \l__liftarm_LU_N_int } { -1 } { 1 }
+ {
+ \int_step_inline:nnn { ##1 + 1 } { \l__liftarm_LU_N_int }
+ {
+ \fp_sub:cn { l__liftarm_LU_x_##1_fp }
+ { \cs:w l__liftarm_LU_A_##1_####1_fp\cs_end: * \cs:w l__liftarm_LU_x_####1_fp\cs_end: }
+ }
+ \fp_set:cn { l__liftarm_LU_x_##1_fp } { \cs:w l__liftarm_LU_x_##1_fp\cs_end: / \cs:w l__liftarm_LU_A_##1_##1_fp\cs_end: }
+ }
+ }
+
+\cs_new:Npn \__liftarm_Mod:nn #1#2
+ {
+ min
+ (
+ Mod
+ (
+ \fp_eval:n { \cs:w l__liftarm_connect_two_#1_option_#2_angle_fp\cs_end: - \cs:w l__liftarm_connect_angle_#1_fp\cs_end: } ,
+ 360
+ ) ,
+ Mod
+ (
+ \fp_eval:n { \cs:w l__liftarm_connect_angle_#1_fp\cs_end: - \cs:w l__liftarm_connect_two_#1_option_#2_angle_fp\cs_end: } ,
+ 360
+ )
+ )
+ }
+
+%%> \subsection{Document commands and environment}
+
+\NewDocumentCommand \liftarm { O {} m m m }
+ { \__liftarm_default:nnnn {#1} {#2} {#3} {#4} }
+
+\NewDocumentCommand \liftarmanimate { O {} m m m }
+ {
+ \bool_set_true:N \l__liftarm_animate_bool
+ \stepcounter { g__liftarm_animate_number_of_animation_counter }
+ \setcounter { g__liftarm_animate_number_of_steps_counter } { -1 }
+ \tl_build_gbegin:N \g__liftarm_animate_frames_tl
+ \tl_build_gbegin:N \g__liftarm_animate_frames_trace_tl
+ \setcounter { g__liftarm_animate_step_number_counter } { -1 }
+ \foreach \l__liftarm_animate_value_tl in {#3}
+ {
+ \stepcounter { g__liftarm_animate_number_of_steps_counter }
+ \tl_build_gput_right:Ne \g__liftarm_animate_frames_tl
+ {
+ \exp_not:n { \newframe \stepcounter { g__liftarm_animate_step_number_counter } #4 }
+ { \l__liftarm_animate_value_tl }
+ }
+ }
+ \tl_build_gend:N \g__liftarm_animate_frames_tl
+ \int_step_inline:nnn { 0 } { \theg__liftarm_animate_number_of_steps_counter }
+ {
+ \tl_clear_new:c { g__liftarm_animate_timeline_##1_tl }
+ \tl_build_gbegin:c { g__liftarm_animate_timeline_##1_tl }
+ }
+ \tl_build_gput_right:cn { g__liftarm_animate_timeline_0_tl } { c , }
+ \setcounter { g__liftarm_animate_frame_number_counter } { \theg__liftarm_animate_number_of_steps_counter }
+ \file_if_exist:nF { \c_sys_jobname_str \theg__liftarm_animate_number_of_animation_counter . tln }
+ {
+ \iow_open:Nn \g__liftarm_animate_write_timeline_iow
+ { \c_sys_jobname_str \theg__liftarm_animate_number_of_animation_counter . tln }
+ \iow_now:Ne \g__liftarm_animate_write_timeline_iow { \c_colon_str \c_colon_str c , 0 }
+ \iow_close:N \g__liftarm_animate_write_timeline_iow
+ }
+ \begin { animateinline } [ #1 , timeline = \c_sys_jobname_str \theg__liftarm_animate_number_of_animation_counter . tln ] {#2}
+ \tl_tail:N \g__liftarm_animate_frames_tl%remove the first \newframe
+ \tl_build_gend:N \g__liftarm_animate_frames_trace_tl
+ \g__liftarm_animate_frames_trace_tl
+ \end { animateinline }
+ \iow_open:Nn \g__liftarm_animate_write_timeline_iow { \c_sys_jobname_str \theg__liftarm_animate_number_of_animation_counter . tln }
+ \int_step_inline:nnn { 0 } { \theg__liftarm_animate_number_of_steps_counter }
+ {
+ \tl_build_gend:c { g__liftarm_animate_timeline_##1_tl }
+ \iow_now:Ne \g__liftarm_animate_write_timeline_iow
+ { \c_colon_str \c_colon_str \cs:w g__liftarm_animate_timeline_##1_tl\cs_end: ##1 }
+ }
+ \iow_close:N \g__liftarm_animate_write_timeline_iow
+ \bool_set_false:N \l__liftarm_animate_bool
+ }
+
+\NewDocumentCommand \liftarmconstruct { m }
+ {
+ \tl_gput_right:Nn \g__liftarm_construct_tl {#1}
+ \g__liftarm_construct_tl
+ }
+
+\NewDocumentCommand \liftarmconstructclear {}
+ { \tl_gclear:N \g__liftarm_construct_tl }
+
+\NewDocumentEnvironment { liftarmconnect } { O {} +b }
+ {
+ \pgfkeys { / liftarm , #1 }
+ %verify that the contents consists only of commands \liftarm because the contents of this environment are processed several times
+ \DeclareExpandableDocumentCommand \liftarm { O {} m m m } {}%expandable for usage in \tl_set:Ne
+ \tl_set:Ne \l__liftarm_tmp_tl {#2}
+ \tl_remove_all:Nn \l__liftarm_tmp_tl { \par }
+ \tl_if_blank:VF \l__liftarm_tmp_tl
+ { \PackageError { liftarm } { The~environment~liftarmconnect~should~only~consist~of~commands~\protect \liftarm } {} }
+ \int_zero:N \l__liftarm_LU_N_int
+ \RenewDocumentCommand \liftarm { O {} m m m } { \int_incr:N \l__liftarm_LU_N_int }
+ #2
+ \fp_set:Nn \l__liftarm_connect_det_fp { \pgf@yy * \pgf@xx - \pgf@yx * \pgf@xy }
+ \int_case:nnF { \l__liftarm_LU_N_int }
+ {
+ { 0 }
+ {}
+ { 1 }
+ {
+ \RenewDocumentCommand \liftarm { O {} m m m }
+ { \__liftarm_default:nnnn {##1} {##2} {##3} {##4} }
+ }
+ { 2 }
+ {
+ \int_zero:N \l__liftarm_connect_count_int
+ \int_zero:N \l__liftarm_connect_equation_int
+ \seq_clear:N \l__liftarm_connect_coordinate_seq
+ \fp_set_eq:NN \l__liftarm_origin_connect_initial_fp \l__liftarm_origin_fp
+ \RenewDocumentCommand \liftarm { O {} m m m }
+ {
+ \int_incr:N \l__liftarm_connect_count_int
+ \fp_zero_new:c { l__liftarm_connect_angle_\int_use:N \l__liftarm_connect_count_int _fp }
+ \pgfmathparse {##4}
+ \fp_set:cn { l__liftarm_connect_angle_\int_use:N \l__liftarm_connect_count_int _fp } { \pgfmathresult }
+ \fp_set_eq:NN \l__liftarm_origin_fp \l__liftarm_origin_connect_initial_fp
+ \pgfkeys
+ {
+ / liftarm / connect_algorithm ,
+ coordinate = \pgfkeysvalueof { / liftarm / coordinate } ,
+ ##1
+ }
+ \__liftarm_def_coord:n {##2}
+ \fp_set_eq:cN { l__liftarm_connect_two_\int_to_Alph:n { \l__liftarm_connect_count_int }_x_fp } \g__liftarm_coord_x_fp
+ \fp_set_eq:cN { l__liftarm_connect_two_\int_to_Alph:n { \l__liftarm_connect_count_int }_y_fp } \g__liftarm_coord_y_fp
+ \int_compare:nNnTF { \l__liftarm_connect_count_int } = { 1 }
+ {
+ \clist_map_inline:en { \pgfkeysvalueof { / liftarm / connect_algorithm / coordinate } }
+ {
+ \seq_set_split:Nnn \l__liftarm_coordinate_seq { / } {####1}
+ \tl_clear_new:c { l__liftarm_connect_two_A_length_coord_\seq_item:Nn \l__liftarm_coordinate_seq { 2 }_tl }
+ \tl_set:ce { l__liftarm_connect_two_A_length_coord_\seq_item:Nn \l__liftarm_coordinate_seq { 2 }_tl }
+ { \seq_item:Nn \l__liftarm_coordinate_seq { 1 } - \fp_use:N \l__liftarm_origin_fp }
+ \seq_put_right:Ne \l__liftarm_connect_coordinate_seq { \seq_item:Nn \l__liftarm_coordinate_seq { 2 } }
+ }
+ }
+ {
+ \clist_map_inline:en { \pgfkeysvalueof { / liftarm / connect_algorithm / coordinate } }
+ {
+ \seq_set_split:Nnn \l__liftarm_coordinate_seq { / } {####1}
+ \seq_if_in:NeT \l__liftarm_connect_coordinate_seq { \seq_item:Nn \l__liftarm_coordinate_seq { 2 } }
+ {
+ \int_incr:N \l__liftarm_connect_equation_int
+ \int_compare:nNnT { \l__liftarm_connect_equation_int } > { 1 }
+ { \PackageError { liftarm } { There~are~too~many~conditions~for~2~liftarms } {} }
+ \pgfmathparse
+ { \cs:w l__liftarm_connect_two_A_length_coord_\seq_item:Nn \l__liftarm_coordinate_seq { 2 }_tl\cs_end: }
+ \fp_set:Nn \l__liftarm_connect_two_A_length_fp { \pgfmathresult }
+ \pgfmathparse { \seq_item:Nn \l__liftarm_coordinate_seq { 1 } }
+ \fp_set:Nn \l__liftarm_connect_two_B_length_fp { \pgfmathresult - \l__liftarm_origin_fp }
+ }
+ }
+ }
+ }
+ #2
+ \fp_set:Nn \l__liftarm_connect_two_length_fp
+ {
+ sqrt (
+ ( \l__liftarm_connect_two_A_x_fp - \l__liftarm_connect_two_B_x_fp ) ^ 2
+ + ( \l__liftarm_connect_two_A_y_fp - \l__liftarm_connect_two_B_y_fp ) ^ 2
+ )
+ }
+ \fp_set:Nn \l__liftarm_connect_two_angle_fp
+ {
+ atand (
+ \l__liftarm_connect_two_B_y_fp - \l__liftarm_connect_two_A_y_fp ,
+ \l__liftarm_connect_two_B_x_fp - \l__liftarm_connect_two_A_x_fp
+ )
+ }
+ \fp_set:Nn \l__liftarm_connect_two_A_angle_fp
+ {
+ acosd (
+ (
+ ( \l__liftarm_connect_two_A_length_fp ) ^ 2 + ( \l__liftarm_connect_two_length_fp ) ^ 2
+ - ( \l__liftarm_connect_two_B_length_fp ) ^ 2
+ ) / ( 2 * \l__liftarm_connect_two_A_length_fp * \l__liftarm_connect_two_length_fp )
+ )
+ }
+ \fp_set:Nn \l__liftarm_connect_two_B_angle_fp
+ {
+ acosd (
+ (
+ ( \l__liftarm_connect_two_B_length_fp ) ^ 2 + ( \l__liftarm_connect_two_length_fp ) ^ 2
+ - ( \l__liftarm_connect_two_A_length_fp ) ^ 2
+ ) / ( 2 * \l__liftarm_connect_two_B_length_fp * \l__liftarm_connect_two_length_fp )
+ )
+ }
+ \fp_set:cn { l__liftarm_connect_two_1_option_0_angle_fp }
+ { \l__liftarm_connect_two_angle_fp + \l__liftarm_connect_two_A_angle_fp }
+ \fp_set:cn { l__liftarm_connect_two_1_option_1_angle_fp }
+ { \l__liftarm_connect_two_angle_fp - \l__liftarm_connect_two_A_angle_fp }
+ \fp_set:cn { l__liftarm_connect_two_2_option_0_angle_fp }
+ { 180 + \l__liftarm_connect_two_angle_fp - \l__liftarm_connect_two_B_angle_fp }
+ \fp_set:cn { l__liftarm_connect_two_2_option_1_angle_fp }
+ { 180 + \l__liftarm_connect_two_angle_fp + \l__liftarm_connect_two_B_angle_fp }
+ \pgfmathparse
+ {
+ \__liftarm_Mod:nn { 1 } { 0 } + \__liftarm_Mod:nn { 2 } { 0 }
+ >
+ \__liftarm_Mod:nn { 1 } { 1 } + \__liftarm_Mod:nn { 2 } { 1 }
+ }
+ \tl_set:Ne \l__liftarm_tmp_tl { \pgfmathresult }
+ \int_zero:N \l__liftarm_connect_count_int
+ \RenewDocumentCommand \liftarm { O {} m m m }
+ {
+ \int_incr:N \l__liftarm_connect_count_int
+ \__liftarm_default:nnnn {##1} {##2} {##3}
+ { \fp_use:c { l__liftarm_connect_two_\int_use:N \l__liftarm_connect_count_int _option_\l__liftarm_tmp_tl _angle_fp } }
+ }
+ }
+ }
+ {
+ \int_zero:N \l__liftarm_connect_count_int
+ \int_zero:N \l__liftarm_connect_equation_int
+ \seq_clear:N \l__liftarm_connect_coordinate_seq
+ \fp_set_eq:NN \l__liftarm_origin_connect_initial_fp \l__liftarm_origin_fp
+ \RenewDocumentCommand \liftarm { O {} m m m } { \__liftarm_connect:nnnn {##1} {##2} {##3} {##4} }
+ #2
+ \int_compare:nNnF { \l__liftarm_connect_equation_int } = { \l__liftarm_LU_N_int }
+ {
+ \PackageError { liftarm }
+ {
+ The~Jacobian~matrix~is~not~square~
+ (the~size~is~\int_use:N \l__liftarm_connect_equation_int \space by~\int_use:N \l__liftarm_LU_N_int )
+ } {}
+ }
+ \int_zero:N \l__liftarm_LU_count_int
+ \int_step_inline:nn { \l__liftarm_LU_N_int }
+ { \fp_zero_new:c { l__liftarm_LU_b_##1_fp } }
+ \__liftarm_connect_stop_criterion:
+ \bool_while_do:Nn \l__liftarm_LU_bool
+ {
+ \int_step_inline:nn { \l__liftarm_LU_N_int }
+ {
+ \int_step_inline:nn { \l__liftarm_LU_N_int }
+ { \fp_set:cn { l__liftarm_LU_A_##1_####1_fp } { \cs:w l__liftarm_connect_Jacobian_##1_####1_tl\cs_end: } }
+ }
+ \__liftarm_LU_decomposition:
+ \__liftarm_LU_solve:
+ \int_step_inline:nn { \l__liftarm_LU_N_int }
+ { \fp_sub:cn { l__liftarm_connect_angle_##1_fp } { \cs:w l__liftarm_LU_x_##1_fp\cs_end: } }
+ \int_incr:N \l__liftarm_LU_count_int
+ \__liftarm_connect_stop_criterion:
+ }
+ \int_zero:N \l__liftarm_connect_count_int
+ \RenewDocumentCommand \liftarm { O {} m m m }
+ {
+ \int_incr:N \l__liftarm_connect_count_int
+ \__liftarm_default:nnnn {##1} {##2} {##3}
+ { \fp_eval:n { \cs:w l__liftarm_connect_angle_\int_use:N \l__liftarm_connect_count_int _fp\cs_end: / deg } }
+ }
+ }
+ #2
+ }
+ {}
-\gappto\liftarm@constructfigure{#3}
-\expandafter\liftarm@construction\expandafter[\liftarm@constructoptions]{#1}
-}
-\newenvironment{liftarmconstruction}[1][]{\def\liftarm@constructoptions{#1}\def\liftarm@constructfigure{}\begin{enumerate}}{\end{enumerate}}
-\newcounter{liftarm@animatenumberofsteps}
-\newcounter{liftarm@animateframenumber}
-\newcounter{liftarm@animatestepnumber}
-\newwrite\liftarm@animatewritetimeline
-\newcounter{liftarm@animatenumberofanimation}
-\newcommand{\liftarmanimate}[4][]{%
-\liftarm@animatetrue%
-\addtocounter{liftarm@animatenumberofanimation}{1}%
-\setcounter{liftarm@animatenumberofsteps}{-1}%
-\gdef\liftarm@animateframes{}%
-\gdef\liftarm@animateframestrace{}%
-\setcounter{liftarm@animatestepnumber}{-1}%
-\foreach\liftarm@n in {#3}{%
-\addtocounter{liftarm@animatenumberofsteps}{1}%
-\gappto\liftarm@animateframes{\newframe\addtocounter{liftarm@animatestepnumber}{1}#4}%
-\xappto\liftarm@animateframes{{\liftarm@n}}%
-}%
-\patchcmd{\liftarm@animateframes}{\newframe}{}{}{}%
-\csgdef{liftarm@animatetimeline0}{c,}%
-\foreach\liftarm@n in {1,...,\theliftarm@animatenumberofsteps}{%
-\csgdef{liftarm@animatetimeline\liftarm@n}{}%
-}%
-\setcounter{liftarm@animateframenumber}{\theliftarm@animatenumberofsteps}%
-\IfFileExists{\jobname\theliftarm@animatenumberofanimation.tln}{}{%
-\immediate\openout\liftarm@animatewritetimeline=\jobname\theliftarm@animatenumberofanimation.tln%
-\immediate\write\liftarm@animatewritetimeline{::c,0}%
-\immediate\closeout\liftarm@animatewritetimeline%
-}%
-\begin{animateinline}[#1,timeline=\jobname\theliftarm@animatenumberofanimation.tln]{#2}%
-\liftarm@animateframes%
-\liftarm@animateframestrace%
-\end{animateinline}%
-\immediate\openout\liftarm@animatewritetimeline=\jobname\theliftarm@animatenumberofanimation.tln%
-\foreach\liftarm@n in {0,...,\theliftarm@animatenumberofsteps}{%
-\immediate\write\liftarm@animatewritetimeline{::\csname liftarm@animatetimeline\liftarm@n\endcsname\liftarm@n}%
-}%
-\immediate\closeout\liftarm@animatewritetimeline%
-\liftarm@animatefalse%
-}
\endinput \ No newline at end of file
diff --git a/graphics/pgf/contrib/liftarm/liftarm.tex b/graphics/pgf/contrib/liftarm/liftarm.tex
index b45bb85793..a7719fc926 100644
--- a/graphics/pgf/contrib/liftarm/liftarm.tex
+++ b/graphics/pgf/contrib/liftarm/liftarm.tex
@@ -1,12 +1,12 @@
%% liftarm.tex
-%% Copyright 2022 Matthias Floré
+%% Copyright 2022-2024 Matthias Floré
%
% 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
+% 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'.
@@ -20,37 +20,42 @@
\usepackage{graphicx}
\usepackage[a4paper,left=2.25cm,right=2.25cm,top=2.5cm,bottom=2.5cm,nohead]{geometry}
\usepackage{parskip}
+\usepackage{iftex}
+\ifluatex
+\else
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
+\fi
\usepackage{mathtools}
\usepackage{amssymb}
\allowdisplaybreaks
-\usepackage{multicol}
+\usepackage{pdflscape}
\usepackage{animate}
\usepackage{liftarm}
\input{pgfmanual-en-macros.tex}
-\usepackage[page]{totalcount}
+\usepackage{codehigh}
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\headrulewidth}{0pt}
-\cfoot{\iftotalpages\begin{tikzpicture}\liftarm[mark holes=\thepage-1]{0,0}{\totalpages-2}{0}\end{tikzpicture}\fi}%\liftarm{0,0}{\thepage}{0}
\fancyhead{}
+\fancyfoot[C]{\IfRefUndefinedExpandable{Thesourcecode}{}{\begin{tikzpicture}\liftarm[mark holes=\thepage -1]{0,0}{\getpagerefnumber{Thesourcecode}-2}{0}\end{tikzpicture}}}%\liftarm{0,0}{\thepage}{0}
+\usepackage[nottoc]{tocbibind}
\usepackage{imakeidx}
\makeindex[program=makeindex,columns=2,intoc=true]
\indexsetup{othercode={\thispagestyle{fancy}}}
\usepackage[linktoc=all,pdfstartview=FitH,colorlinks=true,linkcolor=Mahogany,citecolor=ForestGreen,urlcolor=MidnightBlue,bookmarksnumbered=true]{hyperref}
-\hypersetup{pdftitle={The liftarm package},pdfauthor={Matthias Flor\'e},pdfsubject={Manual},pdfkeywords={liftarm}}
+\hypersetup{pdftitle={The liftarm package},pdfauthor={Matthias Floré},pdfsubject={Manual},pdfkeywords={liftarm}}
\setcounter{tocdepth}{2}
\setcounter{secnumdepth}{2}
\DeclareMathOperator{\atan}{atan}
-\title{The \texttt{liftarm} package\\[12pt]\large Draw liftarms with \tikzname}
-\author{Matthias Flor\'e}
-\date{Version 2.0 (2022/04/07)}%\\[12pt]
+\title{The \texttt{liftarm} package\\[12pt]\large Geometric constructions with liftarms using \tikzname{} and \LaTeX3}
+\author{Matthias Floré}
+\date{Version 3.0 (2024/05/20)}%\\[12pt]
\begin{document}
\maketitle
\thispagestyle{fancy}
\begin{abstract}
-\noindent This package is based on the package |tikz| (see \cite{TtTaPGFp}) and can be used to draw liftarms with \tikzname. It provides several options for the appearance of the liftarms, a command which connects two liftarms, an environment to describe a construction and a method to animate a construction with one or more traces.% This is the manual for version .
+\noindent This package is based on the package |tikz| (see \cite{TtTaPGFp}) and can be used to draw geometric constructions with liftarms using \tikzname. There are several options for the appearance of the liftarms. It provides an environment to connect multiple liftarms using the Newton-Raphson method and LU decomposition. It also provides an environment to describe a construction and a method to animate a construction with one or more traces.% This is the manual for version .
\end{abstract}
\tableofcontents
\section{Usage}
@@ -58,7 +63,7 @@ The package |liftarm| can be used by putting the following in the preamble.
\begin{codeexample}[code only]
\usepackage{liftarm}
\end{codeexample}
-The package |liftarm| loads the packages |etoolbox|, |xcolor| with the option |dvipsnames|, |tikz| and the \tikzname{} library |calc|. Since |xcolor| is loaded with the option |dvipsnames|, packages such as |pgfplots| and |tcolorbox| must be loaded \emph{after} |liftarm|.
+The package |liftarm| loads the package |xcolor| with the option |dvipsnames|, the package |tikz| and the \tikzname{} library |calc|. Since |xcolor| is loaded with the option |dvipsnames|, packages such as |pgfplots| and |tcolorbox| must be loaded \emph{after} |liftarm|.
\section{Drawing liftarms}
\begin{command}{\liftarm\opt{\oarg{options}}\marg{point}\marg{length}\marg{angle}}
This command can be placed inside a |tikzpicture| environment. It draws a liftarm of \meta{length} starting at \meta{point}. The angle between the liftarm and the $x$-axis can be specified by \meta{angle} in degrees. The distance between the holes is $1$.
@@ -84,53 +89,25 @@ If true, a brick will be drawn instead of a liftarm.
\end{tikzpicture}
\end{codeexample}
\end{key}
-\begin{key}{/liftarm/color=\marg{name}}
-This key defines the color of the liftarm. The color can also be specified without key.
-\begin{codeexample}[width=10cm]
-\begin{tikzpicture}
-\liftarm[color=Green]{0,1}{4}{0}
-\liftarm[Blue]{0,2}{3}{0}
-\end{tikzpicture}
-\end{codeexample}
-\end{key}
-\begin{key}{/liftarm/color 0=\marg{name} (initially Gray)}
-\end{key}
-\begin{key}{/liftarm/color 1=\marg{name} (initially darkgray)}
-\end{key}
-\begin{key}{/liftarm/color 2=\marg{name} (initially Yellow)}
-\end{key}
-\begin{key}{/liftarm/color 3=\marg{name} (initially Orange)}
-\end{key}
-\begin{key}{/liftarm/color 4=\marg{name} (initially Red)}
-\end{key}
-\begin{key}{/liftarm/color 5=\marg{name} (initially Green)}
-\end{key}
-\begin{key}{/liftarm/color 6=\marg{name} (initially Blue)}
-\end{key}
-\begin{key}{/liftarm/color 7=\marg{name} (initially Brown)}
-These keys define the colors of the liftarms which have as their length the number following |color|.
+\begin{key}{/liftarm/color=\marg{number}\marg{color}}
+This key defines the color of liftarms of length \meta{number}.
+
+Initially, the colors |Gray|, |darkgray|, |Yellow|, |Orange|, |Red|, |Green|, |Blue| and |Brown| are defined for respectively the lengths |0| till |7|.
\end{key}
\begin{key}{/liftarm/color modulo=\marg{number} (initially 8)}
-The default colors of the liftarms are determined by computing the length of the liftarm modulo the value of this key and selecting the color from the previous keys.
-\begin{codeexample}[width=10cm]
-\begin{tikzpicture}[scale=0.5]
-\foreach\n in {0,...,16}{
- \liftarm{0,-\n}{\n}{0}
-}
-\end{tikzpicture}
-\end{codeexample}
+The default colors of the liftarms are determined by computing the length of the liftarm modulo the value of this key and selecting the color defined by the key |color|.
\begin{codeexample}[width=10cm]
\begin{tikzpicture}[scale=0.5]
\pgfkeys{
- /liftarm,
- color 0=Yellow,
- color 1=Red,
- color 2=Green,
- color 3=Blue,
- color modulo=4
+ /liftarm,
+ color={0}{Yellow},
+ color={1}{Red},
+ color={2}{Green},
+ color={3}{Blue},
+ color modulo=4
}
\foreach\n in {0,...,8}{
- \liftarm{0,-\n}{\n}{0}
+ \liftarm{0,-\n}{\n}{0}
}
\end{tikzpicture}
\end{codeexample}
@@ -144,12 +121,28 @@ If true, a contour will be drawn around the liftarm.
\end{tikzpicture}
\end{codeexample}
\end{key}
-\begin{key}{/liftarm/coordinate=\marg{number 1/name 1}\dots}
+\begin{stylekey}{/liftarm/contour style=\marg{options} (initially \normalfont empty)}
+The style of the contour is determined as follows. First, the color is defined as \meta{initial color of the liftarm}|!75!black|. Then the option |ultra thick| is added. Thereafter, the style of the key |contour style| is added.
+
+The style |contour style| only applies to the border of the liftarm. The style |liftarm style| also applies to the holes of the liftarm.
+\begin{codeexample}[width=10cm]
+\begin{tikzpicture}
+\liftarm[
+ contour,
+ contour style={dashed,black}
+]{0,1}{4}{0}
+\liftarm[
+ liftarm style={draw=black,thick}
+]{0,2}{4}{0}
+\end{tikzpicture}
+\end{codeexample}
+\end{stylekey}
+\begin{key}{/liftarm/coordinate=\marg{number 1/name 1,\dots}}
This key defines coordinates with name \meta{name i} at hole \meta{number i} of the liftarm.
\begin{codeexample}[width=10cm]
\begin{tikzpicture}
\liftarm[
- coordinate={1/A,3/B}
+ coordinate={1/A,3/B}
]{0,1}{6}{40}
\liftarm{A}{3}{0}
\liftarm{B}{2}{180}
@@ -164,40 +157,46 @@ The \meta{value} of this key, multiplied with the \meta{value} of the key |scale
\end{tikzpicture}
\end{codeexample}
\end{key}
+\begin{stylekey}{/liftarm/liftarm style=\marg{options} (initially \normalfont empty)}
+The style of the liftarm is determined as follows. First, the color is defined by the keys |color| and |color modulo|. Thereafter, the style of the key |liftarm style| is added.
+\end{stylekey}
\begin{key}{/liftarm/liftarm thickness=\marg{value} (initially 0.92)}
The \meta{value} of this key, multiplied with the \meta{value} of the key |scalefactor| defines the thickness of the liftarm.
\begin{codeexample}[width=10cm]
\begin{tikzpicture}
\liftarm[
- hole radius=0.1,
- liftarm thickness=0.3
+ hole radius=0.1,
+ liftarm thickness=0.3
]{0,0}{5}{0}
\end{tikzpicture}
\end{codeexample}
\end{key}
-\begin{key}{/liftarm/mark color=\marg{name} (initially Black)}
-\end{key}
\begin{key}{/liftarm/mark holes=\marg{values}}
-The key |mark holes| defines the holes in the liftarm which will be marked. The key |mark color| defines the color of these marks.
+\end{key}
+\begin{key}{/liftarm/mark radius=\marg{factor} (initially 1)}
+\end{key}
+\begin{stylekey}{/liftarm/mark style=\marg{options} (initially \normalfont empty)}
+The key |mark holes| defines the holes in the liftarm which will be marked. The radius is the product of the \meta{factor} given to the key |mark radius| and the value of the key |hole radius|. The style of these marks is determined as follows. First, the color is set to |black|. Thereafter, the style of the key |mark style| is added.
\begin{codeexample}[width=10cm]
\begin{tikzpicture}
\liftarm[
- mark holes={0,1,3}
+ mark holes={0,1,3}
]{0,0}{5}{0}
\liftarm[
- mark holes={1,2,4},
- mark color=Blue
+ mark holes={1,2,4},
+ mark radius=2/3,
+ mark style=Blue
]{0,1}{4}{0}
\end{tikzpicture}
\end{codeexample}
-\end{key}
+\end{stylekey}
\begin{key}{/liftarm/origin=\marg{number} (initially 0)}
This key defines the number of the hole which will be placed at the coordinate given as argument to the liftarm.
\begin{codeexample}[width=10cm]
\begin{tikzpicture}
\liftarm{-2,0}{4}{0}
-\liftarm[origin=1]{0,0}{6}{30}
-\liftarm[origin=2]{0,0}{5}{60}
+\liftarm[origin=1]{0,0}{3}{30}
+\liftarm[origin=2]{0,0}{5}{-20}
\end{tikzpicture}
\end{codeexample}
\end{key}
@@ -210,216 +209,254 @@ The \meta{value} of this key defines the factor which scales the thickness of th
\end{tikzpicture}
\end{codeexample}
\end{key}
-\begin{key}{/liftarm/screw color=\marg{name} (initially Black)}
+\begin{key}{/liftarm/screw angle=\marg{angle} (initially 10)}
\end{key}
\begin{key}{/liftarm/screw holes=\marg{values}}
\end{key}
-\begin{key}{/liftarm/screw holes angle=\marg{angle} (initially 45)}
-The key |screw holes| defines the holes in the liftarm where a screw will be drawn. The key |screw color| defines the color of these screws. The key |screw holes angle| defines the angle in degrees around which the screws are drawn.
+\begin{key}{/liftarm/screw radius=\marg{factor} (initially 0.8)}
+\end{key}
+\begin{stylekey}{/liftarm/screw style=\marg{options} (initially \normalfont empty)}
+The key |screw holes| defines the holes in the liftarm where a screw will be drawn. The angle of these screws is determined by the key |screw angle| which is an angle in degrees. The radius is the product of the \meta{factor} given to the key |screw radius| and the value of the key |hole radius|. The style of these screws is determined as follows. First, the color is set to |black|. Then the option |rotate=45| is added. Thereafter, the style of the key |screw style| is added.
\begin{codeexample}[width=10cm]
\begin{tikzpicture}
\liftarm[
- screw holes={0,1,3}
+ screw holes={0,1,3}
]{0,0}{5}{0}
\liftarm[
- screw holes={1,2,4},
- screw color=Blue,
- screw holes angle=0
+ screw angle=15,
+ screw holes={1,2,4},
+ screw radius=0.7,
+ screw style={Blue,rotate=-45}
]{0,1}{4}{0}
\end{tikzpicture}
\end{codeexample}
+\end{stylekey}
+\begin{key}{/liftarm/type=\mchoice{liftarm,line segment} (initially liftarm)}
+\begin{description}
+\item[\texttt{liftarm}] In this case, the command |\liftarm| draws a liftarm.
+\item[\texttt{line segment}] In this case, the command |\liftarm| draws a line segment.
+\end{description}
\end{key}
\end{command}
\section{Connecting liftarms}
-\begin{command}{\liftarmconnect\opt{\oarg{options}}\marg{point1}\marg{length1}\marg{point2}\marg{length2}}
-This command can be placed inside a |tikzpicture| environment. It draws a liftarm of \meta{length1} starting at \meta{point1} and a liftarm of \meta{length2} starting at \meta{point2} in such a way that their last holes have the same coordinate in case that such a point exists. If such a point does not exist then nothing is drawn. In case that there exist 2 such points then this point is chosen counterclockwise. In that case, the other configuration of the 2 liftarms can be obtained by simply swapping \marg{point1}\marg{length1} and \marg{point2}\marg{length2}. The keys for the command |\liftarm| can be given to the \meta{options}. In this case these keys will be passed to both liftarms.
-\begin{codeexample}[width=9cm]
+\begin{environment}{{liftarmconnect}\opt{\oarg{options}}}
+This environment can be placed inside a |tikzpicture| environment. It can be used to connect liftarms where the angles are computed automatically. The \meta{options} can be a list of keys from the liftarm key family.
+
+The contents should consist only of commands |\liftarm| and spaces.
+
+The conditions to connect the liftarms are specified by the key |coordinate|. The resulting equations are determined automatically by the environment |liftarmconnect|. The number of liftarms needs to be equal to the number of equations. In the example below, there are 2 liftarms and 1 condition specified with the coordinate |A| resulting in 2 equations.
+\begin{codeexample}[width=10cm]
\begin{tikzpicture}
-\coordinate (A) at (0,0);
-\coordinate (B) at (4,2);
-\coordinate (C) at (1,-3);
-\coordinate (D) at (5,-1);
-\liftarmconnect[Yellow]{A}{2}{B}{3}
-\liftarmconnect[Red]{B}{3}{A}{2}
-\liftarmconnect[Green]{C}{3}{D}{2}
-\liftarmconnect[Blue]{D}{2}{C}{3}
-\foreach\coord in {A,B,C,D}{
- \node at (\coord) {{\small $\coord$}};
-}
+\coordinate (X) at (5,0);
+\begin{liftarmconnect}
+ \liftarm[coordinate=4/A]{0,0}{4}{60}
+ \liftarm[coordinate=4/A]{X}{4}{120}
+\end{liftarmconnect}
\end{tikzpicture}
\end{codeexample}
-Additionally, the \meta{options} can be given with the following keys.
-\begin{key}{/liftarm/connect coordinate=\marg{name}}
-This key defines a coordinate with name \meta{name} at the connection point of both liftarms.
-\begin{codeexample}[width=10cm]
+The similar code below does not work because the coordinate |A| is used as the starting point of the second liftarm but is unknown since it is used in a condition for the first liftarm and furthermore, there is no liftarm to complement the condition involving |A| in the first liftarm.
+\begin{codeexample}[code only]
\begin{tikzpicture}
-\liftarm{-3,0}{5}{0}
-\liftarmconnect[
- connect coordinate=A
-]{2,0}{2}{-2,0}{3}
-\liftarm{A}{4}{180}
+\coordinate (X) at (5,0);
+\begin{liftarmconnect}
+ \liftarm[coordinate=4/A]{0,0}{4}{60}
+ \liftarm[coordinate=4/X]{A}{4}{-60}
+\end{liftarmconnect}
\end{tikzpicture}
\end{codeexample}
+If the environment |liftarmconnect| consists of 2 liftarms then the law of cosines is used to compute the angles.
+
+If there are more than 2 liftarms then the set of equations is solved with the Newton-Raphson method. The initial values for the angles are given by the last arguments of the commands |\liftarm|. The Jacobian matrix is defined by the environment |liftarmconnect|. The resulting set of linear equations is solved with LU decomposition. The iteration stops if the condition determined by the key |connect stop| is satisfied.
+
+Since the \emph{let operation} from the \tikzname{} library |calc| is used, it is not possible to use the variable names |\n|, |\p|, |\x| and |\y| inside the starting point of a command |\liftarm| which is used in the environment |liftarmconnect|.
+\begin{key}{/liftarm/connect stop=\mchoice{1-norm,2-norm,iterations} (initially 1-norm)}
+\begin{description}
+\item[\texttt{1-norm}] In this case, the iteration stops if the 1-norm is smaller than the value given to this key. Its default value is $0.001$.
+\item[\texttt{2-norm}] In this case, the iteration stops if the 2-norm is smaller than the value given to this key. Its default value is $0.001$.
+\item[\texttt{iterations}] In this case, a number of iterations is executed where the number is the one given to this key. Its default value is $10$.
+\end{description}
\end{key}
-\begin{key}{/liftarm/connect reverse=\opt{\meta{boolean}} (default true, initially false)}
-If true, the first liftarm of |\liftarmconnect| will be drawn second and the second liftarm will be drawn first. This option can be used to change the appearance at the connection point of both liftarms.
\begin{codeexample}[width=10cm]
\begin{tikzpicture}
-\liftarmconnect{2,0}{1}{0,0}{2}
-\liftarmconnect[
- connect reverse
-]{5,0}{1}{3,0}{2}
+\begin{liftarmconnect}
+ \liftarm[coordinate=2/A]{0,0}{2}{70}
+ \liftarm[coordinate=3/A]{4,0}{3}{120}
+\end{liftarmconnect}
+\begin{liftarmconnect}
+ \liftarm[coordinate=4/B]{4,0}{4}{200}
+ \liftarm[coordinate=1/B]{0,0}{1}{-90}
+\end{liftarmconnect}
+\node at (A) {\small $A$};
+\node at (B) {\small $B$};
\end{tikzpicture}
\end{codeexample}
-\end{key}
-\begin{stylekey}{/liftarm/liftarm 1=\marg{options} (initially \normalfont empty)}
-\end{stylekey}
-\begin{stylekey}{/liftarm/liftarm 2=\marg{options} (initially \normalfont empty)}
-These keys accept a list of keys which will be applied to the first respectively second liftarm. These lists of keys accept the same options as the command |\liftarm|. Additionally, the key |connect| below can be given.
-\begin{key}{/liftarm/connect=\marg{number}}
-This key defines the number of the hole which will be connected to the matching liftarm. If this key is not given then the last hole of the liftarm is taken as the connecting point.
-\begin{codeexample}[width=10cm]
+The example below shows the regular pentagon from \cite{Tmm1}. In the first environment |liftarmconnect| there are $4$ liftarms and $2$ conditions resulting in $4$ equations. Hence the Jacobian matrix has size $4\times 4$.
+\begin{codeexample}[width=7cm]
+\begin{tikzpicture}[scale=0.5]
+\pgfkeys{/liftarm,liftarm style={draw=black},scalefactor=1}
+\liftarm{0,0}{3}{0}
+\begin{liftarmconnect}
+ \liftarm[coordinate={3/A,4/B,12/C}]{0,0}{12}{100}
+ \liftarm[coordinate={3/D,4/E,12/F}]{3,0}{12}{80}
+ \liftarm[coordinate=11/F]{B}{11}{60}
+ \liftarm[coordinate=11/C]{E}{11}{120}
+\end{liftarmconnect}
+\begin{liftarmconnect}
+ \liftarm[coordinate=3/G]{A}{3}{30}
+ \liftarm[coordinate=3/G]{D}{3}{150}
+\end{liftarmconnect}
+\end{tikzpicture}
+\end{codeexample}
+The example below shows iterations $0$ till $3$ of a construction with $6$ liftarms and $3$ conditions resulting in $6$ equations. Hence the Jacobian matrix has size $6\times 6$.
+\begin{codeexample}[]
\begin{tikzpicture}
-\liftarm{0,-7}{10}{90}
-\liftarmconnect[
- connect coordinate=A,
- liftarm 1={
- origin=1,
- connect=5
- },
- liftarm 2={
- origin=2,
- connect=6
- }
-]{0,2}{6}{0,0}{7}
-\liftarmconnect[
- liftarm 1={
- origin=2,
- connect=8
- },
- liftarm 2={
- origin=1,
- connect=5,
- coordinate=4/B
- }
-]{A}{9}{0,-6}{6}
-\liftarm[origin=1]{B}{4}{70}
+\liftarm{0,0}{15}{0}
+\liftarm{0,5}{15}{0}
+\foreach\k in {0,...,3}{
+ \begin{scope}[shift={(\k*4,0)}]
+ \begin{liftarmconnect}[connect stop={iterations=\k},liftarm style=ultra thick,type=line segment]
+ \liftarm[coordinate=3/A]{1,0}{3}{90}
+ \liftarm[coordinate=3/B]{3,0}{3}{90}
+ \liftarm[coordinate=1/B]{A}{1}{0}
+ \liftarm[coordinate=1/C]{A}{1}{70}
+ \liftarm[coordinate=1/C]{B}{1}{110}
+ \liftarm[coordinate=2/C]{0,5}{2}{0}
+ \end{liftarmconnect}
+ \node at (1.5,-1) {\texttt{iterations=\k}};
+ \end{scope}
+}
\end{tikzpicture}
\end{codeexample}
-\end{key}
-\end{stylekey}
-\end{command}
+The example below shows the regular heptagon from \cite{Tmm1}. In the first environment |liftarmconnect| there are $8$ liftarms and $4$ conditions resulting in $8$ equations. Hence the Jacobian matrix has size $8\times 8$.
+\begin{codeexample}[width=8cm]
+\begin{tikzpicture}[scale=0.4]
+\pgfkeys{/liftarm,scalefactor=1}
+\liftarm{-4,0}{8}{0}
+\begin{liftarmconnect}
+ \liftarm[coordinate={1/A,7/B,8/G}]{-4,0}{8}{135}
+ \liftarm[coordinate=11/F]{A}{11}{50}
+ \liftarm[coordinate=11/F]{B}{11}{20}
+ \liftarm[coordinate={1/C,7/D,8/H}]{4,0}{8}{45}
+ \liftarm[coordinate=11/E]{C}{11}{130}
+ \liftarm[coordinate=11/E]{D}{11}{160}
+ \liftarm[coordinate=8/E]{G}{8}{30}
+ \liftarm[coordinate=8/F]{H}{8}{150}
+\end{liftarmconnect}
+\begin{liftarmconnect}
+ \liftarm[coordinate=8/I]{E}{8}{70}
+ \liftarm[coordinate=8/I]{F}{8}{110}
+\end{liftarmconnect}
+\begin{liftarmconnect}
+ \liftarm[coordinate=8/J]{G}{8}{70}
+ \liftarm[coordinate=8/J]{I}{8}{210}
+\end{liftarmconnect}
+\begin{liftarmconnect}
+ \liftarm[coordinate=8/K]{H}{8}{110}
+ \liftarm[coordinate=8/K]{I}{8}{-30}
+\end{liftarmconnect}
+\end{tikzpicture}
+\end{codeexample}
+\end{environment}
\section{Describing a construction}
-If a construction involves many liftarms then it is convenient to describe this construction in separate steps and |tikzpicture|s. Then the content of previous |tikzpicture|s would need to be copied in each new |tikzpicture|. This process can be automated by using the |liftarmconstruction| environment and the command |\liftarmconstruct| below.
-\begin{environment}{{liftarmconstruction}\opt{\oarg{options}}}
-This environment is in fact an |enumerate| environment with the addition that it resets the content of the |tikzpicture| which is displayed by the command |\liftarmconstruct| below. Thus in particular, |\item| can be used inside the |liftarmconstruction| environment. The \meta{options} will be passed to each |tikzpicture| drawn by the command |\liftarmconstruct| inside this environment. The following command can be used inside this environment.
-\begin{command}{\liftarmconstruct\opt{\oarg{options}}\marg{text}\marg{commands}}
-This command starts an |\item| and shows \meta{text}. Then it displays a |tikzpicture| containing \meta{commands} and also the \meta{commands} of previous |\liftarmconstruct| commands inside the same |liftarmconstruction| environment. The \meta{options} will be added to this |tikzpicture| but \emph{only} in the current step.
+If a construction involves many liftarms then it is convenient to describe this construction in separate steps. Then the content of previous steps would need to be copied in each new step. This process can be automated by using the command |\liftarmconstruct| below.
+\begin{command}{\liftarmconstruct\marg{commands}}
+This command appends \meta{commands} to an internal token list. Then it uses this token list.
+\end{command}
+\begin{command}{\liftarmconstructclear}
+This command clears the token list which is used by the command |\liftarmconstruct|.
As an example, we describe below the construction of a regular pentagon from \cite{Tmm1}.
-\begin{codeexample}[width=10cm]
-\begin{minipage}{0.5\linewidth}%only for
-%usage in this manual%\linewidth-6pt
-%\begin{multicols}{2}%only for
-%usage in this manual
-\begin{liftarmconstruction}[scale=0.75]
-\liftarmconstruct[
- {\node[left,align=left]
- at (-0.5,-1.3)
- {Rectangular triangle.\\
- This text is only\\
- visible in this step.};}
-]{
- We start with 3 liftarms to form
- a rectangular triangle.
-}{
-\liftarm{-3,0}{4}{0}
-\liftarmconnect[
- liftarm 1={
- origin=2,
- mark holes={2,6}
- },
- liftarm 2={
- mark holes=0
- }
-]{0,0}{6}{-3,0}{5}}
-\item An |\item| can be added since this
- is an |enumerate| environment.
+\begin{codeexample}[width=7cm]
+\begin{minipage}{5.5cm}%only for usage in this manual
+\liftarmconstructclear
+\begin{enumerate}
+\item First we form a rectangular triangle with 3 liftarms.
+\begin{center}
+\begin{tikzpicture}[scale=0.7]
\liftarmconstruct{
- Now we add 2 liftarms of length $3$.
-}{\liftarmconnect[
- connect coordinate=A,
- liftarm 1={
- mark holes={0,3}
- },
- liftarm 2={
- mark holes=0
- }
-]{0,-2}{3}{0,2}{3}}
+ \liftarm[mark holes=3]{-3,0}{4}{0}
+ \begin{liftarmconnect}
+ \liftarm[coordinate=6/A,origin=2]{0,0}{6}{90}
+ \liftarm[coordinate=5/A,mark holes={0,5}]{-3,0}{5}{60}
+ \end{liftarmconnect}
+}
+\end{tikzpicture}
+\end{center}
+\item Then we add 2 liftarms of length $3$.
+\begin{center}
+\begin{tikzpicture}[scale=0.7]
\liftarmconstruct{
- In this step we construct the first
- side of the regular pentagon.
-}{\liftarmconnect[
- connect coordinate=B,
- liftarm 2={
- mark holes={0,2}
- }
-]{A}{2}{1,0}{2}}
+ \begin{liftarmconnect}
+ \liftarm[coordinate=3/B,mark holes={0,3}]{0,-2}{3}{45}
+ \liftarm[coordinate=3/B,mark holes=0]{0,2}{3}{-45}
+ \end{liftarmconnect}
+}
+\end{tikzpicture}
+\end{center}
+\item Here appears the first side of the regular pentagon.
+\begin{center}
+\begin{tikzpicture}[scale=0.7]
\liftarmconstruct{
- Now we finish the construction
- of the regular pentagon.
-}{\liftarmconnect[
- liftarm 2={
- mark holes={0,2}
- }
-]{B}{2}{-1,0}{2}
-\liftarmconnect[
- liftarm 1={
- mark holes=2
- }
-]{-1,0}{2}{A}{2}}
-\end{liftarmconstruction}
-%\end{multicols}
+ \begin{liftarmconnect}
+ \liftarm[coordinate=2/C]{B}{2}{100}
+ \liftarm[coordinate=2/C,mark holes={0,2}]{1,0}{2}{80}
+ \end{liftarmconnect}
+}
+\end{tikzpicture}
+\end{center}
+\item Now we end the construction of the regular pentagon.
+\begin{center}
+\begin{tikzpicture}[scale=0.7]
+\liftarmconstruct{
+ \begin{liftarmconnect}
+ \liftarm[coordinate=2/D]{C}{2}{180}
+ \liftarm[coordinate=2/D,mark holes={0,2}]{-1,0}{2}{80}
+ \end{liftarmconnect}
+ \begin{liftarmconnect}
+ \liftarm[coordinate=2/E,mark holes=2]{-1,0}{2}{-80}
+ \liftarm[coordinate=2/E]{B}{2}{210}
+ \end{liftarmconnect}
+}
+\end{tikzpicture}
+\end{center}
+\end{enumerate}
\end{minipage}
\end{codeexample}
\end{command}
-\end{environment}
\section{Animations}
\begin{command}{\liftarmanimate\opt{\oarg{options}}\marg{frame rate}\marg{list}\marg{command}}
-This command shows an animation using the |animateinline| environment of the package |animate|. The package |animate| is \emph{not} loaded by default and needs to be loaded to use the command |\liftarmanimate|. The \meta{options} are passed to the |animateinline| environment. The \meta{frame rate} of the animation is described in the documentation of the package |animate|. The \meta{command} must be a previously defined command with one mandatory argument. The \meta{list} is passed to a |\foreach| loop. The frames of the animation consist of the \meta{command} evaluated one by one in the result of the |\foreach| loop. The command |\liftarmanimate| creates a timeline which is used in the |animateinline| environment. This timeline is stored in the file |liftarm|\meta{number of the animation in the document}|.tln|. It requires two compiler runs to create and use this timeline correctly.
+This command shows an animation using the |animateinline| environment of the package |animate|. The package |animate| is \emph{not} loaded by default and needs to be loaded to use the command |\liftarmanimate|. The \meta{options} are passed to the |animateinline| environment. The \meta{frame rate} of the animation is described in the documentation of the package |animate|. The \meta{command} must be a previously defined command with one mandatory argument. The \meta{list} is passed to a |\foreach| loop. The frames of the animation consist of the \meta{command} evaluated one by one in the result of the |\foreach| loop. The command |\liftarmanimate| creates a timeline which is used in the |animateinline| environment. This timeline is stored in the file \meta{job name}\meta{number of the animation in the document}|.tln|. It requires two compiler runs to create and use this timeline correctly.
\begin{key}{/liftarm/trace=\marg{number/number of frames/code}\dots}
This key draws \meta{code} at hole \meta{number} of the liftarm on the frames of the animation determined by \meta{number of frames}.
If \meta{number of frames} is 0 then the \meta{code} is drawn starting at the current frame until the end of the animation. If \meta{number of frames} is an integer greater than or equal to 1 then the \meta{code} is drawn starting at the current frame and remaining during the next frames determined by \meta{number of frames}. If \meta{number of frames} is left empty then the \meta{code} is drawn starting at the beginning of the animation until the end of the animation.
-The \meta{code} can be some \tikzname{} code. In this \meta{code}, $(0,0)$ is positioned at hole \meta{number} of the liftarm. If \meta{code} is left empty then the following code is used.
-\begin{codeexample}[code only]
-\fill[Black] (0,0) circle[radius=0.66*\liftarm@holeradius];
-\end{codeexample}
+The \meta{code} can be some \tikzname{} code. In this \meta{code}, $(0,0)$ is positioned at hole \meta{number} of the liftarm. If \meta{code} is left empty then a black circle with radius $\frac{2}{3}$ times the |hole radius| is used.
+
A list of multiple triples \meta{number/number of frames/code} can be given to the key |trace|.
\begin{codeexample}[width=10cm,preamble={\usepackage{animate}}]
\newcommand{\exampleliftarmanimate}[1]{
- \liftarm[
- origin=1,
- mark holes=1,
- trace={
- 2/0/,
- 3//,
- 4/3/{\fill[Blue] (0,0)
- circle[radius=0.15];}
- }
- ]{0,0}{4}{#1}
+ \liftarm[
+ origin=1,
+ mark holes=1,
+ trace={
+ 2/0/,
+ 3//,
+ 4/3/{\fill[Blue] (0,0)
+ circle[radius=0.15];}
+ }
+ ]{0,0}{4}{#1}
}
\liftarmanimate[
- autoplay,
- controls,
- loop,
- begin={
- \begin{tikzpicture}
- \useasboundingbox (-4,-4)
- rectangle (4,4);
- },
- end={\end{tikzpicture}}
+ autoplay,
+ controls,
+ loop,
+ begin={
+ \begin{tikzpicture}
+ \useasboundingbox (-4,-4)
+ rectangle (4,4);
+ },
+ end={\end{tikzpicture}}
]
{5}
{0,30,...,330}
@@ -429,11 +466,14 @@ A list of multiple triples \meta{number/number of frames/code} can be given to t
\end{command}
\section{Additional examples}
The following example shows a regular hexagon.
-\begin{codeexample}[width=9cm]
+\begin{codeexample}[width=8cm]
\begin{tikzpicture}
\def\r{3}
-\foreach\n in {1,...,6}{
- \liftarmconnect{0,0}{\r}{\n*60:\r}{\r}
+\foreach\m in {1,...,6}{
+ \begin{liftarmconnect}
+ \liftarm[coordinate=\r/A]{0,0}{\r}{(\m+1)*60}
+ \liftarm[coordinate=\r/A]{\m*60:\r}{\r}{(\m+2)*60}
+ \end{liftarmconnect}
}
\end{tikzpicture}
\end{codeexample}
@@ -448,18 +488,6 @@ The following example illustrates that $2\atan(\frac{1}{2})=\atan(\frac{4}{3})$.
\liftarm{2,1}{1}{90+atan(4/3)}
\end{tikzpicture}
\end{codeexample}
-Below is an example of an angled liftarm.
-\begin{codeexample}[width=9cm]
-\begin{tikzpicture}
-\pgfkeys{
- /liftarm,
- scalefactor=1,
- Blue
-}
-\liftarm[axle holes=0]{0,0}{3}{0}
-\liftarm[axle holes=5]{3,0}{5}{atan(4/3)}
-\end{tikzpicture}
-\end{codeexample}
The following example illustrates an angle bisection.
\begin{codeexample}[width=9cm]
\begin{tikzpicture}
@@ -468,26 +496,45 @@ The following example illustrates an angle bisection.
\liftarm[mark holes={0,\r}]{0,0}{2*\r}{0}
\liftarm[mark holes=\r]{0,0}{2*\r}{\ang}
\liftarm[
- mark holes=\r,
- mark color=Red
+ mark holes=\r,
+ mark style=Red
]{\r,0}{\r}{\ang}
\liftarm{\ang:\r}{\r}{0}
\end{tikzpicture}
\end{codeexample}
+The following example illustrates that $7^{2}=3^{2}+8^{2}-2\cdot 3\cdot 8\cos(\frac{\pi}{3})$.
+\begin{codeexample}[width=9cm]
+\begin{tikzpicture}
+\begin{liftarmconnect}
+ \liftarm[coordinate=3/A]{0,0}{3}{80}
+ \liftarm[coordinate=3/A]{3,0}{3}{100}
+\end{liftarmconnect}
+\begin{liftarmconnect}
+ \liftarm[coordinate=8/B]{0,0}{8}{0}
+ \liftarm[coordinate=7/B]{A}{7}{0}
+\end{liftarmconnect}
+\end{tikzpicture}
+\end{codeexample}
The following example illustrates that $7^{2}+4^{2}=8^{2}+1^{2}$.
\begin{codeexample}[width=9cm]
-\begin{tikzpicture}[scale=0.75]
+\begin{tikzpicture}
\def\a{4}
\def\b{7}
\def\c{1}
\def\d{8}
%\liftarm{0,0}{\b}{0}
%\liftarm{\b,0}{\a}{90}
-\liftarmconnect{0,0}{\b}{\b,\a}{\a}
+\begin{liftarmconnect}
+ \liftarm[coordinate=\b/A]{0,0}{\b}{0}
+ \liftarm[coordinate=\a/A]{\b,\a}{\a}{-90}
+\end{liftarmconnect}
\liftarm{4,0}{3}{90}
%\liftarm{\b,\a}{1}{atan(\a/\b)+atan(\c/\d)+90}
%\liftarm{0,0}{\d}{atan(\a/\b)+atan(\c/\d)}
-\liftarmconnect{\b,\a}{\c}{0,0}{\d}
+\begin{liftarmconnect}
+ \liftarm[coordinate=\d/B]{0,0}{\d}{45}
+ \liftarm[coordinate=\c/B]{\b,\a}{\c}{135}
+\end{liftarmconnect}
\end{tikzpicture}
\end{codeexample}
Below is an animation of the Peaucellier-Lipkin linkage, see e.g.~\cite{Koagmopermbl}.
@@ -497,31 +544,35 @@ Below is an animation of the Peaucellier-Lipkin linkage, see e.g.~\cite{Koagmope
\def\a{3}
\def\b{4}
\def\c{9}
-\pgfmathsetmacro{\x}{
- 2*\a+((\c^2-\b^2-(2*\a)^2)/(2*\a))
+\edef\l{
+ \fpeval{2*\a+(\c^2-\b^2-(2*\a)^2)/(2*\a)}
}
\useasboundingbox (-0.23,-6) rectangle
- ({\x+0.23},6);
-\draw (\x,-5)--(\x,5);
+ (\l+0.23,6);
+\draw (\l,-5)--(\l,5);
\liftarm{0,0}{\a}{0}
\liftarm[coordinate=\a/A]{\a,0}{\a}{#1}
-\liftarmconnect[
- connect coordinate=B,
- connect reverse
-]{A}{\b}{0,0}{\c}
-\liftarmconnect[
- connect coordinate=C
-]{0,0}{\c}{A}{\b}
-\liftarmconnect{C}{\b}{B}{\b}
+\begin{liftarmconnect}
+ \liftarm[coordinate=\c/B]{0,0}{\c}{0}
+ \liftarm[coordinate=\b/B]{A}{\b}{90}
+\end{liftarmconnect}
+\begin{liftarmconnect}
+ \liftarm[coordinate=\c/C]{0,0}{\c}{0}
+ \liftarm[coordinate=\b/C]{A}{\b}{-90}
+\end{liftarmconnect}
+\begin{liftarmconnect}
+ \liftarm[coordinate=\b/D]{C}{\b}{0}
+ \liftarm[coordinate=\b/D]{B}{\b}{0}
+\end{liftarmconnect}
\end{tikzpicture}
}
\begin{animateinline}[
- autoplay,
- controls,
- palindrome
+ autoplay,
+ controls,
+ palindrome
]{30}
\multiframe{80}{rAng=-40+1}{
- \PLlinkage{\rAng}
+ \PLlinkage{\rAng}
}
\end{animateinline}
\end{codeexample}
@@ -534,13 +585,19 @@ Below is an animation of Kempe's trisector, as shown in \cite{Tmm3}.
\liftarm[coordinate=12/B]{0,0}{27}{180-(#1)}
\liftarm[coordinate=18/C]{0,0}{27}{180-2*(#1)}
\liftarm[coordinate=27/D]{0,0}{27}{180-3*(#1)}
-\liftarmconnect{C}{27}{D}{18}
-\liftarmconnect[liftarm 2={connect=8}]{A}{12}{B}{18}
+\begin{liftarmconnect}
+ \liftarm[coordinate=27/E]{C}{27}{0}
+ \liftarm[coordinate=18/E]{D}{18}{0}
+\end{liftarmconnect}
+\begin{liftarmconnect}
+ \liftarm[coordinate=12/F]{A}{12}{0}
+ \liftarm[coordinate=8/F]{B}{18}{0}
+\end{liftarmconnect}
\end{tikzpicture}
}
\begin{animateinline}[autoplay,controls,palindrome]{5}
\multiframe{20}{rAng=15+1}{
-\trisector{\rAng}
+ \trisector{\rAng}
}
\end{animateinline}
\end{codeexample}
@@ -549,40 +606,85 @@ Below is an animation of Chebyshev's Lambda Mechanism.
\newcommand{\CL}[1]{
\liftarm{0,0}{4*\r}{0}
\liftarm[
- mark holes={0,2*\r}
+ mark holes={0,2*\r}
]{0,0}{2*\r}{#1}
-\liftarmconnect[
- liftarm 1={mark holes={0,5*\r}},
- liftarm 2={
- connect=5*\r,
- mark holes=10*\r,
- mark color=Red,
- trace={6*\r/0/,10*\r//}
- }
-]{4*\r,0}{5*\r}{#1:2*\r}{10*\r}
+\begin{liftarmconnect}
+ \liftarm[
+ coordinate=5*\r/A,
+ mark holes={0,5*\r}
+ ]{4*\r,0}{5*\r}{90}
+ \liftarm[
+ coordinate=5*\r/A,
+ mark holes=10*\r,
+ mark style=Red,
+ trace={6*\r/0/,10*\r//}
+ ]{#1:2*\r}{10*\r}{90}
+\end{liftarmconnect}
}
\liftarmanimate[
- autoplay,
- controls,
- loop,
- begin={
- \begin{tikzpicture}[scale=0.8]
- \def\r{1}
- \useasboundingbox
- (-2*\r-0.5,-2*\r-0.5)
- rectangle
- (10*\r-0.5,10*\r+0.5);
- },
- end={\end{tikzpicture}}
+ autoplay,
+ controls,
+ loop,
+ begin={
+ \begin{tikzpicture}[scale=0.8]
+ \def\r{1}
+ \useasboundingbox
+ (-2*\r-0.5,-2*\r-0.5)
+ rectangle
+ (10*\r-0.5,10*\r+0.5);
+ },
+ end={\end{tikzpicture}}
]
{20}
{0,5,...,355}
{\CL}
\end{codeexample}
+Below is an animation of a multilink steering mechanism.
+\begin{codeexample}[preamble={\usepackage{animate}}]
+\newcommand{\multilink}[1]{
+\begin{tikzpicture}[scale=0.9]
+\useasboundingbox (-8.5,-0.5) rectangle (8.5,5.7);
+\liftarm[brick,screw holes={0,6}]{-3,0}{6}{0}
+\liftarm[brick,screw holes={0,6}]{-3,3}{6}{0}
+\liftarm[coordinate={0/X,6/Y},screw holes={0,6}]{{-3+(#1)*0.1},4}{6}{0}
+\begin{liftarmconnect}
+ \liftarm[coordinate=3/A]{-3,0}{3}{160}
+ \liftarm[coordinate=3/B]{-3,3}{3}{200}
+ \liftarm[coordinate={1/B,4/C},screw holes={0,1,4}]{A}{4}{90}
+ \liftarm[coordinate=3/C]{X}{3}{180}
+\end{liftarmconnect}
+\begin{liftarmconnect}
+ \liftarm[coordinate=3/D]{3,0}{3}{20}
+ \liftarm[coordinate=3/E]{3,3}{3}{-20}
+ \liftarm[coordinate={1/E,4/F},screw holes={0,1,4}]{D}{4}{90}
+ \liftarm[coordinate=3/F]{Y}{3}{0}
+\end{liftarmconnect}
+\end{tikzpicture}
+}
+\begin{animateinline}[autoplay,controls,palindrome]{10}
+\multiframe{41}{rAng=-20+1}{
+ \multilink{\rAng}
+}
+\end{animateinline}
+\end{codeexample}
\section{Version history}
\begin{itemize}
\item[] \textbf{Version 1.0 (2022/03/08)} First version.
-\item[] \textbf{Version 2.0 (2022/04/07)} Removed some redundant |;| in the code.\footnote{Thanks to Denis Bitouz\'e for pointing this out.} Added the command |\liftarmanimate| and the key |trace|.
+\item[] \textbf{Version 2.0 (2022/04/07)} Removed some redundant |;| in the code.\footnote{Thanks to Denis Bitouzé for pointing this out.} Added the command |\liftarmanimate| and the key |trace|.
+\item[] \textbf{Version 3.0 (2024/05/20)}
+\begin{itemize}
+\item The package now mainly uses \LaTeX3 syntax. The package |etoolbox| is not loaded anymore.
+\item Improved the code for the key |axle holes|. In particular, the combinations with the keys |contour| and |hole radius| are fixed.
+\item Improved the path for the shape of a liftarm if the key |brick| is used.
+\item Changed the key |color| to accept two arguments. The color can no longer be specified without a key.
+\item Removed the keys |color 0|, |color 1|, |color 2|, |color 3|, |color 4|, |color 5|, |color 6| and |color 7|.
+\item In v2.0, the colors could only be defined up to length $7$. In v3.0, this is not a restriction anymore.
+\item Changed some initial colors from |Black| to |black|.
+\item Added the keys |contour style| and |liftarm style|.
+\item Removed the keys |mark color|, |screw color| and |screw holes angle|. Added the keys |mark radius|, |mark style|, |screw angle|, |screw radius| and |screw style|.
+\item Improved the algorithm to connect liftarms in multiple ways. In v2.0, transformations such as |x={(0.8,0.5)},y={(-0.6,1.2)}| were not taken into account correctly. This is fixed in v3.0. In v2.0, only 2 liftarms could be connected automatically. In v3.0, this is not a restriction anymore. Therefore the command |\liftarmconnect| and the keys |connect|, |connect coordinate|, |connect reverse|, |liftarm 1| and |liftarm 2| are removed. Instead, the environment |liftarmconnect| and the key |connect stop| were added in v3.0.
+\item Changed the command |\liftarmconstruct| to allow more customization. Removed the environment |liftarmconstruction| and added the command |\liftarmconstructclear|.
+\end{itemize}
\end{itemize}
\begin{thebibliography}{9}
\bibitem{Tmm1}
@@ -607,9 +709,16 @@ Alfred Bray Kempe,
\bibitem{TtTaPGFp}
Till Tantau,
\emph{The \tikzname{} and {\upshape\pgfname} Packages},
-Manual for version 3.1.9a,
+Manual for version 3.1.10,
\url{https://ctan.org/pkg/pgf},
-2021.
+2023.
\end{thebibliography}
\printindex
+\newgeometry{left=2.25cm,right=2.25cm,top=2.25cm,bottom=2.25cm}
+\pagestyle{plain}
+\appendix
+\begin{landscape}
+\section{The source code}\label{Thesourcecode}
+\dochighinput[language=latex/latex3]{liftarm.sty}
+\end{landscape}
\end{document} \ No newline at end of file
diff --git a/graphics/pgf/contrib/profsio/doc/ProfSio-doc-annexe71.pdf b/graphics/pgf/contrib/profsio/doc/ProfSio-doc-annexe71.pdf
new file mode 100644
index 0000000000..a95ad30ad7
--- /dev/null
+++ b/graphics/pgf/contrib/profsio/doc/ProfSio-doc-annexe71.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/profsio/doc/ProfSio-doc-annexe71.tex b/graphics/pgf/contrib/profsio/doc/ProfSio-doc-annexe71.tex
new file mode 100644
index 0000000000..f29587bab9
--- /dev/null
+++ b/graphics/pgf/contrib/profsio/doc/ProfSio-doc-annexe71.tex
@@ -0,0 +1,18 @@
+% !TeX TXS-program:compile = txs:///arara
+% arara: lualatex: {shell: no, synctex: no, interaction: batchmode}
+
+\documentclass[a4paper,french,12pt]{article}
+\usepackage[margin=1.5cm]{geometry}
+\usepackage{fontspec}
+\usepackage{ProfSio}
+\setsansfont{Fira Sans}[Scale=MatchLowercase]
+\newfontfamily\poltuto{QTSanDiego}
+\usepackage{babel}
+
+\begin{document}
+
+\pagestyle{empty}
+
+\GrilleCCFSIO[Session=2025,Type={7-1},PoliceManuscrite={\poltuto}]{LOVELACE Ada}{21 mai 2024}{Quelques propriétés de la suite de Syracuse}
+
+\end{document}
diff --git a/graphics/pgf/contrib/profsio/doc/ProfSio-doc-annexe72.pdf b/graphics/pgf/contrib/profsio/doc/ProfSio-doc-annexe72.pdf
new file mode 100644
index 0000000000..7e7ca969ea
--- /dev/null
+++ b/graphics/pgf/contrib/profsio/doc/ProfSio-doc-annexe72.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/profsio/doc/ProfSio-doc-annexe72.tex b/graphics/pgf/contrib/profsio/doc/ProfSio-doc-annexe72.tex
new file mode 100644
index 0000000000..00af2e5e36
--- /dev/null
+++ b/graphics/pgf/contrib/profsio/doc/ProfSio-doc-annexe72.tex
@@ -0,0 +1,19 @@
+% !TeX TXS-program:compile = txs:///arara
+% arara: lualatex: {shell: no, synctex: no, interaction: batchmode}
+
+\documentclass[a4paper,french,12pt]{article}
+\usepackage[margin=1.5cm]{geometry}
+\usepackage{fontspec}
+\usepackage{ProfSio}
+\setsansfont{Fira Sans}[Scale=MatchLowercase]
+\newfontfamily\poltuto{QTSanDiego}
+\usepackage{babel}
+
+\begin{document}
+
+\pagestyle{empty}
+
+\def\grccfcompetsyr{variables et types/listes et tableaux/tests et boucles/fonctions}
+\GrilleCCFSIO[Session=2025,Type={7-2},PoliceManuscrite={\poltuto}]{LOVELACE Ada}{21 mai 2024}{Quelques propriétés de la suite de Syracuse}<\grccfcompetsyr>
+
+\end{document}
diff --git a/graphics/pgf/contrib/profsio/doc/ProfSio-doc-annexe73.pdf b/graphics/pgf/contrib/profsio/doc/ProfSio-doc-annexe73.pdf
new file mode 100644
index 0000000000..b9c6d73803
--- /dev/null
+++ b/graphics/pgf/contrib/profsio/doc/ProfSio-doc-annexe73.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/profsio/doc/ProfSio-doc-annexe73.tex b/graphics/pgf/contrib/profsio/doc/ProfSio-doc-annexe73.tex
new file mode 100644
index 0000000000..24747750c8
--- /dev/null
+++ b/graphics/pgf/contrib/profsio/doc/ProfSio-doc-annexe73.tex
@@ -0,0 +1,19 @@
+% !TeX TXS-program:compile = txs:///arara
+% arara: lualatex: {shell: no, synctex: no, interaction: batchmode}
+
+\documentclass[a4paper,french,12pt]{article}
+\usepackage[margin=1.5cm]{geometry}
+\usepackage{fontspec}
+\usepackage{ProfSio}
+\setsansfont{Fira Sans}[Scale=MatchLowercase]
+\newfontfamily\poltuto{QTSanDiego}
+\usepackage{babel}
+
+\begin{document}
+
+\pagestyle{empty}
+
+\def\grccfcompetsyr{variables et types/listes et tableaux/tests et boucles/fonctions}
+\GrilleCCFSIO[Session=2024,Type={7-3},PoliceManuscrite={\poltuto}]{LOVELACE Ada}{14 mai 2024}{Calculs booléens + Graphes + Chiffrements}
+
+\end{document}
diff --git a/graphics/pgf/contrib/profsio/doc/ProfSio-doc-fr.pdf b/graphics/pgf/contrib/profsio/doc/ProfSio-doc-fr.pdf
index 7481152d91..265dc41596 100644
--- a/graphics/pgf/contrib/profsio/doc/ProfSio-doc-fr.pdf
+++ b/graphics/pgf/contrib/profsio/doc/ProfSio-doc-fr.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/profsio/doc/ProfSio-doc-fr.tex b/graphics/pgf/contrib/profsio/doc/ProfSio-doc-fr.tex
index a8212b8c56..59ae3cd132 100644
--- a/graphics/pgf/contrib/profsio/doc/ProfSio-doc-fr.tex
+++ b/graphics/pgf/contrib/profsio/doc/ProfSio-doc-fr.tex
@@ -5,8 +5,8 @@
\documentclass[french,a4paper,11pt]{article}
\usepackage[margin=2cm,includefoot]{geometry}
-\def\TPversion{0.2.6}
-\def\TPdate{20 avril 2024}
+\def\TPversion{0.2.8}
+\def\TPdate{18 mai 2024}
%\usepackage[utf8]{inputenc}
%\usepackage[T1]{fontenc}
\usepackage{amsmath,amssymb}
@@ -21,6 +21,7 @@
\UseTblrLibrary{booktabs}
\usepackage{fancyvrb}
\usepackage{fancyhdr}
+\usepackage{pdfpages}
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\lfoot{\sffamily\small [ProfSio]}
@@ -81,10 +82,10 @@
keywordstyle={\color{violet}},%
classoffset=2,%
alsoletter={-},%
- morekeywords={\MPMPlaceTache,\MPMPlaceNotice,\MPMPlaceDuree,GrapheMPM,TableKarnaugh,\KarnaughCasesResult,\KarnaughBlocRegroup,\KarnaughBlocRegroupAuto,\MPMPlaceTaches,\MPMPlaceDurees,GrapheTikz,\GrphPlaceSommets,\GrphTraceAretes,\tikzset,\DiagrammeSagittal,\draw,\DiagrammeSagittalCompo,\TableVerite,\SimplificationKarnaugh,\SimplificationBooleenne,\KarnaughCasesAuto,\MatriceAdjacence,\PuissanceMatrice,\NbCheminsLongueur,\FermetureTransitive,\ResolSystemeMatrices,\PresentProdMat,\OpeBinDecHex,\ExprBool},%
+ morekeywords={\MPMPlaceTache,\MPMPlaceNotice,\MPMPlaceDuree,GrapheMPM,TableKarnaugh,\KarnaughCasesResult,\KarnaughBlocRegroup,\KarnaughBlocRegroupAuto,\MPMPlaceTaches,\MPMPlaceDurees,GrapheTikz,\GrphPlaceSommets,\GrphTraceAretes,\tikzset,\DiagrammeSagittal,\draw,\DiagrammeSagittalCompo,\TableVerite,\SimplificationKarnaugh,\SimplificationBooleenne,\KarnaughCasesAuto,\MatriceAdjacence,\PuissanceMatrice,\NbCheminsLongueur,\FermetureTransitive,\ResolSystemeMatrices,\PresentProdMat,\OpeBinDecHex,\ExprBool,\GrilleCCFSIO},%
keywordstyle={\color{green!50!black}},%
classoffset=3,%
- morekeywords={CouleurDurees,CouleurFleches,LargeurCases,Epaisseur,Police,CouleurDates,CouleurBords,NoirBlanc,Grille,DecalHorizDeb,DecalVertDeb,DecalHorizFin,DecalVertFin,Coude,SensCoude,Unite,Variables,Swap,Aide,CouleurCases,Decalage,Couleur,Type,Legende,PosVarLaterale,CouleurLegende,CouleurSommets,TypeSommets,Unite,CouleurFT,DimensionSommets,PositionFleches,EchelleFleches,TypeFleche,Droit,Milieu,AngleGauche,AngleDroite,Boucle,GrphStyleArc,GrphStyleSommet,Poids,GrphStylepoids,DistElem,DistEns,LargEns,NomAppli,CouleurE,CouleurAppli,CouleurF,CouleursFleches,TypeFleche,Epaisseur,Labels,Ensembles,PosLabels,PoliceLabels,Offset,NomApplis,CouleursAppli,VF,LargeursColonnes,CouleurEnonce,CodeAvant,CodeApres,StyleAlternatif,PoliceTT,Espace,Couleurs,Contraire,Enonce,Bordure,Sommets,Num,PoliceBordure,De,Vers,Formule,Brut,NomMatrice,Longueur,Complet,NomsMatrices,NomInverse,NomSysteme,Inconnues,OptionNiceMatrix,Base,AffRetenues,AffEgal,SymbDecal,LimiteCapac,CouleurRetenue,Interm,Enonce,Decalages,Couleurs,Dense,Dernier,MathE,MathF,MathG,CouleurPlus,Vide,HauteurVide},%
+ morekeywords={CouleurDurees,CouleurFleches,LargeurCases,Epaisseur,Police,CouleurDates,CouleurBords,NoirBlanc,Grille,DecalHorizDeb,DecalVertDeb,DecalHorizFin,DecalVertFin,Coude,SensCoude,Unite,Variables,Swap,Aide,CouleurCases,Decalage,Couleur,Type,Legende,PosVarLaterale,CouleurLegende,CouleurSommets,TypeSommets,Unite,CouleurFT,DimensionSommets,PositionFleches,EchelleFleches,TypeFleche,Droit,Milieu,AngleGauche,AngleDroite,Boucle,GrphStyleArc,GrphStyleSommet,Poids,GrphStylepoids,DistElem,DistEns,LargEns,NomAppli,CouleurE,CouleurAppli,CouleurF,CouleursFleches,TypeFleche,Epaisseur,Labels,Ensembles,PosLabels,PoliceLabels,Offset,NomApplis,CouleursAppli,VF,LargeursColonnes,CouleurEnonce,CodeAvant,CodeApres,StyleAlternatif,PoliceTT,Espace,Couleurs,Contraire,Enonce,Bordure,Sommets,Num,PoliceBordure,De,Vers,Formule,Brut,NomMatrice,Longueur,Complet,NomsMatrices,NomInverse,NomSysteme,Inconnues,OptionNiceMatrix,Base,AffRetenues,AffEgal,SymbDecal,LimiteCapac,CouleurRetenue,Interm,Enonce,Decalages,Couleurs,Dense,Dernier,MathE,MathF,MathG,CouleurPlus,Vide,HauteurVide,Session,PoliceManuscrite},%
keywordstyle={\color{orange}}
},%
#1
@@ -255,7 +256,11 @@
\section{Historique}
-\verb|v0.2.6|~:~~~~Correction dans des simplifications de Karnaugh
+\verb|v0.2.8|~:~~~~Grilles d'évaluation des CCF
+
+\verb|v0.2.7|~:~~~~Correction d'un bug dans les simplifications de Karnaugh
+
+\verb|v0.2.6|~:~~~~Corrections dans des simplifications de Karnaugh
\verb|v0.2.5|~:~~~~Clé \textsf{[Vide]} pour les tables vérité, pour ne pas remplir
@@ -1163,9 +1168,9 @@ Par exemple :
\vspace*{-\baselineskip}\leavevmode
\end{cautionblock}
-%\begin{importantblock}
-%En interne, la commande utilise la simplification par table de Karnaugh, et la commande peut également se charger de formater le résultat brut de l'expression.
-%\end{importantblock}
+\begin{noteblock}
+La plupart des clés de la commande de simplification par Karnaugh sont utilisables avec cette commande, notamment celles de formatage des couleurs.
+\end{noteblock}
\subsection{Arguments et clés }
@@ -1184,6 +1189,7 @@ Les clés disponibles sont :
\item \Cle{Enonce} := booléen pour afficher l'expression booléenne brute ; \hfill~défaut : \Cle{true}
\item \Cle{Variables} := variables utilisées ; \hfill~défaut : \Cle{a/b/c}
\item \Cle{Contraire} := booléen pour travailler sur le contraire ; \hfill~défaut : \Cle{false}
+ \item \Cle{Couleurs} et \Cle{CouleurPlus} := couleurs(s) de la sortie ; \hfill~défaut : \Cle{black}
\item \Cle{Espace} := booléen pour rajouter un petit espace (1.5~mu) dans les produits.
\hfill~défaut : \Cle{true}
@@ -1216,7 +1222,9 @@ $\overline{E} = \SimplificationBooleenne[Contraire,Variables=g/b/n]{(g)+(gb)+(gb
\end{DemoCode}
\begin{DemoCode}
-On a $F = \SimplificationBooleenne{(a)+(abc*)+(a*b*c)+(abc)+(a*bc)}$.
+On a $F = \SimplificationBooleenne%
+ [Couleurs={blue/red/violet},CouleurPlus=orange]%
+ {(a)+(abc*)+(a*b*c)+(abc)+(a*bc)}$.
\end{DemoCode}
\pagebreak
@@ -2263,4 +2271,80 @@ On a, par produit matriciel le calcul
<cell-space-limits=3pt>
\end{DemoCode}
+\pagebreak
+
+\section{Fiches annexes pour les CCF de mathématiques}
+
+\subsection{Introduction}
+
+L'idée est de proposer des commandes pour générer \textit{facilement} les fiches d'évaluation pour les deux situations de CCF de mathématiques en SIO.
+
+\smallskip
+
+Il s'agit des annexes 7-1 (recto), 7-2 (recto verso) et 7-3 (recto verso).
+
+\smallskip
+
+Un exemple de rendu est donné en marge de la présente documentation (avec code source).
+
+\smallskip
+
+Le code source de base des exemples est donné ci-dessous.
+
+\begin{DemoCode}[listing only]
+\documentclass[a4paper,french,12pt]{article}
+\usepackage[margin=1.5cm]{geometry}
+\usepackage{fontspec}
+\usepackage{ProfSio}
+\setsansfont{Fira Sans}[Scale=MatchLowercase]
+\newfontfamily\poltuto{QTSanDiego}
+\usepackage{babel}
+\end{DemoCode}
+
+\subsection{Annexe 7-1}
+
+\begin{DemoCode}[listing only]
+\GrilleCCFSIO[Type={7-1},Session=...,PoliceManuscrite=...]
+ {NOM Prénom}
+ {date}
+ {intitulé court}
+\end{DemoCode}
+
+\subsection{Annexe 7-2}
+
+\begin{DemoCode}[listing only]
+\GrilleCCFSIO[Type={7-2},Session=...,PoliceManuscrite=...]
+ {NOM Prénom}
+ {date}
+ {intitulé court}
+ <compétenceA / compétenceB / compétence C / compétence D>
+\end{DemoCode}
+
+\subsection{Annexe 7-3}
+
+\begin{DemoCode}[listing only]
+\GrilleCCFSIO[Type={7-3},Session=...,PoliceManuscrite=...]
+ {NOM Prénom}
+ {date}
+ {identification du sujet proposé}
+\end{DemoCode}
+
+\newpage
+
+\thispagestyle{empty}
+
+\includepdf[frame,pages=-,width=\textwidth]{ProfSio-doc-annexe71.pdf}
+
+\newpage
+
+\thispagestyle{empty}
+
+\includepdf[frame,pages=-,width=\textwidth]{ProfSio-doc-annexe72.pdf}
+
+\newpage
+
+\thispagestyle{empty}
+
+\includepdf[frame,pages=-,width=\textwidth]{ProfSio-doc-annexe73.pdf}
+
\end{document} \ No newline at end of file
diff --git a/graphics/pgf/contrib/profsio/tex/ProfSio.sty b/graphics/pgf/contrib/profsio/tex/ProfSio.sty
index 2d3b5d6a17..3b70f9a1e3 100644
--- a/graphics/pgf/contrib/profsio/tex/ProfSio.sty
+++ b/graphics/pgf/contrib/profsio/tex/ProfSio.sty
@@ -3,8 +3,10 @@
% : Luatruthtable from Chetan Shirore and Dr. Ajit Kumar https://ctan.org/pkg/luatruthtable
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{ProfSio}[2024/04/20 0.2.6 Pour les enseignants de Maths en BTS SIO]
-%0.2.6 Correction dans les simplifications de Karnaugh
+\ProvidesPackage{ProfSio}[2024/05/18 0.2.8 Pour les enseignants de Maths en BTS SIO]
+%0.2.8 Ajout des grilles de CCF (E2)
+%0.2.7 Correction d'un bug dans les simplifications de Karnaugh
+%0.2.6 Corrections dans les simplifications de Karnaugh
%0.2.5 Ajout de clés pour les tables de vérité, [Vide], pour ne pas le remplir
%0.2.4 Ajout d'une commande pour afficher (sans simplifier) une expression booléenne + tables en base donnée + Possibilité math dans diag sagitt
%0.2.3 Ajout d'une clé [Dense] pour condenser la résolution matricielle de système + commande \KarnaughBlocRegroupAuto pour créer les blocs automatiquement
@@ -1920,14 +1922,18 @@ end
\ExplSyntaxOff
\defKV[simplifbool]{%
- Variables=\def\simplifboolvars{#1}
+ Variables=\def\simplifboolvars{#1},
+ Couleurs=\def\simplifboolcoul{#1},%
+ CouleurPlus=\def\simplifboolcoulplus{#1},%
}
\setKVdefault[simplifbool]{%
Variables={a/b/c},%
Enonce=true,%
Espace=true,%
- Contraire=false
+ Contraire=false,%
+ Couleurs={black/black/black},%
+ CouleurPlus=black,%
}
\NewDocumentCommand\ExprBool{ O{} m D<>{} }{%semble ok
@@ -2075,11 +2081,11 @@ end
\StrSubstitute{\knghbinres}{2}{1}[\knghbinres]%
}%
{}%
- \ensuremath{%
+ \ensuremath{%\knghbinres=%
\ifboolKV[simplifbool]{Enonce}{\ifboolKV[simplifbool]{Contraire}{\overline{\knghenoncetransf}}{\knghenoncetransf}=}{}%
\ifboolKV[simplifbool]{Espace}%
- {\SimplificationKarnaugh[Variables={\simplifboolvars},Espace=true,#3]{\knghbinres}}%
- {\SimplificationKarnaugh[Variables={\simplifboolvars},Espace=false,#3]{\knghbinres}}%
+ {\SimplificationKarnaugh[Variables={\simplifboolvars},Espace=true,Swap,#3,Couleurs={\simplifboolcoul},CouleurPlus={\simplifboolcoulplus}]{\knghbinres}}%
+ {\SimplificationKarnaugh[Variables={\simplifboolvars},Espace=false,Swap,#3,Couleurs={\simplifboolcoul},CouleurPlus={\simplifboolcoulplus}]{\knghbinres}}%
}
}
@@ -2832,4 +2838,305 @@ end
\StrSubstitute{#2}{/}{#1}\relax%
}
+%===GRILLES CCF
+\newcommand\tkzsquarebox{{\tikz\draw (0,0) rectangle++(0.9em,0.9em);}}
+
+\defKV[GrillesCCFSIO]{%
+ Session=\def\grccfsioannee{#1},%
+ PoliceManuscrite=\def\grpoliceccf{#1},%
+ Type=\def\grtypeccf{#1}
+}
+
+\setKVdefault[GrillesCCFSIO]{%
+ Session={\year},%
+ PoliceManuscrite={},%
+ Type={7-1}
+}
+
+\NewDocumentCommand\GrilleCCFSIO{ O{} m m m D<>{default} }{%
+ %1=clés
+ %2=candidat
+ %3=date
+ %4=résumé
+ %5=compétences
+ \restoreKV[GrillesCCFSIO]%
+ \setKV[GrillesCCFSIO]{#1}%
+ \IfStrEq{\grtypeccf}{7-1}%
+ {%
+ \noindent\begin{tblr}{vlines,width=\linewidth,colspec={X[m]},row{1}={l},row{2-3}={c},cells={font=\sffamily\bfseries}}
+ \hline
+ BTS SERVICES INFORMATIQUES AUX ORGANISATIONS\hfill{}SESSION {\grccfsioannee}\hspace*{1cm} \\
+ ANNEXE 7-1 : Document de préparation au déroulement de la situation 1 \\
+ Épreuve E2 – Mathématiques pour l’informatique (CCF) \\
+ \hline
+ \end{tblr}
+
+ \vspace*{5mm}
+
+ \noindent\begin{tblr}{
+ vline{1,Z}={solid},%
+ vline{2}={3-4}{solid},%
+ width=\linewidth,
+ colspec={X[m]Q[7cm,m]},
+ hlines,stretch=1.25,
+ cells={font=\bfseries\sffamily},
+ rows={1cm},%
+ row{2}={t},%
+ row{4}={t}
+ }
+ \SetCell[c=2]{c}{SITUATION PROBLÈME} & \\
+ NOM et prénom : \textmd{\grpoliceccf #2} & \SetCell{l}{\phantom{BLABLA}OPTION SLAM\phantom{ISR}\raisebox{-0.1em}{\tkzsquarebox} \\ \phantom{BLABLA}OPTION SISR\phantom{LAM}\raisebox{-0.1em}{\tkzsquarebox}} \\
+ N° candidat : & N° commission \\
+ {Intitulé court de la situation proposée : \\~\\ \textmd{\grpoliceccf #4} \\} & {\\ Date : \textmd{\grpoliceccf #3}} \\
+ {Consignes\\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\} & \\
+ {Documents ou composants fournis\\ \\ \textmd{\grpoliceccf Notice + Aide-mémoire + Clé USB}\\ \\ \\} & \\
+ \end{tblr}
+
+ \vspace*{5mm}
+
+ \noindent\textsf{\textit{Au cours de l’épreuve, la personne candidate est autorisée à utiliser les ressources électroniques disponibles dans le centre d’examen à l’exception de tout service d’échanges synchrones ou asynchrones avec un tiers. Elle est informée que l’ensemble des connexions réalisées peuvent faire l’objet d’un contrôle par la commission d’interrogation.}}
+
+ \pagebreak
+ }%
+ {}%
+ \IfStrEq{\grtypeccf}{7-2}%
+ {%
+ \IfStrEq{#5}{default}%
+ {%
+ \def\compteccfA{}%
+ \def\compteccfB{}%
+ \def\compteccfC{}%
+ \def\compteccfD{}%
+ }%
+ {%
+ \setsepchar[.]{/}%
+ \readlist*\lstcompetccf{#5}%
+ \itemtomacro\lstcompetccf[1]\compteccfA%
+ \itemtomacro\lstcompetccf[2]\compteccfB%
+ \itemtomacro\lstcompetccf[3]\compteccfC%
+ \itemtomacro\lstcompetccf[4]\compteccfD%
+
+ }%
+ \noindent\begin{tblr}{vlines,width=\linewidth,colspec={X[m]},row{1}={l},row{2-3}={c},cells={font=\sffamily\bfseries}}
+ \hline
+ BTS SERVICES INFORMATIQUES AUX ORGANISATIONS\hfill{}SESSION {\grccfsioannee}\hspace*{1cm} \\
+ ANNEXE 7-2 : Grille d’aide à l’évaluation de la situation 1 (recto) \\
+ Épreuve E2 – Mathématiques pour l’informatique (CCF) \\
+ \hline
+ \end{tblr}
+
+ \vspace*{5mm}
+
+ \noindent\begin{tblr}{vlines,width=\linewidth,colspec={X[m]Q[3.5cm,m]},cells={font=\sffamily\bfseries},stretch=1.25}
+ \hline
+ NOM et prénom : \textmd{\grpoliceccf #2} & N° commission\textsuperscript{\scriptsize 1} : \\
+ N° candidat : & \\
+ \hline
+ \end{tblr}
+
+ \vspace*{0.75cm}
+
+ \noindent\begin{tblr}{
+ hlines,vlines,
+ width=\linewidth,colspec={X[0.625,m]X[0.375,m]},
+ cells={font=\sffamily},%
+ row{2}={1.25cm},%
+ row{X}={0.75cm}
+ }
+ \SetCell[c=2]{l}{\bfseries Intitulé court de la situation problème proposée :} & \\
+ \SetCell[c=2]{l}{\grpoliceccf #4} & \\
+ \textbf{Évaluation\textsuperscript{\footnotesize 2}} & \textbf{Critères d'évaluation} \\
+ \textbf{Maîtrise des connaissances (sur 8)} & \\
+ \textmd{-- \grpoliceccf \compteccfA} & \\
+ \textmd{-- \grpoliceccf \compteccfB} & \\
+ \textmd{-- \grpoliceccf \compteccfC} & \\
+ \textmd{-- \grpoliceccf \compteccfD} & \\
+ \textbf{Production commentée (sur 6)} & \\
+ \textmd{Efficacité et pertinence de la solution proposée} & \\
+ \textmd{Pertinence de la solution proposée} & \\
+ \textmd{Correction et cohérence de l’utilisation du formalisme retenu} & \\
+ \textmd{Cohérence de l’utilisation du formalisme retenu} & \\
+ \textmd{Lisibilité de la solution proposée} & \\
+ \textbf{Mise en \oe{}uvre commentée (sur 6)} & \\
+ \textmd{Qualité de la mise en \oe{}uvre} & \\
+ \textmd{Efficacité de l’implémentation} & \\
+ \textmd{Pertinence de l’utilisation des composants logiciels fournis} & \\
+ \textmd{Adéquation des tests de validation effectués} & \\
+ \textmd{Capacité à proposer des corrections pertinentes} & \\
+ \textbf{Note globale} & \SetCell{r}{\textbf{Note ~~~~/\,20}} \\
+ \SetCell[c=2]{l}{\textbf{Date :} {\grpoliceccf #3} \\ ~ \\ \textbf{Nom et signature de la commission d’évaluation :} \\ ~} & \\
+ \SetCell[c=2]{l}{\textbf{\textit{Joindre le document descriptif de la situation problème proposée.}}} & \\
+ \end{tblr}
+
+ \vspace*{5mm}
+
+ \noindent\textsf{\textbf{\textit{Cette partie est à l’usage exclusif de la commission d’interrogation et ne peut être communiquée à la personne candidate.}}}
+
+ \vfill
+
+ \par\noindent\rule{0.33\linewidth}{0.4pt}
+
+ \noindent\textsf{\textsuperscript{\footnotesize 1}{\footnotesize Indiquer le nom du professeur responsable de l’évaluation.}}
+
+ \noindent\textsf{\textsuperscript{\footnotesize 2}{\footnotesize Des appels (2 au maximum) permettent de s’assurer de la compréhension du problème et d’évaluer la communication orale et les capacités liées à l’usage des outils numériques.}}
+
+ \vspace*{5mm}
+
+ \pagebreak
+
+ \noindent\begin{tblr}{vlines,width=\linewidth,colspec={X[m]},row{1}={l},row{2-3}={c},cells={font=\sffamily\bfseries}}
+ \hline
+ BTS SERVICES INFORMATIQUES AUX ORGANISATIONS\hfill{}SESSION {\grccfsioannee}\hspace*{1cm} \\
+ ANNEXE 7-2 : Grille d’aide à l’évaluation de la situation 1 (verso) \\
+ Épreuve E2 – Mathématiques pour l’informatique (CCF) \\
+ \hline
+ \end{tblr}
+
+ \vspace*{5mm}
+
+ \noindent\begin{tblr}{vlines,width=\linewidth,colspec={X[m]Q[6cm,m]},cells={font=\sffamily\bfseries},stretch=1.25}
+ \hline
+ NOM et prénom : \textmd{\grpoliceccf #2} & Date de l'interrogation : \\
+ N° candidat : & \textmd{\grpoliceccf #3} \\ \hline
+ \end{tblr}
+
+ \vspace*{0.75cm}
+
+ \noindent\begin{tblr}{%
+ width=\linewidth,colspec={XQ[7cm]},cells={font=\bfseries\sffamily},
+ row{1}={m,j,1cm},
+ row{2}={m,7cm},
+ row{3}={m,j,1cm},
+ row{4}={m,4cm},
+ vline{1,Z}={solid},
+ vline{2}={Z}{solid},
+ stretch=1.25}
+ \hline
+ Appréciation globale & \\ \hline
+ ~
+ \\ \hline
+ Questionnement complémentaire éventuel & \\ \hline
+ ~
+ \\ \hline
+ {\underline{Note sur 20 :}\\ \\ \\} & {Visa de la commission \\ \\ \\} \\
+ \hline
+ \end{tblr}
+
+ \vspace*{5mm}
+
+ \noindent\textsf{\textbf{Ce document d’évaluation peut être communiqué à la personne candidate, à sa demande, après délibération du jury.}}
+
+ \pagebreak
+ }%
+ {}%
+ \IfStrEq{\grtypeccf}{7-3}%
+ {%
+ \noindent\begin{tblr}{vlines,width=\linewidth,colspec={X[m]},row{1}={l},row{2-3}={c},cells={font=\sffamily\bfseries}}
+ \hline
+ BTS SERVICES INFORMATIQUES AUX ORGANISATIONS\hfill{}SESSION {\grccfsioannee}\hspace*{1cm} \\
+ ANNEXE 7-3 : Grille d’aide à l’évaluation de la situation 2 (recto) \\
+ Épreuve E2 – Mathématiques pour l’informatique (CCF) \\
+ \hline
+ \end{tblr}
+
+ \vspace*{5mm}
+
+ \noindent\begin{tblr}{vlines,width=\linewidth,colspec={X[m]Q[3.5cm,m]},cells={font=\sffamily\bfseries},stretch=1.25}
+ \hline
+ NOM et prénom : \textmd{\grpoliceccf #2} & N° commission\textsuperscript{\scriptsize 3} : \\
+ N° candidat : & \\
+ \hline
+ \end{tblr}
+
+ \vspace*{0.75cm}
+
+ \noindent\begin{tblr}{%
+ hline{1}={solid},%
+ hline{3-Y}={solid},
+ hline{Z}={2-Z}{solid},
+ vline{1}={1-Y}{solid},
+ vline{2}={3-Z}{solid},
+ vline{Z}={solid},
+ width=\linewidth,colspec={X[0.525]X[0.475]},
+ cells={font=\sffamily},
+ row{1}={m,j},
+ row{2}={m,j,1.5cm},
+ row{3-Z}={m,j,1cm},stretch=1.25}
+ \textbf{Identification du sujet proposé :} & \\
+ \textmd{\grpoliceccf #4} & \\
+ \SetCell{c}{\textbf{Compétences}} & \SetCell{c}{\textbf{Appréciation du niveau d’acquisition\textsuperscript{\scriptsize 4}}} \\
+ Maîtrise des connaissances figurant au programme & \\
+ Pertinence des sources d’information mobilisées & \\
+ Adaptation de la stratégie choisie au problème à résoudre & \\
+ Efficacité dans la mise en \oe{}uvre de cette stratégie & \\
+ Rigueur et pertinence dans l’utilisation des savoir-faire figurant au programme de mathématiques & \\
+ Cohérence de l’argumentation employée & \\
+ Aptitude à analyser un résultat avec pertinence & \\
+ Qualité d’expression écrite ou orale & \\
+ & \SetCell{r}{\textbf{/\,20}} \\
+ \end{tblr}
+
+ \vspace*{5mm}
+
+ \noindent\textsf{\textbf{\textit{Cette partie est à l’usage exclusif de la commission d’interrogation et ne peut être communiquée à la personne candidate.}}}
+
+ \vfill
+
+ \par\noindent\rule{0.33\linewidth}{0.4pt}
+
+ \noindent\textsf{\textsuperscript{\footnotesize 3}{\footnotesize Indiquer le nom du professeur responsable de l’évaluation.}}
+
+ \noindent\textsf{\textsuperscript{\footnotesize 4}{\footnotesize Le professeur peut utiliser toute forme d’annotation lui permettant d’évaluer par compétences.}}
+
+ \vspace*{5mm}
+
+ \pagebreak
+
+ \noindent\begin{tblr}{vlines,width=\linewidth,colspec={X[m]},row{1}={l},row{2-3}={c},cells={font=\sffamily\bfseries}}
+ \hline
+ BTS SERVICES INFORMATIQUES AUX ORGANISATIONS\hfill{}SESSION {\grccfsioannee}\hspace*{1cm} \\
+ ANNEXE 7-3 : Grille d’aide à l’évaluation de la situation 2 (verso) \\
+ Épreuve E2 – Mathématiques pour l’informatique (CCF) \\
+ \hline
+ \end{tblr}
+
+ \vspace*{5mm}
+
+ \noindent\begin{tblr}{vlines,width=\linewidth,colspec={X[m]Q[6cm,m]},cells={font=\sffamily\bfseries},stretch=1.25}
+ \hline
+ NOM et prénom : \textmd{\grpoliceccf #2} & Date de l'interrogation : \\
+ N° candidat : & \textmd{\grpoliceccf #3} \\ \hline
+ \end{tblr}
+
+ \vspace*{0.75cm}
+
+ \noindent\begin{tblr}{%
+ width=\linewidth,colspec={XQ[7cm]},cells={font=\bfseries\sffamily},
+ row{1}={m,j,1cm},
+ row{2}={m,7cm},
+ row{3}={m,j,1cm},
+ row{4}={m,4cm},
+ vline{1,Z}={solid},
+ vline{2}={Z}{solid},
+ stretch=1.25}
+ \hline
+ Appréciation globale & \\ \hline
+ ~
+ \\ \hline
+ Questionnement complémentaire éventuel & \\ \hline
+ ~
+ \\ \hline
+ {\underline{Note sur 20 :}\\ \\ \\} & {Visa de la commission \\ \\ \\} \\
+ \hline
+ \end{tblr}
+
+ \vspace*{5mm}
+
+ \noindent\textsf{\textbf{Ce document d’évaluation peut être communiqué à la personne candidate, à sa demande, après délibération du jury.}}
+
+ \pagebreak
+ }%
+ {}%
+}
+
\endinput \ No newline at end of file
diff --git a/graphics/pgf/contrib/spath3/README b/graphics/pgf/contrib/spath3/README.txt
index dad3e28a92..b1104b7f4d 100644
--- a/graphics/pgf/contrib/spath3/README
+++ b/graphics/pgf/contrib/spath3/README.txt
@@ -1,6 +1,6 @@
----------------------------------------------------------------
spath3 --- LaTeX3 functions for manipulating PGF soft paths
-E-mail: loopspace@mathforge.org
+E-mail: Andrew Stacey <loopspace@mathforge.org>
Released under the LaTeX Project Public License v1.3c or later
See http://www.latex-project.org/lppl.txt
----------------------------------------------------------------
diff --git a/graphics/pgf/contrib/spath3/spath3.pdf b/graphics/pgf/contrib/spath3/spath3.pdf
index 9282e0adfe..6ade2656ac 100644
--- a/graphics/pgf/contrib/spath3/spath3.pdf
+++ b/graphics/pgf/contrib/spath3/spath3.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/spath3/spath3.tex b/graphics/pgf/contrib/spath3/spath3.tex
index c8e9d65af7..897f5f7b3d 100644
--- a/graphics/pgf/contrib/spath3/spath3.tex
+++ b/graphics/pgf/contrib/spath3/spath3.tex
@@ -1,5 +1,5 @@
\RequirePackage{shellesc}
-\immediate\write18{tex spath3_code.dtx}
+%\immediate\write18{tex spath3_code.dtx}
\documentclass{l3doc}
\usepackage{tikz}
\usetikzlibrary{
@@ -50,27 +50,29 @@
\title{The \textsf{spath3} Package: Documentation}
\author{Andrew Stacey \\ \url{loopspace@mathforge.org}}
- \date{\fileversion~from \filedate}
+\date{\fileversion~from \filedate}
- \begin{document}
+\let\OriginalBar=|
- \maketitle
+\begin{document}
+
+\maketitle
\tableofcontents
- \section{Introduction}
+\section{Introduction}
- The \texttt{spath3} package was originally designed as a low-level package for manipulating the \emph{soft paths} defined by PGF/TikZ.
- Soft paths form one stage of the stack of translations between what the author writes in the \texttt{tikzpicture} environments in their \LaTeX\ document and what is eventually written to the output file.
- Most of the complicated processing has been done by the time a soft path is constructed, but it is still very definitely a \TeX\ object and there has not, for example, been any consideration as to what the eventual output file format is (such as PDF, DVI, or SVG).
- So it is very amenable to being modified at this stage and this package provides a set of routines for doing so.
+The \texttt{spath3} package was originally designed as a low-level package for manipulating the \emph{soft paths} defined by PGF/TikZ.
+Soft paths form one stage of the stack of translations between what the author writes in the \texttt{tikzpicture} environments in their \LaTeX\ document and what is eventually written to the output file.
+Most of the complicated processing has been done by the time a soft path is constructed, but it is still very definitely a \TeX\ object and there has not, for example, been any consideration as to what the eventual output file format is (such as PDF, DVI, or SVG).
+So it is very amenable to being modified at this stage and this package provides a set of routines for doing so.
- The original purpose was to provide a common core on which other packages would be built.
- Indeed, the packages \texttt{calligraphy}, \texttt{knots}, and \texttt{penrose} all use this package.
- However, over time I've found myself wanting to use the routines of this package at a higher level and so have designed some user-level interfaces.
- This document documents those.
+The original purpose was to provide a common core on which other packages would be built.
+Indeed, the packages \texttt{calligraphy}, \texttt{knots}, and \texttt{tilings} all use this package.
+However, over time I've found myself wanting to use the routines of this package at a higher level and so have designed some user-level interfaces.
+This document documents those.
- To clarify some terminology used in this document (and more generally, this package), I regard paths as being composed of \emph{segments} and \emph{components}.
+To clarify some terminology used in this document (and more generally, this package), I regard paths as being composed of \emph{segments} and \emph{components}.
A \emph{segment} is a minimal drawing piece.
Thus it might be a straight line or a B\'ezier curve.
A \emph{component} is a minimal connected section of the path.
@@ -634,6 +636,24 @@ The ones that keep the middle need two parameters to specify the break points.
\end{function}
+\begin{function}{
+ arrow shortening
+}
+\begin{syntax}
+|arrow shortening|
+|arrow shortening=|\marg{true{\OriginalBar}false}
+\end{syntax}
+
+When an arrow is added to a path then the path is shortened so that the arrow tip is at the end of where the path should end up.
+Placing an arrow, therefore, has two effects: modifying the path and rendering the arrow.
+The former should happen before a soft path is manipulated, the latter afterwards.
+This key allows for the necessary separation to occur.
+Invoking it when the path is used disables the shortening at that juncture.
+
+Note that if the path (or its last segment) is very short then when the arrow is eventually placed it may end up pointing backwards.
+Fixing this is on the \emph{ToDo} list!
+\end{function}
+
\subsection{Exporting Paths}
There are two keys to export a path.
@@ -908,6 +928,21 @@ The intention with the second key is that it is similar to what happens with the
\end{tikzpicture}
\end{example}
+\begin{example}
+\begin{tikzpicture}[>=Latex, line width=5pt]
+% Just a simple line
+\draw (0,1) to[bend left] +(5,0);
+% Same line but with arrows, also save the path
+\draw[->.>, spath/save=arrow] (0,0) to[bend left] +(5,0);
+% Let's redraw that path without the arrows - it's short! But also distorted
+\draw[spath/use={arrow,transform={yshift=-1cm}}];
+% So if we redraw it with arrows it gets doubly shortened
+\draw[->.>,spath/use={arrow,transform={yshift=-2cm}}];
+% If we disable the shortening, the arrows end up in the right place
+\draw[->.>,spath/use={arrow,transform={yshift=-3cm}}, spath/arrow shortening=false];
+\end{tikzpicture}
+\end{example}
+
\item Intersections.
One of the main motivations for implementing the intersection routines was to provide a different way of drawing knots and links and similar diagrams.
diff --git a/graphics/pgf/contrib/spath3/spath3_code.dtx b/graphics/pgf/contrib/spath3/spath3_code.dtx
index 031c0e7bd3..3b0178db5a 100644
--- a/graphics/pgf/contrib/spath3/spath3_code.dtx
+++ b/graphics/pgf/contrib/spath3/spath3_code.dtx
@@ -5,7 +5,7 @@
%<*readme>
----------------------------------------------------------------
spath3 --- LaTeX3 functions for manipulating PGF soft paths
-E-mail: loopspace@mathforge.org
+E-mail: Andrew Stacey <loopspace@mathforge.org>
Released under the LaTeX Project Public License v1.3c or later
See http://www.latex-project.org/lppl.txt
----------------------------------------------------------------
@@ -27,7 +27,7 @@ As applications of its use, included are a package for drawing calligraphic path
\preamble
----------------------------------------------------------------
spath3 --- Functions for manipulating PGF soft paths
-E-mail: loopspace@mathforge.org
+E-mail: Andrew Stacey <loopspace@mathforge.org>
Released under the LaTeX Project Public License v1.3c or later
See http://www.latex-project.org/lppl.txt
----------------------------------------------------------------
@@ -35,7 +35,7 @@ See http://www.latex-project.org/lppl.txt
\endpreamble
\postamble
-Copyright (C) 2011-2021 by Andrew Stacey <loopspace@mathforge.org>
+Copyright (C) 2011-2024 by Andrew Stacey <loopspace@mathforge.org>
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License (LPPL), either
@@ -60,7 +60,7 @@ and the derived files spath3.ins,
calligraphy.pdf
knots.pdf
spath3.pdf
- README
+ README.txt
\endpostamble
\usedir{tex/latex/spath3}
@@ -143,7 +143,7 @@ and the derived files spath3.ins,
%</driver>
% \fi
%
-% \CheckSum{10189}
+% \CheckSum{10278}
%
% \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
@@ -171,6 +171,7 @@ and the derived files spath3.ins,
% \changes{2.4}{2021/02/21}{Rejigged how the routines for using paths were implemented, added some more routines for joining paths.}
% \changes{2.6}{2021/11/23}{Modified core routines to cope with a "true rectangle" path; added routines for splitting at a parametrised point.}
% \changes{2.7}{2022/08/24}{Bug fixes}
+% \changes{2.8}{2024/05/31}{Routine to disable arrow shortening, bug fixes}
%
% \DoNotIndex{\newcommand,\newenvironment}
%
@@ -198,7 +199,7 @@ and the derived files spath3.ins,
% It was originally not really intended for use by end users but as a foundation on which other packages can be built.
% However, over the years I've found myself using it at ever higher levels and so a set of interfaces has been designed using TikZ keys.
%
-% It also provides the engine that drives a few other packages, such as the \Verb+calligraphy+, \Verb+knot+, and \Verb+penrose+ packages.
+% It also provides the engine that drives a few other packages, such as the \Verb+calligraphy+, \Verb+knot+, and \Verb+tilings+ (formerly, \Verb+penrose+) packages.
% The first two of these are subpackages of this one.
% The \Verb+calligraphy+ package simulates a calligraphic pen stroking a path.
% The \Verb+knots+ package can be used to draw knot (and similar) diagrams.
@@ -208,7 +209,7 @@ and the derived files spath3.ins,
% \begin{itemize}
% \item \Verb+calligraphy+
% \item \Verb+knots+
-% \item \Verb+penrose+
+% \item \Verb+tilings+
% \item \Verb+spath3+ (\emph{this} document is the code, there's another which focusses on usage)
% \end{itemize}
%
@@ -259,7 +260,7 @@ and the derived files spath3.ins,
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{expl3}
\RequirePackage{pgf}
-\ProvidesExplPackage {spath3} {2022/08/24} {2.7} {Functions for
+\ProvidesExplPackage {spath3} {2024/05/31} {2.8} {Functions for
manipulating PGF soft paths}
\RequirePackage{xparse}
% \end{macrocode}
@@ -375,6 +376,13 @@ manipulating PGF soft paths}
\bool_new:N \l_spath_movetorelevant_bool
% \end{macrocode}
%
+% When manipulating soft paths, we might need to separate the shortening due to an arrow from when the path is rendered.
+%
+% \begin{macrocode}
+\bool_new:N \l_spath_arrow_shortening_bool
+\bool_set_true:N \l_spath_arrow_shortening_bool
+% \end{macrocode}
+%
% The intersection routine can't happen inside a group so we need two token lists to hold the paths that we'll intersect.
%
% \begin{macrocode}
@@ -457,7 +465,7 @@ manipulating PGF soft paths}
{
\tl_set:Nx \l_@@_tmpc_tl {\tl_head:N \l_@@_tmpa_tl}
\tl_set:Nx \l_@@_tmpa_tl {\tl_tail:N \l_@@_tmpa_tl}
- \tl_case:NnF \l_@@_tmpc_tl
+ \token_case_meaning:NnF \l_@@_tmpc_tl
{
\c_spath_moveto_tl
{
@@ -718,7 +726,7 @@ manipulating PGF soft paths}
\int_set:Nn \l_@@_tmpa_int {0}
\tl_map_inline:nn {#1} {
\tl_set:Nn \l_@@_tmpa_tl {##1}
- \tl_case:NnT \l_@@_tmpa_tl
+ \token_case_meaning:NnT \l_@@_tmpa_tl
{
\c_spath_lineto_tl {}
\c_spath_curveto_tl {}
@@ -763,7 +771,7 @@ manipulating PGF soft paths}
\int_set:Nn \l_@@_tmpa_int {0}
\tl_map_inline:nn {#1} {
\tl_set:Nn \l_@@_tmpa_tl {##1}
- \tl_case:Nn \l_@@_tmpa_tl
+ \token_case_meaning:Nn \l_@@_tmpa_tl
{
\c_spath_moveto_tl
{
@@ -910,7 +918,7 @@ manipulating PGF soft paths}
}
{
\tl_set:Nx \l_@@_tmpb_tl {\tl_head:N \l_@@_tmpa_tl}
- \tl_case:Nn \l_@@_tmpb_tl
+ \token_case_meaning:Nn \l_@@_tmpb_tl
{
\c_spath_moveto_tl
{
@@ -1102,7 +1110,7 @@ manipulating PGF soft paths}
}
{
\tl_set:Nx \l_@@_tmpb_tl {\tl_head:N \l_@@_tmpa_tl}
- \tl_case:Nn \l_@@_tmpb_tl
+ \token_case_meaning:Nn \l_@@_tmpb_tl
{
\c_spath_moveto_tl
{
@@ -1229,7 +1237,7 @@ manipulating PGF soft paths}
\tl_set:Nx \l_@@_tmpc_tl {\tl_head:N \l_@@_tmpa_tl}
\bool_set_false:N \l_@@_rect_bool
- \tl_case:NnTF \l_@@_tmpc_tl
+ \token_case_meaning:NnTF \l_@@_tmpc_tl
{
\c_spath_moveto_tl {
@@ -1679,8 +1687,8 @@ manipulating PGF soft paths}
\tl_clear:N \l_@@_tmpa_tl
\tl_put_right:Nn \l_@@_tmpa_tl {
\ExplSyntaxOn
- \tl_clear_new:N #1
- \tl_set:Nn #1 {#2}
+ \tl_gclear_new:N #1
+ \tl_gset:Nn #1 {#2}
\ExplSyntaxOff
}
\protected@write\@auxout{}{
@@ -3054,6 +3062,35 @@ manipulating PGF soft paths}
}
\cs_generate_variant:Nn \spath_gbake_shorten:N {c}
% \end{macrocode}
+%
+% Shortening the path when it is baked can cause issues with arrows.
+% Putting an arrow in a path definition affects the path because the path gets shortened so that the arrow ends where the path was meant to end.
+% So an arrow affects the path definition, but the arrow is not itself part of the path so if an arrow is used when the path is defined and again when the path is used, the path will be shortened twice which might not be what is intended.
+% Therefore it is useful to have a way to disable the shortening and place an arrow tip at the actual end of the line.
+% The following code achieves that.
+%
+% Save the original command that computes the arrow shortening.
+% \begin{macrocode}
+\cs_set_eq:Nc \@@_pgf_arrow_compute_shortening:n {pgf@arrow@compute@shortening}
+% \end{macrocode}
+%
+% After \verb+\pgf@arrow@compute@shortening+ then \verb+\pgf@xa+ is the amount to shorten the line by, so we will be setting that to 0pt.
+% Then \verb+\pgf@xb+ is the length of the arrow head which is used to position the arrow and so before zeroing \verb+\pgf@xa+ we subtract it from \verb+\pgf@xb+ so that the arrow is placed so that its back point is at the current position.
+%
+% \begin{macrocode}
+\cs_new_nopar:Npn \@@_arrow_compute_shortening:n #1
+{
+ \@@_pgf_arrow_compute_shortening:n {#1}
+ \bool_if:NF \l_spath_arrow_shortening_bool
+ {
+ \dim_sub:cn {pgf@xb} {\dim_use:c {pgf@xa}}
+ \dim_zero:c {pgf@xa}
+ }
+}
+
+\cs_set_eq:cN {pgf@arrow@compute@shortening} \@@_arrow_compute_shortening:n
+% \end{macrocode}
+%
% \end{macro}
%
% \begin{macro}[internal]{
@@ -3209,7 +3246,7 @@ manipulating PGF soft paths}
\tl_set:Nx \l_@@_tmpc_tl {\tl_head:N \l_@@_tmpa_tl}
\tl_set:Nx \l_@@_tmpa_tl {\tl_tail:N \l_@@_tmpa_tl}
- \tl_case:NnF \l_@@_tmpc_tl
+ \token_case_meaning:NnF \l_@@_tmpc_tl
{
\c_spath_closepath_tl {
@@ -3930,7 +3967,7 @@ manipulating PGF soft paths}
}
{
\tl_set:Nx \l_@@_tmpc_tl {\tl_head:N \l_@@_tmpa_tl}
- \tl_case:NnF \l_@@_tmpc_tl
+ \token_case_meaning:NnF \l_@@_tmpc_tl
{
\c_spath_curvetoa_tl
{
@@ -4225,7 +4262,7 @@ manipulating PGF soft paths}
{
\tl_set:Nx \l_@@_tmpf_tl {\tl_head:N \l_@@_tmpe_tl}
\tl_set:Nx \l_@@_tmpe_tl {\tl_tail:N \l_@@_tmpe_tl }
- \tl_case:Nn \l_@@_tmpf_tl
+ \token_case_meaning:Nn \l_@@_tmpf_tl
{
\c_spath_lineto_tl
{
@@ -4279,7 +4316,7 @@ manipulating PGF soft paths}
}
{
- \tl_case:Nn \l_@@_tmpf_tl
+ \token_case_meaning:Nn \l_@@_tmpf_tl
{
\c_spath_lineto_tl
{
@@ -5018,7 +5055,7 @@ manipulating PGF soft paths}
\tl_clear:N \l_@@_tmpc_tl
- \tl_case:Nn \l_@@_tmpb_tl
+ \token_case_meaning:Nn \l_@@_tmpb_tl
{
\c_spath_moveto_tl
{
@@ -5263,7 +5300,7 @@ manipulating PGF soft paths}
\tl_clear:N \l_@@_tmpc_tl
- \tl_case:Nn \l_@@_tmpb_tl
+ \token_case_meaning:Nn \l_@@_tmpb_tl
{
\c_spath_moveto_tl
{
@@ -6383,7 +6420,7 @@ manipulating PGF soft paths}
\tl_map_inline:nn {#1}
{
\tl_set:Nn \l_@@_tmpb_tl {##1}
- \tl_case:NnF \l_@@_tmpb_tl
+ \token_case_meaning:NnF \l_@@_tmpb_tl
{
\c_spath_moveto_tl
{
@@ -6516,10 +6553,14 @@ manipulating PGF soft paths}
\cs_new_protected_nopar:Npn \spath_protocol_path:n #1
{
\spath_minbb:Nn \l_@@_tmpa_tl {#1}
- \exp_last_unbraced:NV \pgf@protocolsizes\l_@@_tmpa_tl
+ \dim_set:Nn \l_@@_tmpa_dim {\tl_item:Nn \l_@@_tmpa_tl {1}}
+ \dim_set:Nn \l_@@_tmpb_dim {\tl_item:Nn \l_@@_tmpa_tl {2}}
+ \pgf@protocolsizes\l_@@_tmpa_dim\l_@@_tmpb_dim
\spath_maxbb:Nn \l_@@_tmpa_tl {#1}
- \exp_last_unbraced:NV \pgf@protocolsizes\l_@@_tmpa_tl
+ \dim_set:Nn \l_@@_tmpa_dim {\tl_item:Nn \l_@@_tmpa_tl {1}}
+ \dim_set:Nn \l_@@_tmpb_dim {\tl_item:Nn \l_@@_tmpa_tl {2}}
+ \pgf@protocolsizes\l_@@_tmpa_dim\l_@@_tmpb_dim
}
\cs_generate_variant:Nn \spath_protocol_path:n {V}
% \end{macrocode}
@@ -6880,7 +6921,7 @@ manipulating PGF soft paths}
}
}
{
- \msg_warning:nnn { spath3 } { missing soft path } { #2 }
+ \msg_warning:nnx { spath3 } { missing soft path } { #2 }
}
\tl_use:N \l_@@_check_tl
}
@@ -9027,12 +9068,8 @@ manipulating PGF soft paths}
% This puts a conditional around the \texttt{spot weld} key because when figuring out a knot drawing then we will initially want to render it without the spot weld to keep the number of components constant.
%
% \begin{macrocode}
- draft~ mode/.is~ choice,
- draft~ mode/true/.code={
- \bool_set_true:N \l_@@_draft_bool
- },
- draft~ mode/false/.code={
- \bool_set_false:N \l_@@_draft_bool
+ draft~ mode/.code={
+ \@@_set_bool:Nn \l_@@_draft_bool {#1}
},
maybe~ spot~ weld/.code={
\bool_if:NF \l_@@_draft_bool
@@ -9113,6 +9150,12 @@ manipulating PGF soft paths}
},
% \end{macrocode}
%
+% \begin{macrocode}
+ arrow~ shortening/.code={
+ \@@_set_bool:Nn \l_spath_arrow_shortening_bool {#1}
+ },
+% \end{macrocode}
+%
% For single argument commands which take a path as their argument, set the default to be \Verb+current+ so that they use the current path.
%
% \begin{macrocode}
@@ -9616,7 +9659,7 @@ manipulating PGF soft paths}
\dim_set:Nn \l_@@_tmpb_dim {\tl_item:Nn \l_@@_tmpa_tl {3}}
\tl_set:Nx \l_@@_tmpb_tl {\tl_item:Nn \l_@@_tmpa_tl {4}}
- \tl_case:NnF \l_@@_tmpb_tl
+ \token_case_meaning:NnF \l_@@_tmpb_tl
{
\c_spath_lineto_tl
{
@@ -9668,7 +9711,7 @@ manipulating PGF soft paths}
\dim_set:Nn \l_@@_tmpb_dim {\tl_item:Nn \l_@@_tmpa_tl {-1}}
\tl_set:Nx \l_@@_tmpb_tl {\tl_item:Nn \l_@@_tmpa_tl {-3}}
- \tl_case:NnF \l_@@_tmpb_tl
+ \token_case_meaning:NnF \l_@@_tmpb_tl
{
\c_spath_lineto_tl
{
@@ -10411,6 +10454,15 @@ manipulating PGF soft paths}
}
}
+\cs_new_nopar:Npn \knot_show_strand:n #1
+{
+ \bool_if:NT \l_@@_debugging_bool
+ {
+ \iow_term:n {===Knot~ debug: #1===}
+ \spath_show:v {knot #1}
+ }
+}
+
\cs_generate_variant:Nn \knot_debug:n {x}
% \end{macrocode}
% \end{macro}
@@ -10592,6 +10644,7 @@ manipulating PGF soft paths}
knot~ diagram/only~ when~ rendering/.try,
only~ when~ rendering/.try,
}
+ \knot_show_strand:n {strand #1}
\spath_tikz_path:Vv \l_@@_tmpa_tl {knot strand #1}
\group_end:
\endpgfscope
@@ -10629,6 +10682,7 @@ manipulating PGF soft paths}
}
{
\tl_clear:N \l_@@_tmpa_tl
+ \spath_remove_empty_components:c {knot strand #1}
\spath_initialpoint:Nv \l_@@_tmpa_tl {knot strand #1}
\tl_put_left:NV \l_@@_tmpa_tl \c_spath_moveto_tl
\spath_segments_to_seq:Nv \l_@@_segments_seq {knot strand #1}
@@ -10649,7 +10703,7 @@ manipulating PGF soft paths}
{
\knot_debug:n {knot~ split~ self~ intersects}
\tl_set:Nx \l_@@_tmpc_tl {\tl_item:nn {#1} {4}}
- \tl_case:NnF \l_@@_tmpc_tl
+ \token_case_meaning:NnF \l_@@_tmpc_tl
{
\c_spath_curvetoa_tl
{
@@ -11271,6 +11325,7 @@ manipulating PGF soft paths}
\int_set_eq:NN \l_@@_component_start_int \g_@@_filaments_int
\int_incr:N \l_@@_component_start_int
\tl_set_eq:Nc \l_@@_tmpa_tl {l_@@_options_strand #1}
+ \spath_remove_empty_components:c {knot strand #1}
\spath_segments_to_seq:Nv \l_@@_segments_seq {knot strand #1}
\seq_map_function:NN \l_@@_segments_seq \knot_save_filament:N
}
@@ -11284,7 +11339,7 @@ manipulating PGF soft paths}
{
\knot_debug:n {knot~ save~ filament}
\tl_set:Nx \l_@@_tmpb_tl {\tl_item:nn {#1} {4}}
- \tl_case:NnF \l_@@_tmpb_tl
+ \token_case_meaning:NnF \l_@@_tmpb_tl
{
\c_spath_moveto_tl
{
diff --git a/graphics/pgf/contrib/spath3/spath3_code.pdf b/graphics/pgf/contrib/spath3/spath3_code.pdf
index f773a0b534..840b7842d3 100644
--- a/graphics/pgf/contrib/spath3/spath3_code.pdf
+++ b/graphics/pgf/contrib/spath3/spath3_code.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/tkz-grapheur/README.md b/graphics/pgf/contrib/tkz-grapheur/README.md
new file mode 100644
index 0000000000..2a9d4e1e95
--- /dev/null
+++ b/graphics/pgf/contrib/tkz-grapheur/README.md
@@ -0,0 +1,7 @@
+tkz-grapheur is a package to work with curves, with TikZ.
+--------------------------------------------------------------------------------
+tkz-grapheur un package spécifique pour travailler avec des courbes, en TikZ.
+--------------------------------------------------------------------------------
+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/graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-doc-fr.pdf b/graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-doc-fr.pdf
new file mode 100644
index 0000000000..ea4b8ad3fb
--- /dev/null
+++ b/graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-doc-fr.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-doc-fr.tex b/graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-doc-fr.tex
new file mode 100644
index 0000000000..750dbc16bd
--- /dev/null
+++ b/graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-doc-fr.tex
@@ -0,0 +1,1535 @@
+% !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[T1]{fontenc}
+\usepackage[utf8]{inputenc}
+\usepackage{tkz-grapheur}
+\usepackage{amsmath}
+\usepackage{fancyvrb}
+\usepackage{fancyhdr}
+\usepackage{hyperref}
+\usepackage{nicefrac}
+\usepackage{fontawesome5}
+\usepackage{tcolorbox}
+\tcbuselibrary{skins,minted}
+\fancyhf{}
+\renewcommand{\headrulewidth}{0pt}
+\lfoot{\sffamily\small [tkz-grapheur]}
+\rfoot{\sffamily\small - \thepage{} -}
+\usepackage{hologo}
+\providecommand\tikzlogo{Ti\textit{k}Z}
+\providecommand\TeXLive{\TeX{}Live\xspace}
+\providecommand\PSTricks{\textsf{PSTricks}\xspace}
+\let\pstricks\PSTricks
+\let\TikZ\tikzlogo
+
+\urlstyle{same}
+\hypersetup{pdfborder=0 0 0}
+\usepackage[margin=2cm]{geometry}
+\setlength{\parindent}{0pt}
+\def\TPversion{0.1.1}
+\def\TPdate{28/05/2024}
+\usepackage{soul}
+\usepackage{codehigh}
+\usepackage{tabularray}
+\sethlcolor{lightgray!25}
+\NewDocumentCommand\MontreCode{ m }{%
+ \hl{\vphantom{\texttt{pf}}\texttt{#1}}%
+}
+\usepackage[french]{babel}
+
+\renewcommand{\footnoterule}{\vfill\kern -3pt \hrule width 0.4\columnwidth \kern 2.6pt}
+
+\begin{document}
+
+\pagestyle{fancy}
+
+\thispagestyle{empty}
+
+\begin{center}
+ \begin{minipage}{0.88\linewidth}
+ \begin{tcolorbox}[colframe=yellow,colback=yellow!15]
+ \begin{center}
+ \begin{tabular}{c}
+ {\Huge \texttt{tkz-grapheur [fr]}}\\
+ \\
+ {\LARGE Un système de grapheur, basé sur \TikZ.}\\
+ \\
+ {\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://forge.apps.education.fr/pierquetcedric/package-latex-tkz-grapheur}} \\
+\end{tabular}
+\end{center}
+
+\hrule
+
+\vfill
+
+\begin{tcolorbox}[colframe=lightgray,colback=lightgray!5,halign=center]
+\begin{GraphiqueTikz}[x=0.85cm,y=0.35cm,Xmin=0,Xmax=10,Ymin=0,Ymax=16]
+ %préparation de la fenêtre
+ \TracerAxesGrilles[Elargir=2.5mm,Police=\small]{0,1,...,10}{0,2,...,16}
+ %déf des fonctions avec nom courbe + nom fonction + expression
+ \DefinirCourbe[Nom=cf]<f>{3*x-6}
+ \DefinirCourbe[Nom=cg]<g>{-(x-6)^2+12}
+ %antécédents et intersection
+ \TrouverIntersections[Aff=false,Nom=K]{cf}{cg}
+ \TrouverAntecedents[AffDroite,Couleur=orange,Nom=I]{cg}{8}
+ \TrouverAntecedents[Aff=false,Nom=J]{cg}{0}
+ %intégrale sous une courbe, avec intersection
+ \TracerIntegrale%
+ [Couleurs=blue/purple,Bornes=noeuds,Style=hachures,Hachures=bricks]%
+ {g(x)}%
+ {(I-2)}{(J-2)}
+ %intégrale entre les deux courbes
+ \TracerIntegrale[Bornes=noeuds,Type=fct/fct]{f(x)}[g(x)]{(K-1)}{(K-2)}
+ %tracé des courbes et des points
+ \TracerCourbe[Couleur=red]{f(x)}
+ \TracerCourbe[Couleur=teal]{g(x)}
+ \PlacerPoints<\small>{(K-1)/below right/L,(K-2)/above left/M}%
+ \PlacerPoints[violet]<\small>{(I-1)/above left/D,(I-2)/above right/E}%
+ %essai de tangente
+ \TracerTangente[Couleurs=pink!75!black/yellow,kl=2,kr=2,AffPoint]{g}{5}
+ %essai d'image
+ \PlacerImages[Couleurs=cyan]{g}{7,7.25,7.5}
+ %surimpression des axes
+ \TracerAxesGrilles[Grads=false,Grille=false,Elargir=2.5mm]{0,1,...,10}{0,2,...,16}
+\end{GraphiqueTikz}
+\end{tcolorbox}
+
+\vspace*{5mm}
+
+\begin{tcolorbox}[colframe=lightgray,colback=lightgray!5,halign=center]
+\begin{GraphiqueTikz}%
+ [x=3.5cm,y=4cm,
+ Xmin=0,Xmax=3.5,Xgrille=pi/12,Xgrilles=pi/24,
+ Ymin=-1.05,Ymax=1.05,Ygrille=0.2,Ygrilles=0.05]
+ %préparation de la fenêtre
+ \TracerAxesGrilles[Grads=false,Elargir=2.5mm,Format=ntrig/nsqrt]%
+ {pi/6,pi/4,pi/3,pi/2,2*pi/3,3*pi/4,5*pi/6,pi}
+ {0,sqrt(2)/2,1/2,sqrt(3)/2,1,-1,-sqrt(3)/2,-1/2,-sqrt(2)/2}
+ %rajouter des valeurs
+ \RajouterValeursAxeX{0.25,1.4,3.3}{\num{0.25},\num{1.4},\num{3.3}}
+ %fonction trigo (déf + tracé)
+ \DefinirCourbe[Nom=ccos,Debut=0,Fin=pi]<fcos>{cos(x)}
+ \DefinirCourbe[Nom=csin,Debut=0,Fin=pi]<fsin>{sin(x)}
+ %intégrale
+ \TrouverIntersections[Aff=false,Nom=JKL]{ccos}{csin}
+ %\DefinirPts{FIN/pi/0}
+ \TracerIntegrale%
+ [Bornes=noeud/abs,Type=fct/fct,Couleurs=cyan/cyan!50]%
+ {fsin(x)}[fcos(x)]%
+ {(JKL-1)}{pi}
+ %tracé des courbes
+ \TracerCourbe[Couleur=red,Debut=0,Fin=pi]{fcos(x)}
+ \TracerCourbe[Couleur=olive,Debut=0,Fin=pi]{fsin(x)}
+ %antécédent(s)
+ \PlacerAntecedents[Couleurs=blue/teal!50!black,Traits]{ccos}{-0.25}
+ \PlacerAntecedents[Couleurs=red/magenta!50!black,Traits]{csin}{0.5}
+ \PlacerAntecedents[Couleurs=orange/orange!50!black,Traits]{csin}{sqrt(2)/2}
+ \PlacerAntecedents[Couleurs=green!50!black/green,Traits]{csin}{sqrt(3)/2}
+ %surimpression axes
+ \TracerAxesGrilles[Grille=false,Elargir=2.5mm,Format=ntrig/nsqrt]%
+ {pi/6,pi/4,pi/3,pi/2,2*pi/3,3*pi/4,5*pi/6,pi}
+ {0,sqrt(2)/2,1/2,sqrt(3)/2,1,-1,-sqrt(3)/2,-1/2,-sqrt(2)/2}
+\end{GraphiqueTikz}
+\end{tcolorbox}
+
+\vfill
+
+
+\vspace*{5mm}
+
+\pagebreak
+
+\phantomsection
+
+\hypertarget{matoc}{}
+
+\tableofcontents
+
+\vspace*{5mm}
+
+\hrule
+
+\vspace*{5mm}
+
+\pagebreak
+
+\section{Introduction}
+
+\subsection{Description et idées générales}
+
+Avec ce modeste package, loin des capacités offertes par exemple par les excellents packages \MontreCode{tkz-*}\footnote{par exemple tkz-base \url{https://ctan.org/pkg/tkz-base} et tkz-fct \url{https://ctan.org/pkg/tkz-fct}.} (d'Alain Matthes) ou \MontreCode{tzplot}\footnote{CTAN : \url{https://ctan.org/pkg/tzplot}.} (de In-Sung Cho), il est possible de travailler sur des graphiques de fonctions, en langage \TikZ, de manière \textit{intuitive} et \textit{explicite}.
+
+\smallskip
+
+Concernant le fonctionnement global :
+
+\smallskip
+
+\begin{itemize}
+ \item des styles particuliers pour les objets utilisés ont été définis, mais ils peuvent localement être modifiés ;
+ \item le nom des commandes est sous forme \textit{opérationnelle}, de sorte que la construction des éléments graphiques a une forme quasi \textit{algorithmique}.
+\end{itemize}
+
+\subsection{Fonctionnement global}
+
+Pour schématiser, il \textit{suffit} :
+
+\smallskip
+
+\begin{itemize}
+ \item de déclarer les paramètres de la fenêtre graphique ;
+ \item d'afficher grille/axes/graduations ;
+ \item de déclarer les fonctions ou les courbes d'interpolation ;
+ \item de déclarer éventuellement des points particuliers ;
+ \item de placer un nuage de points.
+\end{itemize}
+
+\smallskip
+
+Il sera ensuite possible :
+
+\begin{itemize}
+ \item de tracer des courbes ;
+ \item de déterminer graphiquement des images ou des antécédents ;
+ \item de rajouter des éléments de dérivation (tangentes) ou d'intégration (domaine) ;
+ \item de tracer une droite d'ajustement linéaire.
+\end{itemize}
+
+\subsection{Packages utilisés, et options du package}
+
+Le package utilise :
+
+\smallskip
+
+\begin{itemize}
+ \item \MontreCode{tikz}, avec les librairies \MontreCode{calc,intersections,patterns,patterns.meta} ;
+ \item \MontreCode{simplekv} ;
+ \item \MontreCode{xintexpr} ;
+ \item \MontreCode{xstring} ;
+ \item \MontreCode{listofitems}.
+\end{itemize}
+
+\smallskip
+
+Le package charge également \MontreCode{siunitx} avec les options classiques \texttt{[fr]}, mais il est possible de ne pas le charger en utilisant l'option \MontreCode{[nonsiunitx]}.
+
+\smallskip
+
+Le package charge également la librairie \TikZ\ \MontreCode{babel}, mais il est possible de ne pas le charger en utilisant l'option \MontreCode{[nontikzbabel]}.
+
+\smallskip
+
+Les différentes options sont bien évidemment cumulables.
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only}
+%chargement par défaut
+\usepackage{tkz-grapheur}
+
+%chargement sans sinuitx, à charger manuellement
+\usepackage[nonsiunitx]{tkz-grapheur}
+
+%chargement sans tikz.babel
+\usepackage[nontikzbabel]{tkz-grapheur}
+\end{tcblisting}
+
+\pagebreak
+
+À noter également que certaines commandes peuvent utiliser des packages comme \MontreCode{nicefrac}, qui sera donc à charger le cas échéant.
+
+\smallskip
+
+Concernant la partie \textit{calculs} et \textit{tracés}, c'est le package \MontreCode{xint} qui s'en occupe.
+
+\subsection{Avertissements}
+
+Il est possible, dû aux calculs (multiples) effectués en interne, que le temps de compilation soir un peu \textit{allongé}.
+
+\smallskip
+
+La précision des résultats (de détermination) semble être aux environs de $10^{-4}$, ce qui devrait normalement garantir des tracés et lectures \textit{satisfaisantes}. Il est quand même conseillé d'être prudent quant aux résultats obtenus et ceux attendus.
+
+\subsection{Exemple introductif}
+
+On peut par exemple partir de l'exemple suivant, pour \textit{illustrer} le cheminement des commandes de ce package. Les commandes et la syntaxe seront détaillées dans les sections suivantes !
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+ [x=7.5cm,y=7.5cm,Xmin=0,Xmax=1.001,Xgrille=0.1,Xgrilles=0.02,
+ Ymin=0,Ymax=1.001,Ygrille=0.1,Ygrilles=0.02]
+ \TracerAxesGrilles[Elargir=2.5mm,Police=\small]%
+ {0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1}
+ {0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1}
+ \DefinirCourbe[Nom=cf,Debut=0,Fin=1]<f>{x*exp(x-1)}
+ \DefinirCourbe[Nom=delta,Debut=0,Fin=1]<D>{x}
+ \TracerIntegrale[Type=fct/fct]{f(x)}[D(x)]{0}{1}
+ \TracerCourbe[Couleur=red]{f(x)}
+ \TracerCourbe[Couleur=teal]{D(x)}
+ \PlacerImages[Couleurs=blue/cyan,Traits]{f}{0.8,0.9}
+ \PlacerAntecedents[Couleurs=green!50!black/olive,Traits]{cf}{0.5}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\newpage
+
+\section{Styles de base et création de l'environnement}
+
+\subsection{Styles de base}
+
+Les styles utilisés pour les tracés sont donnés ci-dessous.
+
+\smallskip
+
+Dans une optique de \textit{simplicité}, seule la couleur des éléments peut être paramétrée, mais si l'utilisateur le souhaite, il peut redéfinir les styles proposés.
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only}
+%paramètres déclarés et stockés (utilisables dans l'environnement a posteriori)
+\tikzset{
+ Xmin/.store in=\pflxmin,Xmin/.default=-3,Xmin=-3,
+ Xmax/.store in=\pflxmax,Xmax/.default=3,Xmax=3,
+ Ymin/.store in=\pflymin,Ymin/.default=-3,Ymin=-3,
+ Ymax/.store in=\pflymax,Ymax/.default=3,Ymax=3,
+ Origx/.store in=\pflOx,Origx/.default=0,Origx=0,
+ Origy/.store in=\pflOy,Origy/.default=0,Origy=0,
+ Xgrille/.store in=\pflgrillex,Xgrille/.default=1,Xgrille=1,
+ Xgrilles/.store in=\pflgrillexs,Xgrilles/.default=0.5,Xgrilles=0.5,
+ Ygrille/.store in=\pflgrilley,Ygrille/.default=1,Ygrille=1,
+ Ygrilles/.store in=\pflgrilleys,Ygrilles/.default=0.5,Ygrilles=0.5
+}
+\end{tcblisting}
+
+On retrouve donc :
+
+\smallskip
+
+\begin{itemize}
+ \item l'origine du repère (\MontreCode{Origx}/\MontreCode{Origy}) ;
+ \item les valeurs extrêmes des axes (\MontreCode{Xmin}/\MontreCode{Xmax}/\MontreCode{Ymin}/\MontreCode{Ymax}) ;
+ \item les paramètres des grilles principales et secondaires (\MontreCode{Xgrille}/\MontreCode{Xgrilles}/\MontreCode{Ygrille}/\MontreCode{Ygrilles}).
+\end{itemize}
+
+\smallskip
+
+Concernant les styles des \textit{objets}, ils sont donnés ci-dessous.
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only}
+%styles grilles/axes
+\tikzset{pflgrillep/.style={thin,lightgray}}
+\tikzset{pflgrilles/.style={very thin,lightgray}}
+\tikzset{pflaxes/.style={line width=0.8pt,->,>=latex}}
+
+%style des points (courbe / nuage)
+\tikzset{pflpoint/.style={line width=0.95pt}}
+\tikzset{pflpointc/.style={radius=1.75pt}}
+\tikzset{pflpointnuage/.style={radius=1.75pt}}
+
+%style des courbes
+\tikzset{pflcourbe/.style={line width=1.05pt}}
+
+%style des traits (normaux, antécédents, images)
+\tikzset{pfltrait/.style={line width=0.8pt}}
+\tikzset{pfltraitantec/.style={line width=0.95pt,densely dashed}}
+\tikzset{pfltraitimg/.style={line width=0.95pt,densely dashed,->,>=latex}}
+
+%style des flèches
+\tikzset{pflflecheg/.style={<-,>=latex}}
+\tikzset{pflfleched/.style={->,>=latex}}
+\tikzset{pflflechegd/.style={<->,>=latex}}
+\end{tcblisting}
+
+L'idée est donc de pouvoir redéfinir globalement ou localement les styles, et éventuellement de rajouter des éléments, en utilisant \mintinline{latex}|monstyle/.append style={...}|.
+
+\subsection{Création de l'environnement}\label{creaenvt}
+
+L'environnement proposé est basé sur \TikZ, de sorte que toute commande \textit{classique} liée à \TikZ\ peut être utilisée en marge des commandes du package !
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only}
+\begin{GraphiqueTikz}[options tikz]<clés>
+ %code(s)
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+Les \MontreCode{[options tikz]} sont les options \textit{classiques} qui peuvent être passées à un environnement \TikZ, ainsi que les clés des \textsf{axes/grilles/fenêtre} présentées précédemment.
+
+\smallskip
+
+Les \MontreCode{<clés>} spécifiques (et optionnelles) sont :
+
+\smallskip
+
+\begin{itemize}
+ \item \MontreCode{TailleGrad} : taille des graduations des axes (\MontreCode{3pt} pour 3pt \textit{dessus} et 3pt \textit{dessous}) ;
+ \item \MontreCode{AffCadre} : booléen (\MontreCode{false} par défaut) pour afficher un cadre qui délimite la fenêtre graphique (hors graduations éventuelles).
+\end{itemize}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}
+ [x=0.075cm,y=0.03cm,Xmin=0,Xmax=160,Xgrille=20,Xgrilles=10,
+ Origy=250,Ymin=250,Ymax=400,Ygrille=25,Ygrilles=5]
+ <AffCadre>
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+ [x=0.9cm,y=0.425cm,Xmin=4,Xmax=20,Origx=4,
+ Ymin=40,Ymax=56,Ygrille=2,Ygrilles=1,Origy=40]
+ <AffCadre>
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+Ce sera bien évidemment plus parlant avec les éléments graphiques rajoutés !
+
+\pagebreak
+
+\subsection{Grilles et axes}\label{creaaxesgr}
+
+La première commande \textit{utile} va permettre de créer les grilles, les axes et les graduations.
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only}
+%dans l'environnement GraphiqueTikz
+\TracerAxesGrille[clés]{gradX}{gradY}
+\end{tcblisting}
+
+Les \MontreCode{[clés]}, optionnelles, disponibles sont :
+
+\smallskip
+
+\begin{itemize}
+ \item \MontreCode{Grille} : booléen (\MontreCode{true} par défaut) pour afficher les grilles (pour une grille unique, il suffit de mettre les paramètres identiques pour \MontreCode{Xgrille}/\MontreCode{Xgrilles} ou \MontreCode{Ygrille}/\MontreCode{Ygrilles}) ;
+ \item \MontreCode{Elargir} : rajout à la fin des axes (\MontreCode{0} par défaut) ;
+ \item \MontreCode{Grads} : booléen (\MontreCode{true} par défaut) pour les graduations ;
+ \item \MontreCode{Police} : police globale des graduations {\MontreCode{vide} par défaut} ;
+ \item \MontreCode{Format} : formatage particulier (voir en dessous) des valeurs des axes.
+\end{itemize}
+
+\smallskip
+
+Concernant la clé \MontreCode{Format}, elle permet de spécifier un paramétrage spécifique pour les valeurs des axes.
+
+\smallskip
+
+Elle peut être donnée sous la forme \MontreCode{fmt} pour un formatage combiné, ou sous la forme \MontreCode{fmtX/fmtY} pour différencier le formatage.
+
+\smallskip
+
+Les options possible sont :
+
+\smallskip
+
+\begin{itemize}
+ \item \MontreCode{num} : formater avec \textsf{siunitx} ;
+ \item \MontreCode{annee} : formater en année ;
+ \item \MontreCode{frac} : formater en fraction \textsf{frac} ;
+ \item \MontreCode{dfrac} : formater en fraction \textsf{dfrac} ;
+ \item \MontreCode{nfrac} : formater en fraction \textsf{nicefrac} ;\hfill(à charger !)
+ \item \MontreCode{trig} : formater en trigo avec \textsf{frac} ;
+ \item \MontreCode{dtrig} : formater en trigo avec \textsf{dfrac} ;
+ \item \MontreCode{ntrig} : formater en trigo avec \textsf{nfrac} ;
+ \item \MontreCode{sqrt} : formater en racine avec \textsf{frac} ;
+ \item \MontreCode{dsqrt} : formater en racine avec \textsf{dfrac} ;
+ \item \MontreCode{nsqrt} : formater en racine avec \textsf{nicefrac}.
+\end{itemize}
+
+\smallskip
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}
+ [x=0.075cm,y=0.03cm,Xmin=0,Xmax=160,Xgrille=20,Xgrilles=10,
+ Origy=250,Ymin=250,Ymax=400,Ygrille=25,Ygrilles=5]
+ \TracerAxesGrilles[Elargir=2.5mm,Police=\small]{0,10,...,160}{250,275,...,400}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+ [x=0.9cm,y=0.425cm,Xmin=4,Xmax=20,Origx=4,
+ Ymin=40,Ymax=56,Ygrille=2,Ygrilles=1,Origy=40]
+ \TracerAxesGrilles[Elargir=2.5mm,Police=\small]{4,5,...,20}{40,42,...,56}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+À noter qu'il existe les clés booléennes \MontreCode{[Derriere]} (sans les graduations) et \MontreCode{[Devant]} (sans la grille) pour afficher les axes en mode \textit{sous/sur}-impression dans le cas d'intégrales par exemple.
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+ [x=2.75cm,y=3cm,
+ Xmin=0,Xmax=3.5,Xgrille=pi/12,Xgrilles=pi/24,
+ Ymin=-1.05,Ymax=1.05,Ygrille=0.2,Ygrilles=0.05]
+ \TracerAxesGrilles[Elargir=2.5mm,Format=dtrig/nsqrt,Police=\footnotesize]%
+ {pi/6,pi/4,pi/3,pi/2,2*pi/3,3*pi/4,5*pi/6,pi}
+ {0,sqrt(2)/2,1/2,sqrt(3)/2,1,-1,-sqrt(3)/2,-1/2,-sqrt(2)/2}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+Dans le cas où le formatage ne donne pas de résultat(s) satisfaisant(s), il est possible d'utiliser une commande générique de placement des graduations.
+
+\pagebreak
+
+Dans le cas où les graduations sont \textit{naturellement} définies par les données de la fenêtre et de la grille (principale), il est possible de préciser \MontreCode{auto} dans les arguments obligatoires (dans ce cas le formatage ne sera pas possible, et \MontreCode{Format=num} sera obligatoirement utilisé).
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+ [x=1.5cm,y=6cm,Xmin=0,Xmax=7,Xgrille=0.5,Xgrilles=0.25,
+ Ymin=0,Ymax=1,Ygrille=0.1,Ygrilles=0.05]
+ \TracerAxesGrilles[Elargir=2.5mm,Dernier]{auto}{auto}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\pagebreak
+
+\subsection{Ajout de valeurs manuellement}\label{ajoutvals}
+
+Il est également possible d'utiliser une commande spécifique pour placer des valeurs sur les axes, indépendamment d'un système \textit{automatisé} de formatage.
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only}
+%dans l'environnement GraphiqueTikz
+\RajouterValeursAxeX[clés]{positions}{valeurs formatées}
+\RajouterValeursAxeY[clés]{positions}{valeurs formatées}
+\end{tcblisting}
+
+Les \MontreCode{[clés]}, optionnelles, disponibles sont :
+
+\smallskip
+
+\begin{itemize}
+ \item \MontreCode{Police} : police globale des graduations {\MontreCode{vide} par défaut} ;
+ \item \MontreCode{Traits} : booléen pour ajouter les traits des graduations {\MontreCode{true} par défaut}.
+\end{itemize}
+
+\smallskip
+
+Les arguments obligatoires correspondent aux abscisses (en langage\TikZ) et aux labels (en langage \LaTeX) des graduations.
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+ [x=2.75cm,y=3cm,
+ Xmin=0,Xmax=3.5,Xgrille=pi/12,Xgrilles=pi/24,
+ Ymin=-1.05,Ymax=1.05,Ygrille=0.2,Ygrilles=0.05]
+ \TracerAxesGrilles[Grad=false,Elargir=2.5mm,]{}{}
+ \RajouterValeursAxeX
+ {0.15,0.6,pi/2,2.8284}
+ {\num{0.15},$\frac35$,$\displaystyle\frac{\pi}{2}$,$\sqrt{8}$}
+ \RajouterValeursAxeY
+ {-1,0.175,0.3,sqrt(3)/2}
+ {\num{-1},\num{0.175},$\nicefrac{3}{10}$,$\frac{\sqrt{3}}{2}$}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\pagebreak
+
+\section{Commandes spécifiques de définitions}
+
+\subsection{Définir une fonction, tracer la courbe d'une fonction}\label{deftracfct}
+
+La première idée est de définir une fonction, pour réutilisation ultérieure. Cette commande \textit{crée} la fonction, sans la tracer, car dans certains cas des éléments devront être tracés au préalable.
+
+\smallskip
+
+Il existe également une commande pour tracer la courbe d'une fonction précédemment définie.
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only}
+%dans l'environnement GraphiqueTikz
+\DefinirCourbe[clés]<nom fct>{formule xint}
+\TracerCourbe[clés]{formule xint}
+\end{tcblisting}
+
+Les \MontreCode{[clés]} pour la définition ou le tracé, optionnelles, disponibles sont :
+
+\smallskip
+
+\begin{itemize}
+ \item \MontreCode{Debut} : borne inférieure de l'ensemble de définition (\MontreCode{\textbackslash pflxmin} par défaut) ;
+ \item \MontreCode{Fin} : borne inférieure de l'ensemble de définition (\MontreCode{\textbackslash pflxmax} par défaut) ;
+ \item \MontreCode{Nom} : = nom de la courbe (important pour la suite !) ;
+ \item \MontreCode{Couleur} : = couleur du tracé (\MontreCode{black} par défaut) ;
+ \item \MontreCode{Pas} : = pas du tracé (il est déterminé \textit{automatiquement} au départ mais peut être modifié) ;
+ \item \MontreCode{Trace} : booléen pour tracer également la courbe (\MontreCode{false} par défaut).
+\end{itemize}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+ [x=0.9cm,y=0.425cm,Xmin=4,Xmax=20,Origx=4,
+ Ymin=40,Ymax=56,Ygrille=2,Ygrilles=1,Origy=40]
+ \TracerAxesGrilles[Elargir=2.5mm,Police=\small]{4,5,...,20}{40,42,...,56}
+ %définition de la fonction + tracé de la courbe
+ \DefinirCourbe[Nom=cf,Debut=5,Fin=19]<f>{-2*x+3+24*log(2*x)}
+ \TracerCourbe[Couleur=red,Debut=5,Fin=19]{f(x)}
+ %ou en une seule commande si "suffisant"
+ %\DefinirCourbe[Nom=cf,Debut=5,Fin=19,Trace]<f>{-2*x+3+24*log(2*x)}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\pagebreak
+
+\subsection{Définir/tracer une courbe d'interpolation (simple)}\label{deftracinterpo}
+
+Il est également possible de définir une courbe via des points supports, donc une courbe d'interpolation simple.
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only}
+%dans l'environnement GraphiqueTikz
+\DefinirCourbeInterpo[clés]{liste des points support}
+\TracerCourbeInterpo[clés]{liste des points support}
+\end{tcblisting}
+
+Les \MontreCode{[clés]} pour la définition ou le tracé, optionnelles, disponibles sont :
+
+\smallskip
+
+\begin{itemize}
+ \item \MontreCode{Nom} : nom de la courbe d'interpolation (important pour la suite !) ;
+ \item \MontreCode{Couleur} : couleur du tracé (\MontreCode{black} par défaut) ;
+ \item \MontreCode{Tension} : paramétrage de la \textit{tension} du tracé d'interpolation (\MontreCode{0.5} par défaut) ;
+ \item \MontreCode{Trace} : booléen pour tracer également la courbe (\MontreCode{false} par défaut).
+\end{itemize}
+
+L'argument obligatoire permet quant à lui de spécifier la liste des points supports sous la forme \MontreCode{(x1,y1)(x2,y2)...}.
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+ [x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5]
+ \TracerAxesGrilles[Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+ %courbes d'interpolation simples (avec tension diff)
+ \DefinirCourbeInterpo[Nom=interpotest,Couleur=blue,Trace]%
+ {(-6,4)(-2,-2)(3,3.5)}
+ \DefinirCourbeInterpo[Nom=interpotest,Couleur=red,Trace,Tension=1]%
+ {(-6,4)(-2,-2)(3,3.5)}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\newpage
+
+\subsection{Définir/tracer une courbe d'interpolation (Hermite)}\label{deftracfctspline}
+
+Il est également possible de définir une courbe via des points supports, donc une courbe d'interpolation avec contrôle de la dérivée.
+
+\smallskip
+
+Certaines exploitations demandant des techniques différentes suivant le type de fonction utilisée, une clé booléenne \MontreCode{Spline} permettra au code d'adapter ses calculs suivant l'objet utilisé.
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only}
+%dans l'environnement GraphiqueTikz
+\DefinirCourbeSpline[clés]{liste des points support}[\macronomspline]
+\TracerCourbeSpline[clés]{liste des points support}[\macronomspline]
+\end{tcblisting}
+
+Les \MontreCode{[clés]} pour la définition ou le tracé, optionnelles, disponibles sont :
+
+\smallskip
+
+\begin{itemize}
+ \item \MontreCode{Nom} : = nom de la courbe d'interpolation (important pour la suite !) ;
+ \item \MontreCode{Coeffs} : modifier (voir la documentation de \textsf{ProfLycee}\footnote{CTAN : \url{https://ctan.org/pkg/proflycee}} les \textit{coefficients} du spline ;
+ \item \MontreCode{Couleur} : = couleur du tracé (\MontreCode{black} par défaut) ;
+ \item \MontreCode{Trace} : booléen pour tracer également la courbe (\MontreCode{false} par défaut).
+\end{itemize}
+
+L'argument obligatoire permet quant à lui de spécifier la liste des points supports sous la forme \MontreCode{x1/y1/f'1§x2/y2/f'2§...} avec :
+
+\begin{itemize}
+ \item \MontreCode{xi/yi} les coordonnées du point ;
+ \item \MontreCode{f'i} la dérivé au point support.
+\end{itemize}
+
+\smallskip
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+ [x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5]
+ \TracerAxesGrilles[Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+ %définition de la liste des points support du spline
+ \def\LISTETEST{-6/4/-2§-5/2/-2§-4/0/-2§-2/-2/0§1/2/2§3/3.5/0.5}
+ %définition et tracé du spline cubique
+ \DefinirCourbeSpline[Nom=splinetest,Trace,Couleur=olive]{\LISTETEST}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\pagebreak
+
+\subsection{Définir des points sous forme de nœuds}\label{defpts}
+
+La seconde idée est de travailler avec des nœuds \TikZ, qui pourront être utiles pour des tracés de tangentes, des représentations d'intégrales$\ldots$
+
+\smallskip
+
+Certaines commandes (explicités ultérieurement) permettent de déterminer des points particuliers des courbes sous forme de nœuds, donc il semble intéressant de pouvoir en définir directement.
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only}
+%dans l'environnement GraphiqueTikz
+\DefinirPts[clés]{Nom1/x1/y1,Nom2/x2/y2,...}
+\end{tcblisting}
+
+Les \MontreCode{[clés]}, optionnelles, disponibles sont :
+
+\smallskip
+
+\begin{itemize}
+ \item \MontreCode{Aff} : booléen pour marquer les points (\MontreCode{false} par défaut) ;
+ \item \MontreCode{Couleur} : couleur des points, si \MontreCode{Aff=true} (\MontreCode{black} par défaut).
+\end{itemize}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+ [x=0.9cm,y=0.425cm,Xmin=4,Xmax=20,Origx=4,
+ Ymin=40,Ymax=56,Ygrille=2,Ygrilles=1,Origy=40]
+ \TracerAxesGrilles[Elargir=2.5mm,Police=\small]{4,5,...,20}{40,42,...,56}
+ %définition de la fonction + tracé de la courbe
+ \DefinirFonction[Nom=cf,Debut=5,Fin=19,Trace,Couleur=red]<f>{-2*x+3+24*log(2*x)}
+ %nœuds manuels
+ \DefinirPts[Aff,Couleur=brown]{A/7/42,B/16/49}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\pagebreak
+
+\subsection{Marquage de points}\label{markpts}
+
+L'idée est de proposer de quoi marquer des points avec un style particulier.
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only}
+%dans l'environnement GraphiqueTikz
+\MarquerPts(*)[clés]<police>{liste}
+\end{tcblisting}
+
+La version \textit{étoilée} marque les points sans les \og noms \fg, alors que la version \textit{non étoilée} les affiche :
+
+\begin{itemize}
+ \item dans le cas de la version \textit{étoilée}, la liste est à donner sous la forme \MontreCode{(ptA),(ptB),...} ;
+ \item sinon, la liste est à donner sous la forme \MontreCode{(ptA)/labelA/poslabelA,...}.
+\end{itemize}
+
+\smallskip
+
+Les \MontreCode{[clés]}, optionnelles, disponibles sont :
+
+\smallskip
+
+\begin{itemize}
+ \item \MontreCode{Couleur} : couleur (\MontreCode{black} par défaut) ;
+ \item \MontreCode{Style} : style des marques (\MontreCode{o} par défaut).
+\end{itemize}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}[x=1.5cm,y=1.5cm]
+ \TracerAxesGrilles[Agrandir=2.5mm]{auto}{auto}
+ \DefinirPts{A/1.75,-1.25}\MarquerPts[Couleur=pink]{(A)/A/below} %rond (par défaut)
+ \MarquerPts[Couleur=teal]{(1,1)/M/below}
+ \MarquerPts[Couleur=red,Style=x]{(1.25,1)/$A$/below} %croix
+ \MarquerPts[Couleur=orange,Style=+]<\small\sffamily>{(1.5,1)/K/below} %plus
+ \MarquerPts[Couleur=blue,Style=c]{(1.75,1)/P/below} %carré
+ \MarquerPts[Couleur=gray,Style=d]{(2,1)/P/below} %diamant
+ \MarquerPts*[Couleur=orange/yellow]{(2,2),(2.5,2.25)} %rond bicolore
+ \MarquerPts*[Style=+,Couleur=red]{(1,2)}
+ \MarquerPts*[Style=x,Couleur=blue]{(2.25,1)}
+ \MarquerPts*[Style=c,Couleur=magenta]{(-2,-1)}
+ \MarquerPts[Couleur=red,Style=x]{(-1,1)/$A$/below,(-2,2)/$B$/below left}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\pagebreak
+
+\subsection{Récupérer les coordonnées de nœuds}\label{recupcoordo}
+
+Il est également possible, dans l'optique d'une réutilisation de coordonnées, de récupérer les coordonnées d'un nœud (défini ou déterminé).
+
+\smallskip
+
+Les calculs étant effectués en flottant en fonction des unités (re)calculées, les valeurs sont donc approchées !
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only}
+%dans l'environnement GraphiqueTikz
+\RecupererAbscisse{nœud}[\macrox]
+\RecupererOrdonnee{nœud}[\macroy]
+\RecupererCoordonnees{nœud}[\macrox][\macroy]
+\end{tcblisting}
+
+\pagebreak
+
+\section{Commandes spécifiques d'exploitation des courbes}
+
+\subsection{Placement d'images}\label{images}
+
+Il est possible de la placer des points (images) sur une courbe, avec traits de construction éventuels.
+
+La fonction/courbe utilisée doit avoir été déclarée précédemment pour que cette commande fonctionne.
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only}
+%dans l'environnement GraphiqueTikz
+\PlacerImages[clés]{fonction ou courbe}{liste d'abscisses}
+\end{tcblisting}
+
+Les \MontreCode{[clés]}, optionnelles, disponibles sont :
+
+\smallskip
+
+\begin{itemize}
+ \item \MontreCode{Traits} : booléen pour afficher les traits de construction (\MontreCode{false} par défaut) ;
+ \item \MontreCode{Couleurs} : couleur des points/traits, sous la forme \MontreCode{Couleurs} ou \MontreCode{CouleurPoint/CouleurTraits} ;
+ \item \MontreCode{Spline} : booléen pour préciser que la courbe utilisée est définie comme un \textsf{spline} (\MontreCode{false} par défaut).
+\end{itemize}
+
+\smallskip
+
+Le premier argument obligatoire, permet de spécifier :
+
+\smallskip
+
+\begin{itemize}
+ \item le nom de la courbe dans la cas \MontreCode{Spline=true} ;
+ \item le nom de la fonction sinon.
+\end{itemize}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+ [x=0.9cm,y=0.425cm,Xmin=4,Xmax=20,Origx=4,
+ Ymin=40,Ymax=56,Ygrille=2,Ygrilles=1,Origy=40]
+ \TracerAxesGrilles[Elargir=2.5mm,Police=\small]{4,5,...,20}{40,42,...,56}
+ %définition de la fonction + tracé de la courbe
+ \DefinirCourbe[Nom=cf,Debut=5,Fin=19,Trace,Couleur=red]<f>{-2*x+3+24*log(2*x)}
+ %images
+ \PlacerImages[Traits,Couleurs=teal/blue]{f}{6,7,8,9,10}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\pagebreak
+
+\subsection{Détermination d'antécédents}\label{defanteced}
+
+Il est possible de déterminer graphiquement les antécédents d'un réel donné.
+
+La fonction/courbe utilisée doit avoir été déclarée précédemment pour que cette commande fonctionne.
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only}
+%dans l'environnement GraphiqueTikz
+\TrouverAntecedents[clés]{courbe}{k}
+\end{tcblisting}
+
+Les \MontreCode{[clés]}, optionnelles, disponibles sont :
+
+\smallskip
+
+\begin{itemize}
+ \item \MontreCode{Nom} : base du nom des \textbf{nœuds} intersection (\MontreCode{S} par défaut, ce qui donnera \textsf{S-1}, \textsf{S-2}, etc) ;
+ \item \MontreCode{Aff} : booleen pour afficher les points (\MontreCode{true} par défaut) ;
+ \item \MontreCode{Couleur} : couleur des points (\MontreCode{black} par défaut) ;
+ \item \MontreCode{AffDroite} : booleen pour afficher la droite horizontale (\MontreCode{false} par défaut).
+\end{itemize}
+
+\smallskip
+
+Le premier argument obligatoire, permet de spécifier le \textbf{nom} de la courbe.
+
+\smallskip
+
+Le second argument obligatoire, permet de spécifier la valeur à atteindre.
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+ [x=0.9cm,y=0.425cm,Xmin=4,Xmax=20,Origx=4,
+ Ymin=40,Ymax=56,Ygrille=2,Ygrilles=1,Origy=40]
+ \TracerAxesGrilles[Elargir=2.5mm,Police=\small]{4,5,...,20}{40,42,...,56}
+ %définition de la fonction + tracé de la courbe
+ \DefinirCourbe[Nom=cf,Debut=5,Fin=19,Trace,Couleur=red]<f>{-2*x+3+24*log(2*x)}
+ %antécédents
+ \TrouverAntecedents[Couleur=teal,AffDroite,Aff]{cf}{53}
+ %les deux antécédents sont aux nœuds (S-1) et (S-2)
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+%Les \MontreCode{[clés]}, optionnelles, disponibles sont :
+%
+%\smallskip
+%
+%\begin{itemize}
+% \item \MontreCode{Nom} : base du nom des \textbf{nœuds} intersection (\MontreCode{S} par défaut, ce qui donnera \textsf{S-1}, \textsf{S-2}, etc) ;
+% \item \MontreCode{Aff} : booleen pour afficher les points (\MontreCode{true} par défaut) ;
+% \item \MontreCode{Couleur} : couleur des points (\MontreCode{black} par défaut) ;
+% \item \MontreCode{AffDroite} : booleen pour afficher la droite horizontale (\MontreCode{false} par défaut).
+%\end{itemize}
+
+\pagebreak
+
+\subsection{Construction d'antécédents}\label{tracanteced}
+
+Il est possible de construire graphiquement les antécédents d'un réel donné.
+
+La fonction/courbe utilisée doit avoir été déclarée précédemment pour que cette commande fonctionne.
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only}
+%dans l'environnement GraphiqueTikz
+\PlacerAntecedents[clés]{courbe}{k}
+\end{tcblisting}
+
+Les \MontreCode{[clés]}, optionnelles, disponibles sont :
+
+\smallskip
+
+\begin{itemize}
+ \item \MontreCode{Couleurs} : couleur des points/traits, sous la forme \MontreCode{Couleurs} ou \MontreCode{CouleurPoint/CouleurTraits} ;
+ \item \MontreCode{Nom} : nom \textit{éventuel} pour les points d'intersection liés aux antécédents (\MontreCode{vide} par défaut) ;
+ \item \MontreCode{Traits} : booleen pour afficher les traits de construction (\MontreCode{false} par défaut).
+\end{itemize}
+
+\smallskip
+
+Le premier argument obligatoire, permet de spécifier le \textbf{nom} de la courbe.
+
+\smallskip
+
+Le second argument obligatoire, permet de spécifier la valeur à atteindre.
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+ [x=0.9cm,y=0.425cm,Xmin=4,Xmax=20,Origx=4,
+ Ymin=40,Ymax=56,Ygrille=2,Ygrilles=1,Origy=40]
+ \TracerAxesGrilles[Elargir=2.5mm,Police=\small]{4,5,...,20}{40,42,...,56}
+ %définition de la fonction + tracé de la courbe
+ \DefinirCourbe[Nom=cf,Debut=5,Fin=19,Trace,Couleur=red]<f>{-2*x+3+24*log(2*x)}
+ %antécédents
+ \PlacerAntecedents[Couleurs=teal/cyan,Traits,Nom=PO]{cf}{53}
+ \RecupererAbscisse{(PO-1)}[\premsol]
+ \RecupererAbscisse{(PO-2)}[\deuxsol]
+\end{GraphiqueTikz}
+
+Graphiquement, les antécédents de 53 sont (environ) :
+
+\begin{itemize}
+ \item \num{\premsol}
+ \item \num{\deuxsol}
+\end{itemize}
+\end{tcblisting}
+
+\pagebreak
+
+\subsection{Intersections de deux courbes}\label{intersect}
+
+Il est également possible de déterminer (sous forme de nœuds) les éventuels points d'intersection de deux courbes préalablement définies.
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only}
+%dans l'environnement GraphiqueTikz
+\TrouverIntersections[clés]{courbe1}{courbe2}
+\end{tcblisting}
+
+Les \MontreCode{[clés]}, optionnelles, disponibles sont :
+
+\smallskip
+
+\begin{itemize}
+ \item \MontreCode{Nom} : base du nom des \textbf{nœuds} intersection (\MontreCode{S} par défaut, ce qui donnera \textsf{S-1}, \textsf{S-2}, etc) ;
+ \item \MontreCode{Aff} : booléen pour afficher les points (\MontreCode{true} par défaut) ;
+ \item \MontreCode{Couleur} : couleur des points (\MontreCode{black} par défaut).
+\end{itemize}
+
+\smallskip
+
+Le premier argument obligatoire, permet de spécifier le \textbf{nom} de la première courbe.
+
+\smallskip
+
+Le premier argument obligatoire, permet de spécifier le \textbf{nom} de la seconde courbe.
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+ [x=0.9cm,y=0.425cm,Xmin=4,Xmax=20,Origx=4,
+ Ymin=40,Ymax=56,Ygrille=2,Ygrilles=1,Origy=40]
+ \TracerAxesGrilles[Elargir=2.5mm,Police=\small]{4,5,...,20}{40,42,...,56}
+ \DefinirCourbe[Nom=cf,Debut=5,Fin=19,Trace,Couleur=red]<f>{-2*x+3+24*log(2*x)}
+ \DefinirCourbe[Nom=cg,Debut=5,Fin=19,Trace,Couleur=blue]<g>{0.25*(x-12)^2+46}
+ %intersections, nommées (TT-1) et (TT-2)
+ \TrouverIntersections[Nom=TT,Couleur=darkgray,Aff,Traits]{cf}{cg}
+ %récupération des points d'intersection
+ \RecupererCoordonnees{(TT-1)}[\alphaA][\betaA]
+ \RecupererCoordonnees{(TT-2)}[\alphaB][\betaB]
+\end{GraphiqueTikz}\\
+Les solutions de $f(x)=g(x)$ sont $\alpha \approx \num{\alphaA}$ et
+$\beta \approx \num{\alphaB}$.\\
+Les points d'intersection des courbes de $f$ et de $g$ sont donc
+$(\ArrondirNum[2]{\alphaA};\ArrondirNum[2]{\betaA})$ et
+$(\ArrondirNum[2]{\alphaB};\ArrondirNum[2]{\betaB})$.
+\end{tcblisting}
+
+\pagebreak
+
+\subsection{Intégrales (version améliorée)}\label{integr}
+
+On peut également travailler avec des intégrales.
+
+Dans ce cas il est préférable de mettre en évidence le domaine \textbf{avant} les tracés, pour éviter la surimpression par rapport aux courbes/points.
+
+\smallskip
+
+Il est possible de :
+
+\begin{itemize}
+ \item représenter une intégrale \textbf{sous} une courbe définie ;
+ \item représenter une intégrale \textbf{entre} deux courbes ;
+ \item les bornes d'intégration peuvent être des abscisses et/ou des nœuds.
+\end{itemize}
+
+\smallskip
+
+{\small\faBomb} Compte-tenu des différences de traitement entre les courbes par formule, les courbes par interpolation simple ou les courbes par interpolation cubique, les arguments et clés peuvent différer suivant la configuration !
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only}
+%dans l'environnement GraphiqueTikz
+\TracerIntegrale[clés]<options spécifiques>{objet1}[objet2]{A}{B}
+\end{tcblisting}
+
+Les \MontreCode{[clés]} pour la définition ou le tracé, optionnelles, disponibles sont :
+
+\begin{itemize}
+ \item \MontreCode{Couleurs} =: couleurs du remplissage, sous la forme \MontreCode{Couleur} ou \MontreCode{CouleurBord/CouleurFond} (\MontreCode{gray} par défaut) ;
+ \item \MontreCode{Style} : type de remplissage, parmi \MontreCode{remplissage}/\MontreCode{hachures} (\MontreCode{remplissage} par défaut) ;
+ \item \MontreCode{Opacite} : opacité (\MontreCode{0.5} par défaut) du remplissage ;
+ \item \MontreCode{Hachures} : style (\MontreCode{north west lines} par défaut) du remplissage hachures ;
+ \item \MontreCode{Type} : type d'intégrale parmi
+ \begin{itemize}
+ \item \MontreCode{fct} (défaut) pour une intégrale sous une courbe définie par une formule ;
+ \item \MontreCode{spl} pour une intégrale sous une courbe définie par un spline cublique ;
+ \item \MontreCode{fct/fct} pour une intégrale entre deux courbes définie par une formule ;
+ \item \MontreCode{fct/spl} pour une intégrale entre une courbe (dessus) définie par une formule et une courbe (dessous) définie par un spline cubique ;
+ \item etc
+ \end{itemize}
+ \item \MontreCode{Pas} : pas (calculé par défaut sinon) pour le tracé ;
+ \item \MontreCode{Jonction} : jonction des segments (\MontreCode{bevel} par défaut) ;
+ \item \MontreCode{Bornes} : type des bornes parmi :
+ \begin{itemize}
+ \item \MontreCode{abs} pour les bornes données par les abscisses ;
+ \item \MontreCode{noeuds} pour les bornes données par les nœuds ;
+ \item \MontreCode{abs/noeud} pour les bornes données par abscisse et nœud ;
+ \item \MontreCode{noeud/abs} pour les bornes données par nœud et abscisse ;
+ \end{itemize}
+ \item \MontreCode{Bord} : booléen (\MontreCode{true} par défaut) pour afficher les traits latéraux,%
+ \item \MontreCode{NomSpline} : macro (important !) du spline généré précédemment pour un spline en version supérieure ;
+ \item \MontreCode{NomSplineB} : macro (important !) du spline généré précédemment pour un spline en version inférieure ;
+ \item \MontreCode{NomInterpo} : nom (important !) de la courbe d'interpolation générée précédemment, en version supérieure ;
+ \item \MontreCode{NomInterpoB} : nom (important !) de la courbe d'interpolation générée précédemment, en version inférieure ;
+ \item \MontreCode{Tension} : tension pour la courbe d'interpolation générée précédemment, en version supérieure ;
+ \item \MontreCode{TensionB} : tension de la courbe d'interpolation générée précédemment, en version inférieure.
+\end{itemize}
+
+\smallskip
+
+Le premier argument obligatoire est la fonction ou la courbe du spline ou la liste de points d'interpolation.
+
+\smallskip
+
+L'argument suivant, optionnel, est la fonction ou la courbe du spline ou la liste de points d'interpolation.
+
+\smallskip
+
+Les deux derniers arguments obligatoires sont les bornes de l'intégrale, données sous une forme en adéquation avec la clé \MontreCode{Bornes}.
+
+\pagebreak
+
+Dans le cas de courbes définies par des \textit{points}, il est nécessaire de travailler sur des intervalles sur lesquels la première courbe est \textbf{au-dessus} de la deuxième.
+
+Il sera sans doute intéressant de travailler avec les \textit{intersections} dans ce cas.
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+ [x=0.6cm,y=0.06cm,
+ Xmin=0,Xmax=21,Xgrille=1,Xgrilles=0.5,
+ Ymin=0,Ymax=155,Ygrille=10,Ygrilles=5]
+ \TracerAxesGrilles%
+ [Grads=false,Elargir=2.5mm]{}{}
+ \DefinirCourbe[Nom=cf,Debut=1,Fin=20,Couleur=red]<f>{80*x*exp(-0.2*x)}
+ \TracerIntegrale
+ [Bornes=abs,Couleurs=blue/cyan!50]%
+ {f(x)}{3}{12}
+ \TracerCourbe[Couleur=red,Debut=1,Fin=20]{f(x)}
+ \TracerAxesGrilles%
+ [Grille=false,Elargir=2.5mm,Police=\small]{0,1,...,20}{0,10,...,150}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+ [x=1.2cm,y=1.6cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=3,Ygrille=0.5,Ygrilles=0.25]
+ \TracerAxesGrilles[Grads=false,Elargir=2.5mm]{}{}
+ \def\LISTETEST{-6/2/0§-1/-2/0§2/1/0§3.5/0/-1}
+ \DefinirCourbeSpline[Nom=splinetest]{\LISTETEST}
+ \TracerIntegrale[Type=spl,Style=hachures,Couleurs=purple]{splinetest}{-5.75}{-4.75}
+ \TracerIntegrale[Type=spl,Couleurs=blue]{splinetest}{-2}{-1}
+ \TracerIntegrale[Type=spl,Couleurs=orange]{splinetest}{1}{3}
+ \TracerCourbeSpline[Couleur=olive]{\LISTETEST}
+ \TracerAxesGrilles[Grille=false,Elargir=2.5mm]
+ {-7,-6,...,4}%
+ {-3,-2.5,...,3}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\pagebreak
+
+\subsection{Tangentes}\label{tgte}
+
+L'idée de cette commande est de tracer la tangente à une courbe précédemment définie, en spécifiant :
+
+\begin{itemize}
+ \item le point (abscisse ou nœud) en lequel on souhaite travailler ;
+ \item éventuellement le direction (dans le cas d'une discontinuité ou d'une borne) ;
+ \item éventuellement le pas ($h$) du calcul ;
+ \item les \textit{écartements latéraux} pour tracer la tangente.
+\end{itemize}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only}
+%dans l'environnement GraphiqueTikz
+\TracerTangente[clés]{fonction ou courbe}{point}<options traits>
+\end{tcblisting}
+
+Les \MontreCode{[clés]} pour la définition ou le tracé, optionnelles, disponibles sont :
+
+\begin{itemize}
+ \item \MontreCode{Couleurs} =: couleurs des tracés, sous la forme \MontreCode{Couleur} ou \MontreCode{CouleurLigne/CouleurPoint} (\MontreCode{black} par défaut) ;
+ \item \MontreCode{DecG} =: écartement horizontal gauche pour débuter le tracé (\MontreCode{1} par défaut) ;
+ \item \MontreCode{DecD} =: écartement horizontal gauche pour débuter le tracé (\MontreCode{1} par défaut) ;
+ \item \MontreCode{AffPoint} : booléen pour afficher le point support (\MontreCode{false} par défaut) ;
+ \item \MontreCode{Spline} : booléen pour préciser qu'un spline est utilisé (\MontreCode{false} par défaut) ;
+ \item \MontreCode{h} : pas $h$ utilisé pour les calculs (\MontreCode{0.01} par défaut) ;
+ \item \MontreCode{Sens} : permet de sprécifier le \textit{sens} de la tangente, parmi \MontreCode{gd}/\MontreCode{g}/\MontreCode{d} (\MontreCode{gd} par défaut) ;
+ \item \MontreCode{Noeud} : booléen pour préciser qu'un nœud est utilisé (\MontreCode{false} par défaut).
+\end{itemize}
+
+\smallskip
+
+Le premier argument obligatoire est la fonction ou la courbe du spline (le cas échéant).
+
+\smallskip
+
+Le dernier argument obligatoire est le point de travail (version abscisse ou nœud suivant la clé \MontreCode{Noeud}).
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+ [x=0.9cm,y=0.425cm,Xmin=4,Xmax=20,Origx=4,
+ Ymin=40,Ymax=56,Ygrille=2,Ygrilles=1,Origy=40]
+ \TracerAxesGrilles[Elargir=2.5mm,Police=\small]{4,5,...,20}{40,42,...,56}
+ \DefinirCourbe[Nom=cf,Debut=5,Fin=19,Couleur=red,Trace]<f>{-2*x+3+24*log(2*x)}
+ \TrouverAntecedents[Couleur=teal,Nom=JKL,Aff=false]{cf}{53}
+ %tangente
+ \TracerTangente%
+ [Couleurs=cyan/gray,DecG=2.5,DecD=2.5,Noeud,AffPoint]{f}{(JKL-1)}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+ [x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5]
+ \TracerAxesGrilles[Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+ \def\LISTETEST{-6/4/-0.5§-5/2/-2§-4/0/-2§-2/-2/0§1/2/2§3/3.5/0.5}
+ \DefinirCourbeSpline[Nom=splinetest,Trace,Couleur=olive]{\LISTETEST}
+ \TracerTangente[Couleurs=red,Spline,AffPoint]{splinetest}{1}
+ \TracerTangente%
+ [Couleurs=blue,Spline,DecG=1.5,DecD=1.5,AffPoint]{splinetest}{-3}%
+ <pflflechegd>
+ \TracerTangente[Sens=g,Couleurs=orange,Spline,DecG=1.5,AffPoint]{splinetest}{3}
+ \TracerTangente[Sens=d,Couleurs=violet,Spline,DecD=1.5,AffPoint]{splinetest}{-6}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\pagebreak
+
+\section{Commandes spécifiques des fonctions de densité}
+
+\subsection{Loi normale}\label{loinormale}
+
+L'idée est de proposer de quoi travailler avec des lois normales.
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only}
+%dans l'environnement GraphiqueTikz
+\DefinirLoiNormale[clés]<nom fct>{mu}{sigma}
+\TracerLoiNormale[clés]{fct(x)}
+\end{tcblisting}
+
+Les \MontreCode{[clés]}, optionnelles, disponibles sont :
+
+\smallskip
+
+\begin{itemize}
+ \item \MontreCode{Nom} : nom du tracé (\MontreCode{gaussienne} par défaut) ;
+ \item \MontreCode{Trace} : booléen pour tracer la courbe(\MontreCode{false} par défaut) ;
+ \item \MontreCode{Couleur} : couleur du tracé, si demandé (\MontreCode{black} par défaut) ;
+ \item \MontreCode{Debut} : borne inférieure de l'ensemble de définition (\MontreCode{\textbackslash pflxmin} par défaut) ;
+ \item \MontreCode{Fin} : borne inférieure de l'ensemble de définition (\MontreCode{\textbackslash pflxmax} par défaut) ;
+ \item \MontreCode{Pas} : = pas du tracé (il est déterminé \textit{automatiquement} au départ mais peut être modifié).
+\end{itemize}
+
+À noter que l'axe vertical est à adapter en fonction des paramètres de la loi normale.
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+ [x=1.25cm,y=15cm,Origx=5,Xmin=5,Xmax=15,Ymin=0,Ymax=0.3,
+ Ygrille=0.1,Ygrilles=0.05]
+ \TracerAxesGrilles[Elargir=2.5mm]{auto}{auto}
+ \DefinirLoiNormale[Nom=gaussienne]<phi>{10}{1.5}
+ \TracerIntegrale
+ [Bornes=abs,Couleurs=blue/cyan!50]%
+ {phi(x)}{7}{13}
+ \TracerLoiNormale[Couleur=violet,Debut=5,Fin=15]{phi(x)}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\pagebreak
+
+\subsection{Loi du khi deux}\label{loikhideux}
+
+L'idée est de proposer de quoi travailler avec des lois normales.
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only}
+%dans l'environnement GraphiqueTikz
+\DefinirLoiKhiDeux[clés]<nom fct>{k}
+\TracerLoiKhiDeux[clés]{fct(x)}
+\end{tcblisting}
+
+Les \MontreCode{[clés]}, optionnelles, disponibles sont :
+
+\smallskip
+
+\begin{itemize}
+ \item \MontreCode{Nom} : nom du tracé (\MontreCode{gaussienne} par défaut) ;
+ \item \MontreCode{Trace} : booléen pour tracer la courbe(\MontreCode{false} par défaut) ;
+ \item \MontreCode{Couleur} : couleur du tracé, si demandé (\MontreCode{black} par défaut) ;
+ \item \MontreCode{Debut} : borne inférieure de l'ensemble de définition (\MontreCode{\textbackslash pflxmin} par défaut) ;
+ \item \MontreCode{Fin} : borne inférieure de l'ensemble de définition (\MontreCode{\textbackslash pflxmax} par défaut) ;
+ \item \MontreCode{Pas} : = pas du tracé (il est déterminé \textit{automatiquement} au départ mais peut être modifié).
+\end{itemize}
+
+À noter que l'axe vertical est à adapter en fonction du paramètre de la loi du khi deux.
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}[
+ x=1.5cm,y=7.5cm,
+ Xmin=0,Xmax=8,Xgrille=1,Xgrilles=0.5,
+ Ymin=0,Ymax=0.5,Ygrille=0.1,Ygrilles=0.05
+ ]
+ \TracerAxesGrilles[Elargir=2.5mm]{auto}{auto}
+ \DefinirLoiKhiDeux[Couleur=red,Debut=0.25,Trace]<phiA>{1}
+ \DefinirLoiKhiDeux[Couleur=blue,Trace]<phiB>{2}
+ \DefinirLoiKhiDeux[Couleur=orange,Trace]<phiC>{3}
+ \DefinirLoiKhiDeux[Couleur=violet,Trace]<phiD>{4}
+ \DefinirLoiKhiDeux[Couleur=yellow,Trace]<phiE>{5}
+ \DefinirLoiKhiDeux[Couleur=teal,Trace]<phiF>{6}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\pagebreak
+
+\section{Commandes spécifiques des statistiques à deux variables}
+
+\subsection{Le nuage de points}\label{nuage}
+
+En marge des commandes liées aux fonctions, il est également possible de représenter des séries statistiques doubles.
+
+\smallskip
+
+Le paragraphe suivant montre que l'ajout d'une clé permet de rajouter la droite d'ajustement linéaire.
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only}
+%dans l'environnement GraphiqueTikz
+\TracerNuage[clés]{ListeX}{ListeY}
+\end{tcblisting}
+
+La \MontreCode{[clé]} optionnelle est :
+
+\smallskip
+
+\begin{itemize}
+ \item \MontreCode{CouleurNuage} : couleur des points du nuage (\MontreCode{black} par défaut).
+\end{itemize}
+
+\smallskip
+
+Les arguments, obligatoires, permettent de spécifier :
+
+\smallskip
+
+\begin{itemize}
+ \item la liste des abscisses ;
+ \item la liste des ordonnées.
+\end{itemize}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+ [x=0.075cm,y=0.03cm,Xmin=0,Xmax=160,Xgrille=20,Xgrilles=10,
+ Origy=250,Ymin=250,Ymax=400,Ygrille=25,Ygrilles=5]
+ %préparation de la fenêtre
+ \TracerAxesGrilles[Elargir=2.5mm,Police=\small]{0,10,...,160}{250,275,...,400}
+ %nuage de points
+ \TracerNuage[Style=x,CouleurNuage=red]{0,50,100,140}{275,290,315,350}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\subsection{La droite de régression}\label{reglin}
+
+La droite de régression linéaire (obtenue par la méthode des moindres carrés) peut facilement être rajoutée, en utilisant la clé \MontreCode{TracerDroite}.
+
+\smallskip
+
+Dans ce cas, de nouvelles clés sont disponibles :
+
+\smallskip
+
+\begin{itemize}
+ \item \MontreCode{CouleurDroite} : couleur de la droite (\MontreCode{black} par défaut) ;
+ \item \MontreCode{Arrondis} : précision des coefficients (\MontreCode{vide} par défaut) ;
+ \item \MontreCode{Debut} : abscisse initiale du tracé (\MontreCode{\textbackslash pflxmin} par défaut) ;
+ \item \MontreCode{Fin} : abscisse terminale du tracé (\MontreCode{\textbackslash pflxmax} par défaut) ;
+ \item \MontreCode{Nom} : nom du tracé, pour exploitation ultérieure (\MontreCode{reglin} par défaut).
+\end{itemize}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+ [x=0.075cm,y=0.03cm,Xmin=0,Xmax=160,Xgrille=20,Xgrilles=10,
+ Origy=250,Ymin=250,Ymax=400,Ygrille=25,Ygrilles=5]
+ \TracerAxesGrilles[Elargir=2.5mm,Police=\small]{0,10,...,160}{250,275,...,400}
+ %nuage et droite
+ \TracerNuage%
+ [CouleurNuage=red,CouleurDroite=brown,TracerDroite]%
+ {0,50,100,140}{275,290,315,350}
+ %image
+ \PlacerImages[Couleurs=cyan/magenta,Traits]{d}{120}
+ %antécédents
+ \PlacerAntecedents[Style=x,Couleurs=blue/green!50!black,Traits]{reglin}{300}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\pagebreak
+
+\section{Codes source des exemples de la page d'accueil}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}[x=0.85cm,y=0.35cm,Xmin=0,Xmax=10,Ymin=0,Ymax=16]
+ %préparation de la fenêtre
+ \TracerAxesGrilles[Derriere,Elargir=2.5mm,Police=\small]{0,1,...,10}{0,2,...,16}
+ %déf des fonctions avec nom courbe + nom fonction + expression (tracés à la fin !)
+ \DefinirCourbe[Nom=cf]<f>{3*x-6}
+ \DefinirCourbe[Nom=cg]<g>{-(x-6)^2+12}
+ %antécédents et intersection
+ \TrouverIntersections[Aff=false,Nom=K]{cf}{cg}
+ \TrouverAntecedents[AffDroite,Couleur=orange,Nom=I]{cg}{8}
+ \TrouverAntecedents[Aff=false,Nom=J]{cg}{0}
+ %intégrale sous une courbe, avec intersection
+ \TracerIntegrale%
+ [Couleurs=blue/purple,Bornes=noeuds,Style=hachures,Hachures=bricks]%
+ {g(x)}%
+ {(I-2)}{(J-2)}
+ %intégrale entre les deux courbes
+ \TracerIntegrale[Bornes=noeuds,Type=fct/fct]%
+ {f(x)}[g(x)]%
+ {(K-1)}{(K-2)}
+ %tracé des courbes et des points
+ \TracerCourbe[Couleur=red]{f(x)}
+ \TracerCourbe[Couleur=teal]{g(x)}
+ \PlacerPoints<\small>{(K-1)/below right/L,(K-2)/above left/M}%
+ \PlacerPoints[violet]<\small>{(I-1)/above left/D,(I-2)/above right/E}%
+ %tangente
+ \TracerTangente[Couleurs=pink!75!black/yellow,kl=2,kr=2,AffPoint]{g}{5}
+ %images
+ \PlacerImages[Couleurs=cyan]{g}{7,7.25,7.5}
+ %surimpression des axes
+ \TracerAxesGrilles[Devant,Elargir=2.5mm]{0,1,...,10}{0,2,...,16}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\pagebreak
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+ [x=3.5cm,y=4cm,
+ Xmin=0,Xmax=3.5,Xgrille=pi/12,Xgrilles=pi/24,
+ Ymin=-1.05,Ymax=1.05,Ygrille=0.2,Ygrilles=0.05]
+ %préparation de la fenêtre
+ \TracerAxesGrilles[Derriere,Elargir=2.5mm,Format=ntrig/nsqrt]{}{}
+ %rajouter des valeurs
+ \RajouterValeursAxeX{0.25,1.4,3.3}{\num{0.25},\num{1.4},\num{3.3}}
+ %fonction trigo (déf + tracé)
+ \DefinirCourbe[Nom=ccos,Debut=0,Fin=pi]<fcos>{cos(x)}
+ \DefinirCourbe[Nom=csin,Debut=0,Fin=pi]<fsin>{sin(x)}
+ %intégrale
+ \TrouverIntersections[Aff=false,Nom=JKL]{ccos}{csin}
+ \TracerIntegrale%
+ [Bornes=noeud/abs,Type=fct/fct,Couleurs=cyan/cyan!50]%
+ {fsin(x)}[fcos(x)]%
+ {(JKL-1)}{pi}
+ %tracé des courbes
+ \TracerCourbe[Couleur=red,Debut=0,Fin=pi]{fcos(x)}
+ \TracerCourbe[Couleur=olive,Debut=0,Fin=pi]{fsin(x)}
+ %antécédent(s)
+ \PlacerAntecedents[Couleurs=blue/teal!50!black,Traits]{ccos}{-0.25}
+ \PlacerAntecedents[Couleurs=red/magenta!50!black,Traits]{csin}{0.5}
+ \PlacerAntecedents[Couleurs=orange/orange!50!black,Traits]{csin}{sqrt(2)/2}
+ \PlacerAntecedents[Couleurs=green!50!black/green,Traits]{csin}{sqrt(3)/2}
+ %surimpression axes
+ \TracerAxesGrilles[Devant,Format=ntrig/nsqrt]%
+ {pi/6,pi/4,pi/3,pi/2,2*pi/3,3*pi/4,5*pi/6,pi}
+ {0,sqrt(2)/2,1/2,sqrt(3)/2,1,-1,-sqrt(3)/2,-1/2,-sqrt(2)/2}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\newpage
+
+\section{Commandes auxiliaires}
+
+\subsection{Intro}
+
+En marge des commandes purement \textit{graphiques}, quelques commandes auxiliaires sont disponibles :
+
+\begin{itemize}
+ \item une pour formater un nombre avec une précision donnée ;
+ \item une pour travailler sur des nombres aléatoires, avec contraintes.
+\end{itemize}
+
+\subsection{Arrondi formaté}\label{numarrond}
+
+La commande \MontreCode{\textbackslash ArrondirNum} permet de formater, grâce au package \MontreCode{siunitx}, un nombre (ou un calcul), avec une précision donnée. Cela peut être \textit{utile} pour formater des résultats obtenus grâce aux commandes de récupération des coordonnées, par exemple.
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only}
+\ArrondirNum[précision]{calcul xint}
+\end{tcblisting}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\ArrondirNum{1/3}\\
+\ArrondirNum{16.1}\\
+\ArrondirNum[3]{log(10)}\\
+\end{tcblisting}
+
+\subsection{Nombre aléatoire sous contraintes}\label{nbalea}
+
+L'idée de cette deuxième commande est de pouvoir déterminer un nombre aléatoire :
+
+\begin{itemize}
+ \item entier ou décimal ;
+ \item sous contraintes (entre deux valeurs fixées).
+\end{itemize}
+
+Cela peut permettre, par exemple, de travailler sur des courbes avec points \textit{aléatoires}, mais respectant certaines contraintes.
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5,listing only}
+\ChoisirNbAlea(*)[precision (déf 0)]{borne inf}{borne sup}[\macro]
+\end{tcblisting}
+
+La version étoilée prend les contraintes sous forme stricte ($\text{borne inf} < \text{macro} < \text{borne sup}$) alors que la version normale prend les contraintes sous forme large ($\text{borne inf} \leq \text{macro} \leq \text{borne sup}$).
+
+\smallskip
+
+À noter que les \textit{bornes} peuvent être des \textit{macros} existantes !
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+%un nombre (2 chiffres après la virgule) entre 0.75 et 0.95
+%un nombre (2 chiffres après la virgule) entre 0.05 et 0.25
+%un nombre (2 chiffres après la virgule) entre 0.55 et \YrandMax
+%un nombre (2 chiffres après la virgule) entre \YrandMin et 0.45
+\ChoisirNbAlea[2]{0.75}{0.95}[\YrandMax]%
+\ChoisirNbAlea[2]{0.05}{0.25}[\YrandMin]%
+\ChoisirNbAlea*[2]{0.55}{\YrandMax}[\YrandA]%
+\ChoisirNbAlea*[2]{\YrandMin}{0.45}[\YrandB]%
+%vérification
+\num{\YrandMax} \& \num{\YrandMin} \& \num{\YrandA} \& \num{\YrandB}
+\end{tcblisting}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+%un nombre (2 chiffres après la virgule) entre 0.75 et 0.95
+%un nombre (2 chiffres après la virgule) entre 0.05 et 0.25
+%un nombre (2 chiffres après la virgule) entre 0.55 et \YrandMax
+%un nombre (2 chiffres après la virgule) entre \YrandMin et 0.45
+\ChoisirNbAlea[2]{0.75}{0.95}[\YrandMax]%
+\ChoisirNbAlea[2]{0.05}{0.25}[\YrandMin]%
+\ChoisirNbAlea*[2]{0.55}{\YrandMax}[\YrandA]%
+\ChoisirNbAlea*[2]{\YrandMin}{0.45}[\YrandB]%
+%vérification
+\num{\YrandMax} \& \num{\YrandMin} \& \num{\YrandA} \& \num{\YrandB}
+\end{tcblisting}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+%la courbe est prévue pour qu'il y ait 3 antécédents
+\ChoisirNbAlea[2]{0.75}{0.95}[\YrandMax]%
+\ChoisirNbAlea[2]{0.05}{0.25}[\YrandMin]%
+\ChoisirNbAlea*[2]{0.55}{\YrandMax}[\YrandA]%
+\ChoisirNbAlea*[2]{\YrandMin}{0.45}[\YrandB]%
+
+\begin{GraphiqueTikz}
+ [x=0.075cm,y=7.5cm,Xmin=0,Xmax=150,Xgrille=10,Xgrilles=5,
+ Ymin=0,Ymax=1,Ygrille=0.1,Ygrilles=0.05]
+ \TracerAxesGrilles[Dernier,Elargir=2.5mm]{auto}{auto}
+ \DefinirCourbeInterpo[Couleur=red,Trace,Nom=fonctiontest,Tension=0.75]
+ {(0,\YrandA)(40,\YrandMin)(90,\YrandMax)(140,\YrandB)}
+ \TrouverAntecedents[Aff=false,Nom=ANTECED]{fonctiontest}{0.5}
+ \PlacerAntecedents[Couleurs=blue/teal,Traits]{fonctiontest}{0.5}
+ \RecupererAbscisse{(ANTECED-1)}[\Aalpha]
+ \RecupererAbscisse{(ANTECED-2)}[\Bbeta]
+ \RecupererAbscisse{(ANTECED-3)}[\Cgamma]
+\end{GraphiqueTikz}
+
+Les solutions de $f(x)=\num{0.5}$ sont, par lecture graphique :
+$\begin{cases}
+ \alpha \approx \ArrondirNum[0]{\Aalpha} \\
+ \beta \approx \ArrondirNum[0]{\Bbeta} \\
+ \gamma \approx \ArrondirNum[0]{\Cgamma}
+\end{cases}$.
+\end{tcblisting}
+
+\newpage
+
+\section{Liste des commandes}
+
+Les commandes disponibles sont :
+
+\NewDocumentCommand\lstcmd{ m m m }{%
+ \item[\texttt{#1}] : \mintinline{latex}|#2|\hfill{}page \pageref{#3}
+}
+
+\begin{description}
+ \lstcmd{environnement~~}{\begin{GraphiqueTikz}...\end{GraphiqueTikz}}{creaenvt}
+ \lstcmd{axes et grilles}{\TracerAxesGrille}{creaaxesgr}
+ \lstcmd{aj val axes X~~}{\RajouterValeursAxeX}{ajoutvals}
+ \lstcmd{aj val axes Y~~}{\RajouterValeursAxeY}{ajoutvals}
+ \lstcmd{def fonction~~~}{\DefinirCourbe}{deftracfct}
+ \lstcmd{tracé courbe~~~}{\TracerCourbe}{deftracfct}
+ \lstcmd{def interpo~~~~}{\DefinirCourbeInterpo}{deftracinterpo}
+ \lstcmd{tracé interpo~~}{\TracerCourbeInterpo}{deftracinterpo}
+ \lstcmd{def spline~~~~~}{\DefinirCourbeSpline}{deftracfctspline}
+ \lstcmd{tracé spline~~~}{\TracerCourbeSpline}{deftracfctspline}
+ \lstcmd{def points~~~~~}{\DefinirPts}{defpts}
+ \lstcmd{marq pts~~~~~~~}{\MarquerPts}{markpts}
+ \lstcmd{récup absc~~~~~}{\RecupererAbscisse}{recupcoordo}
+ \lstcmd{récup ordo~~~~~}{\RecupererOrdonnee}{recupcoordo}
+ \lstcmd{récup coordos~~}{\RecupererCoordonnees}{recupcoordo}
+ \lstcmd{images~~~~~~~~~}{\PlacerImages}{images}
+ \lstcmd{antécédents~~~~}{\TrouverAntecedents}{defanteced}
+ \lstcmd{antécédents~~~~}{\PlacerAntecedents}{tracanteced}
+ \lstcmd{intersection~~~}{\TrouverIntersections}{intersect}
+ \lstcmd{intégrale~~~~~~}{\TracerIntegrale}{integr}
+ \lstcmd{tangente~~~~~~~}{\TracerTangente}{tgte}
+ \lstcmd{loi normale~~~~}{\DefinirLoiNormale}{loinormale}
+ \lstcmd{loi normale~~~~}{\TracerLoiNormale}{loinormale}
+ \lstcmd{loi khideux~~~~}{\DefinirLoiKhiDeux}{loikhideux}
+ \lstcmd{loi khideux~~~~}{\TracerLoiKhiDeux}{loikhideux}
+ \lstcmd{stats 2 var~~~~}{\TracerNuage}{nuage}
+ \lstcmd{arrondi~~~~~~~~}{\ArrondirNum}{numarrond}
+ \lstcmd{nb aléat~~~~~~~}{\ChoisirNbAlea}{nbalea}
+\end{description}
+
+\pagebreak
+
+\section{Historique}
+
+\begin{quote}
+\begin{verbatim}
+0.1.1 : Densité loi normale et khi deux + Marquage points + Améliorations
+0.1.0 : Version initiale
+\end{verbatim}
+\end{quote}
+
+\end{document} \ No newline at end of file
diff --git a/graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-exemples-integrales.pdf b/graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-exemples-integrales.pdf
new file mode 100644
index 0000000000..5e0354c490
--- /dev/null
+++ b/graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-exemples-integrales.pdf
Binary files differ
diff --git a/graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-exemples-integrales.tex b/graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-exemples-integrales.tex
new file mode 100644
index 0000000000..58fc6473f8
--- /dev/null
+++ b/graphics/pgf/contrib/tkz-grapheur/doc/tkz-grapheur-exemples-integrales.tex
@@ -0,0 +1,251 @@
+% !TeX TXS-program:compile = txs:///arara
+% arara: pdflatex: {shell: yes, synctex: no, interaction: batchmode}
+
+\documentclass[a4paper,french,11pt]{article}
+\usepackage[margin=1cm,includefoot]{geometry}
+\usepackage{tkz-grapheur}
+\usepackage{tcolorbox}
+\tcbuselibrary{skins,minted}
+\usepackage{babel}
+
+\begin{document}
+
+\part*{Exemples des différents cas d'intégrales}
+
+\section{Sous courbe, par défaut}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+ [x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5]
+ \TracerAxesGrilles[Derriere,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+ \DefinirCourbe[Nom=ch]<h>{0.25*(x+2)^2+1}
+ \TracerIntegrale%
+ [Couleurs=blue/cyan,Style=remplissage]%
+ {h(x)} %formule
+ {-5.25}{1.5}
+ \TracerCourbe[Couleur=red]{h(x)}
+ \TracerAxesGrilles[Devant,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\section{Sous courbe d'interpolation}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+ [x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5]
+ \TracerAxesGrilles[Grads=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+ \DefinirListeInterpo{(-6,4)(-2,-2)(3,3.5)}[\interpoA]
+ \DefinirCourbeInterpo[Nom=interpotest,Tension=1.05]{\interpoA}
+ \TracerIntegrale%
+ [NomInterpo=interpotest,Couleurs=blue/cyan,Style=remplissage,Type=itp,Tension=1.05]%
+ {\interpoA} %pointsinterpo
+ {-5.25}{1.5}
+ \TracerCourbeInterpo[Couleur=red,Tension=1.05]{\interpoA}
+ \TracerAxesGrilles[Grille=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\section{Sous spline cubique}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+ [x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5]
+ \TracerAxesGrilles[Grads=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+ \DefinirListeSpline{-6/4/-2§-5/2/-2§-4/0/-2§-2/-2/0§1/2/2§3/3.5/0.5}[\lstsplineA]
+ \DefinirCourbeSpline[Nom=splinetest]{\lstsplineA}<\SplineTeal>
+ \TracerIntegrale%
+ [NomSpline=\SplineTeal,Type=spl,Couleurs=blue/purple,Style=hachures]%
+ {splinetest} %nomcourbespline
+ {-5}{2}
+ \TracerCourbeSpline[Couleur=teal]{\lstsplineA}
+ \TracerAxesGrilles[Grille=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\section{Entre courbes}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+ [x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5]
+ \TracerAxesGrilles[Grads=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+ \DefinirCourbe[Nom=ch]<h>{0.25*(x+2)^2-1}
+ \DefinirCourbe[Nom=ck]<k>{-0.25*x+1}
+ \TrouverIntersections[Nom=ITSC,Aff=false]{ch}{ck}
+ \TracerIntegrale%
+ [Couleurs=olive/pink,Style=remplissage,Type=fct/fct,Bornes=noeud/abs]%
+ {h(x)}[k(x)] %formules
+ {(ITSC-1)}{1.5}
+ \TracerCourbe[Couleur=red]{h(x)}
+ \TracerCourbe[Couleur=blue]{k(x)}
+ \TracerAxesGrilles[Grille=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\section{Entre splines}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+ [x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5]
+ \TracerAxesGrilles[Grads=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+ \DefinirListeSpline{-6/4/-2§-5/2/-2§-4/0/-2§-2/-2/0§1/2/2§3/3.5/0.5}[\lstsplineA]
+ \DefinirListeSpline{-6/-2/3§-2/4/0§3/-1/0}[\lstsplineB]
+ \DefinirCourbeSpline[Nom=splinetestolive]{\lstsplineA}<\SplineOlive>
+ \DefinirCourbeSpline[Nom=splinetestteal]{\lstsplineB}<\SplineTeal>
+ \TrouverIntersections[Nom=ITT,Aff=false]{splinetestteal}{splinetestolive}
+ \TracerIntegrale%
+ [NomSpline=\SplineTeal,NomSplineB=\SplineOlive,Type=spl/spl,Couleurs=blue/purple,Bornes=noeuds]%
+ {splinetestolive} %nomcourbespline
+ [splinetestteal] %nomcourbespline
+ {(ITT-1)}{(ITT-2)}
+ \TracerCourbeSpline[Couleur=teal]{\lstsplineA}
+ \TracerCourbeSpline[Couleur=olive]{\lstsplineB}
+ \TracerAxesGrilles[Grille=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\section{Entre interpolations}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+ [x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5]
+ \TracerAxesGrilles[Grads=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+ \DefinirListeInterpo{(-6,4)(-2,-2)(3,3.5)}[\interpoA]
+ \DefinirCourbeInterpo[Nom=interpotest]{\interpoA}
+ \DefinirListeInterpo{(-6,-2)(-1,4)(3,0)}[\interpoB]
+ \DefinirCourbeInterpo[Nom=interpotesta]{\interpoB}
+ \TracerIntegrale%
+ [NomInterpo=interpotesta,NomInterpoB=interpotest,Type=itp/itp,Couleurs=olive/pink]%
+ {\interpoB} %pointsinterpo
+ [\interpoA] %pointsinterpo
+ {-2}{1}
+ \TracerCourbeInterpo[Couleur=red]{\interpoA}
+ \TracerCourbeInterpo[Couleur=blue]{\interpoB}
+ \TracerAxesGrilles[Grille=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\section{Entre fonction et spline}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+ [x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5]
+ \TracerAxesGrilles[Grads=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+ \DefinirCourbe[Nom=ch]<h>{-0.25*(x+2)^2+3.5}
+ \DefinirListeSpline{-6/4/-2§-5/2/-2§-4/0/-2§-2/-2/0§1/2/2§3/3.5/0.5}[\lstsplineA]
+ \DefinirCourbeSpline[Nom=splineblue]{\lstsplineA}<\Splineblue>
+ \TracerIntegrale%
+ [NomSplineB=\Splineblue,Type=fct/spl,Couleurs=olive/pink]%
+ {h(x)} %formule
+ [splineblue] %nomcourbespline
+ {-3}{0}
+ \TracerCourbe[Couleur=red]{h(x)}
+ \TracerCourbeSpline[Couleur=blue]{\lstsplineA}
+ \TracerAxesGrilles[Grille=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\section{Entre spline et fonction}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+ [x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5]
+ \TracerAxesGrilles[Grads=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+ \DefinirCourbe[Nom=ch]<h>{0.25*(x+2)^2-2}
+ \DefinirListeSpline{-6/4/2§-5/-2/-2§-4/0/2§-2/2/0§1/-2/-2§3/3.5/-0.5}[\lstsplineA]
+ \DefinirCourbeSpline[Nom=splineblue]{\lstsplineA}<\Splineblue>
+ \TracerIntegrale%
+ [NomSpline=\Splineblue,Type=spl/fct,Couleurs=olive/pink]%
+ {splineblue} %nomcourbespline
+ [h(x)] %formule
+ {-3}{-1}
+ \TracerCourbe[Couleur=red]{h(x)}
+ \TracerCourbeSpline[Couleur=blue]{\lstsplineA}
+ \TracerAxesGrilles[Grille=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\section{Entre fonction et interpo}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+ [x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5]
+ \TracerAxesGrilles[Grads=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+ \DefinirCourbe[Nom=cm]<m>{-0.25*(x+2)^2+4}
+ \DefinirListeInterpo{(-6,4)(-5,-2)(-2,1)(1,-2)(3,3)}[\interpoB]
+ \DefinirCourbeInterpo[Nom=interpotestb]{\interpoB}
+ \TracerIntegrale%
+ [NomInterpoB=interpotestb,Type=fct/itp,Couleurs=olive/pink]%
+ {m(x)} %formule
+ [\interpoB] %pointsinterpo
+ {-4}{1}
+ \TracerCourbe[Couleur=red]{m(x)}
+ \TracerCourbeInterpo[Couleur=blue]{\interpoB}
+ \TracerAxesGrilles[Grille=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\section{Entre interpo et fonction}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+ [x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5]
+ \TracerAxesGrilles[Grads=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+ \DefinirCourbe[Nom=courbeQ]<q>{0.25*(x+2)^2-2.5}
+ \DefinirListeInterpo{(-6,-2)(-5,4)(-2,-1)(1,2)(3,-2)}[\interpoA]
+ \DefinirCourbeInterpo[Nom=interpotest]{\interpoA}
+ \TrouverIntersections[Nom=FGH,Aff]{interpotest}{courbeQ}
+ \TracerIntegrale%
+ [NomInterpo=interpotest,Type=itp/fct,Couleurs=olive/pink,Bornes=noeuds]%
+ {\interpoA} %pointsinterpo
+ [q(x)] %formule
+ {(FGH-1)}{(FGH-2)}
+ \TracerCourbe[Couleur=red]{q(x)}
+ \TracerCourbeInterpo[Couleur=blue]{\interpoA}
+ \TracerAxesGrilles[Grille=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\section{Entre spline et interpo}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+ [x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5]
+ \TracerAxesGrilles[Grads=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+ \DefinirListeSpline{-6/-2/2§-3/4/0§3/-2/0}[\lstsplineA]
+ \DefinirCourbeSpline[Nom=splinered]{\lstsplineA}<\Splinered>
+ \DefinirListeInterpo{(-6,4)(-5,-2)(-2,1)(1,-2)(3,3)}[\interpoB]
+ \DefinirCourbeInterpo[Nom=interpotestb]{\interpoB}
+ \TracerIntegrale%
+ [NomInterpoB=interpotestb,NomSpline=\Splinered,Type=spl/itp,Couleurs=olive/pink]%
+ {splinered} %nomcourbespline
+ [\interpoB] %pointsinterpo
+ {-4}{-2}
+ \TracerCourbeSpline[Couleur=red]{\lstsplineA}
+ \TracerCourbeInterpo[Couleur=blue]{\interpoB}
+ \TracerAxesGrilles[Grille=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\section{Entre interpo et spline}
+
+\begin{tcblisting}{listing engine=minted,minted language=latex,colframe=lightgray,colback=lightgray!5}
+\begin{GraphiqueTikz}%
+ [x=0.8cm,y=1cm,Xmin=-7,Xmax=4,Ymin=-3,Ymax=5]
+ \TracerAxesGrilles[Grads=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+ \DefinirListeSpline{-6/4/-2§-3/-2.25/0§3/3/0}[\lstsplineB]
+ \DefinirCourbeSpline[Nom=splineblue]{\lstsplineB}<\Splineblue>
+ \DefinirListeInterpo{(-6,-2)(-5,4)(-2,-1)(1,2)(3,-2.5)}[\interpoA]
+ \DefinirCourbeInterpo[Nom=interpotest]{\interpoA}
+ \TrouverIntersections[Nom=UIO,Aff]{interpotest}{splineblue}
+ \TracerIntegrale%
+ [NomInterpo=interpotest,NomSplineB=\Splineblue,Type=itp/spl,Couleurs=olive/pink,Bornes=noeuds]%
+ {\interpoA} %pointsinterpo
+ [splineblue] %nomcourbespline
+ {(UIO-1)}{(UIO-2)}
+ \TracerCourbeSpline[Couleur=blue]{\lstsplineB}
+ \TracerCourbeInterpo[Couleur=red]{\interpoA}
+ \TracerAxesGrilles[Grille=false,Elargir=2.5mm]{-7,-6,...,4}{-3,-2,...,5}
+\end{GraphiqueTikz}
+\end{tcblisting}
+
+\end{document} \ No newline at end of file
diff --git a/graphics/pgf/contrib/tkz-grapheur/tex/tkz-grapheur.sty b/graphics/pgf/contrib/tkz-grapheur/tex/tkz-grapheur.sty
new file mode 100644
index 0000000000..3e7d949764
--- /dev/null
+++ b/graphics/pgf/contrib/tkz-grapheur/tex/tkz-grapheur.sty
@@ -0,0 +1,1679 @@
+% 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{tkz-grapheur}[2024/05/28 0.1.1 Des outils en TikZ pour travailler comme avec un grapheur]
+
+%====HISTORIQUE
+% v 0.1.1 Densité loi normale + khi deux + Améliorations diverses
+% v 0.1.0 Version initiale [fr]
+
+%====OPTION
+\newif\if@loadsiunitx \@loadsiunitxtrue
+\DeclareOption{nonsiunitx}{\@loadsiunitxfalse}%
+\newif\if@loadtikzbabel \@loadtikzbabeltrue
+\DeclareOption{nontikzbabel}{\@loadtikzbabelfalse}%
+\DeclareOption*{}
+\ProcessOptions\relax
+
+%====BASE
+\RequirePackage{tikz}
+\RequirePackage{ifthen}
+\usetikzlibrary{calc,intersections,patterns,patterns.meta}
+\RequirePackage{simplekv}
+\RequirePackage{xintexpr}
+\RequirePackage{xstring}
+\RequirePackage{listofitems}
+
+%====SIUNITX
+\if@loadsiunitx
+ \RequirePackage{siunitx}
+ \sisetup{locale=FR,output-decimal-marker={,},mode=match,propagate-math-font=true,reset-math-version=false,reset-text-family=false,reset-text-series=false,reset-text-shape=false,text-family-to-math=true,text-series-to-math=true}
+\fi
+
+%====TIKZ.BABEL
+\if@loadtikzbabel
+ \usetikzlibrary{babel}
+\fi
+
+%====COMMANDE POUR NB DECIMAL ALEA ENTRE BORNES
+\NewDocumentCommand\ChoisirNbAlea{ s O{0} m m O{\monbnalea} }{%
+ \def\tmpborneinf{\xinteval{floor(#3)}}%inf=\tmpborneinf\par%
+ \def\tmpbornesup{\xinteval{ceil(#4)}}%sup=\tmpbornesup\par%
+ \xintifboolexpr{#2 == 0}%
+ {%
+ \xdef#5{\fpeval{randint(\tmpborneinf,\tmpbornesup)}}%
+ }%
+ {%
+ \def\tmptest{0}%
+ \whiledo{\tmptest=0}{%
+ \xintifboolexpr{(\tmpbornesup-\tmpborneinf) == 1}%
+ {%
+ \xdef\tmpresalea{\fpeval{\tmpborneinf+round(rand(),#2)}}%
+ }%
+ {%
+ \xdef\tmpresalea{\fpeval{round(randint(\tmpborneinf,\tmpbornesup)+rand(),#2)}}%
+ }%
+ %essai=\tmpresalea\par
+ \IfBooleanTF{#1}%
+ {%
+ \xintifboolexpr{\tmpresalea < #4 'and' \tmpresalea > #3 }{\def\tmptest{1}}{\def\tmptest{0}}%
+ }%
+ {%
+ \xintifboolexpr{\tmpresalea <= #4 'and' \tmpresalea >= #3 }{\def\tmptest{1}}{\def\tmptest{0}}%
+ }%
+ }%
+ \xdef#5{\tmpresalea}%
+ %res=%
+ }%
+}
+
+%====PATCH NUM
+\@ifundefined{ArrondirNum}%
+ {%
+ \NewDocumentCommand\ArrondirNum{ O{2} m}{\num{\xintfloateval{round(#2,#1)}}\relax}%
+ }%
+ {%
+ \RenewDocumentCommand\ArrondirNum{ O{2} m}{\num{\xintfloateval{round(#2,#1)}}\relax}%
+ }%
+
+%====STYLES DE BASE
+\tikzset{pflpoint/.style={line width=0.95pt}}
+\tikzset{pflpointc/.style={radius=1.75pt}}
+\tikzset{pflpointnuage/.style={radius=1.75pt}}
+\tikzset{pflcadre/.style={line width=0.8pt,gray}}
+\tikzset{pflcourbe/.style={line width=1.05pt}}
+\tikzset{pfltrait/.style={line width=0.8pt}}
+\tikzset{pflflecheg/.style={<-,>=latex}}
+\tikzset{pflfleched/.style={->,>=latex}}
+\tikzset{pflflechegd/.style={<->,>=latex}}
+\tikzset{pfltraitantec/.style={line width=0.9pt,densely dashed}}
+\tikzset{pfltraitimg/.style={line width=0.9pt,densely dashed,->,>=latex}}
+\tikzset{pflgrillep/.style={thin,lightgray}}
+\tikzset{pflgrilles/.style={very thin,lightgray}}
+\tikzset{pflaxes/.style={line width=0.8pt,->,>=latex}}
+\tikzset{
+ Xmin/.store in=\pflxmin,Xmin/.default=-3,Xmin=-3,
+ Xmax/.store in=\pflxmax,Xmax/.default=3,Xmax=3,
+ Ymin/.store in=\pflymin,Ymin/.default=-3,Ymin=-3,
+ Ymax/.store in=\pflymax,Ymax/.default=3,Ymax=3,
+ Origx/.store in=\pflOx,Origx/.default=0,Origx=0,
+ Origy/.store in=\pflOy,Origy/.default=0,Origy=0,
+ Xgrille/.store in=\pflgrillex,Xgrille/.default=1,Xgrille=1,
+ Xgrilles/.store in=\pflgrillexs,Xgrilles/.default=0.5,Xgrilles=0.5,
+ Ygrille/.store in=\pflgrilley,Ygrille/.default=1,Ygrille=1,
+ Ygrilles/.store in=\pflgrilleys,Ygrilles/.default=0.5,Ygrilles=0.5
+}
+\tikzset{%
+ pics/pflptcroix/.style args={#1/#2}{
+ code={
+ \draw[pflpoint,rotate=#2] (-#1,0) -- (#1,0);
+ \draw[pflpoint,rotate=#2] (0,-#1) -- (0, #1);
+ }
+ },
+ pics/pflptcroix/.default={2pt/45}
+}
+\tikzset{%
+ pics/pflptcarre/.style args={#1/#2}{
+ code={
+ \filldraw[draw=none,pflpoint,rotate=#2] (-#1,-#1) rectangle (#1,#1) ;
+ }
+ },
+ pics/pflptcarre/.default={2pt/0}
+}
+
+%====CONSTANTE PI pour xint, à voir si incompatibilité...
+\xintdefvar pi:=3.141592653589793238462643;
+
+%===COMMANDE INTERNE POUR FORMATER EN FRACTIONS
+\NewDocumentCommand\FormatterFraction{ s O{} m }{%
+ %*=moins sur le numérateur
+ %2=argument.optionnel[d/t/dec=...]
+ %3=argument mandataire {calcul ou fraction}
+ \def\calculargument{\xintPRaw{\xintIrr{\xinteval{#3}}}}%on calcule et on transforme en A/B
+ \IfSubStr{\calculargument}{/}%on teste si le symbole / apparaît
+ {%si oui := fraction
+ \StrBefore{\calculargument}{/}[\numerateur]%on extrait le numérateur
+ \StrBehind{\calculargument}{/}[\denominateur]%on extrait le dénominateur
+ \ifblank{#2}%
+ {%
+ \IfBooleanTF{#1}%
+ {\ensuremath{\frac{\num{\numerateur}}{\num{\denominateur}}}}%
+ {%
+ \ifthenelse{\numerateur < 0}%
+ {\ensuremath{-\frac{\num{\fpeval{abs(\numerateur)}}}{\num{\denominateur}}}}%
+ {\ensuremath{\frac{\num{\numerateur}}{\num{\denominateur}}}}%
+ }%
+ }%
+ {}%si l'argument optionnel est vide
+ \IfStrEq{#2}{d}%
+ {%
+ \IfBooleanTF{#1}%
+ {\ensuremath{\displaystyle\frac{\num{\numerateur}}{\num{\denominateur}}}}%
+ {%
+ \ifthenelse{\numerateur < 0}%
+ {\ensuremath{-\displaystyle\frac{\num{\fpeval{abs(\numerateur)}}}{\num{\denominateur}}}}%
+ {\ensuremath{\displaystyle\frac{\num{\numerateur}}{\num{\denominateur}}}}%
+ }%
+ }%
+ {}%si l'argument optionnel est vide
+ \IfStrEq{#2}{t}%
+ {%
+ \IfBooleanTF{#1}%
+ {\ensuremath{\tfrac{\num{\numerateur}}{\num{\denominateur}}}}%
+ {%
+ \ifthenelse{\numerateur < 0}%
+ {\ensuremath{-\frac{\num{\fpeval{abs(\numerateur)}}}{\num{\denominateur}}}}%
+ {\ensuremath{\frac{\num{\numerateur}}{\num{\denominateur}}}}%
+ }%
+ }%
+ {}%si l'argument optionnel est vide
+ \IfStrEq{#2}{n}%
+ {%
+ \ensuremath{\nicefrac{\num{\numerateur}}{\num{\denominateur}}}%
+ }%
+ {}%si l'argument optionnel est vide
+ }{%si non := entier
+ \num{\calculargument}%on affiche l'entier, avec le package siunitx
+ }%
+}
+
+%affichage d'un label en radians
+\NewDocumentCommand\FormatterTrigo{ O{t} m }{%étoilée en dfrac
+ \IfStrEq{#2}{0}%cas où l'argument vaut 0
+ {\def\restmp{0}}%
+ {%
+ \StrDel{#2}{*}[\restmpsansmoins]%
+ \StrSubstitute{\restmpsansmoins}{pi}{\pi}[\restmppi]%
+ \IfSubStr{#2}{/}%
+ {%
+ \StrCut{\restmppi}{/}\tmpnum\tmpdenom%
+ \IfSubStr{\tmpnum}{-}%
+ {%
+ \StrDel{\tmpnum}{-}[\restmppinum]%
+ \IfStrEqCase{#1}{%
+ {t}{\def\restmp{-\frac{\restmppinum}{\tmpdenom}}}%
+ {d}{\def\restmp{-\displaystyle\frac{\restmppinum}{\tmpdenom}}}%
+ {n}{\def\restmp{\nicefrac{-\restmppinum}{\tmpdenom}}}%
+ }%
+ }%
+ {%
+ \IfStrEqCase{#1}{%
+ {t}{\def\restmp{\frac{\tmpnum}{\tmpdenom}}}%
+ {d}{\def\restmp{\displaystyle\frac{\tmpnum}{\tmpdenom}}}%
+ {n}{\def\restmp{\nicefrac{\tmpnum}{\tmpdenom}}}%
+ }%
+ }%
+ }%
+ {%
+ \def\restmp{\restmppi}%
+ }%
+ }%
+ \ensuremath{\restmp}%
+}
+
+%====FORMATAGE DES RACINES SIMPLES
+\NewDocumentCommand\FormatterRacine{ O{t} m }{%
+ \IfStrEq{#2}{0}%cas où l'argument vaut 0
+ {\ensuremath{0}}%
+ {%
+ \IfSubStr{#2}{sqrt}%
+ {%
+ \StrDel{#2}{*}[\tmpargbrut]%
+ \StrBetween[1,1]{\tmpargbrut}{sqrt(}{)}[\tmpargnumrac]%
+ \StrBefore{\tmpargbrut}{sqrt}[\tmparavantrac]%
+ \IfStrEqCase{\tmparavantrac}{
+ {}{\xdef\tmparavantrac{}}%
+ {-}{\xdef\tmparavantrac{-}}%
+ }[\xdef\tmparavantrac{\num{\tmparavantrac}}]%
+ \IfSubStr{\tmpargbrut}{/}%
+ {%
+ \StrBehind{\tmpargbrut}{/}[\tmpargdenomrac]%
+ \IfStrEqCase{#1}{%
+ {d}{%
+ \ensuremath{\displaystyle\frac{\tmparavantrac\sqrt{\num{\tmpargnumrac}}}{\num{\tmpargdenomrac}}}%
+ }%
+ {t}{%
+ \ensuremath{\frac{\tmparavantrac\sqrt{\num{\tmpargnumrac}}}{\num{\tmpargdenomrac}}}%
+ }%
+ {n}{%
+ \ensuremath{\nicefrac{\tmparavantrac\sqrt{\num{\tmpargnumrac}}}{\num{\tmpargdenomrac}}}%
+ }%
+ }%
+ }%
+ {%
+ \ensuremath{\tmparavantrac\sqrt{\num{\tmpargnumrac}}}%
+ }%
+ }%
+ {%
+ \FormatterFraction[#1]{#2}%
+ }%
+ }%
+}
+
+%====COMMANDE INTERNE DE CONVERSION
+\ExplSyntaxOn
+ \NewDocumentCommand\ConvertirPtToCm{ m } { \dim_to_decimal_in_unit:nn { #1 } { 1 cm } }
+\ExplSyntaxOff
+
+%====RECUPERER COORDONNEES NOEUD
+\NewDocumentCommand\RecupererAbscisse{ m O{\monabs} }{%
+ \path #1;
+ \pgfgetlastxy{\macrox}{\macroy}%
+ \xdef#2{\xintfloateval{(\ConvertirPtToCm{\macrox})/(\pflxunit)}}%
+}
+\NewDocumentCommand\RecupererOrdonnee{ m O{\monordo} }{%
+ \path #1;
+ \pgfgetlastxy{\macrox}{\macroy}%
+ \xdef#2{\xintfloateval{(\ConvertirPtToCm{\macroy})/(\pflyunit)}}%
+}
+
+\NewDocumentCommand\RecupererCoordonnees{ m O{\monabs} O{\monordo} }{%
+ \RecupererAbscisse{#1}[#2]%
+ \RecupererOrdonnee{#1}[#3]%
+}
+
+%===UNITÉS
+\newcommand\DistanceEntreNoeuds[3][\MyTmpDist]{%
+ \pgfpointdiff{\pgfpointanchor{#2}{center}}
+ {\pgfpointanchor{#3}{center}}
+ % no need to use a new dimen
+ \pgf@xa=\pgf@x
+ \pgf@ya=\pgf@y
+ % to convert from pt to cm
+ \pgfmathparse{veclen(\pgf@xa,\pgf@ya)/28.45274}
+ \global\let#1\pgfmathresult %macro globale
+}
+
+\newcommand\TikZUnites{
+ \coordinate (@0) at (0,0) ;
+ \coordinate (@X) at (1,0) ;
+ \coordinate (@Y) at (0,1) ;
+ \DistanceEntreNoeuds[\pflxunit]{@0}{@X}
+ \DistanceEntreNoeuds[\pflyunit]{@0}{@Y}
+}
+
+%====ENVIRONNEMENT
+\defKV[GraphiqueTikz]{%
+ TailleGrad=\def\pflthickgrad{#1}
+}
+\setKVdefault[GraphiqueTikz]{%
+ AffCadre=false,%
+ TailleGrad=3pt
+}
+
+\NewDocumentEnvironment{GraphiqueTikz}{ O{} D<>{} }%
+%1 = options tikz, classiques
+%2 = clés spécifiques
+{%
+ \restoreKV[GraphiqueTikz]%
+ \setKV[GraphiqueTikz]{#2}%
+ %l'environnement
+ \begin{tikzpicture}[#1]%
+ %unités x/y pour des calculs de coordonnées
+ \TikZUnites
+ %noeuds
+ \coordinate (bbxTop) at (current bounding box.north) ;
+ \coordinate (bbxBottom) at (current bounding box.south) ;
+ \ifboolKV[GraphiqueTikz]{AffCadre}{\draw[pflcadre] ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax}) ;}{}%
+ %back to normal
+}%
+{%
+ \end{tikzpicture}%
+}
+
+%====AXES
+\defKV[GraphiqueTikzAxes]{
+ Format=\def\pflformataxes{#1}
+}
+\setKVdefault[GraphiqueTikzAxes]{%
+ Grille=true,%
+ Elargir=0,%
+ Grads=true,%
+ Origine=false,%
+ Police={},%
+ Format=num,%
+ Traits=true,%
+ Dernier=false,%
+ Derriere=false,%
+ Devant=false
+}
+
+\NewDocumentCommand\FormatterValeurAxex{ m m }{%
+ \IfStrEqCase{#1}{%
+ {num}{\num{#2}}%
+ {annee}{#2}%
+ {frac}{\FormatterFraction{#2}}%
+ {dfrac}{\FormatterFraction[d]{#2}}%
+ {nfrac}{\FormatterFraction[n]{#2}}%
+ {trig}{\FormatterTrigo{#2}}%
+ {dtrig}{\FormatterTrigo[d]{#2}}%
+ {ntrig}{\FormatterTrigo[n]{#2}}%
+ {sqrt}{\FormatterRacine{#2}}%
+ {dsqrt}{\FormatterRacine[d]{#2}}%
+ {nsqrt}{\FormatterRacine[n]{#2}}%
+ }[#2]%
+}
+
+\NewDocumentCommand\FormatterValeurAxey{ m m }{%
+ \IfStrEqCase{#1}{%
+ {num}{\num{#2}}%
+ {annee}{#2}%
+ {frac}{\FormatterRacine{#2}}%
+ {dfrac}{\FormatterFraction[d]{#2}}%
+ {nfrac}{\FormatterFraction[n]{#2}}%
+ {trig}{\FormatterTrigo{#2}}%
+ {dtrig}{\FormatterTrigo[d]{#2}}%
+ {ntrig}{\FormatterTrigo[n]{#2}}%
+ {sqrt}{\FormatterRacine{#2}}%
+ {dsqrt}{\FormatterRacine[d]{#2}}%
+ {nsqrt}{\FormatterRacine[n]{#2}}%
+ }[#2]%
+}
+
+\NewDocumentCommand\TracerAxesGrilles{ s O{} m D<>{#3} m D<>{#5} }{%
+ \restoreKV[GraphiqueTikzAxes]%
+ \setKV[GraphiqueTikzAxes]{#2}%
+ %cas particuliers sous/sur impression
+ \ifboolKV[GraphiqueTikzAxes]{Derriere}%
+ {%
+ \setKV[GraphiqueTikzAxes]{Grads=false}
+ }%
+ {}%
+ \ifboolKV[GraphiqueTikzAxes]{Devant}%
+ {%
+ \setKV[GraphiqueTikzAxes]{Grille=false}
+ }%
+ {}%
+ %suite
+ \IfSubStr{\pflformataxes}{/}%
+ {%
+ \StrCut{\pflformataxes}{/}{\pflformataxex}{\pflformataxey}%
+ }%
+ {%
+ \xdef\pflformataxex{\pflformataxes}\xdef\pflformataxey{\pflformataxes}%
+ }%
+ \ifboolKV[GraphiqueTikzAxes]{Grille}%
+ {%
+ \draw[pflgrilles,xstep=\pflgrillexs,ystep=\pflgrilleys] ({\pflxmin},{\pflymin}) grid ({\pflxmax},{\pflymax});
+ \draw[pflgrillep,xstep=\pflgrillex,ystep=\pflgrilley] ({\pflxmin},{\pflymin}) grid ({\pflxmax},{\pflymax});
+ \ifboolKV[GraphiqueTikzAxes]{Dernier}%
+ {%
+ \draw[pflgrillep] ({\pflxmin},{\pflymax})--({\pflxmax},{\pflymax}) ;
+ \draw[pflgrillep] ({\pflxmax},{\pflymin})--({\pflxmax},{\pflymax}) ;
+ }%
+ {}%
+ }%
+ {}%
+ \draw[pflaxes] ({\pflxmin},{\pflOy}) -- ([xshift={\useKV[GraphiqueTikzAxes]{Elargir}}]{\pflxmax},{\pflOy}) ;
+ \draw[pflaxes] ({\pflOx},{\pflymin}) -- ([yshift={\useKV[GraphiqueTikzAxes]{Elargir}}]{\pflOx},{\pflymax}) ;
+ \IfEq{#3}{auto}%
+ {%
+ \xdef\tmprangexvalues{\xintfloateval{seq(i,i=\pflxmin..[\pflgrillex]..\pflxmax)}}\StrDel{\tmprangexvalues}{ }[\tmprangexvalues]%
+ \xdef\pflformataxex{num}%
+ }%
+ {%
+ \xdef\tmprangexvalues{#3}%
+ }%
+ \IfEq{#5}{auto}%
+ {%
+ \xdef\tmprangeyvalues{\xintfloateval{seq(i,i=\pflymin..[\pflgrilley]..\pflymax)}}\StrDel{\tmprangeyvalues}{ }[\tmprangeyvalues]%
+ \xdef\pflformataxey{num}%
+ }%
+ {%
+ \xdef\tmprangeyvalues{#5}%
+ }%
+ \foreach \x in \tmprangexvalues {\draw[pfltrait] ([yshift=\pflthickgrad]{\x},{\pflOy})--++(0,{-2*\pflthickgrad}) ;}
+ \foreach \y in \tmprangeyvalues {\draw[pfltrait] ([xshift=\pflthickgrad]{\pflOx},{\y})--++({-2*\pflthickgrad},0) ;}
+ \ifboolKV[GraphiqueTikzAxes]{Grads}%
+ {%
+ %origine
+ \ifboolKV[GraphiqueTikzAxes]{Origine}%
+ {%
+ \draw ({\pflOx},{\pflOy}) node[below left,font={\useKV[GraphiqueTikzAxes]{Police}}] {\FormatterValeurAxex{\pflformataxex}{\pflOx}} ;
+ %\draw (\pflOx,\pflOy) node[below left,font={\useKV[GraphiqueTikzAxes]{Police}}] {\ifboolKV[GraphiqueTikzAxes]{Num}{\num{\pflOx}}{\pflOx}} ;
+ }%
+ {}%
+ %graduations x, sauf si auto...
+ \foreach \x in \tmprangexvalues {%
+ \IfBooleanTF{#1}%
+ {%
+ \xintifboolexpr{\x == \pflOx}{}{\draw ([yshift=-\pflthickgrad]{\x},{\pflOy}) node[below,font={\useKV[GraphiqueTikzAxes]{Police}}] {\FormatterValeurAxex{\pflformataxex}{\x}} ;}
+ %\xintifboolexpr{\x == \pflOx}{}{\draw ([yshift=-\pflthickgrad]\x,\pflOy) node[below,font={\useKV[GraphiqueTikzAxes]{Police}}] {\ifboolKV[GraphiqueTikzAxes]{Num}{\num{\x}}{\x}} ;}
+ }%
+ {%
+ \draw ([yshift=-\pflthickgrad]{\x},{\pflOy}) node[below,font={\useKV[GraphiqueTikzAxes]{Police}}] {\FormatterValeurAxex{\pflformataxex}{\x}} ;
+ %\draw ([yshift=-\pflthickgrad]\x,\pflOy) node[below,font={\useKV[GraphiqueTikzAxes]{Police}}] {\ifboolKV[GraphiqueTikzAxes]{Num}{\num{\x}}{\x}} ;
+ }%
+ }%
+ \foreach \y in \tmprangeyvalues {%
+ \IfBooleanTF{#1}%
+ {%
+ \xintifboolexpr{\y == \pflOy}{}{\draw ([xshift=-\pflthickgrad]{\pflOx},{\y}) node[left,font={\useKV[GraphiqueTikzAxes]{Police}}] {\FormatterValeurAxey{\pflformataxey}{\y}} ;}
+ %\xintifboolexpr{\y == \pflOy}{}{\draw ([xshift=-\pflthickgrad]\pflOx,\y) node[left,font={\useKV[GraphiqueTikzAxes]{Police}}] {\ifboolKV[GraphiqueTikzAxes]{Num}{\num{\y}}{\y}} ;}
+ }%
+ {%
+ \draw ([xshift=-\pflthickgrad]{\pflOx},{\y}) node[left,font={\useKV[GraphiqueTikzAxes]{Police}}] {\FormatterValeurAxey{\pflformataxey}{\y}} ;
+ %\draw ([xshift=-\pflthickgrad]\pflOx,\y) node[left,font={\useKV[GraphiqueTikzAxes]{Police}}] {\ifboolKV[GraphiqueTikzAxes]{Num}{\num{\y}}{\y}} ;
+ }%
+ }%
+ }%
+ {}%
+}
+
+%===DEFINIR POINTS
+\setKVdefault[GraphiqueTikzDefPoints]{Couleur=black,Aff=false,Style=o}
+
+\NewDocumentCommand\DefinirPts{ O{} m }{%
+ \restoreKV[GraphiqueTikzDefPoints]%
+ \setKV[GraphiqueTikzDefPoints]{#1}%
+ \foreach \tmpnamept/\tmpxpt/\tmpypt in {#2}{%
+ \coordinate (\tmpnamept) at ({\tmpxpt},{\tmpypt}) ;
+ \ifboolKV[GraphiqueTikzDefPoints]{Aff}%
+ {%
+ \MarquerPts*[Style={\useKV[GraphiqueTikzDefPoints]{Style}},Couleur={\useKV[GraphiqueTikzDefPoints]{Couleur}}]{(\tmpnamept)}
+ %\filldraw[{\useKV[GraphiqueTikzDefPoints]{Couleur}}] (\tmpnamept) circle[pflpointc] ;
+ }%
+ {}%
+ }
+}
+
+\defKV[GraphiqueTikzMarkPoints]{%
+ Couleur=\def\pflcouleurpoints{#1},%
+ Style=\def\pflstylepoints{#1}
+}
+\setKVdefault[GraphiqueTikzMarkPoints]{%
+ Couleur=black,%
+ Taillec=2pt,%
+ Taillex=2pt,%
+ Tailleo=1.75pt,%
+ Style=o
+}
+\NewDocumentCommand\MarquerPts{ s O{} D<>{\normalfont\normalsize} m }{%
+ %étoilée = sans label
+ %2=clés
+ %3=points
+ \restoreKV[GraphiqueTikzMarkPoints]%
+ \setKV[GraphiqueTikzMarkPoints]{#2}%
+ \IfBooleanTF{#1}%
+ {%
+ \IfStrEq{\pflstylepoints}{x}%
+ {%
+ \foreach \Point in {#4} {%
+ \draw[{\useKV[GraphiqueTikzMarkPoints]{Couleur}}] \Point pic{pflptcroix={\useKV[GraphiqueTikzMarkPoints]{Taillex}}/45} ;
+ }%
+ }%
+ {}%
+ \IfStrEq{\pflstylepoints}{+}%
+ {%
+ \foreach \Point in {#4} {%
+ \draw[{\useKV[GraphiqueTikzMarkPoints]{Couleur}}] \Point pic{pflptcroix={\useKV[GraphiqueTikzMarkPoints]{Taillex}}/90} ;
+ }%
+ }%
+ {}%
+ \IfStrEq{\pflstylepoints}{c}%
+ {%
+ \foreach \Point in {#4} {%
+ \filldraw[draw=none,fill={\useKV[GraphiqueTikzMarkPoints]{Couleur}}] \Point pic{pflptcarre={\useKV[GraphiqueTikzMarkPoints]{Taillec}}/0} ;
+ }%
+ }%
+ {}%
+ \IfStrEq{\pflstylepoints}{d}%
+ {%
+ \foreach \Point in {#4} {%
+ \filldraw[draw=none,fill={\useKV[GraphiqueTikzMarkPoints]{Couleur}}] \Point pic{pflptcarre={\useKV[GraphiqueTikzMarkPoints]{Tailleo}}/45} ;
+ }%
+ }%
+ {}%
+ \IfStrEq{\pflstylepoints}{o}%
+ {%
+ \IfSubStr{\pflcouleurpoints}{/}%
+ {%
+ \StrCut{\pflcouleurpoints}{/}{\pflcouleurpointsA}{\pflcouleurpointsB}%
+ \foreach \Point in {#4} {%
+ \filldraw[pfltrait,fill=\pflcouleurpointsB,draw=\pflcouleurpointsA] \Point circle[radius={\useKV[GraphiqueTikzMarkPoints]{Tailleo}}] ;
+ }%
+ }%
+ {%
+ \foreach \Point in {#4} {%
+ \filldraw[\pflcouleurpoints] \Point circle[radius={\useKV[GraphiqueTikzMarkPoints]{Tailleo}}] ;
+ }%
+ }%
+ }%
+ {}%
+ }%
+ {%avec label
+ \IfStrEq{\pflstylepoints}{x}%
+ {%
+ \foreach \Point/\Label/\Pos in {#4} {%
+ \draw[{\useKV[GraphiqueTikzMarkPoints]{Couleur}}] \Point pic{pflptcroix={\useKV[GraphiqueTikzMarkPoints]{Taillex}}/45} node[\Pos,font=#3] {\Label} ;
+ }%
+ }%
+ {}%
+ \IfStrEq{\pflstylepoints}{+}%
+ {%
+ \foreach \Point/\Label/\Pos in {#4} {%
+ \draw[{\useKV[GraphiqueTikzMarkPoints]{Couleur}}] \Point pic{pflptcroix={\useKV[GraphiqueTikzMarkPoints]{Taillex}}/90} node[\Pos,font=#3] {\Label} ;
+ }%
+ }%
+ {}%
+ \IfStrEq{\pflstylepoints}{c}%
+ {%
+ \foreach \Point/\Label/\Pos in {#4} {%
+ \filldraw[draw=none,fill={\useKV[GraphiqueTikzMarkPoints]{Couleur}}] \Point pic{pflptcarre={\useKV[GraphiqueTikzMarkPoints]{Taillec}}/0} node[\Pos,{\useKV[GraphiqueTikzMarkPoints]{Couleur}},font=#3] {\Label} ;
+ }%
+ }%
+ {}%
+ \IfStrEq{\pflstylepoints}{d}%
+ {%
+ \foreach \Point/\Label/\Pos in {#4} {%
+ \filldraw[draw=none,fill={\useKV[GraphiqueTikzMarkPoints]{Couleur}}] \Point pic{pflptcarre={\useKV[GraphiqueTikzMarkPoints]{Tailleo}}/45} node[\Pos,{\useKV[GraphiqueTikzMarkPoints]{Couleur}},font=#3] {\Label} ;
+ }%
+ }%
+ {}%
+ \IfStrEq{\pflstylepoints}{o}%
+ {%
+ \IfSubStr{\pflcouleurpoints}{/}%
+ {%
+ \StrCut{\pflcouleurpoints}{/}{\pflcouleurpointsA}{\pflcouleurpointsB}%
+ \foreach \Point/\Label/\Pos in {#4} {%
+ \draw[pfltrait,\pflcouleurpointsA,fill=\pflcouleurpointsB] \Point circle[radius={\useKV[GraphiqueTikzMarkPoints]{Tailleo}}] node[\Pos,font=#3] {\Label} ;
+ }%
+ }%
+ {%
+ \foreach \Point/\Label/\Pos in {#4} {%
+ \filldraw[\pflcouleurpoints] \Point circle[radius={\useKV[GraphiqueTikzMarkPoints]{Tailleo}}] node[\Pos,font=#3] {\Label} ;
+ }%
+ }%
+ }%
+ {}%
+ }%
+}
+
+%===AJOUTER DES VALEURS MANUELLEMENT
+\NewDocumentCommand\RajouterValeursAxeX{ O{} m m }{%
+ \restoreKV[GraphiqueTikzAxes]%
+ \setKV[GraphiqueTikzAxes]{#1}%
+ \ifboolKV[GraphiqueTikzAxes]{Traits}{\foreach \x in {#2}{\draw[pfltrait] ([yshift=\pflthickgrad]{\x},{\pflOy})--++(0,{-2*\pflthickgrad}) ;}}{}%
+ \readlist*\LstValX{#2}%
+ \readlist*\LstValFmtX{#3}%
+ \foreach \i in {1,...,\LstValXlen}{%
+ \itemtomacro\LstValX[\i]\mavalx%
+ \itemtomacro\LstValFmtX[\i]\mavalfmtx%
+ \draw ([yshift=-\pflthickgrad]{\mavalx},{\pflOy}) node[below,font={\useKV[GraphiqueTikzAxes]{Police}}] {\mavalfmtx} ;
+ }%
+}
+
+\NewDocumentCommand\RajouterValeursAxeY{ O{} m m }{%
+ \restoreKV[GraphiqueTikzAxes]%
+ \setKV[GraphiqueTikzAxes]{#1}%
+ \ifboolKV[GraphiqueTikzAxes]{Traits}{\foreach \y in {#2}{\draw[pfltrait] ([xshift=\pflthickgrad]{\pflOx},{\y})--++({-2*\pflthickgrad},0) ;}}{}%
+ \readlist*\LstValY{#2}%
+ \readlist*\LstValFmtY{#3}%
+ \foreach \i in {1,...,\LstValXlen}{%
+ \itemtomacro\LstValY[\i]\mavaly%
+ \itemtomacro\LstValFmtY[\i]\mavalfmty%
+ \draw ([xshift=-\pflthickgrad]{\pflOx},{\mavaly}) node[left,font={\useKV[GraphiqueTikzAxes]{Police}}] {\mavalfmty} ;
+ }%
+}
+
+%====FONCTIONS ET COURBES 'classique + interpo + spline'
+\defKV[GraphiqueTikzCourbe]{%
+ Pas=\def\pflstepcurve{#1},%
+ Nom=\def\pflnamecurve{#1}
+}
+\setKVdefault[GraphiqueTikzCourbe]{%
+ Couleur=black,%
+ Debut={\pflxmin},%
+ Fin={\pflxmax},%
+ Pas={},%
+ Clip=true,%
+ Nom={},%
+ Trace=false,%
+ Tension=0.5
+}
+
+\NewDocumentCommand\DefinirFonction{ O{} D<>{f} m }{%old version
+ \restoreKV[GraphiqueTikzCourbe]%
+ \setKV[GraphiqueTikzCourbe]{#1}%
+ \xintdeffloatfunc #2(x) := #3 ;
+ \IfStrEq{\pflstepcurve}{}%
+ {%
+ \xdef\pflstepcurve{\xintfloateval{((\useKV[GraphiqueTikzCourbe]{Fin})-(\useKV[GraphiqueTikzCourbe]{Debut}))/100}}%
+ }%
+ {}%
+ \ifboolKV[GraphiqueTikzCourbe]{Clip}{\begin{scope}\clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax});}{}
+ \clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax});
+ \ifboolKV[GraphiqueTikzCourbe]{Trace}%
+ {%
+ \path[draw,pflcourbe,{\useKV[GraphiqueTikzCourbe]{Couleur}},name path global=\pflnamecurve] plot[smooth] coordinates {%
+ \xintthecoords\xintfloatexpr
+ seq((x,#2(x)),x={\useKV[GraphiqueTikzCourbe]{Debut}}..[\pflstepcurve]..{\useKV[GraphiqueTikzCourbe]{Fin}},{\useKV[GraphiqueTikzCourbe]{Fin}})
+ \relax
+ };
+ }%
+ {%
+ \path[draw=none,pflcourbe,{\useKV[GraphiqueTikzCourbe]{Couleur}},name path global=\pflnamecurve] plot[smooth] coordinates {%
+ \xintthecoords\xintfloatexpr
+ seq((x,#2(x)),x={\useKV[GraphiqueTikzCourbe]{Debut}}..[\pflstepcurve]..{\useKV[GraphiqueTikzCourbe]{Fin}},{\useKV[GraphiqueTikzCourbe]{Fin}})
+ \relax
+ };
+ }%
+ \ifboolKV[GraphiqueTikzCourbe]{Clip}{\end{scope}}{}
+}
+
+\NewDocumentCommand\DefinirCourbe{ O{} D<>{f} m }{%
+ \restoreKV[GraphiqueTikzCourbe]%
+ \setKV[GraphiqueTikzCourbe]{#1}%
+ \xintdeffloatfunc #2(x) := #3 ;
+ \IfStrEq{\pflstepcurve}{}%
+ {%
+ \xdef\pflstepcurve{\xintfloateval{((\useKV[GraphiqueTikzCourbe]{Fin})-(\useKV[GraphiqueTikzCourbe]{Debut}))/100}}%
+ }%
+ {}%
+ \ifboolKV[GraphiqueTikzCourbe]{Clip}{\begin{scope}\clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax});}{}
+ \clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax});
+ \ifboolKV[GraphiqueTikzCourbe]{Trace}%
+ {%
+ \path[draw,pflcourbe,{\useKV[GraphiqueTikzCourbe]{Couleur}},name path global=\pflnamecurve] plot[smooth] coordinates {%
+ \xintthecoords\xintfloatexpr
+ seq((x,#2(x)),x={\useKV[GraphiqueTikzCourbe]{Debut}}..[\pflstepcurve]..{\useKV[GraphiqueTikzCourbe]{Fin}},{\useKV[GraphiqueTikzCourbe]{Fin}})
+ \relax
+ };
+ }%
+ {%
+ \path[draw=none,pflcourbe,{\useKV[GraphiqueTikzCourbe]{Couleur}},name path global=\pflnamecurve] plot[smooth] coordinates {%
+ \xintthecoords\xintfloatexpr
+ seq((x,#2(x)),x={\useKV[GraphiqueTikzCourbe]{Debut}}..[\pflstepcurve]..{\useKV[GraphiqueTikzCourbe]{Fin}},{\useKV[GraphiqueTikzCourbe]{Fin}})
+ \relax
+ };
+ }%
+ \ifboolKV[GraphiqueTikzCourbe]{Clip}{\end{scope}}{}
+}
+
+\NewDocumentCommand\TracerCourbe{ O{} D<>{} m }{%
+ \restoreKV[GraphiqueTikzCourbe]%
+ \setKV[GraphiqueTikzCourbe]{#1}%
+ \IfStrEq{\pflstepcurve}{}%
+ {%
+ \xdef\pflstepcurve{\xintfloateval{((\useKV[GraphiqueTikzCourbe]{Fin})-(\useKV[GraphiqueTikzCourbe]{Debut}))/100}}%
+ }%
+ {}%
+ \ifboolKV[GraphiqueTikzCourbe]{Clip}{\begin{scope}\clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax});}{}
+ \IfEq{\pflnamecurve}{}%
+ {%
+ \draw[pflcourbe,{\useKV[GraphiqueTikzCourbe]{Couleur}}] plot[smooth] coordinates {%
+ \xintthecoords\xintfloatexpr
+ seq((x,#3),x={\useKV[GraphiqueTikzCourbe]{Debut}}..[\pflstepcurve]..{\useKV[GraphiqueTikzCourbe]{Fin}},{\useKV[GraphiqueTikzCourbe]{Fin}})
+ \relax
+ };
+ }%
+ {%
+ \path[draw,pflcourbe,{\useKV[GraphiqueTikzCourbe]{Couleur}},name path global=\pflnamecurve] plot[smooth] coordinates {%
+ \xintthecoords\xintfloatexpr
+ seq((x,#3),x={\useKV[GraphiqueTikzCourbe]{Debut}}..[\pflstepcurve]..{\useKV[GraphiqueTikzCourbe]{Fin}},{\useKV[GraphiqueTikzCourbe]{Fin}})
+ \relax
+ };
+ }%
+ \ifboolKV[GraphiqueTikzCourbe]{Clip}{\end{scope}}{}
+}
+
+\NewDocumentCommand\DefinirListeInterpo{ m O{\malisteinterpo} }{%
+ \def#2{#1}%
+}
+
+\NewDocumentCommand\DefinirCourbeInterpo{ O{} m }{%
+ \restoreKV[GraphiqueTikzCourbe]%
+ \setKV[GraphiqueTikzCourbe]{#1}%
+ \begin{scope}
+ \ifboolKV[GraphiqueTikzCourbe]{Trace}%
+ {%
+ \path[draw,pflcourbe,{\useKV[GraphiqueTikzCourbe]{Couleur}},name path global=\pflnamecurve] plot[smooth,tension={\useKV[GraphiqueTikzCourbe]{Tension}}] coordinates {#2};
+ }%
+ {%
+ \path[draw=none,pflcourbe,{\useKV[GraphiqueTikzCourbe]{Couleur}},name path global=\pflnamecurve] plot[smooth,tension={\useKV[GraphiqueTikzCourbe]{Tension}}] coordinates {#2};
+ }%
+ \end{scope}
+}
+
+\NewDocumentCommand\TracerCourbeInterpo{ O{} m }{%
+ %2=liste
+ \restoreKV[GraphiqueTikzCourbe]%
+ \setKV[GraphiqueTikzCourbe]{#1}%
+ \begin{scope}
+ \draw[pflcourbe,{\useKV[GraphiqueTikzCourbe]{Couleur}}] plot [smooth,tension={\useKV[GraphiqueTikzCourbe]{Tension}}] coordinates {#2} ;
+ \end{scope}
+}
+
+\NewDocumentCommand\DefinirListeSpline{ m O{\malistespline} }{%
+ \def#2{#1}%
+}
+
+\newcommand\pflextractcoeff[2]{%1=liste,2=numero
+ \setsepchar{§}%
+ \readlist*\lcoeffs{#1}
+ \ifnum \lcoeffslen=1
+ \def\COEFFA{#1}
+ \def\COEFFB{#1}
+ \else
+ \itemtomacro\lcoeffs[#2]\COEFF
+ \IfSubStr{\COEFF}{/}%
+ {\StrCut{\COEFF}{/}{\COEFFA}{\COEFFB}}%
+ {\def\COEFFA{\COEFF}\def\COEFFB{\COEFF}}
+ \fi
+}
+
+\defKV[GraphiqueTikzSpline]{%
+ Nom=\def\pflsplinename{#1},%
+ Coeffs=\def\pflsplinecoeffs{#1}
+}
+
+\setKVdefault[GraphiqueTikzSpline]{%
+ Nom=spline,%
+ Couleur=black,%
+ Coeffs=3,%
+ Trace=false
+}
+
+\NewDocumentCommand\GenererSpline{ m m O{\monspline} }{%
+ %1=liste
+ \setsepchar[.]{§./}%
+ \readlist*\SPLlistepoints{#1}%
+ %les données
+ \def\tmpsplinenumdeb{1}
+ \def\tmpsplinenumfin{\SPLlistepointslen}%
+ \pflextractcoeff{#2}{\tmpsplinenumdeb}%
+ %nb de calculs
+ \def\SPLnbsplines{\inteval{\tmpsplinenumfin-1}}%
+ %extraction des coordonnées
+ \itemtomacro\SPLlistepoints[\tmpsplinenumdeb,1]\xa%
+ \itemtomacro\SPLlistepoints[\tmpsplinenumdeb,2]\ya%
+ \itemtomacro\SPLlistepoints[\tmpsplinenumdeb,3]\fprimea%
+ \itemtomacro\SPLlistepoints[\tmpsplinenumdeb,1]\xb%
+ \itemtomacro\SPLlistepoints[\tmpsplinenumdeb,2]\yb%
+ \itemtomacro\SPLlistepoints[\tmpsplinenumdeb,3]\fprimeb%
+ \xdef#3{(\xa,\ya) ..controls +({atan \fprimea}:{(\xb-\xa)/\COEFFA}) and +({-180 + atan \fprimeb}:{(\xb-\xa)/\COEFFA}).. (\xb,\yb)}%
+ \foreach \i in {\tmpsplinenumdeb,...,\SPLnbsplines}{%
+ %extraction des coeffs de compensation
+ \pflextractcoeff{#2}{\i}%
+ \def\j{\inteval{\i+1}}%
+ \itemtomacro\SPLlistepoints[\i,1]\xa%
+ \itemtomacro\SPLlistepoints[\i,2]\ya%
+ \itemtomacro\SPLlistepoints[\i,3]\fprimea%
+ \itemtomacro\SPLlistepoints[\j,1]\xb%
+ \itemtomacro\SPLlistepoints[\j,2]\yb%
+ \itemtomacro\SPLlistepoints[\j,3]\fprimeb%
+ \xdef#3{#3 ..controls +({atan \fprimea}:{(\xb-\xa)/\COEFFA}) and +({-180 + atan \fprimeb}:{(\xb-\xa)/\COEFFB}).. (\xb,\yb)}%
+ }%
+}
+
+\NewDocumentCommand\DefinirCourbeSpline{ O{} m D<>{\monspline} }{%
+ %1=liste
+ \restoreKV[GraphiqueTikzSpline]%
+ \setKV[GraphiqueTikzSpline]{#1}%
+ \GenererSpline{#2}{\pflsplinecoeffs}[#3]%
+ \begin{scope}
+ \ifboolKV[GraphiqueTikzSpline]{Trace}%
+ {%
+ \path[draw,pflcourbe,{\useKV[GraphiqueTikzSpline]{Couleur}},name path global=\pflsplinename] #3 ;
+ }%
+ {%
+ \path[draw=none,pflcourbe,name path global=\pflsplinename] #3 ;
+ }%
+ \end{scope}
+}
+
+\NewDocumentCommand\DefinirSpline{ O{} m D<>{\monspline} }{%old version
+ %1=liste
+ \restoreKV[GraphiqueTikzSpline]%
+ \setKV[GraphiqueTikzSpline]{#1}%
+ \GenererSpline{#2}{\pflsplinecoeffs}[#3]%
+ \begin{scope}
+ \ifboolKV[GraphiqueTikzSpline]{Trace}%
+ {%
+ \path[draw,pflcourbe,{\useKV[GraphiqueTikzSpline]{Couleur}},name path global=\pflsplinename] #3 ;
+ }%
+ {%
+ \path[draw=none,pflcourbe,name path global=\pflsplinename] #3 ;
+ }%
+ \end{scope}
+}
+
+\NewDocumentCommand\TracerCourbeSpline{ O{} m D<>{\monspline} }{%
+ %1=liste
+ \restoreKV[GraphiqueTikzSpline]%
+ \setKV[GraphiqueTikzSpline]{#1}%
+ \GenererSpline{#2}{\pflsplinecoeffs}[#3]%
+ \begin{scope}
+ \draw[pflcourbe,{\useKV[GraphiqueTikzSpline]{Couleur}}] #3 ;
+ \end{scope}
+}
+
+\NewDocumentCommand\TracerSpline{ O{} m D<>{\monspline} }{%old version
+ %1=liste
+ \restoreKV[GraphiqueTikzSpline]%
+ \setKV[GraphiqueTikzSpline]{#1}%
+ \GenererSpline{#2}{\pflsplinecoeffs}[#3]%
+ \begin{scope}
+ \draw[pflcourbe,{\useKV[GraphiqueTikzSpline]{Couleur}}] #3 ;
+ \end{scope}
+}
+
+%===INTERSECTION & ANTÉCÉDENTS
+\defKV[GraphiqueTikzIntersect]{%
+ Nom=\def\pflintercurves{#1}
+}
+\setKVdefault[GraphiqueTikzIntersect]{%
+ Nom=S,
+ Aff=true,
+ Couleur=black,
+ AffDroite=false,%
+ Traits=false,%
+ Style=o
+}
+
+\NewDocumentCommand\TrouverIntersections{ O{} m m D<>{\myt} }{%
+ \restoreKV[GraphiqueTikzIntersect]%
+ \setKV[GraphiqueTikzIntersect]{#1}%
+ \path[name intersections={of=#2 and #3,name=\pflintercurves,total=\t}] \pgfextra{\xdef#4{\t}};
+ \ifboolKV[GraphiqueTikzIntersect]{Aff}%
+ {%
+ \xintifboolexpr{#4 == 0}{}%
+ {%
+ \foreach \i in {1,...,#4}{%
+ \ifboolKV[GraphiqueTikzIntersect]{Traits}%
+ {%
+ \draw[pfltraitimg,{\useKV[GraphiqueTikzIntersect]{Couleur}}]let \p1 = (\pflintercurves-\i) in (\pflintercurves-\i) -- ({\x1},{\pflOy}) ;
+ }%
+ {}%
+ \MarquerPts*[Style={\useKV[GraphiqueTikzIntersect]{Style}},Couleur={\useKV[GraphiqueTikzIntersect]{Couleur}}]{(\pflintercurves-\i)}
+ %\filldraw[{\useKV[GraphiqueTikzIntersect]{Couleur}}] (\pflintercurves-\i) circle[pflpointc] ;
+ }
+ }%
+ }%
+ {}%
+}
+
+\NewDocumentCommand\TrouverAntecedents{ O{} m m D<>{\myantec} }{%
+ \restoreKV[GraphiqueTikzIntersect]%
+ \setKV[GraphiqueTikzIntersect]{#1}%
+ \begin{scope}
+ \clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax});
+ \ifboolKV[GraphiqueTikzIntersect]{AffDroite}%
+ {%
+ \path[draw,{\useKV[GraphiqueTikzIntersect]{Couleur}},pflcourbe,name path=tmpanteced] ({\pflxmin},{#3})--({\pflxmax},{#3}) ;
+ }%
+ {%
+ \path[draw=none,pflcourbe,name path=tmpanteced] ({\pflxmin},{#3})--({\pflxmax},{#3}) ;
+ }%
+ \path[name intersections={of=#2 and tmpanteced,name=\pflintercurves,total=\t}] \pgfextra{\xdef#4{\t}};
+ \ifboolKV[GraphiqueTikzIntersect]{Aff}%
+ {%
+ \xintifboolexpr{#4 == 0}{}%
+ {%
+ \foreach \i in {1,...,#4}{%
+ \MarquerPts*[Style={\useKV[GraphiqueTikzIntersect]{Style}},Couleur={\useKV[GraphiqueTikzIntersect]{Couleur}}]{(\pflintercurves-\i)}
+ %\filldraw[{\useKV[GraphiqueTikzIntersect]{Couleur}}] (\pflintercurves-\i) circle[pflpointc] ;
+ }
+ }%
+ }%
+ {}%
+ \end{scope}
+}
+
+%====INTÉGRALES
+%v2 avec modification de la clé [Type=...] ?
+\defKV[GraphiqueTikzIntegr]{%
+ Couleurs=\def\pfldomtikzcolors{#1},%
+ Style=\def\pfldomtikzstyle{#1},%
+ Opacite=\def\pfldomtikzopac{#1},%
+ Hachures=\def\pfldomtikzhatch{#1},%
+ Type=\def\pfldomtikztype{#1},%
+ Pas=\def\pflstepcurve{#1},%
+ Bornes=\def\pflintbornes{#1},%
+ Jonction=\def\pfldomtikzjoin{#1},%
+ NomInterpo=\def\pfldomtikznameinterpo{#1},%
+ NomInterpoB=\def\pfldomtikznameinterpob{#1},%
+ NomSpline=\def\pfldomtikznamespline{#1},%
+ NomSplineB=\def\pfldomtikznamesplineb{#1}
+}
+\setKVdefault[GraphiqueTikzIntegr]{%
+ Couleurs=gray,%
+ Style=remplissage,%
+ Opacite=0.5,%
+ Hachures={north west lines},%
+ Type=fct,%
+ Pas={},%
+ Jonction=bevel,%
+ Bornes=abs,%
+ Bord=true,%
+ Spline=false,%
+ SplineB=false,%
+ NomInterpo={\moninterpo},%
+ NomInterpoB={\moninterpoB},%
+ NomSpline={\monspline},%
+ NomSplineB={\monsplineB},%
+ Tension=0.5,%
+ TensionB=0.5
+}
+
+\NewDocumentCommand\TracerIntegrale{ O{} D<>{} m O{0} m m }{%
+ %1 = clés
+ %2 = options particulières tikz
+ %3 = fonction, en tikz
+ %4 = fonction n°2 éventuelle
+ %de #5 à #6
+ \restoreKV[GraphiqueTikzIntegr]% revenir au valeurs par défaut
+ \setKV[GraphiqueTikzIntegr]{#1}% lit les arguments optionnels
+ %les couleurs
+ \IfSubStr{\pfldomtikzcolors}{/}%
+ {%
+ \StrCut{\pfldomtikzcolors}{/}{\pfldomtikzcolorbord}{\pfldomtikzcolorfond}
+ }%
+ {%
+ \xdef\pfldomtikzcolorbord{\pfldomtikzcolors}\xdef\pfldomtikzcolorfond{\pfldomtikzcolors}
+ }%
+ \ifboolKV[GraphiqueTikzIntegr]{Bord}%
+ {%
+ \tikzset{integralebordtikzstyle/.style={draw=\pfldomtikzcolorbord}}
+ }%
+ {%
+ \tikzset{integralebordtikzstyle/.style={draw=none}}
+ }%
+ \IfStrEq{\pfldomtikzstyle}{hachures}%
+ {%
+ \tikzset{integraletikzstyle/.style={pfltrait,pattern=\pfldomtikzhatch,pattern color=\pfldomtikzcolorfond,line join=\pfldomtikzjoin}}
+ }%
+ {}%
+ \IfStrEq{\pfldomtikzstyle}{remplissage}%
+ {%
+ \tikzset{integraletikzstyle/.style={pfltrait,fill=\pfldomtikzcolorfond,fill opacity=\pfldomtikzopac,line join=\pfldomtikzjoin}}
+ }%
+ {}%
+ %extraction des infos x/y
+ \IfStrEqCase{\pflintbornes}{%
+ {abs}%
+ {%
+ \xdef\absnoeudA{#5}%
+ \xdef\absnoeudB{#6}%
+ }%
+ {noeuds}%
+ {%
+ \path #5;
+ \pgfgetlastxy{\macrox}{\macroy}%
+ \xdef\absnoeudA{\xintfloateval{(\ConvertirPtToCm{\macrox})/(\pflxunit)}}%
+ \path #6;
+ \pgfgetlastxy{\macrox}{\macroy}%
+ \xdef\absnoeudB{\xintfloateval{(\ConvertirPtToCm{\macrox})/(\pflxunit)}}%
+ }%
+ {abs/noeud}%
+ {%
+ \xdef\absnoeudA{#5}%
+ \path #6;
+ \pgfgetlastxy{\macrox}{\macroy}%
+ \xdef\absnoeudB{\xintfloateval{(\ConvertirPtToCm{\macrox})/(\pflxunit)}}%
+ }%
+ {noeud/abs}%
+ {%
+ \path #5;
+ \pgfgetlastxy{\macrox}{\macroy}%
+ \xdef\absnoeudA{\xintfloateval{(\ConvertirPtToCm{\macrox})/(\pflxunit)}}%
+ \xdef\absnoeudB{#6}%
+ }%
+ }%
+ %suite avec les nbs points
+ \IfStrEq{\pflstepcurve}{}%
+ {%
+ \xdef\pflstepcurve{\xintfloateval{((\absnoeudB)-(\absnoeudA))/100}}%
+ }%
+ {}%
+ %TRACÉSen fonction des types de courbes
+ \IfStrEq{\pfldomtikztype}{fct}%
+ {%OK
+ \begin{scope}
+ \clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax});
+ \draw[integraletikzstyle,integralebordtikzstyle,#2] ({\absnoeudA},{\pflOy}) -- plot[smooth] coordinates {\xintthecoords\xintfloatexpr seq((x,#3),x=\absnoeudA..[\pflstepcurve]..\absnoeudB,\absnoeudB)\relax} -- ({\absnoeudB},{\pflOy}) -- cycle ;
+ \end{scope}
+ }%
+ {}%
+ \IfStrEq{\pfldomtikztype}{spl}%avec 3=courbe spline + clé [Spline] à utiliser !
+ {%OK
+ \begin{scope}
+ \clip ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ;
+ \filldraw[integraletikzstyle,integralebordtikzstyle,#2] ({\absnoeudA},{\pflOy}) -- \pfldomtikznamespline -- ({\absnoeudB},{\pflOy}) -- cycle ;
+ \end{scope}
+ \path[draw=none,pflcourbe,name path=tmpintbornea] ({\absnoeudA},{\pflymin})--({\absnoeudA},{\pflymax}) ;
+ \path[name intersections={of=#3 and tmpintbornea,name=YYY}] ;
+ \draw[\pfldomtikzcolorbord,pfltrait] ({\absnoeudA},{\pflOy})-- (YYY-1) ;
+ \path[draw=none,pflcourbe,name path=tmpintborneb] ({\absnoeudB},{\pflymin})--({\absnoeudB},{\pflymax}) ;
+ \path[name intersections={of=#3 and tmpintborneb,name=ZZZ}] ;
+ \draw[\pfldomtikzcolorbord,pfltrait] ({\absnoeudB},{\pflOy})-- (ZZZ-1) ;
+ }%
+ {}%
+ \IfStrEq{\pfldomtikztype}{itp}%avec 3=courbe interpo
+ {%OK
+ \begin{scope}
+ \clip ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ;
+ \filldraw[integraletikzstyle,integralebordtikzstyle,#2] ({\absnoeudA},{\pflOy}) -- plot [smooth,tension={\useKV[GraphiqueTikzIntegr]{Tension}}] coordinates {#3} -- ({\absnoeudB},{\pflOy}) -- cycle ;
+ \end{scope}
+ \path[draw=none,pflcourbe,name path=tmpintbornea] ({\absnoeudA},{\pflymin})--({\absnoeudA},{\pflymax}) ;
+ \path[name intersections={of=tmpintbornea and \pfldomtikznameinterpo,name=YYY}] ;
+ \draw[\pfldomtikzcolorbord,pfltrait] ({\absnoeudA},{\pflOy})-- (YYY-1) ;
+ \path[draw=none,pflcourbe,name path=tmpintborneb] ({\absnoeudB},{\pflymin})--({\absnoeudB},{\pflymax}) ;
+ \path[name intersections={of=tmpintborneb and \pfldomtikznameinterpo,name=ZZZ}] ;
+ \draw[\pfldomtikzcolorbord,pfltrait] ({\absnoeudB},{\pflOy})-- (ZZZ-1) ;
+ }%
+ {}%
+ \IfStrEq{\pfldomtikztype}{fct/fct}%avec #3=formule et #4=formule
+ {%
+ \begin{scope}
+ \clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax});
+ \draw[integraletikzstyle,integralebordtikzstyle,#2] plot[smooth] coordinates {\xintthecoords\xintfloatexpr seq((x,#3),x=\absnoeudA..[\pflstepcurve]..\absnoeudB,\absnoeudB)\relax} -- plot[smooth] coordinates {\xintthecoords\xintfloatexpr seq((x,#4),x=\absnoeudB..[-(\pflstepcurve)]..\absnoeudA,\absnoeudA)\relax} -- cycle ;
+ \end{scope}
+ }%
+ {}%
+ \IfStrEq{\pfldomtikztype}{spl/spl}%avec #3=cbe spline + #4=cbe splineB
+ {%
+ \begin{scope}
+ \clip ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ;
+ \clip ({\absnoeudA},{\pflymin}) -- \pfldomtikznamespline -- ({\absnoeudB},{\pflymin}) -- cycle ;
+ \clip ({\absnoeudA},{\pflymax}) -- \pfldomtikznamesplineb -- ({\absnoeudB},{\pflymax}) -- cycle ;
+ \filldraw[integraletikzstyle,integralebordtikzstyle,#2] ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ;
+ \end{scope}
+ \path[draw=none,pflcourbe,name path=tmpintbornea] ({\absnoeudA},{\pflymin})--({\absnoeudA},{\pflymax}) ;
+ \path[name intersections={of=#3 and tmpintbornea,name=YYYA}] ;
+ \path[name intersections={of=#4 and tmpintbornea,name=ZZZA}] ;
+ \path[draw=none,pflcourbe,name path=tmpintborneb] ({\absnoeudB},{\pflymin})--({\absnoeudB},{\pflymax}) ;
+ \path[name intersections={of=#3 and tmpintborneb,name=YYYB}] ;
+ \path[name intersections={of=#4 and tmpintborneb,name=ZZZB}] ;
+ \draw[\pfldomtikzcolorbord,pfltrait] (YYYA-1)-- (ZZZA-1) ;
+ \draw[\pfldomtikzcolorbord,pfltrait] (YYYB-1)-- (ZZZB-1) ;
+ }%
+ {}%
+ \IfStrEq{\pfldomtikztype}{itp/itp}%avec #3=cbe interpo + #4=cbe interpoB
+ {%
+ \begin{scope}
+ \clip ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ;
+ \clip ({\absnoeudA},{\pflymin}) -- plot [smooth,tension={\useKV[GraphiqueTikzIntegr]{Tension}}] coordinates {#3} -- ({\absnoeudB},{\pflymin}) ;
+ \clip ({\absnoeudA},{\pflymax}) -- plot [smooth,tension={\useKV[GraphiqueTikzIntegr]{TensionB}}] coordinates {#4} -- ({\absnoeudB},{\pflymax}) ;
+ \filldraw[integraletikzstyle,integralebordtikzstyle,#2] ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ;
+ \end{scope}
+ \path[draw=none,pflcourbe,name path=tmpintbornea] ({\absnoeudA},{\pflymin})--({\absnoeudA},{\pflymax}) ;
+ \path[name intersections={of=tmpintbornea and \pfldomtikznameinterpo,name=YYYA}] ;
+ \path[name intersections={of=tmpintbornea and \pfldomtikznameinterpob,name=ZZZA}] ;
+ \path[draw=none,pflcourbe,name path=tmpintborneb] ({\absnoeudB},{\pflymin})--({\absnoeudB},{\pflymax}) ;
+ \path[name intersections={of=tmpintborneb and \pfldomtikznameinterpo,name=YYYB}] ;
+ \path[name intersections={of=tmpintborneb and \pfldomtikznameinterpob,name=ZZZB}] ;
+ \draw[\pfldomtikzcolorbord,pfltrait] (YYYA-1)-- (ZZZA-1) ;
+ \draw[\pfldomtikzcolorbord,pfltrait] (YYYB-1)-- (ZZZB-1) ;
+ }%
+ {}%
+ \IfStrEq{\pfldomtikztype}{fct/spl}%avec #3=formule + #4=spline
+ {%
+ \begin{scope}
+ \clip ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ;
+ \clip ({\absnoeudA},{\pflymin}) -- plot[smooth] coordinates {\xintthecoords\xintfloatexpr seq((x,#3),x=\absnoeudA..[\pflstepcurve]..\absnoeudB,\absnoeudB)\relax} -- ({\absnoeudB},{\pflymin}) -- cycle ;
+ \clip ({\absnoeudA},{\pflymax}) -- \pfldomtikznamesplineb -- ({\absnoeudB},{\pflymax}) -- cycle ;
+ \filldraw[integraletikzstyle,integralebordtikzstyle,#2] ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ;
+ \end{scope}
+ \path[draw=none,pflcourbe,name path=tmpintbornea] ({\absnoeudA},{\pflymin})--({\absnoeudA},{\pflymax}) ;
+ \path[name intersections={of=tmpintbornea and #4,name=ZZZA}] ;
+ \path[draw=none,pflcourbe,name path=tmpintborneb] ({\absnoeudB},{\pflymin})--({\absnoeudB},{\pflymax}) ;
+ \path[name intersections={of=tmpintborneb and #4,name=ZZZB}] ;
+ \draw[\pfldomtikzcolorbord,pfltrait] ({\absnoeudA},{\xintfloateval{subs(#3,x=\absnoeudA)}})-- (ZZZA-1) ;
+ \draw[\pfldomtikzcolorbord,pfltrait] ({\absnoeudB},{\xintfloateval{subs(#3,x=\absnoeudB)}})-- (ZZZB-1) ;
+ }%
+ {}%
+ \IfStrEq{\pfldomtikztype}{spl/fct}%avec #3=spline + #4=fct
+ {%
+ \begin{scope}
+ \clip ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ;
+ \clip ({\absnoeudA},{\pflymax}) -- plot[smooth] coordinates {\xintthecoords\xintfloatexpr seq((x,#4),x=\absnoeudA..[\pflstepcurve]..\absnoeudB,\absnoeudB)\relax} -- ({\absnoeudB},{\pflymax}) -- cycle ;
+ \clip ({\absnoeudA},{\pflymin}) -- \pfldomtikznamespline -- ({\absnoeudB},{\pflymin}) -- cycle ;
+ \filldraw[integraletikzstyle,integralebordtikzstyle,#2] ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ;
+ \end{scope}
+ \path[draw=none,pflcourbe,name path=tmpintbornea] ({\absnoeudA},{\pflymin})--({\absnoeudA},{\pflymax}) ;
+ \path[name intersections={of=tmpintbornea and #3,name=ZZZA}] ;
+ \path[draw=none,pflcourbe,name path=tmpintborneb] ({\absnoeudB},{\pflymin})--({\absnoeudB},{\pflymax}) ;
+ \path[name intersections={of=tmpintborneb and #3,name=ZZZB}] ;
+ \draw[\pfldomtikzcolorbord,pfltrait] ({\absnoeudA},{\xintfloateval{subs(#4,x=\absnoeudA)}})-- (ZZZA-1) ;
+ \draw[\pfldomtikzcolorbord,pfltrait] ({\absnoeudB},{\xintfloateval{subs(#4,x=\absnoeudB)}})-- (ZZZB-1) ;
+ }%
+ {}%
+ \IfStrEq{\pfldomtikztype}{fct/itp}%avec #3=formule + #4=liste interpo
+ {%
+ \begin{scope}
+ \clip ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ;
+ \clip ({\absnoeudA},{\pflymin}) -- plot[smooth] coordinates {\xintthecoords\xintfloatexpr seq((x,#3),x=\absnoeudA..[\pflstepcurve]..\absnoeudB,\absnoeudB)\relax} -- ({\absnoeudB},{\pflymin}) -- cycle ;
+ \clip ({\absnoeudA},{\pflymax}) -- plot [smooth,tension={\useKV[GraphiqueTikzIntegr]{TensionB}}] coordinates {#4} -- ({\absnoeudB},{\pflymax}) ;
+ \filldraw[integraletikzstyle,integralebordtikzstyle,#2] ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ;
+ \end{scope}
+ \path[draw=none,pflcourbe,name path=tmpintbornea] ({\absnoeudA},{\pflymin})--({\absnoeudA},{\pflymax}) ;
+ \path[draw=none,pflcourbe,name path=tmpintborneb] ({\absnoeudB},{\pflymin})--({\absnoeudB},{\pflymax}) ;
+ \path[name intersections={of=tmpintbornea and \pfldomtikznameinterpob,name=ZZZAA}] ;
+ \path[name intersections={of=tmpintborneb and \pfldomtikznameinterpob,name=ZZZAB}] ;
+ \draw[\pfldomtikzcolorbord,pfltrait] ({\absnoeudA},{\xintfloateval{subs(#3,x=\absnoeudA)}})-- (ZZZAA-1) ;
+ \draw[\pfldomtikzcolorbord,pfltrait] ({\absnoeudB},{\xintfloateval{subs(#3,x=\absnoeudB)}})-- (ZZZAB-1) ;
+ }%
+ {}%
+ \IfStrEq{\pfldomtikztype}{itp/fct}%
+ {%
+ \begin{scope}
+ \clip ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ;
+ \clip ({\absnoeudA},{\pflymax}) -- plot[smooth] coordinates {\xintthecoords\xintfloatexpr seq((x,#4),x=\absnoeudA..[\pflstepcurve]..\absnoeudB,\absnoeudB)\relax} -- ({\absnoeudB},{\pflymax}) -- cycle ;
+ \clip ({\absnoeudA},{\pflymin}) -- plot [smooth,tension={\useKV[GraphiqueTikzIntegr]{Tension}}] coordinates {#3} -- ({\absnoeudB},{\pflymin}) ;
+ \filldraw[integraletikzstyle,integralebordtikzstyle,#2] ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ;
+ \end{scope}
+ \path[draw=none,pflcourbe,name path=tmpintbornea] ({\absnoeudA},{\pflymin})--({\absnoeudA},{\pflymax}) ;
+ \path[draw=none,pflcourbe,name path=tmpintborneb] ({\absnoeudB},{\pflymin})--({\absnoeudB},{\pflymax}) ;
+ \path[name intersections={of=tmpintbornea and \pfldomtikznameinterpo,name=ZZZAA}] ;
+ \path[name intersections={of=tmpintborneb and \pfldomtikznameinterpo,name=ZZZAB}] ;
+ \draw[\pfldomtikzcolorbord,pfltrait] ({\absnoeudA},{\xintfloateval{subs(#4,x=\absnoeudA)}})-- (ZZZAA-1) ;
+ \draw[\pfldomtikzcolorbord,pfltrait] ({\absnoeudB},{\xintfloateval{subs(#4,x=\absnoeudB)}})-- (ZZZAB-1) ;
+ }%
+ {}%
+ \IfStrEq{\pfldomtikztype}{itp/spl}%
+ {%
+ \begin{scope}
+ \clip ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ;
+ \clip ({\absnoeudA},{\pflymin}) -- plot [smooth,tension={\useKV[GraphiqueTikzIntegr]{Tension}}] coordinates {#3} -- ({\absnoeudB},{\pflymin}) ;
+ \clip ({\absnoeudA},{\pflymax}) -- \pfldomtikznamesplineb -- ({\absnoeudB},{\pflymax}) -- cycle ;
+ \filldraw[integraletikzstyle,integralebordtikzstyle,#2] ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ;
+ \end{scope}
+ \path[draw=none,pflcourbe,name path=tmpintbornea] ({\absnoeudA},{\pflymin})--({\absnoeudA},{\pflymax}) ;%borne inf
+ \path[draw=none,pflcourbe,name path=tmpintborneb] ({\absnoeudB},{\pflymin})--({\absnoeudB},{\pflymax}) ;%borne sup
+ \path[name intersections={of=tmpintbornea and \pfldomtikznameinterpo,name=YYYKAA}] ;
+ \path[name intersections={of=tmpintborneb and \pfldomtikznameinterpo,name=YYYKBB}] ;
+ \path[name intersections={of=tmpintbornea and #4,name=ZZZKAA}] ;
+ \path[name intersections={of=tmpintborneb and #4,name=ZZZKBB}] ;
+ \draw[\pfldomtikzcolorbord,pfltrait] (YYYKAA-1)-- (ZZZKAA-1) ;
+ \draw[\pfldomtikzcolorbord,pfltrait] (YYYKBB-1)-- (ZZZKBB-1) ;
+ }%
+ {}%
+ \IfStrEq{\pfldomtikztype}{spl/itp}%
+ {%
+ \begin{scope}
+ \clip ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ;
+ \clip ({\absnoeudA},{\pflymax}) -- plot [smooth,tension={\useKV[GraphiqueTikzIntegr]{TensionB}}] coordinates {#4} -- ({\absnoeudB},{\pflymax}) ;
+ \clip ({\absnoeudA},{\pflymin}) -- \pfldomtikznamespline -- ({\absnoeudB},{\pflymin}) -- cycle ;
+ \filldraw[integraletikzstyle,integralebordtikzstyle,#2] ({\absnoeudA},{\pflymin}) rectangle ({\absnoeudB},{\pflymax}) ;
+ \end{scope}
+ \path[draw=none,pflcourbe,name path=tmpintbornea] ({\absnoeudA},{\pflymin})--({\absnoeudA},{\pflymax}) ;%borne inf
+ \path[draw=none,pflcourbe,name path=tmpintborneb] ({\absnoeudB},{\pflymin})--({\absnoeudB},{\pflymax}) ;%borne sup
+ \path[name intersections={of=tmpintbornea and \pfldomtikznameinterpob,name=YYYKAA}] ;
+ \path[name intersections={of=tmpintborneb and \pfldomtikznameinterpob,name=YYYKBB}] ;
+ \path[name intersections={of=tmpintbornea and #3,name=ZZZKAA}] ;
+ \path[name intersections={of=tmpintborneb and #3,name=ZZZKBB}] ;
+ \draw[\pfldomtikzcolorbord,pfltrait] (YYYKAA-1)-- (ZZZKAA-1) ;
+ \draw[\pfldomtikzcolorbord,pfltrait] (YYYKBB-1)-- (ZZZKBB-1) ;
+ }%
+ {}%
+}
+
+\NewDocumentCommand\PlacerPoints{ s O{black} D<>{\normalfont\normalsize} m }{%
+ \IfBooleanTF{#1}%
+ {%
+ \foreach \Point in {#4}{%
+ \filldraw[#2] \Point circle[pflpointc] ;
+ }
+ }%
+ {%
+ \foreach \Point/\Pos/\Label in {#4}{%
+ \filldraw[#2] \Point circle[pflpointc] node[\Pos,font=#3] {\Label} ;
+ }
+ }%
+}
+
+% %====STATS À 2 VARIABLES
+\defKV[GraphiqueTikzRegLin]{%
+ Arrondis=\def\pflarrondisreglin{#1},
+ Nom=\def\pflnamereglin{#1},
+ Debut=\def\pflreglinmin{#1},
+ Fin=\def\pflreglinmax{#1}
+}
+\setKVdefault[GraphiqueTikzRegLin]{
+ CouleurNuage=black,
+ CouleurDroite=black,
+ Arrondis={},
+ Debut={\pflxmin},
+ Fin={\pflxmax},
+ Nom=reglin,
+ TracerDroite=false,%
+ Style=o
+}
+
+\NewDocumentCommand\TracerNuage{ O{} D<>{d} m m }{%
+ \useKVdefault[GraphiqueTikzRegLin]%
+ \setKV[GraphiqueTikzRegLin]{#1}% on paramètres les nouvelles clés et on les simplifie
+ %listes des données
+ \def\xliste{#3}
+ \def\yliste{#4}
+ \readlist*\LX{\xliste}
+ \readlist*\LY{\yliste}
+ %taille des listes
+ \def\LNB{\inteval{\LXlen}}
+ %nuage
+ \foreach \i in {1,...,\LXlen}{%
+ \itemtomacro\LX[\i]\tmpmavalx%
+ \itemtomacro\LY[\i]\tmpmavaly%
+ \MarquerPts*[Style={\useKV[GraphiqueTikzRegLin]{Style}},Couleur={\useKV[GraphiqueTikzRegLin]{CouleurNuage}}]{(\tmpmavalx,\tmpmavaly)}
+ %\filldraw[{\useKV[GraphiqueTikzRegLin]{CouleurNuage}}] ({\LX[\i]},{\LY[\i]}) circle[pflpointnuage] ;
+ }
+ %droite de régression
+ \ifboolKV[GraphiqueTikzRegLin]{TracerDroite}%
+ {%
+ %mini LX
+ \def\tmpxminreglin{\fpeval{min(#2)}}
+ \def\tmpxmaxreglin{\fpeval{max(#2)}}
+ %somme des LX et des LY OK
+ \xdef\LXSomme{0}
+ \xdef\LYSomme{0}
+ \foreach \i in {1,2,...,\LNB}{
+ \xdef\LXSomme{\xintfloateval{\LXSomme+\LX[\i]}}
+ }
+ \foreach \i in {1,2,...,\LNB}{
+ \xdef\LYSomme{\xintfloateval{\LYSomme+\LY[\i]}}
+ }
+ %moyenne des LX et des LY OK
+ \xdef\LXmoy{\xintfloateval{\LXSomme/\LNB}}
+ \xdef\LYmoy{\xintfloateval{\LYSomme/\LNB}}
+ %variance des LX et des LY OK
+ \xdef\LXvar{0}
+ \foreach \i in {1,2,...,\LNB}{
+ \xdef\LXvar{\xintfloateval{\LXvar+(\LX[\i]-\LXmoy)*(\LX[\i]-\LXmoy)}}
+ }
+ \xdef\LXvar{\xintfloateval{\LXvar/\LNB}}
+ \xdef\LYvar{0}
+ \foreach \i in {1,2,...,\LNB}{
+ \xdef\LYvar{\xintfloateval{\LYvar+(\LY[\i]-\LYmoy)*(\LY[\i]-\LYmoy)}}
+ }
+ \xdef\LYvar{\xintfloateval{\LYvar/\LNB}}
+ %covariance des XY OK
+ \xdef\LXYvar{0}
+ \foreach \i in {1,2,...,\LNB}{
+ \xdef\LXYvar{\xintfloateval{\LXYvar+(\LX[\i]-\LXmoy)*(\LY[\i]-\LYmoy)}}
+ }
+ \xdef\LXYvar{\xintfloateval{\LXYvar/\LNB}}
+ %COEFFS OK
+ \IfStrEq{\pflarrondisreglin}{}%
+ {%
+ \xdef\tmpcoeffreglina{\xintfloateval{\LXYvar/\LXvar}}
+ \xdef\tmpcoeffreglinb{\xintfloateval{\LYmoy-\tmpcoeffreglina*\LXmoy}}
+ }%
+ {%
+ \IfSubStr{\pflarrondisreglin}{/}%
+ {%
+ \StrCut{\pflarrondisreglin}{/}{\pflarrondisreglina}{\pflarrondisreglinb}
+ }%
+ {%
+ \xdef\pflarrondisreglina{\pflarrondisreglin}\xdef\pflarrondisreglinb{\pflarrondisreglin}
+ }%
+ \xdef\tmpcoeffreglina{\xintfloateval{round(\LXYvar/\LXvar,\pflarrondisreglina)}}
+ \xdef\tmpcoeffreglinb{\xintfloateval{round(\LYmoy-\tmpcoeffreglina*\LXmoy,\pflarrondisreglinb)}}
+ }%
+ \xintdeffloatfunc #2(x) := (\tmpcoeffreglina)*x+(\tmpcoeffreglinb) ;
+ %tracé
+ \begin{scope}
+ \clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax});
+ \draw[pflcourbe,{\useKV[GraphiqueTikzRegLin]{CouleurDroite}},name path global=\pflnamereglin,samples=2,domain=\pflreglinmin:\pflreglinmax] plot (\x,{\tmpcoeffreglina*\x+\tmpcoeffreglinb}) ;
+ \end{scope}
+ }%
+ {}%
+}
+
+%===IMAGES & ANTÉCÉDENTS
+\defKV[GraphiqueTikzImg]{
+ Couleurs=\def\pflimgcolors{#1},%
+ Nom=\def\pflantecednoms{#1}%,%
+ %Style=\xdef\pflantecedstyle{#1}
+}
+
+\setKVdefault[GraphiqueTikzImg]{
+ Couleurs=black,
+ Traits=false,
+ Spline=false,%
+ Nom={},%
+ Style=o
+}
+
+\NewDocumentCommand\PlacerImages{ O{} m m }{%
+ \useKVdefault[GraphiqueTikzImg]%
+ \setKV[GraphiqueTikzImg]{#1}%
+ \IfSubStr{\pflimgcolors}{/}%
+ {%
+ \StrCut{\pflimgcolors}{/}{\pflimgcolorpt}{\pflimgcolorline}
+ }%
+ {%
+ \xdef\pflimgcolorpt{\pflimgcolors}\xdef\pflimgcolorline{\pflimgcolors}
+ }%
+ \ifboolKV[GraphiqueTikzImg]{Spline}%
+ {%
+ \foreach \i in {#3}{%
+ \path[draw=none,pflcourbe,name path=tmpimage] ({\i},{\pflymin})--({\i},{\pflymax}) ;
+ \path[name intersections={of=#2 and tmpimage,name=ZZ}] ;
+ \ifboolKV[GraphiqueTikzImg]{Traits}%
+ {%
+ \draw[\pflimgcolorline,pfltraitimg] let \p1 = (ZZ-1) in ({\x1},{\pflOy}) |- ({\pflOx},{\y1}) ;
+ }%
+ {}%
+ \MarquerPts*[Style={\useKV[GraphiqueTikzImg]{Style}},Couleur=\pflimgcolorpt]{(ZZ-1)}
+ %\filldraw[\pflimgcolorpt] (ZZ-1) circle[radius=2pt] ;
+ }
+ }%
+ {%
+ \foreach \i in {#3}{%
+ \xdef\tmpresimg{\xintfloateval{#2(\i)}}%
+ \ifboolKV[GraphiqueTikzImg]{Traits}%
+ {%
+ \draw[\pflimgcolorline,pfltraitimg] ({\i},{\pflOy}) |- ({\pflOx},{\tmpresimg}) ;
+ }%
+ {}%
+ \MarquerPts*[Style={\useKV[GraphiqueTikzImg]{Style}},Couleur=\pflimgcolorpt]{({\i},{\tmpresimg})}
+ %\filldraw[\pflimgcolorpt] ({\i},{\tmpresimg}) circle[radius=2pt] ;
+ }%
+ }
+}
+
+\NewDocumentCommand\PlacerAntecedents{ O{} m m }{%avec le nom de la courbe...
+ \useKVdefault[GraphiqueTikzImg]%
+ \setKV[GraphiqueTikzImg]{#1}%
+ \xdef\pflstepcurve{\xintfloateval{0.1*\pflgrillexs}}
+ \IfSubStr{\pflimgcolors}{/}%
+ {%
+ \StrCut{\pflimgcolors}{/}{\pflimgcolorpt}{\pflimgcolorline}%
+ }%
+ {%
+ \xdef\pflimgcolorpt{\pflimgcolors}\xdef\pflimgcolorline{\pflimgcolors}%
+ }%
+ \begin{scope}
+ \clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax});
+ \path[draw=none,pflcourbe,name path=tmpanteced] ({\pflxmin},{#3})--({\pflxmax},{#3}) ;
+ \path[name intersections={of=#2 and tmpanteced,name=ZZ,total=\t}] \pgfextra{\xdef\tmptotanteced{\t}};
+ \xintifboolexpr{\tmptotanteced == 0}{}%
+ {%
+ \ifboolKV[GraphiqueTikzImg]{Traits}%
+ {%
+ \draw[\pflimgcolorline,pfltraitantec] ({\pflxmin},{#3})--({\pflxmax},{#3}) ;
+ }%
+ {}%
+ \foreach \i in {1,...,\tmptotanteced}{%
+ \IfStrEq{\pflantecednoms}{}%
+ {}%
+ {%
+ \coordinate (\pflantecednoms-\i) at (ZZ-\i) ;
+ }%
+ \ifboolKV[GraphiqueTikzImg]{Traits}%
+ {%
+ \draw[\pflimgcolorline,pfltraitimg] let \p1 = (ZZ-\i) in (ZZ-\i) -- ({\x1},{\pflOy}) ;
+ }%
+ {}%
+ \MarquerPts*[Style={\useKV[GraphiqueTikzImg]{Style}},Couleur=\pflimgcolorpt]{(ZZ-\i)}
+ %\filldraw[\pflimgcolorpt] (ZZ-\i) circle[radius=2pt] ;
+ }%
+ }%
+ \end{scope}
+}
+
+%===NOMBRE DÉRIVÉ ET TANGENTE (EXPÉRIEMENTAL)
+\NewDocumentCommand\CalculerNbDerive{ s m m m }{%*=gauche+nomfct+abspt+h
+ \IfBooleanTF{#1}%
+ {%
+ \xdef\TmpResNbDeriv{\xintfloateval{(#2(#3)-#2(#3-#4))/(#4)}}%
+ }%
+ {%
+ \xdef\TmpResNbDeriv{\xintfloateval{(#2(#3+#4)-#2(#3))/(#4)}}%
+ }%
+}
+
+\defKV[GraphiqueTikzTgte]{%
+ Couleurs=\def\pfltgttikzcolors{#1},%
+ DecG=\def\pfltgttikzkl{#1},%
+ DecD=\def\pfltgttikzkr{#1},%
+ h=\def\pfltgttikzh{#1},%
+ Sens=\def\pfltgttikzsens{#1},%
+ Delta=\def\tmptgtedelta{#1}
+}
+\setKVdefault[GraphiqueTikzTgte]{%
+ Couleurs=black,%
+ DecG=1,%
+ DecD=1,%
+ AffPoint=false,%
+ Spline=false,%
+ h=0.1,%
+ Sens=gd,%
+ Noeud=false,%
+ Delta=0.01,%
+ Style=o
+}
+
+\NewDocumentCommand\TracerTangente{ O{} m m D<>{} }{%
+ \restoreKV[GraphiqueTikzTgte]%
+ \setKV[GraphiqueTikzTgte]{#1}%
+ %en fonction de la gestion de l'abscisse
+ \ifboolKV[GraphiqueTikzTgte]{Noeud}%
+ {%
+ \path #3;
+ \pgfgetlastxy{\macrox}{\macroy}%
+ \xdef\pfltgttikzx{\xintfloateval{(\ConvertirPtToCm{\macrox})/(\pflxunit)}}%
+ }%
+ {%
+ \xdef\pfltgttikzx{#3}%
+ }%
+ %parties communes
+ \IfSubStr{\pfltgttikzcolors}{/}%
+ {%
+ \StrCut{\pfltgttikzcolors}{/}{\pfltgttikzline}{\pfltgttikzpoint}
+ }%
+ {%
+ \xdef\pfltgttikzline{\pfltgttikzcolors}\xdef\pfltgttikzpoint{\pfltgttikzcolors}
+ }%
+ \xdef\tmptgtdeb{\xintfloateval{\pfltgttikzx-(\pfltgttikzkl)}}%
+ \xdef\tmptgtfin{\xintfloateval{\pfltgttikzx+(\pfltgttikzkr)}}%
+ %suivant le type de courbe
+ \ifboolKV[GraphiqueTikzTgte]{Spline}%
+ {%
+ \path[name path=tmpimage] ({\pfltgttikzx},{\pflymin})--({\pfltgttikzx},{\pflymax}) ;
+ \path[name intersections={of=#2 and tmpimage,name=TANp}] ;
+ \IfStrEq{\pfltgttikzsens}{gd}%
+ {%
+ \path[name path=L-vline] ({\pfltgttikzx-\tmptgtedelta},{\pflymin}) -- ({\pfltgttikzx-\tmptgtedelta},{\pflymax}) ;
+ \path[name path=R-vline] ({\pfltgttikzx+\tmptgtedelta},{\pflymin}) -- ({\pfltgttikzx+\tmptgtedelta},{\pflymax}) ;
+ %\coordinate (LXcoor) at ($(TANp-1)+({-\tmptgtedelta},0)$) ;
+ %\coordinate (RXcoor) at ($(TANp-1)+({\tmptgtedelta},0)$) ;
+ }%
+ {}%
+ \IfStrEq{\pfltgttikzsens}{g}%
+ {%
+ \path[name path=L-vline] ({\pfltgttikzx-\tmptgtedelta},{\pflymin}) -- ({\pfltgttikzx-\tmptgtedelta},{\pflymax}) ;
+ \path[name path=R-vline] ({\pfltgttikzx},{\pflymin}) -- ({\pfltgttikzx},{\pflymax}) ;
+ %\coordinate (LXcoor) at ($(TANp-1)+({-\tmptgtedelta},0)$) ;
+ %\coordinate (RXcoor) at (TANp-1) ;
+ \def\tmptgtfin{\pfltgttikzx}%
+ }%
+ {}%
+ \IfStrEq{\pfltgttikzsens}{d}%
+ {%
+ \path[name path=L-vline] ({\pfltgttikzx},{\pflymin}) -- ({\pfltgttikzx},{\pflymax}) ;
+ \path[name path=R-vline] ({\pfltgttikzx+\tmptgtedelta},{\pflymin}) -- ({\pfltgttikzx+\tmptgtedelta},{\pflymax}) ;
+ \def\tmptgtdeb{\pfltgttikzx}%
+ }%
+ {}%
+ \path[name intersections={of=#2 and L-vline,name=LXcut}] ;
+ \path[name intersections={of=#2 and R-vline,name=RXcut}] ;
+ \coordinate (tzXproj) at ($(LXcut-1)!(TANp-1)!(RXcut-1)$) ; % projection
+ \coordinate (LLpoint) at ($(LXcut-1)+(TANp-1)-(tzXproj)$) ; % move
+ \coordinate (RRpoint) at ($(RXcut-1)+(TANp-1)-(tzXproj)$) ; % move
+ \path (LLpoint);
+ \pgfgetlastxy{\macrox}{\macroy}%
+ \xdef\tzTANLLX{\xintfloateval{(\ConvertirPtToCm{\macrox})/(\pflxunit)}}%
+ \xdef\tzTANLLY{\xintfloateval{(\ConvertirPtToCm{\macroy})/(\pflyunit)}}%
+ \path (RRpoint);
+ \pgfgetlastxy{\macrox}{\macroy}%
+ \xdef\tzTANRRX{\xintfloateval{(\ConvertirPtToCm{\macrox})/(\pflxunit)}}%
+ \xdef\tzTANRRY{\xintfloateval{(\ConvertirPtToCm{\macroy})/(\pflyunit)}}%
+ \def\tztangentLFn{(\tzTANRRY-\tzTANLLY)/(\tzTANRRX-\tzTANLLX)*(\x-\tzTANLLX)+\tzTANLLY}%
+ \begin{scope}
+ \clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax}) ;
+ \draw[pfltrait,\pfltgttikzline,domain=\tmptgtdeb:\tmptgtfin,samples=2,#4] plot (\x,{\tztangentLFn}) ;
+ \end{scope}
+ }%
+ {%
+ \IfStrEq{\pfltgttikzsens}{g}%
+ {%
+ \CalculerNbDerive*{#2}{\pfltgttikzx}{\pfltgttikzh}%
+ }%
+ {%
+ \CalculerNbDerive{#2}{\pfltgttikzx}{\pfltgttikzh}%
+ }%
+ \begin{scope}
+ \clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax}) ;
+ \draw[pfltrait,\pfltgttikzline,#4] plot[smooth] coordinates {%
+ \xintthecoords\xintfloatexpr
+ seq((x,\TmpResNbDeriv*(x-(\pfltgttikzx))+#2(\pfltgttikzx)),x=\tmptgtdeb,\tmptgtfin)
+ \relax
+ };
+ \end{scope}
+ }%
+ \ifboolKV[GraphiqueTikzTgte]{AffPoint}%
+ {%
+ \ifboolKV[GraphiqueTikzTgte]{Spline}%
+ {%
+ \MarquerPts*[Style={\useKV[GraphiqueTikzTgte]{Style}},Couleur=\pfltgttikzpoint]{(TANp-1)}
+ %\filldraw[] (TANp-1) circle[pflpointc] ;
+ }%
+ {%
+ \xdef\tmpimgtgt{\xintfloateval{#2(\pfltgttikzx)}}%
+ \MarquerPts*[Style={\useKV[GraphiqueTikzTgte]{Style}},Couleur=\pfltgttikzpoint]{({\pfltgttikzx},\tmpimgtgt)}
+ %\filldraw[\pfltgttikzpoint] ({\pfltgttikzx},\tmpimgtgt) circle[pflpointc] ;
+ }%
+ }%
+ {}%
+}
+
+%====loi normale
+\defKV[GraphiqueTikzGaussienne]{%
+ Pas=\def\pflgaussstep{#1},%
+ Nom=\def\pflgaussname{#1}
+}
+
+\setKVdefault[GraphiqueTikzGaussienne]{%
+ Nom=gaussienne,%
+ Couleur=black,%
+ Trace=false,%
+ Pas={},%
+ Debut={\pflxmin},%
+ Fin={\pflxmax}
+}
+
+\NewDocumentCommand\DefinirLoiNormale{ O{} D<>{phi} m m }{%
+ %1=options
+ %2=mu
+ %3=sigma
+ \restoreKV[GraphiqueTikzGaussienne]%
+ \setKV[GraphiqueTikzGaussienne]{#1}%
+ \xintdeffloatfunc #2(x) := 1/((#4)*sqrt(2*pi))*exp(-0.5*((x-(#3))/(#4))^2) ;%
+ \IfStrEq{\pflgaussstep}{}%
+ {%
+ \xdef\pflgaussstep{\xintfloateval{((\useKV[GraphiqueTikzGaussienne]{Fin})-(\useKV[GraphiqueTikzGaussienne]{Debut}))/100}}%
+ }%
+ {}%
+ \begin{scope}
+ \clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax});
+ \ifboolKV[GraphiqueTikzGaussienne]{Trace}%
+ {%
+ \path[draw,pflcourbe,{\useKV[GraphiqueTikzGaussienne]{Couleur}},name path global=\pflgaussname] plot[smooth] coordinates {%
+ \xintthecoords\xintfloatexpr
+ seq((x,#2(x)),x={\useKV[GraphiqueTikzGaussienne]{Debut}}..[\pflgaussstep]..{\useKV[GraphiqueTikzGaussienne]{Fin}},{\useKV[GraphiqueTikzGaussienne]{Fin}})
+ \relax
+ } ;
+ }%
+ {%
+ \path[draw=none,pflcourbe,name path global=\pflgaussname] plot[smooth] coordinates {%
+ \xintthecoords\xintfloatexpr
+ seq((x,#2(x)),x={\useKV[GraphiqueTikzGaussienne]{Debut}}..[\pflgaussstep]..{\useKV[GraphiqueTikzGaussienne]{Fin}},{\useKV[GraphiqueTikzGaussienne]{Fin}})
+ \relax
+ } ;
+ }%
+ \end{scope}
+}
+
+\NewDocumentCommand\TracerLoiNormale{ O{} m }{%
+ %1=options
+ %2=mu
+ %3=sigma
+ \restoreKV[GraphiqueTikzGaussienne]%
+ \setKV[GraphiqueTikzGaussienne]{#1}%
+ \IfStrEq{\pflgaussstep}{}%
+ {%
+ \xdef\pflgaussstep{\xintfloateval{((\useKV[GraphiqueTikzGaussienne]{Fin})-(\useKV[GraphiqueTikzGaussienne]{Debut}))/100}}%
+ }%
+ {}%
+ \begin{scope}
+ \clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax});
+ \draw[pflcourbe,{\useKV[GraphiqueTikzGaussienne]{Couleur}}] plot[smooth] coordinates {%
+ \xintthecoords\xintfloatexpr
+ seq((x,#2),x={\useKV[GraphiqueTikzGaussienne]{Debut}}..[\pflgaussstep]..{\useKV[GraphiqueTikzGaussienne]{Fin}},{\useKV[GraphiqueTikzGaussienne]{Fin}})
+ \relax
+ } ;
+ \end{scope}
+}
+
+%==== DENSITÉ KHIDEUX
+\xintdeffloatfunc pflrecigamma(x) := x+0.577215664901*x^2-0.65587807152056*x^3-0.042002635033944*x^4+0.16653861138228*x^5-0.042197734555571*x^6;
+\xintdeffloatfunc pflgamma(x) := (x==1)?{1}{(abs(x)<=0.5)?{1/pflrecigamma(x)}{(x-1)*pflgamma(x-1)}};
+\xintdeffloatfunc pflkhideux(x,k) := (x<0)?{0}{(1/(2^(k/2)*pflgamma(k/2)))*x^(k/2-1)*exp(-x/2)};
+
+\NewDocumentCommand\DefinirLoiKhiDeux{ O{} D<>{khi} m }{%
+ %1=options
+ %2=mu
+ %3=sigma
+ \restoreKV[GraphiqueTikzGaussienne]%
+ \setKV[GraphiqueTikzGaussienne]{#1}%
+ \xintdeffloatfunc #2(x) := (x<0)?{0}{(1/(2^((#3)/2)*pflgamma((#3)/2)))*x^((#3)/2-1)*exp(-x/2)};
+ \IfStrEq{\pflgaussstep}{}%
+ {%
+ \xdef\pflgaussstep{\xintfloateval{((\useKV[GraphiqueTikzGaussienne]{Fin})-(\useKV[GraphiqueTikzGaussienne]{Debut}))/100}}%
+ }%
+ {}%
+ \begin{scope}
+ \clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax});
+ \ifboolKV[GraphiqueTikzGaussienne]{Trace}%
+ {%
+ \path[draw,pflcourbe,{\useKV[GraphiqueTikzGaussienne]{Couleur}},name path global=\pflgaussname] plot[smooth] coordinates {%
+ \xintthecoords\xintfloatexpr
+ seq((x,#2(x)),x={\useKV[GraphiqueTikzGaussienne]{Debut}}..[\pflgaussstep]..{\useKV[GraphiqueTikzGaussienne]{Fin}},{\useKV[GraphiqueTikzGaussienne]{Fin}})
+ \relax
+ } ;
+ }%
+ {%
+ \path[draw=none,pflcourbe,name path global=\pflgaussname] plot[smooth] coordinates {%
+ \xintthecoords\xintfloatexpr
+ seq((x,#2(x)),x={\useKV[GraphiqueTikzGaussienne]{Debut}}..[\pflgaussstep]..{\useKV[GraphiqueTikzGaussienne]{Fin}},{\useKV[GraphiqueTikzGaussienne]{Fin}})
+ \relax
+ } ;
+ }%
+ \end{scope}
+}
+
+\NewDocumentCommand\TracerLoiKhiDeux{ O{} m }{%
+ %1=options
+ %2=mu
+ %3=sigma
+ \restoreKV[GraphiqueTikzGaussienne]%
+ \setKV[GraphiqueTikzGaussienne]{#1}%
+ \IfStrEq{\pflgaussstep}{}%
+ {%
+ \xdef\pflgaussstep{\xintfloateval{((\useKV[GraphiqueTikzGaussienne]{Fin})-(\useKV[GraphiqueTikzGaussienne]{Debut}))/100}}%
+ }%
+ {}%
+ \begin{scope}
+ \clip ({\pflxmin},{\pflymin}) rectangle ({\pflxmax},{\pflymax});
+ \draw[pflcourbe,{\useKV[GraphiqueTikzGaussienne]{Couleur}}] plot[smooth] coordinates {%
+ \xintthecoords\xintfloatexpr
+ seq((x,#2),x={\useKV[GraphiqueTikzGaussienne]{Debut}}..[\pflgaussstep]..{\useKV[GraphiqueTikzGaussienne]{Fin}},{\useKV[GraphiqueTikzGaussienne]{Fin}})
+ \relax
+ } ;
+ \end{scope}
+}
+
+\endinput \ No newline at end of file
diff --git a/graphics/pstricks/contrib/pst-mirror/Changes b/graphics/pstricks/contrib/pst-mirror/Changes
index 05f40ce5c6..b691f4d2c4 100644
--- a/graphics/pstricks/contrib/pst-mirror/Changes
+++ b/graphics/pstricks/contrib/pst-mirror/Changes
@@ -1,4 +1,5 @@
..... pst-mirror.tex
+1.02a 2024-05-17 - use only free images for the documentation
1.02 2021-09-14 - fix for fontname on PS level
1.01 2014-02-17 - small changes to the polygon macro
- make \pstDie an object
diff --git a/graphics/pstricks/contrib/pst-mirror/README b/graphics/pstricks/contrib/pst-mirror/README
index 44d352a8e4..2ad0a4036b 100644
--- a/graphics/pstricks/contrib/pst-mirror/README
+++ b/graphics/pstricks/contrib/pst-mirror/README
@@ -7,6 +7,7 @@ For more information see the documentation of your LATEX distribution
on installing packages into your local TeX system.
PSTricks is PostScript Tricks, the documentation cannot be run
-with pdftex, use the sequence latex->dvips->ps2pdf or xelatex.
+with pdftex, use the sequence latex->dvips->ps2pdf or xelatex
+or lualatex.
hvoss@tug.org \ No newline at end of file
diff --git a/graphics/pstricks/contrib/pst-mirror/doc/createEPS/test.pdf b/graphics/pstricks/contrib/pst-mirror/doc/createEPS/test.pdf
index 4cb24970af..240bcaa044 100644
--- a/graphics/pstricks/contrib/pst-mirror/doc/createEPS/test.pdf
+++ b/graphics/pstricks/contrib/pst-mirror/doc/createEPS/test.pdf
Binary files differ
diff --git a/graphics/pstricks/contrib/pst-mirror/doc/createEPS/test.tex b/graphics/pstricks/contrib/pst-mirror/doc/createEPS/test.tex
index 516a56c5b8..30b54eec56 100644
--- a/graphics/pstricks/contrib/pst-mirror/doc/createEPS/test.tex
+++ b/graphics/pstricks/contrib/pst-mirror/doc/createEPS/test.tex
@@ -8,4 +8,14 @@
\psset{Rayon=5}
\pstSphereImage[normale=0 0,scale=3](30,0,0){xc.eps}
\end{pspicture}
+
+
+
+\begin{pspicture}(-5,-5)(5,5)
+\pscircle[linecolor=blue!50]{!5 2 sqrt div}
+\psset{Rayon=5}
+\pstSphereImage[normale=0 0,scale=5](30,10,0){tiger-c.eps}
+\end{pspicture}
+
+
\end{document}
diff --git a/graphics/pstricks/contrib/pst-mirror/doc/createEPS/tiger-b.eps b/graphics/pstricks/contrib/pst-mirror/doc/createEPS/tiger-b.eps
new file mode 100644
index 0000000000..7549ff14b5
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-mirror/doc/createEPS/tiger-b.eps
@@ -0,0 +1,7102 @@
+%!PS-Adobe-3.0
+%%Title: flattened PostScript generated from file: tiger.eps
+%%Creator: pstoedit
+%%BoundingBox: (atend)
+%%Pages: (atend)
+%%EndComments
+%%BeginProlog
+/setPageSize { pop pop } def
+/ntranslate { neg exch neg exch translate } def
+/p2esetcolorname { pop } def
+/setshowparams { pop pop pop} def
+/awidthshowhex { dup length 0 gt { dup /ASCIIHexDecode filter exch length 2 div cvi string readstring pop } if awidthshow } def
+/awidthshowhexwithglyphs { true { pop awidthshowhex } { { glyphshow } forall pop } ifelse } def
+/backendconstraints { pop pop } def
+%%>>> /pstoedit.newfont { 80 string cvs findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse} forall /Encoding ISOLatin1Encoding def dup 80 string cvs /FontName exch def currentdict end definefont pop } def
+/imagestring 1 string def
+%%EndProlog
+%%BeginSetup
+% pstoedit.textastext pstoedit.doflatten backendconstraints
+0 0 backendconstraints
+%%EndSetup
+%%Page: 1 1
+6 28.3464567 mul 586 div dup scale 132 -415 add 2 div neg 752 166 add 2 div neg translate
+gsave %{
+ save %{
+gsave %{
+
+
+% 1 pathnumber
+% filledpath
+ 792 612 setPageSize
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.1892 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 64.25 487.75 moveto
+ 64.25 487.75 64.4219 485.203 65.25 484.75 curveto
+ 66.2344 485.246 84.3359 538.129 107.25 535.75 curveto
+ 107.25 535.75 87.3555 543.75 64.25 487.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 2 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.1892 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 64.25 487.75 moveto
+ 64.25 487.75 64.4219 485.203 65.25 484.75 curveto
+ 66.2344 485.246 84.3359 538.129 107.25 535.75 curveto
+ 107.25 535.75 87.3555 543.75 64.25 487.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 3 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.1892 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 60.25 490.75 moveto
+ 60.25 490.75 61.2539 488.613 62.25 488.75 curveto
+ 62.9453 489.27 61.9766 545.156 84.25 550.75 curveto
+ 84.25 550.75 62.9023 551.469 60.25 490.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 4 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.1892 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 60.25 490.75 moveto
+ 60.25 490.75 61.2539 488.613 62.25 488.75 curveto
+ 62.9453 489.27 61.9766 545.156 84.25 550.75 curveto
+ 84.25 550.75 62.9023 551.469 60.25 490.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 5 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.1892 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 30.25 443.75 moveto
+ 30.25 443.75 28.6133 442.996 29.25 442.75 curveto
+ 29.6484 441.504 83.7383 455.586 94.25 435.75 curveto
+ 94.25 435.75 90.0938 456.172 30.25 443.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 6 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.1892 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 30.25 443.75 moveto
+ 30.25 443.75 28.6133 442.996 29.25 442.75 curveto
+ 29.6484 441.504 83.7383 455.586 94.25 435.75 curveto
+ 94.25 435.75 90.0938 456.172 30.25 443.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 7 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.1892 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 33.25 432.75 moveto
+ 33.25 432.75 31.4609 432.383 31.25 431.75 curveto
+ 31.9727 430.645 87.7461 426.969 91.25 404.75 curveto
+ 91.25 404.75 93.9609 425.52 33.25 432.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 8 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.1892 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 33.25 432.75 moveto
+ 33.25 432.75 31.4609 432.383 31.25 431.75 curveto
+ 31.9727 430.645 87.7461 426.969 91.25 404.75 curveto
+ 91.25 404.75 93.9609 425.52 33.25 432.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 9 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.1892 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 38.25 438.75 moveto
+ 38.25 438.75 36.1797 438.168 36.25 437.75 curveto
+ 36.9414 436.523 92.6523 441.02 99.25 419.75 curveto
+ 99.25 419.75 99.0117 440.492 38.25 438.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 10 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.1892 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 38.25 438.75 moveto
+ 38.25 438.75 36.1797 438.168 36.25 437.75 curveto
+ 36.9414 436.523 92.6523 441.02 99.25 419.75 curveto
+ 99.25 419.75 99.0117 440.492 38.25 438.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 11 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.1892 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 50.25 458.75 moveto
+ 50.25 458.75 48.4727 457.41 49.25 456.75 curveto
+ 49.875 456.262 97.9961 484.703 113.25 467.75 curveto
+ 113.25 467.75 103.941 487.012 50.25 458.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 12 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.1892 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 50.25 458.75 moveto
+ 50.25 458.75 48.4727 457.41 49.25 456.75 curveto
+ 49.875 456.262 97.9961 484.703 113.25 467.75 curveto
+ 113.25 467.75 103.941 487.012 50.25 458.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 13 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.1892 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 58.25 454.75 moveto
+ 58.25 454.75 56.6094 452.973 57.25 452.75 curveto
+ 57.875 451.672 108.902 474.484 122.25 456.75 curveto
+ 122.25 456.75 115.07 476.109 58.25 454.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 14 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.1892 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 58.25 454.75 moveto
+ 58.25 454.75 56.6094 452.973 57.25 452.75 curveto
+ 57.875 451.672 108.902 474.484 122.25 456.75 curveto
+ 122.25 456.75 115.07 476.109 58.25 454.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 15 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.1892 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 61.25 449.75 moveto
+ 61.25 449.75 59.3008 448.723 60.25 447.75 curveto
+ 60.3789 447.266 114.039 462.91 125.25 442.75 curveto
+ 125.25 442.75 120.371 463.676 61.25 449.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 16 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.1892 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 61.25 449.75 moveto
+ 61.25 449.75 59.3008 448.723 60.25 447.75 curveto
+ 60.3789 447.266 114.039 462.91 125.25 442.75 curveto
+ 125.25 442.75 120.371 463.676 61.25 449.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 17 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.1892 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 49.25 448.75 moveto
+ 49.25 448.75 48.0273 447.473 49.25 446.75 curveto
+ 49.5703 446.516 93.6445 480.887 111.25 466.75 curveto
+ 111.25 466.75 99.25 483.941 49.25 448.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 18 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.1892 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 49.25 448.75 moveto
+ 49.25 448.75 48.0273 447.473 49.25 446.75 curveto
+ 49.5703 446.516 93.6445 480.887 111.25 466.75 curveto
+ 111.25 466.75 99.25 483.941 49.25 448.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 19 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.1892 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 71.25 480.75 moveto
+ 71.25 480.75 70.3594 479.02 71.25 478.75 curveto
+ 72.1211 478.578 103.578 524.781 124.25 516.75 curveto
+ 124.25 516.75 107.98 529.398 71.25 480.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 20 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.1892 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 71.25 480.75 moveto
+ 71.25 480.75 70.3594 479.02 71.25 478.75 curveto
+ 72.1211 478.578 103.578 524.781 124.25 516.75 curveto
+ 124.25 516.75 107.98 529.398 71.25 480.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 21 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.1892 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 70.25 473.75 moveto
+ 70.25 473.75 69.1836 471.531 70.25 470.75 curveto
+ 70.8086 470.723 111.492 509.051 130.25 496.75 curveto
+ 130.25 496.75 116.785 512.613 70.25 473.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 22 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.1892 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 70.25 473.75 moveto
+ 70.25 473.75 69.1836 471.531 70.25 470.75 curveto
+ 70.8086 470.723 111.492 509.051 130.25 496.75 curveto
+ 130.25 496.75 116.785 512.613 70.25 473.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 23 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.1892 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 70.25 468.75 moveto
+ 70.25 468.75 69.1484 466.832 70.25 466.75 curveto
+ 70.6914 465.875 114.766 500.246 132.25 485.75 curveto
+ 132.25 485.75 120.367 503.301 70.25 468.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 24 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.1892 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 70.25 468.75 moveto
+ 70.25 468.75 69.1484 466.832 70.25 466.75 curveto
+ 70.6914 465.875 114.766 500.246 132.25 485.75 curveto
+ 132.25 485.75 120.367 503.301 70.25 468.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 25 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 73.25 466.75 moveto
+ 72.2578 459.977 71.1719 452.75 69.25 449.75 curveto
+ 69.25 449.75 73.2188 435.68 63.25 420.75 curveto
+ 63.25 420.75 63.9805 413.238 62.25 409.75 curveto
+ 62.25 409.75 57.8203 400.48 52.25 399.75 curveto
+ 48.2695 398.887 38.6719 395.512 28.25 393.75 curveto
+ 28.25 393.75 8.98047 378.48 12.25 364.75 curveto
+ 12.25 364.75 12.9414 346.359 17.25 344.75 curveto
+ 17.25 344.75 4.14063 356.918 14.25 338.75 curveto
+ 19.25 317.75 lineto
+ 19.25 317.75 -8.62109 341.52 8.25 321.75 curveto
+ 19.25 292.75 lineto
+ 19.25 292.75 -2.01953 312.918 6.25 303.75 curveto
+ 9.25 293.75 lineto
+ 9.25 293.75 -38.1016 323.918 -3.75 291.75 curveto
+ -3.75 291.75 -13.0195 295.32 -17.75 291.75 curveto
+ -17.75 291.75 -25.3398 293.559 -24.75 291.75 curveto
+ -24.75 291.75 -1.57813 280.359 2.25 259.75 curveto
+ 2.25 259.75 -6.85938 271.117 -3.75 258.75 curveto
+ -3.75 246.75 lineto
+ -3.75 246.75 -8.17969 270.238 -7.75 228.75 curveto
+ -7.75 228.75 -28.8594 248.68 -15.75 225.75 curveto
+ -15.75 207.75 lineto
+ -15.75 207.75 -32.8203 225.359 -25.75 211.75 curveto
+ -25.75 211.75 -36.7813 220.957 -32.75 203.75 curveto
+ -32.75 203.75 -31.5 192.801 -36.75 204.75 curveto
+ -36.75 204.75 -53.9414 238.777 -47.75 209.75 curveto
+ -47.75 209.75 -46.461 188.84 -51.75 204.75 curveto
+ -51.75 204.75 -52.1797 193.68 -62.75 185.75 curveto
+ -62.75 185.75 -60.9805 241.641 -74.75 201.75 curveto
+ -79.75 183.75 lineto
+ -79.75 183.75 -82.5391 194.117 -81.75 199.75 curveto
+ -81.75 199.75 -98.3789 217.879 -90.75 190.75 curveto
+ -90.75 190.75 -107.621 216.117 -103.75 201.75 curveto
+ -103.75 201.75 -95.7383 184.0 -97.75 178.75 curveto
+ -97.75 178.75 -115.98 217.0 -117.75 218.75 curveto
+ -117.75 218.75 -115.102 172.117 -126.75 211.75 curveto
+ -126.75 211.75 -133.141 198.52 -129.75 193.75 curveto
+ -129.75 193.75 -138.859 202.48 -137.75 205.75 curveto
+ -137.75 205.75 -143.039 215.02 -145.75 199.75 curveto
+ -145.75 199.75 -148.102 189.719 -149.75 192.75 curveto
+ -149.75 192.75 -154.262 166.836 -155.75 191.75 curveto
+ -155.75 191.75 -157.34 206.879 -149.75 219.75 curveto
+ -149.75 219.75 -150.301 223.16 -146.75 227.75 curveto
+ -146.75 227.75 -162.18 203.801 -154.75 235.75 curveto
+ -154.75 235.75 -166.582 226.68 -167.75 226.75 curveto
+ -167.75 226.75 -152.941 252.199 -162.75 246.75 curveto
+ -162.75 246.75 -156.898 258.359 -176.75 244.75 curveto
+ -176.75 244.75 -159.102 262.758 -178.75 251.75 curveto
+ -178.75 251.75 -187.262 245.16 -178.75 255.75 curveto
+ -178.75 255.75 -163.059 273.758 -187.75 253.75 curveto
+ -187.75 253.75 -200.02 235.918 -200.75 232.75 curveto
+ -200.75 232.75 -189.902 264.957 -184.75 267.75 curveto
+ -184.75 267.75 -194.301 308.078 -239.75 290.75 curveto
+ -239.75 290.75 -247.102 272.0 -251.75 291.75 curveto
+ -251.75 291.75 -266.02 299.277 -278.75 268.75 curveto
+ -278.75 268.75 -282.742 283.879 -281.75 286.75 curveto
+ -281.75 286.75 -289.34 285.641 -288.75 286.75 curveto
+ -288.75 286.75 -302.98 282.117 -304.75 282.75 curveto
+ -304.75 282.75 -311.781 275.52 -311.75 279.75 curveto
+ -311.75 279.75 -322.34 276.398 -319.75 280.75 curveto
+ -319.75 280.75 -329.82 263.199 -330.75 258.75 curveto
+ -332.75 274.75 lineto
+ -334.75 271.75 lineto
+ -334.75 271.75 -336.859 279.918 -335.75 280.75 curveto
+ -335.102 282.559 -357.98 273.758 -363.75 250.75 curveto
+ -365.75 241.75 lineto
+ -365.75 241.75 -372.063 257.918 -370.75 262.75 curveto
+ -370.75 262.75 -376.02 261.438 -376.75 256.75 curveto
+ -376.75 256.75 -380.859 282.117 -375.75 288.75 curveto
+ -375.75 288.75 -380.422 289.598 -381.75 285.75 curveto
+ -381.75 293.75 lineto
+ -381.75 293.75 -389.66 292.68 -389.75 295.75 curveto
+ -389.75 295.75 -394.5 299.719 -396.75 294.75 curveto
+ -396.75 294.75 -383.063 333.16 -403.75 311.75 curveto
+ -403.75 311.75 -411.223 300.16 -407.75 320.75 curveto
+ -403.301 341.52 -398.902 343.277 -403.75 343.75 curveto
+ -403.75 343.75 -405.063 347.68 -402.75 349.75 curveto
+ -400.66 351.199 -403.75 349.75 -403.75 349.75 curveto
+ -403.75 349.75 -409.461 345.039 -403.75 368.75 curveto
+ -403.75 368.75 -410.781 367.48 -397.75 399.75 curveto
+ -397.75 399.75 -400.66 402.238 -396.75 411.75 curveto
+ -396.75 411.75 -405.063 406.641 -407.75 408.75 curveto
+ -407.75 408.75 -407.699 410.16 -403.75 414.75 curveto
+ -403.75 414.75 -380.422 474.84 -402.75 450.75 curveto
+ -402.75 450.75 -415.895 435.734 -408.75 460.75 curveto
+ -408.75 460.75 -398.836 487.227 -399.75 491.75 curveto
+ 73.25 466.75 lineto
+ closepath
+fill
+grestore %}
+
+
+% 26 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 73.25 466.75 moveto
+ 72.2578 459.977 71.1719 452.75 69.25 449.75 curveto
+ 69.25 449.75 73.2188 435.68 63.25 420.75 curveto
+ 63.25 420.75 63.9805 413.238 62.25 409.75 curveto
+ 62.25 409.75 57.8203 400.48 52.25 399.75 curveto
+ 48.2695 398.887 38.6719 395.512 28.25 393.75 curveto
+ 28.25 393.75 8.98047 378.48 12.25 364.75 curveto
+ 12.25 364.75 12.9414 346.359 17.25 344.75 curveto
+ 17.25 344.75 4.14063 356.918 14.25 338.75 curveto
+ 19.25 317.75 lineto
+ 19.25 317.75 -8.62109 341.52 8.25 321.75 curveto
+ 19.25 292.75 lineto
+ 19.25 292.75 -2.01953 312.918 6.25 303.75 curveto
+ 9.25 293.75 lineto
+ 9.25 293.75 -38.1016 323.918 -3.75 291.75 curveto
+ -3.75 291.75 -13.0195 295.32 -17.75 291.75 curveto
+ -17.75 291.75 -25.3398 293.559 -24.75 291.75 curveto
+ -24.75 291.75 -1.57813 280.359 2.25 259.75 curveto
+ 2.25 259.75 -6.85938 271.117 -3.75 258.75 curveto
+ -3.75 246.75 lineto
+ -3.75 246.75 -8.17969 270.238 -7.75 228.75 curveto
+ -7.75 228.75 -28.8594 248.68 -15.75 225.75 curveto
+ -15.75 207.75 lineto
+ -15.75 207.75 -32.8203 225.359 -25.75 211.75 curveto
+ -25.75 211.75 -36.7813 220.957 -32.75 203.75 curveto
+ -32.75 203.75 -31.5 192.801 -36.75 204.75 curveto
+ -36.75 204.75 -53.9414 238.777 -47.75 209.75 curveto
+ -47.75 209.75 -46.461 188.84 -51.75 204.75 curveto
+ -51.75 204.75 -52.1797 193.68 -62.75 185.75 curveto
+ -62.75 185.75 -60.9805 241.641 -74.75 201.75 curveto
+ -79.75 183.75 lineto
+ -79.75 183.75 -82.5391 194.117 -81.75 199.75 curveto
+ -81.75 199.75 -98.3789 217.879 -90.75 190.75 curveto
+ -90.75 190.75 -107.621 216.117 -103.75 201.75 curveto
+ -103.75 201.75 -95.7383 184.0 -97.75 178.75 curveto
+ -97.75 178.75 -115.98 217.0 -117.75 218.75 curveto
+ -117.75 218.75 -115.102 172.117 -126.75 211.75 curveto
+ -126.75 211.75 -133.141 198.52 -129.75 193.75 curveto
+ -129.75 193.75 -138.859 202.48 -137.75 205.75 curveto
+ -137.75 205.75 -143.039 215.02 -145.75 199.75 curveto
+ -145.75 199.75 -148.102 189.719 -149.75 192.75 curveto
+ -149.75 192.75 -154.262 166.836 -155.75 191.75 curveto
+ -155.75 191.75 -157.34 206.879 -149.75 219.75 curveto
+ -149.75 219.75 -150.301 223.16 -146.75 227.75 curveto
+ -146.75 227.75 -162.18 203.801 -154.75 235.75 curveto
+ -154.75 235.75 -166.582 226.68 -167.75 226.75 curveto
+ -167.75 226.75 -152.941 252.199 -162.75 246.75 curveto
+ -162.75 246.75 -156.898 258.359 -176.75 244.75 curveto
+ -176.75 244.75 -159.102 262.758 -178.75 251.75 curveto
+ -178.75 251.75 -187.262 245.16 -178.75 255.75 curveto
+ -178.75 255.75 -163.059 273.758 -187.75 253.75 curveto
+ -187.75 253.75 -200.02 235.918 -200.75 232.75 curveto
+ -200.75 232.75 -189.902 264.957 -184.75 267.75 curveto
+ -184.75 267.75 -194.301 308.078 -239.75 290.75 curveto
+ -239.75 290.75 -247.102 272.0 -251.75 291.75 curveto
+ -251.75 291.75 -266.02 299.277 -278.75 268.75 curveto
+ -278.75 268.75 -282.742 283.879 -281.75 286.75 curveto
+ -281.75 286.75 -289.34 285.641 -288.75 286.75 curveto
+ -288.75 286.75 -302.98 282.117 -304.75 282.75 curveto
+ -304.75 282.75 -311.781 275.52 -311.75 279.75 curveto
+ -311.75 279.75 -322.34 276.398 -319.75 280.75 curveto
+ -319.75 280.75 -329.82 263.199 -330.75 258.75 curveto
+ -332.75 274.75 lineto
+ -334.75 271.75 lineto
+ -334.75 271.75 -336.859 279.918 -335.75 280.75 curveto
+ -335.102 282.559 -357.98 273.758 -363.75 250.75 curveto
+ -365.75 241.75 lineto
+ -365.75 241.75 -372.063 257.918 -370.75 262.75 curveto
+ -370.75 262.75 -376.02 261.438 -376.75 256.75 curveto
+ -376.75 256.75 -380.859 282.117 -375.75 288.75 curveto
+ -375.75 288.75 -380.422 289.598 -381.75 285.75 curveto
+ -381.75 293.75 lineto
+ -381.75 293.75 -389.66 292.68 -389.75 295.75 curveto
+ -389.75 295.75 -394.5 299.719 -396.75 294.75 curveto
+ -396.75 294.75 -383.063 333.16 -403.75 311.75 curveto
+ -403.75 311.75 -411.223 300.16 -407.75 320.75 curveto
+ -403.301 341.52 -398.902 343.277 -403.75 343.75 curveto
+ -403.75 343.75 -405.063 347.68 -402.75 349.75 curveto
+ -400.66 351.199 -403.75 349.75 -403.75 349.75 curveto
+ -403.75 349.75 -409.461 345.039 -403.75 368.75 curveto
+ -403.75 368.75 -410.781 367.48 -397.75 399.75 curveto
+ -397.75 399.75 -400.66 402.238 -396.75 411.75 curveto
+ -396.75 411.75 -405.063 406.641 -407.75 408.75 curveto
+ -407.75 408.75 -407.699 410.16 -403.75 414.75 curveto
+ -403.75 414.75 -380.422 474.84 -402.75 450.75 curveto
+ -402.75 450.75 -415.895 435.734 -408.75 460.75 curveto
+ -408.75 460.75 -398.836 487.227 -399.75 491.75 curveto
+ 73.25 466.75 lineto
+ closepath
+stroke
+gsave %{
+
+
+% 27 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.2 0.55 0.85 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -399.75 491.75 moveto
+ -400.379 491.531 -402.805 490.297 -403.75 488.75 curveto
+ -403.75 488.75 -411.66 476.602 -405.75 496.75 curveto
+ -405.75 496.75 -395.82 528.52 -405.75 515.75 curveto
+ -405.75 515.75 -412.102 508.281 -408.75 522.75 curveto
+ -404.328 541.309 -401.75 548.75 -401.75 548.75 curveto
+ -401.75 548.75 -414.301 543.039 -384.75 586.75 curveto
+ -394.75 582.75 lineto
+ -394.75 582.75 -372.941 626.199 -348.75 631.75 curveto
+ -340.75 638.75 lineto
+ -340.75 638.75 -382.621 680.32 -368.75 720.75 curveto
+ -368.75 720.75 -361.063 726.52 -350.75 716.75 curveto
+ -350.75 716.75 -343.461 711.121 -336.75 712.75 curveto
+ -336.75 712.75 -302.98 711.559 -300.75 711.75 curveto
+ -298.582 711.559 -260.301 752.48 -187.75 732.75 curveto
+ -187.75 732.75 -182.422 730.922 -177.75 731.75 curveto
+ -177.75 731.75 -157.34 749.84 -103.75 724.75 curveto
+ -103.75 724.75 -92.6602 722.559 -90.75 722.75 curveto
+ -89.1406 722.559 -86.0586 722.559 -77.75 715.75 curveto
+ -68.461 708.48 -68.0195 707.602 -65.75 705.75 curveto
+ -65.75 705.75 -47.7813 693.519 -42.75 692.75 curveto
+ -42.75 692.75 -29.7383 685.602 -24.75 674.75 curveto
+ -20.75 673.75 lineto
+ -20.75 673.75 -19.1797 665.359 -18.75 663.75 curveto
+ -18.75 663.75 -13.4609 660.078 -12.75 653.75 curveto
+ -12.75 653.75 -2.89844 647.32 -3.75 642.75 curveto
+ -3.75 642.75 -1.57813 636.762 -0.75 631.75 curveto
+ -0.75 631.75 7.21875 626.199 6.25 622.75 curveto
+ 6.25 622.75 14.6992 607.719 13.25 599.75 curveto
+ 13.25 599.75 20.4219 600.68 23.25 597.75 curveto
+ 23.25 597.75 24.3789 592.762 26.25 592.75 curveto
+ 26.25 592.75 29.2188 591.0 26.25 586.75 curveto
+ 26.25 586.75 28.3398 583.52 29.25 581.75 curveto
+ 29.25 581.75 27.8984 578.68 32.25 572.75 curveto
+ 32.25 572.75 39.7813 551.84 37.25 545.75 curveto
+ 37.25 545.75 37.1406 540.84 40.25 538.75 curveto
+ 40.25 538.75 44.1797 539.52 35.25 526.75 curveto
+ 35.25 526.75 34.0586 525.0 37.25 522.75 curveto
+ 37.25 522.75 56.5 518.398 59.25 500.75 curveto
+ 59.25 500.75 74.1016 484.078 74.25 478.75 curveto
+ 74.1016 475.824 73.8008 472.363 73.25 467.75 curveto
+ 73.25 467.75 73.6602 458.117 43.25 456.75 curveto
+ 12.9414 456.359 -399.75 491.75 -399.75 491.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 28 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -399.75 491.75 moveto
+ -400.379 491.531 -402.805 490.297 -403.75 488.75 curveto
+ -403.75 488.75 -411.66 476.602 -405.75 496.75 curveto
+ -405.75 496.75 -395.82 528.52 -405.75 515.75 curveto
+ -405.75 515.75 -412.102 508.281 -408.75 522.75 curveto
+ -404.328 541.309 -401.75 548.75 -401.75 548.75 curveto
+ -401.75 548.75 -414.301 543.039 -384.75 586.75 curveto
+ -394.75 582.75 lineto
+ -394.75 582.75 -372.941 626.199 -348.75 631.75 curveto
+ -340.75 638.75 lineto
+ -340.75 638.75 -382.621 680.32 -368.75 720.75 curveto
+ -368.75 720.75 -361.063 726.52 -350.75 716.75 curveto
+ -350.75 716.75 -343.461 711.121 -336.75 712.75 curveto
+ -336.75 712.75 -302.98 711.559 -300.75 711.75 curveto
+ -298.582 711.559 -260.301 752.48 -187.75 732.75 curveto
+ -187.75 732.75 -182.422 730.922 -177.75 731.75 curveto
+ -177.75 731.75 -157.34 749.84 -103.75 724.75 curveto
+ -103.75 724.75 -92.6602 722.559 -90.75 722.75 curveto
+ -89.1406 722.559 -86.0586 722.559 -77.75 715.75 curveto
+ -68.461 708.48 -68.0195 707.602 -65.75 705.75 curveto
+ -65.75 705.75 -47.7813 693.519 -42.75 692.75 curveto
+ -42.75 692.75 -29.7383 685.602 -24.75 674.75 curveto
+ -20.75 673.75 lineto
+ -20.75 673.75 -19.1797 665.359 -18.75 663.75 curveto
+ -18.75 663.75 -13.4609 660.078 -12.75 653.75 curveto
+ -12.75 653.75 -2.89844 647.32 -3.75 642.75 curveto
+ -3.75 642.75 -1.57813 636.762 -0.75 631.75 curveto
+ -0.75 631.75 7.21875 626.199 6.25 622.75 curveto
+ 6.25 622.75 14.6992 607.719 13.25 599.75 curveto
+ 13.25 599.75 20.4219 600.68 23.25 597.75 curveto
+ 23.25 597.75 24.3789 592.762 26.25 592.75 curveto
+ 26.25 592.75 29.2188 591.0 26.25 586.75 curveto
+ 26.25 586.75 28.3398 583.52 29.25 581.75 curveto
+ 29.25 581.75 27.8984 578.68 32.25 572.75 curveto
+ 32.25 572.75 39.7813 551.84 37.25 545.75 curveto
+ 37.25 545.75 37.1406 540.84 40.25 538.75 curveto
+ 40.25 538.75 44.1797 539.52 35.25 526.75 curveto
+ 35.25 526.75 34.0586 525.0 37.25 522.75 curveto
+ 37.25 522.75 56.5 518.398 59.25 500.75 curveto
+ 59.25 500.75 74.1016 484.078 74.25 478.75 curveto
+ 74.1016 475.824 73.8008 472.363 73.25 467.75 curveto
+ 73.25 467.75 73.6602 458.117 43.25 456.75 curveto
+ 12.9414 456.359 -399.75 491.75 -399.75 491.75 curveto
+ closepath
+stroke
+
+
+% 29 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.2 0.55 0.85 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 57.25 466.75 moveto
+ 84.6602 510.48 69.25 448.75 69.25 448.75 curveto
+ 59.1406 410.598 -83.75 451.75 -83.75 451.75 curveto
+ -83.75 451.75 -269.102 485.398 -281.75 489.75 curveto
+ -293.742 494.199 -398.75 486.75 -398.75 486.75 curveto
+ -392.75 505.75 lineto
+ -321.02 556.68 -299.902 531.16 -284.75 535.75 curveto
+ -269.98 539.961 -272.621 529.398 -268.75 528.75 curveto
+ -265.582 527.641 -222.461 554.922 -215.75 553.75 curveto
+ -208.383 553.16 -180.504 579.285 -196.75 544.75 curveto
+ -214.543 506.961 -132.699 501.238 -113.75 513.75 curveto
+ -95.7383 525.879 -121.75 493.75 -121.75 493.75 curveto
+ -142.379 471.32 -104.75 489.75 -104.75 489.75 curveto
+ -66.6992 503.879 -40.3008 475.719 -36.75 474.75 curveto
+ -33.2617 473.961 -27.9805 470.441 -26.75 477.75 curveto
+ -26.2188 484.52 -17.9609 502.891 17.25 473.75 curveto
+ 38.8984 455.699 54.25 479.75 54.25 479.75 curveto
+ 57.25 466.75 lineto
+ closepath
+fill
+
+
+% 30 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.09 0.5 0.772 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -216.75 551.75 moveto
+ -209.82 551.238 -181.918 577.352 -198.75 542.75 curveto
+ -216.641 503.719 -134.141 499.32 -115.75 511.75 curveto
+ -97.1797 523.961 -123.75 491.75 -123.75 491.75 curveto
+ -143.82 469.398 -105.75 487.75 -105.75 487.75 curveto
+ -68.1406 501.961 -41.7383 473.801 -37.75 472.75 curveto
+ -34.6992 472.039 -29.418 468.52 -28.75 475.75 curveto
+ -27.6602 482.598 -19.543 500.785 15.25 471.75 curveto
+ 38.8203 452.957 53.25 476.75 53.25 476.75 curveto
+ 57.25 465.75 lineto
+ 84.6797 509.219 68.25 444.75 68.25 444.75 curveto
+ 58.418 407.238 -84.75 449.75 -84.75 449.75 curveto
+ -84.75 449.75 -270.539 483.48 -282.75 487.75 curveto
+ -295.18 492.281 -398.75 485.75 -398.75 485.75 curveto
+ -392.75 504.75 lineto
+ -321.582 555.398 -301.34 529.238 -286.75 533.75 curveto
+ -271.422 538.039 -274.063 527.48 -270.75 526.75 curveto
+ -267.02 525.719 -223.902 553.0 -216.75 551.75 curveto
+ closepath
+fill
+
+
+% 31 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.081 0.45 0.695 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -218.75 549.75 moveto
+ -211.262 549.32 -184.055 575.75 -199.75 540.75 curveto
+ -217.641 500.699 -135.582 497.398 -116.75 509.75 curveto
+ -98.6211 522.039 -124.75 489.75 -124.75 489.75 curveto
+ -145.262 467.48 -107.75 485.75 -107.75 485.75 curveto
+ -69.582 500.039 -43.1797 471.879 -39.75 470.75 curveto
+ -36.1406 470.117 -30.8594 466.598 -29.75 473.75 curveto
+ -29.1016 480.68 -21.1289 498.684 14.25 469.75 curveto
+ 38.7422 450.219 53.25 472.75 53.25 472.75 curveto
+ 57.25 463.75 lineto
+ 83.3789 506.641 67.25 441.75 67.25 441.75 curveto
+ 57.6992 403.879 -86.75 447.75 -86.75 447.75 curveto
+ -86.75 447.75 -271.98 481.559 -284.75 485.75 curveto
+ -296.621 490.359 -399.75 483.75 -399.75 483.75 curveto
+ -393.75 502.75 lineto
+ -322.141 554.121 -302.781 527.32 -287.75 531.75 curveto
+ -272.859 536.121 -275.5 525.559 -271.75 524.75 curveto
+ -268.461 523.797 -225.34 551.078 -218.75 549.75 curveto
+ closepath
+fill
+
+
+% 32 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.072 0.4 0.618 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -219.75 548.75 moveto
+ -212.699 547.398 -185.5 573.836 -201.75 538.75 curveto
+ -219.742 497.289 -136.434 495.871 -118.75 507.75 curveto
+ -100.063 520.121 -126.75 487.75 -126.75 487.75 curveto
+ -146.699 465.559 -108.75 483.75 -108.75 483.75 curveto
+ -71.0195 498.121 -44.6211 469.961 -40.75 468.75 curveto
+ -37.582 468.199 -32.3008 464.68 -31.75 471.75 curveto
+ -30.5391 478.758 -22.7109 496.578 12.25 467.75 curveto
+ 38.6602 447.48 53.25 469.75 53.25 469.75 curveto
+ 57.25 461.75 lineto
+ 81.1992 502.52 66.25 438.75 66.25 438.75 curveto
+ 56.9805 400.52 -87.75 445.75 -87.75 445.75 curveto
+ -87.75 445.75 -273.422 479.641 -285.75 483.75 curveto
+ -298.063 488.438 -399.75 481.75 -399.75 481.75 curveto
+ -393.75 501.75 lineto
+ -322.703 552.84 -304.223 525.398 -289.75 529.75 curveto
+ -274.301 534.199 -276.941 523.641 -273.75 522.75 curveto
+ -269.902 521.879 -226.781 549.16 -219.75 548.75 curveto
+ closepath
+fill
+
+
+% 33 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.063 0.35 0.54 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -220.75 546.75 moveto
+ -214.141 545.48 -187.496 572.156 -202.75 536.75 curveto
+ -221.184 493.559 -138.461 493.559 -119.75 505.75 curveto
+ -101.5 518.199 -127.75 485.75 -127.75 485.75 curveto
+ -148.141 463.637 -110.75 481.75 -110.75 481.75 curveto
+ -72.4609 496.199 -46.0625 468.039 -42.75 466.75 curveto
+ -39.0195 466.277 -33.7422 462.758 -32.75 469.75 curveto
+ -31.9805 476.84 -24.2969 494.473 11.25 466.75 curveto
+ 38.5781 444.738 52.25 466.75 52.25 466.75 curveto
+ 57.25 460.75 lineto
+ 79.0195 498.621 66.25 434.75 66.25 434.75 curveto
+ 56.2617 397.156 -88.75 444.75 -88.75 444.75 curveto
+ -88.75 444.75 -274.863 477.719 -286.75 481.75 curveto
+ -299.5 486.52 -400.75 479.75 -400.75 479.75 curveto
+ -394.75 500.75 lineto
+ -323.262 551.559 -305.66 523.48 -290.75 527.75 curveto
+ -275.742 532.277 -278.383 521.719 -274.75 520.75 curveto
+ -271.34 519.957 -228.223 547.238 -220.75 546.75 curveto
+ closepath
+fill
+
+
+% 34 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.054 0.3 0.463 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -222.75 544.75 moveto
+ -215.582 543.559 -187.02 569.355 -203.75 534.75 curveto
+ -225.262 492.078 -139.902 491.641 -121.75 503.75 curveto
+ -102.941 516.277 -129.75 483.75 -129.75 483.75 curveto
+ -149.582 461.719 -111.75 479.75 -111.75 479.75 curveto
+ -73.9023 494.277 -47.5 466.121 -43.75 464.75 curveto
+ -40.4609 464.359 -35.1797 460.84 -34.75 467.75 curveto
+ -33.4219 474.918 -25.8828 492.367 9.25 464.75 curveto
+ 38.5 442.0 52.25 462.75 52.25 462.75 curveto
+ 57.25 458.75 lineto
+ 77.0586 495.16 65.25 431.75 65.25 431.75 curveto
+ 55.5391 393.797 -90.75 442.75 -90.75 442.75 curveto
+ -90.75 442.75 -276.301 475.801 -288.75 479.75 curveto
+ -300.941 484.598 -400.75 477.75 -400.75 477.75 curveto
+ -394.75 498.75 lineto
+ -323.82 550.277 -307.102 521.559 -291.75 525.75 curveto
+ -277.184 530.359 -279.82 519.801 -276.75 518.75 curveto
+ -272.781 518.039 -229.66 545.32 -222.75 544.75 curveto
+ closepath
+fill
+
+
+% 35 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.045 0.25 0.386 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -223.75 542.75 moveto
+ -217.02 541.641 -188.043 567.227 -205.75 532.75 curveto
+ -228.023 488.84 -141.34 489.719 -122.75 501.75 curveto
+ -104.379 514.359 -130.75 481.75 -130.75 481.75 curveto
+ -151.02 459.797 -112.75 478.75 -112.75 478.75 curveto
+ -75.3398 492.359 -48.9414 464.199 -45.75 463.75 curveto
+ -41.9023 462.438 -36.6211 458.918 -35.75 465.75 curveto
+ -34.8594 473.0 -27.4648 490.266 8.25 462.75 curveto
+ 38.4219 439.258 51.25 459.75 51.25 459.75 curveto
+ 57.25 456.75 lineto
+ 74.8789 490.16 64.25 428.75 64.25 428.75 curveto
+ 54.8203 390.438 -91.75 440.75 -91.75 440.75 curveto
+ -91.75 440.75 -277.742 473.879 -289.75 478.75 curveto
+ -302.383 482.68 -401.75 475.75 -401.75 475.75 curveto
+ -395.75 497.75 lineto
+ -324.383 549.0 -308.543 519.637 -293.75 523.75 curveto
+ -278.621 528.441 -281.262 517.879 -277.75 516.75 curveto
+ -274.223 516.117 -231.102 543.398 -223.75 542.75 curveto
+ closepath
+fill
+
+
+% 36 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.036 0.2 0.309 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -225.75 540.75 moveto
+ -218.461 539.719 -188.273 564.66 -206.75 530.75 curveto
+ -231.223 487.359 -142.781 487.801 -124.75 499.75 curveto
+ -105.82 512.438 -131.75 479.75 -131.75 479.75 curveto
+ -152.461 457.879 -114.75 476.75 -114.75 476.75 curveto
+ -76.7813 490.438 -50.3789 462.277 -46.75 461.75 curveto
+ -43.3398 460.519 -38.0586 457.0 -36.75 463.75 curveto
+ -36.3008 471.078 -29.0508 488.16 7.25 460.75 curveto
+ 38.3398 436.52 51.25 456.75 51.25 456.75 curveto
+ 57.25 454.75 lineto
+ 73.1406 486.48 64.25 424.75 64.25 424.75 curveto
+ 54.1016 387.078 -93.75 438.75 -93.75 438.75 curveto
+ -93.75 438.75 -279.18 471.961 -291.75 476.75 curveto
+ -303.82 480.758 -401.75 474.75 -401.75 474.75 curveto
+ -395.75 496.75 lineto
+ -324.941 547.719 -309.98 517.719 -294.75 521.75 curveto
+ -280.063 526.519 -282.703 515.961 -278.75 514.75 curveto
+ -275.66 514.199 -232.543 541.48 -225.75 540.75 curveto
+ closepath
+fill
+
+
+% 37 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.027 0.15 0.231 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -226.75 538.75 moveto
+ -219.902 537.797 -189.715 562.742 -208.75 528.75 curveto
+ -232.66 485.438 -144.223 485.879 -125.75 497.75 curveto
+ -107.262 510.52 -133.75 477.75 -133.75 477.75 curveto
+ -153.902 455.957 -115.75 474.75 -115.75 474.75 curveto
+ -78.2188 488.52 -51.8203 460.359 -48.75 459.75 curveto
+ -44.7813 458.598 -39.5 455.078 -38.75 461.75 curveto
+ -37.7422 469.16 -30.6367 486.055 5.25002 458.75 curveto
+ 38.2617 433.777 50.25 452.75 50.25 452.75 curveto
+ 57.25 453.75 lineto
+ 72.2813 482.578 63.25 421.75 63.25 421.75 curveto
+ 53.3789 383.719 -94.75 436.75 -94.75 436.75 curveto
+ -94.75 436.75 -280.621 470.039 -292.75 474.75 curveto
+ -305.262 478.84 -402.75 472.75 -402.75 472.75 curveto
+ -396.75 495.75 lineto
+ -325.5 546.438 -311.422 515.797 -296.75 519.75 curveto
+ -281.5 524.598 -284.141 514.039 -280.75 512.75 curveto
+ -277.102 512.277 -233.98 539.559 -226.75 538.75 curveto
+ closepath
+fill
+
+
+% 38 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.018 0.1 0.154 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -228.75 536.75 moveto
+ -221.34 535.879 -191.582 561.055 -209.75 526.75 curveto
+ -234.102 482.199 -145.66 483.961 -126.75 496.75 curveto
+ -108.703 508.598 -134.75 475.75 -134.75 475.75 curveto
+ -155.34 454.039 -117.75 472.75 -117.75 472.75 curveto
+ -79.6602 486.598 -53.2617 458.438 -49.75 457.75 curveto
+ -46.2188 456.68 -40.9414 453.16 -39.75 459.75 curveto
+ -39.1797 467.238 -32.2188 483.949 4.25 456.75 curveto
+ 38.1797 431.039 50.25 449.75 50.25 449.75 curveto
+ 57.25 451.75 lineto
+ 71.6406 478.238 62.25 417.75 62.25 417.75 curveto
+ 52.6602 380.359 -96.75 434.75 -96.75 434.75 curveto
+ -96.75 434.75 -282.063 468.117 -294.75 472.75 curveto
+ -306.703 476.918 -402.75 470.75 -402.75 470.75 curveto
+ -397.75 493.75 lineto
+ -326.063 545.16 -312.859 513.879 -297.75 518.75 curveto
+ -282.941 522.68 -285.582 512.117 -281.75 510.75 curveto
+ -278.543 510.359 -235.422 537.641 -228.75 536.75 curveto
+ closepath
+fill
+
+
+% 39 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.009 0.05 0.077 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -229.75 534.75 moveto
+ -222.781 533.961 -194.207 559.746 -211.75 524.75 curveto
+ -234.66 478.078 -147.102 482.039 -128.75 494.75 curveto
+ -110.141 506.68 -136.75 473.75 -136.75 473.75 curveto
+ -156.781 452.117 -118.75 470.75 -118.75 470.75 curveto
+ -81.1016 484.68 -54.7031 456.52 -50.75 455.75 curveto
+ -47.6602 454.758 -42.3828 451.238 -41.75 458.75 curveto
+ -40.6211 465.32 -33.8047 481.844 2.25 454.75 curveto
+ 38.1016 428.297 50.25 446.75 50.25 446.75 curveto
+ 57.25 449.75 lineto
+ 71.4414 475.66 61.25 414.75 61.25 414.75 curveto
+ 51.9375 377.0 -97.75 432.75 -97.75 432.75 curveto
+ -97.75 432.75 -283.504 466.199 -295.75 470.75 curveto
+ -308.141 475.0 -403.75 468.75 -403.75 468.75 curveto
+ -397.75 492.75 lineto
+ -326.621 543.879 -314.301 511.957 -299.75 516.75 curveto
+ -284.383 520.758 -287.023 510.199 -283.75 509.75 curveto
+ -279.98 508.438 -236.859 535.719 -229.75 534.75 curveto
+ closepath
+fill
+
+
+% 40 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 57.25 448.75 moveto
+ 71.4609 472.641 61.25 411.75 61.25 411.75 curveto
+ 51.2188 373.641 -99.75 430.75 -99.75 430.75 curveto
+ -99.75 430.75 -284.941 464.281 -297.75 468.75 curveto
+ -309.582 473.078 -403.75 466.75 -403.75 466.75 curveto
+ -398.75 491.75 lineto
+ -327.18 542.602 -315.742 510.039 -300.75 514.75 curveto
+ -285.82 518.84 -288.461 508.281 -284.75 507.75 curveto
+ -281.422 506.52 -238.301 533.801 -231.75 532.75 curveto
+ -224.223 532.039 -196.48 558.227 -212.75 522.75 curveto
+ -237.23 470.762 -145.945 481.852 -129.75 492.75 curveto
+ -111.578 504.762 -137.75 471.75 -137.75 471.75 curveto
+ -158.219 450.199 -120.75 468.75 -120.75 468.75 curveto
+ -82.5391 482.762 -56.1406 454.598 -52.75 453.75 curveto
+ -49.1016 452.84 -43.8203 449.32 -42.75 456.75 curveto
+ -42.0586 463.398 -35.3867 479.742 1.25 452.75 curveto
+ 38.0195 425.559 49.25 442.75 49.25 442.75 curveto
+ 57.25 448.75 lineto
+ closepath
+fill
+
+
+% 41 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 11.25 415.75 moveto
+ 11.25 415.75 19.5391 402.68 -3.75 387.75 curveto
+ -3.75 387.75 -4.87891 386.617 15.25 390.75 curveto
+ 15.25 390.75 21.7383 393.438 23.25 404.75 curveto
+ 23.25 404.75 28.7813 409.719 34.25 415.75 curveto
+ 39.3398 422.039 11.25 415.75 11.25 415.75 curveto
+ closepath
+fill
+
+
+% 42 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -142.75 467.75 moveto
+ -142.75 467.75 -161.848 438.297 -160.75 432.75 curveto
+ -159.762 421.598 -159.539 411.039 -162.75 406.75 curveto
+ -166.582 402.238 -176.75 365.75 -176.75 365.75 curveto
+ -176.75 365.75 -175.82 364.398 -189.75 405.75 curveto
+ -189.75 405.75 -202.223 423.801 -179.75 443.75 curveto
+ -179.75 443.75 -141.5 475.719 -142.75 467.75 curveto
+ closepath
+fill
+
+
+% 43 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -10.75 385.75 moveto
+ -10.75 385.75 -22.6992 378.039 -6.75 343.75 curveto
+ -13.75 346.75 lineto
+ -13.75 346.75 -13.0195 334.039 -9.75 331.75 curveto
+ -17.75 334.75 lineto
+ -17.75 334.75 -22.6992 326.117 -18.75 320.75 curveto
+ -18.75 320.75 -36.7813 312.039 -35.75 304.75 curveto
+ -35.75 304.75 -42.9414 313.801 -38.75 320.75 curveto
+ -34.1406 327.879 -26.2188 323.48 -26.75 343.75 curveto
+ -17.75 339.75 lineto
+ -17.75 339.75 -23.5781 349.879 -23.75 356.75 curveto
+ -14.75 354.75 lineto
+ -14.75 354.75 -31.7969 383.516 -19.75 384.75 curveto
+ -13.4609 385.957 -10.75 385.75 -10.75 385.75 curveto
+ closepath
+fill
+
+
+% 44 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -45.75 367.75 moveto
+ -45.75 367.75 -49.1016 372.32 -45.75 371.75 curveto
+ -42.9414 370.559 -8.62109 354.277 -1.75 343.75 curveto
+ -1.75 343.75 -39.8594 370.559 -45.75 367.75 curveto
+ closepath
+fill
+
+
+% 45 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -57.75 358.75 moveto
+ -57.75 358.75 -60.5391 363.52 -57.75 362.75 curveto
+ -54.3789 361.758 -20.0586 345.48 -13.75 334.75 curveto
+ -13.75 334.75 -51.3008 361.758 -57.75 358.75 curveto
+ closepath
+fill
+
+
+% 46 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -71.75 375.75 moveto
+ -71.75 375.75 -75.0586 380.238 -71.75 379.75 curveto
+ -68.8984 378.48 -34.5781 362.199 -27.75 351.75 curveto
+ -27.75 351.75 -65.8203 378.48 -71.75 375.75 curveto
+ closepath
+fill
+
+
+% 47 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -46.75 327.75 moveto
+ -46.75 327.75 -46.461 334.039 -43.75 332.75 curveto
+ -40.3008 332.277 -0.699219 312.918 6.25 302.75 curveto
+ 6.25 302.75 -40.3008 330.52 -46.75 327.75 curveto
+ closepath
+fill
+
+
+% 48 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -47.75 339.75 moveto
+ -47.75 339.75 -49.1016 344.598 -45.75 343.75 curveto
+ -43.8203 343.719 -14.7813 330.957 -7.75 320.75 curveto
+ -7.75 320.75 -40.7383 344.16 -47.75 339.75 curveto
+ closepath
+fill
+
+
+% 49 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -31.75 286.75 moveto
+ -20.75 278.75 lineto
+ -20.75 278.75 -32.3789 286.957 -36.75 285.75 curveto
+ -36.75 285.75 -28.8594 273.32 -27.75 267.75 curveto
+ -27.75 267.75 -39.4219 281.68 -45.75 280.75 curveto
+ -45.75 280.75 -53.9414 280.801 -53.75 268.75 curveto
+ -53.75 268.75 -60.1016 280.359 -63.75 279.75 curveto
+ -63.75 279.75 -64.9414 272.879 -63.75 265.75 curveto
+ -63.75 265.75 -68.0195 273.758 -72.75 271.75 curveto
+ -72.75 271.75 -79.461 274.199 -78.75 261.75 curveto
+ -78.75 261.75 -78.5781 250.0 -77.75 246.75 curveto
+ -77.75 246.75 -83.8594 275.957 -86.75 276.75 curveto
+ -86.75 276.75 -95.3008 277.719 -100.75 267.75 curveto
+ -100.75 267.75 -96.1797 276.398 -101.75 273.75 curveto
+ -101.75 273.75 -113.34 272.438 -116.75 264.75 curveto
+ -116.75 264.75 -109.379 278.16 -115.75 274.75 curveto
+ -115.75 274.75 -123.02 274.641 -124.75 267.75 curveto
+ -124.75 267.75 -133.578 244.277 -135.75 242.75 curveto
+ -135.75 242.75 -127.422 266.277 -128.75 266.75 curveto
+ -128.75 266.75 -126.98 279.48 -132.75 262.75 curveto
+ -132.75 262.75 -129.18 278.598 -135.75 277.75 curveto
+ -141.5 276.84 -146.34 265.84 -155.75 268.75 curveto
+ -155.75 268.75 -166.141 262.32 -168.75 338.75 curveto
+ -31.75 286.75 lineto
+ closepath
+fill
+
+
+% 50 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -36.75 388.75 moveto
+ -36.75 388.75 -53.5 395.641 -97.75 388.75 curveto
+ -97.75 388.75 -105.422 388.598 -112.75 398.75 curveto
+ -120.379 407.957 -149.859 415.879 -156.75 413.75 curveto
+ -167.75 406.75 lineto
+ -168.75 405.75 lineto
+ -168.75 405.75 -181.98 393.879 -182.75 385.75 curveto
+ -182.859 377.16 -166.582 324.359 -155.75 306.75 curveto
+ -145.461 289.16 -134.898 275.52 -113.75 277.75 curveto
+ -113.75 277.75 -90.8984 282.559 -62.75 277.75 curveto
+ -62.75 277.75 -30.6211 279.918 -27.75 288.75 curveto
+ -24.461 297.52 -39.75 313.75 -39.75 313.75 curveto
+ -39.75 313.75 -44.6992 323.48 -43.75 339.75 curveto
+ -42.0586 355.16 -42.5 385.957 -36.75 388.75 curveto
+ closepath
+fill
+
+
+% 51 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.1 0.6 0.45 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -61.75 386.75 moveto
+ -70.6602 366.598 -37.75 294.75 -37.75 294.75 curveto
+ -35.8984 293.117 -52.0273 286.469 -62.75 288.75 curveto
+ -75.2188 292.063 -119.75 287.75 -119.75 287.75 curveto
+ -145.461 304.559 -159.75 353.75 -159.75 353.75 curveto
+ -159.75 353.75 -170.98 379.801 -151.75 383.75 curveto
+ -132.262 386.84 -61.75 386.75 -61.75 386.75 curveto
+ closepath
+fill
+
+
+% 52 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.3 0.8 0.65 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -58.75 352.75 moveto
+ -62.8438 366.922 -64.5859 379.902 -61.75 386.75 curveto
+ -61.75 386.75 -130.059 379.801 -142.75 402.75 curveto
+ -147.047 411.34 -163.281 377.598 -162.75 366.75 curveto
+ -162.75 366.75 -93.5391 351.199 -77.75 363.75 curveto
+ -58.75 352.75 lineto
+ closepath
+fill
+
+
+% 53 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.35 0.85 0.7 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -63.75 334.75 moveto
+ -63.75 334.75 -66.2617 327.0 -63.75 322.75 curveto
+ -63.75 322.75 -61.8594 321.719 -60.75 321.75 curveto
+ -60.75 321.75 -61.8594 317.32 -68.75 315.75 curveto
+ -68.75 315.75 -70.6602 310.719 -73.75 310.75 curveto
+ -75.9414 309.84 -81.2188 303.68 -85.75 304.75 curveto
+ -90.0195 306.32 -102.75 310.75 -102.75 310.75 curveto
+ -102.75 310.75 -108.5 314.238 -117.75 310.75 curveto
+ -117.75 310.75 -120.793 311.16 -121.75 315.75 curveto
+ -121.809 320.73 -125.219 324.801 -127.75 326.75 curveto
+ -129.621 329.199 -140.18 343.277 -138.75 343.75 curveto
+ -137.539 344.16 -63.75 334.75 -63.75 334.75 curveto
+ closepath
+fill
+gsave %{
+
+
+% 54 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.55 0.5 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -58.75 387.75 moveto
+ -58.75 387.75 -56.1406 363.52 -59.75 354.75 curveto
+ -63.1797 345.039 -62.3008 342.84 -61.75 338.75 curveto
+ -60.5391 334.039 -65.3789 323.039 -71.75 316.75 curveto
+ -84.75 314.75 lineto
+ -84.75 314.75 -101.461 318.641 -111.75 315.75 curveto
+ -111.75 315.75 -121.473 314.082 -124.75 330.75 curveto
+ -124.75 330.75 -130.5 337.559 -138.75 340.75 curveto
+ -146.34 343.719 -154.262 389.48 -149.75 398.75 curveto
+ -145.461 407.078 -129.621 411.918 -111.75 394.75 curveto
+ -94.4219 377.598 -92.2188 396.078 -58.75 387.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 55 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -58.75 387.75 moveto
+ -58.75 387.75 -56.1406 363.52 -59.75 354.75 curveto
+ -63.1797 345.039 -62.3008 342.84 -61.75 338.75 curveto
+ -60.5391 334.039 -65.3789 323.039 -71.75 316.75 curveto
+ -84.75 314.75 lineto
+ -84.75 314.75 -101.461 318.641 -111.75 315.75 curveto
+ -111.75 315.75 -121.473 314.082 -124.75 330.75 curveto
+ -124.75 330.75 -130.5 337.559 -138.75 340.75 curveto
+ -146.34 343.719 -154.262 389.48 -149.75 398.75 curveto
+ -145.461 407.078 -129.621 411.918 -111.75 394.75 curveto
+ -94.4219 377.598 -92.2188 396.078 -58.75 387.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 56 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.55 setlinewidth
+ 0.0 0.0 0.2 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -60.75 305.75 moveto
+ -60.75 305.75 -60.1016 308.078 -55.75 308.75 curveto
+ -55.75 308.75 -30.6211 312.48 -21.75 325.75 curveto
+ -21.75 325.75 -13.8984 332.277 -18.75 319.75 curveto
+ -18.75 319.75 -30.1797 297.078 -37.75 293.75 curveto
+ -37.75 293.75 -55.6992 289.598 -60.75 305.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 57 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.55 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -60.75 305.75 moveto
+ -60.75 305.75 -60.1016 308.078 -55.75 308.75 curveto
+ -55.75 308.75 -30.6211 312.48 -21.75 325.75 curveto
+ -21.75 325.75 -13.8984 332.277 -18.75 319.75 curveto
+ -18.75 319.75 -30.1797 297.078 -37.75 293.75 curveto
+ -37.75 293.75 -55.6992 289.598 -60.75 305.75 curveto
+ closepath
+stroke
+
+
+% 58 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.2 0.75 0.7 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -148.75 375.75 moveto
+ -149.641 384.945 -151.789 394.422 -149.75 398.75 curveto
+ -142.77 412.461 -124.098 406.535 -111.75 394.75 curveto
+ -94.4219 377.598 -92.2188 396.078 -58.75 387.75 curveto
+ -58.75 387.75 -57.3008 372.801 -57.75 361.75 curveto
+ -57.75 361.75 -99.2617 374.52 -99.75 368.75 curveto
+ -99.75 368.75 -101.898 371.879 -111.75 371.75 curveto
+ -122.141 371.879 -147.156 373.168 -148.75 375.75 curveto
+ closepath
+fill
+
+
+% 59 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 2.2 setlinewidth
+ 0.35 0.9 0.85 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -101.75 387.75 moveto
+ -101.75 387.75 -106.738 382.0 -102.75 371.75 curveto
+ -102.75 371.75 -86.9414 353.84 -88.75 338.75 curveto
+stroke
+gsave %{
+
+
+% 60 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.55 setlinewidth
+ 0.0 0.0 0.2 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -48.75 293.75 moveto
+ -48.75 293.75 -43.8203 308.078 -53.75 300.75 curveto
+ -53.75 300.75 -58.7813 298.398 -57.75 296.75 curveto
+ -56.1406 294.879 -49.9805 290.48 -48.75 293.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 61 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.55 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -48.75 293.75 moveto
+ -48.75 293.75 -43.8203 308.078 -53.75 300.75 curveto
+ -53.75 300.75 -58.7813 298.398 -57.75 296.75 curveto
+ -56.1406 294.879 -49.9805 290.48 -48.75 293.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 62 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.55 setlinewidth
+ 0.0 0.0 0.2 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -53.75 292.75 moveto
+ -53.75 292.75 -50.332 303.941 -57.75 297.75 curveto
+ -57.75 297.75 -62.9375 295.266 -60.75 294.75 curveto
+ -56.2266 293.383 -61.2422 290.566 -53.75 292.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 63 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.55 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -53.75 292.75 moveto
+ -53.75 292.75 -50.332 303.941 -57.75 297.75 curveto
+ -57.75 297.75 -62.9375 295.266 -60.75 294.75 curveto
+ -56.2266 293.383 -61.2422 290.566 -53.75 292.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 64 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.55 setlinewidth
+ 0.0 0.0 0.2 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -59.75 292.75 moveto
+ -59.75 292.75 -55.6133 303.941 -63.75 297.75 curveto
+ -63.75 297.75 -68.168 295.418 -66.75 294.75 curveto
+ -62.8281 293.383 -66.5234 290.566 -59.75 292.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 65 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.55 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -59.75 292.75 moveto
+ -59.75 292.75 -55.6133 303.941 -63.75 297.75 curveto
+ -63.75 297.75 -68.168 295.418 -66.75 294.75 curveto
+ -62.8281 293.383 -66.5234 290.566 -59.75 292.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 66 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.55 setlinewidth
+ 0.0 0.0 0.2 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -66.75 292.75 moveto
+ -66.75 292.75 -62.8711 303.723 -70.75 297.75 curveto
+ -70.75 297.75 -75.4375 295.172 -73.75 294.75 curveto
+ -70.5273 293.383 -73.7852 290.348 -66.75 292.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 67 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.55 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -66.75 292.75 moveto
+ -66.75 292.75 -62.8711 303.723 -70.75 297.75 curveto
+ -70.75 297.75 -75.4375 295.172 -73.75 294.75 curveto
+ -70.5273 293.383 -73.7852 290.348 -66.75 292.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 68 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.55 setlinewidth
+ 0.0 0.0 0.2 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -73.75 292.75 moveto
+ -73.75 292.75 -70.0 303.813 -77.75 297.75 curveto
+ -77.75 297.75 -81.9688 296.066 -80.75 294.75 curveto
+ -79.8555 293.25 -80.9141 290.434 -73.75 292.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 69 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.55 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -73.75 292.75 moveto
+ -73.75 292.75 -70.0 303.813 -77.75 297.75 curveto
+ -77.75 297.75 -81.9688 296.066 -80.75 294.75 curveto
+ -79.8555 293.25 -80.9141 290.434 -73.75 292.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 70 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.55 setlinewidth
+ 0.0 0.0 0.2 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -80.75 291.75 moveto
+ -80.75 291.75 -75.9414 305.438 -85.75 298.75 curveto
+ -85.75 298.75 -91.3398 296.199 -89.75 294.75 curveto
+ -88.6992 292.68 -90.0195 289.16 -80.75 291.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 71 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.55 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -80.75 291.75 moveto
+ -80.75 291.75 -75.9414 305.438 -85.75 298.75 curveto
+ -85.75 298.75 -91.3398 296.199 -89.75 294.75 curveto
+ -88.6992 292.68 -90.0195 289.16 -80.75 291.75 curveto
+ closepath
+stroke
+
+
+% 72 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 2.2 setlinewidth
+ 0.35 0.85 0.7 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -49.75 310.75 moveto
+ -49.75 310.75 -64.5 313.801 -70.75 310.75 curveto
+ -70.75 310.75 -77.6992 308.957 -78.75 309.75 curveto
+ -80.3398 309.84 -83.75 310.75 -83.75 310.75 curveto
+stroke
+
+
+% 73 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 2.2 setlinewidth
+ 0.35 0.85 0.7 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -87.75 300.75 moveto
+ -87.75 300.75 -100.578 316.0 -113.75 310.75 curveto
+ -121.496 308.328 -120.379 312.039 -121.75 314.75 curveto
+ -122.141 318.199 -122.359 322.82 -127.75 325.75 curveto
+stroke
+gsave %{
+
+
+% 74 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.55 setlinewidth
+ 0.0 0.0 0.2 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -106.75 318.75 moveto
+ -106.75 318.75 -101.898 330.52 -98.75 316.75 curveto
+ -95.7383 302.359 -92.2188 298.398 -90.75 295.75 curveto
+ -90.75 295.75 -90.461 289.598 -99.75 289.75 curveto
+ -99.75 289.75 -111.578 290.48 -111.75 293.75 curveto
+ -112.461 296.641 -110.699 309.398 -106.75 318.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 75 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.55 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -106.75 318.75 moveto
+ -106.75 318.75 -101.898 330.52 -98.75 316.75 curveto
+ -95.7383 302.359 -92.2188 298.398 -90.75 295.75 curveto
+ -90.75 295.75 -90.461 289.598 -99.75 289.75 curveto
+ -99.75 289.75 -111.578 290.48 -111.75 293.75 curveto
+ -112.461 296.641 -110.699 309.398 -106.75 318.75 curveto
+ closepath
+stroke
+
+
+% 76 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 2.2 setlinewidth
+ 0.35 0.85 0.7 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -121.75 310.75 moveto
+ -121.75 310.75 -125.66 313.359 -128.75 311.75 curveto
+stroke
+
+
+% 77 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 2.2 setlinewidth
+ 0.35 0.85 0.7 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -128.75 328.75 moveto
+ -128.75 328.75 -132.039 334.148 -137.75 334.75 curveto
+stroke
+
+
+% 78 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 0.3 setcmykcolor
+() p2esetcolorname
+newpath
+ -41.75 288.75 moveto
+ -41.75 288.75 -61.4219 284.758 -66.75 286.75 curveto
+ -66.75 286.75 -75.9414 286.52 -66.75 284.75 curveto
+ -66.75 284.75 -52.6211 284.32 -43.75 285.75 curveto
+ -43.75 285.75 -31.0586 291.801 -41.75 288.75 curveto
+ closepath
+fill
+gsave %{
+
+
+% 79 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.55 setlinewidth
+ 0.0 0.0 0.2 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -56.75 390.75 moveto
+ -56.75 390.75 -76.3789 390.801 -78.75 389.75 curveto
+ -78.75 389.75 -86.5 356.039 -82.75 347.75 curveto
+ -82.75 347.75 -81.2188 344.598 -77.75 350.75 curveto
+ -77.75 350.75 -57.8984 386.84 -54.75 388.75 curveto
+ -50.8594 391.238 -55.6992 390.801 -56.75 390.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 80 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.55 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -56.75 390.75 moveto
+ -56.75 390.75 -76.3789 390.801 -78.75 389.75 curveto
+ -78.75 389.75 -86.5 356.039 -82.75 347.75 curveto
+ -82.75 347.75 -81.2188 344.598 -77.75 350.75 curveto
+ -77.75 350.75 -57.8984 386.84 -54.75 388.75 curveto
+ -50.8594 391.238 -55.6992 390.801 -56.75 390.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 81 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.55 setlinewidth
+ 0.0 0.0 0.2 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 28.25 393.75 moveto
+ 28.25 393.75 18.0 391.898 4.25 388.75 curveto
+ 4.25 388.75 -1.14063 364.398 -4.75 358.75 curveto
+ -8.17969 353.84 -4.21875 353.84 -0.75 356.75 curveto
+ 3.69922 360.0 19.9805 375.398 22.25 379.75 curveto
+ 24.3789 385.078 28.25 393.75 28.25 393.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 82 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.55 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 28.25 393.75 moveto
+ 28.25 393.75 18.0 391.898 4.25 388.75 curveto
+ 4.25 388.75 -1.14063 364.398 -4.75 358.75 curveto
+ -8.17969 353.84 -4.21875 353.84 -0.75 356.75 curveto
+ 3.69922 360.0 19.9805 375.398 22.25 379.75 curveto
+ 24.3789 385.078 28.25 393.75 28.25 393.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 83 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.55 setlinewidth
+ 0.0 0.0 0.2 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 3.25 388.75 moveto
+ 3.25 388.75 -2.63672 387.098 -3.75 384.75 curveto
+ -4.85547 382.227 -2.75 378.75 -2.75 378.75 curveto
+ -2.75 378.75 -1.32422 374.965 0.25 377.75 curveto
+ 1.32031 379.723 4.48047 388.148 3.25 388.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 84 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.55 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 3.25 388.75 moveto
+ 3.25 388.75 -2.63672 387.098 -3.75 384.75 curveto
+ -4.85547 382.227 -2.75 378.75 -2.75 378.75 curveto
+ -2.75 378.75 -1.32422 374.965 0.25 377.75 curveto
+ 1.32031 379.723 4.48047 388.148 3.25 388.75 curveto
+ closepath
+stroke
+
+
+% 85 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.55 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 3.25 388.75 moveto
+ 3.25 388.75 -0.261719 383.32 -3.75 383.75 curveto
+ -8.17969 383.32 -8.60156 383.773 -11.75 382.75 curveto
+ -16.7617 382.0 -16.3203 384.199 -23.75 382.75 curveto
+ -26.4844 382.352 -29.3008 383.32 -32.75 381.75 curveto
+ -35.461 380.68 -38.9805 381.559 -40.75 383.75 curveto
+ -41.6211 385.957 -46.75 390.75 -46.75 390.75 curveto
+ -46.75 390.75 -32.8203 388.598 -29.75 387.75 curveto
+ -29.75 387.75 -5.10156 386.398 3.25 388.75 curveto
+ closepath
+fill
+gsave %{
+
+
+% 86 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.55 setlinewidth
+ 0.0 0.0 0.2 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -45.75 388.75 moveto
+ -45.75 388.75 -38.2656 384.969 -37.75 382.75 curveto
+ -37.3867 379.688 -43.75 375.75 -43.75 375.75 curveto
+ -43.75 375.75 -46.625 370.559 -47.75 372.75 curveto
+ -47.9453 375.84 -46.2383 388.379 -45.75 388.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 87 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.55 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -45.75 388.75 moveto
+ -45.75 388.75 -38.2656 384.969 -37.75 382.75 curveto
+ -37.3867 379.688 -43.75 375.75 -43.75 375.75 curveto
+ -43.75 375.75 -46.625 370.559 -47.75 372.75 curveto
+ -47.9453 375.84 -46.2383 388.379 -45.75 388.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 88 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.55 setlinewidth
+ 0.0 0.0 0.2 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -3.75 382.75 moveto
+ -3.75 382.75 -11.8359 370.5 -11.75 382.75 curveto
+ -11.75 382.75 -12.6875 384.219 -10.75 383.75 curveto
+ -4.06641 384.324 -5.73828 388.836 -3.75 382.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 89 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.55 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -3.75 382.75 moveto
+ -3.75 382.75 -11.8359 370.5 -11.75 382.75 curveto
+ -11.75 382.75 -12.6875 384.219 -10.75 383.75 curveto
+ -4.06641 384.324 -5.73828 388.836 -3.75 382.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 90 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.55 setlinewidth
+ 0.0 0.0 0.2 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -11.75 382.75 moveto
+ -11.75 382.75 -20.7344 370.23 -19.75 382.75 curveto
+ -19.75 382.75 -20.043 383.004 -17.75 382.75 curveto
+ -12.8945 383.625 -13.2734 388.594 -11.75 382.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 91 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.55 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -11.75 382.75 moveto
+ -11.75 382.75 -20.7344 370.23 -19.75 382.75 curveto
+ -19.75 382.75 -20.043 383.004 -17.75 382.75 curveto
+ -12.8945 383.625 -13.2734 388.594 -11.75 382.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 92 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.55 setlinewidth
+ 0.0 0.0 0.2 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -19.75 382.75 moveto
+ -19.75 382.75 -28.7109 370.836 -27.75 381.75 curveto
+ -27.75 381.75 -28.1094 382.824 -26.75 382.75 curveto
+ -22.0078 383.93 -21.7734 387.504 -19.75 382.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 93 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.55 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -19.75 382.75 moveto
+ -19.75 382.75 -28.7109 370.836 -27.75 381.75 curveto
+ -27.75 381.75 -28.1094 382.824 -26.75 382.75 curveto
+ -22.0078 383.93 -21.7734 387.504 -19.75 382.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 94 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.55 setlinewidth
+ 0.0 0.0 0.2 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -27.75 382.75 moveto
+ -27.75 382.75 -36.2109 369.719 -36.75 380.75 curveto
+ -36.75 380.75 -38.4023 381.996 -36.75 381.75 curveto
+ -30.082 383.055 -30.957 387.953 -27.75 382.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 95 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.55 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -27.75 382.75 moveto
+ -27.75 382.75 -36.2109 369.719 -36.75 380.75 curveto
+ -36.75 380.75 -38.4023 381.996 -36.75 381.75 curveto
+ -30.082 383.055 -30.957 387.953 -27.75 382.75 curveto
+ closepath
+stroke
+
+
+% 96 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.55 setlinewidth
+ 0.1 0.1 0.3 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 12.25 378.75 moveto
+ 20.25 379.75 lineto
+ 23.5547 385.738 26.25 392.75 26.25 392.75 curveto
+ 26.25 392.75 18.8789 391.402 5.25002 388.75 curveto
+ 5.25002 388.75 4.16797 384.676 2.25 378.75 curveto
+ 12.25 378.75 lineto
+ closepath
+fill
+
+
+% 97 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.55 setlinewidth
+ 0.1 0.1 0.3 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -59.75 383.75 moveto
+ -57.4727 386.441 -56.0234 388.375 -55.75 388.75 curveto
+ -51.9922 390.891 -56.5508 390.477 -57.75 390.75 curveto
+ -57.75 390.75 -76.0195 390.477 -77.75 389.75 curveto
+ -77.75 389.75 -78.668 387.184 -79.75 383.75 curveto
+ -79.75 383.75 -68.3242 385.664 -59.75 383.75 curveto
+ closepath
+fill
+
+
+% 98 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.2 0.55 0.85 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -118.75 535.75 moveto
+ -148.762 531.289 -176.832 570.496 -178.75 580.75 curveto
+ -180.707 591.793 -169.75 604.75 -169.75 604.75 curveto
+ -171.023 608.246 -165.699 623.734 -159.75 633.75 curveto
+ -154.086 644.063 -136.594 642.992 -117.75 643.75 curveto
+ -99.875 645.031 -79.5469 619.379 -77.75 617.75 curveto
+ -76.6445 615.508 -83.4219 573.398 -84.75 566.75 curveto
+ -86.3242 560.816 -83.75 531.75 -83.75 531.75 curveto
+ -121.086 541.785 -87.7773 540.004 -118.75 535.75 curveto
+ closepath
+fill
+
+
+% 99 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.08 0.44 0.68 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -78.75 616.75 moveto
+ -77.4727 614.832 -84.125 573.488 -85.75 567.75 curveto
+ -86.9766 561.133 -83.75 532.75 -83.75 532.75 curveto
+ -120.063 542.387 -88.4023 540.699 -118.75 536.75 curveto
+ -148.277 532.145 -175.84 570.637 -177.75 580.75 curveto
+ -179.641 591.547 -168.75 604.75 -168.75 604.75 curveto
+ -170.137 607.703 -164.91 622.91 -158.75 632.75 curveto
+ -153.504 642.867 -136.332 641.816 -117.75 642.75 curveto
+ -100.281 643.816 -80.3242 618.633 -78.75 616.75 curveto
+ closepath
+fill
+
+
+% 100 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.06 0.33 0.51 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -79.75 615.75 moveto
+ -78.2969 614.152 -84.8281 573.574 -85.75 567.75 curveto
+ -87.625 561.449 -84.75 533.75 -84.75 533.75 curveto
+ -119.371 543.539 -89.0273 541.395 -118.75 536.75 curveto
+ -147.793 533.0 -174.844 570.777 -176.75 580.75 curveto
+ -178.574 591.301 -167.75 603.75 -167.75 603.75 curveto
+ -169.246 607.156 -164.117 622.082 -158.75 631.75 curveto
+ -152.922 641.672 -136.07 640.637 -117.75 641.75 curveto
+ -100.687 642.602 -81.0977 617.883 -79.75 615.75 curveto
+ closepath
+fill
+
+
+% 101 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.04 0.22 0.34 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -80.75 615.75 moveto
+ -79.125 613.477 -85.5313 573.664 -86.75 567.75 curveto
+ -88.2773 561.766 -85.75 534.75 -85.75 534.75 curveto
+ -117.91 544.254 -89.6523 542.09 -118.75 537.75 curveto
+ -147.309 533.852 -173.852 570.918 -175.75 580.75 curveto
+ -177.512 591.055 -166.75 603.75 -166.75 603.75 curveto
+ -168.359 606.609 -163.324 621.254 -157.75 630.75 curveto
+ -152.344 640.473 -135.805 639.461 -117.75 640.75 curveto
+ -101.09 641.391 -81.8711 617.137 -80.75 615.75 curveto
+ closepath
+fill
+
+
+% 102 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.02 0.11 0.17 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -81.75 614.75 moveto
+ -79.9531 612.797 -86.2344 573.75 -87.75 567.75 curveto
+ -88.9297 562.082 -85.75 534.75 -85.75 534.75 curveto
+ -116.891 544.965 -90.2734 542.785 -118.75 538.75 curveto
+ -146.824 534.707 -172.855 571.059 -174.75 580.75 curveto
+ -176.445 590.805 -165.75 602.75 -165.75 602.75 curveto
+ -167.469 606.066 -162.531 620.426 -156.75 629.75 curveto
+ -151.762 639.277 -135.543 638.285 -117.75 639.75 curveto
+ -101.496 640.176 -82.6445 616.387 -81.75 614.75 curveto
+ closepath
+fill
+
+
+% 103 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -118.75 539.75 moveto
+ -146.34 535.559 -171.859 571.199 -173.75 580.75 curveto
+ -175.383 590.559 -165.75 602.75 -165.75 602.75 curveto
+ -166.582 605.52 -161.738 619.602 -156.75 628.75 curveto
+ -151.18 638.078 -135.281 637.105 -117.75 637.75 curveto
+ -101.898 638.961 -83.4219 615.641 -81.75 613.75 curveto
+ -80.7813 612.121 -86.9414 573.84 -88.75 567.75 curveto
+ -89.5781 562.398 -86.75 535.75 -86.75 535.75 curveto
+ -114.988 545.461 -90.8984 543.48 -118.75 539.75 curveto
+ closepath
+fill
+
+
+% 104 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -169.75 576.75 moveto
+ -169.75 576.75 -139.078 568.559 -126.75 570.75 curveto
+ -126.75 570.75 -108.941 577.578 -99.75 553.75 curveto
+ -99.75 553.75 -95.3008 545.68 -92.75 543.75 curveto
+ -90.8984 541.281 -169.75 576.75 -169.75 576.75 curveto
+ closepath
+fill
+
+
+% 105 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -173.75 579.75 moveto
+ -173.75 579.75 -141.941 565.922 -130.75 566.75 curveto
+ -130.75 566.75 -112.898 571.422 -103.75 555.75 curveto
+ -103.75 555.75 -94.4219 545.238 -90.75 543.75 curveto
+ -90.75 543.75 -90.461 541.719 -97.75 545.75 curveto
+ -108.75 540.75 lineto
+ -108.75 540.75 -125.219 529.84 -135.75 547.75 curveto
+ -135.75 547.75 -140.18 559.762 -139.75 561.75 curveto
+ -140.18 564.16 -163.5 570.32 -165.75 570.75 curveto
+ -167.02 571.199 -174.281 575.82 -173.75 579.75 curveto
+ closepath
+fill
+
+
+% 106 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.4 0.2 0.8 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -121.75 539.75 moveto
+ -114.141 539.836 -104.93 544.086 -104.75 550.75 curveto
+ -104.93 557.832 -114.141 564.723 -121.75 564.75 curveto
+ -129.262 564.723 -135.391 559.152 -135.75 552.75 curveto
+ -135.391 545.406 -129.262 539.836 -121.75 539.75 curveto
+ closepath
+fill
+
+
+% 107 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.6 0.4 1.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -117.75 557.75 moveto
+ -112.383 557.395 -106.785 555.738 -106.75 555.75 curveto
+ -108.559 561.059 -115.555 564.723 -121.75 564.75 curveto
+ -126.426 564.723 -130.594 562.547 -132.75 558.75 curveto
+ -132.75 558.75 -127.203 559.602 -117.75 557.75 curveto
+ closepath
+fill
+
+
+% 108 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -130.75 558.75 moveto
+ -130.75 558.75 -126.102 561.961 -125.75 559.75 curveto
+ -125.75 559.75 -130.059 554.699 -130.75 558.75 curveto
+ closepath
+fill
+
+
+% 109 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -119.75 549.75 moveto
+ -117.191 549.5 -114.961 551.73 -114.75 554.75 curveto
+ -114.961 557.23 -117.191 559.457 -119.75 559.75 curveto
+ -122.691 559.457 -124.918 557.23 -124.75 554.75 curveto
+ -124.918 551.73 -122.691 549.5 -119.75 549.75 curveto
+ closepath
+fill
+
+
+% 110 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.2 0.55 0.85 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -5.75 563.75 moveto
+ -5.75 563.75 -2.01953 587.48 -4.75 592.75 curveto
+ -4.75 592.75 -16.5391 603.32 -15.75 607.75 curveto
+ -15.75 607.75 -15.6602 627.078 -14.75 627.75 curveto
+ -13.0195 628.84 -4.66016 635.441 2.25 628.75 curveto
+ 2.25 628.75 13.3789 608.602 12.25 601.75 curveto
+ 12.25 599.75 lineto
+ 12.25 599.75 20.8594 599.801 22.25 597.75 curveto
+ 22.25 597.75 23.9414 591.879 25.25 591.75 curveto
+ 25.25 591.75 28.3398 588.801 26.25 585.75 curveto
+ 26.25 585.75 28.3398 583.078 28.25 578.75 curveto
+ 19.25 574.75 lineto
+ 19.25 574.75 17.3398 558.441 5.25002 552.75 curveto
+ 0.140625 550.156 -3.33984 557.559 -5.75 563.75 curveto
+ closepath
+fill
+
+
+% 111 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -4.75 565.75 moveto
+ -4.75 565.75 -1.27344 587.172 -3.75 591.75 curveto
+ -3.75 591.75 -14.3398 601.43 -13.75 604.75 curveto
+ -13.75 604.75 -13.5469 622.813 -12.75 623.75 curveto
+ -11.1719 624.395 -3.64844 630.336 2.25 623.75 curveto
+ 2.25 623.75 12.5898 606.18 12.25 599.75 curveto
+ 12.25 597.75 lineto
+ 12.25 597.75 19.3203 598.262 21.25 596.75 curveto
+ 21.25 596.75 22.0937 591.133 23.25 590.75 curveto
+ 23.25 590.75 26.0508 588.359 24.25 585.75 curveto
+ 24.25 585.75 26.0508 583.211 25.25 579.75 curveto
+ 18.25 575.75 lineto
+ 18.25 575.75 16.1523 561.035 5.25002 555.75 curveto
+ 0.671875 553.582 -2.46094 560.242 -4.75 565.75 curveto
+ closepath
+fill
+
+
+% 112 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.075 0.412 0.637 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -13.75 626.75 moveto
+ -12.6445 627.816 -4.40625 634.164 2.25 627.75 curveto
+ 2.25 627.75 13.1836 607.996 12.25 600.75 curveto
+ 12.25 598.75 lineto
+ 12.25 598.75 20.4766 599.414 22.25 597.75 curveto
+ 22.25 597.75 23.4766 591.691 25.25 591.75 curveto
+ 25.25 591.75 27.7695 588.691 25.25 585.75 curveto
+ 25.25 585.75 27.7695 583.113 27.25 578.75 curveto
+ 19.25 574.75 lineto
+ 19.25 574.75 17.043 559.09 5.25002 553.75 curveto
+ 0.273438 551.016 -3.12109 558.23 -5.75 564.75 curveto
+ -5.75 564.75 -1.83203 587.402 -4.75 591.75 curveto
+ -4.75 591.75 -15.9883 602.848 -15.75 606.75 curveto
+ -15.75 606.75 -15.1328 626.012 -13.75 626.75 curveto
+ closepath
+fill
+
+
+% 113 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.05 0.275 0.425 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -13.75 625.75 moveto
+ -12.2734 626.793 -4.15234 632.887 2.25 625.75 curveto
+ 2.25 625.75 12.9844 607.391 12.25 600.75 curveto
+ 12.25 598.75 lineto
+ 12.25 598.75 20.0898 599.031 22.25 596.75 curveto
+ 22.25 596.75 23.0156 591.508 24.25 590.75 curveto
+ 24.25 590.75 27.1953 588.578 25.25 585.75 curveto
+ 25.25 585.75 27.1953 583.145 27.25 578.75 curveto
+ 19.25 574.75 lineto
+ 19.25 574.75 16.7461 559.738 5.25002 554.75 curveto
+ 0.40625 551.871 -2.89844 558.902 -4.75 564.75 curveto
+ -4.75 564.75 -1.64453 587.324 -3.75 591.75 curveto
+ -3.75 591.75 -15.4414 602.375 -14.75 605.75 curveto
+ -14.75 605.75 -14.6055 624.945 -13.75 625.75 curveto
+ closepath
+fill
+
+
+% 114 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.025 0.137 0.212 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -12.75 624.75 moveto
+ -11.8984 625.77 -3.90234 631.613 2.25 624.75 curveto
+ 2.25 624.75 12.7852 606.785 12.25 600.75 curveto
+ 12.25 597.75 lineto
+ 12.25 597.75 19.7031 598.645 21.25 596.75 curveto
+ 21.25 596.75 22.5547 591.32 24.25 590.75 curveto
+ 24.25 590.75 26.625 588.469 24.25 585.75 curveto
+ 24.25 585.75 26.625 583.18 26.25 578.75 curveto
+ 18.25 574.75 lineto
+ 18.25 574.75 16.4492 560.387 5.25002 554.75 curveto
+ 0.539063 552.727 -2.67969 559.574 -4.75 565.75 curveto
+ -4.75 565.75 -1.46094 587.25 -3.75 591.75 curveto
+ -3.75 591.75 -14.8906 601.902 -14.75 605.75 curveto
+ -14.75 605.75 -14.0742 623.879 -12.75 624.75 curveto
+ closepath
+fill
+
+
+% 115 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -4.75 566.75 moveto
+ -4.75 566.75 -1.27344 587.172 -3.75 591.75 curveto
+ -3.75 591.75 -14.3398 601.43 -13.75 604.75 curveto
+ -13.75 604.75 -13.5469 622.813 -12.75 623.75 curveto
+ -11.5234 624.746 -3.64844 630.336 2.25 623.75 curveto
+ 2.25 623.75 12.5898 606.18 12.25 599.75 curveto
+ 12.25 597.75 lineto
+ 12.25 597.75 19.3203 598.262 21.25 596.75 curveto
+ 21.25 596.75 22.0937 591.133 23.25 590.75 curveto
+ 23.25 590.75 26.0508 588.359 24.25 585.75 curveto
+ 24.25 585.75 26.0508 583.211 25.25 579.75 curveto
+ 18.25 575.75 lineto
+ 18.25 575.75 16.1523 561.035 5.25002 555.75 curveto
+ 0.671875 553.582 -2.46094 560.355 -4.75 566.75 curveto
+ closepath
+fill
+
+
+% 116 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -0.75 572.75 moveto
+ -0.75 572.75 22.7305 584.398 23.25 585.75 curveto
+ 23.25 585.75 13.7109 576.262 13.25 576.75 curveto
+ 11.9492 576.262 -0.75 572.75 -0.75 572.75 curveto
+ closepath
+fill
+
+
+% 117 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 18.25 579.75 moveto
+ 18.25 579.75 -2.46094 576.039 -2.75 570.75 curveto
+ -2.46094 567.996 -2.19141 553.234 3.25 554.75 curveto
+ 12.9414 557.559 8.98047 573.398 18.25 579.75 curveto
+ closepath
+fill
+
+
+% 118 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.4 0.2 0.8 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 8.25 575.75 moveto
+ 8.25 575.75 -1.33594 574.199 -2.75 570.75 curveto
+ -3.12109 569.441 -3.84766 560.301 2.25 558.75 curveto
+ 7.16797 558.098 9.62109 569.34 8.25 575.75 curveto
+ closepath
+fill
+
+
+% 119 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -85.75 528.75 moveto
+ -85.5078 530.934 -86.9492 530.789 -88.75 531.75 curveto
+ -91.1211 532.039 -104.539 536.219 -105.75 538.75 curveto
+ -106.301 541.941 -120.75 536.75 -120.75 536.75 curveto
+ -122.801 536.219 -127.75 533.75 -127.75 533.75 curveto
+ -132.922 532.039 -139.75 531.75 -139.75 531.75 curveto
+ -142.82 530.5 -146.75 527.75 -146.75 527.75 curveto
+ -162.621 516.199 -176.75 523.75 -176.75 523.75 curveto
+ -198.262 531.379 -191.75 550.75 -191.75 550.75 curveto
+ -188.359 560.199 -191.75 563.75 -191.75 563.75 curveto
+ -192.102 568.121 -199.75 560.75 -199.75 560.75 curveto
+ -202.883 556.461 -203.75 550.75 -203.75 550.75 curveto
+ -212.563 538.641 -208.75 557.75 -208.75 557.75 curveto
+ -209.043 559.32 -205.961 563.281 -205.75 564.75 curveto
+ -205.961 565.922 -203.75 569.75 -203.75 569.75 curveto
+ -200.68 573.398 -203.75 580.75 -203.75 580.75 curveto
+ -205.301 596.281 -202.75 594.75 -202.75 594.75 curveto
+ -201.563 596.281 -191.75 585.75 -191.75 585.75 curveto
+ -189.02 581.539 -182.75 579.75 -182.75 579.75 curveto
+ -179.34 577.801 -175.75 579.75 -175.75 579.75 curveto
+ -172.742 579.781 -166.75 571.75 -166.75 571.75 curveto
+ -169.66 572.301 -172.301 567.461 -174.75 566.75 curveto
+ -177.582 567.02 -179.563 569.879 -181.75 570.75 curveto
+ -183.082 571.199 -185.75 564.75 -185.75 564.75 curveto
+ -186.602 561.961 -180.75 556.75 -180.75 556.75 curveto
+ -180.0 551.621 -177.75 553.75 -177.75 553.75 curveto
+ -174.941 554.039 -173.621 549.859 -172.75 544.75 curveto
+ -171.422 539.738 -166.75 539.75 -166.75 539.75 curveto
+ -165.043 531.16 -163.75 534.75 -163.75 534.75 curveto
+ -163.5 540.621 -156.75 533.75 -156.75 533.75 curveto
+ -155.578 532.039 -150.75 534.75 -150.75 534.75 curveto
+ -143.039 536.66 -145.75 538.75 -145.75 538.75 curveto
+ -147.66 541.281 -159.75 538.75 -159.75 538.75 curveto
+ -162.398 540.621 -153.75 544.75 -153.75 544.75 curveto
+ -152.941 547.0 -153.75 551.75 -153.75 551.75 curveto
+ -155.359 555.359 -162.75 561.75 -162.75 561.75 curveto
+ -173.18 562.84 -169.75 564.75 -169.75 564.75 curveto
+ -163.281 570.32 -156.75 561.75 -156.75 561.75 curveto
+ -154.48 555.141 -135.75 538.75 -135.75 538.75 curveto
+ -130.059 534.898 -132.922 542.379 -128.75 538.75 curveto
+ -124.121 534.898 -101.75 544.75 -101.75 544.75 curveto
+ -88.7422 546.113 -85.7383 528.797 -81.75 531.75 curveto
+ -81.75 531.75 -87.8164 522.855 -85.75 528.75 curveto
+ closepath
+fill
+
+
+% 120 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -300.75 711.75 moveto
+ -300.75 711.75 -272.18 703.199 -268.75 682.75 curveto
+ -268.75 682.75 -266.461 657.441 -288.75 637.75 curveto
+ -288.75 637.75 -289.34 631.039 -291.75 627.75 curveto
+ -291.75 627.75 -289.781 622.238 -310.75 630.75 curveto
+ -340.75 639.75 lineto
+ -340.75 639.75 -347.422 642.48 -352.75 651.75 curveto
+ -358.859 661.84 -375.582 682.52 -371.75 709.75 curveto
+ -371.75 709.75 -372.941 722.559 -366.75 722.75 curveto
+ -366.75 722.75 -357.102 724.762 -348.75 716.75 curveto
+ -348.75 716.75 -341.699 712.879 -338.75 713.75 curveto
+ -300.75 711.75 lineto
+ closepath
+fill
+
+
+% 121 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -360.75 712.75 moveto
+ -360.75 712.75 -362.734 722.91 -357.75 717.75 curveto
+ -357.75 717.75 -349.668 711.297 -341.75 711.75 curveto
+ -341.75 711.75 -325.465 708.875 -320.75 694.75 curveto
+ -320.75 694.75 -316.27 664.832 -324.75 658.75 curveto
+ -324.75 658.75 -330.305 650.313 -337.75 657.75 curveto
+ -345.793 664.832 -362.844 698.086 -360.75 712.75 curveto
+ closepath
+fill
+
+
+% 122 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 0.8 setcmykcolor
+() p2esetcolorname
+newpath
+ -359.75 712.75 moveto
+ -359.75 712.75 -362.313 722.313 -356.75 716.75 curveto
+ -356.75 716.75 -349.48 710.91 -341.75 710.75 curveto
+ -341.75 710.75 -325.719 708.531 -320.75 694.75 curveto
+ -320.75 694.75 -316.691 665.289 -324.75 658.75 curveto
+ -324.75 658.75 -330.473 651.035 -337.75 657.75 curveto
+ -345.68 665.289 -362.391 697.965 -359.75 712.75 curveto
+ closepath
+fill
+
+
+% 123 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 0.6 setcmykcolor
+() p2esetcolorname
+newpath
+ -359.75 712.75 moveto
+ -359.75 712.75 -361.891 721.715 -356.75 716.75 curveto
+ -356.75 716.75 -349.297 710.523 -341.75 710.75 curveto
+ -341.75 710.75 -325.977 708.191 -321.75 693.75 curveto
+ -321.75 693.75 -317.113 665.746 -325.75 659.75 curveto
+ -325.75 659.75 -330.641 651.754 -337.75 658.75 curveto
+ -345.566 665.746 -361.934 697.844 -359.75 712.75 curveto
+ closepath
+fill
+
+
+% 124 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 0.4 setcmykcolor
+() p2esetcolorname
+newpath
+ -358.75 711.75 moveto
+ -358.75 711.75 -361.469 721.117 -356.75 715.75 curveto
+ -356.75 715.75 -349.113 710.133 -341.75 709.75 curveto
+ -341.75 709.75 -326.23 707.848 -321.75 693.75 curveto
+ -321.75 693.75 -317.535 666.203 -325.75 660.75 curveto
+ -325.75 660.75 -330.809 652.477 -337.75 659.75 curveto
+ -345.449 666.203 -361.477 697.723 -358.75 711.75 curveto
+ closepath
+fill
+
+
+% 125 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -358.75 711.75 moveto
+ -358.75 711.75 -361.043 720.52 -355.75 715.75 curveto
+ -355.75 715.75 -348.926 709.746 -341.75 709.75 curveto
+ -341.75 709.75 -326.484 707.504 -321.75 693.75 curveto
+ -321.75 693.75 -317.957 666.664 -325.75 660.75 curveto
+ -325.75 660.75 -330.973 653.199 -337.75 659.75 curveto
+ -345.336 666.664 -361.023 697.602 -358.75 711.75 curveto
+ closepath
+fill
+
+
+% 126 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -358.75 710.75 moveto
+ -358.75 710.75 -360.621 719.922 -355.75 714.75 curveto
+ -355.75 714.75 -348.742 709.359 -341.75 709.75 curveto
+ -341.75 709.75 -326.742 707.16 -322.75 693.75 curveto
+ -322.75 693.75 -318.383 667.121 -326.75 661.75 curveto
+ -326.75 661.75 -331.141 653.922 -337.75 660.75 curveto
+ -345.223 667.121 -360.566 697.48 -358.75 710.75 curveto
+ closepath
+fill
+
+
+% 127 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.4 0.85 1.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -125.75 487.75 moveto
+ -125.75 487.75 -103.219 508.719 -94.75 509.75 curveto
+ -94.75 509.75 -56.5781 514.0 -40.75 493.75 curveto
+ -40.75 493.75 -59.6602 516.641 -89.75 510.75 curveto
+ -89.75 510.75 -66.2617 515.32 -52.75 511.75 curveto
+ -52.75 511.75 -34.1406 511.801 -23.75 496.75 curveto
+ -20.75 490.75 lineto
+ -20.75 490.75 -24.8984 507.398 -44.75 513.75 curveto
+ -44.75 513.75 -70.2188 519.281 -81.75 513.75 curveto
+ -81.75 513.75 -58.3398 521.48 -47.75 519.75 curveto
+ -47.75 519.75 -13.8984 521.922 0.25 492.75 curveto
+ 0.25 492.75 -4.21875 508.719 -20.75 516.75 curveto
+ -20.75 516.75 -35.461 526.32 -57.75 522.75 curveto
+ -57.75 522.75 -73.7383 519.719 -79.75 516.75 curveto
+ -85.1797 514.441 -83.8594 517.52 -74.75 522.75 curveto
+ -74.75 522.75 -68.461 533.801 -52.75 533.75 curveto
+ -52.75 533.75 -5.98047 529.398 5.25002 515.75 curveto
+ 5.25002 515.75 -9.5 528.52 -20.75 531.75 curveto
+ -20.75 531.75 -45.5781 540.398 -54.75 539.75 curveto
+ -54.75 539.75 -82.1016 538.422 -90.75 542.75 curveto
+ -90.75 542.75 -78.1406 537.32 -81.75 533.75 curveto
+ -85.1797 530.281 -92.6602 521.922 -92.75 520.75 curveto
+ -92.6602 519.281 -119.281 494.969 -122.75 489.75 curveto
+ -125.75 487.75 lineto
+ closepath
+fill
+
+
+% 128 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -277.75 273.75 moveto
+ -277.75 273.75 -260.852 314.352 -246.75 324.75 curveto
+ -246.75 324.75 -275.699 307.199 -279.75 287.75 curveto
+ -279.75 287.75 -279.551 276.398 -277.75 273.75 curveto
+ closepath
+fill
+
+
+% 129 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -329.75 265.75 moveto
+ -329.75 265.75 -300.449 326.449 -279.75 352.75 curveto
+ -279.75 352.75 -327.949 311.602 -333.75 282.75 curveto
+ -333.75 276.75 lineto
+ -330.75 278.75 lineto
+ -330.75 278.75 -330.148 269.25 -329.75 265.75 curveto
+ closepath
+fill
+
+
+% 130 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -391.75 319.75 moveto
+ -391.75 319.75 -323.0 384.75 -321.75 387.75 curveto
+ -321.75 387.75 -387.898 314.898 -390.75 306.75 curveto
+ -390.75 306.75 -389.0 316.551 -391.75 319.75 curveto
+ closepath
+fill
+
+
+% 131 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -184.75 271.75 moveto
+ -184.75 271.75 -205.852 328.648 -226.75 303.75 curveto
+ -226.75 303.75 -243.25 292.898 -242.75 289.75 curveto
+ -242.75 289.75 -238.301 296.75 -218.75 295.75 curveto
+ -218.75 295.75 -197.602 299.5 -184.75 271.75 curveto
+ closepath
+fill
+
+
+% 132 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -393.75 411.75 moveto
+ -393.75 411.75 -344.449 443.051 -335.75 444.75 curveto
+ -323.211 447.297 -390.648 412.801 -395.75 400.75 curveto
+ -395.75 400.75 -398.352 404.0 -393.75 411.75 curveto
+ closepath
+fill
+
+
+% 133 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -227.75 294.75 moveto
+ -227.75 294.75 -250.621 296.641 -257.75 303.75 curveto
+ -262.75 299.75 lineto
+ -282.75 342.75 lineto
+ -286.75 336.75 lineto
+ -286.75 336.75 -302.102 352.957 -300.75 361.75 curveto
+ -300.34 370.559 -315.75 354.75 -315.75 354.75 curveto
+ -315.75 354.75 -314.422 367.918 -322.75 360.75 curveto
+ -322.75 360.75 -319.699 377.598 -328.75 368.75 curveto
+ -328.75 368.75 -317.352 401.973 -341.75 373.75 curveto
+ -348.301 366.598 -343.75 373.75 -343.75 373.75 curveto
+ -343.75 373.75 -314.859 426.879 -338.75 410.75 curveto
+ -338.75 410.75 -340.82 436.117 -339.75 440.75 curveto
+ -338.18 445.801 -335.98 470.441 -330.75 475.75 curveto
+ -325.422 481.879 -331.141 483.641 -337.75 477.75 curveto
+ -337.75 477.75 -324.98 504.32 -339.75 490.75 curveto
+ -339.75 490.75 -335.543 507.84 -330.75 510.75 curveto
+ -330.75 510.75 -324.543 529.84 -341.75 517.75 curveto
+ -341.75 517.75 -336.422 531.602 -332.75 534.75 curveto
+ -332.75 534.75 -320.141 565.48 -327.75 559.75 curveto
+ -332.75 555.75 lineto
+ -332.75 555.75 -325.422 571.641 -332.75 566.75 curveto
+ -339.5 561.961 -339.75 562.75 -339.75 562.75 curveto
+ -339.75 562.75 -316.18 598.922 -338.75 579.75 curveto
+ -338.75 579.75 -329.645 594.871 -325.75 602.75 curveto
+ -325.75 602.75 -305.18 624.879 -320.75 617.75 curveto
+ -326.75 615.75 lineto
+ -326.75 615.75 -316.621 627.078 -307.75 628.75 curveto
+ -299.02 630.602 -310.461 637.641 -317.75 635.75 curveto
+ -324.543 633.238 -341.75 624.75 -341.75 624.75 curveto
+ -341.75 624.75 -355.781 604.199 -359.75 603.75 curveto
+ -359.75 603.75 -338.18 612.121 -344.75 603.75 curveto
+ -344.75 603.75 -360.621 587.922 -352.75 588.75 curveto
+ -352.75 588.75 -346.102 580.441 -351.75 570.75 curveto
+ -351.75 570.75 -331.074 590.988 -347.75 562.75 curveto
+ -354.75 544.75 lineto
+ -354.75 544.75 -328.063 572.078 -340.75 547.75 curveto
+ -340.75 547.75 -359.301 521.922 -361.75 521.75 curveto
+ -363.699 521.039 -368.75 511.75 -368.75 511.75 curveto
+ -363.75 513.75 lineto
+ -369.75 503.75 lineto
+ -369.75 503.75 -357.102 517.078 -363.75 502.75 curveto
+ -369.75 486.75 lineto
+ -369.75 486.75 -347.422 510.922 -362.75 478.75 curveto
+ -362.75 478.75 -344.34 484.078 -353.75 464.75 curveto
+ -353.75 464.75 -352.262 447.559 -352.75 441.75 curveto
+ -353.141 436.117 -354.461 404.879 -349.75 395.75 curveto
+ -344.781 387.277 -356.223 366.16 -358.75 361.75 curveto
+ -360.621 357.359 -364.582 345.48 -354.75 355.75 curveto
+ -345.223 365.719 -350.063 359.559 -352.75 349.75 curveto
+ -354.461 340.199 -361.063 323.039 -359.75 316.75 curveto
+ -359.75 316.75 -358.859 315.559 -355.75 319.75 curveto
+ -355.75 319.75 -339.063 344.598 -340.75 328.75 curveto
+ -340.75 328.75 -339.5 319.957 -335.75 310.75 curveto
+ -335.75 310.75 -332.461 298.398 -332.75 307.75 curveto
+ -332.75 307.75 -328.941 326.559 -325.75 317.75 curveto
+ -322.781 309.84 -318.82 303.238 -315.75 300.75 curveto
+ -312.66 297.957 -306.941 323.039 -305.75 311.75 curveto
+ -305.75 311.75 -292.422 325.238 -286.75 306.75 curveto
+ -274.75 288.75 lineto
+ -274.75 288.75 -273.941 302.801 -272.75 295.75 curveto
+ -272.75 295.75 -239.621 289.598 -227.75 294.75 curveto
+ closepath
+fill
+
+
+% 134 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -190.75 686.75 moveto
+ -190.75 686.75 -177.582 695.719 -172.75 695.75 curveto
+ -168.781 694.84 -203.543 704.961 -248.75 674.75 curveto
+ -248.75 674.75 -254.141 671.52 -257.75 671.75 curveto
+ -257.75 671.75 -261.621 669.32 -258.75 665.75 curveto
+ -258.75 665.75 -248.859 654.801 -260.75 642.75 curveto
+ -260.75 642.75 -281.422 635.0 -275.75 644.75 curveto
+ -275.75 644.75 -287.141 640.281 -289.75 635.75 curveto
+ -292.422 631.48 -290.75 635.75 -290.75 635.75 curveto
+ -290.75 635.75 -284.063 643.801 -277.75 649.75 curveto
+ -277.75 649.75 -271.742 651.719 -268.75 660.75 curveto
+ -265.582 670.199 -262.941 681.199 -267.75 684.75 curveto
+ -267.75 684.75 -263.383 679.879 -264.75 684.75 curveto
+ -265.141 688.68 -269.102 692.641 -270.75 692.75 curveto
+ -272.621 693.519 -290.66 710.898 -297.75 711.75 curveto
+ -297.75 711.75 -288.02 709.801 -284.75 710.75 curveto
+ -281.422 712.0 -252.16 724.539 -245.75 725.75 curveto
+ -245.75 725.75 -227.082 733.121 -240.75 730.75 curveto
+ -240.75 730.75 -279.66 726.738 -299.75 711.75 curveto
+ -299.75 711.75 -291.762 721.461 -271.75 728.75 curveto
+ -271.75 728.75 -247.102 743.02 -208.75 737.75 curveto
+ -208.75 737.75 -188.801 734.0 -179.75 731.75 curveto
+ -179.75 731.75 -177.359 732.68 -176.75 732.75 curveto
+ -176.043 733.559 -163.059 743.461 -132.75 735.75 curveto
+ -132.75 735.75 -114.0 730.699 -104.75 725.75 curveto
+ -104.75 725.75 -87.8203 724.102 -83.75 720.75 curveto
+ -83.75 720.75 -63.3984 704.519 -60.75 703.75 curveto
+ -59.0 702.762 -46.461 694.398 -45.75 693.75 curveto
+ -45.75 693.75 -72.6406 701.219 -75.75 703.75 curveto
+ -77.9219 706.5 -97.0586 709.359 -99.75 707.75 curveto
+ -102.34 706.281 -111.578 706.941 -100.75 706.75 curveto
+ -100.75 706.75 -184.18 690.0 -184.75 687.75 curveto
+ -185.941 685.602 -190.75 686.75 -190.75 686.75 curveto
+ closepath
+fill
+
+
+% 135 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.2 0.55 0.85 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -268.75 696.75 moveto
+ -268.75 696.75 -257.66 705.18 -255.75 704.75 curveto
+ -253.262 705.18 -239.621 716.398 -234.75 715.75 curveto
+ -230.383 715.519 -216.961 726.52 -186.75 717.75 curveto
+ -186.75 717.75 -186.16 719.699 -189.75 720.75 curveto
+ -189.75 720.75 -197.16 723.0 -197.75 723.75 curveto
+ -197.75 723.75 -219.82 728.281 -227.75 724.75 curveto
+ -227.75 724.75 -237.859 721.461 -244.75 714.75 curveto
+ -244.75 714.75 -257.0 711.121 -260.75 711.75 curveto
+ -260.75 711.75 -270.199 709.801 -270.75 707.75 curveto
+ -270.75 707.75 -277.02 704.519 -274.75 701.75 curveto
+ -274.75 701.75 -275.48 699.898 -268.75 696.75 curveto
+ closepath
+fill
+
+
+% 136 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.2 0.55 0.85 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -254.75 699.75 moveto
+ -256.051 698.664 -257.172 698.559 -257.75 697.75 curveto
+ -258.094 697.32 -257.777 696.965 -257.75 696.75 curveto
+ -256.281 696.508 -255.121 697.133 -253.75 696.75 curveto
+ -253.422 696.262 -252.715 696.461 -251.75 696.75 curveto
+ -250.313 697.109 -248.301 697.137 -246.75 696.75 curveto
+ -244.258 697.621 -241.66 696.98 -239.75 697.75 curveto
+ -239.309 698.109 -239.066 697.73 -238.75 697.75 curveto
+ -235.633 699.019 -231.516 698.707 -228.75 700.75 curveto
+ -226.172 701.672 -223.578 702.18 -220.75 702.75 curveto
+ -218.906 703.488 -217.355 704.578 -215.75 705.75 curveto
+ -214.059 706.27 -212.457 706.844 -210.75 707.75 curveto
+ -208.723 707.75 -206.707 707.629 -204.75 707.75 curveto
+ -204.523 708.227 -204.313 707.852 -203.75 707.75 curveto
+ -203.863 708.0 -203.547 708.641 -203.75 708.75 curveto
+ -201.508 708.008 -199.871 709.074 -197.75 708.75 curveto
+ -196.746 710.047 -194.844 709.777 -192.75 710.75 curveto
+ -189.883 711.195 -186.414 709.801 -182.75 710.75 curveto
+ -187.605 712.926 -192.762 711.57 -196.75 713.75 curveto
+ -199.789 715.152 -202.719 713.938 -205.75 714.75 curveto
+ -206.082 714.934 -206.84 715.156 -207.75 714.75 curveto
+ -207.43 714.57 -207.629 714.832 -207.75 714.75 curveto
+ -210.387 713.527 -212.934 712.125 -215.75 710.75 curveto
+ -216.039 710.793 -216.625 711.047 -216.75 710.75 curveto
+ -218.574 709.488 -220.711 709.602 -221.75 708.75 curveto
+ -224.109 708.813 -226.082 708.395 -227.75 708.75 curveto
+ -228.066 709.109 -228.324 708.734 -228.75 708.75 curveto
+ -229.605 709.582 -230.875 709.285 -231.75 708.75 curveto
+ -232.227 708.824 -232.957 708.551 -233.75 708.75 curveto
+ -234.531 708.168 -235.473 707.637 -236.75 707.75 curveto
+ -236.895 707.418 -237.098 707.793 -236.75 707.75 curveto
+ -238.414 707.277 -239.559 707.34 -240.75 705.75 curveto
+ -240.43 706.207 -240.609 706.469 -240.75 706.75 curveto
+ -241.832 706.07 -242.543 705.238 -243.75 704.75 curveto
+ -244.289 704.855 -244.961 704.168 -245.75 703.75 curveto
+ -248.227 703.172 -250.254 701.488 -252.75 700.75 curveto
+ -253.504 700.164 -254.465 699.906 -254.75 699.75 curveto
+ closepath
+fill
+
+
+% 137 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.2 0.55 0.85 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -170.75 714.75 moveto
+ -168.098 716.91 -165.492 718.129 -162.75 719.75 curveto
+ -162.605 720.238 -162.211 720.051 -161.75 719.75 curveto
+ -160.879 720.855 -159.902 721.492 -158.75 722.75 curveto
+ -158.23 722.68 -157.328 722.668 -156.75 722.75 curveto
+ -153.969 724.371 -151.078 724.988 -148.75 726.75 curveto
+ -149.07 727.0 -150.305 726.734 -150.75 727.75 curveto
+ -151.176 727.313 -151.438 727.0 -151.75 726.75 curveto
+ -153.672 728.203 -155.707 728.371 -157.75 728.75 curveto
+ -159.422 728.172 -161.316 727.836 -163.75 727.75 curveto
+ -163.605 727.484 -163.824 726.91 -163.75 726.75 curveto
+ -166.629 726.074 -169.258 726.652 -171.75 725.75 curveto
+ -173.34 725.039 -175.066 724.133 -176.75 722.75 curveto
+ -176.707 722.445 -176.348 722.113 -175.75 721.75 curveto
+ -176.469 722.02 -176.77 721.793 -176.75 721.75 curveto
+ -176.984 721.188 -176.984 720.855 -176.75 720.75 curveto
+ -176.766 720.246 -176.461 720.137 -175.75 719.75 curveto
+ -174.5 719.871 -176.449 721.391 -175.75 720.75 curveto
+ -174.281 720.0 -175.102 718.453 -174.75 716.75 curveto
+ -173.973 717.273 -173.719 717.512 -173.75 717.75 curveto
+ -174.098 717.367 -173.438 717.047 -173.75 716.75 curveto
+ -172.828 715.902 -171.84 714.344 -170.75 714.75 curveto
+ closepath
+fill
+
+
+% 138 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.2 0.55 0.85 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -134.75 706.75 moveto
+ -131.648 707.805 -128.293 707.676 -124.75 708.75 curveto
+ -124.902 709.113 -124.656 708.73 -124.75 708.75 curveto
+ -123.082 709.414 -122.074 710.477 -120.75 711.75 curveto
+ -119.887 712.602 -118.063 712.176 -116.75 712.75 curveto
+ -116.305 712.848 -116.082 713.414 -115.75 713.75 curveto
+ -114.41 713.629 -113.391 714.672 -111.75 715.75 curveto
+ -114.809 716.176 -117.461 716.141 -119.75 716.75 curveto
+ -120.293 716.582 -120.453 716.23 -120.75 715.75 curveto
+ -120.75 716.23 -120.895 716.473 -120.75 716.75 curveto
+ -121.254 716.313 -121.586 715.953 -121.75 715.75 curveto
+ -122.473 716.828 -123.082 716.617 -123.75 716.75 curveto
+ -123.836 716.563 -123.973 716.23 -123.75 715.75 curveto
+ -124.27 716.23 -124.414 716.57 -124.75 716.75 curveto
+ -124.711 716.57 -124.855 716.23 -124.75 715.75 curveto
+ -125.148 716.23 -125.293 716.473 -125.75 716.75 curveto
+ -126.203 715.762 -127.176 716.371 -127.75 715.75 curveto
+ -129.219 715.922 -129.516 714.66 -130.75 714.75 curveto
+ -135.883 712.898 -140.434 710.539 -144.75 707.75 curveto
+ -145.57 708.082 -145.801 707.809 -145.75 707.75 curveto
+ -145.973 707.379 -146.316 707.477 -146.75 707.75 curveto
+ -147.691 706.527 -148.836 705.922 -149.75 704.75 curveto
+ -149.84 704.344 -149.477 703.895 -148.75 703.75 curveto
+ -144.352 705.047 -139.945 705.715 -134.75 706.75 curveto
+ closepath
+fill
+
+
+% 139 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.2 0.55 0.85 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -119.75 658.75 moveto
+ -118.121 659.637 -117.477 661.871 -115.75 663.75 curveto
+ -116.004 664.219 -116.305 664.563 -116.75 664.75 curveto
+ -117.27 664.836 -117.867 664.309 -118.75 663.75 curveto
+ -120.234 663.141 -121.922 661.773 -123.75 661.75 curveto
+ -126.309 659.164 -130.996 658.738 -130.75 654.75 curveto
+ -131.004 654.074 -129.434 655.086 -128.75 653.75 curveto
+ -126.266 655.242 -123.637 655.129 -120.75 656.75 curveto
+ -120.34 657.164 -120.703 657.66 -119.75 658.75 curveto
+ closepath
+fill
+
+
+% 140 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.2 0.55 0.85 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -89.75 715.75 moveto
+ -89.7266 716.129 -97.4609 715.875 -97.75 715.75 curveto
+ -97.3945 715.41 -88.8906 714.254 -88.75 714.75 curveto
+ -88.3125 714.527 -80.0469 711.852 -79.75 711.75 curveto
+ -80.1953 712.148 -89.2891 716.133 -89.75 715.75 curveto
+ closepath
+fill
+
+
+% 141 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -106.75 705.75 moveto
+ -106.75 705.75 -90.2383 703.422 -85.75 701.75 curveto
+ -80.5586 700.781 -60.1016 692.422 -56.75 689.75 curveto
+ -56.75 689.75 -42.0586 684.281 -23.75 662.75 curveto
+ -23.75 662.75 -31.7188 666.02 -33.75 668.75 curveto
+ -33.75 668.75 -49.1016 682.961 -48.75 679.75 curveto
+ -48.75 679.75 -62.3008 689.559 -61.75 686.75 curveto
+ -61.75 686.75 -88.4805 699.461 -86.75 695.75 curveto
+ -86.75 695.75 -110.039 701.0 -108.75 698.75 curveto
+ -108.75 698.75 -129.621 693.961 -126.75 693.75 curveto
+ -126.75 693.75 -120.16 692.422 -126.75 688.75 curveto
+ -126.75 688.75 -123.461 683.621 -117.75 687.75 curveto
+ -111.578 692.422 -114.879 690.0 -109.75 688.75 curveto
+ -109.75 688.75 -106.52 688.019 -101.75 692.75 curveto
+ -101.75 692.75 -95.3008 697.48 -85.75 693.75 curveto
+ -85.75 693.75 -51.961 679.66 -49.75 678.75 curveto
+ -49.75 678.75 -45.8008 675.922 -42.75 671.75 curveto
+ -42.75 671.75 -36.7813 667.121 -33.75 665.75 curveto
+ -33.75 665.75 -19.3984 652.82 -17.75 651.75 curveto
+ -17.75 651.75 -14.3398 645.559 -13.75 644.75 curveto
+ -13.75 644.75 -20.5 649.301 -22.75 651.75 curveto
+ -22.75 651.75 -38.1016 662.5 -43.75 663.75 curveto
+ -43.75 663.75 -48.8789 666.68 -49.75 667.75 curveto
+ -49.75 667.75 -65.6016 678.34 -69.75 678.75 curveto
+ -69.75 678.75 -80.3398 672.621 -82.75 680.75 curveto
+ -82.75 680.75 -89.3594 682.301 -95.75 680.75 curveto
+ -95.75 680.75 -99.0391 683.84 -97.75 686.75 curveto
+ -97.75 686.75 -99.9219 688.238 -100.75 683.75 curveto
+ -100.75 683.75 -104.762 680.102 -109.75 682.75 curveto
+ -109.75 682.75 -114.441 682.52 -111.75 679.75 curveto
+ -111.75 679.75 -107.398 675.699 -94.75 675.75 curveto
+ -94.75 675.75 -80.7813 674.82 -62.75 666.75 curveto
+ -62.75 666.75 -29.961 655.02 -19.75 643.75 curveto
+ -19.75 643.75 -12.8008 633.898 -6.75 632.75 curveto
+ -6.75 632.75 -0.480469 631.699 6.25 623.75 curveto
+ 6.25 623.75 -4.66016 629.941 -14.75 629.75 curveto
+ -14.75 629.75 -18.9609 632.578 -14.75 628.75 curveto
+ -14.75 628.75 -10.8203 620.262 -12.75 614.75 curveto
+ -12.75 614.75 -11.9219 608.602 -10.75 606.75 curveto
+ -10.75 606.75 -2.46094 592.762 -2.75 589.75 curveto
+ -2.46094 587.48 -3.78125 576.699 -3.75 575.75 curveto
+ -4.66016 575.379 -3.12109 577.801 -7.75 574.75 curveto
+ -11.4805 572.52 -14.5586 570.762 -15.75 567.75 curveto
+ -16.3203 564.602 -13.2383 573.621 -12.75 575.75 curveto
+ -12.8008 577.578 -8.17969 585.5 -8.75 587.75 curveto
+ -8.75 587.75 -10.1602 587.039 -10.75 585.75 curveto
+ -10.75 585.75 -10.3789 586.16 -10.75 589.75 curveto
+ -10.75 589.75 -11.9219 595.84 -13.75 599.75 curveto
+ -15.0 602.879 -17.1992 607.059 -17.75 607.75 curveto
+ -18.0781 608.82 -18.0781 615.199 -19.75 612.75 curveto
+ -23.75 609.75 lineto
+ -23.75 609.75 -20.2813 612.34 -22.75 614.75 curveto
+ -22.75 614.75 -21.6016 620.922 -23.75 623.75 curveto
+ -23.75 623.75 -31.2813 633.02 -32.75 633.75 curveto
+ -34.8008 635.219 -33.75 634.75 -33.75 634.75 curveto
+ -33.75 634.75 -39.8594 639.398 -33.75 637.75 curveto
+ -33.75 637.75 -29.0781 635.879 -25.75 635.75 curveto
+ -25.75 635.75 -17.4219 633.68 -21.75 638.75 curveto
+ -26.2188 642.922 -37.2188 648.859 -41.75 648.75 curveto
+ -42.75 646.75 lineto
+ -54.75 649.75 lineto
+ -53.75 648.75 lineto
+ -53.75 648.75 -53.0586 648.859 -57.75 649.75 curveto
+ -62.3008 649.738 -68.6797 648.199 -69.75 649.75 curveto
+ -71.7617 652.16 -75.5 653.262 -74.75 651.75 curveto
+ -74.6211 650.18 -74.75 647.75 -74.75 647.75 curveto
+ -74.75 647.75 -79.8984 654.359 -78.75 651.75 curveto
+ -78.5781 649.52 -69.5586 643.801 -67.75 636.75 curveto
+ -79.75 645.75 lineto
+ -83.75 649.75 lineto
+ -83.75 649.75 -87.3789 646.879 -87.75 648.75 curveto
+ -87.8203 650.398 -92.8789 656.781 -93.75 656.75 curveto
+ -95.5195 656.34 -97.7188 659.422 -97.75 656.75 curveto
+ -97.2813 653.699 -105.75 647.75 -105.75 647.75 curveto
+ -105.75 647.75 -109.16 649.738 -110.75 647.75 curveto
+ -112.238 646.66 -116.75 669.75 -116.75 669.75 curveto
+ -144.75 681.75 lineto
+ -192.75 685.75 lineto
+ -173.75 692.75 lineto
+ -106.75 705.75 lineto
+ closepath
+fill
+
+
+% 142 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 2.2 setlinewidth
+ 0.7 1.0 1.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -126.75 486.75 moveto
+ -126.75 486.75 -110.039 504.98 -100.75 507.75 curveto
+ -100.75 507.75 -86.0586 515.32 -58.75 506.75 curveto
+stroke
+
+
+% 143 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 2.2 setlinewidth
+ 0.7 1.0 1.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -97.75 509.75 moveto
+ -97.75 509.75 -69.5586 518.18 -52.75 513.75 curveto
+ -52.75 513.75 -32.3789 511.359 -22.75 495.75 curveto
+stroke
+
+
+% 144 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 2.2 setlinewidth
+ 0.7 1.0 1.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -93.75 510.75 moveto
+ -93.75 510.75 -74.6211 518.621 -58.75 520.75 curveto
+ -58.75 520.75 -40.0781 523.898 -21.75 515.75 curveto
+ -21.75 515.75 -8.39844 509.379 -2.75 497.75 curveto
+stroke
+
+
+% 145 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 2.2 setlinewidth
+ 0.7 1.0 1.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -94.75 510.75 moveto
+ -94.75 510.75 -77.4805 522.359 -76.75 523.75 curveto
+ -76.75 523.75 -68.6797 536.0 -54.75 536.75 curveto
+ -54.75 536.75 -30.8398 535.559 -11.75 526.75 curveto
+stroke
+
+
+% 146 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -92.75 519.75 moveto
+ -94.6797 518.543 -124.75 486.75 -124.75 486.75 curveto
+ -163.059 446.457 -132.75 483.75 -132.75 483.75 curveto
+ -123.898 489.359 -113.75 509.75 -113.75 509.75 curveto
+ -112.461 513.121 -128.75 501.75 -128.75 501.75 curveto
+ -133.578 501.238 -148.75 479.75 -148.75 479.75 curveto
+ -141.059 482.762 -146.75 474.75 -146.75 474.75 curveto
+ -149.422 472.641 -171.75 455.75 -171.75 455.75 curveto
+ -175.82 451.078 -179.75 449.75 -179.75 449.75 curveto
+ -195.621 455.039 -188.75 440.75 -188.75 440.75 curveto
+ -191.223 433.039 -197.75 445.75 -197.75 445.75 curveto
+ -209.699 464.281 -191.75 461.75 -191.75 461.75 curveto
+ -158.66 458.559 -150.75 475.75 -150.75 475.75 curveto
+ -148.539 478.801 -157.75 475.75 -157.75 475.75 curveto
+ -167.461 473.961 -150.75 489.75 -150.75 489.75 curveto
+ -152.941 489.801 -162.75 482.75 -162.75 482.75 curveto
+ -174.5 472.199 -176.75 474.75 -176.75 474.75 curveto
+ -196.5 484.078 -207.75 475.75 -207.75 475.75 curveto
+ -210.141 473.961 -203.98 466.48 -205.75 460.75 curveto
+ -207.5 455.039 -212.75 441.75 -212.75 441.75 curveto
+ -210.141 439.641 -210.75 427.75 -210.75 427.75 curveto
+ -229.063 402.238 -218.75 404.75 -218.75 404.75 curveto
+ -201.34 404.879 -217.75 396.75 -217.75 396.75 curveto
+ -221.141 394.32 -230.75 386.75 -230.75 386.75 curveto
+ -227.742 387.719 -225.75 381.75 -225.75 381.75 curveto
+ -231.262 377.598 -227.75 372.75 -227.75 372.75 curveto
+ -221.582 371.0 -220.75 366.75 -220.75 366.75 curveto
+ -227.742 357.801 -216.75 357.75 -216.75 357.75 curveto
+ -220.699 352.52 -215.75 339.75 -215.75 339.75 curveto
+ -210.141 339.32 -202.75 332.75 -202.75 332.75 curveto
+ -205.742 327.879 -194.75 321.75 -194.75 321.75 curveto
+ -185.063 319.957 -187.75 312.75 -187.75 312.75 curveto
+ -179.34 305.879 -176.75 288.75 -176.75 288.75 curveto
+ -175.82 276.84 -173.18 273.32 -178.75 275.75 curveto
+ -184.621 277.719 -183.75 291.75 -183.75 291.75 curveto
+ -178.461 308.52 -225.75 325.75 -225.75 325.75 curveto
+ -229.941 327.879 -230.75 333.75 -230.75 333.75 curveto
+ -233.02 333.16 -242.75 324.75 -242.75 324.75 curveto
+ -251.063 312.48 -251.75 322.75 -251.75 322.75 curveto
+ -252.82 326.559 -250.75 332.75 -250.75 332.75 curveto
+ -257.66 356.918 -242.75 363.75 -242.75 363.75 curveto
+ -231.262 400.918 -246.75 391.75 -246.75 391.75 curveto
+ -249.742 385.52 -261.75 379.75 -261.75 379.75 curveto
+ -265.75 382.75 lineto
+ -263.82 387.719 -272.75 394.75 -272.75 394.75 curveto
+ -276.141 387.277 -282.75 395.75 -282.75 395.75 curveto
+ -286.699 422.918 -300.75 406.75 -300.75 406.75 curveto
+ -304.742 405.758 -305.75 412.75 -305.75 412.75 curveto
+ -310.02 424.68 -305.75 439.75 -305.75 439.75 curveto
+ -310.02 440.078 -320.75 433.75 -320.75 433.75 curveto
+ -323.66 437.438 -313.543 455.918 -317.75 453.75 curveto
+ -322.34 450.641 -326.75 448.75 -326.75 448.75 curveto
+ -328.063 451.078 -316.75 464.75 -316.75 464.75 curveto
+ -312.223 467.801 -306.75 489.75 -306.75 489.75 curveto
+ -314.422 486.281 -303.75 502.75 -303.75 502.75 curveto
+ -303.422 506.52 -309.75 518.75 -309.75 518.75 curveto
+ -309.141 526.32 -309.75 525.75 -309.75 525.75 curveto
+ -313.102 524.559 -321.902 522.801 -314.75 529.75 curveto
+ -306.941 536.879 -315.75 541.75 -315.75 541.75 curveto
+ -320.141 545.238 -304.75 544.75 -304.75 544.75 curveto
+ -299.461 549.641 -299.75 553.75 -299.75 553.75 curveto
+ -308.699 551.84 -292.859 567.68 -289.75 571.75 curveto
+ -287.582 575.602 -297.75 581.75 -297.75 581.75 curveto
+ -312.66 585.281 -299.75 588.75 -299.75 588.75 curveto
+ -278.34 588.359 -289.75 599.75 -289.75 599.75 curveto
+ -296.82 599.801 -294.75 602.75 -294.75 602.75 curveto
+ -289.34 603.762 -278.75 610.75 -278.75 610.75 curveto
+ -274.383 614.762 -278.75 613.75 -278.75 613.75 curveto
+ -296.82 612.559 -264.75 624.75 -264.75 624.75 curveto
+ -273.941 624.879 -253.75 636.75 -253.75 636.75 curveto
+ -251.941 638.078 -248.75 646.75 -248.75 646.75 curveto
+ -241.82 652.16 -236.75 659.75 -236.75 659.75 curveto
+ -236.102 664.48 -230.75 669.75 -230.75 669.75 curveto
+ -218.063 684.719 -211.75 684.75 -211.75 684.75 curveto
+ -195.621 688.238 -189.75 687.75 -189.75 687.75 curveto
+ -131.75 682.75 lineto
+ -102.781 668.441 -111.75 645.75 -111.75 645.75 curveto
+ -118.398 636.102 -128.75 640.75 -128.75 640.75 curveto
+ -133.578 647.102 -146.75 644.75 -146.75 644.75 curveto
+ -168.781 641.16 -165.75 644.75 -165.75 644.75 curveto
+ -163.281 650.18 -145.461 657.0 -144.75 657.75 curveto
+ -145.02 658.32 -135.75 661.75 -135.75 661.75 curveto
+ -132.039 663.379 -126.75 673.75 -126.75 673.75 curveto
+ -123.68 677.238 -140.75 670.75 -140.75 670.75 curveto
+ -139.738 669.762 -147.75 665.75 -147.75 665.75 curveto
+ -167.02 666.461 -178.75 654.75 -178.75 654.75 curveto
+ -190.563 636.32 -190.75 645.75 -190.75 645.75 curveto
+ -193.859 655.68 -180.75 678.75 -180.75 678.75 curveto
+ -181.32 681.199 -190.75 673.75 -190.75 673.75 curveto
+ -191.883 676.141 -192.75 669.75 -192.75 669.75 curveto
+ -192.98 667.121 -196.75 658.75 -196.75 658.75 curveto
+ -200.242 644.02 -203.75 651.75 -203.75 651.75 curveto
+ -209.75 641.75 lineto
+ -210.801 638.961 -203.75 630.75 -203.75 630.75 curveto
+ -203.98 627.52 -204.859 627.738 -198.75 619.75 curveto
+ -192.543 611.02 -196.75 605.75 -196.75 605.75 curveto
+ -194.742 598.922 -204.75 599.75 -204.75 599.75 curveto
+ -207.281 596.941 -210.75 596.75 -210.75 596.75 curveto
+ -213.0 594.738 -215.75 595.75 -215.75 595.75 curveto
+ -217.402 599.578 -223.75 597.75 -223.75 597.75 curveto
+ -225.762 600.02 -234.75 600.75 -234.75 600.75 curveto
+ -235.883 603.32 -236.32 605.078 -239.75 605.75 curveto
+ -243.801 606.398 -216.75 653.75 -216.75 653.75 curveto
+ -223.781 654.578 -214.75 667.75 -214.75 667.75 curveto
+ -212.34 675.48 -224.883 659.422 -227.75 657.75 curveto
+ -229.723 656.34 -230.82 653.922 -228.75 653.75 curveto
+ -227.301 654.359 -225.32 651.941 -226.75 651.75 curveto
+ -228.402 651.5 -242.699 635.0 -246.75 623.75 curveto
+ -250.18 612.559 -256.781 608.16 -263.75 601.75 curveto
+ -270.422 594.961 -269.75 568.75 -269.75 568.75 curveto
+ -269.102 558.66 -275.75 546.75 -275.75 546.75 curveto
+ -277.902 542.82 -273.75 522.75 -273.75 522.75 curveto
+ -271.082 520.379 -272.75 519.75 -272.75 519.75 curveto
+ -273.723 518.18 -280.75 503.75 -280.75 503.75 curveto
+ -279.223 503.879 -282.75 499.75 -282.75 499.75 curveto
+ -288.902 493.32 -281.75 496.75 -281.75 496.75 curveto
+ -275.262 498.379 -282.75 487.75 -282.75 487.75 curveto
+ -284.281 485.621 -274.75 490.75 -274.75 490.75 curveto
+ -264.262 491.34 -276.75 483.75 -276.75 483.75 curveto
+ -286.48 475.5 -273.75 480.75 -273.75 480.75 curveto
+ -268.883 482.32 -272.75 474.75 -272.75 474.75 curveto
+ -275.922 473.078 -294.75 465.75 -294.75 465.75 curveto
+ -295.281 461.199 -291.75 455.75 -291.75 455.75 curveto
+ -292.422 451.301 -289.75 447.75 -289.75 447.75 curveto
+ -288.68 438.539 -287.75 437.75 -287.75 437.75 curveto
+ -283.402 437.438 -275.75 422.75 -275.75 422.75 curveto
+ -273.281 419.398 -261.75 405.75 -261.75 405.75 curveto
+ -259.859 398.5 -239.75 406.75 -239.75 406.75 curveto
+ -232.801 402.68 -234.75 406.75 -234.75 406.75 curveto
+ -234.563 408.84 -239.75 415.75 -239.75 415.75 curveto
+ -247.543 418.301 -244.75 429.75 -244.75 429.75 curveto
+ -249.082 431.719 -236.762 434.801 -236.75 435.75 curveto
+ -237.199 437.438 -243.75 438.75 -243.75 438.75 curveto
+ -252.383 441.18 -247.75 443.75 -247.75 443.75 curveto
+ -246.883 448.219 -249.75 454.75 -249.75 454.75 curveto
+ -262.941 455.258 -249.75 472.75 -249.75 472.75 curveto
+ -238.301 481.441 -236.75 487.75 -236.75 487.75 curveto
+ -251.063 496.84 -242.043 510.48 -242.75 514.75 curveto
+ -242.48 518.398 -243.75 541.75 -243.75 541.75 curveto
+ -241.602 548.98 -238.75 563.75 -238.75 563.75 curveto
+ -240.723 569.66 -248.75 583.75 -248.75 583.75 curveto
+ -251.941 588.141 -261.621 593.422 -258.75 596.75 curveto
+ -256.781 600.02 -247.75 597.75 -247.75 597.75 curveto
+ -239.621 599.578 -240.75 593.75 -240.75 593.75 curveto
+ -238.52 592.762 -237.75 587.75 -237.75 587.75 curveto
+ -236.848 578.535 -226.75 571.75 -226.75 571.75 curveto
+ -214.762 564.82 -224.75 560.75 -224.75 560.75 curveto
+ -231.48 553.16 -220.75 552.75 -220.75 552.75 curveto
+ -208.602 554.922 -217.75 543.75 -217.75 543.75 curveto
+ -229.5 529.621 -225.75 526.75 -225.75 526.75 curveto
+ -214.98 525.441 -228.75 515.75 -228.75 515.75 curveto
+ -228.75 515.75 -227.961 517.52 -227.75 515.75 curveto
+ -228.402 513.559 -231.699 508.941 -232.75 506.75 curveto
+ -233.461 504.539 -228.75 504.75 -228.75 504.75 curveto
+ -229.723 493.762 -212.75 498.75 -212.75 498.75 curveto
+ -212.75 498.75 -212.781 498.379 -210.75 497.75 curveto
+ -209.262 497.941 -196.941 498.82 -190.75 500.75 curveto
+ -184.18 503.66 -176.75 503.75 -176.75 503.75 curveto
+ -176.75 503.75 -172.301 501.68 -163.75 501.75 curveto
+ -155.578 502.121 -146.75 498.75 -146.75 498.75 curveto
+ -141.941 499.48 -151.398 504.32 -151.75 503.75 curveto
+ -151.84 503.879 -158.0 510.039 -148.75 509.75 curveto
+ -125.223 507.582 -113.75 518.75 -113.75 518.75 curveto
+ -111.141 520.379 -108.75 523.75 -108.75 523.75 curveto
+ -97.2813 525.66 -109.75 509.75 -109.75 509.75 curveto
+ -111.141 508.281 -109.75 506.75 -109.75 506.75 curveto
+ -108.719 508.941 -99.75 514.75 -99.75 514.75 curveto
+ -97.0469 515.949 -95.5469 517.418 -92.75 519.75 curveto
+ closepath
+fill
+
+
+% 147 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 2.2 setlinewidth
+ 0.7 1.0 1.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -66.75 532.75 moveto
+ -66.75 532.75 -79.461 526.762 -82.75 523.75 curveto
+ -85.1797 520.602 -100.75 507.75 -100.75 507.75 curveto
+ -100.75 507.75 -94.6406 510.262 -91.75 511.75 curveto
+ -88.9219 514.219 -76.75 522.75 -76.75 522.75 curveto
+ -76.75 522.75 -72.8594 529.84 -66.75 532.75 curveto
+ closepath
+fill
+
+
+% 148 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.4 0.2 0.8 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -2.75 566.75 moveto
+ -3.26172 567.398 -2.68359 570.383 -2.75 570.75 curveto
+ -1.33594 573.981 8.25 575.75 8.25 575.75 curveto
+ 8.78906 574.098 8.85156 572.344 8.25 570.75 curveto
+ 8.25 570.75 3.37891 564.469 -2.75 566.75 curveto
+ closepath
+fill
+
+
+% 149 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.6 0.4 1.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -2.75 567.75 moveto
+ -2.39453 567.281 -2.875 570.465 -2.75 570.75 curveto
+ -1.55469 573.981 8.25 575.75 8.25 575.75 curveto
+ 8.78906 574.207 8.85156 572.453 8.25 570.75 curveto
+ 8.25 570.75 4.03906 565.02 -2.75 567.75 curveto
+ closepath
+fill
+
+
+% 150 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 2.25 567.75 moveto
+ 2.62891 567.301 3.18359 568.555 3.25 569.75 curveto
+ 3.18359 571.645 2.62891 572.898 2.25 572.75 curveto
+ 1.25391 572.898 0.695313 571.645 0.25 569.75 curveto
+ 0.695313 568.555 1.25391 567.301 2.25 567.75 curveto
+ closepath
+fill
+
+
+% 151 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 2.25 569.75 moveto
+fill
+
+
+% 152 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 52.25 459.75 moveto
+ 52.25 459.75 58.2617 448.438 31.25 454.75 curveto
+ 31.25 454.75 15.5781 456.359 13.25 458.75 curveto
+ 11.6211 458.117 2.41797 454.891 -0.75 453.75 curveto
+ -8.17969 452.398 -17.75 463.75 -17.75 463.75 curveto
+ -17.75 463.75 -22.4805 474.949 -25.75 474.75 curveto
+ -28.6406 474.949 -24.75 472.75 -24.75 472.75 curveto
+ -24.75 472.75 -17.8594 462.078 -18.75 460.75 curveto
+ -18.75 460.75 -12.5781 438.32 5.25002 437.75 curveto
+ 5.25002 437.75 22.7852 436.395 21.25 429.75 curveto
+ 21.25 429.75 11.6211 432.598 9.25 429.75 curveto
+ 9.25 429.75 -2.89844 430.398 6.25 423.75 curveto
+ 13.25 410.75 lineto
+ 13.25 410.75 13.2266 406.289 24.25 409.75 curveto
+ 35.1602 413.898 46.25 427.75 46.25 427.75 curveto
+ 46.25 427.75 64.0352 444.094 52.25 459.75 curveto
+ closepath
+fill
+
+
+% 153 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.1 0.4 0.4 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 53.25 454.75 moveto
+ 53.25 454.75 55.6211 444.48 15.25 455.75 curveto
+ 15.25 455.75 10.3008 455.918 7.25 454.75 curveto
+ 5.01953 454.16 -8.17969 451.078 -10.75 452.75 curveto
+ -10.75 452.75 -2.46094 437.438 10.25 438.75 curveto
+ 10.25 438.75 24.8203 437.438 24.25 431.75 curveto
+ 24.25 431.75 19.9805 424.238 14.25 421.75 curveto
+ 14.25 421.75 11.6211 418.957 12.25 415.75 curveto
+ 12.5 411.918 15.5781 410.16 18.25 409.75 curveto
+ 19.9805 408.398 23.5 411.918 25.25 411.75 curveto
+ 27.0195 411.918 36.2617 418.957 41.25 423.75 curveto
+ 45.9414 429.52 55.1797 442.719 54.25 445.75 curveto
+ 54.3008 448.879 53.25 454.75 53.25 454.75 curveto
+ closepath
+fill
+
+
+% 154 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.3 0.6 0.6 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 50.25 435.75 moveto
+ 47.0391 431.5 43.5195 426.879 41.25 423.75 curveto
+ 36.2617 418.957 27.0195 411.918 25.25 411.75 curveto
+ 23.5 411.918 19.9805 408.398 18.25 409.75 curveto
+ 15.5781 410.16 12.5 411.918 12.25 415.75 curveto
+ 11.6211 418.957 14.25 421.75 14.25 421.75 curveto
+ 18.0742 423.285 21.0859 427.125 23.25 429.75 curveto
+ 23.25 429.75 22.6211 426.879 28.25 427.75 curveto
+ 34.0586 428.641 39.7813 431.719 41.25 434.75 curveto
+ 43.3008 438.758 45.9414 441.398 44.25 437.75 curveto
+ 42.4219 433.48 39.7813 429.52 38.25 428.75 curveto
+ 36.2617 428.641 36.6992 427.32 39.25 427.75 curveto
+ 41.9805 428.199 45.0586 428.641 50.25 434.75 curveto
+fill
+
+
+% 155 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.4 0.85 1.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 53.25 458.75 moveto
+ 53.25 458.75 50.7813 473.961 49.25 478.75 curveto
+ 49.25 478.75 50.3398 485.84 47.25 490.75 curveto
+ 45.0586 495.078 42.8594 501.898 39.25 507.75 curveto
+ 36.2617 513.781 36.0391 518.18 31.25 519.75 curveto
+ 27.2383 521.699 20.6406 531.16 17.25 532.75 curveto
+ 14.4805 533.359 14.25 532.75 14.25 532.75 curveto
+ 14.25 532.75 7.21875 548.762 -7.75 544.75 curveto
+ -7.75 544.75 10.0781 547.441 -7.75 557.75 curveto
+ -7.75 557.75 -2.01953 556.57 -5.75 564.75 curveto
+ -8.07031 569.406 -7.51953 561.961 4.25 548.75 curveto
+ 4.25 548.75 10.0781 539.52 16.25 535.75 curveto
+ 21.5195 532.922 34.7188 525.219 36.25 520.75 curveto
+ 37.3594 516.859 40.8789 510.48 43.25 508.75 curveto
+ 45.2813 506.961 48.3594 502.34 49.25 498.75 curveto
+ 49.25 498.75 50.1211 494.199 51.25 492.75 curveto
+ 53.1992 491.559 53.4219 488.039 53.25 485.75 curveto
+ 53.4219 483.641 55.6211 480.559 55.25 477.75 curveto
+ 55.25 477.75 54.5195 457.02 55.25 454.75 curveto
+ 53.25 458.75 lineto
+ closepath
+fill
+
+
+% 156 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 62.25 453.75 moveto
+ 62.25 453.75 64.4219 455.48 69.25 448.75 curveto
+ 69.25 448.75 61.2305 412.578 61.25 410.75 curveto
+ 61.25 410.75 60.0195 413.348 61.25 421.75 curveto
+ 62.8789 429.188 64.25 442.75 64.25 442.75 curveto
+ 62.25 453.75 lineto
+ closepath
+fill
+
+
+% 157 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.4 0.85 1.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 38.25 520.75 moveto
+ 38.25 520.75 57.8203 517.078 57.25 484.75 curveto
+ 58.25 457.75 lineto
+ 58.25 457.75 59.5781 485.84 61.25 487.75 curveto
+ 62.2188 489.359 57.8203 501.68 61.25 494.75 curveto
+ 61.25 494.75 76.7383 479.68 68.25 456.75 curveto
+ 68.25 456.75 66.2891 452.73 69.25 457.75 curveto
+ 69.25 457.75 74.6484 471.648 73.25 478.75 curveto
+ 73.25 478.75 73.2188 481.109 71.25 483.75 curveto
+ 71.25 483.75 61.6719 497.059 58.25 499.75 curveto
+ 58.25 499.75 56.7188 515.43 40.25 520.75 curveto
+ 40.25 520.75 33.5117 523.68 38.25 520.75 curveto
+ closepath
+fill
+
+
+% 158 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -114.75 593.75 moveto
+ -115.605 593.809 -115.598 594.875 -115.75 594.75 curveto
+ -117.496 595.445 -117.68 596.617 -117.75 597.75 curveto
+ -119.207 598.934 -119.422 600.617 -119.75 602.75 curveto
+ -120.359 603.027 -120.391 604.078 -119.75 604.75 curveto
+ -118.754 607.535 -117.98 610.227 -116.75 612.75 curveto
+ -116.102 613.391 -115.812 614.266 -115.75 614.75 curveto
+ -115.082 616.445 -113.699 617.535 -112.75 618.75 curveto
+ -112.438 619.473 -113.016 620.488 -111.75 620.75 curveto
+ -111.238 620.699 -109.645 621.336 -109.75 619.75 curveto
+ -108.742 617.363 -109.855 614.586 -110.75 611.75 curveto
+ -110.059 611.141 -110.426 610.125 -110.75 609.75 curveto
+ -111.375 605.316 -110.059 601.629 -108.75 597.75 curveto
+ -109.195 597.691 -109.57 597.473 -109.75 597.75 curveto
+ -108.195 594.453 -106.598 591.762 -104.75 588.75 curveto
+ -103.766 588.051 -102.805 587.043 -102.75 585.75 curveto
+ -101.855 585.008 -101.406 583.945 -101.75 582.75 curveto
+ -97.9023 579.801 -95.4258 575.574 -92.75 571.75 curveto
+ -92.0469 570.594 -92.3672 569.266 -92.75 568.75 curveto
+ -93.8672 568.531 -94.918 569.656 -95.75 570.75 curveto
+ -95.8633 571.355 -96.25 572.07 -96.75 572.75 curveto
+ -96.9375 572.969 -96.7422 573.43 -96.75 573.75 curveto
+ -99.7851 576.145 -101.621 579.375 -104.75 581.75 curveto
+ -106.465 582.344 -108.156 583.441 -109.75 584.75 curveto
+ -110.418 584.75 -110.992 584.477 -111.75 584.75 curveto
+ -113.242 585.984 -113.238 588.227 -113.75 590.75 curveto
+ -113.41 591.301 -113.625 592.746 -114.75 593.75 curveto
+ closepath
+fill
+
+
+% 159 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -104.75 598.75 moveto
+ -105.293 598.418 -105.121 598.883 -104.75 598.75 curveto
+ -105.418 599.477 -105.863 599.684 -105.75 599.75 curveto
+ -106.16 600.277 -105.98 600.695 -105.75 600.75 curveto
+ -108.695 603.543 -108.98 606.871 -107.75 609.75 curveto
+ -108.965 610.82 -109.035 612.211 -108.75 612.75 curveto
+ -107.629 615.012 -107.414 617.129 -106.75 618.75 curveto
+ -105.461 620.223 -103.727 621.594 -101.75 619.75 curveto
+ -101.754 619.719 -101.402 618.852 -101.75 617.75 curveto
+ -101.777 617.891 -102.09 617.73 -101.75 617.75 curveto
+ -101.941 617.285 -101.344 617.035 -101.75 616.75 curveto
+ -101.301 615.094 -100.254 613.43 -100.75 611.75 curveto
+ -101.797 610.176 -102.695 608.133 -103.75 605.75 curveto
+ -102.082 603.852 -103.219 601.16 -101.75 598.75 curveto
+ -101.141 598.934 -101.152 598.508 -101.75 598.75 curveto
+ -101.605 597.75 -102.055 597.305 -102.75 596.75 curveto
+ -102.809 596.852 -103.191 596.848 -103.75 596.75 curveto
+ -104.047 597.383 -104.484 597.918 -104.75 598.75 curveto
+ closepath
+fill
+
+
+% 160 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -173.75 609.75 moveto
+ -175.777 607.703 -176.094 604.629 -173.75 602.75 curveto
+ -174.445 599.461 -178.133 601.637 -180.75 601.75 curveto
+ -180.32 602.648 -180.57 603.023 -180.75 602.75 curveto
+ -182.043 603.047 -182.793 604.184 -183.75 603.75 curveto
+ -184.438 605.691 -186.242 606.465 -186.75 607.75 curveto
+ -188.848 612.047 -188.195 616.746 -185.75 620.75 curveto
+ -185.133 620.598 -185.371 621.168 -184.75 621.75 curveto
+ -184.402 623.996 -182.129 624.344 -179.75 624.75 curveto
+ -178.707 629.363 -177.98 633.797 -175.75 637.75 curveto
+ -174.266 638.137 -173.496 640.047 -171.75 640.75 curveto
+ -170.563 641.629 -169.938 639.895 -169.75 638.75 curveto
+ -169.988 638.52 -170.484 638.27 -170.75 637.75 curveto
+ -170.215 637.691 -169.93 637.566 -169.75 637.75 curveto
+ -169.93 637.273 -170.172 637.129 -170.75 636.75 curveto
+ -169.313 636.078 -167.746 635.555 -167.75 634.75 curveto
+ -166.371 630.211 -169.203 626.773 -170.75 623.75 curveto
+ -171.688 622.004 -170.879 620.609 -169.75 619.75 curveto
+ -169.559 618.516 -169.68 617.273 -169.75 616.75 curveto
+ -170.809 613.77 -172.559 611.855 -173.75 609.75 curveto
+ closepath
+fill
+
+
+% 161 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -133.75 589.75 moveto
+ -131.738 587.414 -127.984 584.59 -130.75 582.75 curveto
+ -131.406 582.324 -131.813 582.32 -131.75 582.75 curveto
+ -134.227 584.191 -136.43 585.184 -138.75 585.75 curveto
+ -139.246 585.855 -139.547 585.34 -139.75 585.75 curveto
+ -141.727 586.293 -143.938 586.227 -144.75 587.75 curveto
+ -149.383 587.453 -153.305 588.68 -156.75 589.75 curveto
+ -158.313 590.613 -159.711 591.227 -160.75 591.75 curveto
+ -162.543 592.414 -163.867 593.434 -164.75 594.75 curveto
+ -165.238 594.84 -165.629 594.738 -165.75 594.75 curveto
+ -165.879 595.688 -166.934 595.828 -166.75 596.75 curveto
+ -167.309 596.77 -167.145 597.203 -167.75 597.75 curveto
+ -169.641 599.109 -170.652 601.328 -169.75 603.75 curveto
+ -169.055 604.578 -168.781 605.258 -167.75 605.75 curveto
+ -166.965 606.785 -165.75 605.844 -164.75 605.75 curveto
+ -164.426 605.488 -163.625 605.68 -162.75 605.75 curveto
+ -162.254 604.977 -160.789 605.621 -159.75 604.75 curveto
+ -158.344 604.375 -156.98 604.188 -155.75 603.75 curveto
+ -155.07 603.684 -154.215 603.789 -153.75 602.75 curveto
+ -153.895 603.246 -153.73 603.504 -153.75 603.75 curveto
+ -151.516 603.047 -150.129 602.809 -148.75 600.75 curveto
+ -148.586 600.801 -148.098 601.0 -147.75 600.75 curveto
+ -146.871 599.961 -146.426 598.605 -144.75 597.75 curveto
+ -144.992 597.73 -144.605 597.914 -144.75 597.75 curveto
+ -143.68 597.297 -143.277 596.594 -142.75 595.75 curveto
+ -142.211 595.852 -141.77 596.207 -141.75 596.75 curveto
+ -142.074 598.629 -142.793 600.598 -141.75 602.75 curveto
+ -144.445 605.434 -147.215 607.574 -148.75 610.75 curveto
+ -149.215 612.961 -149.977 615.324 -149.75 617.75 curveto
+ -149.844 617.82 -149.527 618.625 -149.75 618.75 curveto
+ -149.043 619.949 -150.039 621.121 -148.75 621.75 curveto
+ -147.566 623.238 -146.145 622.277 -144.75 620.75 curveto
+ -143.219 620.27 -140.945 619.508 -138.75 620.75 curveto
+ -138.102 621.73 -137.465 622.727 -136.75 623.75 curveto
+ -135.504 625.32 -135.871 626.902 -135.75 628.75 curveto
+ -135.957 628.762 -135.609 628.914 -135.75 628.75 curveto
+ -135.609 629.207 -135.852 629.352 -135.75 629.75 curveto
+ -135.223 630.188 -134.922 631.352 -133.75 631.75 curveto
+ -134.137 632.902 -133.391 633.875 -132.75 633.75 curveto
+ -130.238 634.965 -128.395 632.863 -126.75 632.75 curveto
+ -125.746 632.762 -125.234 633.902 -124.75 634.75 curveto
+ -124.047 634.5 -123.27 634.535 -122.75 633.75 curveto
+ -122.117 633.688 -121.469 633.563 -120.75 633.75 curveto
+ -118.855 632.855 -117.449 631.652 -115.75 630.75 curveto
+ -114.188 629.77 -113.137 628.191 -111.75 626.75 curveto
+ -110.914 625.469 -110.766 622.816 -112.75 622.75 curveto
+ -114.355 621.551 -115.789 624.523 -117.75 623.75 curveto
+ -118.293 624.109 -118.52 623.766 -118.75 623.75 curveto
+ -118.828 623.219 -119.066 623.473 -119.75 623.75 curveto
+ -120.223 622.66 -121.504 622.289 -122.75 621.75 curveto
+ -123.602 620.332 -125.523 620.793 -126.75 619.75 curveto
+ -128.32 618.043 -127.707 615.094 -129.75 613.75 curveto
+ -129.195 612.215 -128.527 610.813 -127.75 608.75 curveto
+ -127.848 607.914 -128.941 606.598 -130.75 606.75 curveto
+ -131.66 606.801 -131.945 607.637 -132.75 608.75 curveto
+ -132.773 608.527 -133.289 608.199 -132.75 607.75 curveto
+ -132.742 605.336 -131.613 603.145 -130.75 600.75 curveto
+ -131.043 600.121 -130.707 599.898 -130.75 599.75 curveto
+ -129.766 595.457 -125.309 592.824 -122.75 589.75 curveto
+ -122.066 588.789 -122.063 587.414 -122.75 586.75 curveto
+ -124.055 585.445 -126.211 587.148 -127.75 587.75 curveto
+ -128.313 589.027 -129.258 590.063 -130.75 589.75 curveto
+ -131.008 589.988 -131.266 590.586 -131.75 590.75 curveto
+ -132.004 590.883 -132.555 590.637 -132.75 590.75 curveto
+ -134.773 592.168 -136.32 593.383 -137.75 594.75 curveto
+ -138.445 594.836 -138.824 594.66 -138.75 594.75 curveto
+ -139.418 594.957 -139.625 595.383 -139.75 595.75 curveto
+ -140.363 595.809 -140.629 595.488 -140.75 594.75 curveto
+ -140.129 594.797 -140.125 593.742 -139.75 593.75 curveto
+ -138.633 593.227 -138.016 592.66 -137.75 591.75 curveto
+ -136.953 591.957 -136.227 592.23 -135.75 591.75 curveto
+ -135.457 590.902 -134.152 590.422 -133.75 589.75 curveto
+ closepath
+fill
+
+
+% 162 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -72.75 643.75 moveto
+ -72.75 643.75 -62.2578 646.961 -49.75 618.75 curveto
+ -49.75 618.75 -47.3398 613.0 -44.75 610.75 curveto
+ -42.0586 608.602 -29.7383 604.641 -27.75 599.75 curveto
+ -15.75 582.75 lineto
+ -15.75 582.75 -32.3789 600.238 -35.75 602.75 curveto
+ -35.75 602.75 -44.6992 612.121 -40.75 604.75 curveto
+ -40.75 604.75 -25.7813 592.762 -26.75 582.75 curveto
+ -26.75 582.75 -20.9414 566.801 -19.75 564.75 curveto
+ -19.75 564.75 -37.6602 599.801 -40.75 600.75 curveto
+ -42.9414 602.441 -44.2617 602.441 -42.75 598.75 curveto
+ -41.6211 594.52 -41.1797 576.48 -37.75 574.75 curveto
+ -37.75 574.75 -46.8984 596.719 -45.75 599.75 curveto
+ -45.75 599.75 -49.5391 604.199 -51.75 598.75 curveto
+ -50.75 580.75 lineto
+ -55.75 567.75 lineto
+ -55.75 567.75 -53.0586 580.0 -54.75 596.75 curveto
+ -54.75 596.75 -52.6211 608.602 -56.75 602.75 curveto
+ -61.4219 596.281 -71.9805 589.68 -71.75 584.75 curveto
+ -71.75 584.75 -66.2617 603.762 -55.75 608.75 curveto
+ -51.75 602.75 lineto
+ -50.75 604.75 lineto
+ -50.75 604.75 -46.461 605.52 -51.75 612.75 curveto
+ -56.1406 620.48 -55.75 621.75 -55.75 621.75 curveto
+ -55.75 621.75 -62.7383 613.441 -64.75 613.75 curveto
+ -64.75 613.75 -79.0195 621.801 -80.75 594.75 curveto
+ -80.75 594.75 -87.8203 610.801 -77.75 618.75 curveto
+ -77.75 618.75 -61.4219 620.48 -62.75 625.75 curveto
+ -70.75 639.75 lineto
+ -74.6211 645.559 -72.75 642.75 -72.75 642.75 curveto
+fill
+
+
+% 163 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -50.75 625.75 moveto
+ -50.75 625.75 -36.3398 625.762 -32.75 619.75 curveto
+ -24.75 609.75 lineto
+ -24.75 609.75 -43.8203 620.48 -47.75 621.75 curveto
+ -52.6211 623.121 -50.75 625.75 -50.75 625.75 curveto
+ closepath
+fill
+
+
+% 164 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -6.75 618.75 moveto
+ -6.75 618.75 -4.21875 617.398 -3.75 614.75 curveto
+ -3.33984 611.238 -0.699219 610.801 -1.75 607.75 curveto
+ -2.46094 604.641 -4.66016 602.0 -4.75 606.75 curveto
+ -4.66016 610.801 -6.42188 613.0 -7.75 614.75 curveto
+ -8.17969 615.641 -9.94141 620.48 -6.75 618.75 curveto
+ closepath
+fill
+
+
+% 165 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 3.25 551.75 moveto
+ 3.25 551.75 12.5 555.801 16.25 559.75 curveto
+ 19.5391 563.719 19.043 558.039 24.25 558.75 curveto
+ 30.8125 558.926 29.25 576.75 29.25 576.75 curveto
+ 34.25 567.75 lineto
+ 34.25 567.75 35.3789 552.281 26.25 554.75 curveto
+ 22.2813 556.211 20.8594 554.48 22.25 553.75 curveto
+ 24.3789 552.719 16.4609 552.281 19.25 550.75 curveto
+ 22.6211 548.762 6.78125 554.48 9.25 542.75 curveto
+ 3.25 551.75 lineto
+ closepath
+fill
+
+
+% 166 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 17.25 535.75 moveto
+ 17.25 535.75 34.0586 530.719 38.25 541.75 curveto
+ 38.25 541.75 43.3008 538.641 41.25 535.75 curveto
+ 38.4609 532.039 37.25 531.75 37.25 531.75 curveto
+ 37.25 531.75 31.1992 530.281 32.25 529.75 curveto
+ 32.5195 528.52 35.25 524.75 35.25 524.75 curveto
+ 35.25 524.75 23.9414 531.379 17.25 535.75 curveto
+ closepath
+fill
+
+
+% 167 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -233.75 449.75 moveto
+ -233.652 447.191 -231.813 446.309 -229.75 445.75 curveto
+ -227.613 446.633 -224.754 450.051 -222.75 447.75 curveto
+ -222.16 448.309 -221.305 448.371 -220.75 448.75 curveto
+ -220.414 450.09 -220.711 451.238 -220.75 451.75 curveto
+ -219.738 453.516 -218.957 455.019 -218.75 456.75 curveto
+ -221.148 457.363 -221.801 459.457 -221.75 461.75 curveto
+ -221.203 461.68 -220.734 461.898 -220.75 462.75 curveto
+ -221.156 462.637 -221.508 462.887 -221.75 462.75 curveto
+ -221.652 463.031 -221.492 462.773 -221.75 462.75 curveto
+ -220.699 462.914 -220.836 463.613 -220.75 463.75 curveto
+ -221.621 465.961 -223.84 466.25 -225.75 464.75 curveto
+ -225.602 465.563 -226.164 465.348 -226.75 465.75 curveto
+ -226.586 466.016 -227.035 466.598 -227.75 466.75 curveto
+ -227.824 468.266 -229.613 467.051 -230.75 467.75 curveto
+ -231.676 468.629 -232.844 469.398 -233.75 468.75 curveto
+ -236.02 467.621 -237.898 466.289 -238.75 464.75 curveto
+ -239.852 463.457 -240.113 462.047 -239.75 460.75 curveto
+ -240.008 460.281 -238.492 460.668 -237.75 459.75 curveto
+ -237.402 457.723 -239.418 457.152 -239.75 455.75 curveto
+ -240.469 455.297 -240.176 454.965 -239.75 454.75 curveto
+ -239.379 454.715 -238.516 454.922 -238.75 454.75 curveto
+ -239.738 450.91 -236.703 450.164 -233.75 449.75 curveto
+ closepath
+fill
+
+
+% 168 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -223.75 427.75 moveto
+ -223.551 429.891 -221.793 431.824 -222.75 433.75 curveto
+ -223.27 433.551 -223.414 433.309 -223.75 433.75 curveto
+ -223.711 433.309 -223.855 433.551 -223.75 433.75 curveto
+ -225.645 431.262 -229.664 430.242 -229.75 426.75 curveto
+ -229.48 426.617 -228.285 425.609 -229.75 424.75 curveto
+ -227.285 423.418 -227.227 420.809 -225.75 418.75 curveto
+ -224.84 419.055 -223.508 419.453 -221.75 419.75 curveto
+ -222.629 421.695 -222.5 423.547 -223.75 424.75 curveto
+ -223.879 425.766 -223.563 426.953 -223.75 427.75 curveto
+ closepath
+fill
+
+
+% 169 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -40.75 437.75 moveto
+ -40.75 437.75 -22.1953 426.73 -37.75 443.75 curveto
+ -47.3398 454.16 -58.75 460.75 -58.75 460.75 curveto
+ -58.75 460.75 -69.7813 465.16 -73.75 466.75 curveto
+ -77.6992 467.801 -94.4219 473.52 -97.75 473.75 curveto
+ -101.461 474.398 -112.02 478.801 -119.75 474.75 curveto
+ -126.98 470.0 -135.75 464.75 -135.75 464.75 curveto
+ -135.75 464.75 -117.738 474.398 -113.75 471.75 curveto
+ -109.82 469.121 -101.898 469.559 -95.75 465.75 curveto
+ -95.75 465.75 -79.0195 461.199 -75.75 458.75 curveto
+ -71.9805 456.801 -60.5391 444.039 -58.75 444.75 curveto
+ -57.0195 445.801 -59.2188 446.238 -60.75 449.75 curveto
+ -61.8594 452.398 -59.6602 454.16 -50.75 446.75 curveto
+ -42.0586 440.078 -40.75 437.75 -40.75 437.75 curveto
+ closepath
+fill
+
+
+% 170 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -48.75 444.75 moveto
+ -48.75 444.75 -50.4375 458.785 -59.75 456.75 curveto
+ -59.75 456.75 -68.8125 461.543 -71.75 463.75 curveto
+ -71.75 463.75 -80.7578 465.578 -81.75 466.75 curveto
+ -102.527 475.828 -118.715 470.855 -119.75 471.75 curveto
+ -119.918 473.32 -141.508 465.492 -145.75 460.75 curveto
+ -145.906 460.508 -134.223 467.152 -123.75 468.75 curveto
+ -114.453 471.008 -90.6914 468.961 -78.75 462.75 curveto
+ -75.4258 461.211 -65.5859 454.852 -62.75 454.75 curveto
+ -60.0156 455.094 -48.75 444.75 -48.75 444.75 curveto
+ closepath
+fill
+
+
+% 171 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -44.75 416.75 moveto
+ -44.75 416.75 -27.9805 418.957 -46.75 420.75 curveto
+ -46.75 420.75 -66.2617 422.918 -70.75 428.75 curveto
+ -70.75 428.75 -85.6211 438.758 -88.75 438.75 curveto
+ -91.7813 439.641 -124.781 447.559 -124.75 449.75 curveto
+ -125.66 452.84 -131.82 452.84 -133.75 451.75 curveto
+ -135.34 451.078 -134.461 449.758 -131.75 448.75 curveto
+ -128.301 448.0 -93.9805 429.957 -86.75 428.75 curveto
+ -79.8984 427.32 -67.1406 418.957 -61.75 417.75 curveto
+ -56.5781 416.32 -44.75 416.75 -44.75 416.75 curveto
+ closepath
+fill
+
+
+% 172 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -65.75 424.75 moveto
+ -65.75 424.75 -56.7305 425.367 -65.75 426.75 curveto
+ -65.75 426.75 -75.8906 430.035 -77.75 432.75 curveto
+ -77.75 432.75 -85.8047 438.148 -87.75 438.75 curveto
+ -88.9571 438.598 -104.313 442.652 -104.75 443.75 curveto
+ -104.766 445.355 -142.238 459.195 -146.75 455.75 curveto
+ -150.301 453.375 -139.41 455.219 -128.75 450.75 curveto
+ -127.32 449.688 -90.082 433.641 -86.75 432.75 curveto
+ -82.875 432.289 -76.3398 428.008 -73.75 427.75 curveto
+ -70.9336 426.656 -65.75 424.75 -65.75 424.75 curveto
+ closepath
+fill
+
+
+% 173 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -57.75 421.75 moveto
+ -57.75 421.75 -63.1797 422.48 -61.75 420.75 curveto
+ -60.5391 418.957 -57.75 419.75 -57.75 419.75 curveto
+ -57.75 421.75 lineto
+ closepath
+fill
+
+
+% 174 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -49.75 420.75 moveto
+ -49.75 420.75 -55.2617 420.719 -53.75 418.75 curveto
+ -52.6211 417.199 -49.75 417.75 -49.75 417.75 curveto
+ -49.75 420.75 lineto
+ closepath
+fill
+
+
+% 175 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -37.75 418.75 moveto
+ -37.75 418.75 -43.8203 418.957 -42.75 416.75 curveto
+ -41.1797 415.438 -38.75 416.75 -38.75 416.75 curveto
+ -37.75 418.75 lineto
+ closepath
+fill
+
+
+% 176 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -29.75 417.75 moveto
+ -29.75 417.75 -35.461 418.078 -33.75 416.75 curveto
+ -32.8203 414.559 -29.75 415.75 -29.75 415.75 curveto
+ -29.75 417.75 lineto
+ closepath
+fill
+
+
+% 177 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -71.75 460.75 moveto
+ -71.75 460.75 -76.8203 461.199 -75.75 459.75 curveto
+ -74.1797 457.68 -70.75 457.75 -70.75 457.75 curveto
+ -71.75 460.75 lineto
+ closepath
+fill
+
+
+% 178 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -60.75 454.75 moveto
+ -60.75 454.75 -68.1367 457.395 -65.75 453.75 curveto
+ -64.0586 451.957 -61.75 452.75 -61.75 452.75 curveto
+ -60.75 454.75 lineto
+ closepath
+fill
+
+
+% 179 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -48.75 449.75 moveto
+ -48.75 449.75 -54.3789 450.199 -52.75 448.75 curveto
+ -51.7383 446.68 -48.75 447.75 -48.75 447.75 curveto
+ -48.75 449.75 lineto
+ closepath
+fill
+
+
+% 180 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -40.75 442.75 moveto
+ -40.75 442.75 -46.0195 443.598 -44.75 441.75 curveto
+ -43.3789 440.078 -40.75 440.75 -40.75 440.75 curveto
+ -40.75 442.75 lineto
+ closepath
+fill
+
+
+% 181 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -32.75 437.75 moveto
+ -32.75 437.75 -38.5391 438.32 -36.75 436.75 curveto
+ -35.8984 434.801 -33.75 435.75 -33.75 435.75 curveto
+ -32.75 437.75 lineto
+ closepath
+fill
+
+
+% 182 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -75.75 430.75 moveto
+ -75.75 430.75 -83.4219 431.426 -81.75 428.75 curveto
+ -79.9102 426.742 -76.75 427.75 -76.75 427.75 curveto
+ -75.75 430.75 lineto
+ closepath
+fill
+
+
+% 183 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -87.75 435.75 moveto
+ -87.75 435.75 -94.8633 436.707 -92.75 434.75 curveto
+ -91.3516 432.023 -87.75 432.75 -87.75 432.75 curveto
+ -87.75 435.75 lineto
+ closepath
+fill
+
+
+% 184 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -98.75 440.75 moveto
+ -98.75 440.75 -106.742 441.547 -104.75 438.75 curveto
+ -103.23 436.863 -99.75 437.75 -99.75 437.75 curveto
+ -98.75 440.75 lineto
+ closepath
+fill
+
+
+% 185 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -110.75 445.75 moveto
+ -110.75 445.75 -118.184 446.828 -116.75 444.75 curveto
+ -114.668 442.141 -110.75 443.75 -110.75 443.75 curveto
+ -110.75 445.75 lineto
+ closepath
+fill
+
+
+% 186 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -79.75 465.75 moveto
+ -79.75 465.75 -87.8242 466.629 -85.75 464.75 curveto
+ -84.3086 461.941 -79.75 461.75 -79.75 461.75 curveto
+ -79.75 465.75 lineto
+ closepath
+fill
+
+
+% 187 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -90.75 469.75 moveto
+ -90.75 469.75 -98.8242 470.148 -96.75 467.75 curveto
+ -95.3086 465.461 -90.75 465.75 -90.75 465.75 curveto
+ -90.75 469.75 lineto
+ closepath
+fill
+
+
+% 188 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -66.75 425.75 moveto
+ -66.75 425.75 -71.9805 426.0 -70.75 423.75 curveto
+ -69.3398 422.48 -66.75 423.75 -66.75 423.75 curveto
+ -66.75 425.75 lineto
+ closepath
+fill
+
+
+% 189 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.4 0.85 1.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 14.25 534.75 moveto
+ 14.25 534.75 19.1016 525.0 19.25 521.75 curveto
+ 19.25 521.75 18.6602 531.16 17.25 533.75 curveto
+ 16.0195 535.559 14.25 534.75 14.25 534.75 curveto
+ closepath
+fill
+
+
+% 190 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.4 0.85 1.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 34.25 519.75 moveto
+ 34.25 519.75 38.0195 503.441 37.25 500.75 curveto
+ 37.25 500.75 38.8984 513.121 38.25 514.75 curveto
+ 38.0195 515.762 34.25 519.75 34.25 519.75 curveto
+ closepath
+fill
+
+
+% 191 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ 11.25 601.75 moveto
+ 12.25 597.75 lineto
+ 14.25 597.75 lineto
+ 14.25 597.75 -1.35938 583.738 -1.75 575.75 curveto
+ -1.75 575.75 -2.89844 584.398 11.25 601.75 curveto
+ closepath
+fill
+
+
+% 192 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 7.25 599.75 moveto
+ 7.71094 600.406 7.47266 601.227 8.25 601.75 curveto
+ 8.80859 602.078 6.49219 602.141 6.25 602.75 curveto
+ 7.16406 604.258 6.95703 604.277 7.25 605.75 curveto
+ 7.15625 606.34 6.50781 608.035 6.25 608.75 curveto
+ 4.49609 610.336 5.94922 613.563 4.25 615.75 curveto
+ 3.8125 615.586 3.39844 616.191 3.25 616.75 curveto
+ 2.35938 617.711 1.05859 618.25 0.25 618.75 curveto
+ -0.335938 619.461 -0.117188 620.371 -0.75 620.75 curveto
+ -1.52734 620.145 -2.89063 620.289 -2.75 619.75 curveto
+ -2.71875 617.031 -1.25781 615.137 0.25 613.75 curveto
+ -0.34375 612.527 0.160156 611.832 0.25 610.75 curveto
+ 1.94141 608.336 1.73047 605.211 2.25 601.75 curveto
+ 1.92969 601.992 2.26563 601.906 2.25 601.75 curveto
+ 1.87109 599.281 1.22656 596.863 0.25 594.75 curveto
+ -0.140625 593.387 -0.660156 592.402 -0.75 591.75 curveto
+ -0.949219 590.629 -1.0625 589.711 -0.75 588.75 curveto
+ -2.85156 585.758 -1.41016 582.84 -2.75 578.75 curveto
+ -2.92578 578.27 -4.78516 576.164 -4.75 576.75 curveto
+ -1.51172 577.301 -1.38672 577.738 -0.75 578.75 curveto
+ -1.03516 579.25 -0.671875 580.766 -0.75 581.75 curveto
+ -0.339844 581.609 -0.152344 583.68 0.25 583.75 curveto
+ 1.59766 586.434 0.105469 586.242 1.25 588.75 curveto
+ 3.18359 589.582 4.24609 590.797 5.25002 591.75 curveto
+ 5.69922 592.301 4.44141 593.098 4.25 593.75 curveto
+ 5.83984 594.75 7.10938 595.594 6.25 596.75 curveto
+ 6.57031 597.992 6.41797 599.156 7.25 599.75 curveto
+ closepath
+fill
+
+
+% 193 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 11.25 597.75 moveto
+ 11.25 597.75 10.7383 590.559 8.25 588.75 curveto
+ 5.46094 587.039 6.78125 587.922 10.25 588.75 curveto
+ 13.8203 590.559 12.25 591.75 12.25 591.75 curveto
+ 12.25 591.75 15.5781 591.0 13.25 588.75 curveto
+ 10.3008 586.602 6.33984 583.961 8.25 583.75 curveto
+ 9.85938 583.961 18.2188 588.359 18.25 591.75 curveto
+ 18.2188 594.52 19.25 598.75 19.25 598.75 curveto
+ 19.25 598.75 18.1094 599.91 13.25 599.75 curveto
+ 13.25 599.75 11.2891 599.031 11.25 597.75 curveto
+ closepath
+fill
+gsave %{
+
+
+% 194 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 12.25 577.75 moveto
+ 12.25 577.75 21.4336 580.648 42.25 576.75 curveto
+ 42.25 576.75 31.8242 579.207 11.25 576.75 curveto
+ -0.148438 575.324 12.25 577.75 12.25 577.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 195 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 12.25 577.75 moveto
+ 12.25 577.75 21.4336 580.648 42.25 576.75 curveto
+ 42.25 576.75 31.8242 579.207 11.25 576.75 curveto
+ -0.148438 575.324 12.25 577.75 12.25 577.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 196 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 10.25 577.75 moveto
+ 10.25 577.75 18.8242 581.527 39.25 579.75 curveto
+ 39.25 579.75 29.3008 580.988 9.25 576.75 curveto
+ -2.21875 574.355 10.25 577.75 10.25 577.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 197 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 10.25 577.75 moveto
+ 10.25 577.75 18.8242 581.527 39.25 579.75 curveto
+ 39.25 579.75 29.3008 580.988 9.25 576.75 curveto
+ -2.21875 574.355 10.25 577.75 10.25 577.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 198 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 8.25 577.75 moveto
+ 8.25 577.75 16.543 582.09 37.25 581.75 curveto
+ 37.25 581.75 27.0351 582.328 7.25 576.75 curveto
+ -3.90625 573.371 8.25 577.75 8.25 577.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 199 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 8.25 577.75 moveto
+ 8.25 577.75 16.543 582.09 37.25 581.75 curveto
+ 37.25 581.75 27.0351 582.328 7.25 576.75 curveto
+ -3.90625 573.371 8.25 577.75 8.25 577.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 200 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 6.25 577.75 moveto
+ 6.25 577.75 13.8945 582.047 32.25 583.75 curveto
+ 32.25 583.75 23.2852 583.07 6.25 576.75 curveto
+ -3.77344 572.66 6.25 577.75 6.25 577.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 201 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 6.25 577.75 moveto
+ 6.25 577.75 13.8945 582.047 32.25 583.75 curveto
+ 32.25 583.75 23.2852 583.07 6.25 576.75 curveto
+ -3.77344 572.66 6.25 577.75 6.25 577.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 202 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -120.75 565.75 moveto
+ -120.75 565.75 -119.402 565.035 -119.75 566.75 curveto
+ -119.871 567.633 -150.902 582.121 -154.75 581.75 curveto
+ -154.75 581.75 -121.605 567.316 -120.75 565.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 203 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -120.75 565.75 moveto
+ -120.75 565.75 -119.402 565.035 -119.75 566.75 curveto
+ -119.871 567.633 -150.902 582.121 -154.75 581.75 curveto
+ -154.75 581.75 -121.605 567.316 -120.75 565.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 204 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -116.75 564.75 moveto
+ -116.75 564.75 -115.727 564.254 -115.75 565.75 curveto
+ -115.992 566.879 -145.789 583.762 -149.75 583.75 curveto
+ -149.75 583.75 -117.746 566.703 -116.75 564.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 205 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -116.75 564.75 moveto
+ -116.75 564.75 -115.727 564.254 -115.75 565.75 curveto
+ -115.992 566.879 -145.789 583.762 -149.75 583.75 curveto
+ -149.75 583.75 -117.746 566.703 -116.75 564.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 206 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -112.75 563.75 moveto
+ -112.75 563.75 -112.164 562.68 -111.75 563.75 curveto
+ -112.258 565.316 -134.055 582.363 -144.75 584.75 curveto
+ -144.75 584.75 -125.016 575.484 -112.75 563.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 207 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -112.75 563.75 moveto
+ -112.75 563.75 -112.164 562.68 -111.75 563.75 curveto
+ -112.258 565.316 -134.055 582.363 -144.75 584.75 curveto
+ -144.75 584.75 -125.016 575.484 -112.75 563.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 208 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -109.75 561.75 moveto
+ -109.75 561.75 -109.094 560.715 -108.75 561.75 curveto
+ -109.176 563.09 -128.793 578.43 -138.75 580.75 curveto
+ -138.75 580.75 -120.66 572.242 -109.75 561.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 209 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -109.75 561.75 moveto
+ -109.75 561.75 -109.094 560.715 -108.75 561.75 curveto
+ -109.176 563.09 -128.793 578.43 -138.75 580.75 curveto
+ -138.75 580.75 -120.66 572.242 -109.75 561.75 curveto
+ closepath
+stroke
+
+
+% 210 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -74.75 398.75 moveto
+ -74.75 398.75 -58.3398 401.359 -76.75 402.75 curveto
+ -76.75 402.75 -96.6211 405.32 -100.75 410.75 curveto
+ -100.75 410.75 -115.98 421.16 -118.75 421.75 curveto
+ -122.141 422.039 -140.18 426.0 -140.75 428.75 curveto
+ -141.059 431.277 -147.66 433.918 -149.75 432.75 curveto
+ -151.18 432.16 -151.18 422.039 -147.75 420.75 curveto
+ -145.02 420.277 -124.34 412.359 -117.75 410.75 curveto
+ -110.262 409.719 -97.5 401.359 -91.75 399.75 curveto
+ -86.9414 398.719 -74.75 398.75 -74.75 398.75 curveto
+ closepath
+fill
+
+
+% 211 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -155.75 439.75 moveto
+ -155.75 439.75 -152.059 438.098 -150.75 434.75 curveto
+ -150.75 434.75 -143.699 423.578 -127.75 419.75 curveto
+ -127.75 419.75 -102.781 410.16 -93.75 407.75 curveto
+ -93.75 407.75 -79.461 402.457 -71.75 403.75 curveto
+ -71.75 403.75 -63.6211 403.117 -70.75 401.75 curveto
+ -70.75 401.75 -92.6602 403.559 -96.75 405.75 curveto
+ -96.75 405.75 -113.559 411.258 -116.75 413.75 curveto
+ -120.16 416.98 -140.18 422.48 -142.75 424.75 curveto
+ -145.02 426.879 -155.801 436.117 -155.75 439.75 curveto
+ closepath
+fill
+
+
+% 212 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -90.75 404.75 moveto
+ -90.75 404.75 -96.5234 405.445 -95.75 403.75 curveto
+ -93.9843 402.039 -91.75 402.75 -91.75 402.75 curveto
+ -90.75 404.75 lineto
+ closepath
+fill
+
+
+% 213 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -82.75 403.75 moveto
+ -82.75 403.75 -88.5977 403.961 -87.75 402.75 curveto
+ -86.0625 400.551 -83.75 401.75 -83.75 401.75 curveto
+ -82.75 403.75 lineto
+ closepath
+fill
+
+
+% 214 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -71.75 402.75 moveto
+ -71.75 402.75 -77.1289 402.586 -75.75 400.75 curveto
+ -74.5898 399.18 -71.75 399.75 -71.75 399.75 curveto
+ -71.75 402.75 lineto
+ closepath
+fill
+
+
+% 215 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -62.75 401.75 moveto
+ -62.75 401.75 -68.7305 401.988 -67.75 400.75 curveto
+ -66.1953 398.578 -63.75 399.75 -63.75 399.75 curveto
+ -62.75 401.75 lineto
+ closepath
+fill
+
+
+% 216 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -108.75 413.75 moveto
+ -108.75 413.75 -116.613 413.668 -114.75 411.75 curveto
+ -113.238 409.129 -109.75 410.75 -109.75 410.75 curveto
+ -108.75 413.75 lineto
+ closepath
+fill
+
+
+% 217 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -120.75 417.75 moveto
+ -120.75 417.75 -126.859 421.836 -126.75 416.75 curveto
+ -125.973 413.453 -120.75 415.75 -120.75 415.75 curveto
+ -120.75 417.75 lineto
+ closepath
+fill
+
+
+% 218 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -130.75 421.75 moveto
+ -130.75 421.75 -138.223 425.371 -136.75 419.75 curveto
+ -135.461 416.668 -130.75 418.75 -130.75 418.75 curveto
+ -130.75 421.75 lineto
+ closepath
+fill
+
+
+% 219 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -140.75 426.75 moveto
+ -140.75 426.75 -145.609 431.996 -146.75 424.75 curveto
+ -147.227 421.879 -141.75 423.75 -141.75 423.75 curveto
+ -140.75 426.75 lineto
+ closepath
+fill
+
+
+% 220 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -99.75 408.75 moveto
+ -99.75 408.75 -105.27 408.652 -103.75 406.75 curveto
+ -102.734 405.242 -99.75 405.75 -99.75 405.75 curveto
+ -99.75 408.75 lineto
+ closepath
+fill
+gsave %{
+
+
+% 221 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -138.75 541.75 moveto
+ -138.75 541.75 -137.879 541.207 -137.75 542.75 curveto
+ -137.879 543.559 -157.109 558.152 -166.75 559.75 curveto
+ -166.75 559.75 -149.129 552.27 -138.75 541.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 222 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -138.75 541.75 moveto
+ -138.75 541.75 -137.879 541.207 -137.75 542.75 curveto
+ -137.879 543.559 -157.109 558.152 -166.75 559.75 curveto
+ -166.75 559.75 -149.129 552.27 -138.75 541.75 curveto
+ closepath
+stroke
+
+
+% 223 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -141.75 471.75 moveto
+ -141.75 471.75 -166.141 447.117 -176.75 442.75 curveto
+ -176.75 442.75 -186.383 430.84 -181.75 401.75 curveto
+ -181.75 401.75 -178.461 393.879 -174.75 416.75 curveto
+ -174.75 416.75 -178.461 444.48 -165.75 426.75 curveto
+ -165.75 426.75 -156.898 437.77 -163.75 437.75 curveto
+ -163.75 437.75 -167.461 435.238 -167.75 436.75 curveto
+ -168.34 438.758 -159.539 453.719 -140.75 469.75 curveto
+ -121.699 485.398 -141.75 471.75 -141.75 471.75 curveto
+ closepath
+fill
+gsave %{
+
+
+% 224 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -77.75 428.75 moveto
+ -77.75 428.75 -77.4805 431.059 -79.75 429.75 curveto
+ -81.4414 429.301 -185.063 422.48 -219.75 395.75 curveto
+ -219.75 395.75 -170.102 421.598 -77.75 428.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 225 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -77.75 428.75 moveto
+ -77.75 428.75 -77.4805 431.059 -79.75 429.75 curveto
+ -81.4414 429.301 -185.063 422.48 -219.75 395.75 curveto
+ -219.75 395.75 -170.102 421.598 -77.75 428.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 226 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -88.75 433.75 moveto
+ -88.75 433.75 -88.9219 435.898 -90.75 434.75 curveto
+ -92.8789 434.141 -243.141 435.238 -268.75 399.75 curveto
+ -268.75 399.75 -244.902 427.32 -88.75 433.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 227 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -88.75 433.75 moveto
+ -88.75 433.75 -88.9219 435.898 -90.75 434.75 curveto
+ -92.8789 434.141 -243.141 435.238 -268.75 399.75 curveto
+ -268.75 399.75 -244.902 427.32 -88.75 433.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 228 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -101.75 438.75 moveto
+ -101.75 438.75 -101.68 440.301 -103.75 439.75 curveto
+ -105.641 438.539 -296.383 452.84 -322.75 416.75 curveto
+ -322.75 416.75 -311.781 445.359 -101.75 438.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 229 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -101.75 438.75 moveto
+ -101.75 438.75 -101.68 440.301 -103.75 439.75 curveto
+ -105.641 438.539 -296.383 452.84 -322.75 416.75 curveto
+ -322.75 416.75 -311.781 445.359 -101.75 438.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 230 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -112.75 443.75 moveto
+ -112.75 443.75 -112.68 445.578 -114.75 444.75 curveto
+ -116.641 443.82 -251.063 486.281 -276.75 450.75 curveto
+ -276.75 450.75 -262.281 477.699 -112.75 443.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 231 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -112.75 443.75 moveto
+ -112.75 443.75 -112.68 445.578 -114.75 444.75 curveto
+ -116.641 443.82 -251.063 486.281 -276.75 450.75 curveto
+ -276.75 450.75 -262.281 477.699 -112.75 443.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 232 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -48.75 418.75 moveto
+ -48.75 418.75 -48.8789 420.5 -50.75 419.75 curveto
+ -52.8398 418.738 -72.4219 416.32 -74.75 373.75 curveto
+ -74.75 373.75 -66.6992 419.84 -48.75 418.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 233 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -48.75 418.75 moveto
+ -48.75 418.75 -48.8789 420.5 -50.75 419.75 curveto
+ -52.8398 418.738 -72.4219 416.32 -74.75 373.75 curveto
+ -74.75 373.75 -66.6992 419.84 -48.75 418.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 234 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -39.75 416.75 moveto
+ -39.75 416.75 -39.1992 418.738 -40.75 417.75 curveto
+ -43.1602 416.98 -58.7813 422.039 -55.75 379.75 curveto
+ -55.75 379.75 -57.0195 418.078 -39.75 416.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 235 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -39.75 416.75 moveto
+ -39.75 416.75 -39.1992 418.738 -40.75 417.75 curveto
+ -43.1602 416.98 -58.7813 422.039 -55.75 379.75 curveto
+ -55.75 379.75 -57.0195 418.078 -39.75 416.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 236 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -30.75 416.75 moveto
+ -30.75 416.75 -30.3984 418.301 -32.75 417.75 curveto
+ -34.3594 416.539 -51.3008 415.879 -37.75 390.75 curveto
+ -37.75 390.75 -48.2188 417.641 -30.75 416.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 237 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -30.75 416.75 moveto
+ -30.75 416.75 -30.3984 418.301 -32.75 417.75 curveto
+ -34.3594 416.539 -51.3008 415.879 -37.75 390.75 curveto
+ -37.75 390.75 -48.2188 417.641 -30.75 416.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 238 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -82.75 464.75 moveto
+ -82.75 464.75 -82.1914 462.891 -83.75 463.75 curveto
+ -101.57 478.117 -137.254 542.906 -198.75 548.75 curveto
+ -198.75 548.75 -156.371 562.426 -82.75 464.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 239 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -82.75 464.75 moveto
+ -82.75 464.75 -82.1914 462.891 -83.75 463.75 curveto
+ -101.57 478.117 -137.254 542.906 -198.75 548.75 curveto
+ -198.75 548.75 -156.371 562.426 -82.75 464.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 240 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -94.75 466.75 moveto
+ -94.75 466.75 -93.5 468.379 -95.75 468.75 curveto
+ -97.6094 469.754 -221.297 549.508 -264.75 540.75 curveto
+ -264.75 540.75 -234.691 549.008 -94.75 466.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 241 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -94.75 466.75 moveto
+ -94.75 466.75 -93.5 468.379 -95.75 468.75 curveto
+ -97.6094 469.754 -221.297 549.508 -264.75 540.75 curveto
+ -264.75 540.75 -234.691 549.008 -94.75 466.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 242 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -71.75 460.75 moveto
+ -71.75 460.75 -71.5117 458.598 -73.75 459.75 curveto
+ -83.2695 465.305 -87.2461 528.234 -134.75 529.75 curveto
+ -134.75 529.75 -99.5273 545.801 -71.75 460.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 243 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -71.75 460.75 moveto
+ -71.75 460.75 -71.5117 458.598 -73.75 459.75 curveto
+ -83.2695 465.305 -87.2461 528.234 -134.75 529.75 curveto
+ -134.75 529.75 -99.5273 545.801 -71.75 460.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 244 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -49.75 447.75 moveto
+ -49.75 447.75 -48.9727 446.812 -50.75 446.75 curveto
+ -62.3906 448.559 -85.9375 493.957 -134.75 488.75 curveto
+ -134.75 488.75 -99.6562 504.148 -49.75 447.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 245 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -49.75 447.75 moveto
+ -49.75 447.75 -48.9727 446.812 -50.75 446.75 curveto
+ -62.3906 448.559 -85.9375 493.957 -134.75 488.75 curveto
+ -134.75 488.75 -99.6562 504.148 -49.75 447.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 246 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -62.75 454.75 moveto
+ -62.75 454.75 -61.6289 453.352 -63.75 453.75 curveto
+ -74.4609 457.641 -88.8555 506.711 -137.75 510.75 curveto
+ -137.75 510.75 -100.363 519.352 -62.75 454.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 247 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -62.75 454.75 moveto
+ -62.75 454.75 -61.6289 453.352 -63.75 453.75 curveto
+ -74.4609 457.641 -88.8555 506.711 -137.75 510.75 curveto
+ -137.75 510.75 -100.363 519.352 -62.75 454.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 248 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -42.75 442.75 moveto
+ -42.75 442.75 -41.4531 441.449 -42.75 441.75 curveto
+ -52.3242 442.863 -71.3945 479.637 -110.75 474.75 curveto
+ -110.75 474.75 -82.5078 487.891 -42.75 442.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 249 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -42.75 442.75 moveto
+ -42.75 442.75 -41.4531 441.449 -42.75 441.75 curveto
+ -52.3242 442.863 -71.3945 479.637 -110.75 474.75 curveto
+ -110.75 474.75 -82.5078 487.891 -42.75 442.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 250 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -33.75 435.75 moveto
+ -33.75 435.75 -32.9492 434.949 -34.75 434.75 curveto
+ -39.2852 435.418 -72.9883 471.805 -93.75 454.75 curveto
+ -93.75 454.75 -80.0859 475.348 -33.75 435.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 251 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -33.75 435.75 moveto
+ -33.75 435.75 -32.9492 434.949 -34.75 434.75 curveto
+ -39.2852 435.418 -72.9883 471.805 -93.75 454.75 curveto
+ -93.75 454.75 -80.0859 475.348 -33.75 435.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 252 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -110.75 470.75 moveto
+ -110.75 470.75 -109.219 472.703 -111.75 472.75 curveto
+ -113.469 473.547 -246.242 537.031 -287.75 522.75 curveto
+ -287.75 522.75 -259.469 534.84 -110.75 470.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 253 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -110.75 470.75 moveto
+ -110.75 470.75 -109.219 472.703 -111.75 472.75 curveto
+ -113.469 473.547 -246.242 537.031 -287.75 522.75 curveto
+ -287.75 522.75 -259.469 534.84 -110.75 470.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 254 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -73.75 400.75 moveto
+ -73.75 400.75 -73.5195 402.457 -75.75 401.75 curveto
+ -77.4805 400.699 -94.4219 400.039 -80.75 375.75 curveto
+ -80.75 375.75 -91.3398 401.801 -73.75 400.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 255 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -73.75 400.75 moveto
+ -73.75 400.75 -73.5195 402.457 -75.75 401.75 curveto
+ -77.4805 400.699 -94.4219 400.039 -80.75 375.75 curveto
+ -80.75 375.75 -91.3398 401.801 -73.75 400.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 256 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -84.75 401.75 moveto
+ -84.75 401.75 -84.961 404.219 -86.75 403.75 curveto
+ -88.9219 402.457 -108.5 400.039 -110.75 357.75 curveto
+ -110.75 357.75 -102.781 403.559 -84.75 401.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 257 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -84.75 401.75 moveto
+ -84.75 401.75 -84.961 404.219 -86.75 403.75 curveto
+ -88.9219 402.457 -108.5 400.039 -110.75 357.75 curveto
+ -110.75 357.75 -102.781 403.559 -84.75 401.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 258 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -92.75 403.75 moveto
+ -92.75 403.75 -92.4414 405.98 -94.75 404.75 curveto
+ -96.3984 404.219 -123.461 400.48 -149.75 364.75 curveto
+ -149.75 364.75 -110.262 405.32 -92.75 403.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 259 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -92.75 403.75 moveto
+ -92.75 403.75 -92.4414 405.98 -94.75 404.75 curveto
+ -96.3984 404.219 -123.461 400.48 -149.75 364.75 curveto
+ -149.75 364.75 -110.262 405.32 -92.75 403.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 260 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -100.75 405.75 moveto
+ -100.75 405.75 -100.566 408.164 -102.75 407.75 curveto
+ -104.727 406.945 -127.203 409.035 -168.75 371.75 curveto
+ -168.75 371.75 -118.316 409.879 -100.75 405.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 261 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -100.75 405.75 moveto
+ -100.75 405.75 -100.566 408.164 -102.75 407.75 curveto
+ -104.727 406.945 -127.203 409.035 -168.75 371.75 curveto
+ -168.75 371.75 -118.316 409.879 -100.75 405.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 262 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -112.75 410.75 moveto
+ -112.75 410.75 -112.008 413.004 -113.75 412.75 curveto
+ -116.164 411.785 -154.48 406.836 -211.75 368.75 curveto
+ -211.75 368.75 -129.758 414.719 -112.75 410.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 263 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -112.75 410.75 moveto
+ -112.75 410.75 -112.008 413.004 -113.75 412.75 curveto
+ -116.164 411.785 -154.48 406.836 -211.75 368.75 curveto
+ -211.75 368.75 -129.758 414.719 -112.75 410.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 264 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -67.75 423.75 moveto
+ -67.75 423.75 -67.8008 425.777 -69.75 424.75 curveto
+ -71.7617 424.02 -130.5 421.16 -163.75 391.75 curveto
+ -163.75 391.75 -125.551 418.93 -67.75 423.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 265 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -67.75 423.75 moveto
+ -67.75 423.75 -67.8008 425.777 -69.75 424.75 curveto
+ -71.7617 424.02 -130.5 421.16 -163.75 391.75 curveto
+ -163.75 391.75 -125.551 418.93 -67.75 423.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 266 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -56.75 419.75 moveto
+ -56.75 419.75 -56.8008 421.379 -58.75 420.75 curveto
+ -60.7617 419.617 -87.8203 415.879 -113.75 379.75 curveto
+ -113.75 379.75 -74.6211 420.719 -56.75 419.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 267 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -56.75 419.75 moveto
+ -56.75 419.75 -56.8008 421.379 -58.75 420.75 curveto
+ -60.7617 419.617 -87.8203 415.879 -113.75 379.75 curveto
+ -113.75 379.75 -74.6211 420.719 -56.75 419.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 268 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -124.75 415.75 moveto
+ -124.75 415.75 -123.832 418.035 -125.75 417.75 curveto
+ -128.07 417.125 -166.645 414.996 -225.75 380.75 curveto
+ -225.75 380.75 -140.75 418.625 -124.75 415.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 269 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -124.75 415.75 moveto
+ -124.75 415.75 -123.832 418.035 -125.75 417.75 curveto
+ -128.07 417.125 -166.645 414.996 -225.75 380.75 curveto
+ -225.75 380.75 -140.75 418.625 -124.75 415.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 270 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -133.75 418.75 moveto
+ -133.75 418.75 -133.07 420.676 -134.75 419.75 curveto
+ -137.309 419.766 -175.887 417.637 -235.75 383.75 curveto
+ -235.75 383.75 -150.648 421.707 -133.75 418.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 271 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -133.75 418.75 moveto
+ -133.75 418.75 -133.07 420.676 -134.75 419.75 curveto
+ -137.309 419.766 -175.887 417.637 -235.75 383.75 curveto
+ -235.75 383.75 -150.648 421.707 -133.75 418.75 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 272 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -144.75 424.75 moveto
+ -144.75 424.75 -143.633 426.176 -145.75 425.75 curveto
+ -147.867 425.266 -195.246 420.496 -293.75 382.75 curveto
+ -293.75 382.75 -161.207 427.207 -144.75 424.75 curveto
+ closepath
+fill
+grestore %}
+
+
+% 273 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -144.75 424.75 moveto
+ -144.75 424.75 -143.633 426.176 -145.75 425.75 curveto
+ -147.867 425.266 -195.246 420.496 -293.75 382.75 curveto
+ -293.75 382.75 -161.207 427.207 -144.75 424.75 curveto
+ closepath
+stroke
+
+
+% 274 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -21.75 416.75 moveto
+ -21.75 416.75 -27.5391 417.199 -25.75 415.75 curveto
+ -24.8984 413.68 -22.75 414.75 -22.75 414.75 curveto
+ -21.75 416.75 lineto
+ closepath
+fill
+
+
+% 275 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -55.75 401.75 moveto
+ -55.75 401.75 -61.4219 401.801 -59.75 399.75 curveto
+ -58.7813 398.277 -55.75 398.75 -55.75 398.75 curveto
+ -55.75 401.75 lineto
+ closepath
+fill
+
+
+% 276 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -45.75 401.75 moveto
+ -45.75 401.75 -51.7383 402.238 -50.75 400.75 curveto
+ -49.1016 398.719 -46.75 399.75 -46.75 399.75 curveto
+ -45.75 401.75 lineto
+ closepath
+fill
+
+
+% 277 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 59.25 414.75 moveto
+ 59.25 414.75 53.3359 413.344 55.25 411.75 curveto
+ 56.9844 410.883 59.25 412.75 59.25 412.75 curveto
+ 59.25 414.75 lineto
+ closepath
+fill
+
+
+% 278 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 56.25 425.75 moveto
+ 56.25 425.75 51.1367 423.906 53.25 422.75 curveto
+ 54.7813 421.441 57.25 422.75 57.25 422.75 curveto
+ 56.25 425.75 lineto
+ closepath
+fill
+
+
+% 279 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 64.25 429.75 moveto
+ 64.25 429.75 59.0547 428.746 61.25 427.75 curveto
+ 62.7031 426.281 65.25 427.75 65.25 427.75 curveto
+ 64.25 429.75 lineto
+ closepath
+fill
+
+
+% 280 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -22.75 347.75 moveto
+ -22.75 347.75 -21.3789 347.68 -16.75 345.75 curveto
+ -14.7813 345.48 -2.46094 341.52 3.25 330.75 curveto
+ 3.25 330.75 -9.94141 341.078 -22.75 347.75 curveto
+ closepath
+fill
+
+
+% 281 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -119.75 245.75 moveto
+ -119.781 245.484 -119.844 245.023 -119.75 244.75 curveto
+ -120.887 244.961 -122.246 244.629 -121.75 245.75 curveto
+ -121.176 250.066 -120.211 255.496 -115.75 257.75 curveto
+ -114.965 257.789 -113.379 257.336 -113.75 256.75 curveto
+ -113.156 254.688 -113.027 253.203 -113.75 251.75 curveto
+ -113.699 250.027 -116.07 250.016 -116.75 251.75 curveto
+ -118.109 249.699 -118.586 247.672 -119.75 245.75 curveto
+ closepath
+fill
+
+
+% 282 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -107.75 240.75 moveto
+ -108.266 239.008 -108.125 236.961 -109.75 236.75 curveto
+ -110.496 236.02 -112.531 237.09 -111.75 238.75 curveto
+ -111.188 240.539 -110.762 243.004 -108.75 244.75 curveto
+ -109.016 245.281 -109.277 245.871 -108.75 245.75 curveto
+ -108.449 247.574 -107.188 248.379 -105.75 247.75 curveto
+ -104.414 245.594 -105.676 243.254 -107.75 241.75 curveto
+ -107.5 241.207 -107.316 240.793 -107.75 240.75 curveto
+ closepath
+fill
+
+
+% 283 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -63.75 246.75 moveto
+ -63.7617 246.684 -63.7188 247.195 -63.75 247.75 curveto
+ -64.4844 248.684 -65.3555 249.918 -64.75 250.75 curveto
+ -64.6016 252.203 -63.375 252.004 -62.75 251.75 curveto
+ -61.4141 250.285 -61.3594 248.273 -60.75 246.75 curveto
+ -60.3828 246.355 -60.4375 245.727 -59.75 245.75 curveto
+ -59.4336 244.832 -58.9492 243.156 -58.75 242.75 curveto
+ -59.1133 242.184 -58.9102 231.285 -58.75 231.75 curveto
+ -59.8359 232.379 -63.1914 243.086 -63.75 243.75 curveto
+ -63.3281 244.871 -64.1367 245.383 -63.75 246.75 curveto
+ closepath
+fill
+
+
+% 284 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -35.75 253.75 moveto
+ -38.5742 256.488 -41.6445 259.746 -40.75 263.75 curveto
+ -41.0313 264.902 -39.0781 264.324 -38.75 263.75 curveto
+ -37.9883 259.406 -35.7461 256.48 -32.75 253.75 curveto
+ -30.5078 251.598 -28.4571 244.617 -27.75 243.75 curveto
+ -32.2656 249.84 -34.75 252.859 -35.75 253.75 curveto
+ closepath
+fill
+
+
+% 285 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -20.75 260.75 moveto
+ -21.3203 260.707 -20.9883 261.25 -20.75 261.75 curveto
+ -22.2773 263.219 -23.707 264.59 -23.75 266.75 curveto
+ -23.7305 266.805 -23.3164 267.145 -22.75 266.75 curveto
+ -22.6406 266.695 -22.2656 266.555 -21.75 266.75 curveto
+ -19.9141 263.715 -18.375 260.777 -16.75 257.75 curveto
+ -16.5859 257.293 -15.3281 252.352 -15.75 251.75 curveto
+ -15.9336 252.137 -17.8242 256.734 -17.75 256.75 curveto
+ -19.4453 257.617 -19.4609 259.391 -20.75 260.75 curveto
+ closepath
+fill
+
+
+% 286 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -38.75 238.75 moveto
+ -39.6406 239.758 -41.375 241.082 -41.75 241.75 curveto
+ -41.1211 243.078 -41.6367 244.668 -40.75 243.75 curveto
+ -39.25 242.867 -35.457 241.383 -34.75 234.75 curveto
+ -35.1289 234.367 -38.4023 237.328 -38.75 238.75 curveto
+ closepath
+fill
+
+
+% 287 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -54.75 257.75 moveto
+ -55.4805 258.434 -56.2578 257.914 -56.75 257.75 curveto
+ -57.4766 258.613 -58.1485 259.227 -58.75 259.75 curveto
+ -59.5352 262.305 -61.4844 264.305 -61.75 266.75 curveto
+ -60.0 268.484 -59.2539 266.242 -58.75 264.75 curveto
+ -57.1055 266.992 -56.0039 264.93 -54.75 264.75 curveto
+ -54.5 264.328 -54.2656 264.711 -53.75 264.75 curveto
+ -52.8867 264.195 -52.1406 263.008 -50.75 261.75 curveto
+ -50.8516 262.0 -50.4063 262.199 -49.75 261.75 curveto
+ -49.5273 261.387 -48.457 261.027 -47.75 260.75 curveto
+ -46.9297 257.301 -43.4766 254.996 -41.75 246.75 curveto
+ -41.8203 245.699 -46.3633 254.004 -46.75 254.75 curveto
+ -47.8203 256.09 -47.9492 252.945 -49.75 253.75 curveto
+ -49.4063 253.707 -49.6133 253.445 -49.75 253.75 curveto
+ -49.9727 253.605 -50.2148 253.859 -50.75 253.75 curveto
+ -50.6406 254.18 -50.4922 254.789 -50.75 254.75 curveto
+ -52.0742 256.039 -51.9805 257.215 -52.75 258.75 curveto
+ -53.3438 257.711 -54.5117 258.5 -54.75 257.75 curveto
+ closepath
+fill
+
+
+% 288 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -120.75 197.75 moveto
+ -120.75 197.75 -128.961 220.301 -123.75 232.75 curveto
+ -123.75 232.75 -136.66 208.859 -131.75 196.75 curveto
+ -131.75 196.75 -131.16 207.98 -126.75 213.75 curveto
+ -126.75 213.75 -122.359 199.398 -120.75 197.75 curveto
+ closepath
+fill
+
+
+% 289 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -104.75 200.75 moveto
+ -104.75 200.75 -110.48 210.398 -101.75 230.75 curveto
+ -101.75 230.75 -100.801 208.199 -93.75 195.75 curveto
+ -93.75 195.75 -108.941 218.32 -104.75 200.75 curveto
+ closepath
+fill
+
+
+% 290 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -93.75 202.75 moveto
+ -93.75 202.75 -93.3203 224.918 -93.75 227.75 curveto
+ -93.75 227.75 -89.5781 209.957 -78.75 199.75 curveto
+ -78.75 199.75 -94.1992 212.598 -93.75 202.75 curveto
+ closepath
+fill
+
+
+% 291 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -82.75 237.75 moveto
+ -82.75 237.75 -89.5781 223.16 -78.75 202.75 curveto
+ -78.75 202.75 -85.6211 216.34 -80.75 223.75 curveto
+ -80.75 223.75 -83.1992 227.777 -82.75 237.75 curveto
+ closepath
+fill
+
+
+% 292 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -61.75 203.75 moveto
+ -61.75 203.75 -60.7617 220.52 -62.75 222.75 curveto
+ -62.75 222.75 -62.961 229.98 -62.75 230.75 curveto
+ -62.75 230.75 -66.9219 237.898 -66.75 229.75 curveto
+ -66.75 229.75 -68.6797 221.18 -71.75 215.75 curveto
+ -71.75 215.75 -75.7188 210.18 -75.75 202.75 curveto
+ -75.75 202.75 -64.5 236.359 -61.75 203.75 curveto
+ closepath
+fill
+
+
+% 293 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -57.75 233.75 moveto
+ -57.75 233.75 -50.6406 221.84 -48.75 200.75 curveto
+ -48.75 200.75 -47.1211 207.758 -51.75 223.75 curveto
+ -51.75 223.75 -55.9219 240.539 -57.75 233.75 curveto
+ closepath
+fill
+
+
+% 294 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -33.75 211.75 moveto
+ -33.75 211.75 -39.4219 217.879 -40.75 223.75 curveto
+ -40.75 223.75 -44.9219 240.758 -37.75 231.75 curveto
+ -37.75 231.75 -38.1016 222.5 -28.75 214.75 curveto
+ -28.75 214.75 -34.3594 217.0 -33.75 211.75 curveto
+ closepath
+fill
+
+
+% 295 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -27.75 217.75 moveto
+ -27.75 217.75 -31.2813 236.578 -31.75 237.75 curveto
+ -31.75 237.75 -34.1406 241.199 -30.75 237.75 curveto
+ -30.75 237.75 -21.3789 216.559 -16.75 209.75 curveto
+ -16.75 209.75 -25.7813 219.418 -27.75 217.75 curveto
+ closepath
+fill
+
+
+% 296 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -20.75 235.75 moveto
+ -20.75 235.75 -33.9219 260.34 -9.75 231.75 curveto
+ -9.75 231.75 -22.0391 242.738 -20.75 235.75 curveto
+ closepath
+fill
+
+
+% 297 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -3.75 251.75 moveto
+ -3.75 251.75 -9.5 272.438 -12.75 271.75 curveto
+ -12.75 271.75 -21.3789 282.117 -13.75 270.75 curveto
+ -13.75 270.75 -7.51953 259.898 -7.75 248.75 curveto
+ -7.75 248.75 -7.51953 259.68 -3.75 251.75 curveto
+ closepath
+fill
+
+
+% 298 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -367.75 264.75 moveto
+ -367.75 264.75 -354.352 275.301 -351.75 278.75 curveto
+ -351.75 278.75 -366.449 258.801 -366.75 250.75 curveto
+ -366.75 250.75 -369.199 259.352 -367.75 264.75 curveto
+ closepath
+fill
+
+
+% 299 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -373.75 288.75 moveto
+ -373.75 288.75 -350.5 305.0 -346.75 312.75 curveto
+ -346.75 312.75 -375.801 280.801 -375.75 275.75 curveto
+ -375.75 275.75 -376.352 285.75 -373.75 288.75 curveto
+ closepath
+fill
+
+
+% 300 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -392.75 457.75 moveto
+ -392.75 457.75 -379.102 466.699 -377.75 464.75 curveto
+ -377.75 464.75 -389.0 457.352 -391.75 447.75 curveto
+ -391.75 447.75 -390.102 457.898 -392.75 457.75 curveto
+ closepath
+fill
+
+
+% 301 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.11 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -401.75 369.75 moveto
+ -382.75 382.75 lineto
+ -382.75 382.75 -403.301 363.852 -403.75 359.75 curveto
+ -401.75 369.75 lineto
+ closepath
+fill
+
+
+% 302 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 28.25 393.75 moveto
+ 4.25 388.75 lineto
+stroke
+
+
+% 303 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -26.75 215.75 moveto
+ -26.75 215.75 -26.5508 219.75 -16.75 207.75 curveto
+stroke
+
+
+% 304 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -32.75 210.75 moveto
+ -32.75 210.75 -35.3516 217.551 -27.75 212.75 curveto
+stroke
+
+
+% 305 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 1.1 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -92.75 200.75 moveto
+ -92.75 200.75 -94.1992 213.148 -81.75 198.75 curveto
+stroke
+restore %}
+grestore %}
+ showpage
+%%BoundingBox: -415 166 132 752
+%%Page: 1 1
+% normal end reached by pstoedit.pro
+%%Trailer
+%%Pages: 1
+%%EOF \ No newline at end of file
diff --git a/graphics/pstricks/contrib/pst-mirror/doc/createEPS/tiger-c.eps b/graphics/pstricks/contrib/pst-mirror/doc/createEPS/tiger-c.eps
new file mode 100644
index 0000000000..c76641911c
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-mirror/doc/createEPS/tiger-c.eps
@@ -0,0 +1,7101 @@
+%!PS-Adobe-3.0
+%%Title: flattened PostScript generated from file: tiger-b.eps
+%%Creator: pstoedit
+%%BoundingBox: -79 -84 79 85
+%%Pages: (atend)
+%%EndComments
+%%BeginProlog
+/setPageSize { pop pop } def
+/ntranslate { neg exch neg exch translate } def
+/p2esetcolorname { pop } def
+/setshowparams { pop pop pop} def
+/awidthshowhex { dup length 0 gt { dup /ASCIIHexDecode filter exch length 2 div cvi string readstring pop } if awidthshow } def
+/awidthshowhexwithglyphs { true { pop awidthshowhex } { { glyphshow } forall pop } ifelse } def
+/backendconstraints { pop pop } def
+%%>>> /pstoedit.newfont { 80 string cvs findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse} forall /Encoding ISOLatin1Encoding def dup 80 string cvs /FontName exch def currentdict end definefont pop } def
+/imagestring 1 string def
+%%EndProlog
+%%BeginSetup
+% pstoedit.textastext pstoedit.doflatten backendconstraints
+1 0 backendconstraints
+%%EndSetup
+%%Page: 1 1
+gsave %{
+ save %{
+gsave %{
+
+
+% 1 pathnumber
+% filledpath
+ 612 792 setPageSize
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.0549128 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 59.7148 8.34375 moveto
+ 59.7148 8.34375 59.7656 7.60547 60.0078 7.47266 curveto
+ 60.293 7.61719 65.5469 22.9648 72.1953 22.2773 curveto
+ 72.1953 22.2773 66.4219 24.5977 59.7148 8.34375 curveto
+ closepath
+fill
+grestore %}
+
+
+% 2 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.0549128 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 59.7148 8.34375 moveto
+ 59.7148 8.34375 59.7656 7.60547 60.0078 7.47266 curveto
+ 60.293 7.61719 65.5469 22.9648 72.1953 22.2773 curveto
+ 72.1953 22.2773 66.4219 24.5977 59.7148 8.34375 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 3 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.0549128 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 58.5547 9.21484 moveto
+ 58.5547 9.21484 58.8477 8.59375 59.1367 8.63281 curveto
+ 59.3359 8.78516 59.0547 25.0039 65.5195 26.6289 curveto
+ 65.5195 26.6289 59.3242 26.8398 58.5547 9.21484 curveto
+ closepath
+fill
+grestore %}
+
+
+% 4 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.0549128 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 58.5547 9.21484 moveto
+ 58.5547 9.21484 58.8477 8.59375 59.1367 8.63281 curveto
+ 59.3359 8.78516 59.0547 25.0039 65.5195 26.6289 curveto
+ 65.5195 26.6289 59.3242 26.8398 58.5547 9.21484 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 5 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.0549128 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 49.8477 -4.42578 moveto
+ 49.8477 -4.42578 49.375 -4.64453 49.5586 -4.71484 curveto
+ 49.6719 -5.07813 65.3711 -0.992188 68.4219 -6.74609 curveto
+ 68.4219 -6.74609 67.2188 -0.820313 49.8477 -4.42578 curveto
+ closepath
+fill
+grestore %}
+
+
+% 6 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.0549128 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 49.8477 -4.42578 moveto
+ 49.8477 -4.42578 49.375 -4.64453 49.5586 -4.71484 curveto
+ 49.6719 -5.07813 65.3711 -0.992188 68.4219 -6.74609 curveto
+ 68.4219 -6.74609 67.2188 -0.820313 49.8477 -4.42578 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 7 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.0549128 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 50.7188 -7.61719 moveto
+ 50.7188 -7.61719 50.1992 -7.72656 50.1367 -7.91016 curveto
+ 50.3477 -8.23047 66.5352 -9.29688 67.5508 -15.7461 curveto
+ 67.5508 -15.7461 68.3398 -9.71875 50.7188 -7.61719 curveto
+ closepath
+fill
+grestore %}
+
+
+% 8 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.0549128 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 50.7188 -7.61719 moveto
+ 50.7188 -7.61719 50.1992 -7.72656 50.1367 -7.91016 curveto
+ 50.3477 -8.23047 66.5352 -9.29688 67.5508 -15.7461 curveto
+ 67.5508 -15.7461 68.3398 -9.71875 50.7188 -7.61719 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 9 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.0549128 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 52.1719 -5.87891 moveto
+ 52.1719 -5.87891 51.5703 -6.04688 51.5898 -6.16797 curveto
+ 51.7891 -6.52344 67.9609 -5.21875 69.875 -11.3906 curveto
+ 69.875 -11.3906 69.8047 -5.37109 52.1719 -5.87891 curveto
+ closepath
+fill
+grestore %}
+
+
+% 10 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.0549128 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 52.1719 -5.87891 moveto
+ 52.1719 -5.87891 51.5703 -6.04688 51.5898 -6.16797 curveto
+ 51.7891 -6.52344 67.9609 -5.21875 69.875 -11.3906 curveto
+ 69.875 -11.3906 69.8047 -5.37109 52.1719 -5.87891 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 11 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.0549128 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 55.6523 -0.0742188 moveto
+ 55.6523 -0.0742188 55.1367 -0.460938 55.3633 -0.652344 curveto
+ 55.543 -0.792969 69.5117 7.46094 73.9375 2.53906 curveto
+ 73.9375 2.53906 71.2344 8.12891 55.6523 -0.0742188 curveto
+ closepath
+fill
+grestore %}
+
+
+% 12 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.0549128 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 55.6523 -0.0742188 moveto
+ 55.6523 -0.0742188 55.1367 -0.460938 55.3633 -0.652344 curveto
+ 55.543 -0.792969 69.5117 7.46094 73.9375 2.53906 curveto
+ 73.9375 2.53906 71.2344 8.12891 55.6523 -0.0742188 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 13 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.0549128 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 57.9766 -1.23438 moveto
+ 57.9766 -1.23438 57.5 -1.75 57.6836 -1.8125 curveto
+ 57.8672 -2.125 72.6758 4.49219 76.5508 -0.652344 curveto
+ 76.5508 -0.652344 74.4648 4.96484 57.9766 -1.23438 curveto
+ closepath
+fill
+grestore %}
+
+
+% 14 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.0549128 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 57.9766 -1.23438 moveto
+ 57.9766 -1.23438 57.5 -1.75 57.6836 -1.8125 curveto
+ 57.8672 -2.125 72.6758 4.49219 76.5508 -0.652344 curveto
+ 76.5508 -0.652344 74.4648 4.96484 57.9766 -1.23438 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 15 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.0549128 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 58.8438 -2.68359 moveto
+ 58.8438 -2.68359 58.2813 -2.98438 58.5547 -3.26563 curveto
+ 58.5938 -3.40625 74.168 1.13672 77.4219 -4.71484 curveto
+ 77.4219 -4.71484 76.0039 1.35547 58.8438 -2.68359 curveto
+ closepath
+fill
+grestore %}
+
+
+% 16 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.0549128 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 58.8438 -2.68359 moveto
+ 58.8438 -2.68359 58.2813 -2.98438 58.5547 -3.26563 curveto
+ 58.5938 -3.40625 74.168 1.13672 77.4219 -4.71484 curveto
+ 77.4219 -4.71484 76.0039 1.35547 58.8438 -2.68359 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 17 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.0549128 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 55.3633 -2.97656 moveto
+ 55.3633 -2.97656 55.0078 -3.34375 55.3633 -3.55469 curveto
+ 55.457 -3.625 68.2461 6.35156 73.3555 2.25 curveto
+ 73.3555 2.25 69.875 7.23828 55.3633 -2.97656 curveto
+ closepath
+fill
+grestore %}
+
+
+% 18 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.0549128 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 55.3633 -2.97656 moveto
+ 55.3633 -2.97656 55.0078 -3.34375 55.3633 -3.55469 curveto
+ 55.457 -3.625 68.2461 6.35156 73.3555 2.25 curveto
+ 73.3555 2.25 69.875 7.23828 55.3633 -2.97656 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 19 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.0549128 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 61.7461 6.3125 moveto
+ 61.7461 6.3125 61.4883 5.80859 61.7461 5.73047 curveto
+ 62.0 5.68359 71.1289 19.0938 77.1289 16.7617 curveto
+ 77.1289 16.7617 72.4102 20.4336 61.7461 6.3125 curveto
+ closepath
+fill
+grestore %}
+
+
+% 20 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.0549128 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 61.7461 6.3125 moveto
+ 61.7461 6.3125 61.4883 5.80859 61.7461 5.73047 curveto
+ 62.0 5.68359 71.1289 19.0938 77.1289 16.7617 curveto
+ 77.1289 16.7617 72.4102 20.4336 61.7461 6.3125 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 21 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.0549128 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 61.457 4.28125 moveto
+ 61.457 4.28125 61.1484 3.63672 61.457 3.41016 curveto
+ 61.6211 3.40234 73.4258 14.5273 78.8711 10.957 curveto
+ 78.8711 10.957 74.9648 15.5586 61.457 4.28125 curveto
+ closepath
+fill
+grestore %}
+
+
+% 22 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.0549128 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 61.457 4.28125 moveto
+ 61.457 4.28125 61.1484 3.63672 61.457 3.41016 curveto
+ 61.6211 3.40234 73.4258 14.5273 78.8711 10.957 curveto
+ 78.8711 10.957 74.9648 15.5586 61.457 4.28125 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 23 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.0549128 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 61.457 2.82813 moveto
+ 61.457 2.82813 61.1367 2.27344 61.457 2.25 curveto
+ 61.5859 1.99609 74.3789 11.9727 79.4531 7.76563 curveto
+ 79.4531 7.76563 76.0039 12.8594 61.457 2.82813 curveto
+ closepath
+fill
+grestore %}
+
+
+% 24 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.0549128 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 61.457 2.82813 moveto
+ 61.457 2.82813 61.1367 2.27344 61.457 2.25 curveto
+ 61.5859 1.99609 74.3789 11.9727 79.4531 7.76563 curveto
+ 79.4531 7.76563 76.0039 12.8594 61.457 2.82813 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 25 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 62.3281 2.25 moveto
+ 62.0391 0.285156 61.7266 -1.8125 61.168 -2.68359 curveto
+ 61.168 -2.68359 62.3203 -6.76953 59.4258 -11.1016 curveto
+ 59.4258 -11.1016 59.6367 -13.2813 59.1367 -14.293 curveto
+ 59.1367 -14.293 57.8516 -16.9844 56.2344 -17.1953 curveto
+ 55.0781 -17.4453 52.293 -18.4258 49.2695 -18.9375 curveto
+ 49.2695 -18.9375 43.6758 -23.3711 44.625 -27.3555 curveto
+ 44.625 -27.3555 44.8242 -32.6914 46.0742 -33.1602 curveto
+ 46.0742 -33.1602 42.2695 -29.6289 45.2031 -34.9023 curveto
+ 46.6563 -40.9961 lineto
+ 46.6563 -40.9961 38.5664 -34.0977 43.4648 -39.8359 curveto
+ 46.6563 -48.25 lineto
+ 46.6563 -48.25 40.4805 -42.3984 42.8828 -45.0586 curveto
+ 43.7539 -47.9609 lineto
+ 43.7539 -47.9609 30.0117 -39.207 39.9805 -48.543 curveto
+ 39.9805 -48.543 37.2891 -47.5078 35.918 -48.543 curveto
+ 35.918 -48.543 33.7148 -48.0156 33.8867 -48.543 curveto
+ 33.8867 -48.543 40.6094 -51.8477 41.7227 -57.8281 curveto
+ 41.7227 -57.8281 39.0781 -54.5313 39.9805 -58.1211 curveto
+ 39.9805 -61.6016 lineto
+ 39.9805 -61.6016 38.6953 -54.7852 38.8203 -66.8281 curveto
+ 38.8203 -66.8281 32.6914 -61.043 36.4961 -67.6992 curveto
+ 36.4961 -72.9219 lineto
+ 36.4961 -72.9219 31.543 -67.8125 33.5938 -71.7617 curveto
+ 33.5938 -71.7617 30.3945 -69.0898 31.5625 -74.082 curveto
+ 31.5625 -74.082 31.9258 -77.2617 30.4023 -73.793 curveto
+ 30.4023 -73.793 25.4141 -63.918 27.2109 -72.3398 curveto
+ 27.2109 -72.3398 27.582 -78.4102 26.0469 -73.793 curveto
+ 26.0469 -73.793 25.9258 -77.0039 22.8555 -79.3086 curveto
+ 22.8555 -79.3086 23.3711 -63.0859 19.375 -74.6641 curveto
+ 17.9219 -79.8867 lineto
+ 17.9219 -79.8867 17.1133 -76.8789 17.3398 -75.2422 curveto
+ 17.3398 -75.2422 12.5156 -69.9805 14.7305 -77.8555 curveto
+ 14.7305 -77.8555 9.83203 -70.4922 10.957 -74.6641 curveto
+ 10.957 -74.6641 13.2813 -79.8164 12.6992 -81.3398 curveto
+ 12.6992 -81.3398 7.40625 -70.2383 6.89453 -69.7305 curveto
+ 6.89453 -69.7305 7.66016 -83.2656 4.28125 -71.7617 curveto
+ 4.28125 -71.7617 2.42578 -75.6016 3.41016 -76.9844 curveto
+ 3.41016 -76.9844 0.765625 -74.4531 1.08984 -73.5039 curveto
+ 1.08984 -73.5039 -0.445313 -70.8125 -1.23438 -75.2422 curveto
+ -1.23438 -75.2422 -1.91797 -78.1563 -2.39453 -77.2773 curveto
+ -2.39453 -77.2773 -3.70313 -84.7969 -4.13672 -77.5664 curveto
+ -4.13672 -77.5664 -4.59766 -73.1758 -2.39453 -69.4375 curveto
+ -2.39453 -69.4375 -2.55469 -68.4492 -1.52344 -67.1172 curveto
+ -1.52344 -67.1172 -6.00391 -74.0664 -3.84375 -64.7969 curveto
+ -3.84375 -64.7969 -7.28125 -67.4297 -7.61719 -67.4063 curveto
+ -7.61719 -67.4063 -3.32031 -60.0195 -6.16797 -61.6016 curveto
+ -6.16797 -61.6016 -4.46875 -58.2344 -10.2305 -62.1836 curveto
+ -10.2305 -62.1836 -5.10938 -56.957 -10.8125 -60.1523 curveto
+ -10.8125 -60.1523 -13.2813 -62.0625 -10.8125 -58.9922 curveto
+ -10.8125 -58.9922 -6.25781 -53.7656 -13.4219 -59.5703 curveto
+ -13.4219 -59.5703 -16.9844 -64.7461 -17.1953 -65.668 curveto
+ -17.1953 -65.668 -14.0469 -56.3203 -12.5547 -55.5078 curveto
+ -12.5547 -55.5078 -15.3242 -43.8047 -28.5156 -48.832 curveto
+ -28.5156 -48.832 -30.6484 -54.2734 -32.0 -48.543 curveto
+ -32.0 -48.543 -36.1406 -46.3594 -39.8359 -55.2188 curveto
+ -39.8359 -55.2188 -40.9922 -50.8281 -40.707 -49.9922 curveto
+ -40.707 -49.9922 -42.9102 -50.3164 -42.7383 -49.9922 curveto
+ -42.7383 -49.9922 -46.8672 -51.3398 -47.3828 -51.1523 curveto
+ -47.3828 -51.1523 -49.4219 -53.2539 -49.4141 -52.0234 curveto
+ -49.4141 -52.0234 -52.4883 -52.9961 -51.7344 -51.7344 curveto
+ -51.7344 -51.7344 -54.6562 -56.8281 -54.9258 -58.1211 curveto
+ -55.5078 -53.4766 lineto
+ -56.0898 -54.3477 lineto
+ -56.0898 -54.3477 -56.6992 -51.9766 -56.3789 -51.7344 curveto
+ -56.1914 -51.2109 -62.832 -53.7656 -64.5039 -60.4414 curveto
+ -65.0859 -63.0547 lineto
+ -65.0859 -63.0547 -66.918 -58.3633 -66.5352 -56.957 curveto
+ -66.5352 -56.957 -68.0664 -57.3398 -68.2773 -58.6992 curveto
+ -68.2773 -58.6992 -69.4727 -51.3398 -67.9883 -49.4141 curveto
+ -67.9883 -49.4141 -69.3438 -49.168 -69.7305 -50.2852 curveto
+ -69.7305 -47.9609 lineto
+ -69.7305 -47.9609 -72.0234 -48.2734 -72.0508 -47.3828 curveto
+ -72.0508 -47.3828 -73.4297 -46.2305 -74.082 -47.6719 curveto
+ -74.082 -47.6719 -70.1094 -36.5234 -76.1133 -42.7383 curveto
+ -76.1133 -42.7383 -78.2852 -46.1016 -77.2773 -40.125 curveto
+ -75.9844 -34.0977 -74.707 -33.5859 -76.1133 -33.4492 curveto
+ -76.1133 -33.4492 -76.4961 -32.3086 -75.8242 -31.707 curveto
+ -75.2188 -31.2891 -76.1133 -31.707 -76.1133 -31.707 curveto
+ -76.1133 -31.707 -77.7734 -33.0742 -76.1133 -26.1953 curveto
+ -76.1133 -26.1953 -78.1563 -26.5625 -74.375 -17.1953 curveto
+ -74.375 -17.1953 -75.2188 -16.4727 -74.082 -13.7148 curveto
+ -74.082 -13.7148 -76.4961 -15.1953 -77.2773 -14.5859 curveto
+ -77.2773 -14.5859 -77.2617 -14.1758 -76.1133 -12.8438 curveto
+ -76.1133 -12.8438 -69.3438 4.59766 -75.8242 -2.39453 curveto
+ -75.8242 -2.39453 -79.6406 -6.75391 -77.5664 0.507813 curveto
+ -77.5664 0.507813 -74.6875 8.19141 -74.9531 9.50391 curveto
+ 62.3281 2.25 lineto
+ closepath
+fill
+grestore %}
+
+
+% 26 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 62.3281 2.25 moveto
+ 62.0391 0.285156 61.7266 -1.8125 61.168 -2.68359 curveto
+ 61.168 -2.68359 62.3203 -6.76953 59.4258 -11.1016 curveto
+ 59.4258 -11.1016 59.6367 -13.2813 59.1367 -14.293 curveto
+ 59.1367 -14.293 57.8516 -16.9844 56.2344 -17.1953 curveto
+ 55.0781 -17.4453 52.293 -18.4258 49.2695 -18.9375 curveto
+ 49.2695 -18.9375 43.6758 -23.3711 44.625 -27.3555 curveto
+ 44.625 -27.3555 44.8242 -32.6914 46.0742 -33.1602 curveto
+ 46.0742 -33.1602 42.2695 -29.6289 45.2031 -34.9023 curveto
+ 46.6563 -40.9961 lineto
+ 46.6563 -40.9961 38.5664 -34.0977 43.4648 -39.8359 curveto
+ 46.6563 -48.25 lineto
+ 46.6563 -48.25 40.4805 -42.3984 42.8828 -45.0586 curveto
+ 43.7539 -47.9609 lineto
+ 43.7539 -47.9609 30.0117 -39.207 39.9805 -48.543 curveto
+ 39.9805 -48.543 37.2891 -47.5078 35.918 -48.543 curveto
+ 35.918 -48.543 33.7148 -48.0156 33.8867 -48.543 curveto
+ 33.8867 -48.543 40.6094 -51.8477 41.7227 -57.8281 curveto
+ 41.7227 -57.8281 39.0781 -54.5313 39.9805 -58.1211 curveto
+ 39.9805 -61.6016 lineto
+ 39.9805 -61.6016 38.6953 -54.7852 38.8203 -66.8281 curveto
+ 38.8203 -66.8281 32.6914 -61.043 36.4961 -67.6992 curveto
+ 36.4961 -72.9219 lineto
+ 36.4961 -72.9219 31.543 -67.8125 33.5938 -71.7617 curveto
+ 33.5938 -71.7617 30.3945 -69.0898 31.5625 -74.082 curveto
+ 31.5625 -74.082 31.9258 -77.2617 30.4023 -73.793 curveto
+ 30.4023 -73.793 25.4141 -63.918 27.2109 -72.3398 curveto
+ 27.2109 -72.3398 27.582 -78.4102 26.0469 -73.793 curveto
+ 26.0469 -73.793 25.9258 -77.0039 22.8555 -79.3086 curveto
+ 22.8555 -79.3086 23.3711 -63.0859 19.375 -74.6641 curveto
+ 17.9219 -79.8867 lineto
+ 17.9219 -79.8867 17.1133 -76.8789 17.3398 -75.2422 curveto
+ 17.3398 -75.2422 12.5156 -69.9805 14.7305 -77.8555 curveto
+ 14.7305 -77.8555 9.83203 -70.4922 10.957 -74.6641 curveto
+ 10.957 -74.6641 13.2813 -79.8164 12.6992 -81.3398 curveto
+ 12.6992 -81.3398 7.40625 -70.2383 6.89453 -69.7305 curveto
+ 6.89453 -69.7305 7.66016 -83.2656 4.28125 -71.7617 curveto
+ 4.28125 -71.7617 2.42578 -75.6016 3.41016 -76.9844 curveto
+ 3.41016 -76.9844 0.765625 -74.4531 1.08984 -73.5039 curveto
+ 1.08984 -73.5039 -0.445313 -70.8125 -1.23438 -75.2422 curveto
+ -1.23438 -75.2422 -1.91797 -78.1563 -2.39453 -77.2773 curveto
+ -2.39453 -77.2773 -3.70313 -84.7969 -4.13672 -77.5664 curveto
+ -4.13672 -77.5664 -4.59766 -73.1758 -2.39453 -69.4375 curveto
+ -2.39453 -69.4375 -2.55469 -68.4492 -1.52344 -67.1172 curveto
+ -1.52344 -67.1172 -6.00391 -74.0664 -3.84375 -64.7969 curveto
+ -3.84375 -64.7969 -7.28125 -67.4297 -7.61719 -67.4063 curveto
+ -7.61719 -67.4063 -3.32031 -60.0195 -6.16797 -61.6016 curveto
+ -6.16797 -61.6016 -4.46875 -58.2344 -10.2305 -62.1836 curveto
+ -10.2305 -62.1836 -5.10938 -56.957 -10.8125 -60.1523 curveto
+ -10.8125 -60.1523 -13.2813 -62.0625 -10.8125 -58.9922 curveto
+ -10.8125 -58.9922 -6.25781 -53.7656 -13.4219 -59.5703 curveto
+ -13.4219 -59.5703 -16.9844 -64.7461 -17.1953 -65.668 curveto
+ -17.1953 -65.668 -14.0469 -56.3203 -12.5547 -55.5078 curveto
+ -12.5547 -55.5078 -15.3242 -43.8047 -28.5156 -48.832 curveto
+ -28.5156 -48.832 -30.6484 -54.2734 -32.0 -48.543 curveto
+ -32.0 -48.543 -36.1406 -46.3594 -39.8359 -55.2188 curveto
+ -39.8359 -55.2188 -40.9922 -50.8281 -40.707 -49.9922 curveto
+ -40.707 -49.9922 -42.9102 -50.3164 -42.7383 -49.9922 curveto
+ -42.7383 -49.9922 -46.8672 -51.3398 -47.3828 -51.1523 curveto
+ -47.3828 -51.1523 -49.4219 -53.2539 -49.4141 -52.0234 curveto
+ -49.4141 -52.0234 -52.4883 -52.9961 -51.7344 -51.7344 curveto
+ -51.7344 -51.7344 -54.6562 -56.8281 -54.9258 -58.1211 curveto
+ -55.5078 -53.4766 lineto
+ -56.0898 -54.3477 lineto
+ -56.0898 -54.3477 -56.6992 -51.9766 -56.3789 -51.7344 curveto
+ -56.1914 -51.2109 -62.832 -53.7656 -64.5039 -60.4414 curveto
+ -65.0859 -63.0547 lineto
+ -65.0859 -63.0547 -66.918 -58.3633 -66.5352 -56.957 curveto
+ -66.5352 -56.957 -68.0664 -57.3398 -68.2773 -58.6992 curveto
+ -68.2773 -58.6992 -69.4727 -51.3398 -67.9883 -49.4141 curveto
+ -67.9883 -49.4141 -69.3438 -49.168 -69.7305 -50.2852 curveto
+ -69.7305 -47.9609 lineto
+ -69.7305 -47.9609 -72.0234 -48.2734 -72.0508 -47.3828 curveto
+ -72.0508 -47.3828 -73.4297 -46.2305 -74.082 -47.6719 curveto
+ -74.082 -47.6719 -70.1094 -36.5234 -76.1133 -42.7383 curveto
+ -76.1133 -42.7383 -78.2852 -46.1016 -77.2773 -40.125 curveto
+ -75.9844 -34.0977 -74.707 -33.5859 -76.1133 -33.4492 curveto
+ -76.1133 -33.4492 -76.4961 -32.3086 -75.8242 -31.707 curveto
+ -75.2188 -31.2891 -76.1133 -31.707 -76.1133 -31.707 curveto
+ -76.1133 -31.707 -77.7734 -33.0742 -76.1133 -26.1953 curveto
+ -76.1133 -26.1953 -78.1563 -26.5625 -74.375 -17.1953 curveto
+ -74.375 -17.1953 -75.2188 -16.4727 -74.082 -13.7148 curveto
+ -74.082 -13.7148 -76.4961 -15.1953 -77.2773 -14.5859 curveto
+ -77.2773 -14.5859 -77.2617 -14.1758 -76.1133 -12.8438 curveto
+ -76.1133 -12.8438 -69.3438 4.59766 -75.8242 -2.39453 curveto
+ -75.8242 -2.39453 -79.6406 -6.75391 -77.5664 0.507813 curveto
+ -77.5664 0.507813 -74.6875 8.19141 -74.9531 9.50391 curveto
+ 62.3281 2.25 lineto
+ closepath
+stroke
+gsave %{
+
+
+% 27 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.2 0.55 0.85 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -74.9531 9.50391 moveto
+ -75.1367 9.44141 -75.8398 9.08203 -76.1133 8.63281 curveto
+ -76.1133 8.63281 -78.4102 5.10938 -76.6953 10.957 curveto
+ -76.6953 10.957 -73.8125 20.1758 -76.6953 16.4727 curveto
+ -76.6953 16.4727 -78.5391 14.3047 -77.5664 18.5039 curveto
+ -76.2813 23.8906 -75.5352 26.0469 -75.5352 26.0469 curveto
+ -75.5352 26.0469 -79.1758 24.3906 -70.6016 37.0781 curveto
+ -73.5039 35.918 lineto
+ -73.5039 35.918 -67.1719 48.5273 -60.1523 50.1367 curveto
+ -57.8281 52.1719 lineto
+ -57.8281 52.1719 -69.9805 64.2344 -65.957 75.9688 curveto
+ -65.957 75.9688 -63.7266 77.6445 -60.7305 74.8086 curveto
+ -60.7305 74.8086 -58.6172 73.1758 -56.668 73.6484 curveto
+ -56.668 73.6484 -46.8672 73.3008 -46.2187 73.3555 curveto
+ -45.5898 73.3008 -34.4805 85.1797 -13.4219 79.4531 curveto
+ -13.4219 79.4531 -11.8789 78.9219 -10.5195 79.1602 curveto
+ -10.5195 79.1602 -4.59766 84.4141 10.957 77.1289 curveto
+ 10.957 77.1289 14.1758 76.4961 14.7305 76.5508 curveto
+ 15.1953 76.4961 16.0898 76.4961 18.5039 74.5195 curveto
+ 21.1992 72.4102 21.3281 72.1523 21.9844 71.6172 curveto
+ 21.9844 71.6172 27.1992 68.0664 28.6602 67.8438 curveto
+ 28.6602 67.8438 32.4375 65.7695 33.8867 62.6172 curveto
+ 35.0469 62.3281 lineto
+ 35.0469 62.3281 35.5 59.8945 35.625 59.4258 curveto
+ 35.625 59.4258 37.1602 58.3594 37.3672 56.5234 curveto
+ 37.3672 56.5234 40.2266 54.6563 39.9805 53.332 curveto
+ 39.9805 53.332 40.6094 51.5938 40.8516 50.1367 curveto
+ 40.8516 50.1367 43.1641 48.5273 42.8828 47.5273 curveto
+ 42.8828 47.5273 45.3359 43.1641 44.9141 40.8516 curveto
+ 44.9141 40.8516 46.9961 41.1211 47.8164 40.2695 curveto
+ 47.8164 40.2695 48.1445 38.8242 48.6875 38.8203 curveto
+ 48.6875 38.8203 49.5508 38.3125 48.6875 37.0781 curveto
+ 48.6875 37.0781 49.293 36.1406 49.5586 35.625 curveto
+ 49.5586 35.625 49.1641 34.7344 50.4297 33.0156 curveto
+ 50.4297 33.0156 52.6133 26.9453 51.8789 25.1797 curveto
+ 51.8789 25.1797 51.8477 23.7539 52.75 23.1445 curveto
+ 52.75 23.1445 53.8906 23.3711 51.3008 19.6641 curveto
+ 51.3008 19.6641 50.9531 19.1563 51.8789 18.5039 curveto
+ 51.8789 18.5039 57.4688 17.2383 58.2656 12.1172 curveto
+ 58.2656 12.1172 62.5742 7.27734 62.6172 5.73047 curveto
+ 62.5742 4.88281 62.4883 3.87891 62.3281 2.53906 curveto
+ 62.3281 2.53906 62.4492 -0.257813 53.6211 -0.652344 curveto
+ 44.8242 -0.765625 -74.9531 9.50391 -74.9531 9.50391 curveto
+ closepath
+fill
+grestore %}
+
+
+% 28 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -74.9531 9.50391 moveto
+ -75.1367 9.44141 -75.8398 9.08203 -76.1133 8.63281 curveto
+ -76.1133 8.63281 -78.4102 5.10938 -76.6953 10.957 curveto
+ -76.6953 10.957 -73.8125 20.1758 -76.6953 16.4727 curveto
+ -76.6953 16.4727 -78.5391 14.3047 -77.5664 18.5039 curveto
+ -76.2813 23.8906 -75.5352 26.0469 -75.5352 26.0469 curveto
+ -75.5352 26.0469 -79.1758 24.3906 -70.6016 37.0781 curveto
+ -73.5039 35.918 lineto
+ -73.5039 35.918 -67.1719 48.5273 -60.1523 50.1367 curveto
+ -57.8281 52.1719 lineto
+ -57.8281 52.1719 -69.9805 64.2344 -65.957 75.9688 curveto
+ -65.957 75.9688 -63.7266 77.6445 -60.7305 74.8086 curveto
+ -60.7305 74.8086 -58.6172 73.1758 -56.668 73.6484 curveto
+ -56.668 73.6484 -46.8672 73.3008 -46.2187 73.3555 curveto
+ -45.5898 73.3008 -34.4805 85.1797 -13.4219 79.4531 curveto
+ -13.4219 79.4531 -11.8789 78.9219 -10.5195 79.1602 curveto
+ -10.5195 79.1602 -4.59766 84.4141 10.957 77.1289 curveto
+ 10.957 77.1289 14.1758 76.4961 14.7305 76.5508 curveto
+ 15.1953 76.4961 16.0898 76.4961 18.5039 74.5195 curveto
+ 21.1992 72.4102 21.3281 72.1523 21.9844 71.6172 curveto
+ 21.9844 71.6172 27.1992 68.0664 28.6602 67.8438 curveto
+ 28.6602 67.8438 32.4375 65.7695 33.8867 62.6172 curveto
+ 35.0469 62.3281 lineto
+ 35.0469 62.3281 35.5 59.8945 35.625 59.4258 curveto
+ 35.625 59.4258 37.1602 58.3594 37.3672 56.5234 curveto
+ 37.3672 56.5234 40.2266 54.6563 39.9805 53.332 curveto
+ 39.9805 53.332 40.6094 51.5938 40.8516 50.1367 curveto
+ 40.8516 50.1367 43.1641 48.5273 42.8828 47.5273 curveto
+ 42.8828 47.5273 45.3359 43.1641 44.9141 40.8516 curveto
+ 44.9141 40.8516 46.9961 41.1211 47.8164 40.2695 curveto
+ 47.8164 40.2695 48.1445 38.8242 48.6875 38.8203 curveto
+ 48.6875 38.8203 49.5508 38.3125 48.6875 37.0781 curveto
+ 48.6875 37.0781 49.293 36.1406 49.5586 35.625 curveto
+ 49.5586 35.625 49.1641 34.7344 50.4297 33.0156 curveto
+ 50.4297 33.0156 52.6133 26.9453 51.8789 25.1797 curveto
+ 51.8789 25.1797 51.8477 23.7539 52.75 23.1445 curveto
+ 52.75 23.1445 53.8906 23.3711 51.3008 19.6641 curveto
+ 51.3008 19.6641 50.9531 19.1563 51.8789 18.5039 curveto
+ 51.8789 18.5039 57.4688 17.2383 58.2656 12.1172 curveto
+ 58.2656 12.1172 62.5742 7.27734 62.6172 5.73047 curveto
+ 62.5742 4.88281 62.4883 3.87891 62.3281 2.53906 curveto
+ 62.3281 2.53906 62.4492 -0.257813 53.6211 -0.652344 curveto
+ 44.8242 -0.765625 -74.9531 9.50391 -74.9531 9.50391 curveto
+ closepath
+stroke
+
+
+% 29 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.2 0.55 0.85 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 57.6836 2.25 moveto
+ 65.6406 14.9414 61.168 -2.97656 61.168 -2.97656 curveto
+ 58.2344 -14.0469 16.7617 -2.10547 16.7617 -2.10547 curveto
+ 16.7617 -2.10547 -37.0352 7.66016 -40.707 8.92578 curveto
+ -44.1875 10.2148 -74.6641 8.05469 -74.6641 8.05469 curveto
+ -72.9219 13.5703 lineto
+ -52.1016 28.3516 -45.9727 20.9453 -41.5781 22.2773 curveto
+ -37.2891 23.4961 -38.0547 20.4336 -36.9336 20.2422 curveto
+ -36.0117 19.9219 -23.4961 27.8398 -21.5508 27.5 curveto
+ -19.4102 27.3281 -11.3203 34.9102 -16.0352 24.8867 curveto
+ -21.1992 13.9219 2.55469 12.2578 8.05469 15.8906 curveto
+ 13.2813 19.4102 5.73047 10.0859 5.73047 10.0859 curveto
+ -0.253906 3.57422 10.668 8.92578 10.668 8.92578 curveto
+ 21.7109 13.0273 29.3711 4.85156 30.4023 4.57031 curveto
+ 31.4141 4.34375 32.9492 3.32031 33.3047 5.44141 curveto
+ 33.457 7.40625 35.8555 12.7383 46.0742 4.28125 curveto
+ 52.3594 -0.957031 56.8125 6.02344 56.8125 6.02344 curveto
+ 57.6836 2.25 lineto
+ closepath
+fill
+
+
+% 30 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.09 0.5 0.772 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -21.8398 26.918 moveto
+ -19.8281 26.7695 -11.7305 34.3516 -16.6172 24.3086 curveto
+ -21.8086 12.9805 2.13672 11.7031 7.47266 15.3086 curveto
+ 12.8633 18.8555 5.15234 9.50391 5.15234 9.50391 curveto
+ -0.671875 3.01953 10.375 8.34375 10.375 8.34375 curveto
+ 21.293 12.4688 28.9531 4.29688 30.1133 3.99219 curveto
+ 30.9961 3.78516 32.5313 2.76172 32.7227 4.86328 curveto
+ 33.0391 6.84766 35.3945 12.1289 45.4961 3.69922 curveto
+ 52.3359 -1.75391 56.5234 5.15234 56.5234 5.15234 curveto
+ 57.6836 1.96094 lineto
+ 65.6445 14.5742 60.8789 -4.13672 60.8789 -4.13672 curveto
+ 58.0234 -15.0234 16.4727 -2.68359 16.4727 -2.68359 curveto
+ 16.4727 -2.68359 -37.4531 7.10547 -40.9961 8.34375 curveto
+ -44.6055 9.66016 -74.6641 7.76563 -74.6641 7.76563 curveto
+ -72.9219 13.2773 lineto
+ -52.2656 27.9766 -46.3906 20.3867 -42.1562 21.6953 curveto
+ -37.707 22.9414 -38.4766 19.875 -37.5117 19.6641 curveto
+ -36.4297 19.3633 -23.918 27.2813 -21.8398 26.918 curveto
+ closepath
+fill
+
+
+% 31 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.081 0.45 0.695 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -22.4219 26.3398 moveto
+ -20.2461 26.2148 -12.3516 33.8867 -16.9063 23.7266 curveto
+ -22.0977 12.1016 1.71875 11.1445 7.18359 14.7305 curveto
+ 12.4453 18.2969 4.86328 8.92578 4.86328 8.92578 curveto
+ -1.09375 2.46094 9.79688 7.76563 9.79688 7.76563 curveto
+ 20.875 11.9102 28.5352 3.73828 29.5313 3.41016 curveto
+ 30.5781 3.22656 32.1133 2.20703 32.4336 4.28125 curveto
+ 32.6211 6.29297 34.9375 11.5195 45.2031 3.12109 curveto
+ 52.3125 -2.54688 56.5234 3.99219 56.5234 3.99219 curveto
+ 57.6836 1.37891 lineto
+ 65.2695 13.8281 60.5859 -5.00781 60.5859 -5.00781 curveto
+ 57.8164 -16.0 15.8906 -3.26563 15.8906 -3.26563 curveto
+ 15.8906 -3.26563 -37.8711 6.54688 -41.5781 7.76563 curveto
+ -45.0234 9.10156 -74.9531 7.18359 -74.9531 7.18359 curveto
+ -73.2109 12.6992 lineto
+ -52.4297 27.6094 -46.8086 19.8281 -42.4453 21.1133 curveto
+ -38.125 22.3828 -38.8906 19.3164 -37.8047 19.082 curveto
+ -36.8477 18.8047 -24.332 26.7227 -22.4219 26.3398 curveto
+ closepath
+fill
+
+
+% 32 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.072 0.4 0.618 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -22.7109 26.0469 moveto
+ -20.6641 25.6563 -12.7695 33.3281 -17.4883 23.1445 curveto
+ -22.707 11.1133 1.46875 10.7031 6.60156 14.1484 curveto
+ 12.0273 17.7383 4.28125 8.34375 4.28125 8.34375 curveto
+ -1.50781 1.90234 9.50391 7.18359 9.50391 7.18359 curveto
+ 20.457 11.3555 28.1172 3.17969 29.2422 2.82813 curveto
+ 30.1602 2.66797 31.6953 1.64844 31.8516 3.69922 curveto
+ 32.2031 5.73438 34.4766 10.9063 44.625 2.53906 curveto
+ 52.2891 -3.34375 56.5234 3.12109 56.5234 3.12109 curveto
+ 57.6836 0.796875 lineto
+ 64.6367 12.6328 60.2969 -5.87891 60.2969 -5.87891 curveto
+ 57.6055 -16.9727 15.6016 -3.84375 15.6016 -3.84375 curveto
+ 15.6016 -3.84375 -38.2891 5.99219 -41.8672 7.18359 curveto
+ -45.4414 8.54297 -74.9531 6.60156 -74.9531 6.60156 curveto
+ -73.2109 12.4063 lineto
+ -52.5898 27.2344 -47.2266 19.2695 -43.0273 20.5352 curveto
+ -38.543 21.8242 -39.3086 18.7617 -38.3828 18.5039 curveto
+ -37.2656 18.25 -24.75 26.168 -22.7109 26.0469 curveto
+ closepath
+fill
+
+
+% 33 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.063 0.35 0.54 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -23.0 25.4688 moveto
+ -21.082 25.1016 -13.3516 32.8438 -17.7773 22.5664 curveto
+ -23.1289 10.0313 0.882813 10.0313 6.3125 13.5703 curveto
+ 11.6094 17.1836 3.99219 7.76563 3.99219 7.76563 curveto
+ -1.92578 1.34766 8.92578 6.60156 8.92578 6.60156 curveto
+ 20.0391 10.7969 27.6992 2.625 28.6602 2.25 curveto
+ 29.7422 2.11328 31.2734 1.08984 31.5625 3.12109 curveto
+ 31.7852 5.17969 34.0156 10.2969 44.332 2.25 curveto
+ 52.2656 -4.14063 56.2344 2.25 56.2344 2.25 curveto
+ 57.6836 0.507813 lineto
+ 64.0039 11.5 60.2969 -7.03906 60.2969 -7.03906 curveto
+ 57.3984 -17.9492 15.3086 -4.13672 15.3086 -4.13672 curveto
+ 15.3086 -4.13672 -38.707 5.43359 -42.1562 6.60156 curveto
+ -45.8555 7.98828 -75.2422 6.02344 -75.2422 6.02344 curveto
+ -73.5039 12.1172 lineto
+ -52.7539 26.8633 -47.6445 18.7148 -43.3164 19.9531 curveto
+ -38.9609 21.2695 -39.7266 18.2031 -38.6758 17.9219 curveto
+ -37.6836 17.6914 -25.1719 25.6094 -23.0 25.4688 curveto
+ closepath
+fill
+
+
+% 34 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.054 0.3 0.463 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -23.582 24.8867 moveto
+ -21.5 24.543 -13.2109 32.0273 -18.0664 21.9844 curveto
+ -24.3125 9.60156 0.464844 9.47266 5.73047 12.9883 curveto
+ 11.1914 16.625 3.41016 7.18359 3.41016 7.18359 curveto
+ -2.34375 0.789063 8.63281 6.02344 8.63281 6.02344 curveto
+ 19.6211 10.2383 27.2813 2.06641 28.3711 1.66797 curveto
+ 29.3242 1.55469 30.8594 0.535156 30.9844 2.53906 curveto
+ 31.3672 4.62109 33.5547 9.68359 43.7539 1.66797 curveto
+ 52.2422 -4.93359 56.2344 1.08984 56.2344 1.08984 curveto
+ 57.6836 -0.0742188 lineto
+ 63.4336 10.4961 60.0078 -7.91016 60.0078 -7.91016 curveto
+ 57.1875 -18.9258 14.7305 -4.71484 14.7305 -4.71484 curveto
+ 14.7305 -4.71484 -39.125 4.875 -42.7383 6.02344 curveto
+ -46.2773 7.42969 -75.2422 5.44141 -75.2422 5.44141 curveto
+ -73.5039 11.5352 lineto
+ -52.9141 26.4922 -48.0625 18.1563 -43.6094 19.375 curveto
+ -39.3789 20.7109 -40.1445 17.6484 -39.2539 17.3398 curveto
+ -38.1016 17.1367 -25.5859 25.0547 -23.582 24.8867 curveto
+ closepath
+fill
+
+
+% 35 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.045 0.25 0.386 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -23.8711 24.3086 moveto
+ -21.918 23.9844 -13.5078 31.4102 -18.6484 21.4063 curveto
+ -25.1133 8.66016 0.046875 8.91406 5.44141 12.4063 curveto
+ 10.7734 16.0664 3.12109 6.60156 3.12109 6.60156 curveto
+ -2.76172 0.230469 8.34375 5.73047 8.34375 5.73047 curveto
+ 19.2031 9.68359 26.8633 1.50781 27.7891 1.37891 curveto
+ 28.9063 0.996094 30.4414 -0.0234375 30.6914 1.96094 curveto
+ 30.9492 4.0625 33.0977 9.07422 43.4648 1.08984 curveto
+ 52.2188 -5.73047 55.9414 0.21875 55.9414 0.21875 curveto
+ 57.6836 -0.652344 lineto
+ 62.8008 9.04297 59.7148 -8.78125 59.7148 -8.78125 curveto
+ 56.9805 -19.8984 14.4375 -5.29688 14.4375 -5.29688 curveto
+ 14.4375 -5.29688 -39.543 4.32031 -43.0273 5.73047 curveto
+ -46.6953 6.87109 -75.5352 4.86328 -75.5352 4.86328 curveto
+ -73.793 11.2461 lineto
+ -53.0781 26.1211 -48.4805 17.5977 -44.1875 18.793 curveto
+ -39.7969 20.1563 -40.5625 17.0898 -39.543 16.7617 curveto
+ -38.5195 16.5781 -26.0039 24.4961 -23.8711 24.3086 curveto
+ closepath
+fill
+
+
+% 36 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.036 0.2 0.309 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -24.4531 23.7266 moveto
+ -22.3359 23.4258 -13.5742 30.668 -18.9375 20.8242 curveto
+ -26.0391 8.23047 -0.371094 8.35938 4.86328 11.8281 curveto
+ 10.3555 15.5078 2.82813 6.02344 2.82813 6.02344 curveto
+ -3.17969 -0.324219 7.76563 5.15234 7.76563 5.15234 curveto
+ 18.7852 9.125 26.4453 0.949219 27.5 0.796875 curveto
+ 28.4883 0.441406 30.0234 -0.582031 30.4023 1.37891 curveto
+ 30.5313 3.50391 32.6367 8.46484 43.1719 0.507813 curveto
+ 52.1953 -6.52344 55.9414 -0.652344 55.9414 -0.652344 curveto
+ 57.6836 -1.23438 lineto
+ 62.2969 7.97656 59.7148 -9.94141 59.7148 -9.94141 curveto
+ 56.7695 -20.875 13.8594 -5.87891 13.8594 -5.87891 curveto
+ 13.8594 -5.87891 -39.9609 3.76172 -43.6094 5.15234 curveto
+ -47.1094 6.31641 -75.5352 4.57031 -75.5352 4.57031 curveto
+ -73.793 10.957 lineto
+ -53.2422 25.75 -48.8984 17.043 -44.4805 18.2109 curveto
+ -40.2148 19.5977 -40.9805 16.5313 -39.8359 16.1797 curveto
+ -38.9375 16.0195 -26.4258 23.9375 -24.4531 23.7266 curveto
+ closepath
+fill
+
+
+% 37 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.027 0.15 0.231 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -24.7422 23.1445 moveto
+ -22.7539 22.8711 -13.9922 30.1094 -19.5195 20.2422 curveto
+ -26.457 7.67188 -0.789063 7.80078 4.57031 11.2461 curveto
+ 9.9375 14.9531 2.25 5.44141 2.25 5.44141 curveto
+ -3.59766 -0.882813 7.47266 4.57031 7.47266 4.57031 curveto
+ 18.3672 8.56641 26.0273 0.394531 26.918 0.21875 curveto
+ 28.0703 -0.117188 29.6055 -1.13672 29.8203 0.796875 curveto
+ 30.1133 2.94922 32.1758 7.85156 42.5938 -0.0742188 curveto
+ 52.1719 -7.32031 55.6523 -1.8125 55.6523 -1.8125 curveto
+ 57.6836 -1.52344 lineto
+ 62.0469 6.84375 59.4258 -10.8125 59.4258 -10.8125 curveto
+ 56.5625 -21.8477 13.5703 -6.45703 13.5703 -6.45703 curveto
+ 13.5703 -6.45703 -40.3789 3.20313 -43.8984 4.57031 curveto
+ -47.5313 5.75781 -75.8242 3.99219 -75.8242 3.99219 curveto
+ -74.082 10.668 lineto
+ -53.4023 25.3789 -49.3164 16.4844 -45.0586 17.6328 curveto
+ -40.6328 19.0391 -41.3984 15.9727 -40.4141 15.6016 curveto
+ -39.3555 15.4648 -26.8398 23.3828 -24.7422 23.1445 curveto
+ closepath
+fill
+
+
+% 38 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.018 0.1 0.154 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -25.3242 22.5664 moveto
+ -23.1719 22.3125 -14.5352 29.6211 -19.8086 19.6641 curveto
+ -26.875 6.73438 -1.20703 7.24609 4.28125 10.957 curveto
+ 9.51953 14.3945 1.96094 4.86328 1.96094 4.86328 curveto
+ -4.01563 -1.44141 6.89453 3.99219 6.89453 3.99219 curveto
+ 17.9492 8.01172 25.6094 -0.164063 26.6289 -0.363281 curveto
+ 27.6523 -0.671875 29.1875 -1.69531 29.5313 0.21875 curveto
+ 29.6953 2.39063 31.7188 7.24219 42.3008 -0.652344 curveto
+ 52.1484 -8.11719 55.6523 -2.68359 55.6523 -2.68359 curveto
+ 57.6836 -2.10547 lineto
+ 61.8594 5.58203 59.1367 -11.9727 59.1367 -11.9727 curveto
+ 56.3516 -22.8242 12.9883 -7.03906 12.9883 -7.03906 curveto
+ 12.9883 -7.03906 -40.7969 2.64453 -44.4805 3.99219 curveto
+ -47.9492 5.19922 -75.8242 3.41016 -75.8242 3.41016 curveto
+ -74.375 10.0859 lineto
+ -53.5664 25.0078 -49.7344 15.9297 -45.3477 17.3398 curveto
+ -41.0508 18.4805 -41.8164 15.418 -40.707 15.0195 curveto
+ -39.7734 14.9063 -27.2578 22.8242 -25.3242 22.5664 curveto
+ closepath
+fill
+
+
+% 39 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.009 0.05 0.077 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -25.6133 21.9844 moveto
+ -23.5898 21.7578 -15.2969 29.2383 -20.3906 19.082 curveto
+ -27.0391 5.53906 -1.625 6.6875 3.69922 10.375 curveto
+ 9.10156 13.8398 1.37891 4.28125 1.37891 4.28125 curveto
+ -4.43359 -1.99609 6.60156 3.41016 6.60156 3.41016 curveto
+ 17.5312 7.45313 25.1914 -0.71875 26.3398 -0.941406 curveto
+ 27.2344 -1.23047 28.7656 -2.25391 28.9492 -0.0742188 curveto
+ 29.2773 1.83594 31.2578 6.62891 41.7227 -1.23438 curveto
+ 52.1289 -8.91016 55.6523 -3.55469 55.6523 -3.55469 curveto
+ 57.6836 -2.68359 lineto
+ 61.8047 4.83594 58.8438 -12.8438 58.8438 -12.8438 curveto
+ 56.1445 -23.8008 12.6992 -7.61719 12.6992 -7.61719 curveto
+ 12.6992 -7.61719 -41.2148 2.08984 -44.7695 3.41016 curveto
+ -48.3672 4.64453 -76.1133 2.82813 -76.1133 2.82813 curveto
+ -74.375 9.79688 lineto
+ -53.7305 24.6367 -50.1523 15.3711 -45.9297 16.7617 curveto
+ -41.4688 17.9258 -42.2344 14.8594 -41.2852 14.7305 curveto
+ -40.1914 14.3477 -27.6758 22.2656 -25.6133 21.9844 curveto
+ closepath
+fill
+
+
+% 40 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 57.6836 -2.97656 moveto
+ 61.8086 3.96094 58.8438 -13.7148 58.8438 -13.7148 curveto
+ 55.9336 -24.7734 12.1172 -8.19922 12.1172 -8.19922 curveto
+ 12.1172 -8.19922 -41.6328 1.53125 -45.3477 2.82813 curveto
+ -48.7852 4.08594 -76.1133 2.25 -76.1133 2.25 curveto
+ -74.6641 9.50391 lineto
+ -53.8906 24.2656 -50.5703 14.8125 -46.2187 16.1797 curveto
+ -41.8867 17.3672 -42.6523 14.3047 -41.5781 14.1484 curveto
+ -40.6094 13.793 -28.0938 21.7109 -26.1953 21.4063 curveto
+ -24.0078 21.1992 -15.957 28.8008 -20.6797 18.5039 curveto
+ -27.7852 3.41406 -1.28906 6.63281 3.41016 9.79688 curveto
+ 8.68359 13.2813 1.08984 3.69922 1.08984 3.69922 curveto
+ -4.85156 -2.55469 6.02344 2.82813 6.02344 2.82813 curveto
+ 17.1133 6.89844 24.7734 -1.27734 25.7578 -1.52344 curveto
+ 26.8164 -1.78906 28.3516 -2.80859 28.6602 -0.652344 curveto
+ 28.8633 1.27734 30.7969 6.01953 41.4297 -1.8125 curveto
+ 52.1016 -9.70703 55.3633 -4.71484 55.3633 -4.71484 curveto
+ 57.6836 -2.97656 lineto
+ closepath
+fill
+
+
+% 41 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 44.332 -12.5547 moveto
+ 44.332 -12.5547 46.7383 -16.3477 39.9805 -20.6797 curveto
+ 39.9805 -20.6797 39.6523 -21.0078 45.4961 -19.8086 curveto
+ 45.4961 -19.8086 47.3789 -19.0273 47.8164 -15.7461 curveto
+ 47.8164 -15.7461 49.4219 -14.3047 51.0078 -12.5547 curveto
+ 52.4883 -10.7266 44.332 -12.5547 44.332 -12.5547 curveto
+ closepath
+fill
+
+
+% 42 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -0.363281 2.53906 moveto
+ -0.363281 2.53906 -5.90625 -6.00781 -5.58594 -7.61719 curveto
+ -5.30078 -10.8555 -5.23438 -13.9219 -6.16797 -15.1641 curveto
+ -7.28125 -16.4727 -10.2305 -27.0664 -10.2305 -27.0664 curveto
+ -10.2305 -27.0664 -9.96094 -27.457 -14.0039 -15.457 curveto
+ -14.0039 -15.457 -17.625 -10.2148 -11.1016 -4.42578 curveto
+ -11.1016 -4.42578 0.0 4.85156 -0.363281 2.53906 curveto
+ closepath
+fill
+
+
+% 43 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 37.9492 -21.2617 moveto
+ 37.9492 -21.2617 34.4805 -23.4961 39.1094 -33.4492 curveto
+ 37.0781 -32.5781 lineto
+ 37.0781 -32.5781 37.2891 -36.2695 38.2383 -36.9336 curveto
+ 35.918 -36.0625 lineto
+ 35.918 -36.0625 34.4805 -38.5664 35.625 -40.125 curveto
+ 35.625 -40.125 30.3945 -42.6523 30.6914 -44.7695 curveto
+ 30.6914 -44.7695 28.6055 -42.1406 29.8203 -40.125 curveto
+ 31.1602 -38.0547 33.457 -39.332 33.3047 -33.4492 curveto
+ 35.918 -34.6094 lineto
+ 35.918 -34.6094 34.2266 -31.6719 34.1758 -29.6758 curveto
+ 36.7891 -30.2578 lineto
+ 36.7891 -30.2578 31.8398 -21.9102 35.3359 -21.5508 curveto
+ 37.1602 -21.1992 37.9492 -21.2617 37.9492 -21.2617 curveto
+ closepath
+fill
+
+
+% 44 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ 27.7891 -26.4844 moveto
+ 27.7891 -26.4844 26.8164 -25.1563 27.7891 -25.3242 curveto
+ 28.6055 -25.668 38.5664 -30.3945 40.5625 -33.4492 curveto
+ 40.5625 -33.4492 29.5 -25.668 27.7891 -26.4844 curveto
+ closepath
+fill
+
+
+% 45 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ 24.3086 -29.0977 moveto
+ 24.3086 -29.0977 23.4961 -27.7109 24.3086 -27.9336 curveto
+ 25.2852 -28.2227 35.2461 -32.9492 37.0781 -36.0625 curveto
+ 37.0781 -36.0625 26.1797 -28.2227 24.3086 -29.0977 curveto
+ closepath
+fill
+
+
+% 46 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ 20.2422 -24.1641 moveto
+ 20.2422 -24.1641 19.2852 -22.8594 20.2422 -23.0 curveto
+ 21.0703 -23.3711 31.0313 -28.0938 33.0156 -31.1289 curveto
+ 33.0156 -31.1289 21.9648 -23.3711 20.2422 -24.1641 curveto
+ closepath
+fill
+
+
+% 47 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ 27.5 -38.0938 moveto
+ 27.5 -38.0938 27.582 -36.2695 28.3711 -36.6406 curveto
+ 29.3711 -36.7813 40.8672 -42.3984 42.8828 -45.3477 curveto
+ 42.8828 -45.3477 29.3711 -37.2891 27.5 -38.0938 curveto
+ closepath
+fill
+
+
+% 48 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ 27.2109 -34.6094 moveto
+ 27.2109 -34.6094 26.8164 -33.2031 27.7891 -33.4492 curveto
+ 28.3516 -33.457 36.7773 -37.1641 38.8203 -40.125 curveto
+ 38.8203 -40.125 29.2461 -33.332 27.2109 -34.6094 curveto
+ closepath
+fill
+
+
+% 49 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ 31.8516 -49.9922 moveto
+ 35.0469 -52.3164 lineto
+ 35.0469 -52.3164 31.6719 -49.9336 30.4023 -50.2852 curveto
+ 30.4023 -50.2852 32.6914 -53.8906 33.0156 -55.5078 curveto
+ 33.0156 -55.5078 29.625 -51.4648 27.7891 -51.7344 curveto
+ 27.7891 -51.7344 25.4141 -51.7188 25.4688 -55.2188 curveto
+ 25.4688 -55.2188 23.625 -51.8477 22.5664 -52.0234 curveto
+ 22.5664 -52.0234 22.2188 -54.0195 22.5664 -56.0898 curveto
+ 22.5664 -56.0898 21.3281 -53.7656 19.9531 -54.3477 curveto
+ 19.9531 -54.3477 18.0078 -53.6367 18.2109 -57.25 curveto
+ 18.2109 -57.25 18.2617 -60.6602 18.5039 -61.6016 curveto
+ 18.5039 -61.6016 16.7305 -53.125 15.8906 -52.8945 curveto
+ 15.8906 -52.8945 13.4102 -52.6133 11.8281 -55.5078 curveto
+ 11.8281 -55.5078 13.1523 -52.9961 11.5352 -53.7656 curveto
+ 11.5352 -53.7656 8.17188 -54.1484 7.18359 -56.3789 curveto
+ 7.18359 -56.3789 9.32422 -52.4883 7.47266 -53.4766 curveto
+ 7.47266 -53.4766 5.36328 -53.5078 4.86328 -55.5078 curveto
+ 4.86328 -55.5078 2.30078 -62.3203 1.66797 -62.7656 curveto
+ 1.66797 -62.7656 4.08594 -55.9336 3.69922 -55.7969 curveto
+ 3.69922 -55.7969 4.21484 -52.1016 2.53906 -56.957 curveto
+ 2.53906 -56.957 3.57422 -52.3594 1.66797 -52.6055 curveto
+ 0.0 -52.8711 -1.40625 -56.0625 -4.13672 -55.2188 curveto
+ -4.13672 -55.2188 -7.15234 -57.082 -7.91015 -34.9023 curveto
+ 31.8516 -49.9922 lineto
+ closepath
+fill
+
+
+% 50 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 30.4023 -20.3906 moveto
+ 30.4023 -20.3906 25.5391 -18.3906 12.6992 -20.3906 curveto
+ 12.6992 -20.3906 10.4727 -20.4336 8.34375 -17.4883 curveto
+ 6.12891 -14.8164 -2.42578 -12.5156 -4.42578 -13.1328 curveto
+ -7.61719 -15.1641 lineto
+ -7.91015 -15.457 lineto
+ -7.91015 -15.457 -11.75 -18.9023 -11.9727 -21.2617 curveto
+ -12.0039 -23.7539 -7.28125 -39.0781 -4.13672 -44.1875 curveto
+ -1.14844 -49.293 1.91797 -53.2539 8.05469 -52.6055 curveto
+ 8.05469 -52.6055 14.6875 -51.2109 22.8555 -52.6055 curveto
+ 22.8555 -52.6055 32.1797 -51.9766 33.0156 -49.4141 curveto
+ 33.9688 -46.8672 29.5313 -42.1563 29.5313 -42.1563 curveto
+ 29.5313 -42.1563 28.0938 -39.332 28.3711 -34.6094 curveto
+ 28.8633 -30.1367 28.7344 -21.1992 30.4023 -20.3906 curveto
+ closepath
+fill
+
+
+% 51 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.1 0.6 0.45 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 23.1445 -20.9688 moveto
+ 20.5586 -26.8203 30.1133 -47.6719 30.1133 -47.6719 curveto
+ 30.6484 -48.1445 25.9688 -50.0742 22.8555 -49.4141 curveto
+ 19.2383 -48.4531 6.3125 -49.7031 6.3125 -49.7031 curveto
+ -1.14844 -44.8242 -5.29688 -30.5469 -5.29688 -30.5469 curveto
+ -5.29688 -30.5469 -8.55469 -22.9883 -2.97656 -21.8398 curveto
+ 2.67969 -20.9453 23.1445 -20.9688 23.1445 -20.9688 curveto
+ closepath
+fill
+
+
+% 52 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.3 0.8 0.65 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 24.0156 -30.8359 moveto
+ 22.8281 -26.7227 22.3242 -22.957 23.1445 -20.9688 curveto
+ 23.1445 -20.9688 3.32031 -22.9883 -0.363281 -16.3242 curveto
+ -1.60938 -13.832 -6.32031 -23.625 -6.16797 -26.7734 curveto
+ -6.16797 -26.7734 13.9219 -31.2891 18.5039 -27.6445 curveto
+ 24.0156 -30.8359 lineto
+ closepath
+fill
+
+
+% 53 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.35 0.85 0.7 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 22.5664 -36.0625 moveto
+ 22.5664 -36.0625 21.8359 -38.3125 22.5664 -39.543 curveto
+ 22.5664 -39.543 23.1133 -39.8438 23.4375 -39.8359 curveto
+ 23.4375 -39.8359 23.1133 -41.1211 21.1133 -41.5781 curveto
+ 21.1133 -41.5781 20.5586 -43.0352 19.6641 -43.0273 curveto
+ 19.0273 -43.293 17.4961 -45.0781 16.1797 -44.7695 curveto
+ 14.9414 -44.3125 11.2461 -43.0273 11.2461 -43.0273 curveto
+ 11.2461 -43.0273 9.57813 -42.0156 6.89453 -43.0273 curveto
+ 6.89453 -43.0273 6.01172 -42.9102 5.73047 -41.5781 curveto
+ 5.71484 -40.1328 4.72656 -38.9492 3.99219 -38.3828 curveto
+ 3.44922 -37.6719 0.382813 -33.5859 0.796879 -33.4492 curveto
+ 1.14844 -33.332 22.5664 -36.0625 22.5664 -36.0625 curveto
+ closepath
+fill
+gsave %{
+
+
+% 54 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.55 0.5 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 24.0156 -20.6797 moveto
+ 24.0156 -20.6797 24.7734 -27.7109 23.7266 -30.2578 curveto
+ 22.7305 -33.0742 22.9883 -33.7148 23.1445 -34.9023 curveto
+ 23.4961 -36.2695 22.0938 -39.4609 20.2422 -41.2852 curveto
+ 16.4727 -41.8672 lineto
+ 16.4727 -41.8672 11.6211 -40.7383 8.63281 -41.5781 curveto
+ 8.63281 -41.5781 5.8125 -42.0586 4.86328 -37.2227 curveto
+ 4.86328 -37.2227 3.19141 -35.2461 0.796879 -34.3203 curveto
+ -1.40625 -33.457 -3.70313 -20.1758 -2.39453 -17.4883 curveto
+ -1.14844 -15.0703 3.44922 -13.6641 8.63281 -18.6484 curveto
+ 13.6641 -23.625 14.3047 -18.2617 24.0156 -20.6797 curveto
+ closepath
+fill
+grestore %}
+
+
+% 55 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 24.0156 -20.6797 moveto
+ 24.0156 -20.6797 24.7734 -27.7109 23.7266 -30.2578 curveto
+ 22.7305 -33.0742 22.9883 -33.7148 23.1445 -34.9023 curveto
+ 23.4961 -36.2695 22.0938 -39.4609 20.2422 -41.2852 curveto
+ 16.4727 -41.8672 lineto
+ 16.4727 -41.8672 11.6211 -40.7383 8.63281 -41.5781 curveto
+ 8.63281 -41.5781 5.8125 -42.0586 4.86328 -37.2227 curveto
+ 4.86328 -37.2227 3.19141 -35.2461 0.796879 -34.3203 curveto
+ -1.40625 -33.457 -3.70313 -20.1758 -2.39453 -17.4883 curveto
+ -1.14844 -15.0703 3.44922 -13.6641 8.63281 -18.6484 curveto
+ 13.6641 -23.625 14.3047 -18.2617 24.0156 -20.6797 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 56 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.15963 setlinewidth
+ 0.0 0.0 0.2 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 23.4375 -44.4805 moveto
+ 23.4375 -44.4805 23.625 -43.8047 24.8867 -43.6094 curveto
+ 24.8867 -43.6094 32.1797 -42.5273 34.7539 -38.6758 curveto
+ 34.7539 -38.6758 37.0352 -36.7813 35.625 -40.4141 curveto
+ 35.625 -40.4141 32.3086 -46.9961 30.1133 -47.9609 curveto
+ 30.1133 -47.9609 24.9023 -49.168 23.4375 -44.4805 curveto
+ closepath
+fill
+grestore %}
+
+
+% 57 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.15963 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 23.4375 -44.4805 moveto
+ 23.4375 -44.4805 23.625 -43.8047 24.8867 -43.6094 curveto
+ 24.8867 -43.6094 32.1797 -42.5273 34.7539 -38.6758 curveto
+ 34.7539 -38.6758 37.0352 -36.7813 35.625 -40.4141 curveto
+ 35.625 -40.4141 32.3086 -46.9961 30.1133 -47.9609 curveto
+ 30.1133 -47.9609 24.9023 -49.168 23.4375 -44.4805 curveto
+ closepath
+stroke
+
+
+% 58 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.2 0.75 0.7 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -2.10547 -24.1641 moveto
+ -2.36328 -21.4922 -2.98438 -18.7422 -2.39453 -17.4883 curveto
+ -0.367188 -13.5078 5.05078 -15.2266 8.63281 -18.6484 curveto
+ 13.6641 -23.625 14.3047 -18.2617 24.0156 -20.6797 curveto
+ 24.0156 -20.6797 24.4375 -25.0195 24.3086 -28.2266 curveto
+ 24.3086 -28.2266 12.2578 -24.5195 12.1172 -26.1953 curveto
+ 12.1172 -26.1953 11.4922 -25.2852 8.63281 -25.3242 curveto
+ 5.61719 -25.2852 -1.64063 -24.9102 -2.10547 -24.1641 curveto
+ closepath
+fill
+
+
+% 59 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.638521 setlinewidth
+ 0.35 0.9 0.85 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 11.5352 -20.6797 moveto
+ 11.5352 -20.6797 10.0898 -22.3477 11.2461 -25.3242 curveto
+ 11.2461 -25.3242 15.8359 -30.5195 15.3086 -34.9023 curveto
+stroke
+gsave %{
+
+
+% 60 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.15963 setlinewidth
+ 0.0 0.0 0.2 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 26.918 -47.9609 moveto
+ 26.918 -47.9609 28.3516 -43.8047 25.4688 -45.9297 curveto
+ 25.4688 -45.9297 24.0078 -46.6133 24.3086 -47.0898 curveto
+ 24.7734 -47.6328 26.5625 -48.9102 26.918 -47.9609 curveto
+ closepath
+fill
+grestore %}
+
+
+% 61 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.15963 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 26.918 -47.9609 moveto
+ 26.918 -47.9609 28.3516 -43.8047 25.4688 -45.9297 curveto
+ 25.4688 -45.9297 24.0078 -46.6133 24.3086 -47.0898 curveto
+ 24.7734 -47.6328 26.5625 -48.9102 26.918 -47.9609 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 62 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.15963 setlinewidth
+ 0.0 0.0 0.2 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 25.4688 -48.25 moveto
+ 25.4688 -48.25 26.4609 -45.0039 24.3086 -46.8008 curveto
+ 24.3086 -46.8008 22.8008 -47.5234 23.4375 -47.6719 curveto
+ 24.75 -48.0664 23.293 -48.8867 25.4688 -48.25 curveto
+ closepath
+fill
+grestore %}
+
+
+% 63 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.15963 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 25.4688 -48.25 moveto
+ 25.4688 -48.25 26.4609 -45.0039 24.3086 -46.8008 curveto
+ 24.3086 -46.8008 22.8008 -47.5234 23.4375 -47.6719 curveto
+ 24.75 -48.0664 23.293 -48.8867 25.4688 -48.25 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 64 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.15963 setlinewidth
+ 0.0 0.0 0.2 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 23.7266 -48.25 moveto
+ 23.7266 -48.25 24.9258 -45.0039 22.5664 -46.8008 curveto
+ 22.5664 -46.8008 21.2852 -47.4766 21.6953 -47.6719 curveto
+ 22.832 -48.0664 21.7617 -48.8867 23.7266 -48.25 curveto
+ closepath
+fill
+grestore %}
+
+
+% 65 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.15963 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 23.7266 -48.25 moveto
+ 23.7266 -48.25 24.9258 -45.0039 22.5664 -46.8008 curveto
+ 22.5664 -46.8008 21.2852 -47.4766 21.6953 -47.6719 curveto
+ 22.832 -48.0664 21.7617 -48.8867 23.7266 -48.25 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 66 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.15963 setlinewidth
+ 0.0 0.0 0.2 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 21.6953 -48.25 moveto
+ 21.6953 -48.25 22.8203 -45.0664 20.5352 -46.8008 curveto
+ 20.5352 -46.8008 19.1719 -47.5508 19.6641 -47.6719 curveto
+ 20.5977 -48.0664 19.6523 -48.9492 21.6953 -48.25 curveto
+ closepath
+fill
+grestore %}
+
+
+% 67 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.15963 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 21.6953 -48.25 moveto
+ 21.6953 -48.25 22.8203 -45.0664 20.5352 -46.8008 curveto
+ 20.5352 -46.8008 19.1719 -47.5508 19.6641 -47.6719 curveto
+ 20.5977 -48.0664 19.6523 -48.9492 21.6953 -48.25 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 68 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.15963 setlinewidth
+ 0.0 0.0 0.2 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 19.6641 -48.25 moveto
+ 19.6641 -48.25 20.75 -45.0391 18.5039 -46.8008 curveto
+ 18.5039 -46.8008 17.2773 -47.2891 17.6328 -47.6719 curveto
+ 17.8906 -48.1055 17.5859 -48.9258 19.6641 -48.25 curveto
+ closepath
+fill
+grestore %}
+
+
+% 69 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.15963 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 19.6641 -48.25 moveto
+ 19.6641 -48.25 20.75 -45.0391 18.5039 -46.8008 curveto
+ 18.5039 -46.8008 17.2773 -47.2891 17.6328 -47.6719 curveto
+ 17.8906 -48.1055 17.5859 -48.9258 19.6641 -48.25 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 70 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.15963 setlinewidth
+ 0.0 0.0 0.2 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 17.6328 -48.543 moveto
+ 17.6328 -48.543 19.0273 -44.5703 16.1797 -46.5117 curveto
+ 16.1797 -46.5117 14.5586 -47.25 15.0195 -47.6719 curveto
+ 15.3242 -48.2734 14.9414 -49.293 17.6328 -48.543 curveto
+ closepath
+fill
+grestore %}
+
+
+% 71 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.15963 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 17.6328 -48.543 moveto
+ 17.6328 -48.543 19.0273 -44.5703 16.1797 -46.5117 curveto
+ 16.1797 -46.5117 14.5586 -47.25 15.0195 -47.6719 curveto
+ 15.3242 -48.2734 14.9414 -49.293 17.6328 -48.543 curveto
+ closepath
+stroke
+
+
+% 72 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.638521 setlinewidth
+ 0.35 0.85 0.7 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 26.6289 -43.0273 moveto
+ 26.6289 -43.0273 22.3477 -42.1406 20.5352 -43.0273 curveto
+ 20.5352 -43.0273 18.5156 -43.5469 18.2109 -43.3164 curveto
+ 17.75 -43.293 16.7617 -43.0273 16.7617 -43.0273 curveto
+stroke
+
+
+% 73 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.638521 setlinewidth
+ 0.35 0.85 0.7 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 15.6016 -45.9297 moveto
+ 15.6016 -45.9297 11.8789 -41.5039 8.05469 -43.0273 curveto
+ 5.80469 -43.7305 6.12891 -42.6523 5.73047 -41.8672 curveto
+ 5.61719 -40.8672 5.55469 -39.5234 3.99219 -38.6758 curveto
+stroke
+gsave %{
+
+
+% 74 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.15963 setlinewidth
+ 0.0 0.0 0.2 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 10.0859 -40.707 moveto
+ 10.0859 -40.707 11.4922 -37.2891 12.4063 -41.2852 curveto
+ 13.2813 -45.4648 14.3047 -46.6133 14.7305 -47.3828 curveto
+ 14.7305 -47.3828 14.8125 -49.168 12.1172 -49.1211 curveto
+ 12.1172 -49.1211 8.68359 -48.9102 8.63281 -47.9609 curveto
+ 8.42969 -47.1211 8.94141 -43.4219 10.0859 -40.707 curveto
+ closepath
+fill
+grestore %}
+
+
+% 75 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.15963 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 10.0859 -40.707 moveto
+ 10.0859 -40.707 11.4922 -37.2891 12.4063 -41.2852 curveto
+ 13.2813 -45.4648 14.3047 -46.6133 14.7305 -47.3828 curveto
+ 14.7305 -47.3828 14.8125 -49.168 12.1172 -49.1211 curveto
+ 12.1172 -49.1211 8.68359 -48.9102 8.63281 -47.9609 curveto
+ 8.42969 -47.1211 8.94141 -43.4219 10.0859 -40.707 curveto
+ closepath
+stroke
+
+
+% 76 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.638521 setlinewidth
+ 0.35 0.85 0.7 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 5.73047 -43.0273 moveto
+ 5.73047 -43.0273 4.59766 -42.2695 3.69922 -42.7383 curveto
+stroke
+
+
+% 77 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.638521 setlinewidth
+ 0.35 0.85 0.7 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 3.69922 -37.8047 moveto
+ 3.69922 -37.8047 2.74609 -36.2383 1.08984 -36.0625 curveto
+stroke
+
+
+% 78 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 0.3 setcmykcolor
+() p2esetcolorname
+newpath
+ 28.9492 -49.4141 moveto
+ 28.9492 -49.4141 23.2422 -50.5703 21.6953 -49.9922 curveto
+ 21.6953 -49.9922 19.0273 -50.0586 21.6953 -50.5742 curveto
+ 21.6953 -50.5742 25.7969 -50.6992 28.3711 -50.2852 curveto
+ 28.3711 -50.2852 32.0547 -48.5273 28.9492 -49.4141 curveto
+ closepath
+fill
+gsave %{
+
+
+% 79 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.15963 setlinewidth
+ 0.0 0.0 0.2 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 24.5977 -19.8086 moveto
+ 24.5977 -19.8086 18.9023 -19.793 18.2109 -20.0977 curveto
+ 18.2109 -20.0977 15.9648 -29.8828 17.0508 -32.2891 curveto
+ 17.0508 -32.2891 17.4961 -33.2031 18.5039 -31.418 curveto
+ 18.5039 -31.418 24.2656 -20.9453 25.1797 -20.3906 curveto
+ 26.3086 -19.668 24.9023 -19.793 24.5977 -19.8086 curveto
+ closepath
+fill
+grestore %}
+
+
+% 80 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.15963 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 24.5977 -19.8086 moveto
+ 24.5977 -19.8086 18.9023 -19.793 18.2109 -20.0977 curveto
+ 18.2109 -20.0977 15.9648 -29.8828 17.0508 -32.2891 curveto
+ 17.0508 -32.2891 17.4961 -33.2031 18.5039 -31.418 curveto
+ 18.5039 -31.418 24.2656 -20.9453 25.1797 -20.3906 curveto
+ 26.3086 -19.668 24.9023 -19.793 24.5977 -19.8086 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 81 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.15963 setlinewidth
+ 0.0 0.0 0.2 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 49.2695 -18.9375 moveto
+ 49.2695 -18.9375 46.293 -19.4766 42.3008 -20.3906 curveto
+ 42.3008 -20.3906 40.7383 -27.457 39.6914 -29.0977 curveto
+ 38.6953 -30.5195 39.8438 -30.5195 40.8516 -29.6758 curveto
+ 42.1406 -28.7344 46.8672 -24.2656 47.5273 -23.0 curveto
+ 48.1445 -21.4531 49.2695 -18.9375 49.2695 -18.9375 curveto
+ closepath
+fill
+grestore %}
+
+
+% 82 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.15963 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 49.2695 -18.9375 moveto
+ 49.2695 -18.9375 46.293 -19.4766 42.3008 -20.3906 curveto
+ 42.3008 -20.3906 40.7383 -27.457 39.6914 -29.0977 curveto
+ 38.6953 -30.5195 39.8438 -30.5195 40.8516 -29.6758 curveto
+ 42.1406 -28.7344 46.8672 -24.2656 47.5273 -23.0 curveto
+ 48.1445 -21.4531 49.2695 -18.9375 49.2695 -18.9375 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 83 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.15963 setlinewidth
+ 0.0 0.0 0.2 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 42.0117 -20.3906 moveto
+ 42.0117 -20.3906 40.3047 -20.8672 39.9805 -21.5508 curveto
+ 39.6602 -22.2813 40.2695 -23.293 40.2695 -23.293 curveto
+ 40.2695 -23.293 40.6836 -24.3906 41.1406 -23.582 curveto
+ 41.4531 -23.0078 42.3672 -20.5625 42.0117 -20.3906 curveto
+ closepath
+fill
+grestore %}
+
+
+% 84 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.15963 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 42.0117 -20.3906 moveto
+ 42.0117 -20.3906 40.3047 -20.8672 39.9805 -21.5508 curveto
+ 39.6602 -22.2813 40.2695 -23.293 40.2695 -23.293 curveto
+ 40.2695 -23.293 40.6836 -24.3906 41.1406 -23.582 curveto
+ 41.4531 -23.0078 42.3672 -20.5625 42.0117 -20.3906 curveto
+ closepath
+stroke
+
+
+% 85 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.15963 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 42.0117 -20.3906 moveto
+ 42.0117 -20.3906 40.9922 -21.9648 39.9805 -21.8398 curveto
+ 38.6953 -21.9648 38.5703 -21.832 37.6602 -22.1289 curveto
+ 36.2031 -22.3477 36.332 -21.7109 34.1758 -22.1289 curveto
+ 33.3828 -22.2461 32.5625 -21.9648 31.5625 -22.4219 curveto
+ 30.7773 -22.7305 29.7539 -22.4766 29.2422 -21.8398 curveto
+ 28.9883 -21.1992 27.5 -19.8086 27.5 -19.8086 curveto
+ 27.5 -19.8086 31.543 -20.4336 32.4336 -20.6797 curveto
+ 32.4336 -20.6797 39.5859 -21.0703 42.0117 -20.3906 curveto
+ closepath
+fill
+gsave %{
+
+
+% 86 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.15963 setlinewidth
+ 0.0 0.0 0.2 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 27.7891 -20.3906 moveto
+ 27.7891 -20.3906 29.9609 -21.4883 30.1133 -22.1289 curveto
+ 30.2188 -23.0195 28.3711 -24.1641 28.3711 -24.1641 curveto
+ 28.3711 -24.1641 27.5352 -25.668 27.2109 -25.0313 curveto
+ 27.1523 -24.1367 27.6484 -20.4961 27.7891 -20.3906 curveto
+ closepath
+fill
+grestore %}
+
+
+% 87 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.15963 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 27.7891 -20.3906 moveto
+ 27.7891 -20.3906 29.9609 -21.4883 30.1133 -22.1289 curveto
+ 30.2188 -23.0195 28.3711 -24.1641 28.3711 -24.1641 curveto
+ 28.3711 -24.1641 27.5352 -25.668 27.2109 -25.0313 curveto
+ 27.1523 -24.1367 27.6484 -20.4961 27.7891 -20.3906 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 88 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.15963 setlinewidth
+ 0.0 0.0 0.2 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 39.9805 -22.1289 moveto
+ 39.9805 -22.1289 37.6328 -25.6875 37.6602 -22.1289 curveto
+ 37.6602 -22.1289 37.3867 -21.7031 37.9492 -21.8398 curveto
+ 39.8867 -21.6719 39.4023 -20.3633 39.9805 -22.1289 curveto
+ closepath
+fill
+grestore %}
+
+
+% 89 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.15963 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 39.9805 -22.1289 moveto
+ 39.9805 -22.1289 37.6328 -25.6875 37.6602 -22.1289 curveto
+ 37.6602 -22.1289 37.3867 -21.7031 37.9492 -21.8398 curveto
+ 39.8867 -21.6719 39.4023 -20.3633 39.9805 -22.1289 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 90 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.15963 setlinewidth
+ 0.0 0.0 0.2 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 37.6602 -22.1289 moveto
+ 37.6602 -22.1289 35.0508 -25.7656 35.3359 -22.1289 curveto
+ 35.3359 -22.1289 35.25 -22.0586 35.918 -22.1289 curveto
+ 37.3242 -21.875 37.2148 -20.4336 37.6602 -22.1289 curveto
+ closepath
+fill
+grestore %}
+
+
+% 91 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.15963 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 37.6602 -22.1289 moveto
+ 37.6602 -22.1289 35.0508 -25.7656 35.3359 -22.1289 curveto
+ 35.3359 -22.1289 35.25 -22.0586 35.918 -22.1289 curveto
+ 37.3242 -21.875 37.2148 -20.4336 37.6602 -22.1289 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 92 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.15963 setlinewidth
+ 0.0 0.0 0.2 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 35.3359 -22.1289 moveto
+ 35.3359 -22.1289 32.7344 -25.5898 33.0156 -22.4219 curveto
+ 33.0156 -22.4219 32.9102 -22.1094 33.3047 -22.1289 curveto
+ 34.6797 -21.7891 34.75 -20.75 35.3359 -22.1289 curveto
+ closepath
+fill
+grestore %}
+
+
+% 93 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.15963 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 35.3359 -22.1289 moveto
+ 35.3359 -22.1289 32.7344 -25.5898 33.0156 -22.4219 curveto
+ 33.0156 -22.4219 32.9102 -22.1094 33.3047 -22.1289 curveto
+ 34.6797 -21.7891 34.75 -20.75 35.3359 -22.1289 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 94 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.15963 setlinewidth
+ 0.0 0.0 0.2 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 33.0156 -22.1289 moveto
+ 33.0156 -22.1289 30.5586 -25.9141 30.4023 -22.7109 curveto
+ 30.4023 -22.7109 29.9219 -22.3477 30.4023 -22.4219 curveto
+ 32.3359 -22.043 32.082 -20.6211 33.0156 -22.1289 curveto
+ closepath
+fill
+grestore %}
+
+
+% 95 pathnumber
+% strokedpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.15963 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 33.0156 -22.1289 moveto
+ 33.0156 -22.1289 30.5586 -25.9141 30.4023 -22.7109 curveto
+ 30.4023 -22.7109 29.9219 -22.3477 30.4023 -22.4219 curveto
+ 32.3359 -22.043 32.082 -20.6211 33.0156 -22.1289 curveto
+ closepath
+stroke
+
+
+% 96 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.15963 setlinewidth
+ 0.1 0.1 0.3 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 44.625 -23.293 moveto
+ 46.9453 -23.0 lineto
+ 47.9063 -21.2617 48.6875 -19.2266 48.6875 -19.2266 curveto
+ 48.6875 -19.2266 46.5469 -19.6211 42.5938 -20.3906 curveto
+ 42.5938 -20.3906 42.2773 -21.5703 41.7227 -23.293 curveto
+ 44.625 -23.293 lineto
+ closepath
+fill
+
+
+% 97 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.15963 setlinewidth
+ 0.1 0.1 0.3 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 23.7266 -21.8398 moveto
+ 24.3867 -21.0586 24.8086 -20.4961 24.8867 -20.3906 curveto
+ 25.9766 -19.7695 24.6563 -19.8867 24.3086 -19.8086 curveto
+ 24.3086 -19.8086 19.0039 -19.8867 18.5039 -20.0977 curveto
+ 18.5039 -20.0977 18.2344 -20.8438 17.9219 -21.8398 curveto
+ 17.9219 -21.8398 21.2383 -21.2852 23.7266 -21.8398 curveto
+ closepath
+fill
+
+
+% 98 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.2 0.55 0.85 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 6.60156 22.2773 moveto
+ -2.10938 20.9805 -10.2539 32.3594 -10.8125 35.3359 curveto
+ -11.3789 38.543 -8.19922 42.3008 -8.19922 42.3008 curveto
+ -8.57031 43.3164 -7.02344 47.8125 -5.29688 50.7188 curveto
+ -3.65234 53.7109 1.42578 53.4023 6.89453 53.6211 curveto
+ 12.082 53.9922 17.9805 46.5469 18.5039 46.0742 curveto
+ 18.8242 45.4258 16.8555 33.2031 16.4727 31.2734 curveto
+ 16.0156 29.5508 16.7617 21.1133 16.7617 21.1133 curveto
+ 5.92578 24.0273 15.5938 23.5117 6.60156 22.2773 curveto
+ closepath
+fill
+
+
+% 99 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.08 0.44 0.68 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 18.2109 45.7852 moveto
+ 18.582 45.2266 16.6523 33.2305 16.1797 31.5625 curveto
+ 15.8242 29.6445 16.7617 21.4063 16.7617 21.4063 curveto
+ 6.22266 24.2031 15.4102 23.7109 6.60156 22.5664 curveto
+ -1.96875 21.2305 -9.96484 32.4023 -10.5195 35.3359 curveto
+ -11.0703 38.4688 -7.91015 42.3008 -7.91015 42.3008 curveto
+ -8.3125 43.1602 -6.79296 47.5742 -5.00781 50.4297 curveto
+ -3.48438 53.3633 1.5 53.0586 6.89453 53.332 curveto
+ 11.9648 53.6406 17.7539 46.332 18.2109 45.7852 curveto
+ closepath
+fill
+
+
+% 100 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.06 0.33 0.51 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 17.9219 45.4961 moveto
+ 18.3438 45.0313 16.4492 33.2539 16.1797 31.5625 curveto
+ 15.6367 29.7344 16.4727 21.6953 16.4727 21.6953 curveto
+ 6.42188 24.5352 15.2305 23.9141 6.60156 22.5664 curveto
+ -1.82813 21.4766 -9.67578 32.4414 -10.2305 35.3359 curveto
+ -10.7617 38.3984 -7.61719 42.0117 -7.61719 42.0117 curveto
+ -8.05469 43.0 -6.5625 47.332 -5.00781 50.1367 curveto
+ -3.31641 53.0195 1.57422 52.7188 6.89453 53.0391 curveto
+ 11.8438 53.2891 17.5312 46.1133 17.9219 45.4961 curveto
+ closepath
+fill
+
+
+% 101 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.04 0.22 0.34 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 17.6328 45.4961 moveto
+ 18.1055 44.8359 16.2461 33.2813 15.8906 31.5625 curveto
+ 15.4453 29.8281 16.1797 21.9844 16.1797 21.9844 curveto
+ 6.84766 24.7422 15.0469 24.1172 6.60156 22.8555 curveto
+ -1.6875 21.7266 -9.39063 32.4844 -9.94141 35.3359 curveto
+ -10.4531 38.3281 -7.32813 42.0117 -7.32813 42.0117 curveto
+ -7.79688 42.8398 -6.33594 47.0938 -4.71484 49.8477 curveto
+ -3.14843 52.6719 1.65234 52.375 6.89453 52.75 curveto
+ 11.7266 52.9375 17.3047 45.8984 17.6328 45.4961 curveto
+ closepath
+fill
+
+
+% 102 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.02 0.11 0.17 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 17.3398 45.2031 moveto
+ 17.8633 44.6367 16.0391 33.3047 15.6016 31.5625 curveto
+ 15.2578 29.918 16.1797 21.9844 16.1797 21.9844 curveto
+ 7.14063 24.9492 14.8672 24.3164 6.60156 23.1445 curveto
+ -1.54688 21.9727 -9.10156 32.5234 -9.64844 35.3359 curveto
+ -10.1406 38.2539 -7.03906 41.7227 -7.03906 41.7227 curveto
+ -7.53906 42.6836 -6.10547 46.8516 -4.42578 49.5586 curveto
+ -2.97656 52.3242 1.73047 52.0352 6.89453 52.4609 curveto
+ 11.6094 52.582 17.082 45.6797 17.3398 45.2031 curveto
+ closepath
+fill
+
+
+% 103 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 6.60156 23.4375 moveto
+ -1.40625 22.2188 -8.8125 32.5625 -9.35938 35.3359 curveto
+ -9.83593 38.1836 -7.03906 41.7227 -7.03906 41.7227 curveto
+ -7.28125 42.5273 -5.875 46.6133 -4.42578 49.2695 curveto
+ -2.80859 51.9766 1.80468 51.6914 6.89453 51.8789 curveto
+ 11.4922 52.2305 16.8555 45.4648 17.3398 44.9141 curveto
+ 17.6211 44.4414 15.8359 33.332 15.3086 31.5625 curveto
+ 15.0703 30.0117 15.8906 22.2773 15.8906 22.2773 curveto
+ 7.69531 25.0938 14.6875 24.5195 6.60156 23.4375 curveto
+ closepath
+fill
+
+
+% 104 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -8.19922 34.1758 moveto
+ -8.19922 34.1758 0.703125 31.7969 4.28125 32.4336 curveto
+ 4.28125 32.4336 9.44922 34.4141 12.1172 27.5 curveto
+ 12.1172 27.5 13.4102 25.1563 14.1484 24.5977 curveto
+ 14.6875 23.8828 -8.19922 34.1758 -8.19922 34.1758 curveto
+ closepath
+fill
+
+
+% 105 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -9.35938 35.0469 moveto
+ -9.35938 35.0469 -0.128906 31.0313 3.12109 31.2734 curveto
+ 3.12109 31.2734 8.30078 32.6289 10.957 28.082 curveto
+ 10.957 28.082 13.6641 25.0313 14.7305 24.5977 curveto
+ 14.7305 24.5977 14.8125 24.0078 12.6992 25.1797 curveto
+ 9.50391 23.7266 lineto
+ 9.50391 23.7266 4.72656 20.5586 1.66797 25.7578 curveto
+ 1.66797 25.7578 0.382813 29.2461 0.507813 29.8203 curveto
+ 0.382813 30.5195 -6.38672 32.3086 -7.03906 32.4336 curveto
+ -7.40625 32.5625 -9.51563 33.9063 -9.35938 35.0469 curveto
+ closepath
+fill
+
+
+% 106 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.4 0.2 0.8 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 5.73047 23.4375 moveto
+ 7.94141 23.4609 10.6133 24.6953 10.668 26.6289 curveto
+ 10.6133 28.6836 7.94141 30.6836 5.73047 30.6914 curveto
+ 3.55078 30.6836 1.77344 29.0664 1.66797 27.2109 curveto
+ 1.77344 25.0781 3.55078 23.4609 5.73047 23.4375 curveto
+ closepath
+fill
+
+
+% 107 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.6 0.4 1.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 6.89453 28.6602 moveto
+ 8.44922 28.5586 10.0742 28.0781 10.0859 28.082 curveto
+ 9.5625 29.6211 7.53125 30.6836 5.73047 30.6914 curveto
+ 4.375 30.6836 3.16406 30.0547 2.53906 28.9492 curveto
+ 2.53906 28.9492 4.14844 29.1992 6.89453 28.6602 curveto
+ closepath
+fill
+
+
+% 108 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 3.12109 28.9492 moveto
+ 3.12109 28.9492 4.46875 29.8828 4.57031 29.2422 curveto
+ 4.57031 29.2422 3.32031 27.7734 3.12109 28.9492 curveto
+ closepath
+fill
+
+
+% 109 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 6.3125 26.3398 moveto
+ 7.05469 26.2656 7.70313 26.9141 7.76563 27.7891 curveto
+ 7.70313 28.5117 7.05469 29.1563 6.3125 29.2422 curveto
+ 5.46094 29.1563 4.8125 28.5117 4.86328 27.7891 curveto
+ 4.8125 26.9141 5.46094 26.2656 6.3125 26.3398 curveto
+ closepath
+fill
+
+
+% 110 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.2 0.55 0.85 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 39.3984 30.4023 moveto
+ 39.3984 30.4023 40.4805 37.2891 39.6914 38.8203 curveto
+ 39.6914 38.8203 36.2695 41.8867 36.4961 43.1719 curveto
+ 36.4961 43.1719 36.5234 48.7813 36.7891 48.9766 curveto
+ 37.2891 49.293 39.7148 51.2109 41.7227 49.2695 curveto
+ 41.7227 49.2695 44.9531 43.4219 44.625 41.4297 curveto
+ 44.625 40.8516 lineto
+ 44.625 40.8516 47.1211 40.8672 47.5273 40.2695 curveto
+ 47.5273 40.2695 48.0156 38.5664 48.3984 38.5273 curveto
+ 48.3984 38.5273 49.293 37.6719 48.6875 36.7891 curveto
+ 48.6875 36.7891 49.293 36.0117 49.2695 34.7539 curveto
+ 46.6563 33.5938 lineto
+ 46.6563 33.5938 46.1016 28.8633 42.5938 27.2109 curveto
+ 41.1094 26.457 40.0977 28.6055 39.3984 30.4023 curveto
+ closepath
+fill
+
+
+% 111 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 39.6914 30.9844 moveto
+ 39.6914 30.9844 40.6992 37.1992 39.9805 38.5273 curveto
+ 39.9805 38.5273 36.9063 41.3398 37.0781 42.3008 curveto
+ 37.0781 42.3008 37.1367 47.543 37.3672 47.8164 curveto
+ 37.8242 48.0039 40.0078 49.7266 41.7227 47.8164 curveto
+ 41.7227 47.8164 44.7227 42.7188 44.625 40.8516 curveto
+ 44.625 40.2695 lineto
+ 44.625 40.2695 46.6758 40.418 47.2344 39.9805 curveto
+ 47.2344 39.9805 47.4805 38.3516 47.8164 38.2383 curveto
+ 47.8164 38.2383 48.6289 37.543 48.1055 36.7891 curveto
+ 48.1055 36.7891 48.6289 36.0508 48.3984 35.0469 curveto
+ 46.3672 33.8867 lineto
+ 46.3672 33.8867 45.7578 29.6133 42.5938 28.082 curveto
+ 41.2617 27.4492 40.3555 29.3828 39.6914 30.9844 curveto
+ closepath
+fill
+
+
+% 112 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.075 0.412 0.637 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 37.0781 48.6875 moveto
+ 37.3984 48.9961 39.7891 50.8398 41.7227 48.9766 curveto
+ 41.7227 48.9766 44.8945 43.2422 44.625 41.1406 curveto
+ 44.625 40.5625 lineto
+ 44.625 40.5625 47.0117 40.7539 47.5273 40.2695 curveto
+ 47.5273 40.2695 47.8828 38.5117 48.3984 38.5273 curveto
+ 48.3984 38.5273 49.1289 37.6406 48.3984 36.7891 curveto
+ 48.3984 36.7891 49.1289 36.0234 48.9766 34.7539 curveto
+ 46.6563 33.5938 lineto
+ 46.6563 33.5938 46.0156 29.0508 42.5938 27.5 curveto
+ 41.1484 26.707 40.1641 28.8008 39.3984 30.6914 curveto
+ 39.3984 30.6914 40.5352 37.2656 39.6914 38.5273 curveto
+ 39.6914 38.5273 36.4297 41.75 36.4961 42.8828 curveto
+ 36.4961 42.8828 36.6758 48.4727 37.0781 48.6875 curveto
+ closepath
+fill
+
+
+% 113 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.05 0.275 0.425 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 37.0781 48.3984 moveto
+ 37.5078 48.6992 39.8633 50.4688 41.7227 48.3984 curveto
+ 41.7227 48.3984 44.8359 43.0703 44.625 41.1406 curveto
+ 44.625 40.5625 lineto
+ 44.625 40.5625 46.8984 40.6406 47.5273 39.9805 curveto
+ 47.5273 39.9805 47.75 38.457 48.1055 38.2383 curveto
+ 48.1055 38.2383 48.9609 37.6094 48.3984 36.7891 curveto
+ 48.3984 36.7891 48.9609 36.0313 48.9766 34.7539 curveto
+ 46.6563 33.5938 lineto
+ 46.6563 33.5938 45.9297 29.2383 42.5938 27.7891 curveto
+ 41.1875 26.9531 40.2266 28.9961 39.6914 30.6914 curveto
+ 39.6914 30.6914 40.5898 37.2461 39.9805 38.5273 curveto
+ 39.9805 38.5273 36.5859 41.6133 36.7891 42.5938 curveto
+ 36.7891 42.5938 36.8281 48.1641 37.0781 48.3984 curveto
+ closepath
+fill
+
+
+% 114 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.025 0.137 0.212 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 37.3672 48.1055 moveto
+ 37.6133 48.4023 39.9375 50.0977 41.7227 48.1055 curveto
+ 41.7227 48.1055 44.7773 42.8945 44.625 41.1406 curveto
+ 44.625 40.2695 lineto
+ 44.625 40.2695 46.7852 40.5313 47.2344 39.9805 curveto
+ 47.2344 39.9805 47.6133 38.4023 48.1055 38.2383 curveto
+ 48.1055 38.2383 48.7969 37.5781 48.1055 36.7891 curveto
+ 48.1055 36.7891 48.7969 36.043 48.6875 34.7539 curveto
+ 46.3672 33.5938 lineto
+ 46.3672 33.5938 45.8438 29.4258 42.5938 27.7891 curveto
+ 41.2266 27.2031 40.2891 29.1914 39.6914 30.9844 curveto
+ 39.6914 30.9844 40.6445 37.2227 39.9805 38.5273 curveto
+ 39.9805 38.5273 36.7461 41.4766 36.7891 42.5938 curveto
+ 36.7891 42.5938 36.9844 47.8555 37.3672 48.1055 curveto
+ closepath
+fill
+
+
+% 115 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 39.6914 31.2734 moveto
+ 39.6914 31.2734 40.6992 37.1992 39.9805 38.5273 curveto
+ 39.9805 38.5273 36.9063 41.3398 37.0781 42.3008 curveto
+ 37.0781 42.3008 37.1367 47.543 37.3672 47.8164 curveto
+ 37.7227 48.1055 40.0078 49.7266 41.7227 47.8164 curveto
+ 41.7227 47.8164 44.7227 42.7188 44.625 40.8516 curveto
+ 44.625 40.2695 lineto
+ 44.625 40.2695 46.6758 40.418 47.2344 39.9805 curveto
+ 47.2344 39.9805 47.4805 38.3516 47.8164 38.2383 curveto
+ 47.8164 38.2383 48.6289 37.543 48.1055 36.7891 curveto
+ 48.1055 36.7891 48.6289 36.0508 48.3984 35.0469 curveto
+ 46.3672 33.8867 lineto
+ 46.3672 33.8867 45.7578 29.6133 42.5938 28.082 curveto
+ 41.2617 27.4492 40.3555 29.418 39.6914 31.2734 curveto
+ closepath
+fill
+
+
+% 116 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ 40.8516 33.0156 moveto
+ 40.8516 33.0156 47.6641 36.3945 47.8164 36.7891 curveto
+ 47.8164 36.7891 45.0469 34.0352 44.9141 34.1758 curveto
+ 44.5352 34.0352 40.8516 33.0156 40.8516 33.0156 curveto
+ closepath
+fill
+
+
+% 117 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 46.3672 35.0469 moveto
+ 46.3672 35.0469 40.3555 33.9688 40.2695 32.4336 curveto
+ 40.3555 31.6328 40.4336 27.3516 42.0117 27.7891 curveto
+ 44.8242 28.6055 43.6758 33.2031 46.3672 35.0469 curveto
+ closepath
+fill
+
+
+% 118 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.4 0.2 0.8 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 43.4648 33.8867 moveto
+ 43.4648 33.8867 40.6797 33.4336 40.2695 32.4336 curveto
+ 40.1641 32.0547 39.9531 29.4023 41.7227 28.9492 curveto
+ 43.1484 28.7617 43.8594 32.0234 43.4648 33.8867 curveto
+ closepath
+fill
+
+
+% 119 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 16.1797 20.2422 moveto
+ 16.25 20.8789 15.832 20.8359 15.3086 21.1133 curveto
+ 14.6211 21.1992 10.7266 22.4102 10.375 23.1445 curveto
+ 10.2148 24.0742 6.02344 22.5664 6.02344 22.5664 curveto
+ 5.42578 22.4102 3.99219 21.6953 3.99219 21.6953 curveto
+ 2.48828 21.1992 0.507813 21.1133 0.507813 21.1133 curveto
+ -0.382813 20.75 -1.52344 19.9531 -1.52344 19.9531 curveto
+ -6.12891 16.6016 -10.2305 18.793 -10.2305 18.793 curveto
+ -16.4727 21.0078 -14.5859 26.6289 -14.5859 26.6289 curveto
+ -13.6016 29.3711 -14.5859 30.4023 -14.5859 30.4023 curveto
+ -14.6875 31.6719 -16.9063 29.5313 -16.9063 29.5313 curveto
+ -17.8164 28.2852 -18.0664 26.6289 -18.0664 26.6289 curveto
+ -20.625 23.1133 -19.5195 28.6602 -19.5195 28.6602 curveto
+ -19.6016 29.1172 -18.707 30.2656 -18.6484 30.6914 curveto
+ -18.707 31.0313 -18.0664 32.1445 -18.0664 32.1445 curveto
+ -17.1758 33.2031 -18.0664 35.3359 -18.0664 35.3359 curveto
+ -18.5156 39.8438 -17.7773 39.3984 -17.7773 39.3984 curveto
+ -17.4336 39.8438 -14.5859 36.7891 -14.5859 36.7891 curveto
+ -13.793 35.5664 -11.9727 35.0469 -11.9727 35.0469 curveto
+ -10.9844 34.4805 -9.94141 35.0469 -9.94141 35.0469 curveto
+ -9.06641 35.0547 -7.32813 32.7227 -7.32813 32.7227 curveto
+ -8.17188 32.8828 -8.94141 31.4805 -9.64844 31.2734 curveto
+ -10.4727 31.3516 -11.0469 32.1797 -11.6836 32.4336 curveto
+ -12.0703 32.5625 -12.8438 30.6914 -12.8438 30.6914 curveto
+ -13.0898 29.8828 -11.3906 28.3711 -11.3906 28.3711 curveto
+ -11.1758 26.8828 -10.5195 27.5 -10.5195 27.5 curveto
+ -9.70703 27.582 -9.32421 26.3711 -9.07031 24.8867 curveto
+ -8.68359 23.4336 -7.32813 23.4375 -7.32813 23.4375 curveto
+ -6.83203 20.9453 -6.45703 21.9844 -6.45703 21.9844 curveto
+ -6.38672 23.6875 -4.42578 21.6953 -4.42578 21.6953 curveto
+ -4.08594 21.1992 -2.68359 21.9844 -2.68359 21.9844 curveto
+ -0.445313 22.5391 -1.23438 23.1445 -1.23438 23.1445 curveto
+ -1.78906 23.8828 -5.29688 23.1445 -5.29688 23.1445 curveto
+ -6.06641 23.6875 -3.55468 24.8867 -3.55468 24.8867 curveto
+ -3.32031 25.5391 -3.55468 26.918 -3.55468 26.918 curveto
+ -4.02344 27.9688 -6.16797 29.8203 -6.16797 29.8203 curveto
+ -9.19531 30.1367 -8.19922 30.6914 -8.19922 30.6914 curveto
+ -6.32031 32.3086 -4.42578 29.8203 -4.42578 29.8203 curveto
+ -3.76563 27.9023 1.66797 23.1445 1.66797 23.1445 curveto
+ 3.32031 22.0273 2.48828 24.1992 3.69922 23.1445 curveto
+ 5.04297 22.0273 11.5352 24.8867 11.5352 24.8867 curveto
+ 15.3125 25.2852 16.1836 20.2578 17.3398 21.1133 curveto
+ 17.3398 21.1133 15.582 18.5313 16.1797 20.2422 curveto
+ closepath
+fill
+
+
+% 120 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -46.2187 73.3555 moveto
+ -46.2187 73.3555 -37.9297 70.875 -36.9336 64.9414 curveto
+ -36.9336 64.9414 -36.2695 57.5938 -42.7383 51.8789 curveto
+ -42.7383 51.8789 -42.9102 49.9336 -43.6094 48.9766 curveto
+ -43.6094 48.9766 -43.0352 47.3789 -49.1211 49.8477 curveto
+ -57.8281 52.4609 lineto
+ -57.8281 52.4609 -59.7656 53.2539 -61.3125 55.9414 curveto
+ -63.0859 58.8711 -67.9375 64.875 -66.8281 72.7773 curveto
+ -66.8281 72.7773 -67.1719 76.4961 -65.375 76.5508 curveto
+ -65.375 76.5508 -62.5742 77.1328 -60.1523 74.8086 curveto
+ -60.1523 74.8086 -58.1055 73.6836 -57.25 73.9375 curveto
+ -46.2187 73.3555 lineto
+ closepath
+fill
+
+
+% 121 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -63.6328 73.6484 moveto
+ -63.6328 73.6484 -64.2109 76.5977 -62.7656 75.0977 curveto
+ -62.7656 75.0977 -60.418 73.2266 -58.1211 73.3555 curveto
+ -58.1211 73.3555 -53.3945 72.5234 -52.0234 68.4219 curveto
+ -52.0234 68.4219 -50.7266 59.7383 -53.1875 57.9766 curveto
+ -53.1875 57.9766 -54.7969 55.5273 -56.957 57.6836 curveto
+ -59.293 59.7383 -64.2422 69.3906 -63.6328 73.6484 curveto
+ closepath
+fill
+
+
+% 122 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 0.8 setcmykcolor
+() p2esetcolorname
+newpath
+ -63.3438 73.6484 moveto
+ -63.3438 73.6484 -64.0898 76.4219 -62.4727 74.8086 curveto
+ -62.4727 74.8086 -60.3633 73.1133 -58.1211 73.0664 curveto
+ -58.1211 73.0664 -53.4687 72.4219 -52.0234 68.4219 curveto
+ -52.0234 68.4219 -50.8477 59.8711 -53.1875 57.9766 curveto
+ -53.1875 57.9766 -54.8477 55.7344 -56.957 57.6836 curveto
+ -59.2617 59.8711 -64.1094 69.3555 -63.3438 73.6484 curveto
+ closepath
+fill
+
+
+% 123 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 0.6 setcmykcolor
+() p2esetcolorname
+newpath
+ -63.3438 73.6484 moveto
+ -63.3438 73.6484 -63.9648 76.25 -62.4727 74.8086 curveto
+ -62.4727 74.8086 -60.3086 73.0 -58.1211 73.0664 curveto
+ -58.1211 73.0664 -53.543 72.3242 -52.3164 68.1328 curveto
+ -52.3164 68.1328 -50.9688 60.0039 -53.4766 58.2656 curveto
+ -53.4766 58.2656 -54.8945 55.9453 -56.957 57.9766 curveto
+ -59.2266 60.0039 -63.9766 69.3203 -63.3438 73.6484 curveto
+ closepath
+fill
+
+
+% 124 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 0.4 setcmykcolor
+() p2esetcolorname
+newpath
+ -63.0547 73.3555 moveto
+ -63.0547 73.3555 -63.8437 76.0742 -62.4727 74.5195 curveto
+ -62.4727 74.5195 -60.2578 72.8867 -58.1211 72.7773 curveto
+ -58.1211 72.7773 -53.6172 72.2266 -52.3164 68.1328 curveto
+ -52.3164 68.1328 -51.0937 60.1367 -53.4766 58.5547 curveto
+ -53.4766 58.5547 -54.9453 56.1523 -56.957 58.2656 curveto
+ -59.1953 60.1367 -63.8437 69.2852 -63.0547 73.3555 curveto
+ closepath
+fill
+
+
+% 125 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -63.0547 73.3555 moveto
+ -63.0547 73.3555 -63.7188 75.9023 -62.1836 74.5195 curveto
+ -62.1836 74.5195 -60.2031 72.7773 -58.1211 72.7773 curveto
+ -58.1211 72.7773 -53.6875 72.125 -52.3164 68.1328 curveto
+ -52.3164 68.1328 -51.2148 60.2734 -53.4766 58.5547 curveto
+ -53.4766 58.5547 -54.9922 56.3633 -56.957 58.2656 curveto
+ -59.1602 60.2734 -63.7148 69.25 -63.0547 73.3555 curveto
+ closepath
+fill
+
+
+% 126 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -63.0547 73.0664 moveto
+ -63.0547 73.0664 -63.5977 75.7305 -62.1836 74.2266 curveto
+ -62.1836 74.2266 -60.1484 72.6641 -58.1211 72.7773 curveto
+ -58.1211 72.7773 -53.7656 72.0234 -52.6055 68.1328 curveto
+ -52.6055 68.1328 -51.3398 60.4063 -53.7656 58.8438 curveto
+ -53.7656 58.8438 -55.0391 56.5742 -56.957 58.5547 curveto
+ -59.1289 60.4063 -63.582 69.2148 -63.0547 73.0664 curveto
+ closepath
+fill
+
+
+% 127 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.4 0.85 1.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 4.57031 8.34375 moveto
+ 4.57031 8.34375 11.1094 14.4297 13.5703 14.7305 curveto
+ 13.5703 14.7305 24.6484 15.9648 29.2422 10.0859 curveto
+ 29.2422 10.0859 23.7539 16.7305 15.0195 15.0195 curveto
+ 15.0195 15.0195 21.8359 16.3477 25.7578 15.3086 curveto
+ 25.7578 15.3086 31.1602 15.3242 34.1758 10.957 curveto
+ 35.0469 9.21484 lineto
+ 35.0469 9.21484 33.8438 14.0469 28.082 15.8906 curveto
+ 28.082 15.8906 20.6875 17.4961 17.3398 15.8906 curveto
+ 17.3398 15.8906 24.1367 18.1328 27.2109 17.6328 curveto
+ 27.2109 17.6328 37.0352 18.2617 41.1406 9.79688 curveto
+ 41.1406 9.79688 39.8438 14.4297 35.0469 16.7617 curveto
+ 35.0469 16.7617 30.7773 19.5391 24.3086 18.5039 curveto
+ 24.3086 18.5039 19.668 17.6211 17.9219 16.7617 curveto
+ 16.3477 16.0898 16.7305 16.9844 19.375 18.5039 curveto
+ 19.375 18.5039 21.1992 21.7109 25.7578 21.6953 curveto
+ 25.7578 21.6953 39.332 20.4336 42.5938 16.4727 curveto
+ 42.5938 16.4727 38.3125 20.1758 35.0469 21.1133 curveto
+ 35.0469 21.1133 27.8398 23.625 25.1797 23.4375 curveto
+ 25.1797 23.4375 17.2383 23.0508 14.7305 24.3086 curveto
+ 14.7305 24.3086 18.3906 22.7305 17.3398 21.6953 curveto
+ 16.3477 20.6875 14.1758 18.2617 14.1484 17.9219 curveto
+ 14.1758 17.4961 6.44922 10.4414 5.44141 8.92578 curveto
+ 4.57031 8.34375 lineto
+ closepath
+fill
+
+
+% 128 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -39.543 -53.7656 moveto
+ -39.543 -53.7656 -34.6406 -41.9805 -30.5469 -38.9648 curveto
+ -30.5469 -38.9648 -38.9492 -44.0586 -40.125 -49.7031 curveto
+ -40.125 -49.7031 -40.0664 -52.9961 -39.543 -53.7656 curveto
+ closepath
+fill
+
+
+% 129 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -54.6367 -56.0898 moveto
+ -54.6367 -56.0898 -46.1328 -38.4727 -40.125 -30.8359 curveto
+ -40.125 -30.8359 -54.1133 -42.7813 -55.7969 -51.1523 curveto
+ -55.7969 -52.8945 lineto
+ -54.9258 -52.3164 lineto
+ -54.9258 -52.3164 -54.7539 -55.0742 -54.6367 -56.0898 curveto
+ closepath
+fill
+
+
+% 130 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -72.6328 -40.4141 moveto
+ -72.6328 -40.4141 -52.6797 -21.5508 -52.3164 -20.6797 curveto
+ -52.3164 -20.6797 -71.5156 -41.8242 -72.3398 -44.1875 curveto
+ -72.3398 -44.1875 -71.832 -41.3438 -72.6328 -40.4141 curveto
+ closepath
+fill
+
+
+% 131 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -12.5547 -54.3477 moveto
+ -12.5547 -54.3477 -18.6758 -37.832 -24.7422 -45.0586 curveto
+ -24.7422 -45.0586 -29.5313 -48.207 -29.3867 -49.1211 curveto
+ -29.3867 -49.1211 -28.0938 -47.0898 -22.4219 -47.3828 curveto
+ -22.4219 -47.3828 -16.2813 -46.293 -12.5547 -54.3477 curveto
+ closepath
+fill
+
+
+% 132 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -73.2109 -13.7148 moveto
+ -73.2109 -13.7148 -58.9023 -4.62891 -56.3789 -4.13672 curveto
+ -52.7383 -3.39844 -72.3125 -13.4102 -73.793 -16.9063 curveto
+ -73.793 -16.9063 -74.5469 -15.9648 -73.2109 -13.7148 curveto
+ closepath
+fill
+
+
+% 133 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -25.0313 -47.6719 moveto
+ -25.0313 -47.6719 -31.6719 -47.1211 -33.7383 -45.0586 curveto
+ -35.1914 -46.2188 lineto
+ -40.9961 -33.7383 lineto
+ -42.1562 -35.4805 lineto
+ -42.1562 -35.4805 -46.6133 -30.7773 -46.2187 -28.2266 curveto
+ -46.1016 -25.668 -50.5742 -30.2578 -50.5742 -30.2578 curveto
+ -50.5742 -30.2578 -50.1875 -26.4336 -52.6055 -28.5156 curveto
+ -52.6055 -28.5156 -51.7188 -23.625 -54.3477 -26.1953 curveto
+ -54.3477 -26.1953 -51.0391 -16.5508 -58.1211 -24.7422 curveto
+ -60.0195 -26.8203 -58.6992 -24.7422 -58.6992 -24.7422 curveto
+ -58.6992 -24.7422 -50.3164 -9.32422 -57.25 -14.0039 curveto
+ -57.25 -14.0039 -57.8516 -6.64063 -57.5391 -5.29688 curveto
+ -57.082 -3.83203 -56.4453 3.32031 -54.9258 4.86328 curveto
+ -53.3828 6.64063 -55.0391 7.15234 -56.957 5.44141 curveto
+ -56.957 5.44141 -53.2539 13.1523 -57.5391 9.21484 curveto
+ -57.5391 9.21484 -56.3203 14.1758 -54.9258 15.0195 curveto
+ -54.9258 15.0195 -53.125 20.5586 -58.1211 17.0508 curveto
+ -58.1211 17.0508 -56.5742 21.0703 -55.5078 21.9844 curveto
+ -55.5078 21.9844 -51.8477 30.9063 -54.0547 29.2422 curveto
+ -55.5078 28.082 lineto
+ -55.5078 28.082 -53.3828 32.6914 -55.5078 31.2734 curveto
+ -57.4688 29.8828 -57.5391 30.1133 -57.5391 30.1133 curveto
+ -57.5391 30.1133 -50.6992 40.6094 -57.25 35.0469 curveto
+ -57.25 35.0469 -54.6055 39.4336 -53.4766 41.7227 curveto
+ -53.4766 41.7227 -47.5078 48.1445 -52.0234 46.0742 curveto
+ -53.7656 45.4961 lineto
+ -53.7656 45.4961 -50.8281 48.7813 -48.25 49.2695 curveto
+ -45.7188 49.8047 -49.0391 51.8477 -51.1523 51.3008 curveto
+ -53.125 50.5703 -58.1211 48.1055 -58.1211 48.1055 curveto
+ -58.1211 48.1055 -62.1914 42.1406 -63.3438 42.0117 curveto
+ -63.3438 42.0117 -57.082 44.4414 -58.9922 42.0117 curveto
+ -58.9922 42.0117 -63.5977 37.418 -61.3125 37.6602 curveto
+ -61.3125 37.6602 -59.3828 35.2461 -61.0234 32.4336 curveto
+ -61.0234 32.4336 -55.0195 38.3086 -59.8594 30.1133 curveto
+ -61.8945 24.8867 lineto
+ -61.8945 24.8867 -54.1484 32.8203 -57.8281 25.7578 curveto
+ -57.8281 25.7578 -63.2148 18.2617 -63.9258 18.2109 curveto
+ -64.4922 18.0078 -65.957 15.3086 -65.957 15.3086 curveto
+ -64.5039 15.8906 lineto
+ -66.2461 12.9883 lineto
+ -66.2461 12.9883 -62.5742 16.8555 -64.5039 12.6992 curveto
+ -66.2461 8.05469 lineto
+ -66.2461 8.05469 -59.7656 15.0703 -64.2148 5.73047 curveto
+ -64.2148 5.73047 -58.8711 7.27734 -61.6016 1.66797 curveto
+ -61.6016 1.66797 -61.1719 -3.32031 -61.3125 -5.00781 curveto
+ -61.4258 -6.64063 -61.8086 -15.707 -60.4414 -18.3594 curveto
+ -59.0 -20.8164 -62.3203 -26.9453 -63.0547 -28.2266 curveto
+ -63.5977 -29.5 -64.7461 -32.9492 -61.8945 -29.9688 curveto
+ -59.1289 -27.0742 -60.5312 -28.8633 -61.3125 -31.707 curveto
+ -61.8086 -34.4805 -63.7266 -39.4609 -63.3438 -41.2852 curveto
+ -63.3438 -41.2852 -63.0859 -41.6328 -62.1836 -40.4141 curveto
+ -62.1836 -40.4141 -57.3398 -33.2031 -57.8281 -37.8047 curveto
+ -57.8281 -37.8047 -57.4688 -40.3555 -56.3789 -43.0273 curveto
+ -56.3789 -43.0273 -55.4258 -46.6133 -55.5078 -43.8984 curveto
+ -55.5078 -43.8984 -54.4023 -38.4375 -53.4766 -40.9961 curveto
+ -52.6133 -43.293 -51.4648 -45.207 -50.5742 -45.9297 curveto
+ -49.6758 -46.7422 -48.0156 -39.4609 -47.6719 -42.7383 curveto
+ -47.6719 -42.7383 -43.8047 -38.8242 -42.1562 -44.1875 curveto
+ -38.6758 -49.4141 lineto
+ -38.6758 -49.4141 -38.4375 -45.3359 -38.0937 -47.3828 curveto
+ -38.0937 -47.3828 -28.4766 -49.168 -25.0313 -47.6719 curveto
+ closepath
+fill
+
+
+% 134 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -14.293 66.1016 moveto
+ -14.293 66.1016 -10.4727 68.7031 -9.07031 68.7148 curveto
+ -7.91797 68.4492 -18.0078 71.3867 -31.1289 62.6172 curveto
+ -31.1289 62.6172 -32.6914 61.6797 -33.7383 61.7461 curveto
+ -33.7383 61.7461 -34.8633 61.043 -34.0312 60.0078 curveto
+ -34.0312 60.0078 -31.1602 56.8281 -34.6094 53.332 curveto
+ -34.6094 53.332 -40.6094 51.082 -38.9648 53.9102 curveto
+ -38.9648 53.9102 -42.2695 52.6133 -43.0273 51.3008 curveto
+ -43.8047 50.0586 -43.3164 51.3008 -43.3164 51.3008 curveto
+ -43.3164 51.3008 -41.3789 53.6367 -39.543 55.3633 curveto
+ -39.543 55.3633 -37.8008 55.9336 -36.9336 58.5547 curveto
+ -36.0117 61.2969 -35.2461 64.4922 -36.6406 65.5195 curveto
+ -36.6406 65.5195 -35.375 64.1055 -35.7734 65.5195 curveto
+ -35.8867 66.6602 -37.0352 67.8125 -37.5117 67.8438 curveto
+ -38.0547 68.0664 -43.293 73.1094 -45.3477 73.3555 curveto
+ -45.3477 73.3555 -42.5273 72.793 -41.5781 73.0664 curveto
+ -40.6094 73.4297 -32.1172 77.0703 -30.2578 77.4219 curveto
+ -30.2578 77.4219 -24.8398 79.5586 -28.8047 78.8711 curveto
+ -28.8047 78.8711 -40.0977 77.707 -45.9297 73.3555 curveto
+ -45.9297 73.3555 -43.6133 76.1758 -37.8047 78.293 curveto
+ -37.8047 78.293 -30.6484 82.4336 -19.5195 80.9023 curveto
+ -19.5195 80.9023 -13.7266 79.8164 -11.1016 79.1602 curveto
+ -11.1016 79.1602 -10.4063 79.4336 -10.2305 79.4531 curveto
+ -10.0273 79.6875 -6.25781 82.5625 2.53906 80.3242 curveto
+ 2.53906 80.3242 7.98047 78.8555 10.668 77.4219 curveto
+ 10.668 77.4219 15.5781 76.9414 16.7617 75.9688 curveto
+ 16.7617 75.9688 22.668 71.2578 23.4375 71.0352 curveto
+ 23.9453 70.75 27.582 68.3203 27.7891 68.1328 curveto
+ 27.7891 68.1328 19.9844 70.3008 19.082 71.0352 curveto
+ 18.4531 71.832 12.8984 72.6641 12.1172 72.1953 curveto
+ 11.3672 71.7695 8.68359 71.9609 11.8281 71.9063 curveto
+ 11.8281 71.9063 -12.3867 67.043 -12.5547 66.3906 curveto
+ -12.8984 65.7695 -14.293 66.1016 -14.293 66.1016 curveto
+ closepath
+fill
+
+
+% 135 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.2 0.55 0.85 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -36.9336 69.0039 moveto
+ -36.9336 69.0039 -33.7148 71.4492 -33.1602 71.3242 curveto
+ -32.4375 71.4492 -28.4766 74.707 -27.0664 74.5195 curveto
+ -25.7969 74.4531 -21.9023 77.6445 -13.1328 75.0977 curveto
+ -13.1328 75.0977 -12.9609 75.6641 -14.0039 75.9688 curveto
+ -14.0039 75.9688 -16.1563 76.6211 -16.3242 76.8398 curveto
+ -16.3242 76.8398 -22.7305 78.1563 -25.0313 77.1289 curveto
+ -25.0313 77.1289 -27.9688 76.1758 -29.9687 74.2266 curveto
+ -29.9687 74.2266 -33.5234 73.1758 -34.6094 73.3555 curveto
+ -34.6094 73.3555 -37.3516 72.793 -37.5117 72.1953 curveto
+ -37.5117 72.1953 -39.332 71.2578 -38.6758 70.4531 curveto
+ -38.6758 70.4531 -38.8867 69.918 -36.9336 69.0039 curveto
+ closepath
+fill
+
+
+% 136 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.2 0.55 0.85 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -32.8711 69.875 moveto
+ -33.2461 69.5586 -33.5703 69.5273 -33.7383 69.293 curveto
+ -33.8398 69.168 -33.7461 69.0664 -33.7383 69.0039 curveto
+ -33.3125 68.9336 -32.9766 69.1133 -32.5781 69.0039 curveto
+ -32.4844 68.8633 -32.2773 68.918 -32.0 69.0039 curveto
+ -31.582 69.1094 -30.9961 69.1172 -30.5469 69.0039 curveto
+ -29.8242 69.2578 -29.0703 69.0703 -28.5156 69.293 curveto
+ -28.3867 69.3984 -28.3164 69.2891 -28.2266 69.293 curveto
+ -27.3203 69.6641 -26.125 69.5703 -25.3242 70.1641 curveto
+ -24.5742 70.4336 -23.8203 70.5781 -23.0 70.7461 curveto
+ -22.4648 70.9609 -22.0156 71.2773 -21.5508 71.6172 curveto
+ -21.0586 71.7656 -20.5938 71.9336 -20.0977 72.1953 curveto
+ -19.5117 72.1953 -18.9258 72.1602 -18.3594 72.1953 curveto
+ -18.293 72.3359 -18.2305 72.2266 -18.0664 72.1953 curveto
+ -18.1016 72.2695 -18.0078 72.4531 -18.0664 72.4883 curveto
+ -17.418 72.2695 -16.9414 72.582 -16.3242 72.4883 curveto
+ -16.0352 72.8633 -15.4805 72.7852 -14.875 73.0664 curveto
+ -14.043 73.1953 -13.0352 72.793 -11.9727 73.0664 curveto
+ -13.3828 73.6992 -14.8789 73.3047 -16.0352 73.9375 curveto
+ -16.918 74.3438 -17.7695 73.9922 -18.6484 74.2266 curveto
+ -18.7422 74.2813 -18.9648 74.3477 -19.2266 74.2266 curveto
+ -19.1367 74.1758 -19.1914 74.25 -19.2266 74.2266 curveto
+ -19.9922 73.875 -20.7344 73.4648 -21.5508 73.0664 curveto
+ -21.6328 73.0781 -21.8047 73.1523 -21.8398 73.0664 curveto
+ -22.3711 72.6992 -22.9883 72.7344 -23.293 72.4883 curveto
+ -23.9766 72.5039 -24.5469 72.3828 -25.0313 72.4883 curveto
+ -25.125 72.5898 -25.1992 72.4805 -25.3242 72.4883 curveto
+ -25.5703 72.7266 -25.9414 72.6406 -26.1953 72.4883 curveto
+ -26.332 72.5078 -26.543 72.4297 -26.7734 72.4883 curveto
+ -27.0 72.3164 -27.2734 72.1641 -27.6445 72.1953 curveto
+ -27.6875 72.1016 -27.7461 72.207 -27.6445 72.1953 curveto
+ -28.1289 72.0586 -28.4609 72.0781 -28.8047 71.6172 curveto
+ -28.7148 71.75 -28.7656 71.8242 -28.8047 71.9063 curveto
+ -29.1211 71.707 -29.3281 71.4688 -29.6758 71.3242 curveto
+ -29.832 71.3555 -30.0273 71.1563 -30.2578 71.0352 curveto
+ -30.9766 70.8672 -31.5625 70.3789 -32.2891 70.1641 curveto
+ -32.5078 69.9961 -32.7852 69.918 -32.8711 69.875 curveto
+ closepath
+fill
+
+
+% 137 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.2 0.55 0.85 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -8.48828 74.2266 moveto
+ -7.71875 74.8555 -6.96484 75.207 -6.16797 75.6797 curveto
+ -6.125 75.8203 -6.01172 75.7656 -5.87891 75.6797 curveto
+ -5.625 76.0 -5.33984 76.1836 -5.00781 76.5508 curveto
+ -4.85547 76.5313 -4.59375 76.5273 -4.42578 76.5508 curveto
+ -3.61719 77.0195 -2.78125 77.1992 -2.10547 77.7109 curveto
+ -2.19531 77.7852 -2.55469 77.707 -2.68359 78.0 curveto
+ -2.80859 77.875 -2.88281 77.7852 -2.97656 77.7109 curveto
+ -3.53125 78.1328 -4.125 78.1797 -4.71484 78.293 curveto
+ -5.20313 78.125 -5.75 78.0273 -6.45703 78.0 curveto
+ -6.41406 77.9258 -6.48047 77.7578 -6.45703 77.7109 curveto
+ -7.29297 77.5156 -8.05469 77.6836 -8.78125 77.4219 curveto
+ -9.24219 77.2148 -9.74219 76.9531 -10.2305 76.5508 curveto
+ -10.2188 76.4609 -10.1133 76.3633 -9.94141 76.2578 curveto
+ -10.1484 76.3398 -10.2383 76.2734 -10.2305 76.2578 curveto
+ -10.2969 76.0977 -10.2969 76.0 -10.2305 75.9688 curveto
+ -10.2344 75.8242 -10.1484 75.793 -9.94141 75.6797 curveto
+ -9.57813 75.7148 -10.1445 76.1563 -9.94141 75.9688 curveto
+ -9.51563 75.75 -9.75391 75.3047 -9.64844 74.8086 curveto
+ -9.42578 74.9609 -9.35156 75.0313 -9.35938 75.0977 curveto
+ -9.46094 74.9883 -9.26953 74.8945 -9.35938 74.8086 curveto
+ -9.09375 74.5625 -8.80469 74.1094 -8.48828 74.2266 curveto
+ closepath
+fill
+
+
+% 138 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.2 0.55 0.85 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 1.96094 71.9063 moveto
+ 2.85938 72.2109 3.83203 72.1758 4.86328 72.4883 curveto
+ 4.81641 72.5938 4.89063 72.4805 4.86328 72.4883 curveto
+ 5.34375 72.6797 5.63672 72.9883 6.02344 73.3555 curveto
+ 6.27344 73.6055 6.80078 73.4805 7.18359 73.6484 curveto
+ 7.3125 73.6758 7.37891 73.8398 7.47266 73.9375 curveto
+ 7.86328 73.9023 8.16016 74.207 8.63281 74.5195 curveto
+ 7.74609 74.6406 6.97656 74.6328 6.3125 74.8086 curveto
+ 6.15625 74.7578 6.10938 74.6563 6.02344 74.5195 curveto
+ 6.02344 74.6563 5.98047 74.7266 6.02344 74.8086 curveto
+ 5.875 74.6836 5.78125 74.5781 5.73047 74.5195 curveto
+ 5.52344 74.832 5.34375 74.7695 5.15234 74.8086 curveto
+ 5.125 74.7539 5.08594 74.6563 5.15234 74.5195 curveto
+ 5.0 74.6563 4.96094 74.7578 4.86328 74.8086 curveto
+ 4.87109 74.7578 4.83203 74.6563 4.86328 74.5195 curveto
+ 4.74609 74.6563 4.70313 74.7266 4.57031 74.8086 curveto
+ 4.44141 74.5234 4.15625 74.6992 3.99219 74.5195 curveto
+ 3.5625 74.5664 3.47656 74.2031 3.12109 74.2266 curveto
+ 1.62891 73.6914 0.308594 73.0039 -0.941406 72.1953 curveto
+ -1.17969 72.293 -1.25 72.2148 -1.23438 72.1953 curveto
+ -1.29688 72.0898 -1.39844 72.1172 -1.52344 72.1953 curveto
+ -1.79688 71.8398 -2.12891 71.6641 -2.39453 71.3242 curveto
+ -2.42188 71.207 -2.31641 71.0781 -2.10547 71.0352 curveto
+ -0.828129 71.4102 0.453125 71.6055 1.96094 71.9063 curveto
+ closepath
+fill
+
+
+% 139 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.2 0.55 0.85 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 6.3125 57.9766 moveto
+ 6.78516 58.2305 6.97266 58.8789 7.47266 59.4258 curveto
+ 7.39844 59.5625 7.3125 59.6602 7.18359 59.7148 curveto
+ 7.03125 59.7422 6.85938 59.5898 6.60156 59.4258 curveto
+ 6.17188 59.25 5.68359 58.8516 5.15234 58.8438 curveto
+ 4.41016 58.0938 3.04688 57.9727 3.12109 56.8125 curveto
+ 3.04688 56.6172 3.50391 56.9102 3.69922 56.5234 curveto
+ 4.42188 56.957 5.18359 56.9258 6.02344 57.3945 curveto
+ 6.14063 57.5156 6.03516 57.6602 6.3125 57.9766 curveto
+ closepath
+fill
+
+
+% 140 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.2 0.55 0.85 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 15.0195 74.5195 moveto
+ 15.0273 74.6289 12.7813 74.5547 12.6992 74.5195 curveto
+ 12.8008 74.418 15.2695 74.0859 15.3086 74.2266 curveto
+ 15.4375 74.1641 17.8359 73.3867 17.9219 73.3555 curveto
+ 17.793 73.4727 15.1523 74.6289 15.0195 74.5195 curveto
+ closepath
+fill
+
+
+% 141 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 10.0859 71.6172 moveto
+ 10.0859 71.6172 14.8789 70.9414 16.1797 70.4531 curveto
+ 17.6875 70.1719 23.625 67.7461 24.5977 66.9727 curveto
+ 24.5977 66.9727 28.8633 65.3867 34.1758 59.1367 curveto
+ 34.1758 59.1367 31.8633 60.0859 31.2734 60.8789 curveto
+ 31.2734 60.8789 26.8164 65.0 26.918 64.0703 curveto
+ 26.918 64.0703 22.9883 66.918 23.1445 66.1016 curveto
+ 23.1445 66.1016 15.3867 69.7891 15.8906 68.7148 curveto
+ 15.8906 68.7148 9.13281 70.2383 9.50391 69.5859 curveto
+ 9.50391 69.5859 3.44922 68.1953 4.28125 68.1328 curveto
+ 4.28125 68.1328 6.19531 67.7461 4.28125 66.6836 curveto
+ 4.28125 66.6836 5.23438 65.1914 6.89453 66.3906 curveto
+ 8.68359 67.7461 7.72656 67.043 9.21484 66.6836 curveto
+ 9.21484 66.6836 10.1523 66.4688 11.5352 67.8438 curveto
+ 11.5352 67.8438 13.4102 69.2148 16.1797 68.1328 curveto
+ 16.1797 68.1328 25.9883 64.043 26.6289 63.7813 curveto
+ 26.6289 63.7813 27.7773 62.957 28.6602 61.7461 curveto
+ 28.6602 61.7461 30.3945 60.4063 31.2734 60.0078 curveto
+ 31.2734 60.0078 35.4375 56.2539 35.918 55.9414 curveto
+ 35.918 55.9414 36.9063 54.1445 37.0781 53.9102 curveto
+ 37.0781 53.9102 35.1172 55.2305 34.4648 55.9414 curveto
+ 34.4648 55.9414 30.0117 59.0625 28.3711 59.4258 curveto
+ 28.3711 59.4258 26.8828 60.2773 26.6289 60.5859 curveto
+ 26.6289 60.5859 22.0273 63.6602 20.8242 63.7813 curveto
+ 20.8242 63.7813 17.75 62.0 17.0508 64.3594 curveto
+ 17.0508 64.3594 15.1328 64.8086 13.2773 64.3594 curveto
+ 13.2773 64.3594 12.3242 65.2578 12.6992 66.1016 curveto
+ 12.6992 66.1016 12.0664 66.5352 11.8281 65.2305 curveto
+ 11.8281 65.2305 10.6641 64.1719 9.21484 64.9414 curveto
+ 9.21484 64.9414 7.85547 64.875 8.63281 64.0703 curveto
+ 8.63281 64.0703 9.89844 62.8945 13.5703 62.9102 curveto
+ 13.5703 62.9102 17.6211 62.6406 22.8555 60.2969 curveto
+ 22.8555 60.2969 32.3711 56.8906 35.3359 53.6211 curveto
+ 35.3359 53.6211 37.3516 50.7617 39.1094 50.4297 curveto
+ 39.1094 50.4297 40.9297 50.125 42.8828 47.8164 curveto
+ 42.8828 47.8164 39.7148 49.6133 36.7891 49.5586 curveto
+ 36.7891 49.5586 35.5664 50.3789 36.7891 49.2695 curveto
+ 36.7891 49.2695 37.9297 46.8047 37.3672 45.2031 curveto
+ 37.3672 45.2031 37.6094 43.4219 37.9492 42.8828 curveto
+ 37.9492 42.8828 40.3555 38.8242 40.2695 37.9492 curveto
+ 40.3555 37.2891 39.9727 34.1602 39.9805 33.8867 curveto
+ 39.7148 33.7773 40.1641 34.4805 38.8203 33.5938 curveto
+ 37.7383 32.9492 36.8438 32.4375 36.4961 31.5625 curveto
+ 36.332 30.6484 37.2266 33.2656 37.3672 33.8867 curveto
+ 37.3516 34.4141 38.6953 36.7148 38.5273 37.3672 curveto
+ 38.5273 37.3672 38.1211 37.1602 37.9492 36.7891 curveto
+ 37.9492 36.7891 38.0547 36.9063 37.9492 37.9492 curveto
+ 37.9492 37.9492 37.6094 39.7148 37.0781 40.8516 curveto
+ 36.7148 41.7578 36.0781 42.9727 35.918 43.1719 curveto
+ 35.8203 43.4844 35.8203 45.3359 35.3359 44.625 curveto
+ 34.1758 43.7539 lineto
+ 34.1758 43.7539 35.1836 44.5039 34.4648 45.2031 curveto
+ 34.4648 45.2031 34.8008 46.9961 34.1758 47.8164 curveto
+ 34.1758 47.8164 31.9883 50.5078 31.5625 50.7188 curveto
+ 30.9688 51.1445 31.2734 51.0078 31.2734 51.0078 curveto
+ 31.2734 51.0078 29.5 52.3594 31.2734 51.8789 curveto
+ 31.2734 51.8789 32.6289 51.3359 33.5938 51.3008 curveto
+ 33.5938 51.3008 36.0117 50.6992 34.7539 52.1719 curveto
+ 33.457 53.3828 30.2656 55.1055 28.9492 55.0742 curveto
+ 28.6602 54.4922 lineto
+ 25.1797 55.3633 lineto
+ 25.4688 55.0742 lineto
+ 25.4688 55.0742 25.668 55.1055 24.3086 55.3633 curveto
+ 22.9883 55.3594 21.1367 54.9141 20.8242 55.3633 curveto
+ 20.2422 56.0625 19.1563 56.3828 19.375 55.9414 curveto
+ 19.4102 55.4883 19.375 54.7813 19.375 54.7813 curveto
+ 19.375 54.7813 17.8789 56.6992 18.2109 55.9414 curveto
+ 18.2617 55.2969 20.8789 53.6367 21.4063 51.5898 curveto
+ 17.9219 54.2031 lineto
+ 16.7617 55.3633 lineto
+ 16.7617 55.3633 15.707 54.5313 15.6016 55.0742 curveto
+ 15.5781 55.5508 14.1133 57.4023 13.8594 57.3945 curveto
+ 13.3438 57.2734 12.707 58.168 12.6992 57.3945 curveto
+ 12.832 56.5078 10.375 54.7813 10.375 54.7813 curveto
+ 10.375 54.7813 9.38672 55.3594 8.92578 54.7813 curveto
+ 8.49219 54.4648 7.18359 61.168 7.18359 61.168 curveto
+ -0.941406 64.6484 lineto
+ -14.875 65.8125 lineto
+ -9.35938 67.8438 lineto
+ 10.0859 71.6172 lineto
+ closepath
+fill
+
+
+% 142 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.638521 setlinewidth
+ 0.7 1.0 1.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 4.28125 8.05469 moveto
+ 4.28125 8.05469 9.13281 13.3438 11.8281 14.1484 curveto
+ 11.8281 14.1484 16.0898 16.3477 24.0156 13.8594 curveto
+stroke
+
+
+% 143 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.638521 setlinewidth
+ 0.7 1.0 1.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 12.6992 14.7305 moveto
+ 12.6992 14.7305 20.8789 17.1758 25.7578 15.8906 curveto
+ 25.7578 15.8906 31.6719 15.1953 34.4648 10.668 curveto
+stroke
+
+
+% 144 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.638521 setlinewidth
+ 0.7 1.0 1.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 13.8594 15.0195 moveto
+ 13.8594 15.0195 19.4102 17.3047 24.0156 17.9219 curveto
+ 24.0156 17.9219 29.4375 18.8359 34.7539 16.4727 curveto
+ 34.7539 16.4727 38.6328 14.6211 40.2695 11.2461 curveto
+stroke
+
+
+% 145 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.638521 setlinewidth
+ 0.7 1.0 1.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 13.5703 15.0195 moveto
+ 13.5703 15.0195 18.582 18.3906 18.793 18.793 curveto
+ 18.793 18.793 21.1367 22.3477 25.1797 22.5664 curveto
+ 25.1797 22.5664 32.1172 22.2188 37.6602 19.6641 curveto
+stroke
+
+
+% 146 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 14.1484 17.6328 moveto
+ 13.5898 17.2813 4.86328 8.05469 4.86328 8.05469 curveto
+ -6.25781 -3.64063 2.53906 7.18359 2.53906 7.18359 curveto
+ 5.10938 8.8125 8.05469 14.7305 8.05469 14.7305 curveto
+ 8.42969 15.707 3.69922 12.4063 3.69922 12.4063 curveto
+ 2.30078 12.2578 -2.10547 6.02344 -2.10547 6.02344 curveto
+ 0.128906 6.89844 -1.52344 4.57031 -1.52344 4.57031 curveto
+ -2.30078 3.96094 -8.78125 -0.941406 -8.78125 -0.941406 curveto
+ -9.96094 -2.30078 -11.1016 -2.68359 -11.1016 -2.68359 curveto
+ -15.707 -1.14844 -13.7148 -5.29688 -13.7148 -5.29688 curveto
+ -14.4297 -7.53516 -16.3242 -3.84375 -16.3242 -3.84375 curveto
+ -19.793 1.53125 -14.5859 0.796875 -14.5859 0.796875 curveto
+ -4.98047 -0.128906 -2.68359 4.86328 -2.68359 4.86328 curveto
+ -2.04297 5.74609 -4.71484 4.86328 -4.71484 4.86328 curveto
+ -7.53516 4.34375 -2.68359 8.92578 -2.68359 8.92578 curveto
+ -3.32031 8.94141 -6.16797 6.89453 -6.16797 6.89453 curveto
+ -9.57813 3.83203 -10.2305 4.57031 -10.2305 4.57031 curveto
+ -15.9648 7.27734 -19.2266 4.86328 -19.2266 4.86328 curveto
+ -19.9219 4.34375 -18.1328 2.17188 -18.6484 0.507813 curveto
+ -19.1563 -1.14844 -20.6797 -5.00781 -20.6797 -5.00781 curveto
+ -19.9219 -5.61719 -20.0977 -9.07031 -20.0977 -9.07031 curveto
+ -25.4141 -16.4727 -22.4219 -15.7461 -22.4219 -15.7461 curveto
+ -17.3672 -15.707 -22.1289 -18.0664 -22.1289 -18.0664 curveto
+ -23.1133 -18.7734 -25.9023 -20.9688 -25.9023 -20.9688 curveto
+ -25.0313 -20.6875 -24.4531 -22.4219 -24.4531 -22.4219 curveto
+ -26.0508 -23.625 -25.0313 -25.0313 -25.0313 -25.0313 curveto
+ -23.2422 -25.5391 -23.0 -26.7734 -23.0 -26.7734 curveto
+ -25.0313 -29.3711 -21.8398 -29.3867 -21.8398 -29.3867 curveto
+ -22.9883 -30.9063 -21.5508 -34.6094 -21.5508 -34.6094 curveto
+ -19.9219 -34.7344 -17.7773 -36.6406 -17.7773 -36.6406 curveto
+ -18.6445 -38.0547 -15.457 -39.8359 -15.457 -39.8359 curveto
+ -12.6445 -40.3555 -13.4219 -42.4453 -13.4219 -42.4453 curveto
+ -10.9844 -44.4414 -10.2305 -49.4141 -10.2305 -49.4141 curveto
+ -9.96094 -52.8711 -9.19531 -53.8906 -10.8125 -53.1875 curveto
+ -12.5156 -52.6133 -12.2617 -48.543 -12.2617 -48.543 curveto
+ -10.7266 -43.6758 -24.4531 -38.6758 -24.4531 -38.6758 curveto
+ -25.668 -38.0547 -25.9023 -36.3516 -25.9023 -36.3516 curveto
+ -26.5625 -36.5234 -29.3867 -38.9648 -29.3867 -38.9648 curveto
+ -31.8008 -42.5273 -32.0 -39.543 -32.0 -39.543 curveto
+ -32.3086 -38.4375 -31.707 -36.6406 -31.707 -36.6406 curveto
+ -33.7148 -29.6289 -29.3867 -27.6445 -29.3867 -27.6445 curveto
+ -26.0508 -16.8594 -30.5469 -19.5195 -30.5469 -19.5195 curveto
+ -31.4141 -21.3281 -34.9023 -23.0 -34.9023 -23.0 curveto
+ -36.0625 -22.1289 lineto
+ -35.5 -20.6875 -38.0937 -18.6484 -38.0937 -18.6484 curveto
+ -39.0781 -20.8164 -40.9961 -18.3594 -40.9961 -18.3594 curveto
+ -42.1406 -10.4727 -46.2187 -15.1641 -46.2187 -15.1641 curveto
+ -47.3789 -15.4531 -47.6719 -13.4219 -47.6719 -13.4219 curveto
+ -48.9102 -9.96094 -47.6719 -5.58594 -47.6719 -5.58594 curveto
+ -48.9102 -5.49219 -52.0234 -7.32813 -52.0234 -7.32813 curveto
+ -52.8711 -6.25781 -49.9336 -0.894531 -51.1523 -1.52344 curveto
+ -52.4883 -2.42578 -53.7656 -2.97656 -53.7656 -2.97656 curveto
+ -54.1484 -2.30078 -50.8633 1.66797 -50.8633 1.66797 curveto
+ -49.5508 2.55469 -47.9609 8.92578 -47.9609 8.92578 curveto
+ -50.1875 7.91797 -47.0898 12.6992 -47.0898 12.6992 curveto
+ -46.9961 13.793 -48.832 17.3398 -48.832 17.3398 curveto
+ -48.6562 19.5391 -48.832 19.375 -48.832 19.375 curveto
+ -49.8047 19.0273 -52.3594 18.5156 -50.2852 20.5352 curveto
+ -48.0156 22.6016 -50.5742 24.0156 -50.5742 24.0156 curveto
+ -51.8477 25.0313 -47.3828 24.8867 -47.3828 24.8867 curveto
+ -45.8477 26.3086 -45.9297 27.5 -45.9297 27.5 curveto
+ -48.5273 26.9453 -43.9297 31.543 -43.0273 32.7227 curveto
+ -42.3984 33.8438 -45.3477 35.625 -45.3477 35.625 curveto
+ -49.6758 36.6523 -45.9297 37.6602 -45.9297 37.6602 curveto
+ -39.7148 37.543 -43.0273 40.8516 -43.0273 40.8516 curveto
+ -45.0781 40.8672 -44.4805 41.7227 -44.4805 41.7227 curveto
+ -42.9102 42.0156 -39.8359 44.043 -39.8359 44.043 curveto
+ -38.5664 45.207 -39.8359 44.9141 -39.8359 44.9141 curveto
+ -45.0781 44.5703 -35.7734 48.1055 -35.7734 48.1055 curveto
+ -38.4375 48.1445 -32.5781 51.5898 -32.5781 51.5898 curveto
+ -32.0547 51.9766 -31.1289 54.4922 -31.1289 54.4922 curveto
+ -29.1172 56.0625 -27.6445 58.2656 -27.6445 58.2656 curveto
+ -27.457 59.6367 -25.9023 61.168 -25.9023 61.168 curveto
+ -22.2227 65.5117 -20.3906 65.5195 -20.3906 65.5195 curveto
+ -15.707 66.5352 -14.0039 66.3906 -14.0039 66.3906 curveto
+ 2.82813 64.9414 lineto
+ 11.2383 60.7891 8.63281 54.2031 8.63281 54.2031 curveto
+ 6.70313 51.4023 3.69922 52.75 3.69922 52.75 curveto
+ 2.30078 54.5938 -1.52344 53.9102 -1.52344 53.9102 curveto
+ -7.91797 52.8711 -7.03906 53.9102 -7.03906 53.9102 curveto
+ -6.32031 55.4883 -1.14844 57.4688 -0.941406 57.6836 curveto
+ -1.02343 57.8516 1.66797 58.8438 1.66797 58.8438 curveto
+ 2.74609 59.3164 4.28125 62.3281 4.28125 62.3281 curveto
+ 5.17188 63.3398 0.21875 61.457 0.21875 61.457 curveto
+ 0.511719 61.1719 -1.8125 60.0078 -1.8125 60.0078 curveto
+ -7.40625 60.2109 -10.8125 56.8125 -10.8125 56.8125 curveto
+ -14.2383 51.4648 -14.293 54.2031 -14.293 54.2031 curveto
+ -15.1953 57.082 -11.3906 63.7813 -11.3906 63.7813 curveto
+ -11.5586 64.4922 -14.293 62.3281 -14.293 62.3281 curveto
+ -14.6211 63.0234 -14.875 61.168 -14.875 61.168 curveto
+ -14.9414 60.4063 -16.0352 57.9766 -16.0352 57.9766 curveto
+ -17.0508 53.6992 -18.0664 55.9414 -18.0664 55.9414 curveto
+ -19.8086 53.0391 lineto
+ -20.1133 52.2305 -18.0664 49.8477 -18.0664 49.8477 curveto
+ -18.1328 48.9102 -18.3906 48.9727 -16.6172 46.6563 curveto
+ -14.8164 44.1211 -16.0352 42.5938 -16.0352 42.5938 curveto
+ -15.4531 40.6094 -18.3594 40.8516 -18.3594 40.8516 curveto
+ -19.0938 40.0352 -20.0977 39.9805 -20.0977 39.9805 curveto
+ -20.75 39.3945 -21.5508 39.6914 -21.5508 39.6914 curveto
+ -22.0313 40.8008 -23.8711 40.2695 -23.8711 40.2695 curveto
+ -24.457 40.9297 -27.0664 41.1406 -27.0664 41.1406 curveto
+ -27.3945 41.8867 -27.5195 42.3984 -28.5156 42.5938 curveto
+ -29.6914 42.7813 -21.8398 56.5234 -21.8398 56.5234 curveto
+ -23.8828 56.7656 -21.2617 60.5859 -21.2617 60.5859 curveto
+ -20.5586 62.832 -24.1992 58.168 -25.0313 57.6836 curveto
+ -25.6055 57.2734 -25.9258 56.5742 -25.3242 56.5234 curveto
+ -24.9023 56.6992 -24.3281 56.0 -24.7422 55.9414 curveto
+ -25.2227 55.8711 -29.3711 51.082 -30.5469 47.8164 curveto
+ -31.543 44.5703 -33.457 43.293 -35.4805 41.4297 curveto
+ -37.418 39.4609 -37.2227 31.8516 -37.2227 31.8516 curveto
+ -37.0352 28.9258 -38.9648 25.4688 -38.9648 25.4688 curveto
+ -39.5898 24.3281 -38.3828 18.5039 -38.3828 18.5039 curveto
+ -37.6094 17.8125 -38.0937 17.6328 -38.0937 17.6328 curveto
+ -38.375 17.1758 -40.4141 12.9883 -40.4141 12.9883 curveto
+ -39.9727 13.0273 -40.9961 11.8281 -40.9961 11.8281 curveto
+ -42.7812 9.96094 -40.707 10.957 -40.707 10.957 curveto
+ -38.8242 11.4297 -40.9961 8.34375 -40.9961 8.34375 curveto
+ -41.4414 7.72656 -38.6758 9.21484 -38.6758 9.21484 curveto
+ -35.6289 9.38672 -39.2539 7.18359 -39.2539 7.18359 curveto
+ -42.0781 4.78906 -38.3828 6.3125 -38.3828 6.3125 curveto
+ -36.9727 6.76953 -38.0937 4.57031 -38.0937 4.57031 curveto
+ -39.0156 4.08594 -44.4805 1.96094 -44.4805 1.96094 curveto
+ -44.6328 0.636719 -43.6094 -0.941406 -43.6094 -0.941406 curveto
+ -43.8047 -2.23438 -43.0273 -3.26563 -43.0273 -3.26563 curveto
+ -42.7187 -5.9375 -42.4453 -6.16797 -42.4453 -6.16797 curveto
+ -41.1836 -6.25781 -38.9648 -10.5195 -38.9648 -10.5195 curveto
+ -38.2461 -11.4922 -34.9023 -15.457 -34.9023 -15.457 curveto
+ -34.3516 -17.5586 -28.5156 -15.1641 -28.5156 -15.1641 curveto
+ -26.5 -16.3477 -27.0664 -15.1641 -27.0664 -15.1641 curveto
+ -27.0117 -14.5586 -28.5156 -12.5547 -28.5156 -12.5547 curveto
+ -30.7773 -11.8125 -29.9687 -8.48828 -29.9687 -8.48828 curveto
+ -31.2227 -7.91797 -27.6484 -7.02344 -27.6445 -6.74609 curveto
+ -27.7734 -6.25781 -29.6758 -5.87891 -29.6758 -5.87891 curveto
+ -32.1836 -5.17188 -30.8359 -4.42578 -30.8359 -4.42578 curveto
+ -30.5859 -3.12891 -31.418 -1.23438 -31.418 -1.23438 curveto
+ -35.2461 -1.08594 -31.418 3.99219 -31.418 3.99219 curveto
+ -28.0938 6.51172 -27.6445 8.34375 -27.6445 8.34375 curveto
+ -31.8008 10.9844 -29.1797 14.9414 -29.3867 16.1797 curveto
+ -29.3086 17.2383 -29.6758 24.0156 -29.6758 24.0156 curveto
+ -29.0547 26.1172 -28.2266 30.4023 -28.2266 30.4023 curveto
+ -28.7969 32.1172 -31.1289 36.207 -31.1289 36.207 curveto
+ -32.0547 37.4805 -34.8633 39.0156 -34.0312 39.9805 curveto
+ -33.457 40.9297 -30.8359 40.2695 -30.8359 40.2695 curveto
+ -28.4766 40.8008 -28.8047 39.1094 -28.8047 39.1094 curveto
+ -28.1602 38.8242 -27.9336 37.3672 -27.9336 37.3672 curveto
+ -27.6719 34.6953 -24.7422 32.7227 -24.7422 32.7227 curveto
+ -21.2617 30.7109 -24.1641 29.5313 -24.1641 29.5313 curveto
+ -26.1172 27.3281 -23.0 27.2109 -23.0 27.2109 curveto
+ -19.4766 27.8398 -22.1289 24.5977 -22.1289 24.5977 curveto
+ -25.5391 20.4961 -24.4531 19.6641 -24.4531 19.6641 curveto
+ -21.3281 19.2852 -25.3242 16.4727 -25.3242 16.4727 curveto
+ -25.3242 16.4727 -25.0937 16.9844 -25.0313 16.4727 curveto
+ -25.2227 15.8359 -26.1797 14.4961 -26.4844 13.8594 curveto
+ -26.6914 13.2188 -25.3242 13.2773 -25.3242 13.2773 curveto
+ -25.6055 10.0898 -20.6797 11.5352 -20.6797 11.5352 curveto
+ -20.6797 11.5352 -20.6875 11.4297 -20.0977 11.2461 curveto
+ -19.668 11.3008 -16.0898 11.5586 -14.293 12.1172 curveto
+ -12.3867 12.9609 -10.2305 12.9883 -10.2305 12.9883 curveto
+ -10.2305 12.9883 -8.94141 12.3867 -6.45703 12.4063 curveto
+ -4.08594 12.5156 -1.52344 11.5352 -1.52344 11.5352 curveto
+ -0.128906 11.75 -2.87109 13.1523 -2.97656 12.9883 curveto
+ -3.0 13.0273 -4.78906 14.8125 -2.10547 14.7305 curveto
+ 4.72266 14.1016 8.05469 17.3398 8.05469 17.3398 curveto
+ 8.8125 17.8125 9.50391 18.793 9.50391 18.793 curveto
+ 12.832 19.3477 9.21484 14.7305 9.21484 14.7305 curveto
+ 8.8125 14.3047 9.21484 13.8594 9.21484 13.8594 curveto
+ 9.51563 14.4961 12.1172 16.1797 12.1172 16.1797 curveto
+ 12.9023 16.5273 13.3359 16.9531 14.1484 17.6328 curveto
+ closepath
+fill
+
+
+% 147 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.638521 setlinewidth
+ 0.7 1.0 1.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 21.6953 21.4063 moveto
+ 21.6953 21.4063 18.0078 19.668 17.0508 18.793 curveto
+ 16.3477 17.8789 11.8281 14.1484 11.8281 14.1484 curveto
+ 11.8281 14.1484 13.6016 14.8789 14.4375 15.3086 curveto
+ 15.2617 16.0273 18.793 18.5039 18.793 18.5039 curveto
+ 18.793 18.5039 19.9219 20.5586 21.6953 21.4063 curveto
+ closepath
+fill
+
+
+% 148 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.4 0.2 0.8 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 40.2695 31.2734 moveto
+ 40.1211 31.4609 40.2891 32.3281 40.2695 32.4336 curveto
+ 40.6797 33.3711 43.4648 33.8867 43.4648 33.8867 curveto
+ 43.6211 33.4063 43.6367 32.8984 43.4648 32.4336 curveto
+ 43.4648 32.4336 42.0508 30.6094 40.2695 31.2734 curveto
+ closepath
+fill
+
+
+% 149 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.6 0.4 1.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 40.2695 31.5625 moveto
+ 40.375 31.4258 40.2344 32.3516 40.2695 32.4336 curveto
+ 40.6172 33.3711 43.4648 33.8867 43.4648 33.8867 curveto
+ 43.6211 33.4375 43.6367 32.9297 43.4648 32.4336 curveto
+ 43.4648 32.4336 42.2422 30.7695 40.2695 31.5625 curveto
+ closepath
+fill
+
+
+% 150 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 41.7227 31.5625 moveto
+ 41.832 31.4336 41.9922 31.7969 42.0117 32.1445 curveto
+ 41.9922 32.6953 41.832 33.0586 41.7227 33.0156 curveto
+ 41.4336 33.0586 41.2695 32.6953 41.1406 32.1445 curveto
+ 41.2695 31.7969 41.4336 31.4336 41.7227 31.5625 curveto
+ closepath
+fill
+
+
+% 151 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 41.7227 32.1445 moveto
+fill
+
+
+% 152 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 56.2344 0.21875 moveto
+ 56.2344 0.21875 57.9766 -3.06641 50.1367 -1.23438 curveto
+ 50.1367 -1.23438 45.5898 -0.765625 44.9141 -0.0742188 curveto
+ 44.4414 -0.257813 41.7695 -1.19141 40.8516 -1.52344 curveto
+ 38.6953 -1.91797 35.918 1.37891 35.918 1.37891 curveto
+ 35.918 1.37891 34.543 4.62891 33.5938 4.57031 curveto
+ 32.7578 4.62891 33.8867 3.99219 33.8867 3.99219 curveto
+ 33.8867 3.99219 35.8867 0.894531 35.625 0.507813 curveto
+ 35.625 0.507813 37.418 -6.00391 42.5938 -6.16797 curveto
+ 42.5938 -6.16797 47.6797 -6.5625 47.2344 -8.48828 curveto
+ 47.2344 -8.48828 44.4414 -7.66406 43.7539 -8.48828 curveto
+ 43.7539 -8.48828 40.2266 -8.30078 42.8828 -10.2305 curveto
+ 44.9141 -14.0039 lineto
+ 44.9141 -14.0039 44.9063 -15.2969 48.1055 -14.293 curveto
+ 51.2734 -13.0898 54.4922 -9.07031 54.4922 -9.07031 curveto
+ 54.4922 -9.07031 59.6523 -4.32813 56.2344 0.21875 curveto
+ closepath
+fill
+
+
+% 153 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.1 0.4 0.4 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 56.5234 -1.23438 moveto
+ 56.5234 -1.23438 57.2109 -4.21484 45.4961 -0.941406 curveto
+ 45.4961 -0.941406 44.0586 -0.894531 43.1719 -1.23438 curveto
+ 42.5234 -1.40625 38.6953 -2.30078 37.9492 -1.8125 curveto
+ 37.9492 -1.8125 40.3555 -6.25781 44.043 -5.87891 curveto
+ 44.043 -5.87891 48.2734 -6.25781 48.1055 -7.91016 curveto
+ 48.1055 -7.91016 46.8672 -10.0898 45.2031 -10.8125 curveto
+ 45.2031 -10.8125 44.4414 -11.6211 44.625 -12.5547 curveto
+ 44.6953 -13.6641 45.5898 -14.1758 46.3672 -14.293 curveto
+ 46.8672 -14.6875 47.8906 -13.6641 48.3984 -13.7148 curveto
+ 48.9102 -13.6641 51.5938 -11.6211 53.0391 -10.2305 curveto
+ 54.4023 -8.55469 57.082 -4.72656 56.8125 -3.84375 curveto
+ 56.8281 -2.9375 56.5234 -1.23438 56.5234 -1.23438 curveto
+ closepath
+fill
+
+
+% 154 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.3 0.6 0.6 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 55.6523 -6.74609 moveto
+ 54.7227 -7.98047 53.6992 -9.32422 53.0391 -10.2305 curveto
+ 51.5938 -11.6211 48.9102 -13.6641 48.3984 -13.7148 curveto
+ 47.8906 -13.6641 46.8672 -14.6875 46.3672 -14.293 curveto
+ 45.5898 -14.1758 44.6953 -13.6641 44.625 -12.5547 curveto
+ 44.4414 -11.6211 45.2031 -10.8125 45.2031 -10.8125 curveto
+ 46.3125 -10.3672 47.1875 -9.25 47.8164 -8.48828 curveto
+ 47.8164 -8.48828 47.6328 -9.32422 49.2695 -9.07031 curveto
+ 50.9531 -8.8125 52.6133 -7.91797 53.0391 -7.03906 curveto
+ 53.6367 -5.875 54.4023 -5.10938 53.9102 -6.16797 curveto
+ 53.3828 -7.40625 52.6133 -8.55469 52.1719 -8.78125 curveto
+ 51.5938 -8.8125 51.7188 -9.19531 52.4609 -9.07031 curveto
+ 53.2539 -8.94141 54.1445 -8.8125 55.6523 -7.03906 curveto
+fill
+
+
+% 155 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.4 0.85 1.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 56.5234 -0.0742188 moveto
+ 56.5234 -0.0742188 55.8086 4.34375 55.3633 5.73047 curveto
+ 55.3633 5.73047 55.6797 7.78906 54.7813 9.21484 curveto
+ 54.1445 10.4727 53.5078 12.4492 52.4609 14.1484 curveto
+ 51.5938 15.8984 51.5273 17.1758 50.1367 17.6328 curveto
+ 48.9727 18.1992 47.0586 20.9453 46.0742 21.4063 curveto
+ 45.2695 21.582 45.2031 21.4063 45.2031 21.4063 curveto
+ 45.2031 21.4063 43.1641 26.0508 38.8203 24.8867 curveto
+ 38.8203 24.8867 43.9922 25.668 38.8203 28.6602 curveto
+ 38.8203 28.6602 40.4805 28.3203 39.3984 30.6914 curveto
+ 38.7266 32.043 38.8867 29.8828 42.3008 26.0469 curveto
+ 42.3008 26.0469 43.9922 23.3711 45.7852 22.2773 curveto
+ 47.3125 21.4531 51.1445 19.2188 51.5898 17.9219 curveto
+ 51.9102 16.793 52.9336 14.9414 53.6211 14.4375 curveto
+ 54.2109 13.9219 55.1055 12.5781 55.3633 11.5352 curveto
+ 55.3633 11.5352 55.6172 10.2148 55.9414 9.79688 curveto
+ 56.5078 9.44922 56.5742 8.42969 56.5234 7.76563 curveto
+ 56.5742 7.15234 57.2109 6.25781 57.1055 5.44141 curveto
+ 57.1055 5.44141 56.8906 -0.574219 57.1055 -1.23438 curveto
+ 56.5234 -0.0742188 lineto
+ closepath
+fill
+
+
+% 156 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 59.1367 -1.52344 moveto
+ 59.1367 -1.52344 59.7656 -1.02344 61.168 -2.97656 curveto
+ 61.168 -2.97656 58.8398 -13.4727 58.8438 -14.0039 curveto
+ 58.8438 -14.0039 58.4883 -13.25 58.8438 -10.8125 curveto
+ 59.3164 -8.65234 59.7148 -4.71484 59.7148 -4.71484 curveto
+ 59.1367 -1.52344 lineto
+ closepath
+fill
+
+
+% 157 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.4 0.85 1.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 52.1719 17.9219 moveto
+ 52.1719 17.9219 57.8516 16.8555 57.6836 7.47266 curveto
+ 57.9766 -0.363281 lineto
+ 57.9766 -0.363281 58.3594 7.78906 58.8438 8.34375 curveto
+ 59.125 8.8125 57.8516 12.3867 58.8438 10.375 curveto
+ 58.8438 10.375 63.3398 6.00391 60.8789 -0.652344 curveto
+ 60.8789 -0.652344 60.3086 -1.82031 61.168 -0.363281 curveto
+ 61.168 -0.363281 62.7344 3.67188 62.3281 5.73047 curveto
+ 62.3281 5.73047 62.3203 6.41797 61.7461 7.18359 curveto
+ 61.7461 7.18359 58.9688 11.0469 57.9766 11.8281 curveto
+ 57.9766 11.8281 57.5313 16.3789 52.75 17.9219 curveto
+ 52.75 17.9219 50.793 18.7734 52.1719 17.9219 curveto
+ closepath
+fill
+
+
+% 158 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 7.76563 39.1094 moveto
+ 7.51563 39.125 7.51953 39.4375 7.47266 39.3984 curveto
+ 6.96875 39.6016 6.91406 39.9414 6.89453 40.2695 curveto
+ 6.46875 40.6133 6.40625 41.1016 6.3125 41.7227 curveto
+ 6.13672 41.8008 6.125 42.1055 6.3125 42.3008 curveto
+ 6.60156 43.1094 6.82813 43.8906 7.18359 44.625 curveto
+ 7.37109 44.8086 7.45703 45.0625 7.47266 45.2031 curveto
+ 7.66797 45.6953 8.07031 46.0117 8.34375 46.3672 curveto
+ 8.43359 46.5742 8.26563 46.8711 8.63281 46.9453 curveto
+ 8.78125 46.9297 9.24609 47.1172 9.21484 46.6563 curveto
+ 9.50781 45.9609 9.18359 45.1563 8.92578 44.332 curveto
+ 9.125 44.1563 9.01953 43.8633 8.92578 43.7539 curveto
+ 8.74219 42.4648 9.125 41.3945 9.50391 40.2695 curveto
+ 9.375 40.2539 9.26563 40.1914 9.21484 40.2695 curveto
+ 9.66797 39.3125 10.1289 38.5313 10.668 37.6602 curveto
+ 10.9531 37.457 11.2305 37.1641 11.2461 36.7891 curveto
+ 11.5078 36.5703 11.6367 36.2617 11.5352 35.918 curveto
+ 12.6523 35.0625 13.3711 33.8359 14.1484 32.7227 curveto
+ 14.3516 32.3906 14.2617 32.0039 14.1484 31.8516 curveto
+ 13.8242 31.7891 13.5195 32.1172 13.2773 32.4336 curveto
+ 13.2461 32.6094 13.1328 32.8164 12.9883 33.0156 curveto
+ 12.9336 33.0781 12.9922 33.2109 12.9883 33.3047 curveto
+ 12.1055 34.0 11.5742 34.9375 10.668 35.625 curveto
+ 10.168 35.8008 9.67578 36.1172 9.21484 36.4961 curveto
+ 9.01953 36.4961 8.85547 36.418 8.63281 36.4961 curveto
+ 8.20313 36.8555 8.20313 37.5078 8.05469 38.2383 curveto
+ 8.15234 38.3984 8.08984 38.8164 7.76563 39.1094 curveto
+ closepath
+fill
+
+
+% 159 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 10.668 40.5625 moveto
+ 10.5078 40.4648 10.5586 40.5977 10.668 40.5625 curveto
+ 10.4727 40.7734 10.3438 40.832 10.375 40.8516 curveto
+ 10.2578 41.0039 10.3086 41.125 10.375 41.1406 curveto
+ 9.51953 41.9531 9.4375 42.918 9.79688 43.7539 curveto
+ 9.44141 44.0625 9.42188 44.4688 9.50391 44.625 curveto
+ 9.83203 45.2813 9.89453 45.8945 10.0859 46.3672 curveto
+ 10.4609 46.793 10.9648 47.1914 11.5352 46.6563 curveto
+ 11.5352 46.6484 11.6367 46.3945 11.5352 46.0742 curveto
+ 11.5273 46.1172 11.4375 46.0703 11.5352 46.0742 curveto
+ 11.4805 45.9414 11.6562 45.8672 11.5352 45.7852 curveto
+ 11.668 45.3047 11.9727 44.8203 11.8281 44.332 curveto
+ 11.5234 43.875 11.2617 43.2852 10.957 42.5938 curveto
+ 11.4414 42.043 11.1094 41.2617 11.5352 40.5625 curveto
+ 11.7148 40.6133 11.7109 40.4922 11.5352 40.5625 curveto
+ 11.5781 40.2695 11.4492 40.1406 11.2461 39.9805 curveto
+ 11.2305 40.0078 11.1172 40.0078 10.957 39.9805 curveto
+ 10.8711 40.1641 10.7422 40.3203 10.668 40.5625 curveto
+ closepath
+fill
+
+
+% 160 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -9.35938 43.7539 moveto
+ -9.94922 43.1602 -10.0391 42.2656 -9.35938 41.7227 curveto
+ -9.5625 40.7656 -10.6328 41.3984 -11.3906 41.4297 curveto
+ -11.2656 41.6914 -11.3398 41.8008 -11.3906 41.7227 curveto
+ -11.7656 41.8086 -11.9844 42.1367 -12.2617 42.0117 curveto
+ -12.4609 42.5742 -12.9844 42.8008 -13.1328 43.1719 curveto
+ -13.7422 44.418 -13.5508 45.7852 -12.8438 46.9453 curveto
+ -12.6641 46.9023 -12.7344 47.0664 -12.5547 47.2344 curveto
+ -12.4531 47.8867 -11.793 47.9883 -11.1016 48.1055 curveto
+ -10.8008 49.4453 -10.5859 50.7344 -9.94141 51.8789 curveto
+ -9.51172 51.9922 -9.28516 52.5469 -8.78125 52.75 curveto
+ -8.43359 53.0039 -8.25391 52.5039 -8.19922 52.1719 curveto
+ -8.26953 52.1016 -8.41406 52.0313 -8.48828 51.8789 curveto
+ -8.33594 51.8633 -8.25 51.8281 -8.19922 51.8789 curveto
+ -8.25 51.7422 -8.32032 51.6992 -8.48828 51.5898 curveto
+ -8.07422 51.3945 -7.61719 51.2422 -7.61719 51.0078 curveto
+ -7.21875 49.6914 -8.03906 48.6953 -8.48828 47.8164 curveto
+ -8.76172 47.3086 -8.52735 46.9063 -8.19922 46.6563 curveto
+ -8.14453 46.2969 -8.17969 45.9375 -8.19922 45.7852 curveto
+ -8.50781 44.9219 -9.01563 44.3633 -9.35938 43.7539 curveto
+ closepath
+fill
+
+
+% 161 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 2.25 37.9492 moveto
+ 2.83203 37.2695 3.92188 36.4492 3.12109 35.918 curveto
+ 2.92969 35.793 2.8125 35.793 2.82813 35.918 curveto
+ 2.10937 36.3359 1.47266 36.625 0.796879 36.7891 curveto
+ 0.652344 36.8164 0.566406 36.668 0.507813 36.7891 curveto
+ -0.0664063 36.9453 -0.707031 36.9258 -0.941406 37.3672 curveto
+ -2.28906 37.2813 -3.42578 37.6367 -4.42578 37.9492 curveto
+ -4.87891 38.1992 -5.28516 38.3789 -5.58594 38.5273 curveto
+ -6.10938 38.7227 -6.49218 39.0195 -6.74609 39.3984 curveto
+ -6.89063 39.4258 -7.00391 39.3945 -7.03906 39.3984 curveto
+ -7.07422 39.6719 -7.38281 39.7109 -7.32813 39.9805 curveto
+ -7.49219 39.9844 -7.44141 40.1133 -7.61719 40.2695 curveto
+ -8.16797 40.6641 -8.46094 41.3086 -8.19922 42.0117 curveto
+ -7.99609 42.2539 -7.91797 42.4492 -7.61719 42.5938 curveto
+ -7.39063 42.8945 -7.03906 42.6211 -6.74609 42.5938 curveto
+ -6.65234 42.5156 -6.42188 42.5703 -6.16797 42.5938 curveto
+ -6.02344 42.3672 -5.59766 42.5547 -5.29688 42.3008 curveto
+ -4.89063 42.1914 -4.49219 42.1406 -4.13672 42.0117 curveto
+ -3.9375 41.9922 -3.69141 42.0234 -3.55468 41.7227 curveto
+ -3.59766 41.8672 -3.55078 41.9414 -3.55468 42.0117 curveto
+ -2.90625 41.8086 -2.50391 41.7383 -2.10547 41.1406 curveto
+ -2.05469 41.1563 -1.91406 41.2148 -1.8125 41.1406 curveto
+ -1.55859 40.9102 -1.42968 40.5195 -0.941406 40.2695 curveto
+ -1.01172 40.2656 -0.902344 40.3164 -0.941406 40.2695 curveto
+ -0.632813 40.1406 -0.515621 39.9336 -0.363281 39.6914 curveto
+ -0.207031 39.7188 -0.078125 39.8242 -0.0742188 39.9805 curveto
+ -0.167969 40.5273 -0.375 41.0977 -0.0742188 41.7227 curveto
+ -0.855469 42.5 -1.66016 43.1211 -2.10547 44.043 curveto
+ -2.23828 44.6836 -2.46094 45.3711 -2.39453 46.0742 curveto
+ -2.42188 46.0938 -2.32813 46.3281 -2.39453 46.3672 curveto
+ -2.1875 46.7148 -2.47656 47.0547 -2.10547 47.2344 curveto
+ -1.76172 47.668 -1.34766 47.3906 -0.941406 46.9453 curveto
+ -0.5 46.8047 0.160156 46.5859 0.796879 46.9453 curveto
+ 0.984375 47.2305 1.17188 47.5195 1.37891 47.8164 curveto
+ 1.74219 48.2734 1.63281 48.7305 1.66797 49.2695 curveto
+ 1.60938 49.2695 1.71094 49.3164 1.66797 49.2695 curveto
+ 1.71094 49.3984 1.64063 49.4414 1.66797 49.5586 curveto
+ 1.82031 49.6836 1.91015 50.0234 2.25 50.1367 curveto
+ 2.13672 50.4727 2.35547 50.7539 2.53906 50.7188 curveto
+ 3.26953 51.0703 3.80469 50.4609 4.28125 50.4297 curveto
+ 4.57422 50.4336 4.72266 50.7617 4.86328 51.0078 curveto
+ 5.06641 50.9375 5.29297 50.9453 5.44141 50.7188 curveto
+ 5.625 50.6992 5.8125 50.6641 6.02344 50.7188 curveto
+ 6.57422 50.4609 6.98047 50.1094 7.47266 49.8477 curveto
+ 7.92578 49.5625 8.23047 49.1055 8.63281 48.6875 curveto
+ 8.87891 48.3164 8.92188 47.5469 8.34375 47.5273 curveto
+ 7.87891 47.1797 7.46094 48.0391 6.89453 47.8164 curveto
+ 6.73438 47.9219 6.66797 47.8203 6.60156 47.8164 curveto
+ 6.58203 47.6641 6.51172 47.7344 6.3125 47.8164 curveto
+ 6.17578 47.5 5.80469 47.3906 5.44141 47.2344 curveto
+ 5.19531 46.8242 4.63672 46.957 4.28125 46.6563 curveto
+ 3.82422 46.1602 4.00391 45.3047 3.41016 44.9141 curveto
+ 3.57031 44.4688 3.76563 44.0625 3.99219 43.4648 curveto
+ 3.96094 43.2188 3.64453 42.8398 3.12109 42.8828 curveto
+ 2.85547 42.8984 2.77344 43.1406 2.53906 43.4648 curveto
+ 2.53125 43.3984 2.38281 43.3047 2.53906 43.1719 curveto
+ 2.54297 42.4727 2.87109 41.8359 3.12109 41.1406 curveto
+ 3.03516 40.957 3.13282 40.8945 3.12109 40.8516 curveto
+ 3.40625 39.6055 4.69922 38.8398 5.44141 37.9492 curveto
+ 5.64063 37.668 5.64063 37.2695 5.44141 37.0781 curveto
+ 5.0625 36.6992 4.4375 37.1914 3.99219 37.3672 curveto
+ 3.82812 37.7383 3.55469 38.0391 3.12109 37.9492 curveto
+ 3.04688 38.0156 2.96875 38.1914 2.82813 38.2383 curveto
+ 2.75781 38.2773 2.59766 38.207 2.53906 38.2383 curveto
+ 1.95313 38.6484 1.5039 39.0039 1.08984 39.3984 curveto
+ 0.886719 39.4258 0.777344 39.375 0.796879 39.3984 curveto
+ 0.605469 39.4609 0.542969 39.582 0.507813 39.6914 curveto
+ 0.328125 39.707 0.253906 39.6133 0.21875 39.3984 curveto
+ 0.398441 39.4141 0.398441 39.1055 0.507813 39.1094 curveto
+ 0.832031 38.957 1.01172 38.793 1.08984 38.5273 curveto
+ 1.32031 38.5898 1.53125 38.668 1.66797 38.5273 curveto
+ 1.75391 38.2813 2.13281 38.1445 2.25 37.9492 curveto
+ closepath
+fill
+
+
+% 162 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 19.9531 53.6211 moveto
+ 19.9531 53.6211 23.0 54.5547 26.6289 46.3672 curveto
+ 26.6289 46.3672 27.3281 44.6953 28.082 44.043 curveto
+ 28.8633 43.4219 32.4375 42.2695 33.0156 40.8516 curveto
+ 36.4961 35.918 lineto
+ 36.4961 35.918 31.6719 40.9922 30.6914 41.7227 curveto
+ 30.6914 41.7227 28.0938 44.4414 29.2422 42.3008 curveto
+ 29.2422 42.3008 33.5859 38.8242 33.3047 35.918 curveto
+ 33.3047 35.918 34.9922 31.2891 35.3359 30.6914 curveto
+ 35.3359 30.6914 30.1367 40.8672 29.2422 41.1406 curveto
+ 28.6055 41.6328 28.2227 41.6328 28.6602 40.5625 curveto
+ 28.9883 39.332 29.1172 34.0977 30.1133 33.5938 curveto
+ 30.1133 33.5938 27.457 39.9727 27.7891 40.8516 curveto
+ 27.7891 40.8516 26.6914 42.1406 26.0469 40.5625 curveto
+ 26.3398 35.3359 lineto
+ 24.8867 31.5625 lineto
+ 24.8867 31.5625 25.668 35.1172 25.1797 39.9805 curveto
+ 25.1797 39.9805 25.7969 43.4219 24.5977 41.7227 curveto
+ 23.2422 39.8438 20.1758 37.9297 20.2422 36.4961 curveto
+ 20.2422 36.4961 21.8359 42.0156 24.8867 43.4648 curveto
+ 26.0469 41.7227 lineto
+ 26.3398 42.3008 lineto
+ 26.3398 42.3008 27.582 42.5273 26.0469 44.625 curveto
+ 24.7734 46.8672 24.8867 47.2344 24.8867 47.2344 curveto
+ 24.8867 47.2344 22.8594 44.8242 22.2773 44.9141 curveto
+ 22.2773 44.9141 18.1328 47.25 17.6328 39.3984 curveto
+ 17.6328 39.3984 15.5781 44.0586 18.5039 46.3672 curveto
+ 18.5039 46.3672 23.2422 46.8672 22.8555 48.3984 curveto
+ 20.5352 52.4609 lineto
+ 19.4102 54.1445 19.9531 53.332 19.9531 53.332 curveto
+fill
+
+
+% 163 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 26.3398 48.3984 moveto
+ 26.3398 48.3984 30.5195 48.4023 31.5625 46.6563 curveto
+ 33.8867 43.7539 lineto
+ 33.8867 43.7539 28.3516 46.8672 27.2109 47.2344 curveto
+ 25.7969 47.6328 26.3398 48.3984 26.3398 48.3984 curveto
+ closepath
+fill
+
+
+% 164 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 39.1094 46.3672 moveto
+ 39.1094 46.3672 39.8438 45.9727 39.9805 45.2031 curveto
+ 40.0977 44.1836 40.8672 44.0586 40.5625 43.1719 curveto
+ 40.3555 42.2695 39.7148 41.5039 39.6914 42.8828 curveto
+ 39.7148 44.0586 39.2031 44.6953 38.8203 45.2031 curveto
+ 38.6953 45.4648 38.1836 46.8672 39.1094 46.3672 curveto
+ closepath
+fill
+
+
+% 165 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 42.0117 26.918 moveto
+ 42.0117 26.918 44.6953 28.0938 45.7852 29.2422 curveto
+ 46.7383 30.3945 46.5938 28.7461 48.1055 28.9492 curveto
+ 50.0117 29.0039 49.5586 34.1758 49.5586 34.1758 curveto
+ 51.0078 31.5625 lineto
+ 51.0078 31.5625 51.3359 27.0742 48.6875 27.7891 curveto
+ 47.5352 28.2148 47.1211 27.7109 47.5273 27.5 curveto
+ 48.1445 27.1992 45.8477 27.0742 46.6563 26.6289 curveto
+ 47.6328 26.0508 43.0352 27.7109 43.7539 24.3086 curveto
+ 42.0117 26.918 lineto
+ closepath
+fill
+
+
+% 166 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 46.0742 22.2773 moveto
+ 46.0742 22.2773 50.9531 20.8164 52.1719 24.0156 curveto
+ 52.1719 24.0156 53.6367 23.1133 53.0391 22.2773 curveto
+ 52.2305 21.1992 51.8789 21.1133 51.8789 21.1133 curveto
+ 51.8789 21.1133 50.125 20.6875 50.4297 20.5352 curveto
+ 50.5078 20.1758 51.3008 19.082 51.3008 19.082 curveto
+ 51.3008 19.082 48.0156 21.0078 46.0742 22.2773 curveto
+ closepath
+fill
+
+
+% 167 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -26.7734 -2.68359 moveto
+ -26.7461 -3.42578 -26.2109 -3.68359 -25.6133 -3.84375 curveto
+ -24.9922 -3.58984 -24.1641 -2.59766 -23.582 -3.26563 curveto
+ -23.4102 -3.10156 -23.1641 -3.08594 -23.0 -2.97656 curveto
+ -22.9023 -2.58594 -22.9883 -2.25391 -23.0 -2.10547 curveto
+ -22.707 -1.58984 -22.4805 -1.15625 -22.4219 -0.652344 curveto
+ -23.1172 -0.476563 -23.3047 0.132813 -23.293 0.796875 curveto
+ -23.1328 0.777344 -22.9961 0.839844 -23.0 1.08984 curveto
+ -23.1172 1.05469 -23.2227 1.12891 -23.293 1.08984 curveto
+ -23.2617 1.17188 -23.2148 1.09375 -23.293 1.08984 curveto
+ -22.9883 1.13672 -23.0273 1.33984 -23.0 1.37891 curveto
+ -23.2539 2.01953 -23.8984 2.10547 -24.4531 1.66797 curveto
+ -24.4102 1.90625 -24.5742 1.84375 -24.7422 1.96094 curveto
+ -24.6953 2.03516 -24.8242 2.20703 -25.0313 2.25 curveto
+ -25.0547 2.6875 -25.5742 2.33594 -25.9023 2.53906 curveto
+ -26.1719 2.79297 -26.5117 3.01953 -26.7734 2.82813 curveto
+ -27.4336 2.50391 -27.9766 2.11719 -28.2266 1.66797 curveto
+ -28.5469 1.29297 -28.6211 0.882813 -28.5156 0.507813 curveto
+ -28.5898 0.371094 -28.1523 0.484375 -27.9336 0.21875 curveto
+ -27.8359 -0.371094 -28.418 -0.535156 -28.5156 -0.941406 curveto
+ -28.7227 -1.07422 -28.6406 -1.17188 -28.5156 -1.23438 curveto
+ -28.4063 -1.24219 -28.1562 -1.18359 -28.2266 -1.23438 curveto
+ -28.5117 -2.34766 -27.6328 -2.56641 -26.7734 -2.68359 curveto
+ closepath
+fill
+
+
+% 168 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -23.8711 -9.07031 moveto
+ -23.8125 -8.44922 -23.3047 -7.88672 -23.582 -7.32813 curveto
+ -23.7344 -7.38672 -23.7734 -7.45703 -23.8711 -7.32813 curveto
+ -23.8594 -7.45703 -23.9023 -7.38672 -23.8711 -7.32813 curveto
+ -24.4219 -8.05078 -25.5898 -8.34766 -25.6133 -9.35938 curveto
+ -25.5352 -9.39844 -25.1875 -9.69141 -25.6133 -9.94141 curveto
+ -24.8984 -10.3281 -24.8828 -11.0859 -24.4531 -11.6836 curveto
+ -24.1875 -11.5938 -23.8008 -11.4766 -23.293 -11.3906 curveto
+ -23.5469 -10.8281 -23.5078 -10.2891 -23.8711 -9.94141 curveto
+ -23.9102 -9.64453 -23.8164 -9.30078 -23.8711 -9.07031 curveto
+ closepath
+fill
+
+
+% 169 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ 29.2422 -6.16797 moveto
+ 29.2422 -6.16797 34.625 -9.36719 30.1133 -4.42578 curveto
+ 27.3281 -1.40625 24.0156 0.507813 24.0156 0.507813 curveto
+ 24.0156 0.507813 20.8164 1.78906 19.6641 2.25 curveto
+ 18.5156 2.55469 13.6641 4.21484 12.6992 4.28125 curveto
+ 11.6211 4.46875 8.55469 5.74609 6.3125 4.57031 curveto
+ 4.21484 3.19141 1.66797 1.66797 1.66797 1.66797 curveto
+ 1.66797 1.66797 6.89844 4.46875 8.05469 3.69922 curveto
+ 9.19531 2.9375 11.4922 3.06641 13.2773 1.96094 curveto
+ 13.2773 1.96094 18.1328 0.636719 19.082 -0.0742188 curveto
+ 20.1758 -0.636719 23.4961 -4.34375 24.0156 -4.13672 curveto
+ 24.5195 -3.83203 23.8828 -3.70313 23.4375 -2.68359 curveto
+ 23.1133 -1.91797 23.7539 -1.40625 26.3398 -3.55469 curveto
+ 28.8633 -5.49219 29.2422 -6.16797 29.2422 -6.16797 curveto
+ closepath
+fill
+
+
+% 170 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 26.918 -4.13672 moveto
+ 26.918 -4.13672 26.4297 -0.0625 23.7266 -0.652344 curveto
+ 23.7266 -0.652344 21.0977 0.738281 20.2422 1.37891 curveto
+ 20.2422 1.37891 17.6289 1.91016 17.3398 2.25 curveto
+ 11.3125 4.88281 6.61328 3.44141 6.3125 3.69922 curveto
+ 6.26563 4.15625 -0.00390625 1.88281 -1.23438 0.507813 curveto
+ -1.27734 0.4375 2.11328 2.36719 5.15234 2.82813 curveto
+ 7.85156 3.48438 14.7461 2.89063 18.2109 1.08984 curveto
+ 19.1758 0.640625 22.0313 -1.20313 22.8555 -1.23438 curveto
+ 23.6484 -1.13281 26.918 -4.13672 26.918 -4.13672 curveto
+ closepath
+fill
+
+
+% 171 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ 28.082 -12.2617 moveto
+ 28.082 -12.2617 32.9492 -11.6211 27.5 -11.1016 curveto
+ 27.5 -11.1016 21.8359 -10.4727 20.5352 -8.78125 curveto
+ 20.5352 -8.78125 16.2188 -5.875 15.3086 -5.87891 curveto
+ 14.4297 -5.61719 4.85156 -3.32031 4.86328 -2.68359 curveto
+ 4.59766 -1.78906 2.80859 -1.78906 2.25 -2.10547 curveto
+ 1.78906 -2.30078 2.04297 -2.68359 2.82813 -2.97656 curveto
+ 3.83203 -3.19141 13.793 -8.42969 15.8906 -8.78125 curveto
+ 17.8789 -9.19531 21.582 -11.6211 23.1445 -11.9727 curveto
+ 24.6484 -12.3867 28.082 -12.2617 28.082 -12.2617 curveto
+ closepath
+fill
+
+
+% 172 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 21.9844 -9.94141 moveto
+ 21.9844 -9.94141 24.6016 -9.76172 21.9844 -9.35938 curveto
+ 21.9844 -9.35938 19.043 -8.40625 18.5039 -7.61719 curveto
+ 18.5039 -7.61719 16.1641 -6.05078 15.6016 -5.87891 curveto
+ 15.25 -5.92188 10.793 -4.74609 10.668 -4.42578 curveto
+ 10.6602 -3.96094 -0.21484 0.0546875 -1.52344 -0.941406 curveto
+ -2.55469 -1.63281 0.605469 -1.09766 3.69922 -2.39453 curveto
+ 4.11719 -2.70313 14.9219 -7.35938 15.8906 -7.61719 curveto
+ 17.0156 -7.75391 18.9102 -8.99609 19.6641 -9.07031 curveto
+ 20.4805 -9.38672 21.9844 -9.94141 21.9844 -9.94141 curveto
+ closepath
+fill
+
+
+% 173 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 24.3086 -10.8125 moveto
+ 24.3086 -10.8125 22.7305 -10.5977 23.1445 -11.1016 curveto
+ 23.4961 -11.6211 24.3086 -11.3906 24.3086 -11.3906 curveto
+ 24.3086 -10.8125 lineto
+ closepath
+fill
+
+
+% 174 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 26.6289 -11.1016 moveto
+ 26.6289 -11.1016 25.0313 -11.1094 25.4688 -11.6836 curveto
+ 25.7969 -12.1328 26.6289 -11.9727 26.6289 -11.9727 curveto
+ 26.6289 -11.1016 lineto
+ closepath
+fill
+
+
+% 175 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 30.1133 -11.6836 moveto
+ 30.1133 -11.6836 28.3516 -11.6211 28.6602 -12.2617 curveto
+ 29.1172 -12.6445 29.8203 -12.2617 29.8203 -12.2617 curveto
+ 30.1133 -11.6836 lineto
+ closepath
+fill
+
+
+% 176 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 32.4336 -11.9727 moveto
+ 32.4336 -11.9727 30.7773 -11.8789 31.2734 -12.2617 curveto
+ 31.543 -12.8984 32.4336 -12.5547 32.4336 -12.5547 curveto
+ 32.4336 -11.9727 lineto
+ closepath
+fill
+
+
+% 177 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 20.2422 0.507813 moveto
+ 20.2422 0.507813 18.7734 0.636719 19.082 0.21875 curveto
+ 19.5391 -0.382813 20.5352 -0.363281 20.5352 -0.363281 curveto
+ 20.2422 0.507813 lineto
+ closepath
+fill
+
+
+% 178 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 23.4375 -1.23438 moveto
+ 23.4375 -1.23438 21.293 -0.464844 21.9844 -1.52344 curveto
+ 22.4766 -2.04297 23.1445 -1.8125 23.1445 -1.8125 curveto
+ 23.4375 -1.23438 lineto
+ closepath
+fill
+
+
+% 179 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 26.918 -2.68359 moveto
+ 26.918 -2.68359 25.2852 -2.55469 25.7578 -2.97656 curveto
+ 26.0508 -3.57422 26.918 -3.26563 26.918 -3.26563 curveto
+ 26.918 -2.68359 lineto
+ closepath
+fill
+
+
+% 180 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 29.2422 -4.71484 moveto
+ 29.2422 -4.71484 27.7109 -4.46875 28.082 -5.00781 curveto
+ 28.4766 -5.49219 29.2422 -5.29688 29.2422 -5.29688 curveto
+ 29.2422 -4.71484 lineto
+ closepath
+fill
+
+
+% 181 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 31.5625 -6.16797 moveto
+ 31.5625 -6.16797 29.8828 -6.00391 30.4023 -6.45703 curveto
+ 30.6484 -7.02344 31.2734 -6.74609 31.2734 -6.74609 curveto
+ 31.5625 -6.16797 lineto
+ closepath
+fill
+
+
+% 182 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 19.082 -8.19922 moveto
+ 19.082 -8.19922 16.8555 -8.00391 17.3398 -8.78125 curveto
+ 17.875 -9.36328 18.793 -9.07031 18.793 -9.07031 curveto
+ 19.082 -8.19922 lineto
+ closepath
+fill
+
+
+% 183 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 15.6016 -6.74609 moveto
+ 15.6016 -6.74609 13.5352 -6.46875 14.1484 -7.03906 curveto
+ 14.5547 -7.82813 15.6016 -7.61719 15.6016 -7.61719 curveto
+ 15.6016 -6.74609 lineto
+ closepath
+fill
+
+
+% 184 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 12.4063 -5.29688 moveto
+ 12.4063 -5.29688 10.0898 -5.06641 10.668 -5.87891 curveto
+ 11.1055 -6.42578 12.1172 -6.16797 12.1172 -6.16797 curveto
+ 12.4063 -5.29688 lineto
+ closepath
+fill
+
+
+% 185 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 8.92578 -3.84375 moveto
+ 8.92578 -3.84375 6.76563 -3.53125 7.18359 -4.13672 curveto
+ 7.78906 -4.89453 8.92578 -4.42578 8.92578 -4.42578 curveto
+ 8.92578 -3.84375 lineto
+ closepath
+fill
+
+
+% 186 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 17.9219 1.96094 moveto
+ 17.9219 1.96094 15.5781 2.21484 16.1797 1.66797 curveto
+ 16.5977 0.855469 17.9219 0.796875 17.9219 0.796875 curveto
+ 17.9219 1.96094 lineto
+ closepath
+fill
+
+
+% 187 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 14.7305 3.12109 moveto
+ 14.7305 3.12109 12.3867 3.23438 12.9883 2.53906 curveto
+ 13.4063 1.875 14.7305 1.96094 14.7305 1.96094 curveto
+ 14.7305 3.12109 lineto
+ closepath
+fill
+
+
+% 188 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 21.6953 -9.64844 moveto
+ 21.6953 -9.64844 20.1758 -9.57813 20.5352 -10.2305 curveto
+ 20.9453 -10.5977 21.6953 -10.2305 21.6953 -10.2305 curveto
+ 21.6953 -9.64844 lineto
+ closepath
+fill
+
+
+% 189 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.4 0.85 1.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 45.2031 21.9844 moveto
+ 45.2031 21.9844 46.6133 19.1563 46.6563 18.2109 curveto
+ 46.6563 18.2109 46.4844 20.9453 46.0742 21.6953 curveto
+ 45.7188 22.2188 45.2031 21.9844 45.2031 21.9844 curveto
+ closepath
+fill
+
+
+% 190 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.4 0.85 1.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 51.0078 17.6328 moveto
+ 51.0078 17.6328 52.1016 12.8984 51.8789 12.1172 curveto
+ 51.8789 12.1172 52.3594 15.707 52.1719 16.1797 curveto
+ 52.1016 16.4727 51.0078 17.6328 51.0078 17.6328 curveto
+ closepath
+fill
+
+
+% 191 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ 44.332 41.4297 moveto
+ 44.625 40.2695 lineto
+ 45.2031 40.2695 lineto
+ 45.2031 40.2695 40.6758 36.2031 40.5625 33.8867 curveto
+ 40.5625 33.8867 40.2266 36.3945 44.332 41.4297 curveto
+ closepath
+fill
+
+
+% 192 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 43.1719 40.8516 moveto
+ 43.3047 41.043 43.2383 41.2813 43.4648 41.4297 curveto
+ 43.625 41.5273 42.9531 41.543 42.8828 41.7227 curveto
+ 43.1484 42.1602 43.0859 42.1641 43.1719 42.5938 curveto
+ 43.1445 42.7617 42.957 43.2539 42.8828 43.4648 curveto
+ 42.375 43.9219 42.7969 44.8594 42.3008 45.4961 curveto
+ 42.1758 45.4453 42.0547 45.6211 42.0117 45.7852 curveto
+ 41.7539 46.0625 41.375 46.2188 41.1406 46.3672 curveto
+ 40.9727 46.5703 41.0352 46.8359 40.8516 46.9453 curveto
+ 40.625 46.7695 40.2305 46.8125 40.2695 46.6563 curveto
+ 40.2813 45.8672 40.7031 45.3164 41.1406 44.9141 curveto
+ 40.9688 44.5586 41.1133 44.3594 41.1406 44.043 curveto
+ 41.6328 43.3438 41.5703 42.4375 41.7227 41.4297 curveto
+ 41.6289 41.5 41.7266 41.4766 41.7227 41.4297 curveto
+ 41.6133 40.7148 41.4258 40.0117 41.1406 39.3984 curveto
+ 41.0273 39.0039 40.875 38.7188 40.8516 38.5273 curveto
+ 40.793 38.2031 40.7617 37.9375 40.8516 37.6602 curveto
+ 40.2422 36.7891 40.6602 35.9414 40.2695 34.7539 curveto
+ 40.2188 34.6172 39.6797 34.0039 39.6914 34.1758 curveto
+ 40.6289 34.3359 40.668 34.4609 40.8516 34.7539 curveto
+ 40.7695 34.9023 40.875 35.3398 40.8516 35.625 curveto
+ 40.9688 35.5859 41.0234 36.1875 41.1406 36.207 curveto
+ 41.5313 36.9844 41.0977 36.9297 41.4297 37.6602 curveto
+ 41.9922 37.8984 42.3008 38.2539 42.5938 38.5273 curveto
+ 42.7227 38.6875 42.3594 38.9219 42.3008 39.1094 curveto
+ 42.7617 39.3984 43.1328 39.6445 42.8828 39.9805 curveto
+ 42.9766 40.3398 42.9297 40.6797 43.1719 40.8516 curveto
+ closepath
+fill
+
+
+% 193 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 44.332 40.2695 moveto
+ 44.332 40.2695 44.1836 38.1836 43.4648 37.6602 curveto
+ 42.6523 37.1602 43.0352 37.418 44.043 37.6602 curveto
+ 45.0781 38.1836 44.625 38.5273 44.625 38.5273 curveto
+ 44.625 38.5273 45.5898 38.3125 44.9141 37.6602 curveto
+ 44.0586 37.0352 42.9102 36.2695 43.4648 36.207 curveto
+ 43.9297 36.2695 46.3555 37.543 46.3672 38.5273 curveto
+ 46.3555 39.332 46.6563 40.5625 46.6563 40.5625 curveto
+ 46.6563 40.5625 46.3242 40.8984 44.9141 40.8516 curveto
+ 44.9141 40.8516 44.3438 40.6406 44.332 40.2695 curveto
+ closepath
+fill
+gsave %{
+
+
+% 194 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 44.625 34.4648 moveto
+ 44.625 34.4648 47.2891 35.3086 53.332 34.1758 curveto
+ 53.332 34.1758 50.3047 34.8867 44.332 34.1758 curveto
+ 41.0273 33.7617 44.625 34.4648 44.625 34.4648 curveto
+ closepath
+fill
+grestore %}
+
+
+% 195 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 44.625 34.4648 moveto
+ 44.625 34.4648 47.2891 35.3086 53.332 34.1758 curveto
+ 53.332 34.1758 50.3047 34.8867 44.332 34.1758 curveto
+ 41.0273 33.7617 44.625 34.4648 44.625 34.4648 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 196 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 44.043 34.4648 moveto
+ 44.043 34.4648 46.5313 35.5625 52.4609 35.0469 curveto
+ 52.4609 35.0469 49.5742 35.4063 43.7539 34.1758 curveto
+ 40.4258 33.4805 44.043 34.4648 44.043 34.4648 curveto
+ closepath
+fill
+grestore %}
+
+
+% 197 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 44.043 34.4648 moveto
+ 44.043 34.4648 46.5313 35.5625 52.4609 35.0469 curveto
+ 52.4609 35.0469 49.5742 35.4063 43.7539 34.1758 curveto
+ 40.4258 33.4805 44.043 34.4648 44.043 34.4648 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 198 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 43.4648 34.4648 moveto
+ 43.4648 34.4648 45.8711 35.7266 51.8789 35.625 curveto
+ 51.8789 35.625 48.9141 35.793 43.1719 34.1758 curveto
+ 39.9336 33.1953 43.4648 34.4648 43.4648 34.4648 curveto
+ closepath
+fill
+grestore %}
+
+
+% 199 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 43.4648 34.4648 moveto
+ 43.4648 34.4648 45.8711 35.7266 51.8789 35.625 curveto
+ 51.8789 35.625 48.9141 35.793 43.1719 34.1758 curveto
+ 39.9336 33.1953 43.4648 34.4648 43.4648 34.4648 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 200 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 42.8828 34.4648 moveto
+ 42.8828 34.4648 45.1016 35.7109 50.4297 36.207 curveto
+ 50.4297 36.207 47.8281 36.0078 42.8828 34.1758 curveto
+ 39.9727 32.9883 42.8828 34.4648 42.8828 34.4648 curveto
+ closepath
+fill
+grestore %}
+
+
+% 201 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 42.8828 34.4648 moveto
+ 42.8828 34.4648 45.1016 35.7109 50.4297 36.207 curveto
+ 50.4297 36.207 47.8281 36.0078 42.8828 34.1758 curveto
+ 39.9727 32.9883 42.8828 34.4648 42.8828 34.4648 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 202 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 6.02344 30.9844 moveto
+ 6.02344 30.9844 6.41406 30.7734 6.3125 31.2734 curveto
+ 6.27734 31.5273 -2.73047 35.7344 -3.84375 35.625 curveto
+ -3.84375 35.625 5.77344 31.4375 6.02344 30.9844 curveto
+ closepath
+fill
+grestore %}
+
+
+% 203 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 6.02344 30.9844 moveto
+ 6.02344 30.9844 6.41406 30.7734 6.3125 31.2734 curveto
+ 6.27734 31.5273 -2.73047 35.7344 -3.84375 35.625 curveto
+ -3.84375 35.625 5.77344 31.4375 6.02344 30.9844 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 204 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 7.18359 30.6914 moveto
+ 7.18359 30.6914 7.48047 30.5469 7.47266 30.9844 curveto
+ 7.40234 31.3086 -1.24609 36.2109 -2.39453 36.207 curveto
+ -2.39453 36.207 6.89453 31.2578 7.18359 30.6914 curveto
+ closepath
+fill
+grestore %}
+
+
+% 205 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 7.18359 30.6914 moveto
+ 7.18359 30.6914 7.48047 30.5469 7.47266 30.9844 curveto
+ 7.40234 31.3086 -1.24609 36.2109 -2.39453 36.207 curveto
+ -2.39453 36.207 6.89453 31.2578 7.18359 30.6914 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 206 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 8.34375 30.4023 moveto
+ 8.34375 30.4023 8.51563 30.0898 8.63281 30.4023 curveto
+ 8.48828 30.8555 2.16016 35.8047 -0.941406 36.4961 curveto
+ -0.941406 36.4961 4.78516 33.8086 8.34375 30.4023 curveto
+ closepath
+fill
+grestore %}
+
+
+% 207 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 8.34375 30.4023 moveto
+ 8.34375 30.4023 8.51563 30.0898 8.63281 30.4023 curveto
+ 8.48828 30.8555 2.16016 35.8047 -0.941406 36.4961 curveto
+ -0.941406 36.4961 4.78516 33.8086 8.34375 30.4023 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 208 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 9.21484 29.8203 moveto
+ 9.21484 29.8203 9.40625 29.5195 9.50391 29.8203 curveto
+ 9.38281 30.2109 3.6875 34.6641 0.796879 35.3359 curveto
+ 0.796879 35.3359 6.04688 32.8672 9.21484 29.8203 curveto
+ closepath
+fill
+grestore %}
+
+
+% 209 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 9.21484 29.8203 moveto
+ 9.21484 29.8203 9.40625 29.5195 9.50391 29.8203 curveto
+ 9.38281 30.2109 3.6875 34.6641 0.796879 35.3359 curveto
+ 0.796879 35.3359 6.04688 32.8672 9.21484 29.8203 curveto
+ closepath
+stroke
+
+
+% 210 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ 19.375 -17.4883 moveto
+ 19.375 -17.4883 24.1367 -16.7305 18.793 -16.3242 curveto
+ 18.793 -16.3242 13.0273 -15.5781 11.8281 -14.0039 curveto
+ 11.8281 -14.0039 7.40625 -10.9844 6.60156 -10.8125 curveto
+ 5.61719 -10.7266 0.382813 -9.57813 0.21875 -8.78125 curveto
+ 0.128906 -8.04688 -1.78906 -7.28125 -2.39453 -7.61719 curveto
+ -2.80859 -7.78906 -2.80859 -10.7266 -1.8125 -11.1016 curveto
+ -1.02343 -11.2383 4.98047 -13.5352 6.89453 -14.0039 curveto
+ 9.06641 -14.3047 12.7695 -16.7305 14.4375 -17.1953 curveto
+ 15.8359 -17.4961 19.375 -17.4883 19.375 -17.4883 curveto
+ closepath
+fill
+
+
+% 211 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -4.13672 -5.58594 moveto
+ -4.13672 -5.58594 -3.06641 -6.06641 -2.68359 -7.03906 curveto
+ -2.68359 -7.03906 -0.636719 -10.2813 3.99219 -11.3906 curveto
+ 3.99219 -11.3906 11.2383 -14.1758 13.8594 -14.875 curveto
+ 13.8594 -14.875 18.0078 -16.4102 20.2422 -16.0352 curveto
+ 20.2422 -16.0352 22.6016 -16.2188 20.5352 -16.6172 curveto
+ 20.5352 -16.6172 14.1758 -16.0898 12.9883 -15.457 curveto
+ 12.9883 -15.457 8.10938 -13.8555 7.18359 -13.1328 curveto
+ 6.19531 -12.1953 0.382813 -10.5977 -0.363281 -9.94141 curveto
+ -1.02343 -9.32422 -4.15234 -6.64063 -4.13672 -5.58594 curveto
+ closepath
+fill
+
+
+% 212 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 14.7305 -15.7461 moveto
+ 14.7305 -15.7461 13.0547 -15.543 13.2773 -16.0352 curveto
+ 13.7891 -16.5313 14.4375 -16.3242 14.4375 -16.3242 curveto
+ 14.7305 -15.7461 lineto
+ closepath
+fill
+
+
+% 213 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 17.0508 -16.0352 moveto
+ 17.0508 -16.0352 15.3555 -15.9727 15.6016 -16.3242 curveto
+ 16.0898 -16.9648 16.7617 -16.6172 16.7617 -16.6172 curveto
+ 17.0508 -16.0352 lineto
+ closepath
+fill
+
+
+% 214 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 20.2422 -16.3242 moveto
+ 20.2422 -16.3242 18.6836 -16.375 19.082 -16.9063 curveto
+ 19.418 -17.3633 20.2422 -17.1953 20.2422 -17.1953 curveto
+ 20.2422 -16.3242 lineto
+ closepath
+fill
+
+
+% 215 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 22.8555 -16.6172 moveto
+ 22.8555 -16.6172 21.1211 -16.5469 21.4063 -16.9063 curveto
+ 21.8555 -17.5352 22.5664 -17.1953 22.5664 -17.1953 curveto
+ 22.8555 -16.6172 lineto
+ closepath
+fill
+
+
+% 216 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 9.50391 -13.1328 moveto
+ 9.50391 -13.1328 7.22266 -13.1563 7.76563 -13.7148 curveto
+ 8.20313 -14.4727 9.21484 -14.0039 9.21484 -14.0039 curveto
+ 9.50391 -13.1328 lineto
+ closepath
+fill
+
+
+% 217 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 6.02344 -11.9727 moveto
+ 6.02344 -11.9727 4.25 -10.7852 4.28125 -12.2617 curveto
+ 4.50781 -13.2188 6.02344 -12.5547 6.02344 -12.5547 curveto
+ 6.02344 -11.9727 lineto
+ closepath
+fill
+
+
+% 218 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 3.12109 -10.8125 moveto
+ 3.12109 -10.8125 0.949219 -9.76172 1.37891 -11.3906 curveto
+ 1.75391 -12.2852 3.12109 -11.6836 3.12109 -11.6836 curveto
+ 3.12109 -10.8125 lineto
+ closepath
+fill
+
+
+% 219 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 0.21875 -9.35938 moveto
+ 0.21875 -9.35938 -1.19141 -7.83594 -1.52344 -9.94141 curveto
+ -1.66406 -10.7734 -0.0742188 -10.2305 -0.0742188 -10.2305 curveto
+ 0.21875 -9.35938 lineto
+ closepath
+fill
+
+
+% 220 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 12.1172 -14.5859 moveto
+ 12.1172 -14.5859 10.5156 -14.6133 10.957 -15.1641 curveto
+ 11.25 -15.6016 12.1172 -15.457 12.1172 -15.457 curveto
+ 12.1172 -14.5859 lineto
+ closepath
+fill
+gsave %{
+
+
+% 221 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 0.796879 24.0156 moveto
+ 0.796879 24.0156 1.05078 23.8594 1.08984 24.3086 curveto
+ 1.05078 24.543 -4.53125 28.7773 -7.32813 29.2422 curveto
+ -7.32813 29.2422 -2.21484 27.0703 0.796879 24.0156 curveto
+ closepath
+fill
+grestore %}
+
+
+% 222 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 0.796879 24.0156 moveto
+ 0.796879 24.0156 1.05078 23.8594 1.08984 24.3086 curveto
+ 1.05078 24.543 -4.53125 28.7773 -7.32813 29.2422 curveto
+ -7.32813 29.2422 -2.21484 27.0703 0.796879 24.0156 curveto
+ closepath
+stroke
+
+
+% 223 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -0.0742188 3.69922 moveto
+ -0.0742188 3.69922 -7.15234 -3.44922 -10.2305 -4.71484 curveto
+ -10.2305 -4.71484 -13.0273 -8.17188 -11.6836 -16.6172 curveto
+ -11.6836 -16.6172 -10.7266 -18.9023 -9.64844 -12.2617 curveto
+ -9.64844 -12.2617 -10.7266 -4.21484 -7.03906 -9.35938 curveto
+ -7.03906 -9.35938 -4.46875 -6.16016 -6.45703 -6.16797 curveto
+ -6.45703 -6.16797 -7.53516 -6.89844 -7.61719 -6.45703 curveto
+ -7.78906 -5.875 -5.23438 -1.53125 0.21875 3.12109 curveto
+ 5.74609 7.66016 -0.0742188 3.69922 -0.0742188 3.69922 curveto
+ closepath
+fill
+gsave %{
+
+
+% 224 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 18.5039 -8.78125 moveto
+ 18.5039 -8.78125 18.582 -8.10938 17.9219 -8.48828 curveto
+ 17.4297 -8.62109 -12.6445 -10.5977 -22.7109 -18.3594 curveto
+ -22.7109 -18.3594 -8.30078 -10.8555 18.5039 -8.78125 curveto
+ closepath
+fill
+grestore %}
+
+
+% 225 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 18.5039 -8.78125 moveto
+ 18.5039 -8.78125 18.582 -8.10938 17.9219 -8.48828 curveto
+ 17.4297 -8.62109 -12.6445 -10.5977 -22.7109 -18.3594 curveto
+ -22.7109 -18.3594 -8.30078 -10.8555 18.5039 -8.78125 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 226 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 15.3086 -7.32813 moveto
+ 15.3086 -7.32813 15.2617 -6.70313 14.7305 -7.03906 curveto
+ 14.1133 -7.21484 -29.5 -6.89844 -36.9336 -17.1953 curveto
+ -36.9336 -17.1953 -30.0117 -9.19531 15.3086 -7.32813 curveto
+ closepath
+fill
+grestore %}
+
+
+% 227 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 15.3086 -7.32813 moveto
+ 15.3086 -7.32813 15.2617 -6.70313 14.7305 -7.03906 curveto
+ 14.1133 -7.21484 -29.5 -6.89844 -36.9336 -17.1953 curveto
+ -36.9336 -17.1953 -30.0117 -9.19531 15.3086 -7.32813 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 228 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 11.5352 -5.87891 moveto
+ 11.5352 -5.87891 11.5586 -5.42578 10.957 -5.58594 curveto
+ 10.4063 -5.9375 -44.9531 -1.78906 -52.6055 -12.2617 curveto
+ -52.6055 -12.2617 -49.4219 -3.96094 11.5352 -5.87891 curveto
+ closepath
+fill
+grestore %}
+
+
+% 229 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 11.5352 -5.87891 moveto
+ 11.5352 -5.87891 11.5586 -5.42578 10.957 -5.58594 curveto
+ 10.4063 -5.9375 -44.9531 -1.78906 -52.6055 -12.2617 curveto
+ -52.6055 -12.2617 -49.4219 -3.96094 11.5352 -5.87891 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 230 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 8.34375 -4.42578 moveto
+ 8.34375 -4.42578 8.36328 -3.89453 7.76563 -4.13672 curveto
+ 7.21484 -4.40625 -31.8008 7.91797 -39.2539 -2.39453 curveto
+ -39.2539 -2.39453 -35.0547 5.42578 8.34375 -4.42578 curveto
+ closepath
+fill
+grestore %}
+
+
+% 231 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 8.34375 -4.42578 moveto
+ 8.34375 -4.42578 8.36328 -3.89453 7.76563 -4.13672 curveto
+ 7.21484 -4.40625 -31.8008 7.91797 -39.2539 -2.39453 curveto
+ -39.2539 -2.39453 -35.0547 5.42578 8.34375 -4.42578 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 232 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 26.918 -11.6836 moveto
+ 26.918 -11.6836 26.8828 -11.1758 26.3398 -11.3906 curveto
+ 25.7344 -11.6836 20.0508 -12.3867 19.375 -24.7422 curveto
+ 19.375 -24.7422 21.7109 -11.3672 26.918 -11.6836 curveto
+ closepath
+fill
+grestore %}
+
+
+% 233 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 26.918 -11.6836 moveto
+ 26.918 -11.6836 26.8828 -11.1758 26.3398 -11.3906 curveto
+ 25.7344 -11.6836 20.0508 -12.3867 19.375 -24.7422 curveto
+ 19.375 -24.7422 21.7109 -11.3672 26.918 -11.6836 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 234 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 29.5313 -12.2617 moveto
+ 29.5313 -12.2617 29.6914 -11.6836 29.2422 -11.9727 curveto
+ 28.543 -12.1953 24.0078 -10.7266 24.8867 -23.0 curveto
+ 24.8867 -23.0 24.5195 -11.8789 29.5313 -12.2617 curveto
+ closepath
+fill
+grestore %}
+
+
+% 235 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 29.5313 -12.2617 moveto
+ 29.5313 -12.2617 29.6914 -11.6836 29.2422 -11.9727 curveto
+ 28.543 -12.1953 24.0078 -10.7266 24.8867 -23.0 curveto
+ 24.8867 -23.0 24.5195 -11.8789 29.5313 -12.2617 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 236 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 32.1445 -12.2617 moveto
+ 32.1445 -12.2617 32.2461 -11.8125 31.5625 -11.9727 curveto
+ 31.0977 -12.3242 26.1797 -12.5156 30.1133 -19.8086 curveto
+ 30.1133 -19.8086 27.0742 -12.0039 32.1445 -12.2617 curveto
+ closepath
+fill
+grestore %}
+
+
+% 237 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 32.1445 -12.2617 moveto
+ 32.1445 -12.2617 32.2461 -11.8125 31.5625 -11.9727 curveto
+ 31.0977 -12.3242 26.1797 -12.5156 30.1133 -19.8086 curveto
+ 30.1133 -19.8086 27.0742 -12.0039 32.1445 -12.2617 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 238 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 17.0508 1.66797 moveto
+ 17.0508 1.66797 17.2148 1.12891 16.7617 1.37891 curveto
+ 11.5898 5.54688 1.23047 24.3516 -16.6172 26.0469 curveto
+ -16.6172 26.0469 -4.31641 30.0195 17.0508 1.66797 curveto
+ closepath
+fill
+grestore %}
+
+
+% 239 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 17.0508 1.66797 moveto
+ 17.0508 1.66797 17.2148 1.12891 16.7617 1.37891 curveto
+ 11.5898 5.54688 1.23047 24.3516 -16.6172 26.0469 curveto
+ -16.6172 26.0469 -4.31641 30.0195 17.0508 1.66797 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 240 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 13.5703 2.25 moveto
+ 13.5703 2.25 13.9297 2.72266 13.2773 2.82813 curveto
+ 12.7383 3.12109 -23.1602 26.2695 -35.7734 23.7266 curveto
+ -35.7734 23.7266 -27.0469 26.125 13.5703 2.25 curveto
+ closepath
+fill
+grestore %}
+
+
+% 241 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 13.5703 2.25 moveto
+ 13.5703 2.25 13.9297 2.72266 13.2773 2.82813 curveto
+ 12.7383 3.12109 -23.1602 26.2695 -35.7734 23.7266 curveto
+ -35.7734 23.7266 -27.0469 26.125 13.5703 2.25 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 242 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 20.2422 0.507813 moveto
+ 20.2422 0.507813 20.3125 -0.117188 19.6641 0.21875 curveto
+ 16.9023 1.82813 15.7461 20.0938 1.96094 20.5352 curveto
+ 1.96094 20.5352 12.1836 25.1914 20.2422 0.507813 curveto
+ closepath
+fill
+grestore %}
+
+
+% 243 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 20.2422 0.507813 moveto
+ 20.2422 0.507813 20.3125 -0.117188 19.6641 0.21875 curveto
+ 16.9023 1.82813 15.7461 20.0938 1.96094 20.5352 curveto
+ 1.96094 20.5352 12.1836 25.1914 20.2422 0.507813 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 244 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 26.6289 -3.26563 moveto
+ 26.6289 -3.26563 26.8555 -3.53906 26.3398 -3.55469 curveto
+ 22.9609 -3.03125 16.125 10.1445 1.96094 8.63281 curveto
+ 1.96094 8.63281 12.1445 13.1055 26.6289 -3.26563 curveto
+ closepath
+fill
+grestore %}
+
+
+% 245 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 26.6289 -3.26563 moveto
+ 26.6289 -3.26563 26.8555 -3.53906 26.3398 -3.55469 curveto
+ 22.9609 -3.03125 16.125 10.1445 1.96094 8.63281 curveto
+ 1.96094 8.63281 12.1445 13.1055 26.6289 -3.26563 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 246 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 22.8555 -1.23438 moveto
+ 22.8555 -1.23438 23.1797 -1.64063 22.5664 -1.52344 curveto
+ 19.457 -0.394531 15.2813 13.8477 1.08984 15.0195 curveto
+ 1.08984 15.0195 11.9414 17.5156 22.8555 -1.23438 curveto
+ closepath
+fill
+grestore %}
+
+
+% 247 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 22.8555 -1.23438 moveto
+ 22.8555 -1.23438 23.1797 -1.64063 22.5664 -1.52344 curveto
+ 19.457 -0.394531 15.2813 13.8477 1.08984 15.0195 curveto
+ 1.08984 15.0195 11.9414 17.5156 22.8555 -1.23438 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 248 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 28.6602 -4.71484 moveto
+ 28.6602 -4.71484 29.0391 -5.09375 28.6602 -5.00781 curveto
+ 25.8828 -4.68359 20.3477 5.98828 8.92578 4.57031 curveto
+ 8.92578 4.57031 17.1211 8.38672 28.6602 -4.71484 curveto
+ closepath
+fill
+grestore %}
+
+
+% 249 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 28.6602 -4.71484 moveto
+ 28.6602 -4.71484 29.0391 -5.09375 28.6602 -5.00781 curveto
+ 25.8828 -4.68359 20.3477 5.98828 8.92578 4.57031 curveto
+ 8.92578 4.57031 17.1211 8.38672 28.6602 -4.71484 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 250 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 31.2734 -6.74609 moveto
+ 31.2734 -6.74609 31.5039 -6.98047 30.9844 -7.03906 curveto
+ 29.668 -6.84375 19.8828 3.71484 13.8594 -1.23438 curveto
+ 13.8594 -1.23438 17.8242 4.74609 31.2734 -6.74609 curveto
+ closepath
+fill
+grestore %}
+
+
+% 251 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 31.2734 -6.74609 moveto
+ 31.2734 -6.74609 31.5039 -6.98047 30.9844 -7.03906 curveto
+ 29.668 -6.84375 19.8828 3.71484 13.8594 -1.23438 curveto
+ 13.8594 -1.23438 17.8242 4.74609 31.2734 -6.74609 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 252 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 8.92578 3.41016 moveto
+ 8.92578 3.41016 9.36719 3.97656 8.63281 3.99219 curveto
+ 8.13672 4.22266 -30.3984 22.6484 -42.4453 18.5039 curveto
+ -42.4453 18.5039 -34.2383 22.0117 8.92578 3.41016 curveto
+ closepath
+fill
+grestore %}
+
+
+% 253 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 8.92578 3.41016 moveto
+ 8.92578 3.41016 9.36719 3.97656 8.63281 3.99219 curveto
+ 8.13672 4.22266 -30.3984 22.6484 -42.4453 18.5039 curveto
+ -42.4453 18.5039 -34.2383 22.0117 8.92578 3.41016 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 254 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 19.6641 -16.9063 moveto
+ 19.6641 -16.9063 19.7305 -16.4102 19.082 -16.6172 curveto
+ 18.582 -16.9219 13.6641 -17.1133 17.6328 -24.1641 curveto
+ 17.6328 -24.1641 14.5586 -16.6016 19.6641 -16.9063 curveto
+ closepath
+fill
+grestore %}
+
+
+% 255 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 19.6641 -16.9063 moveto
+ 19.6641 -16.9063 19.7305 -16.4102 19.082 -16.6172 curveto
+ 18.582 -16.9219 13.6641 -17.1133 17.6328 -24.1641 curveto
+ 17.6328 -24.1641 14.5586 -16.6016 19.6641 -16.9063 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 256 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 16.4727 -16.6172 moveto
+ 16.4727 -16.6172 16.4102 -15.8984 15.8906 -16.0352 curveto
+ 15.2617 -16.4102 9.57813 -17.1133 8.92578 -29.3867 curveto
+ 8.92578 -29.3867 11.2383 -16.0898 16.4727 -16.6172 curveto
+ closepath
+fill
+grestore %}
+
+
+% 257 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 16.4727 -16.6172 moveto
+ 16.4727 -16.6172 16.4102 -15.8984 15.8906 -16.0352 curveto
+ 15.2617 -16.4102 9.57813 -17.1133 8.92578 -29.3867 curveto
+ 8.92578 -29.3867 11.2383 -16.0898 16.4727 -16.6172 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 258 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 14.1484 -16.0352 moveto
+ 14.1484 -16.0352 14.2383 -15.3867 13.5703 -15.7461 curveto
+ 13.0898 -15.8984 5.23438 -16.9844 -2.39453 -27.3555 curveto
+ -2.39453 -27.3555 9.06641 -15.5781 14.1484 -16.0352 curveto
+ closepath
+fill
+grestore %}
+
+
+% 259 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 14.1484 -16.0352 moveto
+ 14.1484 -16.0352 14.2383 -15.3867 13.5703 -15.7461 curveto
+ 13.0898 -15.8984 5.23438 -16.9844 -2.39453 -27.3555 curveto
+ -2.39453 -27.3555 9.06641 -15.5781 14.1484 -16.0352 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 260 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 11.8281 -15.457 moveto
+ 11.8281 -15.457 11.8789 -14.7539 11.2461 -14.875 curveto
+ 10.6719 -15.1094 4.14844 -14.5 -7.91015 -25.3242 curveto
+ -7.91015 -25.3242 6.73047 -14.2578 11.8281 -15.457 curveto
+ closepath
+fill
+grestore %}
+
+
+% 261 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 11.8281 -15.457 moveto
+ 11.8281 -15.457 11.8789 -14.7539 11.2461 -14.875 curveto
+ 10.6719 -15.1094 4.14844 -14.5 -7.91015 -25.3242 curveto
+ -7.91015 -25.3242 6.73047 -14.2578 11.8281 -15.457 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 262 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 8.34375 -14.0039 moveto
+ 8.34375 -14.0039 8.55859 -13.3516 8.05469 -13.4219 curveto
+ 7.35156 -13.7031 -3.76563 -15.1406 -20.3906 -26.1953 curveto
+ -20.3906 -26.1953 3.40625 -12.8516 8.34375 -14.0039 curveto
+ closepath
+fill
+grestore %}
+
+
+% 263 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 8.34375 -14.0039 moveto
+ 8.34375 -14.0039 8.55859 -13.3516 8.05469 -13.4219 curveto
+ 7.35156 -13.7031 -3.76563 -15.1406 -20.3906 -26.1953 curveto
+ -20.3906 -26.1953 3.40625 -12.8516 8.34375 -14.0039 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 264 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 21.4063 -10.2305 moveto
+ 21.4063 -10.2305 21.3906 -9.64063 20.8242 -9.94141 curveto
+ 20.2422 -10.1523 3.19141 -10.9844 -6.45703 -19.5195 curveto
+ -6.45703 -19.5195 4.62891 -11.6289 21.4063 -10.2305 curveto
+ closepath
+fill
+grestore %}
+
+
+% 265 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 21.4063 -10.2305 moveto
+ 21.4063 -10.2305 21.3906 -9.64063 20.8242 -9.94141 curveto
+ 20.2422 -10.1523 3.19141 -10.9844 -6.45703 -19.5195 curveto
+ -6.45703 -19.5195 4.62891 -11.6289 21.4063 -10.2305 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 266 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 24.5977 -11.3906 moveto
+ 24.5977 -11.3906 24.582 -10.918 24.0156 -11.1016 curveto
+ 23.4336 -11.4297 15.5781 -12.5156 8.05469 -23.0 curveto
+ 8.05469 -23.0 19.4102 -11.1094 24.5977 -11.3906 curveto
+ closepath
+fill
+grestore %}
+
+
+% 267 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 24.5977 -11.3906 moveto
+ 24.5977 -11.3906 24.582 -10.918 24.0156 -11.1016 curveto
+ 23.4336 -11.4297 15.5781 -12.5156 8.05469 -23.0 curveto
+ 8.05469 -23.0 19.4102 -11.1094 24.5977 -11.3906 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 268 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 4.86328 -12.5547 moveto
+ 4.86328 -12.5547 5.12891 -11.8906 4.57031 -11.9727 curveto
+ 3.89844 -12.1523 -7.29688 -12.7734 -24.4531 -22.7109 curveto
+ -24.4531 -22.7109 0.21875 -11.7188 4.86328 -12.5547 curveto
+ closepath
+fill
+grestore %}
+
+
+% 269 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 4.86328 -12.5547 moveto
+ 4.86328 -12.5547 5.12891 -11.8906 4.57031 -11.9727 curveto
+ 3.89844 -12.1523 -7.29688 -12.7734 -24.4531 -22.7109 curveto
+ -24.4531 -22.7109 0.21875 -11.7188 4.86328 -12.5547 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 270 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 2.25 -11.6836 moveto
+ 2.25 -11.6836 2.44531 -11.1211 1.96094 -11.3906 curveto
+ 1.21484 -11.3867 -9.98047 -12.0039 -27.3555 -21.8398 curveto
+ -27.3555 -21.8398 -2.65625 -10.8242 2.25 -11.6836 curveto
+ closepath
+fill
+grestore %}
+
+
+% 271 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 2.25 -11.6836 moveto
+ 2.25 -11.6836 2.44531 -11.1211 1.96094 -11.3906 curveto
+ 1.21484 -11.3867 -9.98047 -12.0039 -27.3555 -21.8398 curveto
+ -27.3555 -21.8398 -2.65625 -10.8242 2.25 -11.6836 curveto
+ closepath
+stroke
+gsave %{
+
+
+% 272 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -0.941406 -9.94141 moveto
+ -0.941406 -9.94141 -0.617184 -9.52734 -1.23438 -9.64844 curveto
+ -1.84766 -9.78906 -15.5977 -11.1758 -44.1875 -22.1289 curveto
+ -44.1875 -22.1289 -5.71875 -9.22656 -0.941406 -9.94141 curveto
+ closepath
+fill
+grestore %}
+
+
+% 273 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ -0.941406 -9.94141 moveto
+ -0.941406 -9.94141 -0.617184 -9.52734 -1.23438 -9.64844 curveto
+ -1.84766 -9.78906 -15.5977 -11.1758 -44.1875 -22.1289 curveto
+ -44.1875 -22.1289 -5.71875 -9.22656 -0.941406 -9.94141 curveto
+ closepath
+stroke
+
+
+% 274 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 34.7539 -12.2617 moveto
+ 34.7539 -12.2617 33.0742 -12.1328 33.5938 -12.5547 curveto
+ 33.8438 -13.1523 34.4648 -12.8438 34.4648 -12.8438 curveto
+ 34.7539 -12.2617 lineto
+ closepath
+fill
+
+
+% 275 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 24.8867 -16.6172 moveto
+ 24.8867 -16.6172 23.2422 -16.6016 23.7266 -17.1953 curveto
+ 24.0078 -17.625 24.8867 -17.4883 24.8867 -17.4883 curveto
+ 24.8867 -16.6172 lineto
+ closepath
+fill
+
+
+% 276 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 27.7891 -16.6172 moveto
+ 27.7891 -16.6172 26.0508 -16.4727 26.3398 -16.9063 curveto
+ 26.8164 -17.4961 27.5 -17.1953 27.5 -17.1953 curveto
+ 27.7891 -16.6172 lineto
+ closepath
+fill
+
+
+% 277 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 58.2656 -12.8438 moveto
+ 58.2656 -12.8438 56.5469 -13.25 57.1055 -13.7148 curveto
+ 57.6094 -13.9648 58.2656 -13.4219 58.2656 -13.4219 curveto
+ 58.2656 -12.8438 lineto
+ closepath
+fill
+
+
+% 278 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 57.3945 -9.64844 moveto
+ 57.3945 -9.64844 55.9102 -10.1875 56.5234 -10.5195 curveto
+ 56.9688 -10.9023 57.6836 -10.5195 57.6836 -10.5195 curveto
+ 57.3945 -9.64844 lineto
+ closepath
+fill
+
+
+% 279 pathnumber
+% filledpath
+ 0 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 59.7148 -8.48828 moveto
+ 59.7148 -8.48828 58.207 -8.78125 58.8438 -9.07031 curveto
+ 59.2656 -9.49609 60.0078 -9.07031 60.0078 -9.07031 curveto
+ 59.7148 -8.48828 lineto
+ closepath
+fill
+
+
+% 280 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ 34.4648 -32.2891 moveto
+ 34.4648 -32.2891 34.8633 -32.3086 36.207 -32.8711 curveto
+ 36.7773 -32.9492 40.3555 -34.0977 42.0117 -37.2227 curveto
+ 42.0117 -37.2227 38.1836 -34.2266 34.4648 -32.2891 curveto
+ closepath
+fill
+
+
+% 281 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ 6.3125 -61.8945 moveto
+ 6.30469 -61.9688 6.28516 -62.1055 6.3125 -62.1836 curveto
+ 5.98438 -62.1211 5.58984 -62.2188 5.73047 -61.8945 curveto
+ 5.89844 -60.6406 6.17969 -59.0625 7.47266 -58.4102 curveto
+ 7.70313 -58.3984 8.16016 -58.5313 8.05469 -58.6992 curveto
+ 8.22656 -59.3008 8.26563 -59.7305 8.05469 -60.1523 curveto
+ 8.07031 -60.6523 7.37891 -60.6563 7.18359 -60.1523 curveto
+ 6.78906 -60.7461 6.65234 -61.3359 6.3125 -61.8945 curveto
+ closepath
+fill
+
+
+% 282 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ 9.79688 -63.3438 moveto
+ 9.64453 -63.8516 9.6875 -64.4453 9.21484 -64.5039 curveto
+ 9.0 -64.7188 8.40625 -64.4063 8.63281 -63.9258 curveto
+ 8.79688 -63.4063 8.92188 -62.6914 9.50391 -62.1836 curveto
+ 9.42969 -62.0273 9.35156 -61.8594 9.50391 -61.8945 curveto
+ 9.59375 -61.3633 9.95703 -61.1289 10.375 -61.3125 curveto
+ 10.7656 -61.9375 10.3984 -62.6172 9.79688 -63.0547 curveto
+ 9.86719 -63.2109 9.92188 -63.332 9.79688 -63.3438 curveto
+ closepath
+fill
+
+
+% 283 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ 22.5664 -61.6016 moveto
+ 22.5625 -61.6211 22.5742 -61.4727 22.5664 -61.3125 curveto
+ 22.3516 -61.043 22.1016 -60.6836 22.2773 -60.4414 curveto
+ 22.3203 -60.0195 22.6758 -60.0781 22.8555 -60.1523 curveto
+ 23.2422 -60.5781 23.2578 -61.1602 23.4375 -61.6016 curveto
+ 23.543 -61.7188 23.5273 -61.8984 23.7266 -61.8945 curveto
+ 23.8203 -62.1602 23.9609 -62.6445 24.0156 -62.7656 curveto
+ 23.9102 -62.9297 23.9688 -66.0898 24.0156 -65.957 curveto
+ 23.7031 -65.7734 22.7266 -62.668 22.5664 -62.4727 curveto
+ 22.6875 -62.1484 22.4531 -62.0 22.5664 -61.6016 curveto
+ closepath
+fill
+
+
+% 284 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ 30.6914 -59.5703 moveto
+ 29.8711 -58.7773 28.9805 -57.832 29.2422 -56.668 curveto
+ 29.1602 -56.3359 29.7266 -56.5039 29.8203 -56.668 curveto
+ 30.043 -57.9297 30.6953 -58.7773 31.5625 -59.5703 curveto
+ 32.2148 -60.1953 32.8086 -62.2227 33.0156 -62.4727 curveto
+ 31.7031 -60.707 30.9844 -59.8281 30.6914 -59.5703 curveto
+ closepath
+fill
+
+
+% 285 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ 35.0469 -57.5391 moveto
+ 34.8789 -57.5508 34.9766 -57.3945 35.0469 -57.25 curveto
+ 34.6016 -56.8242 34.1875 -56.4258 34.1758 -55.7969 curveto
+ 34.1797 -55.7813 34.3008 -55.6836 34.4648 -55.7969 curveto
+ 34.4961 -55.8125 34.6055 -55.8555 34.7539 -55.7969 curveto
+ 35.2891 -56.6797 35.7344 -57.5313 36.207 -58.4102 curveto
+ 36.2539 -58.543 36.6211 -59.9766 36.4961 -60.1523 curveto
+ 36.4453 -60.0391 35.8945 -58.7031 35.918 -58.6992 curveto
+ 35.4258 -58.4492 35.4219 -57.9336 35.0469 -57.5391 curveto
+ closepath
+fill
+
+
+% 286 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ 29.8203 -63.9258 moveto
+ 29.5625 -63.6328 29.0586 -63.2461 28.9492 -63.0547 curveto
+ 29.1328 -62.668 28.9844 -62.207 29.2422 -62.4727 curveto
+ 29.6758 -62.7305 30.7773 -63.1602 30.9844 -65.0859 curveto
+ 30.8711 -65.1953 29.9219 -64.3359 29.8203 -63.9258 curveto
+ closepath
+fill
+
+
+% 287 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ 25.1797 -58.4102 moveto
+ 24.9648 -58.2109 24.7422 -58.3633 24.5977 -58.4102 curveto
+ 24.3867 -58.1602 24.1914 -57.9805 24.0156 -57.8281 curveto
+ 23.7891 -57.0898 23.2227 -56.5078 23.1445 -55.7969 curveto
+ 23.6563 -55.293 23.8711 -55.9453 24.0156 -56.3789 curveto
+ 24.4961 -55.7266 24.8125 -56.3281 25.1797 -56.3789 curveto
+ 25.25 -56.5 25.3203 -56.3906 25.4688 -56.3789 curveto
+ 25.7188 -56.5391 25.9336 -56.8828 26.3398 -57.25 curveto
+ 26.3086 -57.1758 26.4375 -57.1172 26.6289 -57.25 curveto
+ 26.6953 -57.3555 27.0039 -57.4609 27.2109 -57.5391 curveto
+ 27.4492 -58.5391 28.4492 -59.2109 28.9492 -61.6016 curveto
+ 28.9297 -61.9063 27.6133 -59.4961 27.5 -59.2813 curveto
+ 27.1875 -58.8906 27.1523 -59.8047 26.6289 -59.5703 curveto
+ 26.7305 -59.582 26.668 -59.6602 26.6289 -59.5703 curveto
+ 26.5664 -59.6133 26.4961 -59.5391 26.3398 -59.5703 curveto
+ 26.3711 -59.4453 26.4141 -59.2695 26.3398 -59.2813 curveto
+ 25.9531 -58.9063 25.9805 -58.5664 25.7578 -58.1211 curveto
+ 25.5859 -58.4219 25.2461 -58.1914 25.1797 -58.4102 curveto
+ closepath
+fill
+
+
+% 288 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ 6.02344 -75.8242 moveto
+ 6.02344 -75.8242 3.64063 -69.2773 5.15234 -65.668 curveto
+ 5.15234 -65.668 1.40625 -72.6016 2.82813 -76.1133 curveto
+ 2.82813 -76.1133 3.0 -72.8555 4.28125 -71.1797 curveto
+ 4.28125 -71.1797 5.55469 -75.3477 6.02344 -75.8242 curveto
+ closepath
+fill
+
+
+% 289 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ 10.668 -74.9531 moveto
+ 10.668 -74.9531 9.00391 -72.1523 11.5352 -66.2461 curveto
+ 11.5352 -66.2461 11.8125 -72.793 13.8594 -76.4063 curveto
+ 13.8594 -76.4063 9.44922 -69.8555 10.668 -74.9531 curveto
+ closepath
+fill
+
+
+% 290 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ 13.8594 -74.375 moveto
+ 13.8594 -74.375 13.9844 -67.9375 13.8594 -67.1172 curveto
+ 13.8594 -67.1172 15.0703 -72.2813 18.2109 -75.2422 curveto
+ 18.2109 -75.2422 13.7266 -71.5156 13.8594 -74.375 curveto
+ closepath
+fill
+
+
+% 291 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ 17.0508 -64.2148 moveto
+ 17.0508 -64.2148 15.0703 -68.4492 18.2109 -74.375 curveto
+ 18.2109 -74.375 16.2188 -70.4297 17.6328 -68.2773 curveto
+ 17.6328 -68.2773 16.9219 -67.1094 17.0508 -64.2148 curveto
+ closepath
+fill
+
+
+% 292 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ 23.1445 -74.082 moveto
+ 23.1445 -74.082 23.4336 -69.2148 22.8555 -68.5703 curveto
+ 22.8555 -68.5703 22.793 -66.4688 22.8555 -66.2461 curveto
+ 22.8555 -66.2461 21.6445 -64.1719 21.6953 -66.5352 curveto
+ 21.6953 -66.5352 21.1367 -69.0234 20.2422 -70.6016 curveto
+ 20.2422 -70.6016 19.0938 -72.2148 19.082 -74.375 curveto
+ 19.082 -74.375 22.3477 -64.6172 23.1445 -74.082 curveto
+ closepath
+fill
+
+
+% 293 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ 24.3086 -65.375 moveto
+ 24.3086 -65.375 26.3711 -68.832 26.918 -74.9531 curveto
+ 26.918 -74.9531 27.3906 -72.918 26.0469 -68.2773 curveto
+ 26.0469 -68.2773 24.8398 -63.4063 24.3086 -65.375 curveto
+ closepath
+fill
+
+
+% 294 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ 31.2734 -71.7617 moveto
+ 31.2734 -71.7617 29.625 -69.9805 29.2422 -68.2773 curveto
+ 29.2422 -68.2773 28.0313 -63.3438 30.1133 -65.957 curveto
+ 30.1133 -65.957 30.0117 -68.6406 32.7227 -70.8906 curveto
+ 32.7227 -70.8906 31.0977 -70.2383 31.2734 -71.7617 curveto
+ closepath
+fill
+
+
+% 295 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ 33.0156 -70.0195 moveto
+ 33.0156 -70.0195 31.9883 -64.5547 31.8516 -64.2148 curveto
+ 31.8516 -64.2148 31.1602 -63.2148 32.1445 -64.2148 curveto
+ 32.1445 -64.2148 34.8633 -70.3672 36.207 -72.3398 curveto
+ 36.207 -72.3398 33.5859 -69.5352 33.0156 -70.0195 curveto
+ closepath
+fill
+
+
+% 296 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ 35.0469 -64.7969 moveto
+ 35.0469 -64.7969 31.2227 -57.6602 38.2383 -65.957 curveto
+ 38.2383 -65.957 34.6719 -62.7656 35.0469 -64.7969 curveto
+ closepath
+fill
+
+
+% 297 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ 39.9805 -60.1523 moveto
+ 39.9805 -60.1523 38.3125 -54.1484 37.3672 -54.3477 curveto
+ 37.3672 -54.3477 34.8633 -51.3398 37.0781 -54.6367 curveto
+ 37.0781 -54.6367 38.8867 -57.7852 38.8203 -61.0234 curveto
+ 38.8203 -61.0234 38.8867 -57.8516 39.9805 -60.1523 curveto
+ closepath
+fill
+
+
+% 298 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -65.668 -56.3789 moveto
+ -65.668 -56.3789 -61.7773 -53.3164 -61.0234 -52.3164 curveto
+ -61.0234 -52.3164 -65.2891 -58.1055 -65.375 -60.4414 curveto
+ -65.375 -60.4414 -66.0859 -57.9453 -65.668 -56.3789 curveto
+ closepath
+fill
+
+
+% 299 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -67.4063 -49.4141 moveto
+ -67.4063 -49.4141 -60.6602 -44.6953 -59.5703 -42.4453 curveto
+ -59.5703 -42.4453 -68.0039 -51.7188 -67.9883 -53.1875 curveto
+ -67.9883 -53.1875 -68.1641 -50.2852 -67.4063 -49.4141 curveto
+ closepath
+fill
+
+
+% 300 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -72.9219 -0.363281 moveto
+ -72.9219 -0.363281 -68.9609 2.23438 -68.5703 1.66797 curveto
+ -68.5703 1.66797 -71.832 -0.476563 -72.6328 -3.26563 curveto
+ -72.6328 -3.26563 -72.1523 -0.320313 -72.9219 -0.363281 curveto
+ closepath
+fill
+
+
+% 301 pathnumber
+% filledpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.031926 setlinewidth
+ 0.0 0.0 0.0 0.2 setcmykcolor
+() p2esetcolorname
+newpath
+ -75.5352 -25.9023 moveto
+ -70.0195 -22.1289 lineto
+ -70.0195 -22.1289 -75.9844 -27.6172 -76.1133 -28.8047 curveto
+ -75.5352 -25.9023 lineto
+ closepath
+fill
+
+
+% 302 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 49.2695 -18.9375 moveto
+ 42.3008 -20.3906 lineto
+stroke
+
+
+% 303 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 33.3047 -70.6016 moveto
+ 33.3047 -70.6016 33.3633 -69.4375 36.207 -72.9219 curveto
+stroke
+
+
+% 304 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 31.5625 -72.0508 moveto
+ 31.5625 -72.0508 30.8086 -70.0781 33.0156 -71.4727 curveto
+stroke
+
+
+% 305 pathnumber
+% strokedpath
+ 1 setlinecap
+ 10.0 setmiterlimit
+ 0 setlinejoin
+ [ ] 0.0 setdash
+ 0.31926 setlinewidth
+ 0.0 0.0 0.0 1.0 setcmykcolor
+() p2esetcolorname
+newpath
+ 14.1484 -74.9531 moveto
+ 14.1484 -74.9531 13.7266 -71.3555 17.3398 -75.5352 curveto
+stroke
+restore %}
+grestore %}
+ showpage
+%%>>
+%%Page: 1 1
+% normal end reached by pstoedit.pro
+%%Trailer
+%%Pages: 1
+%%EOF \ No newline at end of file
diff --git a/graphics/pstricks/contrib/pst-mirror/doc/createEPS/tiger.eps b/graphics/pstricks/contrib/pst-mirror/doc/createEPS/tiger.eps
new file mode 100644
index 0000000000..5588d5236b
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-mirror/doc/createEPS/tiger.eps
@@ -0,0 +1,2746 @@
+%!PS-Adobe-2.0 EPSF-1.2
+%%BoundingBox: 1 150 611 792
+/InitDictCount countdictstack def
+gsave
+save
+mark
+newpath
+/showpage {} def
+%!PS-Adobe-2.0 EPSF-1.2
+%%Creator: Adobe Illustrator(TM) 1.2d4
+%%For: OpenWindows Version 2
+%%Title: tiger.eps
+%%CreationDate: 4/12/90 3:20 AM
+%%DocumentProcSets: Adobe_Illustrator_1.2d1 0 0
+%%DocumentSuppliedProcSets: Adobe_Illustrator_1.2d1 0 0
+%%BoundingBox: 22 171 567 738
+%%EndComments
+
+%%BeginProcSet:Adobe_Illustrator_1.2d1 0 0
+
+/Adobe_Illustrator_1.2d1 dup 100 dict def load begin
+% definition operators
+/bdef {bind def} bind def
+/ldef {load def} bdef
+/xdef {exch def} bdef
+% graphic state operators
+/_K { 3 index add neg dup 0 lt {pop 0} if 3 1 roll } bdef
+/_k /setcmybcolor where {
+ /setcmybcolor get
+} {
+ { 1 sub 4 1 roll _K _K _K setrgbcolor pop } bind
+} ifelse def
+/g {/_b xdef /p {_b setgray} def} bdef
+/G {/_B xdef /P {_B setgray} def} bdef
+/k {/_b xdef /_y xdef /_m xdef /_c xdef /p {_c _m _y _b _k} def} bdef
+/K {/_B xdef /_Y xdef /_M xdef /_C xdef /P {_C _M _Y _B _k} def} bdef
+/d /setdash ldef
+/_i currentflat def
+/i {dup 0 eq {pop _i} if setflat} bdef
+/j /setlinejoin ldef
+/J /setlinecap ldef
+/M /setmiterlimit ldef
+/w /setlinewidth ldef
+% path construction operators
+/_R {.25 sub round .25 add} bdef
+/_r {transform _R exch _R exch itransform} bdef
+/c {_r curveto} bdef
+/C /c ldef
+/v {currentpoint 6 2 roll _r curveto} bdef
+/V /v ldef
+/y {_r 2 copy curveto} bdef
+/Y /y ldef
+/l {_r lineto} bdef
+/L /l ldef
+/m {_r moveto} bdef
+% path painting operators
+/n /newpath ldef
+/N /n ldef
+/F {p fill} bdef
+/f {closepath F} bdef
+/S {P stroke} bdef
+/s {closepath S} bdef
+/B {gsave F grestore S} bdef
+/b {closepath B} bdef
+end
+%%EndProcSet
+%%EndProlog
+
+%%Page: 1 1
+
+Adobe_Illustrator_1.2d1 begin
+
+.8 setgray
+%clippath fill
+-110 -300 translate
+1.1 dup scale
+
+0 g
+0 G
+0 i
+0 J
+0 j
+0.172 w
+10 M
+[]0 d
+0 0 0 0 k
+
+177.696 715.715 m
+177.797 713.821 176.973 713.84 v
+176.149 713.859 159.695 761.934 139.167 759.691 C
+156.95 767.044 177.696 715.715 V
+b
+181.226 718.738 m
+180.677 716.922 179.908 717.221 v
+179.14 717.519 180.023 768.325 159.957 773.199 C
+179.18 774.063 181.226 718.738 V
+b
+208.716 676.41 m
+210.352 675.45 209.882 674.773 v
+209.411 674.096 160.237 686.898 150.782 668.541 C
+154.461 687.428 208.716 676.41 V
+b
+205.907 666.199 m
+207.763 665.803 207.529 665.012 v
+207.296 664.221 156.593 660.879 153.403 640.478 C
+150.945 659.563 205.907 666.199 V
+b
+201.696 671.724 m
+203.474 671.061 203.128 670.313 v
+202.782 669.565 152.134 673.654 146.002 653.936 C
+146.354 673.175 201.696 671.724 V
+b
+190.991 689.928 m
+192.299 688.554 191.66 688.033 v
+191.021 687.512 147.278 713.366 133.131 698.324 C
+141.872 715.467 190.991 689.928 V
+b
+183.446 685.737 m
+184.902 684.52 184.326 683.929 v
+183.75 683.339 137.362 704.078 125.008 687.531 C
+131.753 705.553 183.446 685.737 V
+b
+180.846 681.665 m
+182.454 680.657 181.964 679.994 v
+181.474 679.331 132.692 693.554 122.709 675.478 C
+126.934 694.251 180.846 681.665 V
+b
+191.58 681.051 m
+192.702 679.52 192.001 679.085 v
+191.3 678.65 151.231 709.898 135.273 696.793 C
+146.138 712.674 191.58 681.051 V
+b
+171.8 710 m
+172.4 708.2 171.6 708 v
+170.8 707.8 142.2 749.8 122.999 742.2 C
+138.2 754 171.8 710 V
+b
+172.495 703.021 m
+173.47 701.392 172.731 701.025 v
+171.993 700.657 135.008 735.501 117.899 723.939 C
+130.196 738.739 172.495 703.021 V
+b
+172.38 698.651 m
+173.502 697.12 172.801 696.685 v
+172.1 696.251 132.031 727.498 116.073 714.393 C
+126.938 730.274 172.38 698.651 V
+b
+0 J 1 w
+170.17 696.935 m
+170.673 690.887 171.661 684.318 173.4 681.199 C
+169.8 668.799 178.6 655.599 V
+178.2 648.399 179.8 645.199 V
+183.8 636.799 188.6 635.999 v
+192.484 635.352 201.207 632.283 211.068 630.879 c
+228.2 616.799 225 603.999 V
+224.6 587.599 221 585.999 V
+232.6 597.199 223 580.399 V
+218.6 561.599 l
+244.2 583.199 228.6 564.799 V
+218.6 538.799 l
+238.2 557.199 231 548.799 V
+227.8 539.999 l
+271 567.199 240.2 537.599 V
+248.2 541.199 252.6 538.399 V
+259.4 539.599 258.6 537.999 V
+237.8 527.599 234.2 509.199 V
+242.6 519.199 239.4 508.399 V
+239.8 496.799 l
+243.8 518.399 243.4 480.799 V
+262.6 498.799 251 477.999 V
+251 461.199 l
+266.2 477.599 259.8 464.799 V
+269.8 473.599 265.8 458.399 V
+265 447.999 269.4 459.199 V
+285.4 489.799 279.4 463.599 V
+278.6 444.399 283.4 459.199 V
+283.8 448.799 293 441.599 V
+291.8 492.399 304.6 456.399 V
+308.6 439.999 l
+311.4 449.199 311 454.399 V
+325.8 470.799 319 446.399 V
+334.2 469.199 331 455.999 V
+323.4 439.999 325 435.199 V
+341.8 469.999 343 471.599 V
+341 429.198 351.8 465.199 V
+357.4 453.199 354.6 448.799 V
+362.6 456.799 361.8 459.999 V
+366.4 468.199 369.2 454.599 V
+371 445.199 372.6 448.399 V
+376.6 424.398 377.8 447.199 V
+379.4 460.799 372.2 472.399 V
+373 475.599 370.2 479.599 v
+383.8 457.999 376.6 486.799 V
+387.801 478.799 389.001 478.799 V
+375.4 501.999 384.2 497.199 V
+379 507.599 397.001 495.599 V
+381 511.599 398.601 501.999 V
+406.601 495.599 399.001 505.599 V
+384.6 521.599 406.601 503.599 V
+418.201 487.199 419.001 484.399 V
+409.001 513.599 404.601 516.399 V
+413.001 552.799 454.201 537.199 V
+461.001 519.999 465.401 538.399 V
+478.201 544.799 489.401 517.199 V
+493.401 530.799 492.601 533.599 V
+499.401 532.399 498.601 533.599 V
+511.801 529.199 513.001 529.999 V
+519.801 523.199 520.201 526.799 V
+529.401 523.999 527.401 527.599 V
+536.201 511.999 536.601 508.399 V
+539.001 522.399 l
+541.001 519.599 l
+542.601 527.199 541.801 528.399 v
+541.001 529.599 561.801 521.599 566.601 500.799 C
+568.601 492.399 l
+574.601 507.199 573.001 511.199 V
+578.201 510.399 578.601 505.999 V
+582.601 529.199 577.801 535.199 V
+582.201 535.999 583.401 532.399 V
+583.401 539.599 l
+590.601 538.799 590.601 541.199 V
+595.001 545.199 597.001 540.399 V
+584.601 575.599 603.001 556.399 V
+610.201 545.599 606.601 564.399 v
+603.001 583.199 599.001 584.799 603.801 585.199 C
+604.601 588.799 602.601 590.399 v
+600.601 591.999 603.801 590.399 y
+608.601 586.399 603.401 608.399 V
+609.801 606.799 597.801 635.999 V
+600.601 638.399 596.601 646.799 V
+604.601 642.399 607.401 643.999 V
+607.001 645.599 603.801 649.599 V
+582.201 704.4 602.601 682.399 V
+614.451 668.849 608.051 691.649 V
+598.94 715.659 599.717 719.955 V
+170.17 696.935 l
+b
+0.2 0.55 0.85 0 k
+599.717 719.755 m
+600.345 719.574 602.551 718.45 603.801 716.8 C
+610.601 706 605.401 724.4 V
+596.201 753.2 605.001 742 V
+611.001 734.8 607.801 748.4 v
+603.936 764.827 601.401 771.2 y
+613.001 766.4 586.201 806 V
+595.001 802.4 l
+575.401 842 553.801 847.2 V
+545.801 853.2 l
+584.201 891.2 571.401 928 V
+564.601 933.2 555.001 924 V
+548.601 919.2 542.601 920.8 V
+511.801 919.6 509.801 919.6 v
+507.801 919.6 473.001 956.8 407.401 939.2 C
+402.201 937.2 397.801 938.4 V
+379.4 954.4 330.6 931.6 v
+320.6 929.6 319 929.6 v
+317.4 929.6 314.6 929.6 306.6 923.2 c
+298.6 916.8 298.2 916 296.2 914.4 C
+279.8 903.2 275 902.4 V
+263.4 896 259 886 V
+255.4 884.8 l
+253.8 877.6 253.4 876.4 V
+248.6 872.8 247.8 867.2 V
+239 861.2 239.4 856.8 V
+237.8 851.6 237 846.8 V
+229.8 842 230.6 839.2 V
+223 825.2 224.2 818.4 V
+217.8 818.8 215 816.4 V
+214.2 811.6 212.6 811.2 V
+209.8 810 212.2 806 V
+210.6 803.2 210.2 801.6 V
+211 798.8 206.6 793.2 V
+200.2 774.4 202.2 769.2 V
+202.6 764.4 199.8 762.8 V
+196.2 763.2 204.6 751.2 V
+205.4 750 202.2 747.6 V
+185 744 182.6 727.6 V
+169 712.8 169 707.6 v
+169 705.295 169.271 702.148 169.97 697.535 C
+169.4 689.199 197 688.399 v
+224.6 687.599 599.717 719.755 Y
+b
+184.4 697.4 m
+159.4 736.8 173.8 680.399 Y
+182.6 645.999 312.2 683.599 y
+481.001 714 492.201 718 v
+503.401 722 598.601 715.6 y
+593.001 732.4 L
+528.201 778.8 509.001 755.6 495.401 759.6 c
+481.801 763.6 484.201 754 481.001 753.2 c
+477.801 752.4 438.601 777.2 432.201 776.4 c
+425.801 775.6 400.459 799.351 415.401 767.6 c
+431.401 733.6 357 728.4 340.2 739.6 c
+323.4 750.8 347.4 721.2 Y
+365.8 701.2 331.4 718 y
+297 730.8 273 705.2 269.8 704.4 c
+266.6 703.6 261.8 700.4 261 706.8 c
+260.2 713.2 252.69 729.901 221 703.6 c
+201 686.999 187.2 709 Y
+184.4 697.4 L
+f
+0.09 0.5 0.772 0 k
+433.51 774.654 m
+427.11 773.854 401.743 797.593 416.71 765.854 c
+433.31 730.654 358.31 726.654 341.51 737.854 c
+324.709 749.054 348.71 719.454 Y
+367.11 699.454 332.709 716.254 y
+298.309 729.054 274.309 703.454 271.109 702.654 c
+267.909 701.854 263.109 698.654 262.309 705.054 c
+261.509 711.454 254.13 727.988 222.309 701.854 c
+201.073 684.508 187.582 705.963 Y
+184.382 695.854 L
+159.382 735.654 174.454 677.345 Y
+183.255 642.944 313.509 681.854 y
+482.31 712.254 493.51 716.254 v
+504.71 720.254 599.038 713.927 y
+593.51 731.236 L
+528.71 777.636 510.31 753.854 496.71 757.854 c
+483.11 761.854 485.51 752.254 482.31 751.454 c
+479.11 750.654 439.91 775.454 433.51 774.654 c
+f
+0.081 0.45 0.695 0 k
+434.819 772.909 m
+428.419 772.109 403.685 796.138 418.019 764.109 c
+434.219 727.908 359.619 724.908 342.819 736.108 c
+326.019 747.308 350.019 717.708 Y
+368.419 697.708 334.019 714.508 y
+299.619 727.308 275.618 701.708 272.418 700.908 c
+269.218 700.108 264.418 696.908 263.618 703.308 c
+262.818 709.708 255.57 726.075 223.618 700.108 c
+201.145 682.017 187.964 702.926 Y
+184.364 694.308 L
+160.564 733.308 175.109 674.29 Y
+183.909 639.89 314.819 680.108 y
+483.619 710.508 494.819 714.508 v
+506.019 718.508 599.474 712.254 y
+594.02 730.072 L
+529.219 776.472 511.619 752.109 498.019 756.109 c
+484.419 760.109 486.819 750.509 483.619 749.708 c
+480.419 748.908 441.219 773.709 434.819 772.909 c
+f
+0.072 0.4 0.618 0 k
+436.128 771.163 m
+429.728 770.363 404.999 794.395 419.328 762.363 c
+436.128 724.807 360.394 723.518 344.128 734.363 c
+327.328 745.563 351.328 715.963 Y
+369.728 695.963 335.328 712.763 y
+300.928 725.563 276.928 699.963 273.728 699.163 c
+270.528 698.363 265.728 695.163 264.928 701.563 c
+264.128 707.963 257.011 724.161 224.927 698.363 c
+201.218 679.526 188.345 699.89 Y
+184.345 692.763 L
+162.545 729.563 175.764 671.235 Y
+184.564 636.835 316.128 678.363 y
+484.928 708.763 496.129 712.763 v
+507.329 716.763 599.911 710.581 y
+594.529 728.908 L
+529.729 775.309 512.929 750.363 499.329 754.363 c
+485.728 758.363 488.128 748.763 484.928 747.963 c
+481.728 747.163 442.528 771.963 436.128 771.163 c
+f
+0.063 0.35 0.54 0 k
+437.438 769.417 m
+431.037 768.617 406.814 792.871 420.637 760.617 c
+437.438 721.417 362.237 721.417 345.437 732.617 c
+328.637 743.817 352.637 714.217 Y
+371.037 694.217 336.637 711.017 y
+302.237 723.817 278.237 698.217 275.037 697.417 c
+271.837 696.617 267.037 693.417 266.237 699.817 c
+265.437 706.217 258.452 722.248 226.237 696.617 c
+201.291 677.035 188.727 696.854 Y
+184.327 691.217 L
+164.527 726.018 176.418 668.181 Y
+185.218 633.78 317.437 676.617 y
+486.238 707.017 497.438 711.017 v
+508.638 715.017 600.347 708.908 y
+595.038 727.745 L
+530.238 774.145 514.238 748.617 500.638 752.617 c
+487.038 756.617 489.438 747.017 486.238 746.217 c
+483.038 745.417 443.838 770.217 437.438 769.417 c
+f
+0.054 0.3 0.463 0 k
+438.747 767.672 m
+432.347 766.872 406.383 790.323 421.947 758.872 c
+441.147 720.072 363.546 719.672 346.746 730.872 c
+329.946 742.072 353.946 712.472 Y
+372.346 692.472 337.946 709.272 y
+303.546 722.072 279.546 696.472 276.346 695.672 c
+273.146 694.872 268.346 691.672 267.546 698.072 c
+266.746 704.472 259.892 720.335 227.546 694.872 c
+201.364 674.544 189.109 693.817 Y
+184.309 689.672 L
+166.309 722.872 177.073 665.126 Y
+185.873 630.726 318.746 674.872 y
+487.547 705.272 498.747 709.272 v
+509.947 713.272 600.783 707.236 y
+595.547 726.581 L
+530.747 772.981 515.547 746.872 501.947 750.872 c
+488.347 754.872 490.747 745.272 487.547 744.472 c
+484.347 743.672 445.147 768.472 438.747 767.672 c
+f
+0.045 0.25 0.386 0 k
+440.056 765.927 m
+433.655 765.127 407.313 788.387 423.255 757.127 c
+443.656 717.126 364.855 717.926 348.055 729.126 c
+331.255 740.326 355.255 710.726 Y
+373.655 690.726 339.255 707.526 y
+304.855 720.326 280.855 694.726 277.655 693.926 c
+274.455 693.126 269.655 689.926 268.855 696.326 c
+268.055 702.726 261.332 718.422 228.855 693.126 c
+201.436 672.053 189.491 690.781 Y
+184.291 688.126 L
+168.291 718.326 177.727 662.071 Y
+186.527 627.671 320.055 673.126 y
+488.856 703.526 500.056 707.526 v
+511.256 711.526 601.22 705.563 y
+596.056 725.417 L
+531.256 771.817 516.856 745.126 503.256 749.126 c
+489.656 753.127 492.056 743.526 488.856 742.726 c
+485.656 741.926 446.456 766.727 440.056 765.927 c
+f
+0.036 0.2 0.309 0 k
+441.365 764.181 m
+434.965 763.381 407.523 786.056 424.565 755.381 c
+446.565 715.781 366.164 716.181 349.364 727.381 c
+332.564 738.581 356.564 708.981 Y
+374.964 688.981 340.564 705.781 y
+306.164 718.581 282.164 692.981 278.964 692.181 c
+275.764 691.381 270.964 688.181 270.164 694.581 c
+269.364 700.981 262.773 716.508 230.164 691.381 c
+201.509 669.562 189.873 687.744 Y
+184.273 686.581 L
+169.872 714.981 178.382 659.017 Y
+187.182 624.616 321.364 671.381 y
+490.165 701.781 501.365 705.781 v
+512.565 709.781 601.656 703.89 y
+596.565 724.254 L
+531.765 770.654 518.165 743.381 504.565 747.381 c
+490.965 751.381 493.365 741.781 490.165 740.981 c
+486.965 740.181 447.765 764.981 441.365 764.181 c
+f
+0.027 0.15 0.231 0 k
+442.674 762.435 m
+436.274 761.635 408.832 784.311 425.874 753.635 c
+447.874 714.035 367.474 714.435 350.674 725.635 c
+333.874 736.835 357.874 707.235 Y
+376.274 687.235 341.874 704.035 y
+307.473 716.835 283.473 691.235 280.273 690.435 c
+277.073 689.635 272.273 686.435 271.473 692.835 c
+270.673 699.235 264.214 714.595 231.473 689.635 c
+201.582 667.071 190.255 684.707 Y
+184.255 685.035 L
+170.654 711.436 179.037 655.962 Y
+187.837 621.562 322.673 669.635 y
+491.474 700.035 502.674 704.035 v
+513.874 708.035 602.093 702.217 y
+597.075 723.09 L
+532.274 769.49 519.474 741.635 505.874 745.635 c
+492.274 749.635 494.674 740.035 491.474 739.235 c
+488.274 738.435 449.074 763.235 442.674 762.435 c
+f
+0.018 0.1 0.154 0 k
+443.983 760.69 m
+437.583 759.89 410.529 782.777 427.183 751.89 c
+449.183 711.09 368.783 712.69 351.983 723.89 c
+335.183 735.09 359.183 705.49 Y
+377.583 685.49 343.183 702.29 y
+308.783 715.09 284.783 689.49 281.583 688.69 c
+278.382 687.89 273.582 684.69 272.782 691.09 c
+271.982 697.49 265.654 712.682 232.782 687.89 c
+201.655 664.58 190.637 681.671 Y
+184.236 683.49 L
+171.236 707.49 179.691 652.907 Y
+188.491 618.507 323.983 667.89 y
+492.783 698.29 503.983 702.29 v
+515.183 706.29 602.529 700.544 y
+597.583 721.926 L
+532.783 768.327 520.783 739.89 507.183 743.89 c
+493.583 747.89 495.983 738.29 492.783 737.49 c
+489.583 736.69 450.383 761.49 443.983 760.69 c
+f
+0.009 0.05 0.077 0 k
+445.292 758.945 m
+438.892 758.145 412.917 781.589 428.492 750.145 c
+449.692 707.344 370.092 710.944 353.292 722.144 c
+336.492 733.344 360.492 703.744 Y
+378.892 683.744 344.492 700.544 y
+310.092 713.344 286.092 687.744 282.892 686.944 c
+279.692 686.144 274.892 682.944 274.092 689.344 c
+273.292 695.744 267.095 710.768 234.092 686.144 c
+201.727 662.089 191.018 678.635 Y
+184.218 681.944 L
+171.418 705.144 180.346 649.853 Y
+189.146 615.453 325.292 666.144 y
+494.093 696.544 505.293 700.544 v
+516.493 704.544 602.965 698.872 y
+598.093 720.763 L
+533.292 767.163 522.093 738.144 508.493 742.144 c
+494.893 746.145 497.293 736.544 494.093 735.744 c
+490.892 734.944 451.692 759.745 445.292 758.945 c
+f
+1 g
+184.2 680.399 m
+171.4 702.4 181 646.799 Y
+189.8 612.399 326.6 664.399 y
+495.401 694.8 506.601 698.8 v
+517.801 702.8 603.401 697.2 y
+598.601 719.6 L
+533.801 766 523.401 736.4 509.801 740.4 c
+496.201 744.4 498.601 734.8 495.401 734 c
+492.201 733.2 453.001 758 446.601 757.2 c
+440.201 756.4 414.981 780.207 429.801 748.4 c
+452.028 700.693 369.041 710.773 354.6 720.4 c
+337.8 731.6 361.8 702 Y
+380.2 681.999 345.8 698.8 y
+311.4 711.6 287.4 685.999 284.2 685.199 c
+281 684.399 276.2 681.199 275.4 687.599 c
+274.6 694 268.535 708.856 235.4 684.399 c
+201.8 659.599 191.4 675.599 Y
+184.2 680.399 L
+f
+0 g
+225.8 650.399 m
+218.6 638.799 239.4 625.599 V
+240.8 624.199 222.8 628.399 V
+216.6 630.399 215 640.799 V
+210.2 645.199 205.4 650.799 v
+200.6 656.399 225.8 650.399 y
+f
+0.8 g
+365.8 698 m
+383.498 671.179 382.9 666.399 v
+381.6 655.999 381.4 646.399 384.6 642.399 c
+387.801 638.399 396.601 605.199 y
+396.201 603.999 408.601 641.999 V
+420.201 657.999 400.201 676.399 V
+365 705.2 365.8 698 v
+f
+0 g
+1 J 0.1 w
+245.8 623.599 m
+257 616.399 242.6 585.199 V
+249 587.599 l
+248.2 576.399 245 573.999 V
+252.2 577.199 l
+257 569.199 253 564.399 V
+269.8 556.399 269 549.999 V
+275.4 557.999 271.4 564.399 v
+267.4 570.799 260.2 566.799 261 585.199 C
+252.2 581.999 l
+257.8 590.799 257.8 597.199 V
+249.8 594.799 l
+265.269 621.377 254.6 622.799 v
+248.6 623.599 245.8 623.599 Y
+f
+0.8 g
+278.2 606.799 m
+281 611.199 278.2 610.399 v
+275.4 609.599 244.2 594.799 238.2 585.199 C
+272.6 609.599 278.2 606.799 V
+f
+288.6 598.799 m
+291.4 603.199 288.6 602.399 v
+285.8 601.599 254.6 586.799 248.6 577.199 C
+283 601.599 288.6 598.799 V
+f
+301.8 613.999 m
+304.6 618.399 301.8 617.599 v
+299 616.799 267.8 601.999 261.8 592.399 C
+296.2 616.799 301.8 613.999 V
+f
+278.6 570.399 m
+278.6 576.399 275.8 575.599 v
+273 574.799 237 557.199 231 547.599 C
+273 573.199 278.6 570.399 V
+f
+279.8 581.199 m
+281 585.999 278.2 585.199 V
+276.2 585.199 249.8 573.599 243.8 563.999 C
+273.4 585.599 279.8 581.199 V
+f
+265.4 533.599 m
+255.4 525.999 l
+265.8 533.599 269.4 532.399 V
+262.6 521.199 261.8 515.999 V
+272.2 528.799 277.8 528.399 V
+285.4 527.999 285.4 517.199 V
+291 527.599 294.2 527.199 V
+295.4 520.799 294.2 513.999 V
+298.2 521.599 302.2 519.999 V
+308.6 521.999 307.8 510.399 V
+307.8 499.999 307 497.199 V
+312.6 523.599 315 523.999 V
+323 525.199 327.8 516.399 V
+323.8 523.999 328.6 521.999 V
+339.4 520.399 342.6 513.599 V
+335.8 525.599 341.4 522.399 V
+348.2 522.399 349.4 515.999 V
+357.8 494.799 359.8 493.199 V
+352.2 514.799 353.8 514.799 V
+351.8 526.799 357 511.999 V
+353.8 525.999 359.4 525.199 v
+365 524.399 369.4 514.399 377.8 516.799 C
+387.401 511.199 389.401 580.399 V
+265.4 533.599 L
+f
+0 g
+0 J 1 w
+270.2 626.399 m
+285 632.399 325 626.399 V
+332.2 625.999 339 634.799 v
+345.8 643.599 372.6 650.799 379 648.799 C
+388.601 642.399 l
+389.401 641.199 l
+401.801 630.799 402.201 623.199 v
+402.601 615.599 387.801 567.599 378.2 551.599 c
+368.6 535.599 359 523.199 339.8 525.599 C
+319 529.599 293.4 525.599 v
+264.2 527.199 261.4 535.199 v
+258.6 543.199 272.6 558.399 y
+277 566.799 275.8 581.199 v
+274.6 595.599 275 623.599 270.2 626.399 c
+f
+0.1 0.6 0.45 0 k
+292.2 624.399 m
+300.6 605.999 271 540.799 y
+269 539.199 283.66 533.154 293.8 535.599 c
+304.746 538.237 345 533.999 Y
+368.6 549.599 381.4 593.999 y
+391.801 617.999 374.2 621.199 v
+356.6 624.399 292.2 624.399 y
+f
+0.1 0.6 0.45 0.2 k
+290.169 593.503 m
+293.495 606.293 295.079 618.094 292.2 624.399 c
+354.6 617.999 365.8 638.799 v
+370.041 646.674 384.801 615.999 384.4 606.399 c
+321.4 591.999 306.6 603.199 V
+290.169 593.503 L
+f
+0.1 0.6 0.45 0.25 k
+294.6 577.199 m
+296.6 569.999 294.2 565.999 V
+292.6 565.199 291.4 564.799 V
+292.6 561.199 298.6 559.599 V
+300.6 555.199 303 554.799 v
+305.4 554.399 310.2 548.799 314.2 549.999 c
+318.2 551.199 329.4 555.199 y
+335 558.399 343.8 554.799 V
+346.175 555.601 346.6 559.599 v
+347.1 564.299 350.2 567.999 352.2 569.999 c
+354.2 571.999 363.8 584.799 362.6 585.199 c
+361.4 585.599 294.6 577.199 Y
+f
+0 0.55 0.5 0 k
+290.2 625.599 m
+287.4 603.199 290.6 594.799 v
+293.8 586.399 293 584.399 292.2 580.399 c
+291.4 576.399 295.8 566.399 301.4 560.399 C
+313.4 558.799 l
+328.6 562.399 337.8 559.599 V
+346.794 558.256 350.2 573.199 V
+355 579.599 362.2 582.399 v
+369.4 585.199 376.6 626.799 372.6 634.799 c
+368.6 642.799 354.2 647.199 338.2 631.599 c
+322.2 615.999 320.2 632.799 290.2 625.599 C
+b
+0 0 0.2 0 k
+0.5 w
+291.8 550.799 m
+291 552.799 286.6 553.199 V
+264.2 556.799 255.8 569.199 V
+249 574.799 253.4 563.199 V
+263.8 542.799 270.6 539.999 V
+287 535.999 291.8 550.799 V
+b
+0 0.55 0.5 0.2 k
+1 w
+371.742 614.771 m
+372.401 622.677 374.354 631.291 372.6 634.799 c
+366.154 647.693 349.181 642.305 338.2 631.599 c
+322.2 615.999 320.2 632.799 290.2 625.599 C
+288.455 611.636 289.295 601.624 v
+326.6 613.199 327.4 607.599 V
+329 610.799 338.2 610.799 v
+347.4 610.799 370.142 611.971 371.742 614.771 C
+f
+0 g
+0 0.55 0.5 0.35 K
+2 w
+328.6 624.799 m
+333.4 619.999 329.8 610.399 V
+315.4 594.399 317.4 580.399 v
+S
+0 0 0.2 0 k
+0 G
+0.5 w
+280.6 539.999 m
+276.2 552.799 285 545.999 V
+289.8 543.999 288.6 542.399 v
+287.4 540.799 281.8 536.799 280.6 539.999 C
+b
+285.64 538.799 m
+282.12 549.039 289.16 543.599 V
+293.581 541.151 292.04 540.719 v
+287.48 539.439 292.04 536.879 285.64 538.799 C
+b
+290.44 538.799 m
+286.92 549.039 293.96 543.599 V
+298.335 541.289 296.84 540.719 v
+293.48 539.439 296.84 536.879 290.44 538.799 C
+b
+297.04 538.599 m
+293.52 548.839 300.56 543.399 V
+304.943 541.067 303.441 540.519 v
+300.48 539.439 303.441 536.679 297.04 538.599 C
+b
+303.52 538.679 m
+300 548.919 307.041 543.479 V
+310.881 541.879 309.921 540.599 v
+308.961 539.319 309.921 536.759 303.52 538.679 C
+b
+310.2 537.999 m
+305.4 550.399 314.6 543.999 V
+319.4 541.999 318.2 540.399 v
+317 538.799 318.2 535.599 310.2 537.999 C
+b
+0 g
+0.1 0.6 0.45 0.25 K
+2 w
+281.8 555.199 m
+295 557.999 301 554.799 V
+307 553.599 308.2 553.999 v
+309.4 554.399 312.6 554.799 y
+S
+315.8 546.399 m
+327.8 559.999 339.8 555.599 v
+346.816 553.026 345.8 556.399 346.6 559.199 c
+347.4 561.999 347.6 566.199 352.6 569.199 c
+S
+0 0 0.2 0 k
+0 G
+0.5 w
+333 562.399 m
+329 573.199 326.2 560.399 v
+323.4 547.599 320.2 543.999 318.6 541.199 C
+318.6 535.999 327 536.399 V
+337.8 536.799 338.2 539.599 v
+338.6 542.399 337 553.999 333 562.399 C
+b
+0 g
+0.1 0.6 0.45 0.25 K
+2 w
+347 555.199 m
+350.6 557.599 353 556.399 v
+S
+353.5 571.599 m
+356.4 576.499 361.2 577.299 v
+S
+0.7 g
+0 G
+1 w
+274.2 534.799 m
+292.2 531.599 296.6 533.199 V
+305.4 533.199 297 531.199 V
+284.2 531.199 276.2 532.399 V
+264.6 537.999 274.2 534.799 V
+f
+0 0 0.2 0 k
+0.5 w
+288.2 627.999 m
+305.8 627.999 307.8 627.199 V
+315 596.399 311.4 588.799 V
+310.2 585.999 307.4 591.599 V
+289 624.399 285.8 626.399 v
+282.6 628.399 287 627.999 288.2 627.999 C
+b
+211.1 630.699 m
+220 628.999 232.6 626.399 V
+237.4 603.999 240.6 599.199 v
+243.8 594.399 240.2 594.399 236.6 597.199 c
+233 599.999 218.2 613.999 216.2 618.399 c
+214.2 622.799 211.1 630.699 y
+b
+232.961 626.182 m
+238.761 624.634 239.77 622.419 v
+240.778 620.205 238.568 616.908 y
+237.568 613.603 236.366 615.765 v
+235.164 617.928 232.292 625.588 232.961 626.182 c
+b
+0 g
+233 626.399 m
+236.6 621.199 240.2 621.199 v
+243.8 621.199 244.182 621.612 247 620.999 c
+251.6 619.999 251.2 621.999 257.8 620.799 c
+260.44 620.319 263 621.199 265.8 619.999 c
+268.6 618.799 271.8 619.599 273 621.599 c
+274.2 623.599 279 627.799 Y
+266.2 625.999 263.4 625.199 V
+241 623.999 233 626.399 V
+f
+0 0 0.2 0 k
+277.6 626.199 m
+271.15 622.699 270.75 620.299 v
+270.35 617.899 276 614.199 y
+278.75 609.599 279.35 611.999 v
+279.95 614.399 278.4 625.799 277.6 626.199 c
+b
+240.115 620.735 m
+247.122 609.547 247.339 620.758 V
+247.896 622.016 246.136 622.038 v
+240.061 622.114 241.582 626.216 240.115 620.735 C
+b
+247.293 620.486 m
+255.214 609.299 254.578 620.579 V
+254.585 620.911 252.832 621.064 v
+248.085 621.478 248.43 625.996 247.293 620.486 C
+b
+254.506 620.478 m
+262.466 609.85 261.797 619.516 V
+261.916 620.749 260.262 621.05 v
+256.37 621.756 256.159 625.005 254.506 620.478 C
+b
+261.382 620.398 m
+269.282 608.837 269.63 618.618 V
+271.274 619.996 269.528 620.218 v
+263.71 620.958 264.508 625.412 261.382 620.398 C
+b
+0 0 0.2 0.1 k
+225.208 616.868 m
+217.55 618.399 l
+214.95 623.399 212.85 629.549 y
+219.2 628.549 231.7 625.749 V
+232.576 622.431 234.048 616.636 v
+225.208 616.868 l
+f
+290.276 621.53 m
+288.61 624.036 287.293 625.794 286.643 626.2 c
+283.63 628.083 287.773 627.706 288.902 627.706 C
+305.473 627.706 307.356 626.953 V
+307.88 624.711 308.564 621.32 V
+298.476 623.33 290.276 621.53 V
+f
+0.2 0.55 0.85 0 k
+1 w
+343.88 759.679 m
+371.601 755.719 397.121 791.359 398.881 801.04 c
+400.641 810.72 390.521 822.6 Y
+391.841 825.68 387.001 839.76 381.721 849 c
+376.441 858.24 360.54 857.266 343 858.24 c
+327.16 859.12 308.68 835.8 307.36 834.04 c
+306.04 832.28 312.2 793.999 313.52 788.279 c
+314.84 782.559 312.2 756.159 y
+346.44 765.259 316.16 763.639 343.88 759.679 c
+f
+0.08 0.44 0.68 0 k
+308.088 833.392 m
+306.792 831.664 312.84 794.079 314.136 788.463 c
+315.432 782.847 312.84 756.927 y
+345.512 765.807 316.728 764.271 343.944 760.383 c
+371.161 756.495 396.217 791.487 397.945 800.992 c
+399.673 810.496 389.737 822.16 Y
+391.033 825.184 386.281 839.008 381.097 848.08 c
+375.913 857.152 360.302 856.195 343.08 857.152 c
+327.528 858.016 309.384 835.12 308.088 833.392 c
+f
+0.06 0.33 0.51 0 k
+308.816 832.744 m
+307.544 831.048 313.48 794.159 314.752 788.647 c
+316.024 783.135 313.48 757.695 y
+344.884 766.855 317.296 764.903 344.008 761.087 c
+370.721 757.271 395.313 791.615 397.009 800.944 c
+398.705 810.272 388.953 821.72 Y
+390.225 824.688 385.561 838.256 380.473 847.16 c
+375.385 856.064 360.063 855.125 343.16 856.064 c
+327.896 856.912 310.088 834.44 308.816 832.744 c
+f
+0.04 0.22 0.34 0 k
+309.544 832.096 m
+308.296 830.432 314.12 794.239 315.368 788.831 c
+316.616 783.423 314.12 758.463 y
+343.556 767.503 317.864 765.535 344.072 761.791 c
+370.281 758.047 394.409 791.743 396.073 800.895 c
+397.737 810.048 388.169 821.28 Y
+389.417 824.192 384.841 837.504 379.849 846.24 c
+374.857 854.976 359.824 854.055 343.24 854.976 c
+328.264 855.808 310.792 833.76 309.544 832.096 c
+f
+0.02 0.11 0.17 0 k
+310.272 831.448 m
+309.048 829.816 314.76 794.319 315.984 789.015 c
+317.208 783.711 314.76 759.231 y
+342.628 768.151 318.432 766.167 344.136 762.495 c
+369.841 758.823 393.505 791.871 395.137 800.848 c
+396.769 809.824 387.385 820.84 Y
+388.609 823.696 384.121 836.752 379.225 845.32 c
+374.329 853.888 359.585 852.985 343.32 853.888 c
+328.632 854.704 311.496 833.08 310.272 831.448 c
+f
+1 g
+344.2 763.2 m
+369.4 759.6 392.601 792 394.201 800.8 c
+395.801 809.6 386.601 820.4 Y
+387.801 823.2 383.4 836 378.6 844.4 c
+373.8 852.8 359.346 851.914 343.4 852.8 c
+329 853.6 312.2 832.4 311 830.8 c
+309.8 829.2 315.4 794.4 316.6 789.2 c
+317.8 784 315.4 760 y
+340.9 768.6 319 766.8 344.2 763.2 c
+f
+0.8 g
+390.601 797.2 m
+362.8 789.6 351.2 791.2 V
+335.4 797.8 326.6 776 V
+323 768.8 321 766.8 v
+319 764.8 390.601 797.2 Y
+f
+0 g
+394.401 799.4 m
+365.4 787.2 355.4 787.6 v
+339 792.2 330.6 777.6 V
+322.2 768.4 319 766.8 V
+318.6 765.2 325 769.2 V
+335.4 764 l
+350.2 754.4 359.8 770.4 V
+363.8 781.6 363.8 783.6 v
+363.8 785.6 385 791.2 386.601 791.6 c
+388.201 792 394.801 796.2 394.401 799.4 C
+f
+0.4 0.2 0.8 0 k
+347 763.486 m
+340.128 763.486 331.755 767.351 331.755 773.6 c
+331.755 779.848 340.128 786.113 347 786.113 c
+353.874 786.113 359.446 781.048 359.446 774.8 c
+359.446 768.551 353.874 763.486 347 763.486 c
+f
+0.4 0.2 0.8 0.2 k
+343.377 780.17 m
+338.531 779.448 333.442 777.945 333.514 778.161 c
+335.054 782.78 341.415 786.113 347 786.113 c
+351.296 786.113 355.084 784.135 357.32 781.125 c
+352.004 781.455 343.377 780.17 v
+f
+1 g
+355.4 780.4 m
+351 783.6 351 781.4 V
+354.6 777 355.4 780.4 V
+f
+0 g
+345.4 772.274 m
+342.901 772.274 340.875 774.3 340.875 776.8 c
+340.875 779.299 342.901 781.325 345.4 781.325 c
+347.9 781.325 349.926 779.299 349.926 776.8 c
+349.926 774.3 347.9 772.274 345.4 772.274 c
+f
+0.2 0.55 0.85 0 k
+241.4 785.6 m
+238.2 806.8 240.6 811.2 V
+251.4 821.2 251 824.8 V
+250.6 842.8 249.4 843.6 v
+248.2 844.4 240.6 850.4 234.6 844 C
+224.2 826 225 819.6 V
+225 817.6 l
+217.4 818 215.8 816 V
+214.6 810.8 213.4 810.4 V
+210.6 808 212.6 805.2 V
+210.6 802.8 211 798.8 V
+218.6 794.8 L
+220.6 780.4 231.4 775.2 v
+236.236 772.871 239.4 779.6 241.4 785.6 c
+f
+1 g
+240.4 787.44 m
+237.52 806.52 239.68 810.48 V
+249.4 819.48 249.04 822.72 V
+248.68 838.92 247.6 839.64 v
+246.52 840.36 239.68 845.76 234.28 840 C
+224.92 823.8 225.64 818.04 V
+225.64 816.24 l
+218.8 816.6 217.36 814.8 V
+216.28 810.12 215.2 809.76 V
+212.68 807.6 214.48 805.08 V
+212.68 802.92 213.04 799.32 V
+219.88 795.72 L
+221.68 782.76 231.4 778.08 v
+235.752 775.985 238.6 782.04 240.4 787.44 c
+f
+0.075 0.412 0.637 0 k
+248.95 842.61 m
+247.86 843.47 240.37 849.24 234.52 843 C
+224.38 825.45 225.16 819.21 V
+225.16 817.26 l
+217.75 817.65 216.19 815.7 V
+215.02 810.63 213.85 810.24 V
+211.12 807.9 213.07 805.17 V
+211.12 802.83 211.51 798.93 V
+218.92 795.03 L
+220.87 780.99 231.4 775.92 v
+236.114 773.65 239.2 780.21 241.15 786.06 c
+238.03 806.73 240.37 811.02 V
+250.9 820.77 250.51 824.28 V
+250.12 841.83 248.95 842.61 V
+f
+0.05 0.275 0.425 0 k
+248.5 841.62 m
+247.52 842.54 240.14 848.08 234.44 842 C
+224.56 824.9 225.32 818.82 V
+225.32 816.92 l
+218.1 817.3 216.58 815.4 V
+215.44 810.46 214.3 810.08 V
+211.64 807.8 213.54 805.14 V
+211.64 802.86 212.02 799.06 V
+219.24 795.26 L
+221.14 781.58 231.4 776.64 v
+235.994 774.428 239 780.82 240.9 786.52 c
+237.86 806.66 240.14 810.84 V
+250.4 820.34 250.02 823.76 V
+249.64 840.86 248.5 841.62 V
+f
+0.025 0.137 0.212 0 k
+248.05 840.63 m
+247.18 841.61 239.91 846.92 234.36 841 C
+224.74 824.35 225.48 818.43 V
+225.48 816.58 l
+218.45 816.95 216.97 815.1 V
+215.86 810.29 214.75 809.92 V
+212.16 807.7 214.01 805.11 V
+212.16 802.89 212.53 799.19 V
+219.56 795.49 L
+221.41 782.17 231.4 777.36 v
+235.873 775.206 238.8 781.43 240.65 786.98 c
+237.69 806.59 239.91 810.66 V
+249.9 819.91 249.53 823.24 V
+249.16 839.89 248.05 840.63 V
+f
+1 g
+240.4 787.54 m
+237.52 806.52 239.68 810.48 V
+249.4 819.48 249.04 822.72 V
+248.68 838.92 247.6 839.64 V
+246.84 840.68 239.68 845.76 234.28 840 C
+224.92 823.8 225.64 818.04 V
+225.64 816.24 l
+218.8 816.6 217.36 814.8 V
+216.28 810.12 215.2 809.76 V
+212.68 807.6 214.48 805.08 V
+212.68 802.92 213.04 799.32 V
+219.88 795.72 L
+221.68 782.76 231.4 778.08 v
+235.752 775.985 238.6 782.14 240.4 787.54 c
+f
+0.8 g
+237.3 793.8 m
+215.7 804 214.8 804.8 V
+223.9 796.6 224.7 796.6 v
+225.5 796.6 237.3 793.8 Y
+f
+0 g
+220.2 800 m
+238.6 796.4 238.6 792 v
+238.6 789.088 238.357 775.669 233 777.2 c
+224.6 779.6 228.2 794 220.2 800 c
+f
+0.4 0.2 0.8 0 k
+228.6 796.2 m
+237.578 794.726 238.6 792 v
+239.2 790.4 239.863 782.092 234.4 781 c
+229.848 780.089 227.618 790.31 228.6 796.2 c
+f
+0 g
+314.595 753.651 m
+314.098 755.393 315.409 755.262 317.2 755.8 c
+319.2 756.4 331.4 760.2 332.2 762.8 c
+333 765.4 346.2 761 Y
+348 760.2 352.4 757.6 Y
+357.2 756.4 363.8 756 Y
+366.2 755 369.6 752.2 Y
+384.2 742 396.601 749.2 Y
+416.601 755.8 410.601 773 Y
+407.601 782 410.801 785.4 Y
+411.001 789.2 418.201 782.8 Y
+420.801 778.6 421.601 773.6 Y
+429.601 762.4 426.201 780.2 Y
+426.401 781.2 423.601 784.8 423.601 786 c
+423.601 787.2 421.801 790.6 Y
+418.801 794 421.201 801 Y
+423.001 814.8 420.801 813 Y
+419.601 814.8 410.401 804.8 Y
+408.201 801.4 402.201 799.8 Y
+399.401 798 396.001 799.4 Y
+393.401 799.8 387.801 792.8 Y
+390.601 793 393.001 788.6 395.401 788.4 c
+397.801 788.2 399.601 790.8 401.201 791.4 c
+402.801 792 405.601 786.2 Y
+406.001 783.6 400.401 778.8 Y
+400.001 774.2 398.401 775.8 Y
+395.401 776.4 394.201 772.6 393.201 768 c
+392.201 763.4 388.001 763 y
+386.401 755.6 385.2 758.6 Y
+385 764.2 379 758.4 Y
+377.8 756.4 373.2 758.6 Y
+366.4 760.6 368.8 762.6 Y
+370.6 764.8 381.8 762.6 Y
+384 764.2 376 768.2 Y
+375.4 770 376.4 774.4 Y
+377.6 777.6 384.4 783.2 Y
+393.801 784.4 391.001 786 Y
+384.801 791.2 379 783.6 Y
+376.8 777.4 359.4 762.4 Y
+354.6 759 357.2 765.8 353.2 762.4 c
+349.2 759 328.6 768 y
+317.038 769.193 314.306 753.451 310.777 756.571 c
+316.195 748.051 314.595 753.651 v
+f
+509.401 920 m
+483.801 912 481.001 893.2 V
+478.601 870.4 499.001 852.8 V
+499.401 846.4 501.401 843.2 v
+499.801 838.4 518.601 846 V
+545.801 854.4 l
+552.201 856.8 557.401 865.6 v
+562.601 874.4 577.801 893.2 574.201 918.4 C
+575.401 929.6 569.401 930 V
+561.001 931.6 553.801 924 V
+547.001 920.8 544.601 921.2 V
+509.401 920 L
+f
+564.022 920.99 m
+566.122 929.92 561.282 925.08 V
+554.242 919.36 546.761 919.36 V
+532.241 917.16 527.841 903.96 V
+523.881 877.12 531.801 871.4 V
+536.641 863.92 543.681 870.52 v
+550.722 877.12 566.222 907.35 564.022 920.99 C
+f
+0.2 g
+563.648 920.632 m
+565.738 929.376 560.986 924.624 V
+554.074 919.008 546.729 919.008 V
+532.473 916.848 528.153 903.888 V
+524.265 877.536 532.041 871.92 V
+536.793 864.576 543.705 871.056 v
+550.618 877.536 565.808 907.24 563.648 920.632 C
+f
+0.4 g
+563.274 920.274 m
+565.354 928.832 560.69 924.168 V
+553.906 918.656 546.697 918.656 V
+532.705 916.536 528.465 903.816 V
+524.649 877.952 532.281 872.44 V
+536.945 865.232 543.729 871.592 v
+550.514 877.952 565.394 907.13 563.274 920.274 C
+f
+0.6 g
+562.9 919.916 m
+564.97 928.288 560.394 923.712 V
+553.738 918.304 546.665 918.304 V
+532.937 916.224 528.777 903.744 V
+525.033 878.368 532.521 872.96 V
+537.097 865.888 543.753 872.128 v
+550.41 878.368 564.98 907.02 562.9 919.916 C
+f
+0.8 g
+562.526 919.558 m
+564.586 927.744 560.098 923.256 V
+553.569 917.952 546.633 917.952 V
+533.169 915.912 529.089 903.672 V
+525.417 878.784 532.761 873.48 V
+537.249 866.544 543.777 872.664 v
+550.305 878.784 564.566 906.91 562.526 919.558 C
+f
+1 g
+562.151 919.2 m
+564.201 927.2 559.801 922.8 V
+553.401 917.6 546.601 917.6 V
+533.401 915.6 529.401 903.6 V
+525.801 879.2 533.001 874 V
+537.401 867.2 543.801 873.2 v
+550.201 879.2 564.151 906.8 562.151 919.2 C
+f
+0.1 0.55 0.85 0.3 k
+350.6 716 m
+330.2 735.2 322.2 736 V
+287.8 740 273 722 V
+290.6 742.4 318.2 736.8 V
+296.6 741.2 284.2 738 V
+267.4 738 257.8 724 V
+255 719.2 l
+259 734 277.4 740 V
+300.2 744.8 311 740 V
+289.4 746.8 279.4 744.8 V
+249 747.2 236.2 720.8 V
+240.2 735.2 255 742.4 V
+268.6 751.2 289 748.4 V
+303.4 745.2 308.6 742.8 v
+313.8 740.4 312.6 743.2 304.2 748 C
+298.6 758 284.6 757.6 V
+241.8 754 231.4 742 V
+245 753.2 255.4 756 V
+277.8 764 286.2 763.2 V
+311 762.2 318.6 766.2 V
+307.4 761.2 310.6 758 v
+313.8 754.8 320.6 747.2 320.6 746 c
+320.6 744.8 344.8 722.7 348.4 718.3 C
+350.6 716 l
+f
+0.8 g
+1 J 0.1 w
+489 522 m
+473.5 558.5 461 568 V
+487 552 490.5 534 V
+490.5 524 489 522 V
+f
+536 514.5 m
+509.5 569.5 491 593.5 V
+534.5 556 539.5 529.5 V
+540 524 l
+537 526.5 l
+536.5 517.5 536 514.5 V
+f
+592.5 563 m
+530 622.5 528.5 625 V
+589 559 592 551.5 V
+590 560.5 592.5 563 V
+f
+404 519.5 m
+423.5 571.5 442.5 549 V
+457.5 539 457 536 V
+453 542.5 435 542 V
+416 545 404 519.5 V
+f
+594.5 647 m
+549.5 675.5 542 677 v
+530.193 679.361 591.5 648 596.5 637.5 C
+598.5 640 594.5 647 V
+f
+0 g
+0 J 1 w
+443.801 540.399 m
+464.201 542.399 471.001 549.199 V
+475.401 545.599 l
+493.001 583.999 l
+496.601 578.799 l
+511.001 593.599 510.201 601.599 v
+509.401 609.599 523.001 595.599 y
+522.201 607.199 529.401 600.399 V
+527.001 615.999 535.401 607.999 V
+524.864 638.156 547.401 612.399 v
+553.001 605.999 548.601 612.799 y
+522.601 660.799 544.201 646.399 v
+546.201 669.199 545.001 673.599 v
+543.801 677.999 541.801 700.4 537.001 705.6 c
+532.201 710.8 537.401 712.4 543.001 707.2 C
+531.801 731.2 545.001 719.2 V
+541.401 734.4 537.001 737.2 V
+531.401 754.4 546.601 743.6 V
+542.201 756 539.001 759.2 V
+527.401 786.8 534.601 782 V
+539.001 778.4 l
+532.201 792.4 538.601 788 v
+545.001 783.6 545.001 784 y
+523.801 817.2 544.201 799.6 V
+536.042 813.518 532.601 820.4 V
+513.801 840.8 528.201 834.4 V
+533.001 832.8 l
+524.201 842.8 516.201 844.4 v
+508.201 846 518.601 852.4 525.001 850.4 c
+531.401 848.4 547.001 840.8 y
+559.801 822 563.801 821.6 V
+543.801 829.2 549.801 821.2 V
+564.201 807.2 557.001 807.6 V
+551.001 800.4 555.801 791.6 V
+537.342 809.991 552.201 784.4 v
+559.001 768 l
+534.601 792.8 545.801 770.8 V
+563.001 747.2 565.001 746.8 v
+567.001 746.4 571.401 737.6 y
+567.001 739.6 l
+572.201 730.8 l
+561.001 742.8 567.001 729.6 V
+572.601 715.2 l
+552.201 737.2 565.801 707.6 V
+549.401 712.8 558.201 695.6 V
+556.601 679.599 557.001 674.399 v
+557.401 669.199 558.601 640.799 554.201 632.799 c
+549.801 624.799 560.201 605.599 562.201 601.599 c
+564.201 597.599 567.801 586.799 559.001 595.999 c
+550.201 605.199 554.601 599.599 556.601 590.799 c
+558.601 581.999 564.601 566.399 563.801 560.799 C
+562.601 559.599 559.401 563.199 V
+544.601 585.999 546.201 571.599 V
+545.001 563.599 541.801 554.799 V
+538.601 543.999 538.601 552.799 V
+535.401 569.599 532.601 561.999 v
+529.801 554.399 526.201 548.399 523.401 545.999 c
+520.601 543.599 515.401 566.399 514.201 555.999 C
+502.201 568.399 497.401 551.999 V
+485.801 535.599 l
+485.401 547.999 484.201 541.999 V
+454.201 535.999 443.801 540.399 V
+f
+409.401 897.2 m
+397.801 905.2 393.801 904.8 v
+389.801 904.4 421.401 913.6 462.601 886 C
+467.401 883.2 471.001 883.6 V
+474.201 881.2 471.401 877.6 V
+462.601 868 473.801 856.8 V
+492.201 850 486.601 858.8 V
+497.401 854.8 499.801 850.8 v
+502.201 846.8 501.001 850.8 y
+494.601 858 488.601 863.2 V
+483.401 865.2 480.601 873.6 v
+477.801 882 475.401 892 479.801 895.2 C
+475.801 890.8 476.601 894.8 v
+477.401 898.8 481.001 902.4 482.601 902.8 c
+484.201 903.2 500.601 919 507.401 919.4 C
+498.201 918 495.201 919 v
+492.201 920 465.601 931.4 459.601 932.6 C
+442.801 939.2 454.801 937.2 V
+490.601 933.4 508.801 920.2 V
+501.601 928.6 483.201 935.6 V
+461.001 948.2 425.801 943.2 V
+408.001 940 400.201 938.2 V
+397.601 938.8 397.001 939.2 v
+396.401 939.6 384.6 948.6 357 941.6 C
+340 937 331.4 932.2 V
+316.2 931 312.6 927.8 V
+294 913.2 292 912.4 v
+290 911.6 278.6 904 277.8 903.6 C
+302.4 910.2 304.8 912.6 v
+307.2 915 324.6 917.6 327 916.2 c
+329.4 914.8 337.8 915.4 328.2 914.8 C
+403.801 900 404.601 898 v
+405.401 896 409.401 897.2 y
+f
+0.2 0.55 0.85 0 k
+480.801 906.4 m
+470.601 913.8 468.601 913.8 v
+466.601 913.8 454.201 924 450.001 923.6 c
+445.801 923.2 433.601 933.2 406.201 925 C
+405.601 927 409.201 927.8 V
+415.601 930 416.001 930.6 V
+436.201 934.8 443.401 931.2 V
+452.601 928.6 458.801 922.4 V
+470.001 919.2 473.201 920.2 V
+482.001 918 482.401 916.2 V
+488.201 913.2 486.401 910.6 V
+486.801 909 480.801 906.4 V
+f
+468.33 908.509 m
+469.137 907.877 470.156 907.779 470.761 906.97 c
+470.995 906.656 470.706 906.33 470.391 906.233 c
+469.348 905.916 468.292 906.486 467.15 905.898 c
+466.748 905.691 466.106 905.873 465.553 906.022 c
+463.921 906.463 462.092 906.488 460.401 905.8 C
+458.416 906.929 456.056 906.345 453.975 907.346 c
+453.917 907.373 453.695 907.027 453.621 907.054 c
+450.575 908.199 446.832 907.916 444.401 910.2 C
+441.973 910.612 439.616 911.074 437.188 911.754 c
+435.37 912.263 433.961 913.252 432.341 914.084 c
+430.964 914.792 429.507 915.314 427.973 915.686 c
+426.11 916.138 424.279 916.026 422.386 916.546 c
+422.293 916.571 422.101 916.227 422.019 916.254 c
+421.695 916.362 421.405 916.945 421.234 916.892 c
+419.553 916.37 418.065 917.342 416.401 917 C
+415.223 918.224 413.495 917.979 411.949 918.421 c
+408.985 919.269 405.831 917.999 402.801 919 C
+406.914 920.842 411.601 919.61 415.663 921.679 c
+417.991 922.865 420.653 921.763 423.223 922.523 c
+423.71 922.667 424.401 922.869 424.801 922.2 C
+424.935 922.335 425.117 922.574 425.175 922.546 c
+427.625 921.389 429.94 920.115 432.422 919.049 c
+432.763 918.903 433.295 919.135 433.547 918.933 c
+435.067 917.717 437.01 917.82 438.401 916.6 C
+440.099 917.102 441.892 916.722 443.621 917.346 c
+443.698 917.373 443.932 917.032 443.965 917.054 c
+445.095 917.802 446.25 917.531 447.142 917.227 c
+447.48 917.112 448.143 916.865 448.448 916.791 c
+449.574 916.515 450.43 916.035 451.609 915.852 c
+451.723 915.834 451.908 916.174 451.98 916.146 c
+453.103 915.708 454.145 915.764 454.801 914.6 C
+454.936 914.735 455.101 914.973 455.183 914.946 c
+456.21 914.608 456.859 913.853 457.96 913.612 c
+458.445 913.506 459.057 912.88 459.633 912.704 c
+462.025 911.973 463.868 910.444 466.062 909.549 c
+466.821 909.239 467.697 909.005 468.33 908.509 c
+f
+391.696 922.739 m
+389.178 924.464 386.81 925.57 384.368 927.356 c
+384.187 927.489 383.827 927.319 383.625 927.441 c
+382.618 928.05 381.73 928.631 380.748 929.327 c
+380.209 929.709 379.388 929.698 378.88 929.956 c
+376.336 931.248 373.707 931.806 371.2 933 C
+371.882 933.638 373.004 933.394 373.6 934.2 C
+373.795 933.92 374.033 933.636 374.386 933.827 c
+376.064 934.731 377.914 934.884 379.59 934.794 c
+381.294 934.702 383.014 934.397 384.789 934.125 c
+385.096 934.078 385.295 933.555 385.618 933.458 c
+387.846 932.795 390.235 933.32 392.354 932.482 c
+393.945 931.853 395.515 931.03 396.754 929.755 c
+397.006 929.495 396.681 929.194 396.401 929 C
+396.789 929.109 397.062 928.903 397.173 928.59 c
+397.257 928.351 397.257 928.049 397.173 927.81 c
+397.061 927.498 396.782 927.397 396.408 927.346 c
+395.001 927.156 396.773 928.536 396.073 928.088 c
+394.8 927.274 395.546 925.868 394.801 924.6 C
+394.521 924.794 394.291 925.012 394.401 925.4 C
+394.635 924.878 394.033 924.588 393.865 924.272 c
+393.48 923.547 392.581 922.132 391.696 922.739 c
+f
+359.198 915.391 m
+356.044 916.185 352.994 916.07 349.978 917.346 c
+349.911 917.374 349.688 917.027 349.624 917.054 c
+348.258 917.648 347.34 918.614 346.264 919.66 c
+345.351 920.548 343.693 920.161 342.419 920.648 c
+342.095 920.772 341.892 921.284 341.591 921.323 c
+340.372 921.48 339.445 922.429 338.4 923 C
+340.736 923.795 343.147 923.764 345.609 924.148 c
+345.722 924.166 345.867 923.845 346 923.845 c
+346.136 923.845 346.266 924.066 346.4 924.2 C
+346.595 923.92 346.897 923.594 347.154 923.848 c
+347.702 924.388 348.258 924.198 348.798 924.158 c
+348.942 924.148 349.067 923.845 349.2 923.845 c
+349.336 923.845 349.467 924.156 349.6 924.156 c
+349.736 924.155 349.867 923.845 350 923.845 c
+350.136 923.845 350.266 924.066 350.4 924.2 C
+351.092 923.418 351.977 923.972 352.799 923.793 c
+353.837 923.566 354.104 922.418 355.178 922.12 c
+359.893 920.816 364.03 918.671 368.393 916.584 c
+368.7 916.437 368.91 916.189 368.8 915.8 C
+369.067 915.8 369.38 915.888 369.57 915.756 c
+370.628 915.024 371.669 914.476 372.366 913.378 c
+372.582 913.039 372.253 912.632 372.02 912.684 c
+367.591 913.679 363.585 914.287 359.198 915.391 c
+f
+345.338 871.179 m
+343.746 872.398 343.162 874.429 342.034 876.221 c
+341.82 876.561 342.094 876.875 342.411 876.964 c
+342.971 877.123 343.514 876.645 343.923 876.443 c
+345.668 875.581 347.203 874.339 349.2 874.2 C
+351.19 871.966 355.45 871.581 355.457 868.2 c
+355.458 867.341 354.03 868.259 353.6 867.4 C
+351.149 868.403 348.76 868.3 346.38 869.767 c
+345.763 870.148 346.093 870.601 345.338 871.179 c
+f
+317.8 923.756 m
+317.935 923.755 324.966 923.522 324.949 923.408 c
+324.904 923.099 317.174 922.05 316.81 922.22 c
+316.646 922.296 309.134 919.866 309 920 C
+309.268 920.135 317.534 923.756 317.8 923.756 c
+f
+0 g
+333.2 914 m
+318.4 912.2 314 911 v
+309.6 909.8 291 902.2 288 900.2 C
+274.6 894.8 257.6 874.8 V
+265.2 878.2 267.4 881 V
+281 893.6 280.8 891 V
+293 899.6 292.4 897.4 V
+316.8 908.6 314.8 905.4 V
+336.4 910 335.4 908 V
+354.2 903.6 351.4 903.4 V
+345.6 902.2 352 898.6 V
+348.6 894.2 343.2 898.2 v
+337.8 902.2 340.8 900 335.8 899 C
+333.2 898.2 328.6 902.2 V
+323 906.8 314.2 903.2 V
+283.6 890.6 281.6 890 V
+278 887.2 275.6 883.6 V
+269.8 879.2 266.8 877.8 V
+254 866.2 252.8 864.8 V
+249.4 859.6 248.6 859.2 V
+255 863 257 865 V
+271 875 276.4 875.8 V
+280.8 878.8 281.6 880.2 V
+296 889.4 300.2 889.4 V
+309.4 884.2 311.8 891.2 V
+317.6 893 323.2 891.8 V
+326.4 894.4 325.6 896.6 V
+327.2 898.4 328.2 894.6 V
+331.6 891 336.4 893 V
+340.4 893.2 338.4 890.8 V
+334 887 322.2 886.8 V
+309.8 886.2 293.4 878.6 V
+263.6 868.2 254.4 857.8 V
+248 849 242.6 847.8 V
+236.8 847 230.8 839.6 V
+240.6 845.4 249.6 845.4 V
+253.6 847.8 249.8 844.2 V
+246.2 836.6 247.8 831.2 V
+247.2 826 246.4 824.4 V
+238.6 811.6 238.6 809.2 v
+238.6 806.8 239.8 797 240.2 796.4 c
+240.6 795.8 239.2 798 243 795.6 c
+246.8 793.2 249.6 791.6 250.4 788.8 c
+251.2 786 248.4 794.2 248.2 796 c
+248 797.8 243.8 805 244.6 807.4 C
+245.6 806.4 246.4 805 V
+245.8 805.6 246.4 809.2 V
+247.2 814.4 248.6 817.6 v
+250 820.8 252 824.6 252.4 825.4 c
+252.8 826.2 252.8 832 254.2 829.4 C
+257.6 826.8 l
+254.8 829.4 257 831.6 V
+256 837.2 257.8 839.8 V
+264.8 848.2 266.4 849.2 v
+268 850.2 266.6 849.8 y
+272.6 854 266.8 852.4 V
+262.8 850.8 259.8 850.8 V
+252.2 848.8 256.2 853 v
+260.2 857.2 270.2 862.6 274 862.4 C
+274.8 860.8 l
+286 863.2 l
+284.8 862.4 l
+284.6 862.6 288.8 863 v
+293 863.4 298.8 862 300.2 863.8 c
+301.6 865.6 305 866.6 304.6 865.2 c
+304.2 863.8 304 861.8 y
+309 867.6 308.4 865.4 v
+307.8 863.2 299.6 858 298.2 851.8 C
+308.6 860 l
+312.2 863 l
+315.8 860.8 316 862.4 v
+316.2 864 320.8 869.8 322 869.6 c
+323.2 869.4 325.2 872.2 325 869.6 c
+324.8 867 332.4 861.6 y
+335.6 863.4 337 862 v
+338.4 860.6 342.6 881.8 y
+367.6 892.4 l
+411.201 895.8 l
+394.201 902.6 l
+333.2 914 l
+f
+0.2 0.55 0.85 0.5 K
+1 J 2 w
+351.4 715 m
+336.4 731.8 328 734.4 V
+314.6 741.2 290 733.4 v
+S
+324.8 735.8 m
+299.6 743.8 284.2 739.6 V
+265.8 737.6 257.4 723.8 v
+S
+321.2 737 m
+304.2 744.2 289.4 746.4 V
+272.8 749 256.2 741.8 V
+244 735.8 238.6 725.6 v
+S
+322.2 736.6 m
+306.8 747.6 305.8 749 V
+298.8 760 285.8 760.4 V
+264.4 759.6 247.2 751.6 v
+S
+0 G
+0 J 1 w
+320.895 745.593 m
+322.437 744.13 349.4 715.2 Y
+384.6 678.599 356.6 712.8 Y
+349 717.6 339.8 736.4 Y
+338.6 739.2 353.8 729.2 Y
+357.8 728.4 371.4 709.2 Y
+364.6 711.6 369.4 704.4 Y
+372.2 702.4 392.601 686.799 Y
+396.201 682.799 400.201 681.199 Y
+414.201 686.399 407.801 673.199 Y
+410.201 666.399 415.801 677.999 Y
+427.001 694.8 410.601 692.399 Y
+380.6 689.599 373.8 705.6 Y
+371.4 708 380.2 705.6 Y
+388.601 703.6 373 718 Y
+375.4 718 384.6 711.2 Y
+395.001 702 397.001 704 Y
+415.001 712.8 425.401 705.2 Y
+427.401 703.6 421.801 696.8 423.401 691.599 c
+425.001 686.399 429.801 673.999 Y
+427.401 672.399 427.801 661.599 Y
+444.601 638.399 435.001 640.399 Y
+419.401 640.799 434.201 633.199 Y
+437.401 631.199 446.201 623.999 Y
+443.401 625.199 441.801 619.999 Y
+446.601 615.999 443.801 611.199 Y
+437.801 609.999 436.601 605.999 Y
+443.401 597.999 433.401 597.599 Y
+437.001 593.199 432.201 581.199 Y
+427.401 581.199 421.001 575.599 Y
+423.401 570.799 413.001 565.199 Y
+404.601 563.599 407.401 556.799 Y
+399.401 550.799 397.001 534.799 Y
+396.201 524.399 393.801 521.199 399.001 523.199 c
+404.201 525.199 403.401 537.599 Y
+398.601 553.199 441.401 569.199 Y
+445.401 570.799 446.201 575.999 Y
+448.201 575.599 457.001 567.999 Y
+464.601 556.799 465.001 565.999 Y
+466.201 569.599 464.601 575.599 Y
+470.601 597.199 456.601 603.599 Y
+446.601 637.199 460.601 628.799 Y
+463.401 623.199 474.201 617.999 y
+477.801 620.399 L
+476.201 625.199 484.601 631.199 Y
+487.401 624.799 493.401 632.799 Y
+497.001 657.199 509.401 642.799 Y
+513.401 641.599 514.601 648.399 Y
+518.201 658.799 514.601 672.399 Y
+518.201 672.799 527.801 666.799 Y
+530.601 670.399 521.401 687.199 525.401 684.799 c
+529.401 682.399 533.801 680.799 Y
+534.601 682.799 524.601 695.199 Y
+520.201 698 515.001 718.4 Y
+522.201 714.8 512.201 730 Y
+512.201 733.2 518.201 744.4 Y
+517.401 751.2 518.201 750.8 Y
+521.001 749.6 529.001 748 522.201 754.4 c
+515.401 760.8 523.001 765.6 Y
+527.401 768.4 513.801 768 Y
+508.601 772.4 509.001 776.4 Y
+517.001 774.4 502.601 788.8 500.201 792.4 c
+497.801 796 507.401 801.2 Y
+520.601 804.8 509.001 808 Y
+489.401 807.6 500.201 818.4 Y
+506.201 818 504.601 820.4 Y
+499.401 821.6 489.801 828 Y
+485.801 831.6 489.401 830.8 Y
+506.201 829.6 477.401 840.8 Y
+485.401 840.8 467.401 851.2 Y
+465.401 852.8 462.201 860.4 Y
+456.201 865.6 451.401 872.4 Y
+451.001 876.8 446.201 881.6 Y
+434.601 895.2 429.001 894.8 Y
+414.201 898.4 409.001 897.6 Y
+356.2 893.2 l
+329.8 880.4 337.6 859.4 Y
+344 851 353.2 854.8 Y
+357.8 861 369.4 858.8 Y
+389.801 855.6 387.201 859.2 Y
+384.801 863.8 368.6 870 368.4 870.6 c
+368.2 871.2 359.4 874.6 Y
+356.4 875.8 352 885 Y
+348.8 888.4 364.6 882.6 Y
+363.4 881.6 370.8 877.6 Y
+388.201 878.6 398.801 867.8 Y
+409.601 851.2 409.801 859.4 Y
+412.601 868.8 400.801 890 Y
+401.201 892 409.401 885.4 Y
+410.801 887.4 411.601 881.6 Y
+411.801 879.2 415.601 871.2 Y
+418.401 858.2 422.001 865.6 Y
+426.601 856.2 L
+428.001 853.6 422.001 846 Y
+421.801 843.2 422.601 843.4 417.001 835.8 c
+411.401 828.2 414.801 823.8 Y
+413.401 817.2 422.201 817.6 Y
+424.801 815.4 428.201 815.4 Y
+430.001 813.4 432.401 814 Y
+434.001 817.8 440.201 815.8 Y
+441.601 818.2 449.801 818.6 Y
+450.801 821.2 451.201 822.8 454.601 823.4 c
+458.001 824 433.401 867 Y
+439.801 867.8 431.601 880.2 Y
+429.401 886.8 440.801 872.2 443.001 870.8 c
+445.201 869.4 446.201 867.2 444.601 867.4 c
+443.001 867.6 441.201 865.4 442.601 865.2 c
+444.001 865 457.001 850 460.401 839.8 c
+463.801 829.6 469.801 825.6 476.001 819.6 c
+482.201 813.6 481.401 789.4 Y
+481.001 780.6 487.001 770 Y
+489.001 766.2 484.801 748 Y
+482.801 745.8 484.201 745 Y
+485.201 743.8 492.001 730.6 Y
+490.201 730.8 493.801 727.2 Y
+499.001 721.2 492.601 724.2 Y
+486.601 725.8 493.601 716 Y
+494.801 714.2 485.801 718.8 Y
+476.601 719.4 488.201 712.2 Y
+496.801 705 485.401 709.4 Y
+480.801 711.2 484.001 704.4 Y
+487.201 702.8 504.401 695.8 Y
+504.801 691.999 501.801 686.999 Y
+502.201 682.999 500.001 679.599 Y
+498.801 671.399 498.201 670.599 Y
+494.001 670.399 486.601 656.599 Y
+484.801 653.999 474.601 641.999 Y
+472.601 634.999 454.601 642.199 Y
+448.001 638.799 450.001 642.199 Y
+449.601 644.399 454.401 650.399 Y
+461.401 652.999 458.801 663.799 Y
+462.801 665.199 451.601 667.999 451.801 669.199 c
+452.001 670.399 457.801 671.799 Y
+465.801 673.799 461.401 676.199 Y
+460.801 680.199 463.801 685.799 Y
+475.401 686.599 463.801 702.8 Y
+453.001 710.4 452.001 716.2 Y
+464.601 724.4 456.401 736.8 456.601 740.4 c
+456.801 744 458.001 765.6 Y
+456.001 771.8 453.001 785.4 Y
+455.201 790.6 462.601 803.2 Y
+465.401 807.4 474.201 812.2 472.001 815.2 c
+469.801 818.2 462.001 816.4 Y
+454.201 817.8 454.801 812.6 Y
+453.201 811.6 452.401 806.6 Y
+451.68 798.667 442.801 792.4 Y
+431.601 786.2 440.801 782.2 Y
+446.801 775.6 437.001 775.4 Y
+426.001 777.2 434.201 767 Y
+445.001 754.2 442.001 751.4 Y
+431.801 750.4 444.401 741.2 y
+443.601 743.2 443.801 741.4 v
+444.001 739.6 447.001 735.4 447.801 733.4 c
+448.601 731.4 444.601 731.2 Y
+445.201 721.6 429.801 725.8 y
+429.801 725.8 428.201 725.6 v
+426.601 725.4 415.401 726.2 409.601 728.4 c
+403.801 730.6 397.001 730.6 y
+393.001 728.8 385.4 729 v
+377.8 729.2 369.8 726.4 Y
+365.4 726.8 374 731.2 374.2 731 c
+374.4 730.8 380 736.4 372 735.8 c
+350.203 734.165 339.4 744.4 Y
+337.4 745.8 334.8 748.6 Y
+324.8 750.6 336.2 736.2 Y
+337.4 734.8 336 733.8 Y
+335.2 735.4 327.4 740.8 Y
+324.589 741.773 323.226 743.107 320.895 745.593 C
+f
+0.2 0.55 0.85 0.5 k
+1 J 2 w
+297 757.2 m
+308.6 751.6 311.2 748.8 v
+313.8 746 327.8 734.6 y
+322.4 736.6 319.8 738.4 v
+317.2 740.2 306.4 748.4 y
+302.6 754.4 297 757.2 v
+f
+0.4 0.2 0.8 0 k
+0 J 1 w
+238.991 788.397 m
+239.328 788.545 238.804 791.257 238.6 791.8 c
+237.578 794.526 228.6 796 y
+228.373 794.635 228.318 793.039 228.424 791.401 c
+233.292 785.882 238.991 788.397 v
+f
+0.4 0.2 0.8 0.2 k
+238.991 788.597 m
+238.542 788.439 238.976 791.331 238.8 791.8 c
+237.778 794.526 228.6 796.1 y
+228.373 794.735 228.318 793.139 228.424 791.501 c
+232.692 786.382 238.991 788.597 v
+f
+0 g
+234.6 788.454 m
+233.975 788.454 233.469 789.594 233.469 791 c
+233.469 792.405 233.975 793.545 234.6 793.545 c
+235.225 793.545 235.732 792.405 235.732 791 c
+235.732 789.594 235.225 788.454 234.6 788.454 c
+f
+234.6 791 m
+F
+189 690.399 m
+183.4 680.399 208.2 686.399 V
+222.2 687.599 224.6 689.999 V
+225.8 689.199 234.166 686.266 237 685.599 c
+243.8 683.999 252.2 694 y
+256.8 704.5 259.6 704.5 v
+262.4 704.5 259.2 702.9 y
+252.6 692.799 253 691.199 V
+247.8 671.199 231.8 670.399 V
+215.65 669.449 217 663.599 V
+225.8 665.999 228.2 663.599 V
+239 663.999 231 657.599 V
+224.2 645.999 l
+224.34 642.081 214.2 645.599 v
+204.4 648.999 194.1 661.899 y
+178.15 676.449 189 690.399 V
+f
+0.1 0.4 0.4 0 k
+187.8 686.399 m
+185.8 676.799 222.6 687.199 V
+227 687.199 229.4 686.399 v
+231.8 685.599 243.8 682.799 245.8 683.999 C
+238.6 670.399 227 671.999 V
+213.8 670.399 214.2 665.599 V
+218.2 658.399 223 655.999 V
+225.8 653.599 225.4 650.399 v
+225 647.199 222.2 645.599 220.2 644.799 c
+218.2 643.999 215 647.199 213.4 647.199 c
+211.8 647.199 203.4 653.599 199 658.399 c
+194.6 663.199 186.2 675.199 186.6 677.999 c
+187 680.799 187.8 686.399 Y
+f
+0.1 0.4 0.4 0.2 k
+191 668.949 m
+193.6 664.999 196.8 660.799 199 658.399 c
+203.4 653.599 211.8 647.199 213.4 647.199 c
+215 647.199 218.2 643.999 220.2 644.799 c
+222.2 645.599 225 647.199 225.4 650.399 c
+225.8 653.599 223 655.999 Y
+219.934 657.532 217.194 661.024 215.615 663.347 C
+215.8 660.799 210.6 661.599 v
+205.4 662.399 200.2 665.199 198.6 668.399 c
+197 671.599 194.6 673.999 196.2 670.399 c
+197.8 666.799 200.2 663.199 201.8 662.799 c
+203.4 662.399 203 661.199 200.6 661.599 c
+198.2 661.999 195.4 662.399 191 667.599 c
+F
+0.1 0.55 0.85 0.3 k
+188.4 689.999 m
+190.2 703.6 191.4 707.6 V
+190.6 714.4 193 718.6 v
+195.4 722.8 197.4 729 200.4 734.4 c
+203.4 739.8 203.6 743.8 207.6 745.4 c
+211.6 747 217.6 755.6 220.4 756.6 c
+223.2 757.6 223 756.8 y
+229.8 771.6 243.4 767.6 V
+227.2 770.4 243 779.8 V
+238.2 778.7 241.5 785.7 v
+243.701 790.368 243.2 783.6 232.2 771.8 C
+227.2 763.2 222 760.2 v
+216.8 757.2 204.8 750.2 203.6 746.4 c
+202.4 742.6 199.2 736.8 197.2 735.2 c
+195.2 733.6 192.4 729.4 192 726 C
+190.8 722 189.4 720.8 v
+188 719.6 187.8 716.4 187.8 714.4 c
+187.8 712.4 185.8 709.6 186 707.2 C
+186.8 688.199 186.4 686.199 V
+188.4 689.999 L
+f
+1 g
+179.8 685.399 m
+177.8 686.799 173.4 680.799 V
+180.7 647.799 180.7 646.399 V
+181.8 648.499 180.5 655.699 v
+179.2 662.899 178.3 675.599 y
+179.8 685.399 l
+f
+0.1 0.55 0.85 0.3 k
+201.4 746 m
+183.8 742.8 184.2 713.6 V
+183.4 688.799 l
+182.2 714.4 181 716 v
+179.8 717.6 183.8 728.8 180.6 722.8 C
+166.6 708.8 174.6 687.599 V
+176.1 684.299 173.1 688.899 V
+168.5 701.5 169.6 707.9 V
+169.8 710.1 171.7 712.9 V
+180.3 724.6 183 726.9 V
+184.8 741.3 200.2 746.5 V
+205.9 748.8 201.4 746 V
+f
+0 g
+340.8 812.2 m
+341.46 812.554 341.451 813.524 342.031 813.697 c
+343.18 814.041 343.344 815.108 343.862 815.892 c
+344.735 817.211 344.928 818.744 345.51 820.235 c
+345.782 820.935 345.809 821.89 345.496 822.55 c
+344.322 825.031 343.62 827.48 342.178 829.906 c
+341.91 830.356 341.648 831.15 341.447 831.748 c
+340.984 833.132 339.727 834.123 338.867 835.443 c
+338.579 835.884 339.104 836.809 338.388 836.893 c
+337.491 836.998 336.042 837.578 335.809 836.552 c
+335.221 833.965 336.232 831.442 337.2 829 C
+336.418 828.308 336.752 827.387 336.904 826.62 c
+337.614 823.014 336.416 819.662 335.655 816.188 c
+335.632 816.084 335.974 815.886 335.946 815.824 c
+334.724 813.138 333.272 810.693 331.453 808.312 c
+330.695 807.32 329.823 806.404 329.326 805.341 c
+328.958 804.554 328.55 803.588 328.8 802.6 C
+325.365 799.82 323.115 795.975 320.504 792.129 c
+320.042 791.449 320.333 790.24 320.884 789.971 c
+321.697 789.573 322.653 790.597 323.123 791.443 c
+323.512 792.141 323.865 792.791 324.356 793.434 c
+324.489 793.609 324.31 794.028 324.445 794.149 c
+327.078 796.496 328.747 799.432 331.2 801.8 C
+333.15 802.129 334.687 803.127 336.435 804.14 c
+336.743 804.319 337.267 804.07 337.557 804.265 c
+339.31 805.442 339.308 807.478 339.414 809.388 c
+339.464 810.272 339.66 811.589 340.8 812.2 c
+f
+331.959 816.666 m
+332.083 816.743 331.928 817.166 332.037 817.382 c
+332.199 817.706 332.602 817.894 332.764 818.218 c
+332.873 818.434 332.71 818.814 332.846 818.956 c
+335.179 821.403 335.436 824.427 334.4 827.4 C
+335.424 828.02 335.485 829.282 335.06 830.129 c
+334.207 831.829 334.014 833.755 333.039 835.298 c
+332.237 836.567 330.659 837.811 329.288 836.508 c
+328.867 836.108 328.546 835.321 328.824 834.609 c
+328.888 834.446 329.173 834.3 329.146 834.218 c
+329.039 833.894 328.493 833.67 328.487 833.398 c
+328.457 831.902 327.503 830.391 328.133 829.062 c
+328.905 827.433 329.724 825.576 330.4 823.8 C
+329.166 821.684 330.199 819.235 328.446 817.358 c
+328.31 817.212 328.319 816.826 328.441 816.624 c
+328.733 816.138 329.139 815.732 329.625 815.44 c
+329.827 815.319 330.175 815.317 330.375 815.441 c
+330.953 815.803 331.351 816.29 331.959 816.666 c
+f
+394.771 826.977 m
+396.16 825.185 396.45 822.39 394.401 821 C
+394.951 817.691 398.302 819.67 400.401 820.2 C
+400.292 820.588 400.519 820.932 400.802 820.937 c
+401.859 820.952 402.539 821.984 403.601 821.8 C
+404.035 823.357 405.673 824.059 406.317 825.439 c
+408.043 829.134 407.452 833.407 404.868 836.653 c
+404.666 836.907 404.883 837.424 404.759 837.786 c
+404.003 839.997 401.935 840.312 400.001 841 C
+398.824 844.875 398.163 848.906 396.401 852.6 C
+394.787 852.85 394.089 854.589 392.752 855.309 c
+391.419 856.028 390.851 854.449 390.892 853.403 c
+390.899 853.198 391.351 852.974 391.181 852.609 c
+391.105 852.445 390.845 852.334 390.845 852.2 c
+390.846 852.065 391.067 851.934 391.201 851.8 C
+390.283 850.98 388.86 850.503 388.565 849.358 c
+387.611 845.648 390.184 842.523 391.852 839.322 c
+392.443 838.187 391.707 836.916 390.947 835.708 c
+390.509 835.013 390.617 833.886 390.893 833.03 c
+391.645 830.699 393.236 828.96 394.771 826.977 c
+f
+357.611 808.591 m
+356.124 806.74 352.712 804.171 355.629 802.243 c
+355.823 802.114 356.193 802.11 356.366 802.244 c
+358.387 803.809 360.39 804.712 362.826 805.294 c
+362.95 805.323 363.224 804.856 363.593 805.017 c
+365.206 805.72 367.216 805.662 368.4 807 C
+372.167 806.776 375.732 807.892 379.123 809.2 c
+380.284 809.648 381.554 810.207 382.755 810.709 c
+384.131 811.285 385.335 812.213 386.447 813.354 c
+386.58 813.49 386.934 813.4 387.201 813.4 C
+387.161 814.263 388.123 814.39 388.37 815.012 c
+388.462 815.244 388.312 815.64 388.445 815.742 c
+390.583 817.372 391.503 819.39 390.334 821.767 c
+390.049 822.345 389.8 822.963 389.234 823.439 c
+388.149 824.35 387.047 823.496 386 823.8 C
+385.841 823.172 385.112 823.344 384.726 823.146 c
+383.867 822.707 382.534 823.292 381.675 822.854 c
+380.313 822.159 379.072 821.99 377.65 821.613 c
+377.338 821.531 376.56 821.627 376.4 821 C
+376.266 821.134 376.118 821.368 376.012 821.346 c
+374.104 820.95 372.844 820.736 371.543 819.044 c
+371.44 818.911 370.998 819.09 370.839 818.955 c
+369.882 818.147 369.477 816.913 368.376 816.241 c
+368.175 816.118 367.823 816.286 367.629 816.157 c
+366.983 815.726 366.616 815.085 365.974 814.638 c
+365.645 814.409 365.245 814.734 365.277 814.99 c
+365.522 816.937 366.175 818.724 365.6 820.6 C
+367.677 823.12 370.194 825.069 372 827.8 C
+372.015 829.966 372.707 832.112 372.594 834.189 c
+372.584 834.382 372.296 835.115 372.17 835.462 c
+371.858 836.316 372.764 837.382 371.92 838.106 c
+370.516 839.309 369.224 838.433 368.4 837 C
+366.562 836.61 364.496 835.917 362.918 837.151 c
+361.911 837.938 361.333 838.844 360.534 839.9 c
+359.549 841.202 359.884 842.638 359.954 844.202 c
+359.96 844.33 359.645 844.466 359.645 844.6 c
+359.646 844.735 359.866 844.866 360 845 C
+359.294 845.626 359.019 846.684 358 847 C
+358.305 848.092 357.629 848.976 356.758 849.278 c
+354.763 849.969 353.086 848.057 351.194 847.984 c
+350.68 847.965 350.213 849.003 349.564 849.328 c
+349.132 849.544 348.428 849.577 348.066 849.311 c
+347.378 848.807 346.789 848.693 346.031 848.488 c
+344.414 848.052 343.136 846.958 341.656 846.103 c
+340.171 845.246 339.216 843.809 338.136 842.489 c
+337.195 841.337 337.059 838.923 338.479 838.423 c
+340.322 837.773 341.626 840.476 343.592 840.15 c
+343.904 840.099 344.11 839.788 344 839.4 C
+344.389 839.291 344.607 839.52 344.8 839.8 C
+345.658 838.781 346.822 838.444 347.76 837.571 c
+348.73 836.667 350.476 837.085 351.491 836.088 c
+353.02 834.586 352.461 831.905 354.4 830.6 C
+353.814 829.287 353.207 828.01 352.872 826.583 c
+352.59 825.377 353.584 824.18 354.795 824.271 c
+356.053 824.365 356.315 825.124 356.8 826.2 C
+357.067 825.933 357.536 825.636 357.495 825.42 c
+357.038 823.033 356.011 821.04 355.553 818.609 c
+355.494 818.292 355.189 818.09 354.8 818.2 C
+354.332 814.051 350.28 811.657 347.735 808.492 c
+347.332 807.99 347.328 806.741 347.737 806.338 c
+349.14 804.951 351.1 806.497 352.8 807 C
+353.013 808.206 353.872 809.148 355.204 809.092 c
+355.46 809.082 355.695 809.624 356.019 809.754 c
+356.367 809.892 356.869 809.668 357.155 809.866 c
+358.884 811.061 360.292 812.167 362.03 813.356 c
+362.222 813.487 362.566 813.328 362.782 813.436 c
+363.107 813.598 363.294 813.985 363.617 814.17 c
+363.965 814.37 364.207 814.08 364.4 813.8 C
+363.754 813.451 363.75 812.494 363.168 812.292 c
+362.393 812.024 361.832 811.511 361.158 811.064 c
+360.866 810.871 360.207 811.119 360.103 810.94 c
+359.505 809.912 358.321 809.474 357.611 808.591 c
+f
+302.2 858 m
+292.962 860.872 281.8 835.2 V
+279.4 830 277 828 v
+274.6 826 263.4 822.4 261.4 818.4 C
+251 802.4 L
+265.8 818.4 269 820.8 V
+277 829.2 273.8 822.4 V
+259.8 811.6 261 802.4 V
+255.4 788 254.6 786 V
+270.6 818 273 819.2 v
+275.4 820.4 276.6 820.4 275.4 816.8 c
+274.2 813.2 273.8 796.8 271 794.8 C
+279 815.2 278.2 818.4 V
+281.4 822 283.8 816.8 V
+282.6 800.8 l
+287 788.8 l
+284.6 800 286.2 815.6 V
+284.2 826 288.2 820.4 v
+292.2 814.8 301.8 808.8 301.8 804 C
+296.6 821.6 287.4 826.4 V
+283.4 820.4 l
+282.2 822.4 l
+278.6 823.2 283 830 v
+287.4 836.8 287 837.6 y
+293.4 830.4 295 830.4 V
+308.2 838 309.4 813.6 V
+316.2 828 307 834.8 V
+292.2 836.8 293.4 842 V
+300.6 854.4 L
+304.2 859.6 302.6 856.8 y
+F
+282.2 841.6 m
+269.4 841.6 266.2 836.4 V
+259 826.8 l
+276.2 836.8 280.2 838 v
+284.2 839.2 282.2 841.6 Y
+f
+242.2 835.2 m
+240.2 834 239.8 831.2 v
+239.4 828.4 237 828 237.8 825.2 c
+238.6 822.4 240.6 820 240.6 824 c
+240.6 828 242.2 830 243 831.2 c
+243.8 832.4 245.4 836.8 242.2 835.2 c
+f
+233.4 774 m
+225 778 221.8 781.6 v
+218.6 785.2 219.052 780.034 214.2 780.4 c
+208.353 780.841 209.4 796.8 y
+205.4 789.2 l
+204.2 774.8 212.2 777.2 v
+216.107 778.372 217.4 776.8 215.8 776 c
+214.2 775.2 221.4 774.8 218.6 773.2 c
+215.8 771.6 230.2 776.8 227.8 766.4 C
+233.4 774 L
+f
+220.8 759.6 m
+205.4 755.2 201.8 764.8 V
+197 762.4 199.2 759.4 v
+201.4 756.4 202.6 756 y
+208 754.8 207.4 754 v
+206.8 753.2 204.4 749.8 y
+214.6 755.8 220.8 759.6 v
+f
+1 g
+449.201 681.399 m
+448.774 679.265 447.103 678.464 445.201 677.799 C
+443.284 678.757 440.686 681.863 438.801 679.799 C
+438.327 680.279 437.548 680.339 437.204 681.001 c
+436.739 681.899 437.011 682.945 436.669 683.743 c
+436.124 685.015 435.415 686.381 435.601 687.799 C
+437.407 688.511 438.002 690.417 437.528 692.18 c
+437.459 692.437 437.03 692.634 437.23 692.983 c
+437.416 693.306 437.734 693.533 438.001 693.8 C
+437.866 693.665 437.721 693.432 437.61 693.452 c
+437 693.558 437.124 694.195 437.254 694.582 c
+437.839 696.328 439.853 696.592 441.201 695.4 C
+441.457 695.965 441.966 695.771 442.401 695.8 C
+442.351 696.379 442.759 696.906 442.957 697.326 c
+443.475 698.424 445.104 697.318 445.901 697.93 c
+446.977 698.755 448.04 699.454 449.118 698.851 c
+450.927 697.838 452.636 696.626 453.835 694.885 c
+454.41 694.051 454.65 692.77 454.592 691.812 c
+454.554 691.165 453.173 691.517 452.83 690.588 c
+452.185 688.84 454.016 688.321 454.772 686.983 c
+454.97 686.634 454.706 686.33 454.391 686.232 c
+453.98 686.104 453.196 686.293 453.334 685.84 c
+454.306 682.647 451.55 681.969 449.201 681.399 C
+f
+439.6 661.799 m
+439.593 663.537 437.992 665.293 439.201 666.999 C
+439.336 666.865 439.467 666.644 439.601 666.644 c
+439.736 666.644 439.867 666.865 440.001 666.999 C
+441.496 664.783 445.148 663.855 445.006 661.009 c
+444.984 660.562 443.897 659.644 444.801 658.999 C
+442.988 657.651 442.933 655.281 442.001 653.399 C
+440.763 653.685 439.551 654.048 438.401 654.599 C
+438.753 656.085 438.636 657.769 439.456 659.089 c
+439.89 659.787 439.603 660.866 439.6 661.799 c
+f
+0.8 g
+273.4 670.799 m
+256.542 660.663 270.6 675.999 v
+279.4 685.599 289.4 691.199 y
+299.8 695.6 303.4 696.8 v
+307 698 322.2 703.2 325.4 703.6 c
+328.6 704 338.2 708 345 704 c
+351.8 700 359.8 695.6 y
+343.4 704 339.8 701.6 v
+336.2 699.2 329 699.6 323 696.4 C
+308.2 691.999 305 689.999 v
+301.8 687.999 291.4 676.399 289.8 677.199 c
+288.2 677.999 290.2 678.399 291.4 681.199 c
+292.6 683.999 290.6 685.599 282.6 679.199 c
+274.6 672.799 273.4 670.799 Y
+f
+0 g
+280.805 676.766 m
+282.215 689.806 290.693 688.141 V
+298.919 692.311 301.641 694.279 V
+309.78 695.981 311.09 696.598 v
+329.569 705.298 344.288 700.779 344.835 701.899 c
+345.381 703.018 365.006 695.901 368.615 691.815 c
+369.006 691.372 358.384 697.412 348.686 699.303 c
+340.413 700.917 318.811 699.056 307.905 693.52 c
+304.932 692.011 295.987 686.227 293.456 686.338 c
+290.925 686.45 280.805 676.766 Y
+f
+0.8 g
+277 651.199 m
+261.8 653.599 278.6 655.199 V
+296.6 657.199 300.6 662.399 V
+314.2 671.599 317 671.999 v
+319.8 672.399 349.8 679.599 350.2 681.999 c
+350.6 684.399 356.2 684.399 357.8 683.599 c
+359.4 682.799 358.6 681.599 355.8 680.799 c
+353 679.999 321.8 663.599 315.4 662.399 c
+309 661.199 297.4 653.599 292.6 652.399 c
+287.8 651.199 277 651.199 Y
+f
+0 g
+296.52 658.597 m
+287.938 659.426 296.539 660.245 V
+305.355 663.669 307.403 666.332 V
+314.367 671.043 315.8 671.247 v
+317.234 671.452 331.194 675.139 331.399 676.367 c
+331.604 677.596 365.67 690.177 370.09 686.987 c
+373.001 684.886 363.1 686.563 353.466 682.153 c
+352.111 681.533 318.258 666.946 314.981 666.332 c
+311.704 665.717 305.765 661.826 303.307 661.212 c
+300.85 660.597 296.52 658.597 Y
+f
+288.6 656.399 m
+293.8 656.799 292.6 655.199 v
+291.4 653.599 289 654.399 y
+288.6 656.399 l
+f
+281.4 654.799 m
+286.6 655.199 285.4 653.599 v
+284.2 651.999 281.8 652.799 y
+281.4 654.799 l
+f
+271 653.199 m
+276.2 653.599 275 651.999 v
+273.8 650.399 271.4 651.199 y
+271 653.199 l
+f
+263.4 652.399 m
+268.6 652.799 267.4 651.199 v
+266.2 649.599 263.8 650.399 y
+263.4 652.399 l
+f
+301.8 691.999 m
+306.2 691.999 305 690.399 v
+303.8 688.799 300.6 689.199 y
+301.8 691.999 l
+f
+291.8 686.399 m
+298.306 688.54 295.8 685.199 v
+294.6 683.599 292.2 684.399 y
+291.8 686.399 l
+f
+280.6 681.599 m
+285.8 681.999 284.6 680.399 v
+283.4 678.799 281 679.599 y
+280.6 681.599 l
+f
+273 675.599 m
+278.2 675.999 277 674.399 v
+275.8 672.799 273.4 673.599 y
+273 675.599 l
+f
+266.2 670.799 m
+271.4 671.199 270.2 669.599 v
+269 667.999 266.6 668.799 y
+266.2 670.799 l
+f
+305.282 664.402 m
+312.203 664.934 310.606 662.805 v
+309.009 660.675 305.814 661.74 y
+305.282 664.402 l
+f
+315.682 669.202 m
+322.603 669.734 321.006 667.605 v
+319.409 665.475 316.214 666.54 y
+315.682 669.202 l
+f
+326.482 673.602 m
+333.403 674.134 331.806 672.005 v
+330.209 669.875 327.014 670.94 y
+326.482 673.602 l
+f
+336.882 678.402 m
+343.803 678.934 342.206 676.805 v
+340.609 674.675 337.414 675.74 y
+336.882 678.402 l
+f
+309.282 696.402 m
+316.203 696.934 314.606 694.805 v
+313.009 692.675 309.014 692.94 y
+309.282 696.402 l
+f
+319.282 699.602 m
+326.203 700.134 324.606 698.005 v
+323.009 695.875 318.614 696.14 y
+319.282 699.602 l
+f
+296.6 659.599 m
+301.8 659.999 300.6 658.399 v
+299.4 656.799 297 657.599 y
+296.6 659.599 l
+f
+0.1 0.55 0.85 0.3 k
+223.4 758.8 m
+219 750 218.6 746.8 V
+219.4 755.6 220.6 757.6 v
+221.8 759.6 223.4 758.8 y
+f
+205 744.8 m
+201.8 730.4 202.2 727.6 V
+201 739.2 201.4 740.4 v
+201.8 741.6 205 744.8 y
+f
+0.8 g
+225.8 819.4 m
+225.6 816.2 l
+223.4 816 l
+237.6 803.4 238.2 795.8 V
+239 804 225.8 819.4 V
+f
+0 g
+229.784 818.135 m
+229.353 818.551 229.572 819.296 229.164 819.556 c
+228.355 820.072 230.462 820.129 230.234 820.845 c
+229.851 822.051 230.038 822.072 229.916 823.348 c
+229.859 823.946 230.447 825.486 230.832 825.926 c
+232.278 827.578 230.954 830.51 232.594 832.061 c
+232.898 832.35 233.274 832.902 233.559 833.32 c
+234.218 834.283 235.402 834.771 236.352 835.599 c
+236.67 835.875 236.469 836.702 237.038 836.61 c
+237.752 836.495 238.993 836.625 238.948 835.784 c
+238.835 833.664 237.506 831.944 236.226 830.276 C
+236.677 829.572 236.219 828.937 235.935 828.38 c
+234.6 825.76 234.789 822.919 234.615 820.079 c
+234.61 819.994 234.303 819.916 234.311 819.863 c
+234.664 817.528 235.248 815.329 236.127 813.1 c
+236.493 812.17 236.964 811.275 237.114 810.348 c
+237.225 809.662 237.328 808.829 236.92 808.124 C
+238.955 805.234 237.646 802.583 238.815 799.052 c
+239.022 798.427 240.714 796.513 240.251 796.674 c
+237.738 797.545 237.626 797.943 237.449 798.696 c
+237.303 799.319 236.973 800.696 236.736 801.298 c
+236.672 801.462 236.501 803.346 236.423 803.468 c
+234.91 805.85 236.268 805.674 234.898 808.032 C
+233.47 808.712 232.504 809.816 231.381 810.978 c
+231.183 811.182 232.326 811.906 232.145 812.119 c
+231.053 813.408 229.9 814.175 230.236 815.668 c
+230.391 816.358 230.528 817.415 229.784 818.135 c
+f
+226.2 816.4 m
+226.6 809.6 229 808 v
+231.4 806.4 230.2 807.2 227 808.4 c
+223.8 809.6 225 810.4 y
+222.2 810 224.6 808 v
+227 806 230.6 803.6 229 803.6 c
+227.4 803.6 219.8 807.6 219.8 810.4 c
+219.8 813.2 218.8 817.3 y
+219.9 818.1 224.7 818 V
+226.1 817.3 226.2 816.4 V
+f
+1 g
+1 J 0.1 w
+225.4 797.8 m
+216.88 800.591 198.4 797.2 V
+207.431 799.278 226.2 797 v
+236.5 795.75 225.4 797.8 Y
+b
+227.498 797.871 m
+219.252 801.389 200.547 799.608 V
+209.725 800.897 228.226 797.005 v
+238.38 794.869 227.498 797.871 Y
+b
+229.286 797.778 m
+221.324 801.899 202.539 801.514 V
+211.787 802.118 229.948 796.86 v
+239.914 793.975 229.286 797.778 Y
+b
+230.556 797.555 m
+223.732 801.862 206.858 802.96 V
+215.197 802.79 231.078 796.681 v
+239.794 793.328 230.556 797.555 Y
+b
+345.84 787.039 m
+344.91 786.395 345.124 787.576 v
+345.339 788.757 373.547 801.927 377.161 801.677 C
+346.913 788.471 345.84 787.039 V
+b
+342.446 786.4 m
+341.57 785.685 341.691 786.879 v
+341.812 788.073 368.899 803.418 372.521 803.452 C
+343.404 787.911 342.446 786.4 V
+b
+339.16 785.025 m
+338.332 784.253 338.374 785.453 v
+338.416 786.652 358.233 802.149 368.045 804.023 C
+350.015 795.896 339.16 785.025 V
+b
+336.284 783.162 m
+335.539 782.468 335.577 783.547 v
+335.615 784.627 353.449 798.574 362.28 800.26 C
+346.054 792.946 336.284 783.162 V
+b
+0.8 g
+0 J 1 w
+304.6 635.199 m
+289.4 637.599 306.2 639.199 V
+324.2 641.199 328.2 646.399 V
+341.8 655.599 344.6 655.999 v
+347.4 656.399 363.8 659.999 364.2 662.399 c
+364.6 664.799 370.6 667.199 372.2 666.399 c
+373.8 665.599 373.8 656.399 371 655.599 c
+368.2 654.799 349.4 647.599 343 646.399 c
+336.6 645.199 325 637.599 320.2 636.399 c
+315.4 635.199 304.6 635.199 Y
+f
+0 g
+377.6 672.599 m
+374.6 670.999 373.4 668.399 V
+367 657.799 352.8 654.599 V
+329.8 645.599 322 643.599 V
+308.6 638.599 301.2 639.399 V
+294.2 639.199 300.4 637.599 V
+320.6 639.599 324 641.399 V
+339.6 646.599 342.6 649.199 v
+345.6 651.799 363.8 656.799 366 658.799 c
+368.2 660.799 378 669.199 377.6 672.599 C
+f
+318.882 641.089 m
+324.111 641.315 322.958 639.766 v
+321.805 638.216 319.357 639.09 y
+318.882 641.089 l
+f
+311.68 639.737 m
+316.908 639.963 315.756 638.414 v
+314.603 636.864 312.155 637.737 y
+311.68 639.737 l
+f
+301.251 638.489 m
+306.48 638.716 305.327 637.166 v
+304.174 635.617 301.726 636.49 y
+301.251 638.489 l
+f
+293.617 637.945 m
+298.846 638.171 297.693 636.622 v
+296.54 635.072 294.092 635.946 y
+293.617 637.945 l
+f
+335.415 648.487 m
+342.375 648.788 340.84 646.726 v
+339.306 644.664 336.047 645.826 y
+335.415 648.487 l
+f
+345.73 652.912 m
+351.689 656.213 351.155 651.151 v
+350.885 648.595 346.362 650.251 y
+345.73 652.912 l
+f
+354.862 655.726 m
+362.021 659.427 360.287 653.965 v
+359.509 651.515 355.493 653.065 y
+354.862 655.726 l
+f
+364.376 660.551 m
+368.735 665.452 369.801 658.79 v
+370.207 656.252 365.008 657.89 y
+364.376 660.551 l
+f
+326.834 644.003 m
+332.062 644.23 330.91 642.68 v
+329.757 641.131 327.308 642.004 y
+326.834 644.003 l
+f
+1 g
+1 J 0.1 w
+362.434 765.397 m
+361.708 764.732 361.707 765.803 v
+361.707 766.873 379.191 780.137 388.034 781.521 C
+371.935 774.792 362.434 765.397 V
+b
+0 g
+0 J 1 w
+365.4 701.6 m
+387.401 679.199 396.601 675.599 V
+405.801 664.399 401.801 638.399 V
+398.601 630.799 395.401 651.599 V
+398.601 676.799 387.401 660.799 V
+379 670.699 385.4 670.399 V
+388.601 668.399 389.001 669.999 v
+389.401 671.599 381.4 685.199 364.2 699.6 c
+347 714 365.4 701.6 Y
+f
+1 g
+1 J 0.1 w
+307 662.799 m
+306.8 664.599 308.6 663.799 v
+310.4 662.999 404.601 656.799 436.201 632.799 C
+391.001 655.999 307 662.799 V
+b
+317.4 667.199 m
+317.2 668.999 319 668.199 v
+320.8 667.399 457.401 668.399 481.001 635.999 C
+459.001 661.199 317.4 667.199 V
+b
+329 671.199 m
+328.8 672.999 330.6 672.199 v
+332.4 671.399 505.801 684.399 529.401 651.999 C
+519.801 677.599 329 671.199 V
+b
+339 675.999 m
+338.8 677.799 340.6 676.999 v
+342.4 676.199 464.601 714.8 488.201 682.399 C
+474.801 707 339 675.999 V
+b
+281 653.199 m
+280.8 654.999 282.6 654.199 v
+284.4 653.399 302.2 651.199 304.2 612.399 C
+297 654.399 281 653.199 V
+b
+272.2 651.599 m
+272 653.399 273.8 652.599 v
+275.6 651.799 289.8 656.399 287 617.599 C
+288.2 652.799 272.2 651.599 V
+b
+264.2 651.199 m
+264 652.999 265.8 652.199 v
+267.6 651.399 283 650.799 270.6 628.399 C
+280.2 652.399 264.2 651.199 V
+b
+311.526 695.535 m
+311.082 693.536 312.631 694.753 v
+328.699 707.378 361.141 766.28 416.826 771.914 C
+378.518 784.024 311.526 695.535 V
+b
+322.726 697.335 m
+321.363 698.528 323.231 699.153 v
+325.099 699.778 437.541 772.28 476.826 764.314 C
+449.719 771.824 322.726 697.335 V
+b
+301.885 691.233 m
+301.376 689.634 303.087 690.61 v
+312.062 695.73 315.677 752.941 359.254 754.196 C
+326.843 768.91 301.885 691.233 V
+b
+281.962 680.207 m
+280.885 678.921 282.838 679.175 v
+293.084 680.507 314.489 721.778 358.928 716.699 C
+326.962 731.045 281.962 680.207 V
+b
+293.2 686.333 m
+292.389 684.864 294.258 685.489 v
+304.057 688.763 317.141 733.375 361.729 736.922 C
+327.603 744.865 293.2 686.333 V
+b
+274.922 675.088 m
+274.049 674.046 275.631 674.252 v
+283.93 675.331 301.268 708.76 337.264 704.646 C
+311.371 716.266 274.922 675.088 V
+b
+267.323 669.179 m
+266.318 668.134 267.909 668.252 v
+272.077 668.561 302.715 701.64 321.183 686.138 C
+309.168 704.861 267.323 669.179 V
+b
+336.855 701.102 m
+335.654 702.457 337.586 702.842 v
+339.518 703.226 460.221 760.939 498.184 748.073 C
+472.243 758.947 336.855 701.102 V
+b
+303.4 636.799 m
+303.2 638.599 305 637.799 v
+306.8 636.999 322.2 636.399 309.8 613.999 C
+319.4 637.999 303.4 636.799 V
+b
+313.8 638.399 m
+313.6 640.199 315.4 639.399 v
+317.2 638.599 335 636.399 337 597.599 C
+329.8 639.599 313.8 638.399 V
+b
+320.6 639.999 m
+320.4 641.799 322.2 640.999 v
+324 640.199 348.6 636.799 372.2 604.399 C
+336.6 641.199 320.6 639.999 V
+b
+328.225 642.028 m
+327.788 643.786 329.678 643.232 v
+331.568 642.678 352.002 644.577 390.099 610.401 C
+343.924 645.344 328.225 642.028 V
+b
+338.625 646.428 m
+338.188 648.186 340.078 647.632 v
+341.968 647.078 376.802 642.577 428.499 607.601 C
+354.324 649.744 338.625 646.428 V
+b
+298.2 657.999 m
+298 659.799 299.8 658.999 v
+301.6 658.199 355 655.599 385.4 628.799 C
+350.499 653.574 298.2 657.999 V
+b
+288.2 653.999 m
+288 655.799 289.8 654.999 v
+291.6 654.199 316.2 650.799 339.8 618.399 C
+304.2 655.199 288.2 653.999 V
+b
+349.503 651.038 m
+348.938 652.759 350.864 652.345 v
+352.79 651.932 387.86 649.996 441.981 618.902 C
+364.317 653.296 349.503 651.038 V
+b
+357.903 653.438 m
+357.338 655.159 359.264 654.745 v
+361.19 654.332 396.26 652.396 450.381 621.302 C
+373.317 656.096 357.903 653.438 V
+b
+367.503 658.438 m
+366.938 660.159 368.864 659.745 v
+370.79 659.332 413.86 654.996 503.582 620.702 C
+382.917 661.096 367.503 658.438 V
+b
+0 g
+0 J 1 w
+256.2 651.599 m
+261.4 651.999 260.2 650.399 v
+259 648.799 256.6 649.599 y
+256.2 651.599 l
+f
+287 637.599 m
+292.2 637.999 291 636.399 v
+289.8 634.799 287.4 635.599 y
+287 637.599 l
+f
+278.2 637.999 m
+283.4 638.399 282.2 636.799 v
+281 635.199 278.6 635.999 y
+278.2 637.999 l
+f
+182.831 649.818 m
+187.876 648.495 186.218 647.376 v
+184.561 646.256 182.554 647.798 y
+182.831 649.818 l
+f
+184.831 659.418 m
+189.876 658.095 188.218 656.976 v
+186.561 655.856 184.554 657.398 y
+184.831 659.418 l
+f
+177.631 663.818 m
+182.676 662.495 181.018 661.376 v
+179.361 660.256 177.354 661.798 y
+177.631 663.818 l
+f
+0.8 g
+1 J 0.1 w
+257.4 588.799 m
+255.8 588.799 251.8 586.799 V
+249.8 586.799 238.6 583.199 233 573.199 C
+245.4 582.799 257.4 588.799 V
+f
+345.116 496.153 m
+345.257 495.895 345.312 495.475 345.604 495.458 c
+346.262 495.418 347.495 495.117 347.37 495.753 c
+346.522 500.059 345.648 504.996 341.515 506.803 c
+340.876 507.082 339.434 506.669 339.36 505.785 c
+339.233 504.261 339.116 502.912 339.425 501.446 c
+339.725 500.025 341.883 500.015 342.8 501.399 C
+343.736 499.727 344.168 497.884 345.116 496.153 c
+f
+334.038 491.419 m
+334.786 490.006 334.659 488.147 336.074 487.584 c
+336.814 487.29 338.664 488.265 338.246 489.339 c
+337.444 491.4 337.056 493.639 335.667 495.45 c
+335.467 495.712 335.707 496.245 335.547 496.573 c
+334.953 497.793 333.808 498.528 332.4 498.199 C
+331.285 495.996 332.433 493.867 333.955 492.158 c
+334.091 492.006 333.925 491.63 334.038 491.419 c
+f
+294.436 496.609 m
+294.328 496.986 294.29 497.449 294.455 497.77 c
+294.986 498.803 295.779 499.925 295.442 500.947 c
+295.094 502.003 293.978 501.821 293.328 501.252 c
+292.193 500.258 292.144 498.432 291.453 497.073 c
+291.257 496.687 291.308 496.114 290.867 495.723 c
+290.393 495.302 289.953 493.778 290.049 493.207 c
+290.102 492.894 289.919 482.986 290.141 483.249 c
+290.76 483.982 293.81 493.716 293.879 494.608 c
+293.936 495.339 294.668 495.804 294.436 496.609 c
+f
+268.798 503.401 m
+271.432 505.9 274.222 508.861 273.78 512.573 c
+273.664 513.549 271.889 513.022 271.702 512.176 c
+270.9 508.551 268.861 505.89 266.293 503.498 c
+264.097 501.451 262.235 495.107 262 494.599 C
+265.697 499.855 267.954 502.601 268.798 503.401 c
+f
+255.224 509.365 m
+255.747 509.735 255.445 510.226 255.662 510.558 c
+256.615 512.016 257.916 513.262 257.934 515 c
+257.937 515.277 257.559 515.586 257.224 515.362 c
+256.947 515.178 256.605 515.048 256.497 514.918 c
+254.467 512.469 253.067 509.798 251.624 506.986 c
+251.441 506.629 250.297 502.138 250.61 502.027 c
+250.849 501.942 252.569 506.123 252.779 506.237 c
+254.042 506.923 254.054 508.538 255.224 509.365 c
+f
+271.957 489.821 m
+272.401 490.69 273.977 491.892 273.864 492.781 c
+273.746 493.709 274.214 495.152 273.302 494.464 c
+272.045 493.516 268.596 492.167 268.326 486.359 c
+268.3 485.788 271.274 488.481 271.957 489.821 c
+f
+286.4 506.999 m
+286.8 507.667 287.508 507.194 287.967 507.457 c
+288.615 507.829 289.226 508.387 289.518 509.036 c
+290.488 511.185 292.257 513.005 292.4 515.399 C
+290.909 516.804 290.23 514.764 289.6 513.799 C
+288.277 515.446 287.278 513.572 285.978 513.053 c
+285.908 513.025 285.695 513.372 285.62 513.345 c
+284.443 512.905 283.763 511.824 282.765 511.043 c
+282.594 510.909 282.189 511.089 282.042 510.953 c
+281.39 510.35 280.417 510.025 280.137 509.343 c
+279.027 506.636 275.887 504.541 274 496.999 C
+274.381 496.09 278.512 503.641 278.999 504.339 c
+279.835 505.535 279.953 502.678 281.229 503.344 c
+281.28 503.371 281.466 503.133 281.6 502.999 C
+281.794 503.279 282.012 503.508 282.4 503.399 C
+282.4 503.799 282.266 504.355 282.467 504.514 c
+283.704 505.491 283.62 506.559 284.4 507.799 C
+284.858 507.01 285.919 507.729 286.4 506.999 C
+f
+346.2 452.599 m
+353.6 472.999 349.2 484.199 V
+360.6 462.599 356 451.399 V
+355.6 461.799 351.6 466.799 V
+347.6 453.999 346.2 452.599 V
+f
+331.4 455.199 m
+336.8 463.999 328.8 482.399 V
+328 461.999 321.2 450.999 V
+335.4 471.199 331.4 455.199 V
+f
+321.4 457.199 m
+321.2 477.199 321.6 480.199 V
+317.8 463.599 307.6 453.999 V
+322 465.999 321.4 457.199 V
+f
+311.8 489.199 m
+317.8 475.599 307.8 457.199 V
+314.2 469.399 309.4 476.399 V
+312 479.799 311.8 489.199 V
+f
+292.6 457.599 m
+291.6 473.199 293.4 475.399 V
+293.6 481.799 293.2 482.799 V
+297.2 488.999 297.4 481.599 V
+298.8 473.799 301.6 469.199 V
+305.2 463.799 305 457.399 V
+295 487.599 292.6 457.599 V
+f
+289 485.199 m
+282.4 474.399 280.6 455.399 V
+279.2 461.599 283 475.999 V
+287.2 491.399 289 485.199 V
+f
+267.2 465.399 m
+272.2 470.799 273.6 475.799 V
+277.2 491.599 270.8 482.999 V
+271 474.999 262.8 467.599 V
+267.6 469.999 267.2 465.399 V
+f
+261.4 470.399 m
+264.8 487.799 265.6 488.599 V
+267.4 491.999 264.6 488.799 V
+255.8 469.599 251.8 462.999 V
+259.8 472.199 261.4 470.399 V
+f
+255.6 486.999 m
+267.2 509.399 245.4 483.599 V
+256.4 493.399 255.6 486.999 V
+f
+240.2 501.599 m
+245 520.399 247.6 520.199 V
+255.8 529.199 249.2 518.599 V
+243.2 508.999 243.8 499.199 V
+243.2 508.799 240.2 501.599 V
+f
+570.5 513 m
+558.5 523 556 526.5 V
+569.5 508 569.5 501 V
+572 508.5 570.5 513 V
+f
+576 535 m
+555 550 551.5 557.5 V
+578 528 578 523.5 V
+578.5 532.5 576 535 V
+f
+593 689 m
+581 697 579.5 695 V
+590 688.5 592.5 680 V
+591 689 593 689 V
+f
+601.5 608.5 m
+584 620.5 l
+603 603.5 603.5 599.5 V
+601.5 608.5 L
+f
+0 g
+1 w
+210.75 631 m
+232.75 626.25 l
+S
+261 469 m
+260.5 472.5 251.5 462 v
+S
+266.5 464 m
+268.5 470.5 262 466 v
+S
+320.5 455.5 m
+322 466.5 310.5 453.5 v
+S
+
+showpage
+
+% Modification Denis GIROU (CNRS/IDRIS - France) <Denis.Girou@idris.fr> - 18 Dec. 1997
+%% %%Trailer
+countdictstack InitDictCount sub { end } repeat
+cleartomark
+restore
+grestore
diff --git a/graphics/pstricks/contrib/pst-mirror/doc/createEPS/xb.pdf b/graphics/pstricks/contrib/pst-mirror/doc/createEPS/xb.pdf
new file mode 100644
index 0000000000..51f7dccf27
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-mirror/doc/createEPS/xb.pdf
Binary files differ
diff --git a/graphics/pstricks/contrib/pst-mirror/doc/createEPS/xc.pdf b/graphics/pstricks/contrib/pst-mirror/doc/createEPS/xc.pdf
new file mode 100644
index 0000000000..1272e7b5ab
--- /dev/null
+++ b/graphics/pstricks/contrib/pst-mirror/doc/createEPS/xc.pdf
Binary files differ
diff --git a/graphics/pstricks/contrib/pst-mirror/doc/pst-mirror-doc.pdf b/graphics/pstricks/contrib/pst-mirror/doc/pst-mirror-doc.pdf
index 33980a133a..9204f3a604 100644
--- a/graphics/pstricks/contrib/pst-mirror/doc/pst-mirror-doc.pdf
+++ b/graphics/pstricks/contrib/pst-mirror/doc/pst-mirror-doc.pdf
Binary files differ
diff --git a/graphics/pstricks/contrib/pst-mirror/doc/pst-mirror-doc.tex b/graphics/pstricks/contrib/pst-mirror/doc/pst-mirror-doc.tex
index 9623d2230e..8221a0aec6 100644
--- a/graphics/pstricks/contrib/pst-mirror/doc/pst-mirror-doc.tex
+++ b/graphics/pstricks/contrib/pst-mirror/doc/pst-mirror-doc.tex
@@ -1034,9 +1034,9 @@ un plan d\'{e}fini comme pour le texte.
{\psset{normale=0 0,Xorigine=15,Yorigine=0,Zorigine=0}
\pstSphereFrame[fillstyle=solid,fillcolor=black](-70,-50)(70,50)
\pstSphereGrid[linecolor=white,linewidth=0.2mm,grille=10,Ymin=-50,Ymax=50,Xmax=70,Xmin=-70](15,0,0)}%
-\pstSphereImage[normale=0 0,scale=0.75](15,0,0){images/donaldNB.eps}
+\pstSphereImage[normale=0 0,scale=0.75](15,0,0){images/tiger-c.eps}
\pstSphereText[fillstyle=solid,fillcolor=white,linecolor=white,fontscale=17,fontname=Symbol,
- normale=0 0,isolatin=false](15,0,25){Donald}
+ normale=0 0,isolatin=false](15,0,25){tiger-b}
\parametricplotSphere[plotpoints=3600,linecolor=white,linewidth=0.5mm,normale=0 0,Xorigine=15,%
Yorigine=30,Zorigine=10]{0}{360}{%
/Radius 10 t 4 mul cos mul def
@@ -1058,7 +1058,7 @@ un plan d\'{e}fini comme pour le texte.
\pstSphereGrid[linecolor=white,linewidth=0.2mm,grille=10,Ymin=-50,Ymax=50,Xmax=70,Xmin=-70](15,0,0)}%
\pstSphereImage[normale=0 0,scale=0.75](15,0,0){images/donaldNB.eps}
\pstSphereText[fillstyle=solid,fillcolor=white,linecolor=white,fontscale=17,fontname=Symbol,
- normale=0 0,isolatin=false](15,0,25){Donald}
+ normale=0 0,isolatin=false](15,0,25){tiger.eps}
\parametricplotSphere[plotpoints=3600,linecolor=white,linewidth=0.5mm,normale=0 0,Xorigine=15,%
Yorigine=30,Zorigine=10]{0}{360}{%
/Radius 10 t 4 mul cos mul def
@@ -1084,7 +1084,7 @@ les plus \'{e}loign\'{e}s de boule, puis ceux qui sont de plus en plus proche de
\psframe*[linecolor=black!15](-4,-4)(4,4)
\pscircle*[linecolor=blue!50]{!5 2 sqrt div}
\psset{Rayon=5}
-\pstSphereImage[normale=0 0](5,0,0){images/donaldNB.eps}
+\pstSphereImage[normale=0 0](5,0,0){images/tiger-c.eps}
%\pstSphereGrid[linecolor=gray,linewidth=0.01,grille=5,Ymin=-100,Ymax=100,Xmax=100,Xmin=-100](5,0,0)%
\end{pspicture}
@@ -1093,7 +1093,7 @@ les plus \'{e}loign\'{e}s de boule, puis ceux qui sont de plus en plus proche de
\psframe*(-5,-5)(5,5)
\pscircle*[linecolor=blue!50]{!5 2 sqrt div}
\psset{Rayon=5}
-\pstSphereImage[normale=0 0](5,0,0){images/donaldNB.eps}
+\pstSphereImage[normale=0 0](5,0,0){images/tiger-c.eps}
%\pstSphereGrid[linecolor=gray,linewidth=0.01,grille=5,Ymin=-100,Ymax=100,Xmax=100,Xmin=-100](5,0,0)%
\end{pspicture}
\end{lstlisting}
diff --git a/graphics/pstricks/contrib/pst-mirror/tex/pst-mirror.tex b/graphics/pstricks/contrib/pst-mirror/tex/pst-mirror.tex
index 89917b065b..e319e9dd6b 100644
--- a/graphics/pstricks/contrib/pst-mirror/tex/pst-mirror.tex
+++ b/graphics/pstricks/contrib/pst-mirror/tex/pst-mirror.tex
@@ -1,4 +1,4 @@
-%% $Id: pst-mirror.tex 248 2021-09-14 08:57:11Z herbert $
+%% $Id: pst-mirror.tex 899 2024-05-17 18:56:24Z herbert $
%%
%% This is file `pst-mirror.tex',
%%
@@ -26,8 +26,8 @@
\ifx\PSTtoolsLoaded\endinput\else\input pst-tools.tex \fi
\ifx\MultidoLoaded\endinput \else\input multido.tex \fi
%
-\def\fileversion{1.02}
-\def\filedate{2021/09/14}%
+\def\fileversion{1.02a}
+\def\filedate{2024/05/17}%
\message{`pst-mirror v\fileversion, \filedate\space (ml,hv)}%
%
\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax
diff --git a/graphics/pstricks/contrib/pst-optic/Changes b/graphics/pstricks/contrib/pst-optic/Changes
index a078ae43c3..9d04151b68 100644
--- a/graphics/pstricks/contrib/pst-optic/Changes
+++ b/graphics/pstricks/contrib/pst-optic/Changes
@@ -1,4 +1,5 @@
---- pst-optic.tex
+1.03 2024-05-17 - small fixes to code and documentation
1.02a 2023-05-07 - fix documentation for \psRefractionRay
1.02 2016-07-10 - added option onlyrays, preset to false
1.01 2010-07-23 - bugfixes for \psset[pst-optic,pstricks]
diff --git a/graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.bib b/graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.bib
index 6eea964780..740cf6db59 100644
--- a/graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.bib
+++ b/graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.bib
@@ -96,7 +96,7 @@
@Article{dtk02.1:voss:mathematischen,
- author = {Herbert Vo{\ss}},
+ author = {Herbert Voß},
title = {Die mathematischen {F}unktionen von {P}ostscript},
journal = dtk,
year = 2002,
@@ -105,7 +105,7 @@
altnumber = 14,
month = mar,
pages = {40--47},
- annote = bretter,
+ annote = "Bretter, die die Welt bedeuten",
abstract = { \PS, faktisch genauso alt wie {\TeX}, ist im
Verh{\"a}ltnis dazu allgemein noch weniger bekannt, wenn es
darum geht zu beurteilen, was es denn nun im eigentlichen
@@ -117,10 +117,3 @@
gezeigt. }
}
-@ctan{pstlens:2001,
- Title = {PST-lens - {\PS} macros for Generic TeX},
- Author = {Denis Girou and Manuel Luque},
- url = {/graphics/pstricks/contrib/pst-lens/},
- year = 2001,
-}
-
diff --git a/graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.pdf b/graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.pdf
index a3e3c438ae..35ec09b5b8 100644
--- a/graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.pdf
+++ b/graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.pdf
Binary files differ
diff --git a/graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.tex b/graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.tex
index 275db43b5a..96ca28bbec 100644
--- a/graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.tex
+++ b/graphics/pstricks/contrib/pst-optic/doc/pst-optic-doc.tex
@@ -1,4 +1,4 @@
-%% $Id: pst-optic-doc.tex 717 2023-05-07 18:46:46Z herbert $
+%% $Id: pst-optic-doc.tex 896 2024-05-17 10:13:27Z herbert $
\DocumentMetadata{}
\documentclass[11pt,english,bibliography=totoc,parskip=false,headings=small,
@@ -10,6 +10,7 @@
\let\belowcaptionskip\abovecaptionskip
%
%\usepackage[style=dtk]{biblatex}
+%\addbibresource[location=remote]{https://mirror.ctan.org/biblio/ctan-bibdata/ctan.bib}
\addbibresource{\jobname.bib}
\begin{document}
@@ -44,7 +45,8 @@ of having older versions, go to \url{http://www.CTAN.org/} and load the newest v
\vfill\noindent
Thanks to: \\
Jean-C\^ome Charpentier,
-Arnaud Schmittbuhl.
+Arnaud Schmittbuhl,
+Keno Wehr
\end{abstract}
\section{General Options}
@@ -129,10 +131,35 @@ It can be overwritten in the same way with \Lcs{newpsstyle}.
There are macros for the convergent and divergent lens
\begin{BDef}
\Lcs{lens}\OptArgs\\
-\Lcs{lensCVG}\OptArgs\% \textbf{C}on\textbf{v}er\textbf{g}ent (Collecting lens ) -- default\\
-\Lcs{lensDVG}\OptArgs\% \textbf{D}i\textbf{v}er\textbf{g}ent (Scatter lens )
+\Lcs{lensCVG} \% \textbf{C}on\textbf{v}er\textbf{g}ent (Collecting lens ) -- default\\
+\Lcs{lensDVG} \% \textbf{D}i\textbf{v}er\textbf{g}ent (Scatter lens )
+\Lcs{pslensCVG}\OptArgs \Largb{lens width}\Largb{lens height}\\
+\Lcs{pslensDVG}\OptArgs \Largb{lens width}\Largb{lens height}\\
\end{BDef}
+
+% \psscalebox{\psk@optic@lensScale}{%
+% \pscustom[linewidth=0.75\pslinewidth]{%
+% \pslensCVG{\psk@optic@lensWidth}{\psk@optic@lensHeight}
+% \fill[fillstyle=solid,fillcolor=BleuVerre]
+
+
+The predefined options for \Lcs{lens} are \texttt{xLeft=-7.5, xRight=7.5, yBottom=-3, yTop=3}.
+
+
+\subsection{Short forms}
+The two macros \Lcs{lensCVG} and \Lcs{lensDVG} are only short forms of the main macro \Lcs{lens}
+with the setting \Lkeyval{lensType}\texttt{=CVG|DVG}.
+The only valid arguments are \Lkeyword{lensScale}, \Lkeyword{lensWidth}, and \Lkeyword{lensHeight},
+which must be set by \Lcs{psset}.
+
+%\begin{verbatim}
+%lensType=CVG, OA=-7, lensHeight=6, lensWidth=1.5, refractB=2
+%\end{verbatim}
+
+The two macros \Lcs{pslensCVG} and \Lcs{pslensDVG} have two mandatory
+arguments: lens width and lens height.
+
\subsection{The Coordinates of the predefined Nodes}
The following figure shows the coordinates of the predefined nodes (see Table~\ref{tab:generalOptions}).
@@ -157,6 +184,9 @@ The following figure shows the coordinates of the predefined nodes (see Table~\r
\end{pspicture*}}
\captionof{figure}{Coodinates of the predefined Nodes}\label{fig:nodes}
+
+\clearpage
+
\subsection{The Lens Type}
\begin{LTXexample}[wide=false]
@@ -171,7 +201,7 @@ The following figure shows the coordinates of the predefined nodes (see Table~\r
\vspace*{-2ex}
\captionof{figure}{Plan Collecting lens}
-\enlargethispage{2ex}
+%\enlargethispage{2ex}
\begin{LTXexample}[wide=false]
\psscalebox{0.75}{\lens[lensType=DVG,focus=-2,spotAi=270,spotBi=90]}
@@ -185,7 +215,7 @@ The following figure shows the coordinates of the predefined nodes (see Table~\r
\vspace*{-2ex}
\captionof{figure}{Plan Scatter lens}
-\clearpage
+%\clearpage
Using \Lcs{lens}\OptArg{\Lkeyword{lensType}=\ldots} gives the in figures \ref{fig:defaultCVG} and
\ref{fig:defaultDVG} shown lenses with the default values from Table~\ref{tab:defaultLens}.
@@ -204,7 +234,7 @@ Using \Lcs{lens}\OptArg{\Lkeyword{lensType}=\ldots} gives the in figures \ref{fi
Lense height in cm & \Lkeyword{lensHeight} & 5cm\\
Lense width in cm & \Lkeyword{lensWidth} & 0.5cm\footnotemark\\
vertical scale (obsolet) & \Lkeyword{lensScale} & 1\\
- View the lens & \Lkeyword{lensGlass} & \false\\
+ View the lens & \Lkeyword{lensGlass} & \true\\
show onyl the rays & \Lkeyword{onlyrays} & \false\\
Second lens & \Lkeyword{lensTwo} & \false\\
Focus in cm & \Lkeyword{focus} & 2\\
@@ -515,7 +545,11 @@ The macro doesn't draw any lines, only the coordinates of the new point are save
\subsection{\nxLcs{symPlan}}
-\verb|\symPlan| allows to mirroring complete plain graphical objects along a virtual center line. Figure \ref{fig:symPlan} shows that this mirroring is a mathematical one and not a physical one. For more examples look at \cite{pstoptic:2001}. The syntax is:
+\verb|\symPlan| allows to mirroring complete plain graphical objects along a virtual
+center line. Figure \ref{fig:symPlan}
+shows that this mirroring is a mathematical one and not a physical one.
+%For more examples look at \cite{pstoptic:2001}.
+The syntax is:
\begin{BDef}
\Lcs{symPlan}\Largr{node1}\Largr{node2}\Largb{graphic object}
@@ -1071,7 +1105,7 @@ Syntax:
\begin{BDef}
\Lcs{eye}
\end{BDef}
-There are no Options for this symbol of an human eye (Figure~\ref{fig:auge}).
+There are no Options for this symbol of an human eye.
Use the \Lcs{rput}-macro to put the eye elsewhere.
\begin{LTXexample}[width=2cm,pos=l,wide=false]
diff --git a/graphics/pstricks/contrib/pst-optic/tex/pst-optic.tex b/graphics/pstricks/contrib/pst-optic/tex/pst-optic.tex
index 444d075411..f145993fc6 100644
--- a/graphics/pstricks/contrib/pst-optic/tex/pst-optic.tex
+++ b/graphics/pstricks/contrib/pst-optic/tex/pst-optic.tex
@@ -1,4 +1,4 @@
-%%%% $Id: pst-optic.tex 716 2023-05-07 18:37:07Z herbert $
+%%%% $Id: pst-optic.tex 896 2024-05-17 10:13:27Z herbert $
%% This is file `pst-optic.tex',
%%
%% IMPORTANT NOTICE:
@@ -6,9 +6,9 @@
%% Package `pst-optic.tex'
%%
%% Manuel Luque <Mluque5130@aol.com> (France)
-%% Herbert Voss <voss@perce.de> (Germany)
+%% Herbert Voss <hvoss@tug.org> (Germany)
%%
-%% 2023-05-07
+%% 2024-05-17
%%
%% This program can be redistributed and/or modified under the terms
%% of the LaTeX Project Public License Distributed from CTAN archives
@@ -30,8 +30,8 @@
\ifx\PSTMultidoLoaded\endinput\else\input multido.tex\fi
\ifx\PSTXKeyLoaded\endinput\else \input pst-xkey\fi
%
-\def\fileversion{1.02a}
-\def\filedate{2023/05/07}
+\def\fileversion{1.03}
+\def\filedate{2024/05/17}
\message{`PST-Optic' v\fileversion, \filedate\space (Manuel Luque and Herbert Voss)}
%
\edef\PstAtCode{\the\catcode`\@} \catcode`\@=11\relax
@@ -402,8 +402,8 @@
\psset[pst-optic]{lensType=CVG,OA=-7,%
lensHeight=6,%
lensWidth=1.5,%
- refractB=2}
- \ifx\relax#1\relax \else\psset[pst-optic,pstricks]{#1}\fi
+ refractB=2,
+ #1}
\begin{pspicture*}(\psk@optic@xLeft ,\psk@optic@yBottom )
(\psk@optic@xRight ,\psk@optic@yTop)
\pnode(! \psk@optic@xLeft\space 0){xLeft}
@@ -737,8 +737,8 @@
%(#2) est l'abscisse du centre optique
\def\lens{\@ifnextchar[{\pst@lens}{\pst@lens[]}}
\def\pst@lens[#1]{{%
- \psset[pst-optic]{xLeft=-7.5,xRight=7.5,yBottom=-3,yTop=3}%
- \psset[pst-optic,pstricks]{#1}%
+ \psset[pst-optic,pstricks]{xLeft=-7.5,xRight=7.5,yBottom=-3,yTop=3,#1}%
+% \psset[pst-optic,pstricks]{#1}%
\pst@killglue%
% trace les rayons
% calcule la position de l'image
@@ -1999,7 +1999,7 @@
\def\resetOpticOptions{% hv 2006-07-20
\newpsstyle{opticalAxis}{linewidth=0.5pt,linecolor=black,linestyle=solid}
\psset[pst-optic]{%
- lensGlass=false,drawing=true,,lensTwo,rightRay,onlyrays=false,
+ lensGlass=true,drawing=true,lensTwo,rightRay,onlyrays=false,
xLeft=-7.5,xRight=7.5,yBottom=-3.0,yTop=3.0,
lensType=CVG,lensColor=lightgray,lensWidth=0.5,lensDepth=1,
lensHeight=5,lensScale=1,lensArrowSize=0.2,lensArrowInset=0.5,