pmw-4.27/0000755000222100022210000000000012247665016010350 5ustar ph10ph10pmw-4.27/doc/0000755000222100022210000000000012247665016011115 5ustar ph10ph10pmw-4.27/doc/spec.xfpt0000644000222100022210000242062312247665016012763 0ustar ph10ph10. ///////////////////////////////////////////////////////////////////////////// . This is the primary source of the PMW Manual. It is an xfpt document that is . converted into DocBook XML for subsequent conversion into PostScript and PDF . formats. The markup used herein is "standard" xfpt markup. . ///////////////////////////////////////////////////////////////////////////// .include stdflags .include stdmacs . ///////////////////////////////////////////////////////////////////////////// . These definitions set some parameters and save some typing. Remember that . the element must also be updated for each new edition. . ///////////////////////////////////////////////////////////////////////////// .set version "4.27" . Zero-width space .set B "​" . Right-pointing hand .set R "☞" .set sharp "zz~~v%|v" .set flat "zz~v'v" . Bracket top, middle, bottom, 12 point .set BT12 "" .set BM12 "" .set BB12 "" . Bracket top, middle, bottom, 15 point .set BT15 "" .set BM15 "" .set BB15 "" . Zero-width space, 15 point, to create a 15-point deep line .set D15 "" .flag &{ }& "" "" .flag &{{ }}& "" "" .flag &{{{ }}}& "" "" .flag &{- -}& "" "" .flag &{+ +}& "" "" . --- For music illustrations --- . .music . .macro music .literal layout &&&& && &&&&&& .literal off .endmacro . --- For aspic figures --- . .figure . .macro figure .literal layout &&&& && &&&&&& .literal off .endmacro . --- Generate a full width rule by means of an empty table --- .macro rule .literal xml .literal off .itable top 0 0 1 450 left .endtable .literal xml .literal off .endmacro . --- Fiddle with the leading for some of the tables --- .macro leadoff .literal xml .literal off .endmacro .macro leadon 3 .literal xml .literal off .endmacro . --- Fiddle with subsection inclusion in printed TOC --- .macro tocsubsecton .literal xml .literal off .endmacro .macro tocsubsectoff .literal xml .literal off .endmacro . ///////////////////////////////////////////////////////////////////////////// . This outputs the standard DocBook boilerplate. . ///////////////////////////////////////////////////////////////////////////// .docbook . ///////////////////////////////////////////////////////////////////////////// . These literal XML lines are processing instructions for SDoP. They adjust . the contents of the page footers, request PDF TOC entries for index change- . of-letter headings, arrange for [ ] * and an opening quote to be skipped when . sorting the index, set a table indent to match the default literal indent, . and allow table cells to overflow without warning if there is no overprinting. . ///////////////////////////////////////////////////////////////////////////// .literal xml .literal off . ///////////////////////////////////////////////////////////////////////////// . This generate the outermost element that wraps the entire document. . ///////////////////////////////////////////////////////////////////////////// .book . //////////////////////////////////////////////////////////////////////////// . The element is provided as raw XML. . //////////////////////////////////////////////////////////////////////////// .literal xml Philip's Music Writer (PMW) A Music Typesetting Program PMW 03 December 2013 PhilipHazel PH
Cambridge, England
4.27 03 December 2013 PH 2013Philip Hazel
.literal off . ///////////////////////////////////////////////////////////////////////////// . Set up some "see" and "see also" index entries . ///////////////////////////////////////////////////////////////////////////// . Note that it's the *first* argument that is the existing index entry. For . example, the first one generates "character strings, see strings". .index-see "strings" "character strings" .index-see "underlay" "lyrics" .index-see "movement" "new movement" .index-see "stave" "staff" .index-see "flags" "tails" .index-see "irregular note groups" "triplets" .index-see "irregular note groups" "unequal rhythmic groups" .index-see "slurs" "phrasing marks" .index-see "underlay" "vocal underlay" .index-see "many bars rest" "multiple rest bars" .index-seealso "&'individual clef names'&" "clefs" .index-seealso "underlay" "overlay" .index-seealso "text" "strings" .index-seealso "strings" "text" . //////////////////////////////////////////////////////////////////////////// . //////////////////////////////////////////////////////////////////////////// .chapter "Introduction" &'Philip's Music Writer'& (PMW) is a computer program for typesetting music. It is not a music processor or a sequencer. Its sole objective is the production of high quality printed sheet music. PMW operates by reading an input file containing an encoded description of the music; such a file can be constructed using any text editor or wordprocessor. Although a textual input method may not be considered as `user-friendly' as pointing and dragging on the screen, it can be a much faster way of inputting music, once the format of the input file has been learned. In addition, the usual facilities of a text editor, such as cutting and pasting, can be used to speed up entry, and PMW is also able to provide text-based features such as macros and included files. The output of PMW is a PostScript file. This can be previewed on screen using &'GhostScript'& or similar software. If you have a printer that understands PostScript, PMW output can be printed directly; otherwise, conversion software such as &'GhostScript'& is required. &'GhostScript'& can also be used to convert PostScript files into Portable Document Format (PDF) files. PMW can be requested to produce its output as encapsulated PostScript (see the &%-eps%& option). This is useful if the music is an illustration that will subsequently be included in another document. This edition of the manual describes PMW version &version;. Version 4.00 was the first version for Linux and other Unix-like environments. Earlier versions were called &'Philip's Music Scribe'&, and were run on Acorn's RISC OS operating system in the 1990s. From version 4.10 onwards, PMW interprets text strings as UTF-8 encoded Unicode, giving access to all the available characters in the standard PostScript text fonts. Access to non-ASCII characters is also available using escape sequences. Section &<>& discusses the issues of backwards compatibility with previously-existing PMW input files. As well as PostScript output, PMW can also write a MIDI file that can be played through the computer's sound system by an application such as &'Timidity'&. MIDI output is not very sophisticated, and is intended for `proof-hearing' purposes rather than for performance. PMW comes with a PostScript font called PMW-Music. This contains all the music shapes (notes, rests, accidentals, bar lines, clefs, etc.) that PMW requires. I acknowledge with gratitude the help of Richard Hallas, who created the original versions of some of the characters in this font and improved many others. The half sharp and half flat characters were contributed by Hosam Adeeb Nashed. Richard also contributed a second font called PMW-Alpha. It contains additional characters that may be useful when printing music (see chapter &<>&). The PMW input encoding is designed to be easy for a musician to remember. It makes use of as many familiar music notations as possible within the limitations of the computer's character set. Normally it is input by a human, using any available word processor or text editor. There is no reason, however, why PMW input should not form the &'output'& of some other computer program that captures (or generates) music in another fashion. This introduction ends with a short summary of the music and other terminology used in this manual. The following two chapters describe how PMW should be installed and operated. Chapters &<>& and &<>& are an introduction to the PMW input encoding. They cover most of the more common requirements, with examples, in an introductory manner. The bulk of the manual (from chapter &<>& onwards) is reference material; the information in earlier chapters is repeated, with additional specialist information. Finally, there are chapters giving details of text fonts, the PMW music fonts, summaries of the syntax of input files, and an index. Many cross-references are given in a shortened form using a pointing hand symbol, for example, &R; &<>&. These cross-references are clickable when this PDF is being displayed by software such as &'acroread'&, which supports this facility. .section "Terminology" .index "terminology" .index "default" "definition of term" The word `default' occurs frequently in this manual. It means some value or option setting that is used when the user does not supply any alternative. For example, if no key signature is given for a piece, the default that is used is C major. The word `directive' is used as the name for instructions in the input file that tell PMW what to do. There are directives that control the overall form of the piece, and others that operate within individual staves. The word `argument' refers to a data value that is provided on the command line for running PMW, or is coded as part of a directive. For example, the directive to set the page length has to be followed by one number; this is its argument (the usage is taken from mathematics and computer programming). The word `parameter' refers to a data value that controls the format of the typeset music. For example, there is a parameter whose value is the width of lines of music. All parameters have default values, but these can usually be changed by an appropriate directive. Some formal music terminology is also used; it is summarized here for the benefit of readers who may not be fully familiar with it. I use the British names for notes: breve, semibreve, minim, crotchet, quaver, semiquaver, etc. A &'beam'& is a thick line that is used to join together a number of quavers or shorter notes, instead of each note having its own separate flags. A &'brace'& is a curly sign that is used to join together two staves that are to be played on a single instrument, for example the two staves of keyboard music. A &'bracket'& is another sign used for joining staves together. It is like a large square bracket and is used to join together staves of music for different instruments, for example, the four staves needed for a string quartet. A &'caesura'& is a pause mark that appears between notes; it is normally printed as two short sloping lines through the top line of the stave. A &'fermata'& is the pause mark that is placed over or under notes, consisting of a semicircle with a dot at its centre. A &'flag'& is the name used for the additional marks added to the stem of a note to indicate that it is shorter than a crotchet. A quaver has one flag, a semiquaver has two, and so on. &'Overlay'& is the word used to describe text that is printed above a stave in a vocal part. Usually, words are printed below the stave, and are called &'underlay'& (see below), but occasionally alternative words are printed above. A &'stave'& is a single set of horizontal lines on which notes are printed. The normal stave contains five lines, but other numbers of lines are sometimes used, for example, a single line for percussion parts. In this document, the word `stave' is used as the singular of `staves'. However, the program itself accepts `staff' as a synonym of `stave' under all circumstances. The &'stem'& of a note is the vertical line that is drawn either upwards or downwards from the notehead, for all notes shorter than a semibreve. A &'system'& is a single line of music, comprising one or more staves, and usually joined at the left-hand edge in some way. For example, the systems of a string quartet each contain four staves. &'Underlay'& is the word used to describe text that is printed under a stave in a vocal part, that is, the words which are to be sung. The less formal term `lyrics' is often used for this in the context of popular songs. . //////////////////////////////////////////////////////////////////////////// . //////////////////////////////////////////////////////////////////////////// .chapter "Installing PMW" .index-from I01 "installing PMW" .index "Windows, running PMW under" .index "Cygwin environment" PMW is developed on a Linux system, but as it is a straightforward C program without any kind of fancy interface, it should run without problems in any Unix-like environment. This includes the Cygwin environment under Microsoft Windows. The author of PMW has no Windows experience, but Neil Killeen, a PMW user, has kindly provided notes on running PMW under Windows. These may be found in the PMW distribution tarball in the file &_doc/Cygwin.txt_&. The reader is assumed to be familiar with using shell commands in Unix-like environments. PMW is installed from source in the same way as many other applications. First, download the tarball from the web site &url(http://www.quercite.com/pmw.html) into a suitable directory. You should end up with a file such as &_pmw-&version;.tar.gz_&. Uncompress the file with &'gunzip'& and then unpack the archive: .display &`gunzip pmw-&version;.tar.gz`& &`tar -xf pmw-&version;.tar`& .endd This creates a directory called &_pmw-&version;_&, containing a number of files and directories. Of interest for later are the &_doc_& directory, which contains documentation, and the &_contrib_& directory, which contains files that have been contributed by PMW users in the hope they may prove useful to others. Each of these contributed files has comments at the top, explaining what its contents are. To build and install PMW, make the source directory current, and then issue the usual &(configure)& and &(make)& commands: .display &`cd pmw-&version;`& &`./configure`& &`make`& &`make check`& &`make install`& .endd .index "default" "installation directory" You may need to be &'root'& to run the installation command. By default, this installs into the &_/usr/local_& directory. If you want to install PMW somewhere else, you can specify a different `prefix' when configuring. For example: .code ./configure --prefix=/usr/local/pmw .endd The files that are installed in the prefix directory are as follows: .ilist &_bin/pmw_& is the PMW command. .next &_man/man1/pmw.1_& is a short `man' page that describes the command options for PMW. .next &_share/pmw/PSheader_& is the PostScript header file for PMW output. .next &_share/pmw/psfonts/PMW-Music.pfa_& is the main PostScript music font. As of release 4.03 it is a Type 1 PostScript font &-- hence the &_.pfa_& extension. .next &_share/pmw/psfonts/PMW-Alpha_& is an auxiliary music font. This is a Type 3 PostScript font (so no extension). .next &_share/pmw/fontmetrics/_& is a directory that contains font metric files giving character widths and kerning information for the standard set of PostScript fonts (such as &'Times-Roman'&) and the PMW music fonts. .endlist Once you have installed PMW, you can use the &(pmw)& command to generate PostScript from input files, as described in chapter &<>& below. However, before you can print pages or view the output on the screen, you need to arrange for the PostScript music fonts to be available for your printer or viewer. You can either cause the fonts to be included in every output file, or configure your printer or viewer so that it knows where to find them. Exactly what you have to do varies between systems. I hope the following instructions will give enough hints to cover most cases. .section "Including the music fonts in the output file" .index "fonts" "including in the output" .index "music font, including in the output" If you use the &%-includefont%& option on the &(pmw)& command line, or put it in your &_.pmwrc_& file, PMW includes the music fonts in every output file that needs them. This means that the output files are freestanding PostScript files that should be printable or viewable without any special action. However, the output files are larger by about 30&--40K for each of the two fonts. If you do not mind this overhead, this is the easiest approach to take. .section "Viewing PMW output on the screen" .index "viewing music on screen" .index &'GhostScript'& The &'GhostScript'& application can be used to view PMW output on screen. As well as the basic &(gs)& command, there are some front-end applications with names such as &(ghostview)&, &(gview)&, or &(gv)&, which package the user interface to &'GhostScript'& in various more friendly ways. Make sure you have one of these installed. You can check your version of &'GhostScript'& by displaying the expected output from the PMW test files. There are six such files in the &_testdist/outfiles_& directory of the PMW distribution. For example, assuming you have the &(gv)& command installed: .code gv testdist/outfiles/Test01.ps .endd This is a page of a Mozart mass. The test files were all processed using PMW's &%-includefont%& command line option, so the output for each contains a copy of the relevant PMW music fonts. If you do not use the &%-includefont%& command line option when processing your own input files, &'GhostScript'& needs to be told where the PostScript music fonts are before it can display a PMW output file. One easy way of doing this is to set the &`GS_FONTPATH`& environment variable, for example: .code export GS_FONTPATH=/usr/local/share/pmw/psfonts .endd However, this may not work when you try to print the music because the setting may not be carried over into the printing environment. An alternative is to install symbolic links from a suitable font directory to PMW's &_psfonts_& directory. This should then also work for printing. You can find out which directories &'GhostScript'& searches for its fonts by running the following command: .code gs -h .endd In many systems &_/usr/share/fonts/default/ghostscript_& is an appropriate directory in which to insert the links, so you might use these commands: .code ln -s /usr/local/share/pmw/psfonts/PMW-Alpha \ /usr/share/fonts/default/ghostscript/PMW-Alpha ln -s /usr/local/share/pmw/psfonts/PMW-Music.pfa \ /usr/share/fonts/default/ghostscript/PMW-Music.pfa .endd In addition, for some older versions of &'GhostScript'&, you might also need to add this line to the file called &_Fontmap.GS_& that is found in the &'GhostScript'& font directory: .code /PMW-Music (PMW-Music.pfa) ; .endd This tells &'GhostScript'& that the font called `PMW-Music' is to be found in the file called &_PMW-Music.pfa_&. Newer versions of &'GhostScript'& do not seem to need this, so first of all, try without. Here is a hint for when you are creating your own PMW output: the &(gv)& command has a useful option called `watch file'; it causes the file to be re-displayed whenever it changes. If you set this and leave &(gv)& running, you can edit the input and reprocess it with PMW, and &(gv)& will notice the updated output file and re-display the page it was previously displaying. .section "Problems with displaying staves and bar lines" .index "staves" "incorrectly displayed" .index "bar lines" "incorrectly displayed" By default, staves and bar lines are output using characters from PMW's music font. Some PostScript interpreters do not display these correctly on the screen, and sometimes there are also printing problems. To help with these issues, the way PMW works can be modified by command line options (see chapter &<>&). If your output does not show staves or bar lines correctly, experiment with these options to see if they can resolve the issue. Note that default option settings can be put in your &_.pmwrc_& file. .subsection "Missing staves" .index "screen display" "missing staves" .index "staves" "missing" Staves are normally output using two characters that are 100 points and 10 points wide, respectively, at the default magnification. Some PostScript interpreters cannot handle characters as wide as 100 points, and either display nothing, or give errors. The &%-nowidechars%& option suppresses the use of the wide characters. .subsection "Gaps in staves" .index "screen display" "gaps in staves" Sometimes PMW output is displayed with gaps in the staves, even when &%-nowidechars%& is used to suppress the use of wide stave characters. This is sometimes just a problem with a screen display; the same file often prints correctly. If the option &%-drawstavelines%& is used, staves are output as PostScript drawing commands instead of as characters. This option overrides &%-nowidechars%&. .subsection "Gaps in bar lines" .index "screen display" "gaps in bar lines" Sometimes PMW output is displayed with gaps in bar lines that extend over several staves. This is sometimes just a problem with a screen display; the same file often prints correctly. If the option &%-drawbarlines%& is used, bar lines are output as PostScript drawing commands instead of as characters. .section "Antialiasing and the screen display" .index "antialiasing" When it is interpreting PostScript for display on the screen, &'GhostScript'& can be run with or without antialiasing, which is a technique for making text look better by adding pixels in various shades of grey round the edges of characters, to fool the eye into seeing less jagged outlines. Before the PMW-Music font was converted to a Type 1 font, this could give problems with some of the straight-edged shapes. With the Type 1 font, there should be no problem with antialiasing. However, the PMW-Alpha font is still a Type 3 font; if you make use of PMW-Alpha, the screen display of some characters may be odd. Fortunately, this problem applies only to screen display. Printers have a much higher pixel resolution, and antialiasing is not needed even when it is possible (which it is not on black-and-white printers). .section "PDF files" .index "PDF files" You can use a command such as &(ps2pdf)&, which comes with &'GhostScript'&, to turn a PostScript output file from PMW into a PDF file. If you are using release 8 or later of &'AFPL GhostScript'&, characters from the PMW-Music font are included as outlines, which means that the PDF can be displayed nicely at any size on the screen. Earlier releases of &'GhostScript'& include the music characters as bitmaps, which does not give such a good display. Characters from the PMW-Alpha font are still included as bitmaps, because it is a Type 3 PostScript font. .section "Printing PMW output on a non-PostScript printer" .index "non-PostScript printer" If you do not have a PostScript printer, or one that can interpret PostScript directly, you have to use an application such as &'GhostScript'& to interpret the output of PMW and convert it for your printer. In many Unix-like systems the CUPS printing system is set up to do this automatically, so if you are using CUPS it may `just work'. .section "Printing PMW output on a PostScript printer" .index "PostScript printer" Unless you use the &%-includefont%& command line option, the PostScript output that PMW generates is not totally freestanding. It expects the PMW PostScript music font to be loaded into the printer in advance. If this has not been done, an error will occur. If you have full control of a PostScript printer, you can load the Music font(s) into it once, and then send any number of music files to be printed. To do this, you need to know the printer's password. Then you must make a copy of the PMW music fonts with the password included, for sending to the printer. The fonts are distributed in the &_psfonts_& directory in the PMW distribution. Near the top of each font file you will find these lines: .code %%BeginExitServer: 000000 %%serverdict begin 000000 exitserver %%EndExitServer .endd .index "default" "password, PostScript printer" The value 000000 is the default password in new PostScript printers. If you haven't changed it, all you need to do is to remove the two percent signs (which are PostScript comment characters) at the start of the second line, so that it reads as follows: .code serverdict begin 000000 exitserver .endd Then if you `print' this file, the font will be permanently loaded into the printer, until it is powered off. &*Note:*& you must not make this change on a copy of the font that is to be used by &'GhostScript'&, because &'GhostScript'& does not cope with such lines. When a font is loaded into a PostScript printer, it may generate a warning message. This is perfectly normal and can be ignored. The message is usually something like this: .code %%[ exitserver: permanent state may be changed ]%% .endd If you do not have full control over the printer, or do not want to load the fonts permanently, you should always use the &%-includefont%& option on the PMW command line, or put it in your &_.pmwrc_& file, so that the music fonts are included in the PMW output. Alternatively, if you are using the CUPS printing system, which uses &'GhostScript'& to interpret PostScript for printing, ensuring that the music fonts are known to &'GhostScript'& may be sufficient. .section "Uninstalling PMW" .index "uninstalling PMW" If you want to uninstall PMW, you can use the command: .code make uninstall .endd This removes the files that were installed. It does not remove directories. .index-to I01 . //////////////////////////////////////////////////////////////////////////// . //////////////////////////////////////////////////////////////////////////// .chapter "Running PMW" CHAPrunningpmw .index-from I02 "command line interface" .index "default" "output destination" The PMW command has the following form: .display &`pmw`& [&'options'&] [&'input file'&] .endd The items in square brackets are optional. If no file name is given, input is read from the standard input and by default the output is written to the standard output. When a file name is given, the default output file name is the input file with the extension &_.ps_& replacing any existing extension, or being added if there is no extension. The default output destination can be overridden in all cases by using the &%-o%& option. Error messages and verification output are written to the standard error file, which can be re-directed in the usual way. Here are some examples of PMW commands: .code pmw sonata 2>errors pmw -p 3-4 mozartscore pmw -format A5 -a5ona4 -pamphlet myscore pmw -s 3 -o quartet.ps quartet.pmw pmw -f viola -o quartet.ps -midi /tmp/quartet.mid quartet.pmw .endd .index "command line options" .index "options" "command line" The command line options are as follows: .vlist .vitem &%-a4ona3%& There are several directives that control the size of the page images PMW produces (&R; &<>&). In the common case, this size is identical to the size of paper that is being used, in which case one image fits exactly onto one piece of paper. .index "two-up printing" However, PMW also supports &'two-up'& printing, in which two page images are printed next to each other on a larger piece of paper. This option specifies that the images are A4-sized, but are to be output two-up, assuming A3 paper. .vitem &%-a5ona4%& The pages are A5-sized; print them two-up, assuming A4 paper. .vitem &%-a4sideways%& The paper is A4, but the printer feeds it sideways, so rotate the page images before printing. .vitem "&%-c%& <&'number'&>" Set the number of copies to be printed as <&'number'&>. This number is honoured by PostScript printers. It may not be honoured by other programs that interpret PostScript. .vitem &%-drawbarlines%& Bar lines are normally output using characters from the music font. This option causes them to be output using PostScript drawing commands. It may produce better output in environments where some PostScript interpreters leave little gaps in bar lines that extend over more than one stave. &%-dbl%& is a synonym for &%-drawbarlines%&. .vitem &%-drawstavelines%& Staves are normally output using characters from the music font. This option causes them to be output as individual lines, using PostScript drawing commands. It may produce better output in environments where some PostScript interpreters leave gaps in staves. &%-dsl%& is a synonym for &%-drawstavelines%&, and this option overrides &%-nowidechars%&. .vitem &%-duplex%& Set the `duplex' option in the generated PostScript output. This should be honoured by PostScript printers that can print on both sides of the paper (see also &%-tumble%&). .vitem &%-eps%& .index "PostScript" "encapsulated" .index "encapsulated PostScript (EPS)" Write the output as encapsulated PostScript. This is useful if the music is an illustration that will subsequently be included in another document. See section &<>& for details of how this option affects the processing of included PostScript files. For one-off illustrations, combining &%-eps%& with &%-includefont%& is useful, so that the PMW-Music font is automatically included. For a document with many musical illustrations, including the font in each one is undesirable; it is better to make it available in some other way. One PMW user reported problems with EPS files when other special fonts were also required. The solution was to pass all the fonts and the EPS file into the open-source Scribus desktop publishing program, convert to Bézier curves, then re-export as EPS. This removes font references, and produces a file that can easily be embedded in any DTP program. .vitem "&%-F%& <&'directory'&>" Search the given directory for &_fontmetrics_& files, before searching the default directory that was set up when PMW was built. This option is useful when you want to make use of a non-standard font in text strings without having to copy its fontmetrics file into the default directory. If a relative file name is given, it is taken as relative to the current directory, not to the PMW input file's directory. .vitem "&%-f%& <&'name'&>" .index "format option" This option specifies a format name, which is useful when the input file is set up to generate output in several different formats. The format name can be tested by the &%*if%& directive and used to vary the output. For example, a piece might be arranged for either flutes or recorders. The user chooses words to describe each different format, and specifies the appropriate one here. See chapter &<>& for details of how to set up the input so as to output different headings and so forth when different stave selections or formats are requested. .vitem "&%-H%& <&'file'&>" Use the given file as the PostScript header file, instead of the default that was set up when PMW was built. If a relative file name is given, it is taken as relative to the current directory, not to the PMW input file's directory. This option is unlikely to be of general use, but is helpful when testing new versions of the header file. See section &<>& for details of how included PostScript files are processed. .vitem "&%-help%& or &%--help%&" Output a list of command line options, then stop. No file is read. .vitem &%-includefont%& This option causes PMW to include the PMW-Music font within the PostScript output that it generates. If the PMW-Alpha font is used, that is also included. If you use this option, there is no need to install the font(s) for &'GhostScript'& (or any other display program), nor do you need to download them separately to a PostScript printer. However, it does mean that each PMW output file is bigger by about 40K for PMW-Music and 31K for PMW-Alpha. .vitem &%-manualfeed%& Set the `manualfeed' option in the generated PostScript. Most PostScript printers interpret this to mean that the paper should be taken from an alternate input tray or slot. Some also require the user to push a button before each page is printed. .vitem "&%-midi%& <&'file'&>" .index "MIDI" "command line option" This option specifies that MIDI output should be written to the given file. This is in addition to the PostScript output. Only a single movement can be output as MIDI; when the input file contains multiple movements, the &%-midimovement%& option (synonym &%-mm%&) can be used to select which one this is. The stave selection specified by &%-s%& applies, and the bars that are output can be selected by &%-midibars%& (synonym &%-mb%&). The page selection option does not apply to MIDI output. See section &<>& for more about MIDI output. .vitem "&%-midibars%& <&'start'&>&%-%&<&'end'&>" Limit the bars that are written to a MIDI file to the specified range (&%-mb%& is a synonym). If this option is not given, the entire movement is included in the MIDI output. The page selection option does not apply to MIDI output. If the end bar number is omitted, but the hyphen is present, output continues to the end of the movement. If just one number is given, just one bar is output. .vitem "&%-midimovement%& <&'number'&>" This option specifies which movement is to be output as MIDI (&%-mm%& is a synonym). Only one movement can be output in this manner. The default is the first movement in the file. .vitem "&%-MF%& <&'directory'&>" Search the given directory for the PostScript music font files, before searching the default directory that was set up when PMW was built. This option is mainly of use when testing PMW and new versions of the fonts. .vitem "&%-MP%& <&'file'&>" Use the given file as the &_MIDIperc_& file, instead of the default that was set up when PMW was built. If a relative file name is given, it is taken as relative to the current directory, not to the PMW input file's directory. This file contains translations between names and MIDI `pitches' for untuned percussion voices. Apart from comment lines (starting with #) and empty lines, each line in the file must begin with three digits, followed by a space, and the instrument name, without any trailing spaces. For example: .code 035 acoustic bass drum 036 bass drum 1 037 side stick 038 acoustic snare .endd .vitem "&%-MV%& <&'file'&>" Use the given file as the &_MIDIvoices_& file, instead of the default that was set up when PMW was built. If a relative file name is given, it is taken as relative to the current directory, not to the PMW input file's directory. This file contains translations between names and MIDI voice numbers. Apart from comment lines (starting with #) and empty lines, each line in the file must begin with three digits, followed by a space, and then the instrument name, without any trailing spaces. The same number may appear more than once. For example: .code 001 piano 001 acoustic grand piano 002 hard piano 002 bright acoustic piano 003 studio piano 003 electric grand piano .endd .vitem &%-norc%& If this option is used, it must be the very first option that follows the &(pmw)& command name. It causes PMW not to read the user's &_.pmwrc_& file (&R; &<>&). .vitem &%-norepeats%& When generating a MIDI output file, do not repeat repeated sections of the music (&%-nr%& is a synonym). .vitem &%-nowidechars%& This option stops PMW from using wide stave characters when printing staves. It is provided because it seems that some PostScript interpreters cannot deal correctly with characters whose width is 100 points at the default magnification (compared with 10 points for the narrow versions). A 310-point 5-line stave is normally printed using the string FFFC. (The code numbers of wide and narrow 5-line stave characters in the music font correspond to F and C in text fonts.) With &%-nowidechars%&, the same stave is printed as CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC. &%-nw%& is an abbreviation for &%-nowidechars%&. The &%-drawstavelines%& option overrides this option. .vitem "&%-o%& <&'file'&>" Write the PostScript output to the given file, or, if a single hyphen is given as the file name, to the standard output. .vitem "&%-p%& <&'list'&>" Output only the specified pages. These can be individual page numbers, or pairs of numbers separated by a hyphen, to specify a range. Use commas to separate items in the list. .code pmw -p 4,6,7-10,13 .endd This specifies that pages 4, 6, 7 to 10, and 13 are to be output. The page selection does not apply to MIDI output; use &%midibars%& and &%midimovement%& instead. .vitem &%-pamphlet%& .index "pages in pamphlet order" The &%-pamphlet%& page ordering option is useful when a two-up page output format is selected by &%-a4ona3%& or &%-a5ona4%&. In pamphlet mode, the piece is notionally extended with blank pages, if necessary, so that the number of the last page is a multiple of four. Page 1 is then paired with the last page, page 2 with the second last page, and so on. The odd-numbered page of the pair is always output on the right (except when right-to-left printing is enabled (&R; &<>&), but that is unusual). The resulting pages, if printed two-sided, can be stacked together and folded in the middle to form a `pamphlet'. If the first page of the piece has a number greater than 1, earlier pages are output as blanks, as are any internal missing pages &-- these can be created by using page increments other than one, or by explicitly skipping pages. Outputting all pages at once on a single-sided printer is useful for producing master copies for reproduction elsewhere. If you want to produce a final two-sided copy directly, use &%-pamphlet%& with &%-printside%& 1 to output all the first sides, and then use &%-printside%& 2 to output the second sides for printing on the backs of the same sheets. On a duplex (two-sided) printer, you may need to set the &%-tumble%& option to get all the pages the right way up. When selecting individual pages to output with the pamphlet option, you should select only one member of each pair. The partner page is automatically added to each selected page, so selecting both pages will result in two copies being output. For normal two-up printing, PMW centres the page images in the half pages in which they appear, but in pamphlet mode they are abutted together in the middle. This means that, when the sheetsize is smaller than half the paper size, any marks printed outside the sheetsize (crop marks, for example) are visible. .vitem "&%-printadjust%& <&'x'&> <&'y'&>" .index "image position adjustment" Experience has revealed that not all printing methods position the image in exactly the same position on the page. These two values specify a movement of the image on the page, in printers' points (1/72 of an inch). The movement is relative to the normal reading orientation of the page images (which may be rotated on the paper). The first value is left-to-right, and the second is up and down. Positive values move the image to the right and upwards, respectively, and negative values move it in the opposite directions. .vitem "&%-printgutter%& <&'x'&>" This option specifies a distance by which righthand (recto) page images are moved to the right, and lefthand (verso) page images are moved to the left, thus creating a `gutter' for binding when the images are printed doublesided. The &%-printgutter%& setting applies only when pages are being printed 1-up. It is ignored for any of the 2-up printing styles. .vitem "&%-printscale%& <&'n'&>" Scale the output image by <&'n'&>. .vitem "&%-printside%& <&'n'&>" .index "page side selection" Output only odd or only even pages; <&'n'&> must either be 1 or 2. The side selection options make it easy to print on both sides of pages by feeding them through the printer twice, without having to set up an explicit page selection each time. When pamphlet mode is selected, it is the lower of the two page numbers that is tested. When a 2-up non-pamphlet mode is selected, this option is disabled, and all selected pages are always output. .vitem &%-reverse%& Output the pages in reverse order. The default order is in ascending sequence of page number if no pages are explicitly selected; otherwise the order is as selected by the user. Reverse order is precisely the opposite of this. It is useful for printers that stack face-up, and also in some two-sided printing operations. .vitem "&%-s%& <&'list'&>" Output only the specified staves. These can be individual stave numbers, or pairs of numbers separated by a hyphen, to specify a range. Use commas to separate items in the list. .code pmw mozart -s 1,3-5,9-12 .endd Setting values here is how you select one or more individual parts to be printed from a score. For example, in a work for choir and orchestra, to create a vocal score by printing only the voice parts, one might specify &`11-14`& if the vocal parts were on staves 11&--14. More often, just a single number is given, in order to print out an individual instrumental part. See chapter &<>& for details of how to set up the input so as to output different headings and so forth for different stave selections. .vitem "&%-t%& <&'number'&>" .index "transposition" "command line option" Specify a transposition, in semitones. A positive number specifies upwards transposition, and a negative one downwards transposition. A transposition of zero may also be entered; this is not the same as no transposition at all. For more details about transposition, see section &<>&. .vitem &%-tumble%& When &%-duplex%& is set, &%-tumble%& sets the PostScript option for `tumbled' duplex printing. .vitem "&%-V%& or &%--version%&" Output the PMW version number to the standard output, then stop. No file is read. .vitem &%-v%& Output verification information about the typesetting to the standard error file (&R; &<>&). .endlist .section "Debugging options" .index "options" "debugging" The following options are of interest only to a PMW maintainer. They are listed here for completeness, but no details are included. .vlist .vitem &%-debug%& Write general debugging information to the standard error file. .vitem "&%-dsb%& <&'m'&>,<&'s'&>,<&'b'&>" Write internal debugging data for the contents of bar <&'b'&> (an absolute bar number) on stave <&'s'&> in movement <&'m'&> to the standard error file. If only one number is given, it is taken as a bar number in stave 1 of the first movement; if only two numbers are given, they are taken as a stave and bar number in the first movement. .vitem "&%-dtp%& <&'n'&>" During formatting, write internal positioning data for bar <&'n'&> (an absolute bar number) in any movement (there is usually only one when debugging at this level) to the standard error file. Sometimes a bar may be formatted more than once; there will be output each time. If the number is given as -1, positioning data is output for all bars. .endlist .index-to I02 .section "Setting default command-line options" SECTsetdefop .index "options" "command-line, default" .index "default" "command-line options" There is a simple facility for specifying options that you always want to be set. When PMW starts up, it looks in the user's home directory for a file called &_.pmwrc_&. If this file exists, its contents are read and used to modify the PMW command line. White space (spaces, tabs, or newlines) in the file are used to separate items. Each item is added to the command line, before the given arguments. Thus, for example, if you always want to make use of the &%-nowidechars%& option, all you need to do is to create a &_.pmwrc_& file that contains: .code -nowidechars .endd The effect of this is the same as if you type &`-nowidechars`& immediately after &`pmw`& every time you run it. If you insert an option that requires data, the data item must also be given in the &_.pmwrc_& file, otherwise an error occurs. For example, if you always want to create MIDI output and write it to a fixed file name, the file might contain: .code -midi /usr/tmp/pmw.midi .endd Note that PMW does not allow options to be repeated, so if an option is present in the &_.pmwrc_& file, it cannot also be given on the command line. There is no way to override individual options that are set in the &_.pmwrc_& file. However, if the first option on the command line is &%-norc%&, the &_.pmwrc_& file is not used. .section "Information about the piece" SECTinfo .index "information about the piece" .index "range of notes on a stave" .index "staves" "range of notes on" .index "tessitura" To understand all of this section, you need to be familiar with the way PMW handles pitches and dimensions. It is placed here because it follows on from the command line options, but it is best skipped on a first reading. Here is an example of the information that is output when &%-v%& is selected: .code Data store used = 76K (stave data 37K) MOVEMENT 1 Stave 1: 51 bars; range E' to A'' average A' Stave 2: 51 bars; range $B to D'' average E' Stave 3: 51 bars; range E' to F'' average $B' Stave 4: 51 bars; range F` to D' average D PAGE LAYOUT Page 1 bars: 1-4 5-8 (3) 9-12 Space left on page = 131 Overrun = 61 Page 2 bars: 13-17 18-22 23-25 (10) 26-28 Space left on page = 5 Page 3 bars: 29-31 32-34 35-38 Space left on page = 159 Overrun = 33 Page 4 bars: 39-42 (15) 43-46 47-48 49-51 Space left on page = 5 .endd For each movement in the piece, PMW displays a bar count for each stave, the pitch range of notes on the stave, and the average pitch. The count includes only properly counted bars; if there are any uncounted bars, they are shown in parentheses with a plus sign. For example, if a piece starts with an uncounted, incomplete bar, the bar count might be shown as `24(+1)'. The pitches are specified at octave zero, that is, starting at the C below middle C. The average pitch of a vocal part is some kind of measure of the tessitura. If there is more than one movement in a piece, the overall pitch ranges and average pitches for each stave are given at the end. The `page layout' section shows how PMW has laid out the music on the pages. In the example above, three systems have been put on page 1, containing bars 1&--4, 5&--8, and 9&--12, respectively. If any system is too short to be stretched out to the full line length (or if stretching was not requested) an asterisk is printed after it. After the range of bars for each system, the amount of horizontal overrun is given in parentheses, provided it is less than 30 points. The overrun is the distance by which the linelength would be exceeded if another bar were added to the system. The first line in the example above means that bars 5&--9 were three points too long for the linelength, which is why the second system was ended after bar 8. This information can be useful when you are trying to alter the way the bars are allocated to systems. `Space left on page' is the amount of vertical space left on the page. It is the amount by which stave or system spacings can be increased without causing the bottom system to be moved over to the next page. `Overrun' is the amount of extra space that is needed to fit another system onto the page. It is the amount by which stave or system spacings would have to be reduced in order for the first system of the next page to be brought back onto the bottom of this page. It is not shown if the value is greater than 100 or if the page break was forced. .section "PMW input errors" .index "input errors" .index "errors, in input" When PMW detects an error in the input file, it writes a message to the standard error file. In most cases it carries on processing the input file, so that as many errors as possible are detected in the run. As is the case in many programming languages, certain kinds of error can cause it to get confused and give misleading subsequent messages. If you do not understand all the error messages, fix those that you do, and try again. It is very easy to make simple typographic errors that leave a bar with the wrong number of notes in it. An example of the message that PMW outputs is as follows: .code ** Incorrect length for bar 1, stave 1 - too long by 1 quaver ** File "K495.pmw", near line 17: rrf'-g | < .endd In this case a minus sign (indicating a quaver) has been omitted after the note &`g`&, which is therefore taken as a crotchet. The input line in which the error was detected is shown, and the character `<' is output underneath the position where the error was detected. In this example, PMW has just reached the bar line. The line number is given using the phrase `near line &'n'&' because sometimes PMW has read on to the next line before detecting the error. Most errors cause PMW to stop processing before it writes anything to the main output. However, there are a few errors that do not stop the output from being written. An example is the detection of a bar that is too wide for the page; PMW diagnoses this, and then squashes it to fit. The messages for all these errors start with the word `warning'. .section "PostScript inclusions" "SECTpsinc" .index "PostScript" "inclusions" .index "including PostScript" The output of PMW starts with an included PostScript header file. There are also some directives (for example, &%psheading%&) that allow you to include custom PostScript code at various points in the output. These features are not normally required, but are provided for those who are familiar with PostScript and who want to do things that PMW cannot normally do. .index "PostScript" "encapsulated" .index "encapsulated PostScript (EPS)" All PostScript files that are included by PMW are treated in the same way. Lines that start with &`%EPS`& followed by a space are included, with the first five characters removed, only when the output is an encapsulated PostScript file (see the &%-eps%& option above). For non-EPS output, such lines are omitted. Any other line that starts with a single percent sign is omitted, as are blank lines. However, lines that start with two percent characters are copied to the output. . //////////////////////////////////////////////////////////////////////////// . //////////////////////////////////////////////////////////////////////////// .chapter "Getting started with PMW encoding" CHAPfirstintro In this and the next chapter we cover the basic facilities of the way PMW input is encoded, omitting some of the more exotic features in order to keep the explanations simple. Full information is given in the reference section of this manual, which starts at chapter &<>&. We start with the first six bars of the British National Anthem. It is suggested that you try out this example as you read this section. First, use your favourite text editor to create a file containing this text: .code heading "|National Anthem" breakbarlines underlaysize 9.5 notespacing *1.1 key G time 3/4 [stave 1 treble 1 text underlay] "God save our gra-cious Queen," g g a | f. g- a | "Long live our no-ble Queen," b b c' | b. a- g | "God save the Queen." a g f | G. | [endstave] [stave 2 bass 0] g` b` c | d. e- f | g e c | d. #d- e | c d d | G`. | [endstave] .endd You may use any name you like for the file, and put it in any convenient directory. Let's suppose it's called &_natanth_&. Process the file with PMW by running this command: .code pmw -includefont natanth .endd Assuming you have not made any typing mistakes, there will be no output on the screen, but a new file called &_natanth.ps_& will have been created. You can view this on screen by running: .code gv natanth.ps .endd (or by using any other PostScript viewer). The result should look like this: .music music01 88 0,-18 centre If you have made a mistake, one or more error messages will be written to the standard error file, and should therefore appear on your screen. The messages should be self-explanatory. Correct the error(s), and try again. If you did not make any typing mistakes, you might like now to deliberately introduce one or two, to gain familiarity with error handling. Omitting one of the vertical bar characters is a common mistake, leading to an overlong musical bar. We will now explain what the different parts of this input file mean to PMW. The data is in two parts: first there is heading information, such as the printed heading and key and time signatures for the piece, and then the music for each stave is given separately. The heading in this example contains six &'heading directives'&. They have been put on separate lines for readability, but this is not a requirement; you can have several directives on one line if you like. .code heading "|National Anthem" .endd .index "| (vertical bar) in strings" The first directive provides a text heading for the piece. The text itself must be supplied inside double quote marks. Heading lines normally consist of a left part, a centred part, and a right part. The division between these is marked by a vertical bar character in the text. This example prints nothing at the left (because there is nothing before the vertical bar), and nothing at the right (because there isn't a second vertical bar). In other words, the entire title is centred. .code breakbarlines .endd .index "&%breakbarlines%&" The second directive causes PMW to make a break in the bar lines after each stave. Without this, the bar lines would be drawn continuously from the top of the first stave to the bottom of the second. It is conventional not to have bar lines between staves when there is vocal underlay (lyrics), as they can get in the way of the words. In orchestral scores you may want to have bar line breaks between different groups of instruments, and this can be achieved by listing the stave numbers after which you want the breaks: .code breakbarlines 4, 8, 12 .endd This breaks the bar lines after staves 4, 8, and 12. .code underlaysize 9.5 .endd The third directive sets the font size for the underlay text (the sung words). Font sizes are given in &'points'&, the traditional measure of type size used by printers. .index "default" "text size" .index "text" "default size" The default size for all text in PMW is 10 points; choosing a slightly smaller size for underlay is often helpful in fitting in the words. &*Note*&: The music above and in all the following examples in this manual is shown at 0.85 times its normal size, so the type sizes you see here are smaller than they will be if you print the example yourself. .code notespacing *1.1 .endd The fourth directive is an instruction to PMW to increase its normal horizontal note spacing by a factor of 1.1 (the asterisk is being used as a multiplication symbol). The standard note spacing is suitable for instrumental music. When vocal underlay is involved, it often improves the layout if the spacing is increased by a factor of between 1.1 and 1.2. PMW automatically increases the space between two notes in a bar if this is necessary to avoid two underlaid syllables colliding, but if this happens a lot, the spacing of the notes can look very strange. It is best to set the note spacing sufficiently wide that most of the layout is determined by the music, with only the occasional adjustment for the words. .code key G .endd The fifth directive sets the key signature. If no key signature is given, C major is assumed. Minor keys are given by adding the letter `m', for example, &`Am`&. Sharp and flat key signatures are given using the standard accidental notation in PMW. A sharp is represented by the character &`#`&, which is easily remembered. Unfortunately, there are no keys on the computer keyboard that resemble flats or naturals, so instead the two keys that are next to &`#`& on some keyboards were chosen: &`$`& for a flat (think `Dollar' for `Down') and &`%`& for a natural. For example, the key signatures C sharp minor and G flat major are coded as &`C#m`& and &`G$`& respectively. .code time 3/4 .endd The sixth directive sets the time signature. If no time signature is given, 4/4 is assumed. As well as the usual numeric time signatures, the letters &`C`& and &`A`& can be given, signifying `common' and `alla breve' time. These are printed as &{{^}}& and &{{_}}& respectively. The heading ends and the stave data begins with the first line that starts with a square bracket: .code [stave 1 treble 1 text underlay] .endd You will notice that a bit further down there is a line containing just &`[endstave]`&. This marks the end of the data for the first stave. Each stave's data is always contained between &%[stave]%& and &%[endstave]%&. The data itself consists of a mixture of encoded music, words, bar lines, and so on, and also &'stave directives'&. To make it clear what is what, the stave directives are enclosed in square brackets, and they are shown in brackets whenever they are mentioned in this manual. Several stave directives can appear in succession within a single pair of brackets. The number following the word `stave' in the &%[stave]%& directive gives the number of the stave. The top stave of a system is numbered 1, the next one down is numbered 2, and so on. PMW can handle up to 63 staves in a system. Usually, a clef-setting directive comes next, as in both staves of this example, where the first stave uses the treble clef and the second stave the bass clef. The number that follows the clef name sets the &'current octave'& for the notes of the stave. PMW octaves run from C up to B, and octave number 1 starts at middle C. It is usual, therefore, to set the current octave to 1 when using the treble clef, and to 0 when using the bass clef, as has been done here. The remaining stave directive, &`text`& &`underlay`&, sets the default type for any text strings in the first stave. PMW supports several different kinds of text, as we shall see later, and one of them can be set as the default for a stave. Instances of strings of other types then have to be marked as such. When a stave has vocal underlay in it, it is usual to set the default as above, because by far the majority of the text will be underlay. So at last we come to the music and words of the first stave: .code "God save our gra-cious Queen," g g a | f. g- a | "Long live our no-ble Queen," b b c' | b. a- g | "God save the Queen." a g f | G. | .endd .index "underlay" The vocal underlay is given as several text strings, each preceding the notes to which it relates. You can split up underlay into strings that are as long or as short as you like. PMW automatically distributes the syllables to the notes that follow. Single hyphens are used to separate the different syllables of the words, as in `gra-cious' and `no-ble', but PMW supplies as many printed hyphens as necessary to fill the space between them when they are printed. Text strings are not restricted to just the characters on the computer keyboard; see section &<>& for details of how to access other characters. The music itself is divided up into bars by the vertical bar character. PMW checks that the contents of a bar agree with the time signature, and complains if there are too many or too few notes (though it is possible to turn this check off). .index "notes" "pitch" .index "pitch of note" The notes are encoded using their familiar letter names. Because we set the current octave to be octave 1, the letter &`g`& in the first bar represents the G above middle C. The only note on this stave that does not lie in octave 1 is the last note of the third bar, the C above middle C. It is encoded as &`c'`& because each quote that follows a note letter raises the note by one octave. .index "length" "of notes" The duration of a note is primarily determined by whether a capital (upper case) letter or small (lower case) letter is used. A lower case letter stands for a crotchet, and an upper case one is used for a minim, as in the last bar of this stave. Further characters are used to adjust the duration: a minus sign (hyphen) after a lower case letter turns the crotchet into a quaver, the hyphen being mnemonically like the flag used to distinguish a printed quaver from a crotchet. .index "notes" "dotted" A dotted note is coded by adding a full stop, as in the second, fourth, and last bars. Turn now to the second stave: .code g` b` c | d. e- f | g e c | d. #d- e | c d d | G`. | .endd We see two new features. The first two notes, and the last one, are below the current octave for this stave, which was set as octave 0 (one below middle C). To lower a note by one octave, a grave accent is used, because it is a symbol which is the `opposite' of an ordinary quote. In bar four there is a note with an accidental. Accidentals are entered before note letters because they print before notes. The characters used for accidentals were described above when discussing key signatures, but to remind you: .itable none 0 0 2 12 left 100 left .row &`#`& "is used for a sharp" .row &`$`& "is used for a flat" .row &`%`& "is used for a natural" .endtable Should you need double sharps or double flats, just type the character twice. PMW also has some basic support for half accidentals (&R; &<>&). The spacing used in this example was chosen to make it easy to read. PMW does not require spaces to appear between notes or before bar lines, so the first two bars of the first stave could equally well appear like this: .code gga|f.g-a| .endd However, spaces must not be used between any of the characters that make up the encoding for one note. For example, &`#`&&~&`c`& would not be recognized because of the space between the &`#`& and the &`c`&. Normally, you should put in spaces where it helps you to see the various items in a bar. Wherever one space is allowed, you may put as many as you like. You may also start a new line in the input wherever a space is allowed, for example, between notes, or between text strings and notes. Most people try not to have a line break in the middle of the notes of a bar, as this makes the file easier to read. .index "@ (comment) character" .index "annotating input" When you start entering longer pieces, you may find it helpful to annotate the input file to make it easier to find your way around it. PMW recognizes the character &`@`& as a `comment character' &-- anything on an input line that follows &`@`& is completely ignored. So, for example, you could have a line such as: .code @ This is the pedal part .endd at the start of a stave. It is also a good idea to put a bar number in the input at the end of each input line, like this: .code g g a | f. g- a | @2 b b c' | b. a- g | @4 a g f | G. | @6 .endd We have now covered everything in the National Anthem example. In the next chapter we will introduce other features of the PMW encoding, but without showing the complete file every time. It particular, the &%[stave]%& and &%[endstave]%& directives will normally be omitted. However, before doing that we introduce a general feature that can be used to simplify and customise PMW input files. .section "Simple macros" SECTmacro .index "macros" "definition" .index "macros" "insertion" A &'macro'& is a concept found in computer programming languages and in some kinds of wordprocessing systems. The idea is very simple: whenever there is a sequence of input characters that are going to be repeated several times in a document, the sequence is given a name. Referring to the name later in the input calls up the required characters. There are several advantages in using a macro for a repeated character sequence. Not only does it save typing, but it also guarantees that the same input string is used every time, thus ensuring consistency. In addition, if a change needs to be made to the string, it only has to be done once. Simple macros are introduced here because they are frequently used for text strings that are repeated in a piece &-- typically strings such as &'mf'&, &'ff'&, etc. Consider the following input line: .code *define mf "\it\m\bi\f"/b .endd .index "&%*define%&" This is a directive that defines a macro whose name is &%mf%&. It is an example of a &'preprocessing directive'&, which is a third kind of directive, in addition to heading directives and stave directives. Preprocessing directives may occur anywhere in a PMW input file. They always occupy a complete input line by themselves, and are identified by starting with an asterisk. The &%*define%& directive must be followed by the name of the macro being defined. The replacement text for the macro consists of the rest of the input line, which may be empty. White space that immediately follows the macro name is not included. .index "&& (insert) character" After the definition above has been processed, an occurrence of the characters &`&&mf`& anywhere in the input is replaced by the text &`"\it\m\bi\f"/b`&. There must not be any space between the introductory &`&&`& character and the name of the macro that is being inserted. This particular example specifies a text item for the string &'m&*f*&'&, where the &'m'& is printed in italic and the &*&'f'&*& in bold italic, as is commonly done. (See sections &<>& and &<>& for explanations of how the above string achieves this.) The example also specifies that the string is to be printed below the stave. If other options are needed for instances of the string, they can be added after the macro call; in particular, adding &`/a`& will cause the text to be printed above the stave, because when both &`/b`& and &`/a`& appear, the rightmost one is used. Here are some examples of possible uses of this macro: .code &mf abc | &mf/a efg | cg &mf/d6 d | .endd The option &`/d6`& moves the text down by six points. Macros can be used for any string of input characters; their use is not confined to text items. A full description of all the macro facilities is given in section &<>&. . //////////////////////////////////////////////////////////////////////////// . //////////////////////////////////////////////////////////////////////////// .chapter "Using other PMW features" CHAPlastintro In this chapter we cover most of the major PMW facilities in an introductory manner. All the information is repeated in more detail in the reference chapters that follow. .section "More about notes" This section describes some more common facilities used when printing notes. .subsection "Note types" .index "notes" "types of" .index "flags" PMW can handle eight different kinds of note, from breves to hemi-demi-semiquavers. The encoding for crotchets, quavers, and minims was introduced in the previous chapter. For notes longer than a minim the &`+`& character is used to double the duration, and for those shorter than a quaver, the character &`=`& is used for `two flags'. The complete set is as follows: .music "music02" 36 0,-14 .subsection "Rests" .index "rests" .index "whole bar rests" Rests are specified in the same way as notes, but using the letter R instead of a note letter. The length of the rest is indicated by the case of the letter and following plus, minus, or equals characters, exactly as for notes. There is one additional character that can follow the letter R, and that is an exclamation mark. This indicates that the rest is equal to the bar length, whatever the time signature may be. .subsection "Repeated rest bars" .index "repeated rest bars" .index "rests" "repeated bars" .index "repeated bars" .index "many bars rest" A whole bar rest can be repeated any number of times by putting a number in square brackets before the rest. For example, the code for 24 bars' rest is: .code [24] R! | .endd In fact, this kind of repetition is not confined to rest bars; it can be used to repeat any one bar. .subsection "Beams" .index "beaming" "breaking a beam" .index "beaming" "across rests" .index "notes" "beaming" .index "rests" "beaming across" Notes that are shorter than a crotchet are automatically beamed together within a bar, unless they are separated by a beam breaking character. A semicolon breaks the beaming completely, and a comma breaks all but the outermost beam. Beams carry on across rests that are shorter than a crotchet, but they are always broken at the end of a bar, unless a continuation over the bar line is explicitly requested (&R; &<>&.) .music music03 40 0,-10 centre There must not be any space between the last note of a beam and the breaking character (semicolon or comma), but there can be spaces (and other items of data) between the notes themselves. .subsection "Triplets" .index "irregular note groups" Triplets are encoded by enclosing a set of notes in curly brackets. If the notes are beamed, just the number `3' is printed, alongside the beam. Otherwise, a longways `bracket' is drawn: .music music04 46 0,-8 centre You can change the way triplets are printed by putting options after the opening curly bracket. If you put &`/a`& the `3' will be put above the notes, whereas &`/b`& forces it below the notes. In both cases the longways bracket is also drawn. .music music05 48 0,-6 centre The last set of notes shows that triplets are beamed onto adjoining notes unless a beam breaking character is present. PMW supports other irregular note groupings as well as triplets, and has several more options for controlling the form and placing of the mark (&R; &<>&, &<>&, &<>&, &<>&). .subsection "Accents and ornaments" .index "accents" "on notes" .index "expression marks" .index "notes" "accents" .index "notes" "expression" The coding for accents and ornaments is always placed between two backslash characters immediately following a note. For example, a note with a staccato dot is followed by &`\.\`&. The most common accents and ornaments are: .music music06 78 0,-12 centre The codes &`\v\`& and &`\V\`& are used for small and large `vertical wedge' accents because of the similarity of shape, though the accents themselves may be the opposite way up to the coding letters, depending on whether they appear above or below the note. The other mark that looks like the letter V is a string `up bow' mark, which is why &`\u\`& is used to represent it. Other controlling options are also given between the same pair of backslash characters. For example, to force the stem of a note to point upwards or downwards, the encodings &`\su\`& or &`\sd\`& are used, respectively. When there is more than one item between the backslashes, spaces may be used to separate them. Details of all the various options are given in several sections from &<>& onwards. .subsection "Chords" .index "chords" "specifying" Chords in which all the notes are the same length are encoded by enclosing a number of separate notes in round brackets (parentheses). If the chord has an accent, or any other special option, this must be given with the first note. The notes can be given in any order. .music music07 42 0,-10 centre .section "Bar lengths and bar numbers" SECTbarlennum .index "bar lengths" .index "variable bar lengths" .index "odd bar lengths" .index "length" "of bars" PMW checks that the notes given for a bar match the current time signature, and generates an error message if they do not. However, there are times when this checking needs to be disabled. For a piece that has variable-length bars without time signatures, or indeed for printing the kind of examples that appear in this manual, the checking can be entirely suppressed by using the heading directive &%nocheck%&. The length check can also be disabled for an individual bar. This is done by using the &%[nocheck]%& stave directive in the bar concerned, in each stave. The most common occurrence of this is at the start or end of a piece where there is an incomplete bar. .code time 3/4 [stave 1 treble 1] [nocheck] g | c'fg | .endd If there is more than one stave, PMW checks that each one has the same note length in each bar. If not, it generates a warning message for each mismatch. Output is still generated; the short bars are filled with blank space. .index "whole bar rests" .index "rests" "whole bar, length check" However, this check does not apply to whole bar rests that are notated as &`R!`&, &`Q!`&, or &`S!`&, unless the bar ends with something else (such as a clef change) that depends on the bar length. This exception is made so that the whole bar rest notation can conveniently be used in situations where the bars in the other staves are of varying lengths. .index "MIDI" "whole bar rests" However, if a MIDI file is generated, whole bar rests always take up the length of time implied by the time signature. .subsection "Bar numbers" .index "bar numbers" "requesting" .index "numbering bars" The &%barnumbers%& heading directive is used to request the printing of bar numbers above the top stave of systems. There are several options that control where these appear and in what form. .code barnumbers line .endd This causes PMW to print a bar number at the start of each line of music, except for the first line. .code barnumbers 10 .endd This causes PMW to print a bar number every 10 bars. You can choose any number you like; specifying 1 causes a number to be printed on every bar. If the word `boxed' appears after the directive name, the numbers are enclosed in a rectangular box. You may also specify the point size of the font after the word `line' or the count. .code barnumbers boxed line 9 .endd This requests bar numbers at the start of each line, in boxes, using a 9-point font. The default font size is 10 points. Finally, you can specify the font to be used for printing the number: .code barnumbers 5 italic .endd This requests bar numbers in italic, every five bars, using the default font size of 10 points. There are further options for forcing or suppressing individual bar numbers, and for moving them (&R; &<>&). .subsection "Bar counting" SUBSECTbarcounting .index "bar counting" .index "bar numbers" "counting" .index "counting bars" When a piece starts with an incomplete bar, it is conventional not to count it for bar-numbering purposes. Bar number 1 is normally the first complete bar of the piece. PMW does not do this automatically, but it does have the &%[nocount]%& stave directive, which causes a bar not to be counted for numbering purposes. This can be used anywhere in the piece, not only in the first bar. Section &<>& explains how PMW identifies uncounted bars if it needs to refer to them, for example, in an error message. The following example shows the use of the &%barnumbers%&, &%[nocheck]%&, and &%[nocount]%& directives: .code barnumbers boxed 2 italic time 4/4 [stave 1 treble 1] [nocount nocheck] b`-; c-d- | e.d-; e-a-g-e- | d-c-a`.c-; e-f- | @2 g. a-; g-e-c-e- | Dr-; b`-; c-d- | @4 .endd .music music08 40 0,-18 centre .section "More about underlay (lyrics)" .index "text" "underlay" .index "underlay" "multiple notes per syllable" PMW supports overlay (words printed above the stave) as well as underlay, though this is much less common. To avoid too many repetitions of `underlay or overlay', this manual mainly describes underlay, on the understanding that all the facilities are also available for overlay. .subsection "Multi-note syllables" In the National Anthem example in chapter &<>&, each syllable of the underlay was associated with just one note. When this is not the case, equals characters are used to continue a syllable over as many notes as necessary. .code "glo-========ri-a in==" a-e-a- | b-c'=b=a=b= | c'-c'-b- | g-a-b- | .endd .music music09 40 10,-10 If the continued syllable is not the last one in a word, the equals characters follow the hyphen. PMW prints a string of hyphens or an extender line, as appropriate, depending on whether the syllable is at the end of a word or not. PMW does not treat tied notes specially when distributing underlaid syllables to notes, and so an equals character must be used when a syllable is associated with a tied note. An underlay string must be followed by all the notes to which it relates. This includes continued notes that are indicated by equals characters. Consider the following example: .code "the cat sat=" g- | gg_ | "on the mat" ge-f- | gr | .endd This example is not correct, because the first string provides words for four notes (three syllables plus a continuation), but only three notes follow before the next string. If, as in this example, you start another underlay string before the previous one is all used up, the second string is treated as a second verse and is printed underneath. .subsection "Special characters and font changes" SUBSECTspecfont The computer keyboard does not contain all the characters that are needed for printing underlay, and there is often a requirement to use different fonts (for example, italic). To cope with these issues, PMW treats the backslash character specially if it is found in a quoted string. (This applies to all strings, not just underlay.) Backslash is known as the `escape character' because it allows an escape from the string in order to give some control information. .index "\ (escape) character" .index "escaped characters" .index "backslash" There are a number of `escape sequences' that allow you to specify characters that are not on the keyboard. For example, .itable none 0 0 2 40 left 200 left .row &`\a'`& "prints á" .row &`\a``& "prints à" .row &`\a.`& "prints ä" .row &`\a^`& "prints â" .row &`\ss`& "prints ß" .endtable .index "accented characters in strings" Changes of font are specified by giving a two-letter font code between a pair of backslashes: .itable none 0 0 2 40 left 200 left .row &`\it\`& "change to &'italic'&" .row &`\rm\`& "change to roman" .row &`\bf\`& "change to &*bold face*&" .row &`\bi\`& "change to &*&'bold italic'&*&" .endtable .index "font changes" For example, the input string &`"\it\sch\o.ner"`& prints as &'schöner'&. There is an in-depth discussion of text fonts and character encodings in section &<>&. Section &<>& has more details about escape sequences, and there is a list of available text characters and their escape sequences in chapter &<>&. .subsection "Spacing" SUBSECTunderlayspacing .index "underlay" "spacing" .index "spacing" "underlay" Within a bar, PMW ensures that the syllables of the underlay text do not crash into each other, by spreading out the notes if necessary. &*Warning:*& If use of the &%layout%& heading directive (&R; &<>&) causes the bars in a system to be horizontally compressed in order to fit them on the line, underlaid syllables may be forced into each other. It's best to avoid settings of &%layout%& that cause compression if possible. Sometimes you may want to make additional adjustments to the spacing. The &%[space]%& directive is used to insert additional space between notes. The units used for space in PMW are &'printers' points'&, of which there are 72 to the inch. .code a [space 7] b .endd This coding ensures that the two notes are 7 points (about 0.1 of an inch) further apart than they would otherwise be. Any underlay that is attached to the notes is also moved appropriately. .index "# character in text" There are also two facilities for altering the position of an underlay syllable relative to its note. Firstly, the character &`#`&, if it appears in an underlay string, prints as a space, but is treated as part of a syllable. Since syllables are centred on their notes, putting &`#`& characters at the start of a syllable moves it to the right, and putting them at the end moves it left. Secondly, if the character &`^`& appears in an underlay syllable, only those characters to the left of it are used for finding the centre of the string; the character itself does not print. The &`#`& and &`^`& characters are treated specially only in underlay (and overlay) strings. This example shows how the use of &`#`& and &`^`& affects the positioning of syllables: .code "music ###music music### mu^sic" G+ G+ G+ G+ .endd .music music10 30 8,-14 .section "Other kinds of text" .index "text" "on staves" Text strings that are not part of the underlay are normally followed by one of the options &`/a`& or &`/b`&, indicating that the string is not underlay, and that it is to be printed above or below the stave, respectively. If &%[text underlay]%& has not been set for the stave, unqualified strings are treated as if &`/b`& were present. Such strings are normally aligned so that they start at the position of the following note, or at the bar line if there are no following notes in the bar. However, if the option &`/e`& is given, the string is aligned so as to end at the subsequent note or bar line. The position of any string can be adjusted by following it by one or more of the options &`/u`& (up), &`/d`& (down), &`/l`& (left), or &`/r`& (right) and a number, which is a distance in printers' points. The initial font for non-underlay strings is italic, but the escape sequences described above can be used to change it as necessary. Here are some examples: .code "X"/a g "X"/a/u4 g "X"/a/l6 g | "rall."/a gab | "\bi\ff"/b A. | G. "\rm\May, 1994"/b/e | .endd .music music11 40 8,-16 Music characters (such as notes) are available for use in strings, and there are a number of escape sequences for the most common cases. .itable none 0 0 2 40 left 200 left .row &`\*m\`& "prints a minim" .row &`\*c\`& "prints a crotchet" .endtable .index "notes" "in text strings" These are most useful in strings of the form &`"\*c\ \rm\= 45"`&, which prints as: .display &{5}& = 45 .endd .index "rehearsal marks" A rehearsal mark is a special kind of string that is coded by placing it in square brackets: .code ["A"] .endd PMW prints such strings in a fairly large font, enclosed in a rectangular box; there are options to change this if necessary (&R; &<>&). .section "Ties, slurs, and glissandos" SECTtiesslurs .index "ties" "specifying" .index "slurs" "introduction" .index "glissandos" Single notes and chords are tied together by entering an underscore character at the end of the first note, or following the closing parenthesis of the first chord. For single notes, ties are normally drawn on the opposite side of the noteheads from the stems, but can be followed by &`/a`& or &`/b`& to force them above or below the noteheads. These options can also be used for chords. .music music12 44 0,-4 centre When two single notes of different pitches are connected by a slur, the same notation (an underscore) can be used. However, for chords, the &%[slur]%& directive (see below) is required to draw slurs, because if two chords are joined by an underscore, the notes in each that are of the same pitch are joined by a tie mark, any other notes being left alone. An underscore is also used for glissandos between single notes; following it with &`/g`& causes a glissando line to be drawn instead of a short slur. .music music13 40 0,-10 For slurs involving chords or covering more than two notes, the &%[slur]%& and &%[endslur]%& (or &%[es]%&) directives are used. The notes that are to be covered by the slur appear between them. The slur is drawn above the notes unless &`/b`& is given. .code [slur] d-. [slur] d=_; d=c=a-; [es] [slur/b] %d'\-\ a-\sd\ b_b- [es] [endslur] .endd .music music14 40 8,-10 This example shows that slurs can be `nested' inside one another if necessary, each &%[endslur]%& directive relating to the most recent &%[slur]%&. There are options for handling more complicated cases, and there are also options for adjusting the positions and shapes of slurs (&R; &<>&). .section "Repeats" SECTrepeats .index "repeat marks" .index "first time bar" Conventional musical repeat marks are encoded using the input strings &`(:`& and &`:)`& which may occur in the middle of a bar as well as at the start or end. When there is a first time and a second time ending, the directives &%[1st]%& and &%[2nd]%& are used to indicate it, with the directive &%[all]%& marking the bar where all the endings are complete. .code b-f'-e'-; d'_c'- | [1st] g-d'-d'- g. :) | [2nd] c'=b=c'-a- b. | [all] (: d'-c'-b- a_g- | .endd .music music15 50 0,-16 centre The &%[all]%& directive is not used when the second time bar is the final bar of a piece. Instructions such as &'Da capo'& are given as text strings, and the music font contains the two conventional signs used in conjunction with &'Dal segno'&. They correspond to the letters c and d, and can be printed in text strings as follows: .itable none 0 0 2 60 left 200 left .row &`"\mf\c"`& "prints&~&~ &{{c}}&" .row &`"\mf\d"`& "prints&~&~ &{{d}}&" .endtable The escape sequence &`\mf\`& changes to the music font, full details of which are given in chapter &<>&. .section "Hairpins" .index "hairpins" Crescendo and decrescendo `hairpins' are coded using the characters &`<`& and &`>`& in pairs. The hairpin starts at the note following &`<`& or &`>`& and ends at the note before the next one. Hairpins are drawn below the stave by default, but the directive &%[hairpins above]%& can be used to cause them to be drawn above. Either end of a hairpin can be moved by following the angle bracket with &`/u`& (up), &`/d`& (down), &`/l`& (left), or &`/r`& (right), and a number, which gives a distance in points. Any up or down movements specified at the start of a hairpin apply to the whole hairpin, but any that are specified at the end apply only to the end &-- by this means, sloping hairpins can be drawn. .display &`&~< abc'd' < | >&). .section "Staves and systems" This section gives some introductory information about setting up staves and systems. The reference chapters describe additional facilities for use in complicated cases. .subsection "Stave spacing" .index "staves" "spacing" .index "spacing" "staves" .index "default" "stave spacing" The default spacing between staves is 44 points. This is the distance between the bottom line of one stave and the bottom line of the one below it. The &%stavespacing%& heading directive is used to alter this. It is followed by a list of stave numbers and spacings, each pair being separated by a slash. The spacings are the distances to the stave below. .code stavespacing 2/60 4/54 .endd This example specifies that the spacing between staves 2 and 3 is to be 60 points, while that between 4 and 5 is to be 54 points. The remaining spacings will take the default value of 44 points. PMW does not make any alterations to stave spacings by itself. However, there is commonly a requirement to make a change in the spacings for one particular system, usually when one stave has unusually high or low notes. This can be done by using the &%[sshere]%& directive. When this is encountered, it causes the spacing for the current stave to be changed, for the current system only. A completely new value can be given, but if a number is given preceded by a plus or minus sign, it causes a change in the spacing of that amount. .itable none 0 0 2 100 left 200 left .row "&`[sshere +4]`&" "increases the spacing by 4 points" .row "&`[sshere -2]`&" "decreases the spacing by 2 points" .row "&`[sshere 48]`&" "sets the spacing to 48 points" .endtable .subsection "System gap" .index "system gap" .index "spacing" "systems" .index "gaps" "between systems" The distance between systems is called the `system gap', and is set by the &%systemgap%& heading directive. Again, the default is 44 points. However, since PMW normally puts additional space between systems so that the bottom stave is at the bottom of the page, the system gap value is really a minimum distance between systems. (See the &%justify%& directive if you want to stop PMW from doing this vertical justification.) There is an &%[sghere]%& directive for changing the system gap for a single system, and it works in exactly the same way as &%[sshere]%&. .subsection "Brackets and braces" .index "joining signs" .index "staves" "joining signs" By default, PMW joins together the staves that comprise a system with a bracket, as can be seen in the National Anthem example. The other kind of joining sign (used most often for two staves for one instrument) is the brace, which is a large version of the &`{`& character. .index "&%bracket%&" .index "&%brace%&" There are two heading directives, &%bracket%& and &%brace%&, that specify which staves are to be joined with each of these signs. Each of these directives is followed by a list of stave ranges. .code bracket 1-4, 8-11 brace 5-6 .endd This example causes the system to be divided into three sets of staves. Two of the groups, staves 1&--4 and 8&--11, are each joined by a bracket, whereas staves 5&--6 are joined by a brace. If you don't want any staves at all to be bracketed, as might be the case when setting a keyboard piece, you need to include the directive &%bracket%& with nothing after it, in order to cancel the default setting, which is to bracket all the staves of the system. .subsection "Initial text" .index "text" "at stave start" At the start of an instrumental piece it is common to print the names of the instruments. This is done by giving a string in quotes as part of the &%[stave]%& directive, immediately after the stave number. .code [stave 1 "Clarinet" treble 1] .endd The text can be split up into several lines by including vertical bar characters; each vertical bar causes a line break. .code [stave 5 "Horn|in F" treble 1] .endd Options are available for changing the form and layout of this text (&R; &<>&). .section "Keyboard staves" .index "keyboard staves" .index "staves" "keyboard" Keyboard music is one of the more complicated kinds of music to typeset, especially if it is a reduction of an instrumental score. It is usually a good idea to study the manuscript carefully to decide exactly how it is to be encoded before you start. A brace is normally used to join the staves of keyboard music, and the name of the instrument is printed mid-way between the two staves. This can by done by adding &`/m`& to the relevant string. .subsection "Overprinted staves" .index "overprinting" "staves" .index "staves" "overprinted" There are two ways of tackling pieces that have two parts on one stave, with stems pointing in different directions. If most of the piece is like this, the best approach is to use two different PMW staves, but specify a stave spacing of zero so that the staves print on top of each other. Use can be made of the directives &%[stems up]%& and &%[stems down]%& to force the stem directions of all notes. The directives &%[ties above]%& and &%[ties below]%& can also be used to force the default direction of all ties. In the following example, two PMW staves have been used for each printing stave, and the stave spacings have been set accordingly. The spacing after stave 2 has been increased to avoid clashes of stems between the two staves. .code time 3/4 bracket brace 1-4 stavespacing 1/0 2/48 3/0 [stave 1 "Piano"/m treble 1 stems up ties above] Ae' | d'_af | e_fe | D. | [endstave] [stave 2 treble 1 stems down ties below] e_da | A#d | [smove 6] %>&. You may have as many &%heading%& directives as you like at the start of a piece. By default, the first two are printed in larger type than the remainder. However, you can specify an explicit font size by giving a number before the string: .code heading 13 "|Scherzo" .endd This example specifies a size of 13 points. After printing a heading, the `current point' is moved down the page by a distance equal to the font size, so a second heading after the one above would print 13 points below it. You can control this distance by giving a number after the string: .code heading 16 "|Mass" 24 .endd This example specifies a type size of 16 points, and a subsequent space of 24 points. One special case of this is to specify a distance of zero so that the next heading prints at the same level. This makes it possible to print in different sizes on the same line. .code heading 16 "|Piece" 0 heading 12 "Words: J. Smith||Music: A. Jones" 24 .endd In this example, the first heading consists of centred text, and the second has only left-hand and right-hand parts, with nothing in the middle, so they do not overlap. .index "&%footing%&" The &%footing%& directive is of exactly the same form as &%heading%&; it specifies text that is to be printed at the bottom of the first page. The escape sequence &`\c)`& is useful in footings; it prints as ©. Both &%heading%& and &%footing%& apply to the first page of a piece only. To print heads and feet on other pages, you must use the &%pageheading%& and &%pagefooting%& directives. .index "&%pageheading%&" .index "&%pagefooting%&" The &%pageheading%& directive applies to all pages except the first, and &%pagefooting%& applies to all pages, unless overridden for the first page by a &%footing%& directive. .index "page numbers" .index "numbering pages" The most common use of these directives is for printing page numbers, either at the top or the bottom of each page. There are three escape sequences for printing page numbers: .itable none 0 0 2 30 left 400 left .row &`\p\`& "prints the current page number" .row &`\pe\`& "prints the current page number only if it is even" .row &`\po\`& "prints the current page number only if it is odd" .endtable This is a typical example: .code pagefooting "|\p\" .endd It causes the page number to be printed centrally at the foot of each page (unless there is also a &%footing%& directive, for printing something different on the first page). .code pageheading "\pe\||\po\" .endd This example causes page numbers to be printed at the top of each page other than the first, alternately on the left and right. Even numbers are printed on the left, and odd ones on the right. .index "heading" "printing outside margins" .index "footing" "printing outside margins" .index "margin" "printing outside" When heading or footing text contains left-hand and right-hand parts, these line up with the left and right edges of the music staves. When printing page numbers it is sometimes desirable to have these print outside the normal margins. The easiest way to do this is to make use of one of the special characters in the music font. These are characters that cause no marks to be made on the page, but which move the current printing position. They are provided for use by PMW when building up complicated shapes from simpler ones, but they can be used for other purposes as well. Full details of the music font are given in chapter &<>&. The character of interest here is character number 123, which corresponds to the &`{`& character in text fonts. It causes a leftwards movement of 0.33 times the font's size (for example, 3.3 points for a 10-point font). Consider this directive: .code pageheading "\mf\{{{{\rm\\pe\||\po\\mf\{{{{" .endd The escape sequence &`\mf\`& changes to the music font. The string of four &`{`& characters causes a leftwards movement of the printing position, so that the even page number will be printed to the left of the normal margin (&`\rm\`& changes back to the roman font). At the end of the line, the backwards spacing must follow the page number. At first sight it looks odd to end a string with spacing characters, but because this is a right-aligned string that must end at the right-hand margin, the backwards movement has the effect of causing the odd page numbers to print to the right of the normal margin, so that the subsequent leftwards movement brings the current printing point back to the margin. Another common requirement is to print page numbers higher up the page than PMW normally starts printing. This can be achieved by using a &%pageheading%& directive with an empty text string and a negative downwards movement. .code pageheading "" -10 .endd This example has the effect of moving up the page by 10 points. .section "Page layout" .index "page layout" .index "layout of pages" The horizontal length of music systems can be set by means of the &%linelength%& directive, and the vertical length of pages by the &%pagelength%& directive. The default values are equivalent to: .code linelength 480 pagelength 720 .endd These are suitable values for printing on A4 paper while leaving fairly generous margins, especially at the sides. The linelength can be increased to as much as 520 for A4 paper without getting too near the edges. The music is printed centrally on the page, so changing the line length changes both margins symmetrically. PMW assumes that you are printing on A4 paper, but it can support other paper sizes as well. The &%sheetsize%& directive can be used to set A3, as well as some other standard sizes, and the &%sheetwidth%& and &%sheetdepth%& directives can be used to set the dimensions of the paper independently. The value given for the page length sets the space used for headings and for printing music systems. However, it does not include the space for footings, which are always printed starting 20 points below the page length distance down the page. By default, PMW fills up each system with as many bars as it can within the given line length, and then fills up each page with as many systems as it can. Sometimes this means that the music takes up more or fewer pages than required, or does not end tidily at the end of a page. If you know the layout that is required in advance, you can use the &%layout%& heading directive to specify how many bars there are in each system and how many systems there are on each page. Otherwise, when using the default filling mechanism, the following stave directives can be used to influence the layout: .ilist The &%[newline]%& directive causes PMW to start a new line of music (a new system) with the bar in which it appears. It need appear only in one stave. .next The &%[newpage]%& directive causes PMW to start a new page with the system in which it appears. It need appear only in one stave. .next The &%notespacing%& directive can be used to spread out or to compress the music. .endlist We introduced the &%notespacing%& directive in the National Anthem example; it causes the spacing between notes to be multiplied by a given factor. .code notespacing *0.92 .endd This example reduces all the distances by a factor of 0.92. However much you reduce the notespacing, PMW will not allow notes to print on top of each other. Quite small changes of note spacing can sometimes make dramatic changes to the layout of a piece, by causing changes in the assignment of bars to systems. At other times, for example when bars are very long, a large change might be needed to have any effect. Occasionally it is helpful to change the notespacing for part of a piece only. This can be done by using the &%[notespacing]%& stave directive (abbreviation &%[ns]%&). This should always be given at the start of a bar; it then affects the current bar and subsequent ones. If it is given without a value, the spacing is reset to what it was at the start of the piece. Therefore, to reduce the spacing for one bar only, one might have: .code [ns *0.8] g=a=b=g=; b=a=g=b= | [ns] D | .endd This should be given in the first stave because PMW processes the staves in order, for each bar, and any previous staves would be processed using the old value. That is also why resetting the value should be done in the next bar; if &%[ns]%& were at the end of the first bar, the reset values would be used for the following staves. Another way of fitting a piece onto a given number of pages is to change the magnification, as described in the next section. .section "Magnification" .index "magnification" The standard size of music printed by PMW has a distance of 4 points between stave lines. The &%magnification%& heading directive can be used to cause it to print bigger or smaller staves. .code magnification 1.5 magnification 0.75 .endd The first example has the effect of increasing the gap between stave lines to 6 points, whereas the second reduces it to 3 points. There is also a directive called &%stavesize%& (&R; &<>&) that can be used to alter the magnification for individual staves. There are no restrictions on the values that can be given for the magnification. When a magnification is specified, everything that is printed is magnified (or reduced) in proportion, and the distances given in PMW directives are all magnified too. This means that if a vertical distance is specified as 4 points, it is always equal to the distance between stave lines. Thus, changing the magnification does not require changes to the music data. However, exceptionally, the values given for the &%linelength%& and &%pagelength%& directives are &'not'& magnified or reduced. They specify the real dimensions of the page, and so do not have to be changed if the magnification is changed. .section "Extracting parts from a score" .index "extracting parts from a score" .index "parts, extracting from score" When a score file has been created, individual parts can be extracted by using the &%-s%& command line option, as described in section &<>&. For example, if the input were a string quartet, selecting stave 2 would cause just the second violin part to be output. Usually, you will want to make some changes when a part is printed. At the very least, the headings will probably be different, and you may want to print cue notes in parts but not in the score. You may also want to print parts at a larger magnification, and force page or line breaks at particular places. This is where PMW's &'conditional directives'& come in. These are preprocessing directives that allow you to skip parts of the input file under certain conditions. For example, the heading portion of a file might contain something like this: .code *if score magnification 0.9 *else magnification 1.3 *fi .endd .index "&%*if%&" .index "&%*else%&" .index "&%*fi%&" Because they are preprocessing directives, each &%*if%&, &%*else%&, or &%*fi%& must appear on a line by itself. In the example above, &%*if%& tests to see whether a full score is being printed, and if so, sets the magnification to 0.9. Otherwise it sets it to 1.3. PMW considers that a score is being printed if no staves are selected by the &%-s%& command line option. The &%*if%& directive can also test for individual stave selections, and this is the way to print appropriate headings: .code *if stave 1 heading "Violin I" *fi *if stave 2 heading "Violin II" *fi *if stave 3 heading "Viola" *fi *if stave 4 heading "Violoncello" *fi .endd The `stave' test succeeds if the given stave, and only the given stave, is selected, but it is possible to give a list or range of staves (and to use the plural `staves'): .code *if staves 1-2 heading "Violins" *fi .endd .index "format option" Finally, the &%*if%& directive can be used to test for an arbitrary &'format name'& defined by the user. You specify the format using the &%-f%& option in the PMW command line. It can be any word that you like. For example, if you wanted to print out the string parts from a score, instead of explicitly specifying the stave numbers each time, you could specify `strings' as the format, and use input such as: .code *if strings selectstaves 4-9 *fi .endd The &%selectstaves%& directive has the same effect as selecting staves by the &%-s%& command line option, provided it precedes any tests on the stave selection. This facility can be put to many other uses for varying the format of the output. It is not necessary to indent the directives that appear between &%*if%& and &%*fi%&, but it helps make the input more readable. These conditional preprocessing directives can be used anywhere in a PMW file, not just in the heading portion. Here is an example that shows how to print rest bars in a score, but cue bars in a part: .code [stave 6 "Trumpet" treble 1] [20] R! | *if score [2] R! | *else "(flute)"/a [cue] g'f'e' | [cue] C'. | *fi .endd The &%[cue]%& directive specifies that the remaining notes in the bar are to be printed at the cue note size. . //////////////////////////////////////////////////////////////////////////// . //////////////////////////////////////////////////////////////////////////// .chapter "PMW reference description" CHAPreference The preceding chapters describe the basic features of the PMW music encoding in an introductory manner, in an order suitable for this purpose. Using only the material therein, you should be able to typeset a wide variety of music. However, there are many special-purpose features that have not yet been covered. The remainder of this document is written in the form of a reference manual. It contains a complete description of PMW input files, repeating in more detail some of what has gone before. .index "reference syntax" .index "syntax for reference section" When describing the syntax of directives, use is often made of one or more italic words in angle brackets, for example: .display &`tripletfont`& <&'fontsize'&> <&'name'&> .endd What this means is that the bracketed italic words must be replaced by some specific instance of what they describe (in this case, values for the font size and the font name) when the directive is used. This is an example of the use of &%tripletfont%&: .code tripletfont 8 italic .endd Frequently, when the required value is a single number, &'n'& or some other single letter is used. In the example above, <&'fontsize'&> was replaced by a single number; however, more complicated ways of specifying the size of a font are possible (&R; &<>&). The following sections describe the format of PMW input files, and then discuss a number of general features, with references to particular directives. Complete descriptions of the directives themselves are not given here; they may be found in &'Heading directives'& and &'Stave directives'& (chapters &<>& and &<>&). The chapter in between, &'Stave data'& (chapter &<>&), contains the specification of all items other than directives that may appear as part of a stave's data. .section "Format of PMW files" SECTfileformat .index "input file format" .index "file format" .index "format of input file" A file containing input for PMW is an ordinary text file that can be constructed using any available text editor or wordprocessor. The input is in free format. Outside quoted strings, there is only one circumstance in which the use of white space is necessary, and that is .index "space character" to delimit an item when there would otherwise be ambiguity, for example, when a word is followed by another word. However, spaces are allowed between items, and can be profitably used to increase the readability of the file. Other than in quoted strings, a sequence of spaces is equivalent to one space. .index "@ (comment) character" .index "comment character" .index "annotating input" The character &`@`& is a comment character; if it appears outside a quoted string, the rest of the input line is ignored. This provides a way of annotating PMW input files. The first line of a file is very often something like this: .code @ Created by Christopher Columbus, October 1492 .endd .subsection "Line breaks" Line breaks in a PMW input file are equivalent to spaces, except in three cases: .ilist When a line contains a comment (see above), the comment continues to the end of the line. .next Preprocessing directives (&R; &<>&) always take up a complete line of their own, and may not continue onto subsequent lines. .next When a directive takes a number of numerical arguments, these can be separated by commas and/or spaces. However, if the list of numbers continues onto the next line, the final one on the first line must be followed by a comma, to indicate that another number follows. .endlist .subsection "Macro insertion" .index "&& (insert) character" .index "insert character" .index "macros" "insertion" The character &`&&`& is an insert character and is recognized at any point in the file. It must be followed by the name of a previously-defined macro, the contents of which are inserted at that point &-- for details, see the description of the &%*define%& preprocessing directive in section &<>&. If a literal &`&&`& character is actually required in the input, it must be entered as &`&&&&`&. .subsection "Case sensitivity" .index "case-sensitivity" PMW is case-sensitive. That is, it distinguishes between capital (upper case) and small (lower case) letters. The only places where case does not matter are: .ilist In the names of directives (&`KEY`& is equivalent to &`key`&); .next In the names of key signatures (&`E$M`& is equivalent to &`e$m`&); .next In the `common' and `cut' (alla breve) time signatures (&`C`& and &`A`& are equivalent to &`c`& and &`a`&); .next In format words used to specify alternative forms of output; .next In words following the &%*if%& preprocessing directive. .endlist .subsection "Heading information" .index "file heading" .index "heading" "for PMW file" A PMW file starts off with a number of items collectively known as the &'heading'&. These provide information that applies to the whole piece of music, for example, one or more title lines, and they may also change the values of parameters such as the line length that control the final layout on the page. .index "title pages" If the title lines fill up a lot of the page, there may be insufficient room for the first system of music, which is therefore printed on the next page. This gives a way of producing a title page followed by pages of music, all from a single input file. The heading is terminated by the first unquoted opening square bracket in the file, and may be completely empty. .subsection "Stave information" Following the heading there is information for each stave, in this form: .index "&%[stave]%&" .display &`[stave `&<&'n'&> <&'additional data'&>&`]`& <&'notes and other stave items'&> &`[endstave]`& .endd A description of the &%[stave]%& directive is given in section &<>&. .index "maximum number of staves" There may be up to 63 normal staves, numbered from 1 to 63. Data may also be supplied for a stave numbered 0, which has special properties (&R; &<>&). The normal staves are output in numerical order down the page. If a stave numbered &'n'& is present, all the staves with numbers lower than &'n'& .index "missing staves" .index "staves" "missing" are automatically supplied as empty staves if they do not appear in the input. For example, if only staves 2 and 4 are given, empty staves 1 and 3 are manufactured. .index "concert posters" .index "posters" A PMW input file need not contain any stave data at all; in this circumstance the only output will be the headings and footings, on a single page. This is a slightly eccentric way of printing concert posters. As the heading section is also optional, it follows that a completely empty file is also valid; its output is one blank page. .subsection "Multiple movements" SUBSECTmovement .index "movement" "specifying" .index "&%[newmovement]%&" A PMW file may contain more than one movement, that is, the piece may be split up into several independent sections, each with its own title. It is worth doing this if there is some possibility of not having to start a new page for each movement, which is sometimes the case when instrumental parts are being printed. If you know that each movement will always start on a new page, it is usually best to keep each movement in a separate file. The term `movement' is something of a misnomer. All it means to PMW is that another piece of music is to follow, possibly on the same page as the previous one. A `movement' may be as short as a few bars of a musical example. .index "&%[newmovement]%&" The start of a new movement is indicated by the &%[newmovement]%& stave directive, which must appear following the information for a stave. After this there may appear a new set of heading items, followed by the staves for the new movement. The general format of a complete PMW input file is therefore as follows: .display &'Heading information'& &'First stave of first movement'& &'Second stave of first movement'& … &'Last stave of first movement'& &`[newmovement]`& &'Supplementary heading information'& &'First stave of second movement'& &'Second stave of second movement'& … etc. .endd .index "new page for movement" .index "movement" "new page" PMW starts a new page at the beginning of a new movement, unless there is enough room on the page for the headings and the first system, or, if the first system contains only one stave, two systems. This can be overridden by options on the &%[newmovement]%& directive (&R; &<>&). .index "movement" "non-persistent parameters" In general, most parameters that can be set by heading directives persist from movement to movement, but &%doublenotes%&, &%halvenotes%&, &%key%&, &%layout%&, &%notime%&, &%startbracketbar%&, &%startnotime%&, &%suspend%&, &%time%&, &%transpose%&, and &%unfinished%& apply only to the movement for which they are specified. &%Notespacing%& persists in one of its forms, but not the other. .index "&%notespacing%&" .code notespacing 33 30 24 18 14 12 10 10 .endd In this example, &%notespacing%& sets absolute note spacings at the start of a movement. Such spacings are reset as the defaults at the start of subsequent movements. .code notespacing *1.2 .endd In this example, &%notespacing%& is used to multiply the note spacings by a factor. Such a change does not persist into the next movement. Of the parameters whose values persist, most may be changed by heading directives at the start of the new movement. .index "movement" "first " .index "directives" "first movement only" However, the following directives may appear at the start of the first movement only: &%landscape%&, &%magnification%&, &%maxvertjustify%&, &%musicfont%&, &%nokerning%&, &%page%&, &%pagelength%&, &%pssetup%&, &%righttoleft%&, &%sheetdepth%&, &%sheetsize%&, &%sheetwidth%&, &%stretchrule%&, and &%textfont%&. . These directives are in the code, but don't document them any more. . &%oldbeambreak%&, &%oldrestlevel%&, &%oldstemlength%&, .section "Preprocessing directives" SECTpreprocess .index "directives" "preprocessing" .index "preprocessing directives" Preprocessing directives may occur at any point in an input file; in the heading, in the middle of a stave's data, or between staves. Most of them have the effect of modifying the subsequent input text in some way. They are called preprocessing directives because they take effect before any other processing of the input lines. A preprocessing directive must be at the start of a line, preceded by an asterisk (spaces before the asterisk are permitted), and it occupies the whole line. .subsection "*Comment" .index "&%*comment%&" This directive causes the remainder of the input line to be written to the PMW verification output (the standard error stream). It may be useful for outputting reminders to the user. .subsection "*Define" SECTdefine .index "macros" "definition" .index "strings" "macro-defined" .index "&%*define%&" The &%*define%& directive is used to define &'macros'&. A macro is a name for a string of characters; usually the name is much shorter and easier to type than the string it represents. The format of &%*define%& for a simple macro is: .display &`*define`& <&'name'&> <&'rest of line'&> .endd The rest of the input line, starting from the first non-space after the name, is remembered and associated with &'name'&, which must consist of a sequence of letters and digits. It may start with a letter or a digit, so names such as &`8va`& can be used, .index "macros" "form of names" and upper and lower case letters are considered different in macro names. The rest of the line may consist of no characters at all, in which case &'name'& is associated with an empty string. .index "comment on &%*define%&" If there is a comment character @ on the input line, outside double quote marks, it terminates the string that is being defined. That is, a comment is permitted on a &%*define%& directive, provided there are either no quotes, or only matched pairs of quotes, before the start of the comment. If you use macros to generate partial strings, with unmatched quotes in the defining lines, the use of the @ character should be avoided. .index "&& (insert) character" The character &`&&`& is used as a flag character to trigger the substitution of the remembered text. Wherever it appears in the input (except when it follows the @ comment character), it must be followed by a name that has previously been set up by &%*define%&. The sequence &`&&`&&'name'& in the input is replaced by the remembered text. If a genuine ampersand is required in the input, it must be entered as &`&&&&`&. To avoid ambiguity, a semicolon character can optionally be used to terminate the name in a substitution, for example, if the immediately following character is a letter or a digit. The semicolon is removed from the text when the substitution takes place. If an actual semicolon is required in the input following a substitution, two semicolons must be entered. If an undefined name is encountered following &`&&`&, PMW issues an error message, and substitutes an empty string. It is possible to test whether or not a name has been defined (&R; &<>&). An example of the use of a simple macro is given in section &<>&. .subsection "Macros with arguments" SUBSECTmacarg .index "macros" "arguments" .index "arguments for macros" There are times when it is useful to be able to vary the text that is inserted by a macro. The word &'argument'& is used in mathematics and computer programming to describe values that are passed to functions and macros on each call, and that term is adopted here. The use of arguments is best explained by an example. Suppose a piece of music has many `hanging ties', that is, ties that extend to the right of a note but end in mid-air rather than on the next note. The input to achieve this for the note &`g'`& could be: .code [slur/rr15] g' [es] .endd To shorten this input, a macro with an argument can be defined as follows: .code *define hang() [slur/rr15] &&1 [es] .endd The parentheses after the macro name tell PMW that this macro has one or more arguments, and the characters &`&&&&1`& in the replacement text indicate the place where the first argument is to be inserted. This macro can be used for many different notes, for example: .code &hang(g') &hang(B++) &hang(e'-) .endd In each case, the text that forms the argument is substituted into the replacement text where &`&&&&1`& appears. The argument is supplied immediately after the macro name, enclosed in round brackets (parentheses). Any number of arguments may be used. The example macro could be extended to make use of a second argument as follows: .code *define hang() [slur/rr15&&2] &&1 [es] .endd Now it is possible to use a second argument to specify that the tie is to be below the note, for example: .code &hang(g,/b) .endd As this example shows, arguments are separated from each other by commas. All the characters between the parentheses and commas form part of the argument; if, for example, there is a space after the opening parenthesis or after a comma, it forms part of the next argument. Arguments may contain no characters; this is not an error. An argument can be inserted many times in the replacement text. If the following character is a digit, the argument number must be followed by a semicolon as a terminator. This means that if the following character is a semicolon, two semicolons are required. There are also times when it is necessary to include commas and parentheses as part of an argument. The following rules make this possible: .ilist No special action is necessary if an argument contains matched parentheses. Within them, commas are not recognized as terminating the argument. For example: .code &hang((fac')) .endd .next To include an unmatched opening or closing parenthesis or a comma that is not within parentheses, the character &`&&`& is used as an escape character. For example, if a note with a bracketted (parenthesized) accidental is used with the &`hang`& macro, the input is: .code &hang(#&)c') .endd Without the &`&&`& preceding it, the accidental's closing parenthesis would be interpreted as terminating the argument list. .next If an argument contains matched double quote characters, commas and parentheses (matched or unmatched) within the quotes are not treated specially. An unmatched double quote character can be included by escaping it with &`&&`&. .endlist In fact, the appearance of &`&&`& before a non-alphanumeric character anywhere in a macro argument always causes the next character to be taken literally, whatever it is. To include an &`&&`& character itself within the text of an argument, it must be specified as &`&&&&`&. Macro arguments may contain references to other macros, to any arbitrary depth. An &`&&`& followed by an alphanumeric character in an argument is interpreted as a nested macro reference. It is also possible to have macro substitutions in the definition of another macro. .index "macros" "argument defaults" If a macro that is defined with argument substitutions is called without arguments, or with an insufficient number, nothing is substituted for those that are not supplied, unless defaults have been provided as an argument list in the macro definition, for example: .code *define hang(g',/a) [slur/rr15&&2] &&1 [es] .endd When the macro is called, empty and missing arguments are replaced by the defaults. .itable none 0 0 3 80 left 60 left 200 left .row &`&&hang()`& "behaves as" &`&&hang(g',/a)`& .row &`&&hang(B)`& "behaves as" &`&&hang(B,/a)`& .row &`&&hang(,/b)`& "behaves as" &`&&hang(g',/b)`& .endtable The rules for the default argument list are the same as for argument lists when calling macros, except that, if &`&&`& is required to escape a character, it must be written twice. This is necessary because macro definition lines are themselves subject to scanning for macro substitution before they are interpreted. For example: .code *define hang(#&&)g') [slur/rr15] &&1 [es] .endd It follows that, if an &`&&`& character is actually required in a default argument, &`&&&&&&&&`& must be entered. .subsection "*Include" .index "&%*include%&" .index "included files" .index "files, including" This directive can be used to include one file within another. For example, the same standard heading file could be used with a number of different pieces or movements that require the same style. The name of the included file is given in quotes: .code *include "std-setup" .endd If the name does not start with a slash, it is interpreted relative to the directory containing the current input file, unless the current input is the standard input, in which case a non-absolute path name is taken relative to the current directory. Included files may be nested. That is, an included file may contain further &%*include%& directives. .subsection "Conditional preprocessing directives" SUBSECTconditional .index "conditional directives" .index "directives" "conditional" .index "&%*if%&" .index "&%*fi%&" .index "&%*else%&" The conditional preprocessing directives are &%*if%&, &%*else%&, and &%*fi%&. Their purpose is to arrange for certain sections of the input file to be included or omitted under certain circumstances. The &%*if%& directive is followed by a condition, which consists of a word, possibly followed by more data. It the condition is true, subsequent lines of the input, up to &%*else%& or &%*fi%&, are processed. If the condition is not true, these lines are skipped. When &%*else%& is used to terminate the block of lines after &%*if%&, the lines between it and a subsequent &%*fi%& are obeyed or skipped depending on whether the first block of lines was skipped or obeyed. An example will make this clearer: .code *if score magnification 0.9 *else magnification 1.2 *fi .endd Each &%*if%& must have a matching &%*fi%&, but there need not be an &%*else%& between them. It is permitted to nest conditional directives, that is, a complete sequence of &%*if%& → &%*fi%& may occur within another. This provides a way of testing that a number of conditions are all true. The word `or' can be used in a condition to test whether either one of two (or more) conditions is true: .code *if staves 1-3 or stave 7 *if violin or viola .endd If a condition is preceded by the word `not', the sense of the condition is negated: .code *if not score magnification 1.2 *fi .endd We now describe the various conditions that can be tested using &%*if%&. .ilist If the word that follows &%*if%& or &%*if not%& is `score', the condition is true only if no stave selection option is specified on the PMW command line, and the &%selectstave%& directive has not been used earlier in the file. .next If the word is `part' then the condition is true if and only if a stave selection option is given on the command line, or via the &%selectstave%& directive earlier in the file. .next If the word is `stave' (or `staff' or `staves'), it must be followed by a list of staves. In this case, the condition is true if the listed staves, &'and no others'&, are selected. The intended use is for varying the headings of the piece when different combinations of staves are selected for printing. .next If the word is `undef', it must be followed by a name, and the condition is true only if the given name has not yet been defined as a macro using the &%*define%& directive. .next If the word is `format', the condition is true if the &%-f%& command line option has been used to specify a named format, and false otherwise. .next .index "format option" If the word following &%*if%& is not one of the above, the condition is false, unless the &%-f%& command line option was used to specify the same word that follows &%*if%& or &%*if not%& as a format name. The comparison of the words is done in a case-independent manner. .endlist Here are some examples of the use of the conditional preprocessing directives: .code flow *if score @ print full score reduced magnification 0.8 *else @ print part(s) magnified magnification 1.1 systemgap 60 *fi *if stave 1 heading "Flute" *fi *if staves 2-3 heading "Violins" *fi *if undef topspace *define topspace 20 *fi *if large magnification 1.5 *fi .endd The last example would be triggered by including &*-f large*& on the PMW command line. Only one format word can be set at a time in this way. It must begin with a letter and consist of letters and digits only. .section "Identification and counting of bars" SECTident .index "bars" "identification of" .index "identification of bars" .index "numbering bars" PMW identifies bars in its messages using the same number as would be printed as a bar number on the music. This applies both to error messages and to the bar numbers that are used to verify the layout of systems on the page. This makes it easy to associate messages with the actual bars of the music, but it requires some special notation for identifying bars containing the &%[nocount]%& directive. If the first bar of a stave contains a &%[nocount]%& directive (which is the most common use of &%[nocount]%&) it is identified as bar number zero, provided that the &%bar%& directive has not been used. If there is more than one such bar at the start of a stave, they are identified as `0', `0.1', `0.2', etc. Bars other than at the start of a stave that contain &%[nocount]%& directives are identified by the number of the previous counted bar, followed by `.1', `.2', etc. as needed. This also applies to uncounted bars at the start of a stave if &%[bar]%& has been used to set an initial bar number other than one. For example, the following input contains five bars that would be identified in messages as `0', `1', `2', `2.1', and `3': .code [stave 1 treble 1] [nocount] a | gggg | cd [nocheck] :) | [nocount nocheck] ef | gggg | .endd .index "bars" "count of" .index "bar counting" .index "counting bars" The number of bars in each stave is included as part of the information that appears as a result of specifying &%-v%& on the PMW command line (&R; &<>&). The count is given as the number of bars that do not contain &%[nocount]%&, followed by the number of bars that do contain &%[nocount]%&, if any, enclosed in parentheses and preceded by a plus sign. The count for the example above would be `3(+2)'. .section "Dimensions" .index "dimensions" .index "point, definition of" The unit of length used by PMW is the printer's &'point'&. As defined by the PostScript language this is equal to 1/72 of an inch (the true printer's point is slightly smaller). One millimetre is 2.835 points. Whenever a dimension is required in a PMW directive, its units are always points. .code linelength 720 .endd This example specifies a line length of 720 points, that is, 10 inches. PMW works internally in millipoints (thousandths of a point), and any dimension can be given with a decimal point and a fractional part, though any digits after the third decimal place are ignored. .code barlinespace 3.5 .endd This example specifies that the horizontal space after bar lines should be 3.5 points. .index "magnification" When the output is being magnified (or reduced), dimensions specified by the user refer to the unmagnified (or unreduced) units, with the exception of the line length, page length, sheet depth, and sheet width, which are always in absolute units. For example, if the line length is set to 480 points, it remains 480 points at a magnification of 1.5, but if the distance between staves is set to 50 points, the staves are actually printed 75 points apart at this magnification. This means that a change of magnification does not require dimensions in the input to be changed. The following dimension information (in points) is given to help users who want to position items manually on the page: .itable none 0 0 2 190 left 20 right .row "distance between stave lines" "4" .row "width of noteheads" "6" .row "default text baseline level below stave" "10" .row "default text baseline level above stave" "4" .endtable .index "notes" "width of head" .index "width" "of notehead" .index "text" "baseline level" The solid vertical line of the bracket that is used to join the staves of a system together is 2 points wide. This is another useful reference when trying to make dimensional judgements. .section "Paper size" SECTpapersizes .index "paper size" .index "size" "of paper" .index "A3, A4, A5 paper size" .index "B5 paper size" .index "letter, paper size" .index "&%sheetwidth%&" .index "&%sheetdepth%&" .index "&%sheetsize%&" By default, PMW assumes that printing is to take place on A4 paper and so it creates a page image appropriate to that size. If a different paper size is required, the &%sheetwidth%& and &%sheetdepth%& directives can be used to specify what its dimensions are. For standard paper sizes, it is not normally necessary to use &%sheetwidth%& and &%sheetdepth%&, because the &%sheetsize%& directive, which takes as its argument one of the words `A3', `A4', `A5', `B5', or `letter', can be used instead. This has the effect of setting the sheet width and depth to the correct values for the given size. It also sets the page length and line length parameters to appropriate default values for the paper size, but these can be changed by subsequent appearances of the &%linelength%& or &%pagelength%& directives if necessary. &%Sheetsize%& should therefore be given at the top of the file before any use of &%linelength%& or &%pagelength%&, and also before any use of the &%landscape%& directive. All the &%sheet%&... directives may appear only in the first movement of a file. In the most common case, the page image size fits the size of paper being used, but PMW does also support &'two-up'& printing, in which two page images are printed next to each other on a larger piece of paper, for certain paper sizes. Details of this are given in chapter &<>&. .section "MIDI output" SECTmidi .index "MIDI" "output" A number of directives whose names all start with `midi' are available for controlling the allocation of MIDI voices and channels to staves. The &%midichannel%& (&R; &<>&) heading directive is used to specify the allocation of a MIDI voice and/or particular PMW staves to a MIDI channel, and the &%[midichannel]%& (&R; &<>&), &%[midivoice]%& (&R; &<>&), and &%[midipitch]%& (&R; &<>&) directives are used to change the setup in the middle of a piece. For percussion staves, where the playing pitch selects different instruments, the &%[printpitch]%& (&R; &<>&) directive can be used to force the printed notes to a single pitch. If the input file contains no MIDI-specific directives, all notes are played through MIDI channel 1. The voice allocation on the channel is not changed, so whatever MIDI voice is assigned to the channel is used. The `velocity' parameter for each note corresponds to the volume setting, since `velocity' controls the volume on many MIDI instruments. If relative volumes are set by means of the &%midivolume%& (&R; &<>&) or &%[midivolume]%& (&R; &<>&) directives, the overall volume is multiplied by the relative volume and then divided by 15 (the maximum relative volume). Thus, for example, if the overall volume is 64 and a stave has a relative volume of 10, its notes are played with a `velocity' of 42. Notes that are suppressed in printed output by the use of &%[notes off]%& are by default also omitted from MIDI output. The heading directive &%midifornotesoff%& can be used to change this behaviour. .section "Headings and footings" .index "footing" "new movement" .index "heading" "new movement" There are three different sets of heading/footing directives: .ilist &%heading%& and &%footing%& specify text that is printed once, on the first page of a piece. .next &%pageheading%& and &%pagefooting%& specify text that is printed on the second and subsequent pages of a piece. .next &%lastfooting%& specifies text that is printed only on the final page of a piece. .endlist Page headings and footings persist from movement to movement, but new ones can be specified if required. New page headings and footings completely replace those of the previous movement, and are used at the first page break of the new movement. For all movements, if no &%footing%& is given, but there is a &%pagefooting%& (either given for the movement or carried on from the previous one), the page footing is printed at the bottom of the first page as well as on all subsequent pages. One exception to the above is when a new movement continues on the same page as one or more previous movements. If a &%footing%& was specified for a previous movement but has not yet been printed (in other words, this is still the first page of that movement) and the subsequent movements do not themselves have overriding &%footing%& directives, that footing is printed on the page. If, for example, a copyright footing is defined at the start of the first movement, it will be printed at the bottom of the first page, even if the second movement starts on that page, provided the second movement does not itself contain any &%footing%& directives. If the start of a new movement coincides with the top of a new page, the page heading is printed, followed by the heading for the new movement. This means that, for example, if page numbers are specified in the first movement by a &%pageheading%& directive, they will be printed by default on all subsequent pages. .index "movement" "suppressing page heading" Sometimes it is required to suppress page headings at the start of a new movement, for example if they are being used to print the name of the movement at the top of each page. This can be done by adding the keyword `nopageheading' to the &%[newmovement]%& directive: .code [newmovement nopageheading] .endd This option can be used with or without the `newpage' option; it takes effect only if the new movement actually starts at the top of a page. When a new movement does start at the top of a page there is sometimes a requirement for a special footing to be printed on the last page of the preceding movement. This can be requested by the use of: .code [newmovement uselastfooting] .endd This causes PMW to use the &%lastfooting%& setting for this purpose. Its value can then be reset in the new movement. .section "Horizontal and vertical justification" .index "justification" .index "horizontal justification" .index "vertical justification" The word `justification' is used in a typesetting context to describe the way in which a line of text is arranged within its boundaries. `Left justified' means that the line begins hard up against the left-hand edge; `right justified' means it is hard up against the right-hand edge. If both left and right justification are required, the line must be stretched out so that it fits exactly between the boundaries. There is also a concept of `vertical justification', in which the lines of a page are spread out so that the page is exactly filled, instead of leaving blank space at the bottom. In typesetting music, similar considerations apply, with music systems taking the place of lines. Normally, systems are stretched to fill out the entire width required, but there are occasions when this is not required, or would look silly because the line is very short. Similarly, it is often necessary to spread systems vertically so that the bottom stave is at the same level on each page. PMW supports both horizontal and vertical justification. By default, both are enabled, but the &%justify%& and &%[justify]%& directives allow the user to control the justification of each page and each system if required. The &%topmargin%& and &%bottommargin%& directives offer some further flexibility in the page layout. .section "Key and time signatures" SECTkeytimesig .index "key signatures" "specifying" .index "accidentals" "in key signatures" Key signatures are specified by key letter, followed by a PMW accidental character if necessary, and then possibly the letter &`m`& to indicate a minor key. PMW uses the sharp character (&`#`&) to indicate a sharp, but because there is nothing resembling a flat on a computer keyboard, the key that is adjacent to sharp on some keyboards, the dollar sign (&`$`&), is used. All the standard key signatures are supported. See the next section for a discussion of key signatures after transposition, and the &%printkey%& directive (&R; &<>&) for a way of printing non-standard key signatures. .itable none 0 0 2 30 left 200 left .row &`a`& "means A major" .row &`c#m`& "means C sharp minor" .row &`B$`& "means B flat major" .row &`CM`& "means C minor" .endtable .index "time signatures" "specifying" Time signatures are specified by separating two numbers with a slash. For example, 3/4 specifies waltz time. PMW imposes no limitations on the values of the numbers used in time signatures. There are two special time signatures that are specified as letters: .ilist .index "common time" The letter &`C`& specifies `common time' &-- equivalent to 4/4 but printed using the conventional character &{{^}}&. .next .index "alla breve" The letter &`A`& specifies `alla breve' &-- equivalent to 2/2 but printed using the conventional `cut time' character &{{_}}&. .endlist A time signature can be preceded by a number and an asterisk. This has the effect of multiplying the number of notes in the bar for the purposes of checking bar lengths. However, the time signature is printed as given. Thus, for example, the time signature &`2*C`& prints as &{{^}}&, but expects there to be four minims rather than four crotchets in a bar, and &`2*3/4`& prints as 3/4 but expects three minims in a bar. There are options for suppressing the printing of time signatures at various places, and the &%printtime%& directive can be used to specify exactly how certain time signatures are to be printed. For example, 8/8 can be printed as 3+3+2/8, or only a single, large number can be printed. By default, numerical time signatures are printed using the bold font. However, the &%timefont%& heading directive can be used to specify an alternative. In addition, if &%printtime%& is used, the normal font-changing escape sequences can be used in the strings that are specified. It is possible to print music where different staves have different time signatures. For compatible cases such as 3/4 &'vs'& 6/8 no special action is necessary. For other cases (for example, 2/4 &'vs'& 6/8) the &%[time]%& stave directive has to be used to specify the conversion. .section "Transposition" SECTtransposition .index "transposition" Octave transposition can be specified for each stave, to simplify the input notation. See the &%[octave]%& and the various clef directives (&%[treble]%&, &%[bass]%&, etc). In addition, general transposition can be specified for the whole piece or for individual staves. PMW can transpose up or down by an arbitrary number of semitones. A transposition for the whole piece can be specified externally, via the &%-t%& command line option, or within the input file by the &%transpose%& heading directive. Transposition for individual staves is specified with &%[transpose]%&. If more than one transposition is present, the effect is cumulative. .index "transposition" "key signatures" .index "key signatures" "after transposition" PMW transposes key signatures as well as notes. A piece that is to be transposed should be input with its original key signature(s) specified in the normal way. When &%[transpose]%& is used to transpose a single stave, only those key signatures that follow the directive in the input are transposed. The key signature of F♯ major is used in transposed output only if specially requested via the &%transposedkey%& directive, G♭ being used by default. A number of other keys are also not used by default but can be specially requested. The complete list is as follows: .itable none 0 0 5 16 left 30 left 110 centre 18 left 50 left .row C♭ "major" "instead of the default" B "major" .row C♯ "major" """" D♭ "major" .row F♯ "major" """" G♭ "major" .row A♭ "minor" """" G♯ "minor" .row A♯ "minor" """" B♭ "minor" .row D♯ "minor" """" E♭ "minor" .endtable The &%transposedkey%& directive also has uses when transposing music in which the key signature has fewer accidentals than the tonality. .index "accidentals" "transposed" If a note is specified with an accidental, an accidental will always be present by default after transposition, whether or not it is strictly necessary. This ensures that `cautionary accidentals' are preserved over transposition. There is an option to suppress this for individual notes, and the &%transposedacc%& directive can be used to suppress it throughout a piece. .subsection "Transposition of key and chord names" .index "transposition" "chord names" .index "transposition" "key names" PMW can automatically transpose the names of keys and chords in text strings. This is achieved by means of a special escape sequence &`\t`&. .code "Sonata in \tE$" .endd In this example, the sequence &`\tE$`& is replaced by E♭ when no transposition is taking place and by F when a transposition of +2 is set. Full details of string escape sequences, including key and chord name transpostion, are given in section &<>&. .section "Incipits" SECTincipit .index "incipits" The word &'incipit'& is the name given to stave notation that appears before the first bar of a piece, as commonly seen in scholarly editions. This notation is often used to show the original clef and other information about the piece. Here is a typical example: .music "music18" 64 8,-20 This example was produced by using the &%startbracketbar%& directive to `indent' the joining bracket by one bar. The input is as follows: .code startbracketbar 1 [stave 1 soprano 1 key F time C nocheck] A | [treble 1 key a$ time c] Rc'd' | [endstave] [stave 2 tenor 1 key F time C nocheck] C\M+\ | [treble 1 key a$ time c] Ead' | .endd If an incipit is required on one stave only, for example, to print a single voice introduction at the start of a liturgical item, the other staves can be completely suppressed by making use of the &%[omitempty]%& directive. Another style of incipit leaves blank space between the incipit stave and the start of the piece proper. With a little bit of trickery, PMW can cope with this as well. The incipit and the rest of the piece must be input as separate `movements', separated by &`[newmovement`& &`thisline]`&. The incipit movement must be specified as left justified, and the start of the next movement as right justified, switching to left and right justification on the second system. If necessary, &%[newline]%& can be used to control the number of bars that are printed in the first system. .section "Text fonts" SECTtextfonts .index "text" "fonts" .index "fonts" "names of" .index "naming fonts" .index "font names" PMW supports the use of a number of different fonts, or typefaces, for use when printing text. As well as the standard four (roman, italic, bold face, and bold italic), the use of a symbol font and of the music font in text is supported. In addition, up to twelve other fonts can be defined by the user. The different kinds of text (for example, underlay or bar numbers) each have a default font, and there are directives to change these. The fonts are referred to by the following names: .itable none 0 0 2 90 left 200 left .row "&`roman`&" "the roman font" .row "&`italic`&" "the italic font" .row "&`bold`&" "the bold face font" .row "&`bolditalic`&" "the bold italic font" .row "&`symbol`&" "the symbol font" .row "&`music`&" "the music font, at 0.9 size" .row "&`bigmusic`&" "the music font, at full size" .row "&`extra`& <&'n'&>" "the <&'n'&>th extra font" .endtable The &%textfont%& heading directive is used to define exactly which fonts correspond to these names. By default, the &'Times'& series of fonts are used for text, and the &'Symbol'& font for symbols. PMW needs access to the `fontmetrics' file of every text font that it uses, and fontmetrics files for the standardly available PostScript fonts are supplied with PMW. If you want to use other fonts, you will need to obtain the appropriate fontmetrics files and install them in PMW's &%fontmetrics%& directory, or use the &*-F*& command line option to specify an additional directory where they may be found. The music font is available at two different relative sizes, because the music characters look too large if printed alongside text at the same point size, for example, when printing tempo marks. .section "Font sizes, aspect ratios, and shearing" SECTfontsize .index "fonts" "sizes" .index "aspect ratio of fonts" .index "fonts" "aspect ratio" .index "sheared fonts" .index "fonts" "shearing" Many PMW directives allow you to specify a size for a font. For example, when defining a heading: .code heading 15 "|Sonatina" 30 .endd The first number (15) specifies that the text is to be printed using a 15-point font. .index "text" "aspect ratio" .index "text" "sizes" .index "text" "shearing" There are further parameters that you can specify to control the size and shape of any text font. These are coded as two additional numbers, separated from the main size value by slashes: .code heading 15/1.3/10 "|Sonatina" 30 .endd The first additional number is a horizontal stretching factor that alters the aspect ratio of the font. If it is greater than one, the resulting font appears short and fat; if it is less than one, the appearance is tall and thin. Stretching a font horizontally makes it look larger without using up any more vertical space. .music "music30" 38 The second additional number is a shearing angle, measured in degrees. It specifies the angle between the true vertical and what were originally vertical lines in the font. A positive shear angle causes the font to slope to the right, and a negative one makes it slope to the left. Sheared roman fonts are sometimes used instead of italic fonts: .code heading 14/1/20 "Slanted text" .endd This example prints the heading with a 20° shear. .music "music31" 12 Stretching and shearing values can be specified in all the places where a text font size can be specified. .section "Text strings" SECTtextstrings .index "strings" .index "text" "strings" Text strings (often just called `strings') are used in a number of different places in PMW to define text that appears on the page with the music. They must always be enclosed in double-quote characters. The double-quote character itself cannot appear in a string (but can be printed using a character number, if necessary). There is no limit to the length of a string. .index "special characters in strings" .index "strings" "special characters" Three characters are treated specially in all strings: .ilist The quote character &`'`& and the grave accent character &```& are converted into (single) typographic closing and opening quote characters, respectively, in fonts whose fontmetrics file specifies the Adobe Standard Encoding. This is the case for all the default fonts except the music and symbol fonts. A closing quote character is the same as an apostrophe. .next The backslash character &`\`& is an &'escape character'& (see below). .endlist There are also some characters that are treated specially in some specific types of string: .ilist In vocal underlay or overlay strings (&R; &<>&), a number of additional characters are treated specially. .next .index "vertical bar in strings" .index "strings" "vertical bar" .index "| (vertical bar) in strings" In headings and footings, the vertical bar &`|`& serves to separate the left-hand, middle and right-hand parts of the text. In text that appears at the start of a stave, it serves to delimit individual lines. .endlist .subsection "Unicode and UTF-8 encoding" SUBSECTuniutf .index "Unicode" .index "UTF-8 encoding" .index "ISO-8859-1" .index "character codes" "discussion of" .index "strings" "encoding" This section is rather technical. Unless you need to know some of the deep details of character handling, you can probably ignore it and the following section, and skip to section &<>& (&'Escaped characters'&) below. The standard PostScript fonts contain many more characters than are available on a computer's keyboard. The basic computer character set, often referred to as ASCII, comprises 95 characters (including space), whose code values lie between 32 and 126, inclusive. These are the characters you can type on the keyboard. Codes less than 32, together with code 127, are used for control functions such as `newline' and `delete'. Codes greater than 127 are not defined in the ASCII character set. When people needed more than 95 characters, a number of different codes were defined, including several called ISO-8859-&'n'& (for different values of &'n'&). These all kept the same meanings for codes 0&--127, but added different sets of characters for the values 128&--255. The most widely used of these codes is ISO-8859-1 (`Latin1'), which contains many of the accented characters used in Western European languages. Before release 4.10, PMW interpreted each byte in a text string as a single character, with a value in the range 0&--255. Values less than 128 were interpreted as ASCII, and values in the range 160&--255 were taken from ISO-8859-1. Some of the values in the range 128&--159 were subverted for additional characters such as en-dash and em-dash that are not defined in ISO-8859-1. In addition, access to non-ASCII characters was available via escape sequences so that a PMW input file could contain only ASCII bytes and still use all the ISO-8859-1 characters, though in practice input files in ISO-8859-1 code were used. The problem with using many different character codes is that it is hard to switch between them. Even when printing music, where there is not much text, the name of the composer may be in one language, requiring a certain set of accents, and the rest of the text may be in another, requiring different accents. The long-term solution to this problem is Unicode, which is a single encoding for all the world's characters. Unicode character values are no longer constrained to lie in the range 0&--255, thus enabling the character sets from many languages to be simultaneously defined. However, this means that no longer can every character fit into one byte of memory. The Unicode encoding copies ISO-8859-1 for the first 256 characters. Furthermore, there is a way of encoding these characters called UTF-8 which keeps the byte values 0&--127 as the encoding for those character values. For character codes greater than 127, a multibyte encoding is defined. If a file consists of bytes containing only the original 127 ASCII values, it is a valid UTF-8 encoded Unicode file. From version 4.10 onwards, PMW treats the bytes that make up quoted strings as UTF-8 encoded Unicode character sequences. For example, the following byte sequence (where each byte is expressed in hexadecimal) encodes two characters: .code 41 C2 A6 .endd The first byte, with a decimal value of 65, is less than 128, and is therefore an entire character on its own. The remaining two bytes together encode the value 166. If you have a text editor that can create files using UTF-8 encoding for Unicode characters, you can use these characters directly in PMW strings. If not, you can refer to characters whose values are greater than 127 using escape sequences, as described in section &<>& below. There is a complete list of the characters in standard PostScript fonts in chapter &<>&. These are the characters that are accessible using Unicode (or escape sequences) in text strings. There are, of course, many other characters that are defined in Unicode, but which are not present in these fonts. Some of them (for example, Greek letters) exist in the PostScript &'Symbol'& font, which can be used via PMW escape sequences (&R; &<>&). This font, however, does not use Unicode encoding. .subsection "Backwards compatibility for character strings" SUBSECTbackcompat .index "ISO-8859-1" .index "character codes" "backwards compatibility" Some byte values are invalid in UTF-8 strings. In particular, a single byte with a value greater than 127 that is between two bytes whose values are less than 128 cannot occur. When PMW encounters such a byte in a string, it interprets it as a single-byte encoding of a character in the range 128&--255. This is done for backwards compatibility so that input files for PMW releases prior to 4.10 that made use of the ISO-8859-1 encoding directly can still be processed. The output is likely to be correct in most cases; only when there are several high-valued bytes in a row, and they happen to form a valid UTF-8 character, will things go wrong. .ilist If an existing PMW input file uses only ASCII characters, and does not (by means of escape sequences) refer to characters in the range 128&--159 by number, it should continue to work as before. .next If an existing PMW input file contains bytes with values in the range 160&--255, but these are always isolated between characters with values less than 128, it should also continue to work as before. .next An existing PMW input file that contains sequences of two or more bytes with values greater than 159 may or may not work, depending on the exact byte values. .next An existing PMW input file that uses characters in the range 128&--159 by any method will definitely have to be updated, because the codes for those characters have changed. .endlist For maximum portability of PMW input files, it is recommended that only ASCII characters be used in the file, with escape sequences for high-valued characters. .subsection "Escaped characters" SUBSECTescaped .index "escaped characters" .index "backslash" .index "\ (escape) character" .index "strings" "escaped characters" .index "strings" "accented characters" .index "accented characters in strings" .index "strings" "special characters" .index "special characters in strings" From PMW release 4.10 onwards, it is possible (as just described) to use UTF-8 encoding to directly represent Unicode character values in text strings. However, it is also possible to use just the set of ASCII characters in PMW input files, without loss of functionality. The backslash character is used as a means of including characters that are not in the normal computer character set, for specifying changes of font, and for some other special effects. For example, the following sequences are available to represent some of the commonly accented characters in European languages: .itable none 0 0 2 50 left 300 left .row &`\a'`& "prints á" .row &`\a``& "prints à" .row &`\a^`& "prints â" .row &`\a.`& "prints ä" .endtable Many other accented characters are available, and there are other escape sequences for other special characters: .itable none 0 0 2 50 left 300 left .row &`\c)`& "prints as ©" .row &`\c]`& "prints as © (but see below)" .row &`\ss`& "prints as ß" .row &`\?`& "prints as ¿" .row &`\\`& "prints as \" .row &`\'`& "prints as ' (because &`'`& on its own prints as ' )" .row &`\``& "prints as ` (because &```& on its own prints as ` )" .row &`\--`& "prints as &--" .row &`\---`& "prints as —" .endtable .index "copyright symbol" The normal way to print a copyright symbol is to use &`\c)`& because this prints it in the current font. However, some older PostScript printers do not have a copyright symbol in every font. The alternative escape sequence &`\c]`& is provided to print a copyright symbol from the PostScript &'Symbol'& font. A complete list of all the available special characters and their escape sequences is given in chapter &<>&. Other escape sequences are summarized in chapter &<>&. Characters that are not on the keyboard can be included in strings by giving the character number, in hexadecimal preceded by &`x`& or in plain decimal, enclosed between two backslashes. For example, &`\xb7\`& or &`\183\`& prints a bullet character. Characters that are treated specially in text strings can also be printed by this means. For example, &`\x22\`& prints a double-quote character, which cannot appear literally in a string. The interpretation of string escape sequences happens after a string has been split up into different parts for headings or for underlay text. Therefore it is possible to print the splitting characters, should they ever be wanted, by specifying their character number. For example, the sequence &`\x7c\`& can be used to print a vertical bar in a heading line, where a literal vertical bar is interpreted as a left-middle-right separator. .index "Symbol font" .index "fonts" "Symbol" Characters from the PostScript &'Symbol'& font are also available for use in text strings. This font contains some large brackets that are sometimes useful, as well as a number of other special characters that are not present in the ordinary text fonts. Unicode encoding is &'not'& used for this font. To include a single character from the Symbol font, specify its hexadecimal character number in the font's default encoding preceded by &`sx`&, or its decimal character number preceded by &`s`&, enclosed in backslashes. For example, &`\s174\`& prints character 174, which is .index "right arrow symbol" the → right arrow symbol. .subsection "Page numbers" .index "page numbers" .index "numbering pages" There are three escape sequences that are different to the others in that they do not generate a particular fixed character: .itable none 0 0 2 50 left 300 left .row &`\p\`& "prints the current page number" .row &`\po\`& "prints the current page number if it is odd" .row &`\pe\`& "prints the current page number if it is even" .endtable If the page number is even, &`\po\`& prints nothing, and if it is odd, &`\pe\`& prints nothing. These are made available for use in heading and footing lines, to enable page numbers to be printed on the right or left as appropriate. There is an additional facility for skipping parts of the string depending on the value of the page number. Any characters between two occurrences of the substring &`\so\`& are skipped if the page number is odd, and similarly for &`\se\`& if the page number is even. This makes it possible to specify page headings of this form: .code pageheading "\so\page \p\\so\||\se\page \p\\se\" .endd This example prints `page &'n'&' on the left or right of the page, depending on the value of the page number. .subsection "Comments within strings" .index "comments in strings" .index "string comments" There is a facility for in-string comments. Any characters between the string &`\@`& and the next backslash are ignored. This can be useful when an entire piece's underlay is being input as a single, very long string. However, if such a comment in an underlay string is surrounded by spaces, it acts as an empty syllable. .subsection "Transposing key and chord names" SUBSECTtranchordnames .index "transposition" "chord names" .index "transposition" "key names" A special escape sequence is provided to define the names of keys or chords that should be changed if the piece (or stave, for strings associated with a stave) is being transposed. This makes it straightforward to transpose pieces that show chord names above a line of music. The escape sequence is &`\t`&, and it must be followed by one of the letters A&--G, in upper case. This may optionally be followed by one of the accidental characters &`#`&, &`$`&, or (for completeness) &`%`&. Such a sequence has two effects; firstly, the key or chord name is transposed in the same way as its base note would be transposed, and secondly, if the new name involves a sharp or a flat, the correct sign is used, with appropriate spacing adjustment. Thus, even without transposition, this notation is a convenient way of specifying key or chord names that involve accidentals. Natural signs are never used on transposed names. The rules for transposing notes can yield a new note with double sharp or a double flat. When this happens for a key or chord name, the enharmonic name is substituted. For example, G is used for F double-sharp. When a string that involves a transposable name appears in a heading or footing line, only &%transpose%& heading directives that are earlier in file are applied to it, because the transposition is performed when the string is read. It is also important to specify the key signature before the transposable heading or footing, in case it affects the result. For example, consider this directive: .code heading "Sonata in \tC minor" .endd If no key is specified before this line in an input file, and a transposition of +1 is applied, the result is `Sonata in D♭ minor', because PMW assumes the key of C major. However, if the key is set to C minor before the heading line, the result of transposing by +1 is `Sonata in C♯ minor'. .subsection "Font changes" SUBSECTfontchanges .index "font changes" .index "text" "font changes" Roman, italic, bold and bold italic fonts are available for all text printed by PMW. By default, these use the &'Times'& series of fonts but can be changed by the &%textfont%& heading directive. In addition, the user may define up to twelve additional fonts via &%textfont%&. If any of these is used without being defined, the roman font is substituted. The initial font setting at the start of each character string is roman for all text that is not part of any stave's data. Within a stave, the default depends on whether the text is underlay, overlay, figured bass, or other text. .index "figured bass" "default font" .index "underlay" "default font" .index "fonts" "default at string start" For underlay, overlay, and figured bass the default is roman, but for other text it is italic, which is appropriate for dynamic marks such as &'ff'&, though sometimes bold italic is used for this kind of mark. Tempo marks at the start of pieces are normally printed in bold face, as in the following example: .code "\bf\Adagio" .endd The default fonts for each type of text can be changed on a per-stave basis (see the &%[underlayfont]%&, &%[overlayfont]%&, &%[fbfont]%&, and &%[textfont]%& stave directives). Within a text string, the following special character sequences are used to change font: .itable none 0 0 2 50 left 300 left .row &`\rm\`& "change to roman" .row &`\it\`& "change to italic" .row &`\bf\`& "change to bold face" .row &`\bi\`& "change to bold-italic" .row &`\sc\`& "change to small caps" .row &`\sy\`& "change to the symbol font" .row &`\mu\`& "change to the music font at 0.9 size" .row &`\mf\`& "change to the music font at full size" .row &`\x1\`& "change to the first extra font" .row … .row &`\x12\`& "change to the twelfth extra font" .endtable For example: .code "\rm\this is roman \it\this is italic \bf\this is bold" .endd Note that the letters involved are always in lower case. A change of typeface does not persist beyond the end of the text string in which it appears. .index "small caps" Changing to &&SMALL CAPS&& does not in fact change the typeface, nor does it force subsequent letters to be capitals; it just changes to a smaller font of the same typeface as the current font. The effect lasts until the next font change. The relative size of small caps can be set by the &%smallcapsize%& heading directive, whose argument should be a number between 0 and 1. The default value is 0.7, because this makes small caps whose height is equal to the x-height of the normal font in the &'Times'& series of fonts, and this is the usual typographic convention. .subsection "Sizes of text strings" .index "size" "of text" .index "text" "sizes" .index "fonts" "sizes" .index "size" "of fonts" The heading directives that specify page headings and footings allow arbitrary sizes to be given for those texts. Text within a stave is by default printed using 10-point fonts, but various facilities are provided for changing this. .index "figured bass" "default size" .index "underlay" "default size" .index "fonts" "default sizes" Underlay, overlay, figured bass, and other text each have their own separate default sizes, which are set up by heading directives. In addition the user may specify up to eleven additional sizes that can be requested for any particular item of text (&R; &<>&, &<>&). Whenever the size of a text font is specified, an associated aspect ratio and/or shearing angle may also be specified (&R; &<>&). Stave text strings that are not underlay or overlay can be rotated so that they print at an angle (&R; &<>&). Text at the start of a stave can be rotated so as to print vertically instead of horizontally &-- see the description of &%[stave]%& in section &<>&. .subsection "Music characters" .index "music characters in text" .index "notes" "in text strings" .index "strings" "including notes" An escape mechanism can be used to include single music `characters' in textual output without having to change to the music font and back again. Typical uses of this are for indicating tempo by printing a note followed by an equals sign and its metronome mark, or for printing sharps and flats in the names of instruments. To include a note from the music font, the following special sequences can be used: .index "fonts" "music in text" .itable none 0 0 2 50 left 300 left .row &`\*b\`& "prints a breve" .row &`\*s\`& "prints a semibreve" .row &`\*m\`& "prints a minim" .row &`\*c\`& "prints a crotchet" .row &`\*Q\`& "prints a quaver" .row &`\*q\`& "prints a semiquaver" .endtable .index "\* escape sequence" Any of the above can include a dot after the note letter to print the dotted form of the note, for example, &`\*c.\`&. The accidental characters are available as follows: .index "accidentals" "in text strings" .itable none 0 0 2 50 left 300 left .row &`\*#\`& "prints a sharp" .row &`\*$\`& "prints a flat" .row &`\*%\`& "prints a natural" .endtable A typical example of a tempo mark that uses this facility might be: .code "\bf\Maestoso \*c\ = 60" @ 60 crotchets per minute .endd This prints as: .display &*Maestoso *&&{5}&&* = 60*& .endd Music characters included in character strings with a single asterisk in this way are printed using a music font that is 9/10 the nominal size of the surrounding text characters. This is an appropriate size for items such as tempo marks. Thus, if a 10-point text font is being used, a 9-point music font is used with it. The music font that is used to print the music being typeset is a 10-point font, and it is sometimes useful to be able to print music characters at full size. If two asterisks are present in an escape sequence for a music character, .index "\** escape sequence" the character is taken from a music font that is the same size as the text font. Since the default text fonts are the same size as the standard music font, this gives music characters at the same size as those being used for music on the stave. If more than one escape sequence starting with an asterisk is required in succession, they can all appear between a single pair of backslashes, for example, &`\*#*c\`&. However, you cannot mix single and double asterisks between the same pair of backslashes. .index "non-printing music characters" There are a number of `characters' in the music font that do not actually cause any marks to be made on the page. `Printing' these characters has the effect of moving the current printing position, thus affecting the placing of any subsequent characters. The following sequences (which may also be used with two asterisks) access some of these special characters: .itable none 0 0 2 50 left 300 left .row &`\*u\`& "moves up by 0.2 times the font's size" .row &`\*d\`& "moves down by 0.2 times the font's size" .row &`\*l\`& "moves left by 0.33 times the font's size" .row &`\*r\`& "moves right by 0.55 times the font's size" .row &`\*<\`& "moves left by 0.1 times the font's size" .row &`\*>\`& "moves right by 0.1 times the font's size" .endtable For example, in a 9-point music font, &`\*u\`& moves up by 1.8 points. This is half the distance between stave lines for a 9-point music font. .index "strings" "use of music font" In addition to those characters that are available via the escape sequences just described, it is also possible to print &'any'& character from the music font by specifying its hexadecimal character number preceded by &`x`& or just its decimal number, preceded by one or two asterisks, between backslashes. A list of the available characters is given in chapter &<>&. For example, the sequence &`\*45\`& prints a crotchet rest. If you want to print a long sequence of characters from the music font, it is sometimes more convenient to use a font-changing escape sequence, as described in the previous section, rather than individually escape each character. .subsection "Guitar chord grids" SUBSECTguitargrids .index "guitar chord grids" Guitar chord grids can be printed relatively straightforwardly as a string of characters in the music font, printed above the stave. The grid character itself (character 131) has zero typographic width. If a guitar dot character (116, or `t') is printed immediately following, it is placed on the fourth fret mark of the first guitar string. The typographic width of this character is set so that after it is printed, the current printing point is moved to the next guitar string. Two of the special characters for moving up and down (119 and 120, that is, `w' and `x') can be used to move between frets, and the right moving character 125 (`}') can be used to move to the next string if you do not want to print any symbol on a string. The guitar ring (open string) and cross (silent string) characters (117, or `u', and 183) behave exactly as the dot. To print them above the first fret you need to move up one and a half times the normal fret distance. .display &~ &`"\mu\\131\xxxx~\183\|wwwtxtwwtxxxtx~u"`& prints &&& &{ƒxxxx~·|wwwtxtwwtxxxtx~u}& .endd The sequence &`\mu\`& switches into the music font, and \131\ prints character 131, the grid. The sequence &`xxxx~`& moves the printing point up by four and a half frets, which takes it to above the grid, where character \183\, the `x', is printed. The sequence &`|www`& moves down by three and a half frets so that &`t`& prints a dot on the third fret of the second string. And so on... If you want to print the names of the chords, you can give them as additional strings that can be separately positioned. Section &<>& discusses text strings in stave data. If you are going to use a lot of guitar chords, it is most convenient to define macros for the text strings. .subsection "Kerning" SUBSECTkerning .index "text" "kerning" .index "kerning" &'Kerning'& is the word used to describe the practice of moving certain pairs of letters closer together or (more rarely) further apart, in order to improve the appearance of text. Compare, for example, `Yorkshire' (kerned) with `Y&B;orkshire' (unkerned). PMW makes use of the kerning information in fontmetrics files automatically. This action can be disabled by including the directive &%nokerning%& in the heading of the first movement. To prevent kerning between a particular pair of characters, a redundant font change can be used: .code "\rm\Y\rm\orkshire" .endd This example is printed without the o being moved nearer to the Y. .section "Stave 0" SECTstave0 .index "stave zero" The normal staves of a piece are numbered from 1 to 63. In addition, data for a special stave, numbered 0, can be supplied. This stave is by default overprinted on the topmost stave of each system; the &%-s%& stave selection option on the command line does not affect it. No stave lines, clefs, key signatures or time signatures are printed for stave 0, and any notes that are specified are treated as `invisible'. However, text items are printed. The intended use of stave 0 is for setting up text items that are to be printed above the topmost stave, whatever combination of staves is selected for printing. This saves having to input the text items with each part. Dummy notes can be supplied to ensure that the text items are horizontally aligned where they are required. A typical example might be: .code [stave 0] "Allegro"Q+ | [15]Q! | Q "rit." Q | [23]Q! | "with feeling" Q+ | [endstave] .endd Overprinting stave zero on the top stave of each system is the default action of PMW, but you can use the &%copyzero%& heading directive to have copies of stave zero printed over any number of staves. This directive is followed by a list of stave numbers, each of which may be optionally followed by a slash and a dimension. The dimension is a vertical adjustment to the level of stave zero for the given stave. .code copyzero 1 7/10 11/-2 .endd All the staves over which stave zero is to be printed must be specified, including the top stave. Different versions of &%copyzero%& can be used for different movements; if not given, its settings are copied from the previous movement. If a stave over which stave zero is being printed is suspended, stave zero is printed over the next following non-suspended stave, if there is one. However, if that stave itself is listed in the &%copyzero%& directive, its spacing parameter is used. In general, if, as a result of suspension or overprinting, stave zero is requested to be multiply printed at any given level, the spacing parameter for the highest numbered stave is used. Selection of a subset of staves for printing is equivalent to the suspension of all others. The default for &%copyzero%& is: .code copyzero 1 .endd This therefore has the desired effect of printing over individual staves that are extracted as parts. If it is necessary to adjust the overall level for a particular part, constructions such as the following can be used: .code *if stave 9 copyzero 9/4 *fi .endd There is also a &%[copyzero]%& stave directive, which takes a dimension as an argument, and adjusts the vertical level of any stave zero material in the current bar when stave zero is printed at the level of the current stave: .code [copyzero 4] .endd This example raises the stave zero material in the current bar by 4 points. It is not necessary for there to be an instance of the &%copyzero%& heading directive specifying the current stave for &%[copyzero]%& to take effect. In the default case, &%[copyzero]%& takes effect whenever the stave in which it appears is the top stave of a system. When first and second time bar marks are specified in stave zero, and there is a need to adjust their height for certain staves, it should be noted that the marks are drawn when the bar in which their end point is determined is processed. Consequently, it is that bar in which &%[copyzero]%& should appear. .section "Temporarily suspending staves" SECTsuspend .index "suspending staves" .index "staves" "suspending" When a part is silent for a long period of time, it is conventional in full scores to suppress its stave from the relevant systems. The term `suspended' is used to describe a stave that is not currently being printed. PMW does not suspend staves automatically, so you have to use the &%[suspend]%& directive in to tell it when to do so (&R; &<>&). Resumption of printing is automatic, but there is also a &%[resume]%& directive for forcing it to happen at a particular bar. Staves can be suspended only if they contain no notes or text items, though other items such as time and key signature changes may be present. It is conventional to print all the staves in the first system of a piece, even if some of them contain only rest bars. However, there is a heading directive called &%suspend%& that makes it possible to suspend individual staves right from the start (&R; &<>&). When a single part is being printed, suspension normally has no effect, because multiple rest bars are packed up into a single bar with a count printed above, and so systems containing only rest bars do not occur. However if &`S!`& is used for rest bars instead of &`R!`&, it prevents the amalgamation of adjacent bars and may lead to suspendable systems, which are undesirable in single parts. In these cases, therefore, any &%[suspend]%& directives that are present for use when printing the full score should be skipped (using the &%*if%& preprocessing directive) when printing the part. .index "empty bars, omitting" .index "&'ossia'& passages" Normally, a stave that is not suspended will be printed right across the system, with rest bars as appropriate. However, a stave can be tagged with the &%[omitempty]%& directive (&R; &<>&), in which case completely empty bars are not printed at all. This can be useful for printing &'ossia'& passages. A completely empty bar has no data at all specified for it; a bar containing a rest is not a completely empty bar. . //////////////////////////////////////////////////////////////////////////// . //////////////////////////////////////////////////////////////////////////// .chapter "Drawing facilities" CHAPdraw .index-from I03 "drawing facility" .index "&%draw%&" .index "&%[draw]%&" .index "crop marks" PMW contains a facility for drawing simple shapes, defined by the user, positioned relative to notes, bar lines, headings, stave names, or gaps in slurs and slur-like lines. This makes it possible to print music notation that is not provided explicitly by PMW. For example, the facility can be used to draw piano pedal marks, boxes round notes, vertical brackets between notes, and to print unusual marks above or below the stave. It can be used with headings or footings to rule lines across the page or to print crop marks. A simple programming language is used to describe drawings. Readers unfamiliar with computer programming may find this chapter hard going and may prefer to skip it on a first reading. Before describing the facility in detail, we consider a short example. Suppose there is a requirement to draw a solid black triangle, with its point upwards, 4 points below the stave. The first thing to do is to define this shape. This is done using the &%draw%& heading directive as follows: .code draw triangle 3 -4 moveto @ move to apex -3 -6 rlineto @ line to bottom left 6 0 rlineto @ horizontal line to bottom right -3 6 rlineto @ line back to apex fill @ fill it in (solid triangle) enddraw .endd This example of &%draw%& defines a drawing called `triangle'. The lines between &%draw%& and &%enddraw%& are drawing instructions in a form that is described below. Whenever the triangle shape is wanted, the stave directive &%[draw triangle]%& is given before the relevant note. .code c'f [draw triangle] g a | c'-b'- [draw triangle] a'-g'- fg | .endd .music "music19" 40 4,-14 If many triangles are required, it would be a good idea to use &%*define%& to set up a macro for &%[draw triangle]%& to save typing. The `language' used to describe drawings is based on the notion of a &'stack'&. This will be familiar to you if you have any experience of the computer programming languages Forth or PostScript. For those readers who are not familiar with stacks, we now explain how they work. .section "Stack-based operations" .index "drawing facility" "stack description" A stack is a means of storing items of data such that the last item that is put on the stack is the first item to be taken off it. An analogy is often drawn with the storage arrangements for trays in self-service restaurants, where a pile of trays is on a spring-loaded support. Trays are added to the stack on the top, thereby pushing it down; when a new tray is required, it is taken from the top of the stack, and the remainder of the trays `pop up'. PMW's drawing stack contains numbers and references to text strings rather than trays. (Discussion of strings is postponed till section &<>&.) When PMW is obeying a set of drawing instructions, if it encounters a number in its input, the number is `pushed' onto the top of the stack. Consider the following fragment of a drawing program: .code 3 2 add .endd In this example, the first item is the number 3, so the effect of reading it is to put the stack into this state: .figure fig01 The second item is also a number, so after it is read, the stack is as follows: .figure fig02 The third item in this fragment is the word `add'. This is not a number &-- it is an &'operator'&. The operators used in PMW drawings are based on those found in the PostScript language. When an operator is encountered, it causes PMW to perform an operation on the numbers that are already on the stack. In the case of the &%add%& operator, the two topmost numbers are `popped' off the stack, added together, and the result is pushed back onto the stack. So in this case, after `add' has been obeyed, the stack is like this: .figure fig03 .index "stack underflow" .index "underflow of stack" If an operator is encountered that requires more numbers on the stack than there are present, &'stack underflow'& is said to occur. PMW generates an error message and abandons the drawing. The stack mechanism is very simple, and operates quickly. However, it does make it possible to write very obscure code that is hard to understand. Use PMW's comment facility to help you keep track of what is going on. PMW does not clear the drawing stack between one invocation of &%[draw]%& and the next. This provides one way of passing data between two drawing function calls, and there is no problem if the related drawing functions are called in the same bar of the same stave, because they will be always obeyed in the order in which they appear in the input. However, you must not rely on the order in which PMW processes bars and staves, other than that bar &'n'& will be processed before bar &'n'&+1 on any particular stave, but not necessarily immediately before it (a bar on another stave may intervene). Apart from this, the order of processing, and therefore the order of obeying &%[draw]%& directives on several staves, is not defined, and may change between releases of PMW. Therefore, if you need to pass data between drawing functions in different bars, and use this facility on more than one stave, the stack cannot be used safely. &'User variables'& (&R; &<>&) must be used instead. .section "Drawings with arguments" Whenever a drawing function is called, either by the &%[draw]%& directive or as part of some other directive (for example, &%heading%&), its name may be preceded by a list of numbers or text strings (&R; &<>&), separated by spaces. These are pushed onto the drawing stack immediately before the function is obeyed, and therefore act as arguments for the function. .code heading draw 44 logo [draw 3 -5.6 thing] [linegap/draw 8.2 blip] [slurgap/draw "A"/c annotate] .endd There is no explicit facility for default values, but these can be provided by using a macro with arguments to call the drawing function (&R; &<>&). .section "Arithmetic operators" .index "drawing facility" "arithmetic operators" .index "arithmetic operators for &%draw%&" The following arithmetic operators are provided for use in drawing descriptions: .ilist &%add%&: Add the two top numbers on the stack, leaving the result on the stack. .next &%div%&: Divide the second topmost number on the stack by the number on the top of the stack, leaving the result on the stack. .next &%mul%&: Multiply the two top numbers on the stack, leaving the result on the stack. .next &%neg%&: Negate the topmost number on the stack, leaving the result on the stack. .next &%sub%&: Subtract the topmost number on the stack from the second topmost number, leaving the result on the stack. .endlist Evaluation of the expression ((3+4) × 5 + 6)/7 could be coded as follows: .code 3 4 add 5 mul 6 add 7 div .endd .section "Truth values" .index "drawing facility" "true values" The operators &%false%& and &%true%& push the values 0 and 1 onto the stack, respectively. These are the same values that are returned by the comparison operators, and can be tested by the conditional operators. .section "Comparison operators" .index "drawing facility" "comparison operators" .index "comparison operators for &%draw%&" The following operators operate on the top two values on the stack and leave their result on the stack. The values must be numbers &-- if they are not, the result is undefined. Otherwise the result is 1 for &'true'& and 0 for &'false'&. .itable none 0 0 2 20 left 300 left .row &%eq%& "test equality" .row &%ne%& "test inequality" .row &%ge%& "test first greater than or equal to second" .row &%gt%& "test first greater than second" .row &%le%& "test first less than or equal to second" .row &%lt%& "test first less than second" .endtable For example: .code 10 10 eq .endd leaves the value 1 (&'true'&) on the stack, and .code 25 4 lt .endd yields 0 (&'false'&). The conditional operators can be used to test these values. .section "Bitwise and logical operators" .index "drawing facility" "logical operators" .index "drawing facility" "bitwise operators" .index "logical operators for &%draw%&" .index "bitwise operators for &%draw%&" The following operators perform bitwise operations on the integer parts of the top two values on the stack. The result always has a zero fractional part. .itable none 0 0 2 30 left 300 left .row &%and%& "bitwise and" .row &%or%& "bitwise or" .row &%xor%& "bitwise exclusive or" .endtable The &%not%& operator performs bitwise negation on the top number on the stack. These bitwise operators act as logical operators when applied to the results of the comparison operators. .code 5 6 ne 13 7 gt and .endd This example leaves 1 (&'true'&) on the stack, because 5 is not equal to 6 and 13 is greater than 7. .section "Stack manipulation operators" .index "drawing facility" "stack manipulation" There are several operators that can be used to manipulate items on the stack. .ilist &%copy%&: Remove the top item, which must be a number, then duplicate the sequence of that number of items. For example, if the stack contained the numbers 13, 23, and 53, after &%2 copy%& it would contain 13, 23, 53, 23, 53. .next &%dup%&: Duplicate the item on the top of the stack. This has the same effect as &%copy%& with an argument of 1. .next &%exch%&: Exchange the two top items on the stack. .next &%pop%&: Remove the topmost item on the stack, and discard it. .next &%roll%&: This operator performs a circular shift of items on the stack. When it is encountered, there must be three or more items on the stack. The topmost item on the stack is a count of the number of positions by which items are to be shifted. The second topmost item is the number of items involved, and there must be at least this many additional items on the stack. PMW first removes the two control numbers from the stack. Then it shifts the given number of items by the given amount. If the amount of shift is positive, each shift consists of removing an item from the top of the stack, and inserting it below the last item involved in this operation. This is an `upwards' roll of the stack. If the amount of shift is negative, each shift consists of removing the lowest item involved in the operation, and pushing it onto the top of the stack. This is a `downwards' roll of the stack. .endlist Here is an example of the use of &%roll%&. .code 33 45 67 91 3 1 roll .endd When &%roll%& is obeyed, the three items 45, 67, 91 are rolled upwards one place and the result is: .figure fig04 .section "Coordinate systems" .index "drawing facility" "coordinate systems" .index "drawing facility" "coordinate origin" The coordinate system used in PMW drawings is a traditional X-Y system, with all distances specified in points. The initial position of the origin of the coordinates depends on the item with which the drawing is associated. PMW drawings can be associated with four kinds of item: .ilist A drawing can be associated with a note (or chord) on a stave, or with the end of a bar if no notes follow the &%[draw]%& directive. The vertical position of the origin is on the bottom line of the stave if the stave has 3 or more lines. For staves with zero, one, or two lines, the vertical position of the drawing origin is where the bottom line of a 5-line stave would be. The horizontal position of the origin is either at the left-hand edge of the associated note, or at the bar line if there is no following note. The left-hand edge of a note or chord with a downwards pointing stem is the edge of the stem. This applies even when a chord has some noteheads moved to the other side of the stem. For breves and semibreves the behaviour is as if there were a stem. Noteheads are 6 points wide, so the horizontal coordinate of the centre of a note is 3. That is where the 3s in the triangle example come from. .next A drawing can be associated with a heading or footing. The origin of the coordinate system is at the left-hand side, at the level of the next heading or footing line. See the &%heading%& directive (&R; &<>&) for more details. .next A drawing can be associated with a gap in a line that is defined by the &%[line]%& directive, or with a slur. The origin of the coordinate system is in the middle of the gap. For details see the &%[linegap]%& (&R; &<>&) and &%[slurgap]%& (&R; &<>&) directives. .next A drawing can be associated with the text that is printed at the start of a stave. The origin of the coordinate system is at the left-hand side, at the level of the bottom line of the stave. For details, see the &%[stave]%& directive (&R; &<>&). .endlist .section "Moving the origin" .index "drawing facility" "moving the origin" There is an operator called &%translate%& that moves the origin of the coordinate system to the point specified by the two numbers on the top of the stack, relative to the old origin. .section "Graphic operators" .index "drawing facility" "graphic operators" .index "graphic operators for &%draw%&" PMW follows the PostScript model in the way drawn marks on the page are specified. There are operators that set up a description of a &'path'& on the page, and this outline is then either filled in completely, using the &%fill%& operator, or a line of given thickness is drawn along the path, using the &%setlinewidth%& and &%stroke%& operators. A path normally consists of several segments, which may be lines or curves. There can be gaps in the path. A single path can consist of a number of disconnected segments. A path definition must always start with a &%moveto%& operation, in order to establish an initial current point. Thereafter, a mixture of moving and drawing operators may be specified. Distances are, as always, expressed in points. They are subject to the overall magnification in the same way as other dimensions. They are not, however, subject to the relative magnification of individual staves, but there is a variable that contains the magnification of the current stave (when the drawing is associated with a stave), so that adjustments can be made explicitly when required. Whenever a pair of coordinates is required to be on the stack, it is always the x-coordinate that must be pushed first, and the y-coordinate second. The graphic operators are as follows: .ilist &%currentgray%&: Push onto the stack the current value of the gray setting &-- see &%setgray%& below. .next &%currentlinewidth%&: Push onto the stack the current value of the line width setting &-- see &%setlinewidth%& below. .next &%currentpoint%&: Push the coordinates of the current point onto the stack. The x-coordinate is pushed first. .next &%curveto%&: This operator draws a Bézier curve. There must be six numbers on the stack when it is called; they are treated as three pairs of coordinates. The final pair are the end point of the curve, which starts from the existing current point. The two middle pairs of coordinates give the Bézier curve control points. If you are not familiar with Bézier curves, you will need to discover a bit about them before you can fully understand this operator. They are described in many books on computer graphics. Very roughly, the curve starts out from its starting point towards the first control point, and ends up at the finishing point coming from the direction of the second control point. The greater the distance of the control points from the end points, the more the curve goes towards the control points before turning back to the end point. It does not, however, pass through the control points. .next &%fill%&: This operator causes the interior of the previously defined path to be completely filled in. The default is to fill in black, but this can be changed by the &%setgray%& operator. After filling, the path is deleted, and a new one can then be started. .next &%fillretain%&: This command behaves like &%fill%&, except that the path is retained and can be used again. See &%setgray%& below for an example. .next &%lineto%&: The path is extended by a line segment from the current point to the absolute position given by the two top items on the stack. .next &%moveto%&: If there is no current path, this must be the first graphic operator encountered. It establishes the initial current point. Otherwise, the path is extended by a move (invisible) segment from the current point to the absolute position given by the two top items on the stack. .next &%rcurveto%&: This operator acts like &%curveto%&, except that the three pairs of coordinates are taken as relative to the existing current point. .next &%rlineto%&: This operator acts like &%lineto%&, except that the coordinates are taken as relative to the existing current point. .next &%rmoveto%&: This operator acts like &%moveto%&, except that the coordinates are taken as relative to the existing current point. .next &%setgray%&: This operator is used to specify a gray shade for drawn items resulting from the use of &%stroke%& or &%fill%&. It does not apply to text. A single number between 0 (black) and 1 (white) is taken from the stack. For example: .code 0.5 setgray .endd Filling a path is analagous to using opaque paint, so &%setgray%& can be used to fill an area with white and thereby `rub out' any previous marks on the page. For example, to blank out an area with white and draw a black line round its edge one could define the path and then use: .code 1 setgray fillretain 0 setgray stroke .endd If you do something like this on a stave of music, you should invoke the drawing with &%[overdraw]%& rather than &%[draw]%& because that ensures that it is output after everything else on the stave. .next &%setlinewidth%&: A single number is required on the stack to specify the width of lines to be drawn by the &%stroke%& operator. The default line width is 0.5 points. The value persists from one call of &%[draw]%& to the next. .next &%show%&: This operator prints a text string (&R; &<>&). .next &%stroke%&: This operator causes a line to be drawn along the previously defined path, omitting any segments that were defined with &%moveto%& or &%rmoveto%&. Afterwards, the path is deleted, and a new one can be defined. .endlist .section "System variables" .index "drawing facility" "system variables" .index "variables for &%draw%&" In order to set up drawings that are positioned relative to the following note or chord (for example, to draw a box around it) it is necessary to have access to some data about it. There are a number of &'system variables'& that provide this, as well as other variable data values. When encountered in a drawing description, the name of a variable has the effect of pushing the relevant data value onto the stack. The system variables that relate to notes should be used only when the drawing function is called immediately before a note, and those that relate to staves and systems should not be used in drawings that are called as headings or footings. .ilist &%accleft%&: This variable contains distance from the left-hand edge of the leftmost notehead to the left-hand edge of the accidental that is furthest to the left, as a positive number. If there are no accidentals, the value is zero. .next &%barnumber%&: When used in a bar, this variable contains the bar number; when used at the start of a system, it contains the number of the first bar in the system. If used in headings or footings, it contains zero. .next &%gaptype%&: This variable contains +1 or -1 when a drawing function is being obeyed as part of a &%[linegap]%& directive; the value is positive for a line above the stave, and negative for a line below the stave. Otherwise the variable contains zero. .next &%headbottom%&: This variable contains the y-coordinate of the bottom of the notehead; if the drawing function precedes a chord, this refers to the lowest notehead. .next &%headleft%&: For a chord with a downwards stem in which there is a notehead on the `wrong' side of the stem, this variable contains the width of this notehead as a positive number; otherwise its value is zero. .next &%headright%&: This variable contains the width of the notehead, except that, for a chord with an upwards pointing stem in which there is a notehead on the `wrong' side of the stem, the value is twice the notehead width. .next &%headtop%&: This variable contains the y-coordinate of the top of the notehead; if the drawing function precedes a chord, this refers to the highest notehead. .next &%leftbarx%&: This variable contains the x-coordinate of the previous bar line, except in the first bar of a system, in which case it is the x-coordinate of a point slightly to the left of the first note in the bar. .next &%linebottom%&: This variable contains the value 2 (scaled to the stave size) if the bottom of the lowest notehead is on a stave (or ledger) line (that is, the notehead itself is positioned in a space); otherwise its value is zero. .next &%linegapx%& and &%linegapy%&: When a drawing is being obeyed as part of the &%[linegap]%& directive, these variables contain the coordinates of the start of the next part of the line. Otherwise they contain zero. .next &%linelength%&: This variable contains the current line length, as set by the &%linelength%& heading directive, but scaled to the current magnification. For example, with a magnification of 2 and the default pagelength of 480, the value in &%linelength%& is 240. .next &%linetop%&: This variable contains the value 2 (scaled to the stave size) if the top of the highest notehead is on a stave (or ledger) line (that is, the notehead itself is positioned in a space); otherwise its value is zero. .next &%magnification%&: This variable contains the value of the overall magnification. If used on a stave, it does not include the relative magnification (see &%stavesize%& below). .next &%origin%&: This variable is equivalent to &%originx%&. It is provided for compatibility with previous versions of PMW when only the x-coordinate origin was available. It should not be used in new input files. .next &%originx%& and &%originy%&: These variables are for use when more than one note position is participating in a drawing. They contain the &'absolute'& x-coordinate and y-coordinate of the local coordinate system's origin, respectively. This makes it possible to leave absolute coordinate values in user variables or on the stack at the end of a call to &%[draw]%&. A subsequent &%[draw]%& program can relate these values to its own local coordinate system by its own use of &%originx%& and/or &%originy%&. An example of this is given below (&R; &<>&). .next &%pagelength%&: This variable contains the current page length, as set by the &%pagelength%& heading directive, but scaled to the current magnification. For example, with a magnification of 2 and the default page length of 720, the value in &%pagelength%& is 360. .next &%pagenumber%&: This variable contains the current page number. .next &%stavesize%&: This variable contains the relative magnification for the current stave, as specified by the &%stavesize%& heading directive. .next &%stavespace%&: This variable contains the stave spacing for the current stave, that is, the vertical distance between this stave and the next one. .next &%stavestart%&: This variable contains the x-coordinate of the left-hand end of the current system, relative to the current origin. .next &%stembottom%&: This variable contains the y-coordinate of the bottom of the stem of the note or chord. If there is no stem, or if the stem points upwards, this is the same value as &%headbottom%&. .next &%stemtop%&: This variable contains the y-coordinate of the top of the stem of the note or chord. If there is no stem, or if the stem points downwards, this is the same value as &%headtop%&. .next &%systemdepth%&: This variable contains the distance from the bottom of the top stave of the current system to the bottom of the bottom stave. .next &%topleft%&: This variable contains the coordinates of the position at which PMW starts writing on a page, relative to the current origin. This is normally one inch down from the top of the paper, and indented according to the sheet width and line length. This variable can be used with &%translate%& to move the origin to a fixed point .index "crop marks" on the page in order to draw such things as crop marks. .endlist .section "User variables" SECTuservar .index "drawing facility" "user variables" .index "user variables in drawings" .index "variables for &%draw%&" Up to 20 user variables are available for use in drawing functions. These variables are &'global'& in that they are shared between all drawing functions. When you want to pass values from one drawing function call to another, using a variable is often more convenient than leaving data on the stack. The names of the variables are chosen by the user, but they must not be the same as any of the built-in variables or operators. Once a variable has been defined, its value is retrieved by quoting its name; this causes the value to be copied onto the stack. To set a value into a variable, the following construction is used: .display &`/`&<&'name'&> <&'value'&> &`def`& .endd The appearance of &`/`& indicates that the name of the variable is required, rather than its value. For example, to put the value 10 into a variable called &`abc`&: .code /abc 10 def .endd The value that is set in a variable may be changed as often as necessary. A variable's name must appear in a definition (preceded by a slash) earlier in the input than its first use as a reference. If a variable is set in one drawing function and used in another, the definition of the one in which it is set must come first in the PMW input file. This is not always possible. For example, when the defining function calls the other function, the called function must come first. In such a case, a dummy drawing function that is defined but never obeyed can be used for the sole purpose of defining user variable names. .section "Text strings in drawings" SECTtextindrawing .index "drawing facility" "text strings" Text strings can be printed from within the drawing mechanism. The appearance of a string in quotes inside a drawing definition or as an argument to a drawing function causes an item representing the string to be pushed onto the stack. Such an item can be copied or moved around the stack in the normal way, but can be processed only by special string operators. The most important of these is the &%show%& operator, which causes the string to be printed at the current point: .code draw string 0 -12 moveto "text" show enddraw .endd The default font is roman, but the string may contain font changes and other escape sequences, just like any other string. It may be followed by one or more of the following options: .itable none 0 0 2 60 left 300 left .row &`/box`& "enclose the string in a rectangular box" .row &`/c`& "centre the string at the current point" .row &`/d`&<&'n'&> "move the string down by <&'n'&> points" .row &`/e`& "align the end of the string with the current point" .row &`/l`&<&'n'&> "move the string left by <&'n'&> points" .row &`/r`&<&'n'&> "move the string right by <&'n'&> points" .row &`/ring`& "enclose the string in a ring (circular if a short string)" .row &`/rot`&<&'n'&> "rotate the string by <&'n'&> degrees (&R; &<>&)" .row &`/s`&<&'n'&> "print the string at size <&'n'&> (&R; &<>&)" .row &`/u`&<&'n'&> "move the string up by <&'n'&> points" .endtable The &`/u`&, &`/d`&, &`/l`&, and &`/r`& options are not particularly useful on strings that are part of drawing definitions, because you can position such strings with &%moveto%& or &%rmoveto%&. However, when a string is an argument to a drawing it is sometimes helpful to be able to modify the position that is defined within the drawing. These moving options are ignored when the string is used by some operator other than &%show%& (for example, &%stringwidth%&). When the string is centred or end-aligned, the printing of the string does not change the current point; in the default, left-aligned case, the current point is moved to the end of the string. A path may be begun before printing a string and continued afterwards. As an example of the use of the text facility, consider music printed in the sixteenth and seventeenth century style where, instead of using ties that cross bar lines, augmentation dots without notes are printed on the far side of the bar lines. .code draw dot 0 headbottom 2 linebottom sub add moveto "\mf\?" show enddraw *define bd() [notes off draw dot] &&1-; [notes on] time 2/4 [stave 1 treble 1] ra | &bd(a) b-g | .endd .music "music34" 32 8,-18 In this example, the macro &%bd%& (`bar dot') is defined, in order to shorten the input for each dot. Its argument is the note pitch for which a dot is required. The `tied' note is not actually printed because of the use of &%[notes off]%& but its pitch is available to the drawing function, which uses it to print a dot character from the music font at the appropriate level on the stave (a question mark in the music font corresponds to the horizontal dot character). The input could be shortened even further by including the previous note and the bar line inside the macro expansion. .section "String operators" .index "drawing facility" "string operators" As well as &%show%&, there are three other operators that act on strings. .ilist The &%cvs%& operator converts a number to a string, typically so that it can be printed. There must be two arguments on the stack: the number to be converted, and an empty string that provides a place to store the converted number. The string may be followed by any of the usual string options. When &%cvs%& is obeyed, the two arguments are removed from the stack and a string containing a representation of the number is pushed back. For example, to print the current barnumber at text size 2, centred at the current position: .code barnumber ""/c/s2 cvs show .endd .next .index "drawing facility" "string width" The &%stringwidth%& operator replaces a string on the stack with the horizontal and vertical distances by which the current point would move if the string were printed. Note that the second value is &'not'& the height of the string, and in most cases is zero. There is an example of the use of &%stringwidth%& in the section on looping operators below (&R; &<>&). .next .index "drawing facility" "font size" The &%fontsize%& operator replaces a string on the stack with the font size associated with it. .endlist .section "Drawing subroutines" .index "drawing facility" "subroutines" One drawing can be called as a subroutine from within another by means of the &%draw%& operator. The drawing stack and the current graphics state (current position and current path) are passed over to the called drawing. For example, to draw two crosses below the stave on either side of a note's position: .code draw cross -4 0 rmoveto 8 0 rlineto -4 -4 rmoveto 0 8 rlineto stroke enddraw draw crosses -4 -6 moveto draw cross 10 -6 moveto draw cross enddraw [stave 1 treble 1] [draw crosses] gabc' | .endd .music "music35" 32 4,-16 The subroutine must be defined before the definition of any drawings in which it is called. Subroutines cannot be called recursively, that is, a drawing cannot call itself, and a multi-drawing recursive loop is not possible because a drawing must be defined before it is called. .section "Blocks" .index "drawing facility" "blocks" A &'block'& is a portion of a drawing's coding enclosed in curly brackets. It is used by the conditional and looping operators. When a block is encountered during drawing, its contents are not obeyed immediately. Instead, a reference to them is placed on the stack, for use by a subsequent operator. Blocks can be nested inside each other. .section "Conditional operators" .index "drawing facility" "conditional operators" The operator &%if%& is used to obey a portion of the drawing conditionally. It uses the top two items on the stack. The first must be a number, and the second a reference to a block. Both are removed from the stack, and if the value of the number is zero, nothing else happens. Otherwise, the contents of the block are obeyed. For example, to print the bar number if it is greater than 5: .code barnumber 5 gt { barnumber "" cvs show } if .endd The bar number and the number 5 are pushed onto the stack; the comparison operator &%gt%& replaces them with 1 if the barnumber is greater than 5, or 0 otherwise. Then a reference to the block is pushed onto the stack, and the &%if%& operator causes it to be obeyed if the number is non-zero. The &%ifelse%& operator is similar to &%if%&, except that it requires two blocks on the stack. The first is obeyed if the condition is true, the second if it is false. .section "Looping operators" SECTloopop .index "drawing facility" "looping operators" The &%repeat%& operator expects a number and a block on the stack. It removes them, and then obeys the block that number of times. If the number has a fractional part, it is ignored. For example, to print a row of asterisks from the start of the bar to just before the current note or bar line, the following function could be used (adding 0.5 ensures that the count is rounded to the nearest integer): .code draw astline leftbarx -15 moveto leftbarx neg "*" stringwidth pop div 0.5 add { "*" show } repeat enddraw [stave 1 bass 0] gddg | de [draw astline] fg | .endd .music "music36" 36 4,-14 The &%loop%& operator expects only a block on the stack, and it obeys it repeatedly until the &%exit%& operator is encountered. To guard against accidents, a limit of 1,000 times round the loop is imposed. Another way of printing the asterisks is: .code draw astline leftbarx -15 moveto { "*" show currentpoint pop 0 ge {exit} if } loop enddraw .endd The &%exit%& operator can also be used to stop a &%repeat%& loop prematurely. If encountered outside a loop, it causes an exit from the current drawing function. .section "Drawing in headings and footings" Drawing functions can be obeyed in headings and footings. For example, crop marks, horizontal rules, and borders on title pages can be drawn by this method. For details, see the description of the &%heading%& directive (&R; &<>&). .section "Drawing at stave starts" Drawing functions can be obeyed at the start of a stave, as well as, or instead of printing text. For details see the description of the &%[stave]%& directive (&R; &<>&). .section "Testing drawing code" .index "drawing facility" "testing" .index "testing &%draw%& code" When a drawing does not turn out the way you expect it to, it can sometimes be difficult to track down exactly what is wrong. Being able to examine the contents of the stack at particular points is sometimes helpful. The operator &%pstack%& causes the contents of the stack to be written to the standard error stream. .section "Example of use of system variables" .index "drawing facility" "examples" This example illustrates the use of the variables that contain the dimensions of the note that follows the &%[draw]%& directive: .code flow draw box -2 headleft sub accleft sub stembottom 1.3 sub moveto stemtop stembottom sub 2.6 add dup 0 exch rlineto headleft headright add accleft add 4 add dup 0 rlineto exch 0 exch neg rlineto neg 0 rlineto stroke enddraw draw bracket -2 headleft sub accleft sub headbottom linebottom add moveto -2 0 rlineto -4 headleft sub accleft sub headtop linetop sub lineto 2 0 rlineto stroke enddraw [stave 1 treble 1] [draw box] $a [draw box] f' [draw box] (fg) [space 10] [draw box] (f'g') [space 6] [draw bracket] (#fc') [draw bracket] (g#d') [endstave] .endd .music "music20" 40 4,-12 The definitions look a bit daunting at first sight, but are not difficult to understand when broken down into their constituent parts. If you find the explanation hard to follow, try using pencil and paper to keep track of the values as they are pushed onto and popped off the stack. This is also a good way of developing your own drawings. We consider first the `box' drawing, which encloses the following note or chord in a rectangular box. The first line establishes the start of the drawing path at the bottom left-hand corner of the box: .code -2 headleft sub accleft sub stembottom 1.3 sub moveto .endd It starts by pushing the value -2 onto the stack, then subtracting from it the &%headleft%& and &%accleft%& variables. This gives a value for the x-coordinate that is two points to the left of the leftmost accidental, taking into account any notehead that is positioned to the left of the stem. The y-coordinate is computed as the value of the &%stembottom%& variable less 1.3 points. The &%moveto%& operator then establishes the start of the drawing path, using the two coordinate values that are on the stack, and leaving the stack empty. .code stemtop stembottom sub 2.6 add dup 0 exch rlineto .endd The second line of the drawing instructions computes the length of the vertical sides of the rectangle. It does this by subtracting the value of &%stembottom%& from the value of &%stemtop%& and then adding 2.6 to the result. This is to allow 1.3 points of clear space at the top and the bottom. As this value is going to be needed twice, once for each side, the &%dup%& operator is called to duplicate it. To draw the left-hand vertical, a relative x-coordinate of zero is pushed on the stack, and then &%exch%& is used to get the coordinates in the correct order on the stack before calling &%rlineto%&. The current point is now at the top left-hand corner of the rectangle, and the stack contains the duplicated value of the vertical sides' length. .code headleft headright add accleft add 4 add dup 0 rlineto exch .endd The third line does a computation for the rectangle's width, which is the sum of the contents of the &%headleft%&, &%headright%&, and &%accleft%& variables, plus four (allowing two points clear on either side). Once again, &%dup%& is used to leave a copy of the value on the stack, and this time a zero relative y-coordinate is used, in order to draw a horizontal line. The two remembered lengths that are left on the stack are now exchanged, so that the vertical length becomes the topmost value. .code 0 exch neg rlineto neg 0 rlineto stroke .endd The remaining lines use these stacked values to complete the rectangle. The first line pushes a zero relative x-coordinate, ensures that the order on the stack is correct by means of &%exch%& (bringing the vertical side length to the top), and negates the y-coordinate so that the line is drawn downwards. The second line negates the one remaining value on the stack, which is the width of the rectangle, pushes a zero relative y-coordinate, and draws the final horizontal line to the left. Finally, &%stroke%& causes a line to be drawn along the path which has just been defined. The `bracket' drawing draws a left-hand bracket whose size is adjusted for the notes of a chord, and which also takes into account the position of the noteheads on stave lines or in spaces. .code -2 headleft sub accleft sub headbottom linebottom add moveto -2 0 rlineto -4 headleft sub accleft sub headtop linetop sub lineto 2 0 rlineto stroke .endd The first line computes the position of the start of the path, which is the right-hand end of the bottom `jog'. The x-coordinate is 2 points to the left of the left-most accidental, and the y-coordinate is the bottom of the lowest notehead if this position is not on a stave line (in which case &%linebottom%& is zero) or two points above if it is. The second line draws the lower horizontal `jog' to the left as a relative line. The third line computes the absolute coordinates of the top left-hand corner, taking into account whether the top notehead is on a line or not. An alternative to this would have been to save the initial x-coordinate on the stack instead of recomputing it from scratch. Finally, the top `jog' is drawn to the right, and the path is stroked. .section "Example of inter-note drawing" SECTexinterdraw This example illustrates the use of the &%originx%& variable for connecting up two different notes: .code draw save headbottom originx enddraw draw connect originx sub 3 add dup 3 add 2 div 3 1 roll exch 2 sub moveto -12 lineto 3 headbottom 2 sub lineto stroke enddraw [stave 1 treble 1] b [draw save] e c'-g-a-b- [draw connect] a g | [endstave] .endd .music "music21" 40 4,-12 The `save' drawing does not actually do any drawing at all. It just saves on the stack the y-coordinate of the bottom of the next note, and the absolute x-coordinate of its left-hand edge. Using the stack to pass data between two drawing functions is a simple method that works well when both functions are called in the same bar on the same stave. An alternative method is to use user variables (&R; &<>&); this must be used if the drawing functions appear on several different staves and the related functions are not called in the same bar. The first thing the `connect' drawing program does is to push &'its'& x-origin onto the stack, and subtract it from the saved value. The result of this computation is the x-coordinate of the first note (the one immediately following &%[draw save]%&), relative to the current local coordinate system, which is, of course, based on the note following &%[draw connect]%&. A value of 3 is added to this, giving the horizontal position of the middle of the first note. The &%dup%& operator saves a copy of this value on the stack for later use, and another 3 is added to the top value, giving the coordinate of the right-hand edge of the first note. The next bit of computation finds the mid-point between the two notes. The left-hand edge of the second note has an x-coordinate of zero in the local coordinate system, so dividing the coordinate of the right-hand edge of the first note by 2 gives us the mid-point. There are now three values on the stack: .display rm the x-coordinate of the halfway point the x-coordinate of the mid-point of the first note the y-coordinate of the bottom of the first note .endd The operation &%3 1 roll%& changes this to: .display rm the x-coordinate of the mid-point of the first note the y-coordinate of the bottom of the first note the x-coordinate of the halfway point .endd The subsequent &%exch%& changes it to: .display rm the y-coordinate of the bottom of the first note the x-coordinate of the mid-point of the first note the x-coordinate of the halfway point .endd A value of 2 is subtracted from the y-coordinate of the first note, and the &%moveto%& operator is called to start the drawing path, which therefore begins two points below the first note, and halfway along its notehead. Now only the x-coordinate of the halfway point between the two notes remains on the stack. The operation &%-12 lineto%& draws a line from the initial position to the halfway point, twelve points below the bottom of the stave. The stack is now empty. The final lines of the drawing program continue the path to a position two points below the end note at the mid-point of its notehead, and then cause it to be stroked. .index-to I03 . //////////////////////////////////////////////////////////////////////////// . //////////////////////////////////////////////////////////////////////////// .tocsubsectoff .chapter "Heading directives" CHAPheaddir .index-from I04 "directives" "heading" .index-from I05 "heading" "directives" A heading section in a PMW file contains &'heading directives'&. Each starts with a keyword, and sometimes the keyword is followed by numerical or other data. It is usual to start a new line for each heading directive, but this is not a requirement. A heading section is terminated by an opening square bracket character that is not in a text string or in a comment (following an @). None of the heading information is mandatory because there are default values for all the parameters; a heading section may be completely empty. Most of the heading directives may appear at the start of a new movement as well as at the start of the input; a few may only appear at the very start of the file, that is, only in the first movement (&R; &<>&). In general, heading directives may appear in any order, but there are some fairly obvious cases where the order matters. For example, a multiplicative change to the note spacing must follow a setting of absolute values, the definition of a drawing or macro must precede its use, and a stave selection must precede any tests based on which staves are selected. .section "Alphabetical list of heading directives" .index "number lists" The heading directives are now described in alphabetical order. A number of heading directives take a list of numbers as data. In all cases, such numbers can be separated by commas or spaces, or commas and spaces, except when such a list is continued onto another input line, when the final number on the first line must be terminated by a comma, to indicate that more data follows. The values set by most directives persist from movement to movement. When this is not the case, it is noted in the description. .subsection "Accadjusts" .index "&%accadjusts%&" .index "accidentals" "spacing" .index "spacing" "accidentals" Accidentals are normally printed about four points to the left of the notes to which they apply (the exact distance depends on the accidental). The &%accadjusts%& directive can be used to vary this positioning, on a note-type basis. It does not affect the spacing of the notes themselves; it just moves the accidentals right or left. The directive is followed by up to eight numbers, which apply to each of the eight note types, starting with breves. The numbers can be positive (move to the right, that is, nearer the note) or negative (move to the left, that is, further from the note). .code accadjusts 1.8 .endd This example has the effect of moving any accidental that precedes a breve 1.8 points to the right. .subsection "Accspacing" .index "&%accspacing%&" .index "accidentals" "spacing" The &%accspacing%& directive must be followed by five numbers. These give the printing widths of the accidental characters in the order double sharp, flat, double flat, natural, and sharp. The default values are equivalent to: .code accspacing 5.25 4.5 8.0 4.25 5.0 .endd It should not be necessary to change these widths unless a non-standard music font is being used. .subsection "Bar" .index "&%bar%&" .index "bar numbers" "starting value" .index "movement" "continuing bar numbers" This directive must be followed by a number; it causes the numbering of bars to begin from a number other than one. This facility is useful for printing fragments of pieces, or continuing a bar number sequence through several movements. .subsection "Barcount" .index "&%barcount%&" .index "bars" "maximum number of" .index "maximum number of bars" By default, PMW allocates its internal tables in such a way as to make room for 500 bars of music per stave per movement. If the music in any movement is longer than this, the &%barcount%& directive must be used to increase the size of these tables. Its argument is the maximum number of bars in the current and subsequent movements. .subsection "Barlinesize" .index "&%barlinesize%&" .index "bar lines" "for different sized staves" When a system contains staves of differing sizes (as set by &%stavesizes%&) it is usually the case that bar lines are split where the stave size changes, so the use of barlines of differing thicknesses for the different staves looks reasonable. To cope with the rare case when barlines must cover staves of different sizes, the &%barlinesize%& directive exists, because PMW cannot decide for itself what the size should be &-- the default use of different sizes leads to jagged joins. &%Barlinesize%& must be followed by a single number, which specifies the relative size of bar line to be used throughout. A value of zero requests the default action of using different sizes. .code barlinesize 1 .endd This example requests that full size barlines be used throughout; they will look somewhat fat on any staves whose size is less than 1, and thin on any whose size is greater than 1. .subsection "Barlinespace" .index "&%barlinespace%&" .index "bar lines" "space after" .index "bar lines" "invisible, no space after" .index "invisible items" "bar lines, space after" .index "spacing" "bar lines" This directive gives control over the amount of space left after bar lines. It must be followed by a single dimension, which may be preceded by a plus or a minus sign, indicating a change to the existing value. If neither of these is present, the number specifies an absolute value. The default value can be reset in a subsequent movement by following the directive with an asterisk instead of a number. The default is related to the space following a minim, with a minimum of 3 points. However, if an explicit space is specified, no minimum is enforced. A value of zero may be given &-- this is useful when printing a piece with no bar lines, where `invisible bar lines' can be used to tell PMW where lines can be broken, but no space must be inserted. .subsection "Barlinestyle" SUBSECTbarlinestyle .index "&%barlinestyle%&" .index "bar lines" "style" .index "bar lines" "dashed" .index "bar lines" "between staves only" This directive specifies the way in which bar lines are to be printed on all staves. It takes a numerical argument, with a value in the range 0&--5. There is also a &%[barlinestyle]%& stave directive that sets the style separately for an individual stave. The styles are as follows: .ilist Style 0 is the normal style, using solid bar lines. .next Style 1 specifies dashed bar lines. .next Styles 2 and 3 cause solid or dashed bar lines (respectively) to be drawn &'between'& staves only; if the bar line is broken at a stave where either of these styles applies, nothing at all is printed. These styles work only when the stave spacing is 32 points or greater (which is normally the case). .next Style 4 causes a half-height bar line to be printed in the middle of the stave. It implies a bar line break at any stave where it is used. .next Style 5 causes two very short stub lines to be drawn, above and below the stave. It implies a bar line break at any stave where it is used. .endlist Specifying a double bar by inputting &`||`& overrides the stave or movement bar line style, which can also be overridden by inputting a digit immediately after the vertical bar character, to force a particular style. The following example shows the six available styles: .music "music33" 64 0,-20 centre Note that the &%breakbarlines%& directive can be used to specify breaks in all bar lines at particular staves when style 0 or 1 is used, and an individual bar line can be broken by using &%[breakbarline]%&. .subsection "Barnumberlevel" .index "&%barnumberlevel%&" .index "bar numbers" "level adjustment" This directive adjusts the level of printed bar numbers. It must be followed by a plus or a minus sign and a dimension. .code barnumberlevel +4 .endd This example prints all bar numbers four points higher up the page than they would otherwise have been. .subsection "Barnumbers" SUBSECTheadbarno .index "&%barnumbers%&" .index "bar numbers" "requesting" .index "numbering bars" This directive specifies that bars are to be automatically numbered. &*Note*&: An incomplete bar at the start of a movement is counted for the purpose of bar numbering, unless it contains the &%[nocount]%& stave directive (see section &<>& for an example). Automatic bar numbering can be overridden for individual bars by means of the stave directive &%[barnumber]%& (&R; &<>&). Several different numbering options are available, the general form of &%barnumbers%& being as follows: .display &`barnumbers`& <&'enclosure'&> <&'interval'&> <&'fontsize'&> <&'fontname'&> .endd The first argument, which is optional, must be one of the words `boxed' or `ringed'. These specify that barnumbers are to printed inside rectangular boxes, or roughly circular rings, respectively. If neither word is given, the numbers are printed without any special identification. The second argument must be present, and is either the word `line' or a number. If `line' is given, it causes a bar number to be printed over the first bar of every line of music except the first line of each movement. If a number is given, it specifies the interval between bar numbers. .code barnumbers boxed 10 .endd This example causes a bar number, enclosed in a box, to be printed every 10 bars. The third argument is optional; it specifies the size of the font in which the numbers are printed. The default size is 10 points. .code barnumbers line 8.5 .endd This example numbers the bars at the start of each system, using a font of size 8.5 points. The final argument, which is optional, specifies the font (typeface) for printing the bar numbers. The default is roman. .code barnumbers 5 9/1.1 italic .endd This example prints bar numbers every 5 bars in a 9-point italic font, horizontally stretched by 1.1. .subsection "Beamendrests" .index "&%beamendrests%&" This directive, which has no arguments, requests PMW to include rests at the ends of beams within the beams (&R; &<>&). .subsection "Beamflaglength" .index "&%beamflaglength%&" The length of short, straight note flags that are used with beams (for example, for a semiquaver beamed to a dotted quaver) can be set by this directive. The default is 5 points; it scales with the relative stave magnification. .subsection "Beamthickness" .index "&%beamthickness%&" .index "thickness of beams" This directive takes a single dimension as its argument; it sets the thickness of the lines drawn for beaming notes together. The default thickness is 1.8 points. On some printers and at some magnifications a better effect can be obtained by changing the thickness (normally by making it smaller). The thickness should not be set greater than 2.5 points, as otherwise beams will not be correctly printed. .subsection "Bottommargin and topmargin" SUBSECTbottommargin .index "&%bottommargin%&" .index "&%topmargin%&" .index "space" "at page top" .index "space" "at page bottom" The &%bottommargin%& and &%topmargin%& directives make it possible to reserve white space at the top or bottom of a page, within the overall page length, provided that there is room to do this after the systems have been fitted onto the page. These directives give some additional control over the vertical justification action described in section &<>&, once the pagination of a piece is determined. In each case, a single dimension is required. .code topmargin 20 bottommargin 5 .endd The values can be changed for an individual page by means of the &%[topmargin]%& and &%[bottommargin]%& directives. The default values for the margins are zero for the bottom margin and 10 points for the top margin. The use made of these values depends on the justification mode for the page. The phrase `the contents of the page' below excludes any text that is defined as a footing or as a page heading, but includes start-of-piece headings. .ilist If the justify mode is `top' only, the contents of the page are moved down by the top margin, provided there is enough room on the page to do this. If not, the contents of the page are moved down as far as possible. The bottom margin value is ignored. .next If the justify mode is `bottom' only, the contents of the page are moved up by the bottom margin, provided there is enough room on the page to do this. If not, the contents of the page are moved up as far as possible. The top margin value is ignored. .next If the justify mode is both `top' and `bottom', the amount of space available for spreading the systems vertically is decreased by the sum of the top margin and the bottom margin, and the contents of the page are moved down by the top margin, provided there is enough spreading space available. If there is insufficient spreading space, it is divided &'pro rata'& between the top margin and the bottom margin, the systems are not spread at all, and the contents of the page are moved down by the adjusted top margin value. .next If the justify mode is neither `top' nor `bottom', both values are ignored. .endlist The effect of using these directives is to allow more of the page to be used when necessary, but to keep the systems nearer the centre of the page when there is a lot of space left over. .subsection "Brace and Bracket" .index "&%bracket%&" .index "&%brace%&" .index "joining signs" .index "staves" "joining signs" These two directives specify which staves in the system are to be joined by brackets and/or braces. A bracket is traditionally used for groups of independent instruments or voices, whereas a brace is reserved for pairs of staves that apply to a single instrument, frequently a keyboard. (See also the &%thinbracket%& directive, which specifies another kind of bracket.) Each of these directives must be followed by a list of pairs of stave numbers, the members of each pair being separated by a minus sign, with the pairs themselves separated by spaces and/or commas. .code bracket 1-4,5-7 brace 8-9 .endd This example specifies that staves 1&--4 and 5&--7 are to be joined by brackets, and staves 8 and 9 are to be joined by a brace. In addition to these marks, the entire system is by default joined by a single vertical line at the left-hand side. (See the &%join%& and &%joindotted%& directives for ways of changing this.) The default action of PMW is to join all the staves with a single bracket. If no brackets of any kind are required, it is necessary to suppress this by including a &%bracket%& directive with no following list. If only a single stave is selected for printing, for example, when a part is being extracted from a full score, these directives are ignored; no marks precede the clef on a single stave in this case. Occasionally a bracket is required for a single stave within a system; this may be specified by giving just one stave number. The effect can also occur if all but one of a bracketed group of staves is suspended. By contrast, a brace is never printed for just one stave. .subsection "Bracestyle" .index "&%bracestyle%&" .index "shape of brace" .index "brace, shape of" The default brace shape curves a lot at the ends and almost touches the staves. An alternate form that does not curve so much at the ends can be selected by specifying &%bracestyle 1%&. The default can be reset in a subsequent movement by &%bracestyle 0%&. .subsection "Breakbarlines" .index "&%breakbarlines%&" .index "bar lines" "breaking" By default, PMW draws bar lines through all the staves of a system without a break. The &%breakbarlines%& directive specifies the staves after which there is to be a break in the bar lines. It is followed by a list of stave numbers. .code breakbarlines 3 6 8 .endd This example specifies that there is to be a vertical break in the bar lines after staves 3, 6 and 8. Two numbers separated by a minus sign can be used to specify breaks for a sequence of staves: .code breakbarlines 1-4 .endd &%Breakbarlines%& can also appear with no numbers after it at all; in this case there is a break after every stave. If &%breakbarlines%& is specified at the start of a new movement, it must list all the staves at which a break is required. If it is not given, breaks carry over from the previous movement. The stave directives &%[breakbarline]%& and &%[unbreakbarline]%& can be used to override the setting for individual barlines on a given stave. .subsection "Breakbarlinesx" .index "&%breakbarlinesx%&" .index "bar lines" "breaking" The &%breakbarlinesx%& directive acts exactly as &%breakbarlines%&, except that the final bar line of each system is &'not'& broken, but is drawn solid right through the system. .subsection "Breveledgerextra" .index "&%breveledgerextra%&" .index "breve" "extra ledger length" .index "ledger lines" "extra length for breve" This directive specifies the number of points of extra length that ledger lines for breves have at either end. The default value is 2.3. .subsection "Breverests" .index "&%breverests%&" .index "whole bar rests" .index "rests" "whole bar" .index "breve" "rest" By default, PMW prints a semibreve rest sign for a complete bar's rest, whatever the time signature. This heading directive changes its behaviour so that the notation used for a whole bar rest depends on the number of crotchets in the bar. .ilist If there are 8 crotchets (4/2 or 2/1 or 2*C etc.), a breve rest sign is used. .next If there are 12 crotchets (6/2 or 12/4 or 2*3/2 etc.), a dotted breve rest sign is used. .next If there are 6 crotchets (3/2 or 2*3/4 etc.), a dotted semibreve rest sign is used. .next Otherwise a semibreve rest is used. .endlist .subsection "Caesurastyle" .index "&%caesurastyle%&" The default caesura `character' is two slanting lines through the top line of the stave. This directive specifies an alternative, single line, style if it is followed by the number 1. The default can be reset in a subsequent movement by specifying 0. .subsection "Check" .index "&%check%&" This directive, which has no arguments, can be used to override an occurrence of &%nocheck%& in a previous movement. .subsection "Checkdoublebars" .index "&%checkdoublebars%&" This directive, which has no arguments, can be used to override an occurrence of &%nocheckdoublebars%& in a previous movement. .subsection "Clefsize" .index "&%clefsize%&" .index "size" "of clefs" .index "clefs" "size" By default, new clefs that appear in the middle of lines of music are printed at the same size as clefs at the left-hand side. This directive is used to specify a different relative size for such clefs. .code Clefsize 0.7 .endd This example specifies that intermediate clefs are to be printed at 0.7 times the normal size. .subsection "Clefstyle" SUBSECTclefstyle .index "&%clefstyle%&" .index "style of clef" .index "clefs" "style of" .index "clefs" "old-fashioned" Some early editions use &{{zvvw®x~}}& for F-clefs and &{{w¯x}}& for C-clefs. The &%clefstyle%& directive makes it possible to reproduce this usage. It takes a single numerical argument, with the following values: .itable none 0 0 2 16 left 200 left .row &`0`& "all modern clefs" .row &`1`& "old-fashioned F clefs" .row &`2`& "old-fashioned C clefs" .row &`3`& "old-fashioned F and C clefs" .endtable The &{{zvvw®x~}}& graphic is wider than the modern &{{vvw"x~}}& shape. Printing has been arranged so that two dots appear in the same place in both cases. This means that the old-fashioned clef extends further to the left than the modern one, and with PMW's default settings, it runs into stave joining lines and brackets. Therefore, when using old-fashioned F clefs, the &%startlinespacing%& directive should be used to insert at least 2 points of space before the clefs. .subsection "Clefwidths" .index "&%clefwidths%&" .index "key signatures" "alignment" When it is laying out a system, PMW inspects the clefs of all the staves, and positions the key signature immediately to the right of the widest clef. When the clefs change between systems, it can happen that the key signatures do not all line up vertically on the page, and some people want that to happen. Unfortunately, it is not easy to arrange for PMW to do this automatically, because it does the layout in a single pass through the input, and so does not know what clef arrangements lie ahead. However, the &%clefwidths%& directive is provided to enable this to be done manually. &%Clefwidths%& specifies the widths to be used for each type of clef when computing where to put key signatures. The directive is followed by up to five numbers, which specify the widths of the G-clef, F-clef, C-clef, H-clef, and no clef, respectively. The default settings are equivalent to: .code clefwidths 13 16 15 15 0 .endd The values given must be whole numbers (no fractions are allowed). For example, in a piece which has treble and bass clefs in some systems and only treble clefs in others, a setting such as .code clefwidths 16 16 .endd would ensure that all the key signatures line up. .subsection "Codemultirests" .index "&%codemultirests%&" .index "rests" "repeated bars" .index "repeated rest bars" .index "many bars rest" "code signs" By default, when there are consecutive rest bars in all the staves that are being printed, they are combined into a single bar and printed as a `long rest' sign with the number of bars above. This is the modern convention; in older music, when the number of bars was between two and eight, coded signs were used instead, as shown in this example: .music "music54" 32 4,-20 If &%codemultirests%& is specified, PMW follows this older convention. Otherwise, multiple rests are all shown in the same way as the nine bars rest above. This directive can be cancelled in a subsequent movement by specifying &%nocodemultirests%&. .subsection "Copyzero" .index "&%copyzero%&" This directive makes it possible to have copies of stave zero printed over any number of staves. It is followed by a list of stave numbers, each of which may be optionally followed by a slash and a dimension. Details of the use of &%copyzero%& are given in section &<>&. .subsection "Cuegracesize" .index "&%cuegracesize%&" This directive, which takes a single number as an argument, specifies the font size to be used when printing grace notes in bars containing cue notes. See the &%[cue]%& directive for further details. .subsection "Cuesize" .index "&%cuesize%&" This directive, which takes a single number as an argument, specifies the font size to be used when printing cue notes. See the &%[cue]%& directive for further details. .subsection "Dotspacefactor" .index "&%dotspacefactor%&" .index "spacing" "dotted notes" .index "notes" "spacing for dotted" This directive specifies the factor by which the horizontal space after a dotted note is extended. The default value is 1.2. .code dotspacefactor 1.5 .endd In this example, the amount of space that follows a dotted note is 1.5 times the amount that would follow an undotted note of the same type. (Of course, when several staves are involved, the value is a minimum, because the notes on the other staves may cause additional spacing.) When a note is double-dotted, half as much space again is added. Thus in the default case a double-dotted note occupies 1.3 times the space of an undotted note. .subsection "Doublenotes" .index "&%doublenotes%&" .index "doubling note lengths" .index "notes" "doubling length" This directive, which applies to the current movement only, causes the length of each note to be doubled. It also affects time signatures as follows: .ilist &`C`& and &`A`& are turned into &`2*C`& and &`2*A`&, that is, they are printed as before, but the bar length is doubled. .next Other time signatures are changed by halving the denominator, unless the denominator is 1, in which case the numerator is doubled instead. For example, 4/4 becomes 4/2, but 4/1 becomes 8/1. See also &%halvenotes%&. .endlist .subsection "Draw" .index "&%draw%&" The &%draw%& directive is used for defining simple drawn shapes that are to be printed with music on staves. A full description of this facility is given in chapter &<>&. .subsection "Endlinesluradjust and endlinetieadjust" .index "&%endlinesluradjust%&" .index "&%endlinetieadjust%&" .index "slurs" "line ending" .index "ties" "line ending" When a slur or a tie is continued onto the next line, the first part is normally drawn right up to the end of the first line. Some editors prefer it to stop a little short of this; &%endlinesluradjust%& and &%endlinetieadjust%& specify a dimension that is added to the right-hand end of such slurs and ties, respectively. Normally the value given is a small negative dimension. The value for ties also applies to glissandos. .subsection "Endlineslurstyle and endlinetiestyle" .index "&%endlineslurstyle%&" .index "&%endlinetiestyle%&" .index "slurs" "shape of continued" .index "ties" "shape of continued" Each part of a continued slur or tie is normally drawn as a complete slur, that is, with both ends tapering to a point, which is the most commonly found style. Some editors, however, prefer each portion to have the appearance of half a normal slur. &%Endlineslurstyle%& and &%endlinetiestyle%& specify this behaviour when style 1 is selected. The default is style 0. .subsection "Extenderlevel" SECTextlevel .index "&%extenderlevel%&" .index "underlay" "extender level" .index "level" "of extender lines" The vertical level of extender lines, which are drawn when the last syllable of an underlaid or overlaid word extends over several notes, can be altered by this directive. It takes a positive or negative number as its argument. This specifies a number of points, positive numbers moving the lines up, and negative ones down. Extender lines are output by printing underscore characters, and the default level is just below the baseline of the text. .code extenderlevel 1 .endd This example moves extender lines up to near the baseline, and larger values can be used to place them nearer the middle of the text characters. .subsection "Fbsize" .index "&%fbsize%&" .index "figured bass" "size" By default, text that is specified as being part of a figured bass is printed at the same size as other textual items (10 points). This directive enables a different point size to be chosen for the figured bass text. .code fbsize 8.2 .endd This example specifies a somewhat smaller font. Individual figured bass text strings can have an explicit size specified (&R; &<>&). .subsection "Footing" .index "&%footing%&" .index "footing" "for first page" .index "page footing" "for first page" This directive has the same arguments as &%heading%&, and they have the same meaning &-- see &%heading%& below for a full description. Several footing lines may be specified. &%Footing%& sets up text to be printed at the foot of the first page only, and setting any footing line for a new movement automatically cancels all the footings that were in force for the previous movement. .code footing "Copyright \c) 1992 J.S. Bach" .endd Note the use of the escape sequence &`\c)`& in this example to obtain a copyright symbol. If a type size argument is not given, 8-point type is used. As is the case with headings, if the left-hand part of a footing (the text before the first &`|`& character) is longer than the line length, it is split up into as many lines as necessary, and all but the last are fully justified. Footing lines are printed below the bottom of the page, as specified by the &%pagelength%& directive, the first one being 20 points below. This is an absolute distance that does not change if the magnification is altered. However, the distance between footings and the sizes of fonts used are subject to magnification. As the first footing line on a page is always at the same fixed vertical position, the drawing facility (as described for &%heading%&) can be used for drawing fixed marks on the page. .index "crop marks" .index "page" "crop marks" .index "page" "borders" .index "borders for pages" For example, crop marks and borders on title pages can be drawn by this method. See the &%pagefooting%& and &%lastfooting%& directives for a means of setting up footings for pages other than the first. If no &%footing%& directive is present, text specified by &%pagefooting%& is printed on the first page as well as on subsequent pages. If the movement is only one page long, &%footing%& overrides &%lastfooting%&, but &%lastfooting%& overrides &%pagefooting%&. .subsection "Footnotesep" .index "&%footnotesep%&" This directive specifies the amount of vertical white space to leave between multiple footnotes on the same page. The default is 4 points. See the &%[footnote]%& directive for a full description of footnotes, which should not be confused with footings. .subsection "Footnotesize" .index "&%footnotesize%&" This directive sets the type size used for printing footnotes. The default size is 9 points. .subsection "Gracesize" .index "&%gracesize%&" .index "grace notes" The default size of the music font used for printing grace notes is 7 points. This directive allows a different size to be chosen. It must be followed by a number specifying a point size for the font. .subsection "Gracespacing" .index "&%gracespacing%&" .index "grace notes" .index "notes" "grace" By default, a grace note is printed 6 points to the left of the note that follows it. If there are two or more grace notes, the distance between them is also 6 points by default. This directive allows these values to be changed. It must be followed by either one or two arguments. If only one argument is given, its value is used for both dimensions. If two arguments are given, the first affects the distance between the last grace note and the following main note, and the second affects the distance between multiple grace notes. If the value of either argument is preceded by a plus or a minus sign, it indicates a change to the existing value. If no sign is present, the number specifies an absolute value. .code gracespacing +2 .endd This example increases both dimensions by 2 points. .code gracespacing -1 8 .endd This example reduces the space after the last grace note by one point, and sets the distance between multiple grace notes to 8 points. .subsection "Gracestyle" .index "&%gracestyle%&" .index "grace notes" .index "notes" "grace" When two or more staves are being printed, and a note on one stave is preceded by one or more grace notes, the notes on the other staves that fall at the same point in the bar are printed directly above or below the main note, leaving the grace notes sticking out to the left. This is, of course, the conventional practice in modern music. The &%gracestyle%& directive, which must be followed by 0 or 1, can be used to make PMW behave differently. When the style is set to 1, the notes that are not preceded by grace notes are aligned with the first grace note on other staves. In addition, if underlaid text is present, it is aligned to start at the first grace note instead of being centred on the main note. This facility can be used, in combination with setting the grace note size equal to the main note size, and using notes with no stems (see &%[noteheads]%&), to print some forms of plainsong music. .index "plainsong" .subsection "Hairpinlinewidth" .index "&%hairpinlinewidth%&" .index "width" "of hairpin lines" This directive specifies the width of line used to draw crescendo and decrescendo hairpins. Its argument is a width in points. The default width of hairpin lines is 0.2 points. The number may be preceded by a plus or a minus sign, indicating a change to the existing value. If neither of these is present, the number specifies an absolute value. Making hairpin lines thicker may help alleviate jagged effects on long hairpins printed on high resolution printers. .subsection "Hairpinwidth" .index "&%hairpinwidth%&" .index "width" "of hairpin openings" This directive specifies the vertical width of the open end of hairpins. Its argument is the number of points. .code hairpinwidth 5.6 .endd The number may be preceded by a plus or a minus sign, indicating a change to the existing value. If neither of these is present, the number specifies an absolute value. The default value for this parameter is 7 points. .subsection "Halfflatstyle" .index "&%halfflatstyle%& .index "accidentals" "half sharps and flats" .index "flat, half" .index "half flat" This directive selects which character to print for a half flat. It must be followed by one of the numbers 0 (the default) or 1. There is an illustration of the different styles in section &<>&. .subsection "Halfsharpstyle" .index "&%halfsharpstyle%& .index "accidentals" "half sharps and flats" .index "sharp, half" .index "half sharp" This directive selects which character to print for a half sharp. It must be followed by one of the numbers 0 (the default) or 1. There is an illustration of the different styles in section &<>&. .subsection "Halvenotes" .index "&%halvenotes%&" .index "halving note lengths" .index "notes" "halving length" This directive, which applies to the current movement only, causes the length of each note to be halved. It also affects time signatures as follows: .ilist &`C`& and &`A`& cannot be halved. The signatures &`2*C`& and &`2*A`& can be halved, and turn into &`C`& and &`A`& respectively. .next Other time signatures are changed by doubling the denominator. For example, 4/4 becomes 4/8. See also &%doublenotes%&. .endlist .subsection "Heading" SUBSECTheading .index "&%heading%&" .index "heading" "for first page" .index "page heading" "for first page" The &%heading%& directive defines a line of text to be printed as a heading to the piece or movement. If no headings are specified, no space is left at the top of the first page. You can specify any number of headings, which may appear in two different forms. In the more common form, the keyword is followed by up to three arguments: .display &`heading`& <&'fontsize'&> &`"`&<&'text'&>&`"`& <&'depth'&> .endd .index "heading" "size of type" The first argument is a number, and is optional. If present, it defines the font size for this heading, in printer's points. As for all font size sizes, an aspect ratio and/or shear angle may be specified as well as the basic size. If this argument is omitted, default sizes are used. For headings at the start of the piece the default sizes are 17 points for the first heading line, 12 points for the second, 10 points for the third, and 8 points for the fourth and subsequent heading lines. .index "movement" "heading sizes" For headings at the start of a new movement the default sizes are 12 points for the first heading line, 10 points for the second, and 8 points for the third and subsequent heading lines. The second argument is a string in double-quotes, and must be present. It defines the contents of the heading. .index "| (vertical bar) in strings" The vertical bar character has a special meaning in this text &-- it splits it up into left-hand, centred and right-hand parts. Characters to the left of the first vertical bar are printed at the left of the page; characters between the first and second vertical bars are centred on the page; the rest of the text is printed at the right of the page. .index "printing paragraphs" .index "paragraphs, printing" .index "heading" "paragraph" If the left-hand part of the text is longer than the line length, it is split up into as many lines as necessary. All but the last line are fully justified, by expanding any spaces they contain. The last line is also justified if it is nearly as long as the line length. Justification does not take place when there are no spaces in the text. This facility makes it possible to print paragraphs of introductory text on title pages or at the start of pieces or movements. Note, however, that PMW does not set out to be a fully-fledged wordprocessor. Any special characters required in the text have to be coded explicitly (&R; &<>&); they are not provided automatically. The paragraph mechanism should not be used with text that contains variable data such as the escape sequence for the current page number, because the splitting and justification happens only once, when the heading directive is read in. &*Note*&: heading strings do not need to be input on a single line; line breaks in the string are treated as spaces. .index "heading" "spacing" .index "spacing" "heading" The third argument of &%heading%& is a number and is optional. If present, it specifies the number of points of vertical space to leave after the heading. It may be zero; this can be useful for printing headings of different sizes on different parts of the line. It may also be negative; this can be used with an empty text string to make PMW start printing higher up the page than it normally does. If the argument is omitted, the amount of space left after the heading line is equal to the point size of the text. For the last heading line, the space specified (or defaulted) is the space between the base line of the heading text and the top of the first stave of music. When a heading string is split up by PMW into several lines, the spacing value given (or defaulted) is used for the space after each line in the paragraph. To leave space between paragraphs, a heading containing an empty string can be used. Here are some examples of this form of the &%heading%& directive; the third one prints nothing, but leaves 20 points of space. .code Heading "|Partita" Heading 11 "Moderato||J.S. Bach" 14 Heading "" 20 .endd .index "drawing facility" "headings and footings" .index "rule, in headings and footings" The second form of the &%heading%& directive causes a drawing subroutine to be obeyed at the next heading position (see chapter &<>& for more details of drawings). The syntax is: .display &`heading draw`& <&'argument(s)'&> <&'name'&> <&'optional space'&> .endd Arguments are optional. The definition of the drawing must precede such a heading line in the input file. If no space is given, no vertical movement is made following the drawing. The origin of the coordinate system is set at the left-hand side, at the level of the next heading line. For example, to draw a line right across the page (a horizontal rule) after a heading: .code draw rule 0 0 moveto 0 linelength rlineto 1 setlinewidth stroke enddraw heading "|Some Text" 0 heading draw rule 20 .endd The first heading or footing line on a page is always at the same fixed vertical position, so it can be used for drawing fixed marks on the page. .index "crop marks" .index "page" "crop marks" .index "page" "borders" .index "borders for pages" For example, crop marks and borders on title pages can be drawn by this method. The file &_cropmarks_& in the &_contrib_& directory in the PMW distribution contains an example of this. See the &%pageheading%& directive for a means of setting up headings for pages other than the first. .subsection "Hyphenstring" .index "&%hyphenstring%&" .index "hyphen" "printing in underlay" When PMW is outputting rows of hyphens between underlaid syllables, it normally uses single hyphen characters. This directive can be used to change this. The argument is specified as a string for generality, but normally only a single character would be used. For example, longer lines than the default can be obtained by the use of en-dash characters instead of hyphens. These are specified in strings by a backslash escape and two successive minus signs: .code hyphenstring "\--" .endd See section &<>& for other facilities that can be used to control exactly what is printed between underlaid syllables. .subsection "Hyphenthreshold" .index "&%hyphenthreshold%&" .index "hyphen" "multiple in underlay" PMW automatically inserts hyphens between syllables of underlaid text. When the distance between the syllables is less than the `hyphen threshold', a single hyphen is printed, centred in the space (unless the syllables are so very close together that there is no room for even one hyphen). If the space is greater than the threshold, a number of hyphens are printed, the distance between them being the threshold value divided by three. The default value for the hyphen threshold is 50 points. The number following this directive may be preceded by a plus or a minus sign, indicating a change to the existing value. If neither of these is present, the number specifies an absolute value. .subsection "Join and joindotted" .index "&%join%&" .index "&%joindotted%&" .index "joining signs" .index "staves" "joining signs" The syntax of these directives is the same as for &%bracket%& and &%brace%&. They control the joining line at the left-hand edge of systems. By default a solid line is drawn through all staves; these directives can be used to cause breaks in the line and/or to print a dotted line. .code join 1-2, 3-4 .endd This example causes solid lines to be drawn joining staves 1 and 2, and 3 and 4, leaving a gap between staves 2 and 3. .code join 1,2,3,4 .endd This example causes solid lines to be drawn at the ends of each stave, but gaps to be left between the staves. &%Join%& and &%joindotted%& can be used together. .code joindotted 1-2 join 1,2 .endd This example causes a dotted line to be used to join staves 1 and 2, and solid lines to overprint this at the ends of each stave, leaving the dotted line between them. .subsection "Justify" SUBSECTjustify .index "&%justify%&" .index "horizontal justification" .index "vertical justification" &%Justify%& sets the horizontal and vertical justification parameters. It can be followed by one or more of the words `left', `right', `top', `bottom', or `all'. Each occurrence of the &%justify%& heading directive completely re-specifies the justification parameters, in contrast to the stave directive &%[justify]%&. An appearance of &%justify%& that is not followed by one of the above words requests no justification in any direction. The default value for justification is `all', that is, complete vertical and horizontal justification. The effect of the horizontal parameters is as follows: .ilist When `left' is specified without `right', each music system starts at the left-hand side of the page, but is not stretched out to the right-hand side. This is not normal for performing music, but is useful when creating examples for inclusion in other documents. .next When `right' is specified without `left', each music system ends at the right-hand side, but is not stretched to start at the left. .next When both `left' and `right' are specified (the default), each music system begins at the left-hand side of the page, and is stretched so that it ends at the right-hand side, unless it covers less than half the linelength, in which case the behaviour is as if `right' were not specified. .next When neither `left' nor `right' is specified, each music system is centred horizontally on the page. The width of page used for this purpose can be adjusted by the &%sheetwidth%& directive. This is another style of printing that is useful for examples and illustrations. .endlist The effect of the vertical justification parameters exactly parallels that of the horizontal ones. .ilist When `top' is specified without `bottom', systems are printed starting at the top of the page, using the system gaps specified in the input. .next When `bottom' is specified without `top' the systems are again printed with the gaps specified, but this time they are so arranged that the final stave on the page is exactly at the page depth. This form is useful when generating PostScript files for inclusion in other PostScript documents. .next When both `top' and `bottom' are specified, the first system is printed at the top of the page. If there is more than one system on the page, and if more than half the page depth has been used, additional space is inserted between the systems so that the final stave is exactly at the page depth, except that there is a maximum amount of space that PMW is prepared to insert between any two systems. .next When neither `top' nor `bottom' is specified, the systems are printed with the gaps specified, but the set of systems is centred vertically on the page. .endlist The maximum amount of vertical space that PMW is prepared to insert between any two systems is controlled by a heading directive called &%maxvertjustify%&. The default value is 60 points, which means that if the default system gap of 44 points is in force, the furthest apart any two systems can be is 104 points. .index "page" "forcing stave to bottom" To ensure that the bottom stave is always at the bottom of the page under all circumstances, specify a large value for &%maxvertjustify%&. In its information output (&R; &<>&), after it has listed the layout of bars on a page, PMW outputs the amount of space left. When vertical justification is happening, it is this amount of space that is inserted between systems or at the top of the page. When space is being inserted between systems, the same amount is inserted between each pair of systems. Page headings, footings, and page footings are not affected by vertical justification. However, if `top' is not specified, start of movement headings are moved down the page. If a new movement starts in the middle of a page that is stretched vertically, additional space is inserted before the start of the movement, that is, before its headings (if any), but not between its headings and its first stave. The justification parameters persist from one movement to the next, but may be reset by the appearance of &%justify%& at the start of a new movement. They can also be changed by the appearance of the stave directive &%[justify]%&. Unlike the heading directive, it specifies &'changes'& in the justification parameters only, and its effect lasts only until the end of the current movement. See also the &%topmargin%& and &%bottommargin%& directives for further parameters that control the layout of pages. .subsection "Key" .index "&%key%&" .index "key signatures" "specifying" This directive sets a key signature for a movement. It does not carry over to any subsequent movements. Naturally, it is also possible to set keys on individual staves and to change them in the middle of the music. Setting the key in the heading is a convenient shorthand. The single argument to the directive is a key signature in the format described in section &<>&. .code key A$ key BM .endd If no key signature is given for a movement, the default is C major. .subsection "Keysinglebar and keydoublebar" .index "&%keysinglebar%&" .index "&%keydoublebar%&" .index "bar lines" "double" .index "bar lines" "key change" .index "double bar lines" "at key change" .index "key signatures" "bar line at change" PMW prints a double bar line before a change of key by default. The &%keysinglebar%& directive can be used to request a single bar line instead; &%keydoublebar%& can be used to reset the default for a new movement. .subsection "Keywarn" .index "&%keywarn%&" This directive can be used at the start of a new movement to cancel the effect of &%nokeywarn%& in the previous movement. .subsection "Landscape" .index "&%landscape%&" This directive is permitted only in the first movement. It causes all the output to be in `landscape' format, that is, with the long side of the page horizontal. The value of &%linelength%& is interchanged with the value of &%pagelength%&, and likewise the value of &%sheetwidth%& is interchanged with &%sheetdepth%&. Subsequent directives affect the new values. The &%landscape%& directive should appear after any uses of the &%sheetdepth%&, &%sheetdepth%&, or &%sheetsize%& directives. .subsection "Lastfooting" .index "&%lastfooting%&" .index "footing" "for last page" .index "page footing" "for last page" This directive specifies footing material for the last page of music, replacing any text specified with &%footing%& or &%pagefooting%& for that page. The arguments are exactly as for &%heading%& or &%footing%&, but long strings are not automatically split up into multiple lines. &%Lastfooting%& can also be used to specify a special footing for the last page of an individual movement in a piece that has several movements. For details, seen the &%[newmovement]%& directive. .subsection "Layout" SUBSECTlayout .index "&%layout%&" .index "page layout, forcing" The &%[newline]%& and &%[newpage]%& directives, together with &%notespacing%&, are useful for occasional overriding of PMW's default layout choices. However, if a particular layout for an entire piece is required, achieving it with &%[newline]%&, &%[newpage]%& and &%notespacing%& is a bit tedious. The &%layout%& directive makes it possible to specify exactly how many bars are to be placed in each system, and how many systems are to fit on each page. This directive applies only to the movement in which it appears. If a subsequent movement contains no &%layout%& directive, PMW fills its systems according to the width of the bars. If you are using &%layout%&, it is not usually necessary to use &%notespacing%& as well. It its simplest form, &%layout%& is followed by a list of numbers, separated by commas or white space. If the list is long, it can be split into several lines of input. Each number in the list specifies the number of bars in a system. If there are more systems than numbers, the list is restarted from the beginning. .code layout 4 .endd This example specifies that every system (except possibly the last one) is to contain exactly four bars. If page breaks are required at particular points, they are specified by a semicolon in the layout list. .code layout 4, 3; 5, 4, 4; .endd This example specifies two pages, the first containing two systems and the second three systems. If too many systems are specified for a page, PMW inserts a page break of its own. If the width of the bars specified for a system is greater than the linelength, they are compressed until they fit; if too many are specified the result may be very cramped. If the same item or sequence of items is repeated in a layout list, it can be enclosed in parentheses and preceded by a repeat count. Parentheses can be nested. .code layout 3(4, 5(6);) .endd This example defines three pages, each consisting of one system of four bars followed by five systems of six bars. Note the difference between the following two examples: .code layout 2(4,3;) layout 2(4,3); .endd The first specifies two pages; the second specifies one page containing four systems. .subsection "Ledgerstyle" .index "ledger lines" "thicker style" The &%ledgerstyle%& directive, which must be followed by 0 or 1, can be used to choose between thinner or a thicker ledger lines. The default is 0, which selects the thinner line; on some printers this may look too insignificant, which is why the thicker style is provided. .subsection "Leftmargin" .index "&%leftmargin%&" Normally, PMW centres page images horizontally on the paper. The width of paper used for this purpose can be specified by &%sheetwidth%&. The &%leftmargin%& directive can be used to specify a particular left-hand margin instead of centring. .subsection "Linelength and pagelength" SUBSECTlinepagelen .index "&%linelength%&" .index "&%pagelength%&" .index "line length" .index "length" "of line" .index "page length" .index "length" "of page" The &%linelength%& and &%pagelength%& directives specify the size of the page images that PMW produces; each takes a single argument which is a dimension in points. The number may be preceded by a plus or a minus sign, indicating a change to the existing value. If neither of these is present, the number specifies an absolute value. The default line length is 480 points and the default page length is 720 points. These values leave generous margins all round on A4 paper. These two dimensions, together with &%sheetwidth%& and &%sheetdepth%&, are the only ones that are not affected by magnification. They define that part of the page on which printing is to occur, in absolute terms. .subsection "Longrestfont" .index "&%longrestfont%&" .index "fonts" "long rest numbers" The font used for the number that is printed above a multi-bar rest sign can be set by means of the this directive. Its arguments are an optional size followed by a font name. .code longrestfont 13 bolditalic .endd The default size is 10 points; if this directive is not used, the numbers are printed in the roman font. .subsection "Magnification" .index "&%magnification%&" .index "magnification" This directive is permitted only in the first movement. It causes all the output to be magnified or reduced by a specified factor, which can be greater or less than 1.0. All dimensions in the PMW system are subject to the magnification factor, &'except'& the line length, page length, sheet width, and sheet depth, which are absolute values, and which are therefore not affected by magnification. .code magnification 1.5 .endd This example causes the output to be one and a half times as large as the default size. A magnification of around 1.2 is good for printing individual instrumental parts. .code magnification 0.5 .endd This example reduces the output to half size. Reduction is helpful when printing full scores. Magnification or reduction can sometimes be helpful in fitting a piece onto the paper, though it is more usual to use other directives such as &%notespacing%& and/or &%layout%& for this purpose. .subsection "Maxbeamslope" .index "&%maxbeamslope%&" .index "beaming" "slope" .index "slope of beams" This directive can be used to limit the maximum slope of beams. It takes two numbers as arguments. These are the maximum slopes of beams containing two notes and beams containing more than two notes, respectively. The default setting is equivalent to: .code maxbeamslope 0.31 0.33 .endd The &%[beamslope]%& directive, which sets an explicit slope for a given beam, is not limited by these maxima. They apply only when PMW is choosing its own slope. .subsection "Maxvertjustify" .index "&%maxvertjustify%&" This directive is permitted only in the first movement. It controls the maximum amount of vertical space that PMW is prepared to insert between any two systems when vertically justifying a page. The default value is 60 points, which means that if the default system gap is in force, the furthest apart any two systems can be is 104 points. .index "page" "forcing stave to bottom" To ensure that the bottom stave is always at the bottom of the page under all circumstances, specify a large value for &%maxvertjustify%&. .subsection "Midichannel" SUBSECTmidichannel .index "&%midichannel%&" .index "MIDI" "channel allocation" This directive allocates a MIDI voice and/or one or more PMW staves to a MIDI channel, and sets a relative volume for the channel. This information is used only when PMW writes a MIDI output file. The values set by &%midichannel%& are carried over from one movement to the next, but it can appear in any movement to alter the settings. There can be up to four arguments, of which only the first, the channel number, is mandatory. There are also &%[midichannel]%& and &%[midivoice]%& stave directives that can be used to change the settings part-way through a movement. To allocate a particular MIDI voice (also known as a `program' or a `patch' in MIDI-speak) to a MIDI channel, the voice number preceded by a sharp character, or the voice name, is given in quotes after the channel number. If a channel's voice is specified more than once, the last specification overrides the earlier ones. .code midichannel 1 "#57" midichannel 2 "church organ" .endd There are sixteen MIDI channels, numbered 1&--16 (but see the next section for the special properties of channel 10). There are 128 possible MIDI voices; the first form of the directive, where the string starts with #, specifies the voice by a number in the range 1&--128 (but note that it must still be supplied as a string in quotes). This numbering is in accordance with the &'General MIDI'& specification, which a number of manufacturers follow. Some MIDI instruments use the numbers 0&--127 when setting voices manually; for these, the manually set number of any given instrument is one less than the corresponding &'General MIDI'& number. The second form of voice identification uses an index file to translate a name to a voice number. The file is installed in the PMW &_share_& directory and is called &_MIDIvoices_&. You can edit it to change or add names. The version supplied contains voice names taken from the &'General MIDI'& specification. Because there is some variation in some of the names, you can have more than one name for any given voice number, and there are some duplicates in the supplied file. All staves are initially allocated to MIDI channel 1. This channel allocation can be changed by giving a list of staves to the &%midichannel%& directive, with or without a voice name. .code midichannel 2 1,3,4-7 midichannel 4 "piano" 8-11 .endd If no voice name is given, but a voice was set in a previous movement, that voice is allocated when the current movement is played. If no voice is given in the first movement, no voice allocation setting is transmitted on the channel, which allows the voicing to be set manually on the instrument (if it has that ability). Having set a voice in one movement, you can request `no voice setting' in a subsequent movement by specifying an empty quoted string. .index "MIDI" "relative channel volume" In some MIDI multi-timbral instruments, the different voices are not balanced with regard to volume, so if the same values are used in the &%midivolume%& or &%[midivolume]%& directives for different voices, the resulting volumes do not correspond. To help balance voices, a volume value in the range 0&--15 may be given after the voice name, preceded by a slash. .code midichannel 1 "trumpet"/12 9 .endd This example has the effect of reducing the volume of notes played via channel 1 by 12/15. This applies to all staves playing via the channel (in this example, just stave 9). The actual volume used for any MIDI note is 127 multiplied by the channel volume and the stave volume and divided by 225. .subsection "Midichannel settings for untuned percussion" .index "untuned percussion" .index "MIDI" "untuned percussion" Before describing the final argument of the &%midichannel%& directive, it is necessary to discuss MIDI's handling of untuned percussion. A single `voice' can handle a large number of different untuned percussion instruments, by using the `pitch' of each note to determine which instrument should sound. For example, C might sound a bass drum and D a snare drum. Electronic keyboards often have a `keyboard percussion' mode in which the keys correspond to percussion sounds in this way. For some reason, this multiple instrument has not been defined as one of the 128 &'General MIDI'& instruments. Instead, the &'General MIDI'& specification states that MIDI channel 10 is to be used for this kind of percussion. On MIDI instruments that implement this, it is not possible to allocate any other voice to channel 10. The final argument of the &%midichannel%& directive is used to select an untuned percussion instrument. It must follow a list of staves (typically just one stave) and consists of a string in quotes that specifies either the MIDI pitch number, or the instrument name. Note that the other string argument (the instrument name for a `normal' channel) is placed immediately after the channel number, whereas this string argument comes last. .code midichannel 10 5 "#60" midichannel 10 6 "triangle" .endd These examples specify the use of pitch 60 for stave 5 and the pitch corresponding to a triangle for stave 6, both on channel 10. As for MIDI voices, if the string starts with #, it specifies the pitch by number; otherwise the file &_MIDIperc_& inside the PMW &_share_& directory is searched to translate the name to a number. The supplied file contains the name allocation that appears in the &'General MIDI'& specification. The effect of supplying this argument is to force all notes on the stave to be played at the same pitch, independent of the pitch that is given for printing purposes. A percussion stave could therefore be set up thus: .code midichannel 10 4 "cowbell" [stave 4 "Cowbell" hclef 1 stavelines 1] b r b r | ... .endd The notes are specified as Bs so that they print on the stave line, but they are played at the pitch that activates the cowbell sound, provided channel 10 is a &'General Midi'& percussion channel. For an alternative way of handling untuned percussion, see the &%[printpitch]%& directive (&R; &<>&). .subsection "Midifornotesoff" .index "&%midifornotesoff%&" .index "MIDI" "for invisible notes" Notes that are suppressed in printed output by the use of &%[notes off]%& are by default also omitted from MIDI output. The heading directive &%midifornotesoff%& alters PMW's behaviour so that &%[notes off]%& no longer affects MIDI output. .subsection "Midistart" .index "&%midistart%&" .index "MIDI" "initializing" The &%midistart%& directive is followed by a list of numbers in the range 0&--255. When a MIDI file is being created, the MIDI data defined by these numbers is written to the file after PMW's normal initialization. Each number defines a byte of MIDI data, and the whole sequence should consist of a sequence of MIDI events that are to be obeyed at time zero when the file is played. You must not attempt to supply any time information. PMW automatically arranges for all these MIDI events to be specified at time zero by inserting a zero byte before any value that is greater than 127. This feature can be used by those familiar with the MIDI coding to do things like changing the stereo position of the channels. .code midistart 176 10 0 177 10 40 178 10 80 179 10 120 .endd This example pans channels 1&--4 evenly from full left (0) to nearly full right (120). .subsection "Miditempo" .index "&%miditempo%&" .index "MIDI" "tempo setting" .index "tempo for playing" This directive is used to specify the tempo that is used when PMW creates a MIDI output file. It must have at least one argument, which is the tempo to be used at the start of the movement. The tempo is always specified in crotchets per minute, whatever the time signature. The initial setting can optionally be followed by pairs of numbers separated by slashes, to specify changes of tempo at particular bars. .code miditempo 100 24/120 60/90 .endd This example specifies that the initial tempo is to be 100, but at the start of bar 24 it changes to 120, and at the start of bar 60 it changes to 90. Bar numbers are given in the standard PMW style; if there are uncounted bars then decimal fractions can be used to refer to them (&R; &<>&). If no &%miditempo%& directive is present, a default tempo of 120 is used. If there is more than one movement, the initial tempo specified in a &%miditempo%& directive carries over to the next movement (unless it contains its own &%miditempo%& directive, of course), but tempo changes within a movement do not. However, PMW cannot write more than one movement at a time to a MIDI output file (see the &%-midimovement%& command line argument in chapter &<>&). .subsection "Miditranspose" .index "&%miditranspose%&" .index "MIDI" "transposing parts" .index "transposing parts" .index "transposing instruments" .index "transposition" "for playing" By default, PMW plays music exactly as written, except for recognizing transposing clefs. If the piece contains a part for a transposing instrument it will not play correctly. The &%miditranspose%& directive is provided to help with this. It is used to specify that particular staves are to be played at a pitch different to that at which they are printed. &%Miditranspose%& is followed by pairs of numbers separated by slashes; the first number of each pair is a stave number and the second is a transposition in semitones. .code miditranspose 1/-3 .endd This example specifies that stave 1 is to be played a minor third lower than written. There is also a &%[miditranspose]%& stave directive that can be used to change the transposition part-way through a stave. .subsection "Midivolume" SUBSECTmidivolume .index "&%midivolume%&" .index "MIDI" "volume" .index "volume for playing" The &%midivolume%& directive is used to set different relative volumes for different staves. The value for a relative volume lies between 0 (silent) and 15 (maximum volume). By default, all staves are set at the maximum volume. A single number sets the volume for all staves; this can be followed by pairs of numbers separated by slashes, to specify relative volumes for individual staves. .code midivolume 6 2/15 .endd This example specifies that stave 2 is to be played at maximum volume, whereas all other staves are to be played at volume 6. See also the &%[midivolume]%& stave directive. .subsection "Midkeyspacing" .index "&%midkeyspacing%&" .index "space" "for mid-line signatures" When a mid-line bar starts with a key signature, the &%startlinespacing%& data is used for any time signature that follows, but not for the key signature itself. Instead, &%midkeyspacing%& controls the position of such key signatures. It takes a single dimension as its argument; a positive value moves the signature further away from the preceding bar line. .subsection "Midtimespacing" .index "&%midtimespacing%&" When a mid-line bar starts with a time signature, its position can be controlled by the &%midtimespacing%& directive, which takes a single dimension as its argument. A positive value moves the signature further away from the preceding bar line. .subsection "Musicfont" .index "&%musicfont%&" .index "fonts" "alternative music" This directive is permitted only in the first movement. It specifies, as a string in quotes, the name of the music font to be used by PMW; its argument is a text string. The facility is intended for accessing new or alternative versions of the font. The default music font is PMW-Music. .subsection "Nobeamendrests" .index "&%nobeamendrests%&" This directive, which has no arguments, can be used to cancel the effect of &%beamendrests%& in a previous movement. .subsection "Nocheck" .index "&%nocheck%&" .index "checking bar lengths" This directive, which has no arguments, instructs PMW not to check that the notes in each bar agree with the time signature. It is also possible to suppress this check for individual bars (&R; &<>&). .subsection "Nocheckdoublebars" .index "&%nocheckdoublebars%&" .index "checking bar lengths" .index "bar lines" "double" .index "double bar lines" "suppressing bar length check" This directive, which has no arguments, instructs PMW not to check that the notes in bars that begin or end with a double bar line agree with the time signature. .subsection "Nocodemultirests" .index "&%nocodemultirests%&" This directive cancels the effect of &%codemultirests%& in a previous movement. .subsection "Nokerning" .index "&%nokerning%&" This directive is permitted only in the first movement. It disables the use of kerning for text strings (&R; &<>&). .subsection "Nokeywarn" .index "&%nokeywarn%&" .index "key signatures" "suppressing warning" .index "warning signatures" By default, when there is a key signature change at the start of a new system, PMW prints the new key signature at the end of the previous system, as is conventional in most music. The heading directive &%nokeywarn%& suppresses these warning key signatures. Individual occurrences can be suppressed by an option on the &%[key]%& stave directive that changes the key signature. .subsection "Nosluroverwarnings" .index "&%nosluroverwarnings%&" .index "warning signatures" This directive, which has no arguments, can be used to cancel the effect of &%sluroverwarnings%& in a previous movement. .subsection "Nospreadunderlay" .index "&%nospreadunderlay%&" .index "underlay" "suppressing note spreading" By default, PMW inserts additional space between notes if underlaid or overlaid syllables would otherwise overprint each other. This directive disables this facility for both underlaid and overlaid text. .subsection "Notespacing" .index "&%notespacing%&" .index "notes" "spacing" .index "spacing" "notes" PMW contains a table of the minimum amount of horizontal space that follows each kind of note; so much for a breve, so much for a semibreve, so much for a minim, and so on. Systems are made up using these spacings, until a bar is encountered which would make the system longer than the specified line length. The previous bars are then stretched to fill the line if horizontal justification is enabled. The &%notespacing%& directive allows the table to be altered. It must be followed by eight numbers that define the space (in points) that must follow breves, semibreves, minims, crotchets, quavers, semiquavers, demi-semiquavers and hemi-demi-semiquavers respectively. The values in the default table are those of the following example: .code notespacing 30 30 22 16 12 10 10 10 .endd Internally, note spacings are held to an accuracy of 0.001 points. An alternative form of this directive specifies a multiplicative factor for each value in the table. This is requested by following the directive by an asterisk and a single number, or by two numbers separated by a slash. .code notespacing *1.5 notespacing *3/2 .endd Each of these examples specifies that the values in the note spacing table are to be multiplied by 1.5. If more than one multiplicative &%notespacing%& is present, their effect is cumulative, but a multiplicative &%notespacing%& is overridden if it is followed by an absolute setting. At the start of a new movement, the absolute values that were current at the start of the previous movement, before any multiplications, are re-instated. Changing the note spacing is one way of controlling the assignment of bars to systems and systems to pages. For example, if in the default state the last page contains only two bars, a small reduction in the note spacing may enable the whole piece to fit onto the previous page(s). On the other hand, if the final page is not being fully used, increasing the notespacing by a small amount can cause it to be filled out. You can also make temporary changes to the note spacing table for certain bars of the music only (&R; &<>&). Another way of controlling the assignment of bars to systems is to use the &%layout%& heading directive (&R; &<>&). If you are using &%layout%&, it is not usually necessary to use &%notespacing%& as well. .subsection "Notime" .index "&%notime%&" .index "time signatures" "suppressing" This directive, which has no arguments, specifies that time signatures are not to be printed for the current movement. It does not stop PMW from checking the notes in a bar and complaining if there are too many or too few (see &%nocheck%& if you want to suppress this). &%Notime%& does not affect subsequent movements. See also &%startnotime%&. .subsection "Notimebase" .index "&%notimebase%&" .index "time signatures" "one number only" This directive requests that only the `numerator' (that is, the upper number) in time signatures be printed, in the middle of the stave. For example, in 3/4 time, only the 3 would be printed. Both numbers are required to be given when specifying time signatures, however. This directive has no effect on time signatures specified as C or A. See also the &%printtime%& directive for another way of customizing time signatures. .subsection "Notimewarn" .index "&%notimewarn%&" .index "time signatures" "suppressing warning" .index "warning signatures" By default, when there is a time signature change at the start of a new system, PMW prints the new time signature at the end of the previous line, as is conventional in most music. The heading directive &%notimewarn%& suppresses these warning time signatures. Individual occurrences can be suppressed by an option on the &%[time]%& stave directive that changes the time signature. . .......................................................................... . These directives are still in the code, but we no longer document them. . . .subsection Oldbeambreak . .index &%oldbeambreak%& . This directive is permitted only in the first movement. . This directive is provided as a conversion aid for users of the previous . version of PMW, which used a different convention for specifying beam breaks. . .subsection Oldrestlevel . .index &%oldrestlevel%& . This directive is permitted only in the first movement. . This directive is provided as a conversion aid for users of the previous . version of PMW, which used a different convention for specifying changes of . rest level. . .subsection Oldstemlength . .index &%oldstemlength%& . This directive is permitted only in the first movement. . This directive is provided as a conversion aid for users of the previous . version of PMW, which used a different convention for specifying changes in . stem length. . .subsection Oldstretchrule . This directive is permitted only in the first movement. . This directive is provided as a conversion aid for users of versions of PMW . prior to 3.35 who wish to preserve the exact layout of old files. Later . versions may re-space some systems to achieve a more even note spacing where . accidentals are involved. See also the &%stretchrule%& directive, which . has superseded this one. Setting &%stretchrule%& to zero is equivalent to . &%oldstretchrule%&. . .......................................................................... .subsection "Nounderlayextenders" .index "&%nounderlayextenders%&" This directive suppresses the printing of extender lines at the ends of underlay words whose last syllable extends over more than one note. In a subsequent movement &%underlayextenders%& can be used to restore them. .subsection "Overlaydepth" .index "&%overlaydepth%&" .index "overlay" "line depth" If two or more character strings, all designated as overlay, are attached to the same note, they are automatically printed one above the other. The distance between the baselines of the strings can be set by this directive. The default depth is 11 points. The overlay depth and the underlay depth are separate parameters. .subsection "Overlaysize" .index "&%overlaysize%&" .index "overlay" "size" By default, text that is specified as being vocal overlay is printed using a 10-point font. This directive enables a different point size to be chosen for overlaid text. .code overlaysize 9.7 .endd Individual items of overlay text can be printed at different sizes by using the &`/s`& text qualifier. The overlay size and the underlay size are separate parameters. .subsection "Page" .index "&%page%&" .index "page numbers" .index "numbering pages" This directive is permitted only in the first movement. By default, page numbers start from one. The &%page%& directive can be used to specify that they should start at a different number. It takes the number of the first page as its first argument. There is also a second, optional argument that gives the increment by which page numbers are advanced. .code page 3 2 .endd This example might be used in a file containing the &'primo'& part of a piano duet. It causes the pages to be numbered 3, 5, 7, etc. Occasionally there is a requirement to skip a page number in the middle of a piece &-- to insert a commentary page in a critical edition, for example. See the &%[page]%& stave directive for a means of doing this. .subsection "Pagefooting" .index "&%pagefooting%&" .index "footing" "for middle pages" .index "page footing" "for middle pages" The &%pagefooting%& directive defines text to be printed at the foot of pages. If a &%footing%& directive is present, it overrides &%pagefooting%& for the first page only. The &%lastfooting%& directive can be used to override it for the final page of a piece. The arguments for &%pagefooting%& are the same as those for &%footing%&, but long strings are not automatically split up into multiple lines. Note the use of the escape sequences &`\p\`&, &`\po\`&, and &`\pe\`& to include page numbers in footing lines. .subsection "Pageheading" .index "&%pageheading%&" .index "heading" "for middle pages" .index "page heading" "for middle pages" The &%pageheading%& directive defines text to be printed at the head of pages other than the first. Its arguments are the same as those for &%heading%&, but long strings are not automatically split up into multiple lines. Note the use of the escape sequences &`\p\`&, &`\po\`&, and &`\pe\`& to include page numbers in heading lines. See section &<>& and also the &%[newmovement]%& directive for discussions of headings when there is more than one movement in a file. .subsection "Pagelength" This directive is permitted only in the first movement. See section &<>& (&'Linelength and pagelength'&) above. .subsection "Playtempo" .index "&%playtempo%&" This directive is a synonym for &%miditempo%&. It dates from the early days of PMW running on Acorn hardware, when playing was possible without using MIDI. .subsection "Playtranspose" .index "&%playtranspose%&" This directive is a synonym for &%miditranspose%&. It dates from the early days of PMW running on Acorn hardware, when playing was possible without using MIDI. .subsection "Playvolume" .index "&%playvolume%&" This directive is a synonym for &%midivolume%&. It dates from the early days of PMW running on Acorn hardware, when playing was possible without using MIDI. .subsection "PMWversion" .index "&%pmwversion%&" This directive checks that a given version of PMW is in use. It must be followed by a version number: .code pmwversion 4.20 .endd If the wrong version is used, a message is output and PMW stops. .subsection "Printkey" SUBSECTprintkey .index "&%printkey%&" .index "key signatures" "specifying print format" .index "key signatures" "non-standard forms" .index "accidentals" "in key signatures" .index "half sharp" "in keysignatures" .index "half flat" "in keysignatures" Some old music uses key signatures in which the accidentals are placed differently to the modern convention. For example, for a treble clef G major signature, the sharp is on the bottom space of the stave instead of on the top line. The &%printkey%& directive can be used to reproduce such usage. It can also be used to specify the appearance of half sharps and half flats in key signatures. The syntax is as follows: .display &`printkey `&<&'key'&>&` `&<&'clef'&>&` "`&<&'string'&>&`"`& .endd There may be many occurrences of &%printkey%&, for different combinations of key signatures and clefs, in a single input file. The use of &%printkey%& affects only what is printed for the given key/clef combination. It has no other effect on PMW's behaviour. If there are two occurrences of &%printkey%& that refer to the same key and clef, the later one is used. The string is normally a sequence of characters in the music font. The size is fixed at 10 points, scaled to the stave's magnification. You can change to other fonts by means of the usual escape sequences, but the size cannot be varied. The starting vertical position is the bottom line of the stave; you can use the up and down moving characters in the music font to position accidentals (or other characters) where you want them. .code key G printkey G treble "\37\" printkey E$ treble "x~\39\x~\191\ww\191\" printkey E$ bass "~\39\x~\191\ww\191\" [stave 1 treble 1] GG | [key E$] GG [bass 0] | [key E$] GG || [endstave] .endd .music "music47" 32 4,-16 In the above example, the G major key signature is a single sharp (character 37 in the music font), printed in the initial vertical position. For the E-flat treble clef signature, characters 120 (&`x`&) and 126 (&`~`&) are used to move up four and two points, respectively, so that the flat (character 39) prints on the middle line of the stave. Further appearances of &`x`& and &`~`&, and also character 119 (&`w`&), which moves down four points, are used to position the half flats (character 191) that follow. A similar string is used for the bass clef. Details of the music font characters are given in chapter &<>&. .subsection "Printtime" .index "&%printtime%&" .index "time signatures" "specifying print format" Time signatures are occasionally printed in unusual formats. This directive specifies how a given time signature is to be printed. It has the following syntax: .display &`printtime `&<&'time signature'&>&` "`&<&'top'&>&`" "`&<&'bottom'&>&`"`& .endd There may be many occurrences of &%printtime%&, for different time signatures, in a single input file. Whenever the given time signature is to be printed, the two given strings are printed instead, one above the other, with their centres aligning. If the second string is empty, the first is printed on the second stave line; otherwise they are printed on the third and first stave lines, respectively. Some examples of possible uses are: .code printtime 8/8 "3+3+2" "8" printtime 12/8 "3 2" "2 2" printtime 3/4 "" "" .endd The last example suppresses all printing for the 3/4 time signature. The default font at the start of each string is the font specified in the most recently preceding &%timefont%& directive, so the order of &%timefont%& and &%printtime%& matters. If &%timefont%& is not used, the default font is the bold font. However, changes of font are permitted within the strings. The default size of the text printed by &%printtime%& is that specified by &%timefont%&, with 11.8 points as the ultimate default. However, it is possible to follow each text string with &`/s`& and a number, to specify a particular size for a given string. The number refers to the list of text sizes specified by the &%textsizes%& directive. .subsection "Psfooting" .index "&%psfooting%&" This directive makes it possible to include raw PostScript in PMW output at the end of the first page. Unless you are a PostScript expert, this facility is not for you. The directive must be followed by a string in double quotes. If the first character of the string is `<' the rest of the string is taken as a file name from which to copy PostScript into the PMW output at the footing point. See section &<>& for details of how included PostScript files are processed. When the PostScript is inserted, the environment is as for the music that has just been printed, with the origin at the left-hand bottom corner of the page. Any magnification is still in force. The string is &'not'& processed as a normal PMW string. This means that, if it is a literal string and backslashes are required in the PostScript output, they must &'not'& be doubled in the input. .subsection "Psheading" .index "&%psheading%&" This directive makes it possible to include raw PostScript, in the same format as for &%psfooting%&, at the head of the first page. .subsection "Pslastfooting" .index "&%pslastfooting%&" This directive makes it possible to include raw PostScript, in the same format as for &%psfooting%&, at the end of the final page. .subsection "Pspagefooting" .index "&%pspagefooting%&" This directive makes it possible to include raw PostScript, in the same format as for &%psfooting%&, at the ends of pages other than the first. .subsection "Pspageheading" .index "&%pspagefooting%&" This directive makes it possible to include raw PostScript, in the same format as for &%psfooting%&, at the heads of pages other than the first. .subsection "Pssetup" .index "&%pssetup%&" This directive is permitted only in the first movement. It is used to include private PostScript, in the same format as for &%psfooting%&, at the end of the prologue that is output by PMW before the PostScript for the first page. .subsection "Rehearsalmarks" .index "&%rehearsalmarks%&" This directive controls the way rehearsal marks are printed. It has this syntax: .display &`rehearsalmarks`& <&'style'&> <&'size'&> <&'fontname'&> .endd All three arguments are optional, except that if <&'fontname'&> is present, one of either <&'style'&> or <&'size'&> (or both) must precede it. The style must be one of the words `boxed' (enclose in a rectangular box), `ringed' (enclose in a ring), or `plain' (do not enclose). If no word is given, there is no change of style. The size is the font size, and the third argument specifies the font to be used (&R; &<>&). .code rehearsalmarks boxed 13 rehearsalmarks ringed italic rehearsalmarks 11 bolditalic .endd By default, rehearsal marks are printed enclosed in a box, in a 12-point roman font. .subsection "Repeatbarfont" .index "&%repeatbarfont%&" .index "fonts" "for repeat bars" The font used for printing the numbers on first and second time bars can be set by this directive. Its arguments are an optional size followed by a (non-optional) font name. .code repeatbarfont 8 extra 4 .endd This example specifies the use of the fourth extra font, at an 8-point size. The default size is 10 points, and the default font is roman. .subsection "Repeatstyle" SUBSECTrepeatstyle .index "&%repeatstyle%&" .index "repeat marks" This directive specifies how repeat marks are to be printed. The default is the conventional combination of two dots with a thin and a thick vertical line. This directive must be followed by one of the following numbers: .itable none 0 0 2 12 left 200 left .row &`0`& "normal style" .row &`1`& "no thick vertical line" .row &`2`& "no thick vertical line, and thin line dotted" .row &`3`& "four dots only (unless at a bar line)" .row &`4`& "as 0, but alternate amalgamated form" .endtable If style 2 is used at the start or end of a bar, you must use an invisible bar line if you want to prevent the dotted line being overprinted by a normal bar line. Style 4 is the same as style 0 (the default) except when the end of a repeated section is immediately followed by the start of another repeated section (typically coded as &`:)|(:`& in the input file). In style 0, a thin line, thick line, and second thin line are printed between the dots. This style is recommended in Gardner Read's &'Music Notation'& and also shown in Kurt Stone's &'Music Notation in the Twentieth Century'&. However, some editors prefer to have just two thick lines between the dots, and this is what style 4 gives. .music "music37" 32 0,-16 centre .subsection "Righttoleft" SUBSECTrighttoleft .index "&%righttoleft%& .index "printing right to left" The &%righttoleft%& directive causes PMW to print music from right to left instead of in the conventional left-to-right manner. This directive must appear in the first movement of a file, and it applies to all the movements that follow. The facility was ``bolted on'' to the existing PMW code, and as a result has some awkwardnesses, in particular in the way in which character strings are handled. It is also somewhat experimental and is likely to give strange results if some of the more complicated features of PMW are used. Nevertheless, &%righttoleft%& makes it possible to typeset music in a manner that is sometimes used in countries whose language is written from right to left. Although the music runs from right to left, the shapes of the notes, accidentals, and clefs are not altered. Right-to-left printing is implemented by transforming the PostScript coordinate system so that the x-axis runs to the left and the origin is at the righthand side of the page image. Within the transformed coordinate system, fonts are themselves re-transformed so that their characters appear as normal. This means that characters in text strings still print from left to right; however, the positioning of text strings is adjusted so that they end rather than start at their normal position. There is a further complication if there are font changes within a text string. The substrings, taken in order in the input file, are printed from right to left, but within each substring, the characters run from left to right. Note the way that the strings in this example are rendered: .code [stave 1 treble 1] "\*c\\bf\104 = "/a/ts/u2 "m\bi\f" A #g. a- | "abc" c'-b-a-g-; G | .endd .music "music50" 48 12,-14 The first string, &`"\*c\\bf\104 = "`& is split into two substrings, the first being a crotchet character from the music font, and the second being the text &`"104 = "`& from the bold font. The &`/ts`& option specifies that the string is positioned at the time signature, so this is where the first substring is printed; the second string is then placed to its left. The second string, &`"m\bi\f"`&, also uses two fonts, and so the italic &'m'& appears to the right of the bold italic &'&*f*&'&. The third string has no font changes, so the characters appear in order. When right-to-left printing is enabled, right and left are interchanged in all the facilities for moving items horizontally, and for the left-centre-right feature of heading lines. For example, using &`/r`& on a string moves it left instead of right. In shapes defined by the &%draw%& directive, x-coordinates are inverted, with positive values moving left instead of right. If any of the two-up printing styles is selected when &%righttoleft%& is enabled, the order of printing the pages on the sheets is reversed. This makes it possible to print correct right-to-left pamphlet-style pages for folding and binding. .subsection "Selectstave(s)" .index "&%selectstave%&" .index "staves" "selection of" This directive is used to specify a selection of staves to be printed. It overrides any selection given by the &%-s%& option on the command line. The directive is followed by a list of staves and/or ranges of staves, and is intended for use in conjunction with the &%-f%& command line option, as in this example: .code *if chorus selectstaves 5-8 *fi *if cello selectstave 4 *fi .endd Any tests that rely on a particular stave selection must follow this directive. .subsection "Sheetdepth, Sheetwidth, and Sheetsize" .index "&%sheetdepth%&" .index "&%sheetsize%&" .index "&%sheetwidth%&" .index "A3, A4, A5 paper size" .index "B5 paper size" .index "size" "of paper" .index "width" "of paper" .index "depth of paper" These three directives are permitted only in the first movement. They are concerned with specifying the size of page image that PMW creates. &%Sheetdepth%& and &%sheetwidth%& can be used to specify the vertical and horizontal dimensions individually, but for standard sizes it is usually simpler to use &%sheetsize%&, which must be followed by one of the words `A3', `A4', `A5', `B5', or `letter'. Its effect is to set the sheet depth and width parameters to suitable values for the given paper size, and also to set the &%linelength%& and &%pagelength%& values, as follows: .itable none 0 0 5 40 centre 64 centre 64 centre 64 centre 64 centre .row &'Size'& &'Sheetwidth'& &'Sheetdepth'& &'Linelength'& &'Pagelength'& .row A3 842 1190 730 1060 .row A4 595 842 480 720 .row A5 421 595 366 480 .row B5 499 709 420 590 .row letter 612 792 500 670 .endtable Adjustments to the line length or page length must be made after any appearance of &%sheetsize%&, which should also precede any occurrence of the &%landscape%& directive. If A5 or B5 is specified and the page is printed on A4 paper, it appears by default at the bottom left-hand corner. This position can be adjusted by using the &%-printadjust%& command line option, or A5 pages can be printed two-up by specifying &%-a5ona4%&. .subsection "Shortenstems" .index "&%shortenstems%&" .index "stems" "automatic shortening" Some editors like to shorten note stems that are pointing the `wrong' way (upward stems for notes above the middle of the stave or downward stems for notes below the middle of the stave). PMW can be made to do this shortening automatically. &%Shortenstems%& must be followed by one number, which is the maximum amount by which a stem may be shortened. .code shortenstems 4 .endd This example allows PMW to shorten stems automatically by up to 4 points. The default value of zero causes no automatic shortening. Additional shortening (or lengthening) can be specified explicitly for any given note, and this is added to any automatic shortening that may be set. PMW maintains an overall minimum stem length beyond which stems cannot be shortened, so specifying a large limit such as 99 permits shortening down to this minimum length. Automatic shortening reduces a stem's length by 0.5 points for each note position on the stave, so, for example, a note on the top line has its upward-pointing stem shortened by 2 points (provided the &%shortenstems%& limit allows this). .subsection "Sluroverwarnings" .index "&%sluroverwarnings%&" .index "slurs" "over warning signatures" .index "ties" "over warning signatures" .index "warning signatures" "slurs and ties over" When a line ends with a warning time or key signature, and there is a slur or tie that is continued from this line to the next, PMW does not by default draw the slur or tie over the warning. This directive requests it to do so. .subsection "Smallcapsize" .index "&%smallcapsize%&" When the escape sequence &`\sc\`& is used in a string to change to small caps, it selects a new font of the same typeface as before, but at a relative size that can be set by this directive. The default value is 0.7. .subsection "Startbracketbar" .index "&%startbracketbar%&" This directive applies only to the movement in which it appears; it affects the first system of the movement. It specifies a number of bars by which the joining brackets and/or braces that normally appear at the left-hand end are to be `indented'. The second and subsequent systems are not affected. If the word `join' appears before the number, the joining lines as specified by the &%join%& and &%joindotted%& directives are repeated at the indented position; by default they are not (but usually there is a bar line present). See section &<>& for an example of the use of &%startbracketbar%&. .subsection "Startlinespacing" .index "&%startlinespacing%&" .index "spacing" "start of line" .index "clefs" "space before" This directive controls the spacing of clefs, key signatures, and time signatures at the start of lines of music. It can be followed by up to four dimensions. Omitted numbers are taken as zero. The syntax is: .display &`startlinespacing`& <&'c'&> <&'k'&> <&'t'&> <&'n'&> .endd Each number specifies additional space &'before'& a particular item at the start of each stave: .itable none 0 0 2 12 left 200 left .row &'c'& "is the extra space before the clef" .row &'k'& "is the extra space before the key signature" .row &'t'& "is the extra space before the time signature" .row &'n'& "is the extra space before the first note" .endtable The arguments can be given negative values to move the items closer together. If an item is absent on a stave, the associated extra space is also omitted. When a mid-line bar starts with a clef (rare in the ordinary course of events, but can occur, for example, after an incipit), the &%startlinespacing%& values are used for the clef and any signatures that follow it, exactly as at the start of a line. See &%midkeyspacing%& and &%midtimespacing%& for ways of handling key and time signatures that occur at the start of mid-line bars. .subsection "Startnotime" .index "&%startnotime%&" .index "time signatures" "suppressing" This directive, which has no arguments, applies only to the movement in which it appears. It causes no time signature to be printed at the start of the movement, but does not suppress the printing of subsequent time signature changes. This is useful for printing parts of pieces. The &%notime%& directive suppresses all time signatures in a piece. .subsection "Stavesize(s)" SUBSECTstavesize .index "&%stavesizes%&" .index "size" "of staves" This directive specifies that certain staves are to be printed at different sizes to the rest. It is followed by pairs of numbers, separated by slashes. The first of each pair is a stave number, and the second is the size of the stave relative to the standard stave size. .code stavesize 1/0.8 stavesizes 4/1.2 5/1.2 6/1.2 .endd The first example specifies that stave 1 is to be printed at 0.8 times the normal size, and the second specifies that staves 4&--6 are to be printed at 1.2 times the normal size. A change in the relative size of a stave affects everything that prints on that stave, both notes and text items. However, the text that appears to the left of the stave (the instrument name) is not affected, and neither are bar numbers .index "bar numbers" "size" .index "rehearsal marks" "size" or rehearsal marks. A size may be specified for stave zero if required. As no notes are ever printed on this stave, only text items are affected. .index "bar lines" "breaking" .index "bar lines" "thick and thin" Bar lines are printed thicker or thinner, as necessary, unless a fixed size has been specified with &%barlinesize%&. With varying barline thicknesses, it is conventional to break bar lines between staves of different sizes to avoid ugly joins. .subsection "Stavespacing" .index "&%stavespacing%&" .index "staves" "spacing" .index "spacing" "staves" This directive controls the amount of vertical white space between staves. The distance between staves is measured from the bottom of one stave to the bottom of the next. The default is 44 points. If the &%stavespacing%& directive is followed by just one number, this sets the spacing for all staves to that value. After such a single number, further items can be given to set different spacings for individual staves. .code stavespacing 50 1/54 3/60 .endd This example sets the spacing for all staves to 50 points, except for staves 1 and 3, which have their own settings. The initial overall number is optional. The remaining arguments for this directive consist of pairs or triples of numbers, separated by a slash. The first number is always a stave number. In the case of number pairs, the second number specifies the spacing between the stave and its successor on the page. .code stavespacing 1/36 4/50 .endd This example ensures that staves 1 and 2 are nearer together than the default, at 36 points, and staves 4 and 5 are further apart at 50 points (assuming that all these staves are selected for printing). Sometimes there is a requirement to specify the amount of space &'above'& a stave. For example, in a piece with an accompaniment and four vocal lines, not all of which are present throughout the piece, it is a common requirement that there be more space between the last vocal stave (whichever it is) and the first accompaniment stave. Changing the stave spacing every time the last vocal line is suspended or resumed can be avoided by using a triple in the &%stavespacing%& directive. Whenever three numbers appear as a argument to &%stavespacing%&, the second number specifies a &'minimum'& space &'above'& the given stave, and the third specifies the space below it. .code stavespacing 1/46 2/50 3/50/48 .endd This example specifies that stave 3 always has at least 50 points above it, even when stave 2 is suspended. Space specified above the top stave is ignored, and, if it is desired to specify space above the last stave, some dummy third number must be given to fulfil the syntax requirement of three numbers. The spacing between staves can be varied in the middle of a piece. See the stave directives &%[sshere]%& and &%[ssnext]%& (&R; &<>&). .index "overprinting" "staves" A value of zero may be given for the spacing. This causes two successive staves to print on top of each other, and can be useful for printing two lines of music on the same stave. It can also be useful for printing a figured bass line, using invisible notes to set the horizontal positioning for the figures. However, if only a few bars of a piece require overprinting, the &%[reset]%& stave directive may be more convenient than the use of a complete overprinted stave. .subsection "Stemlengths" .index "&%stemlengths%&" .index "stems" "length adjustment" This directive is followed by up to six numbers, which specify adjustments to stemlengths for unbeamed minims, crotchets, quavers, semiquavers, demisemiquavers, and hemidemisemiquavers, respectively. The values may have fractions, and negative values (indicating stem shortening) can be used. Unbeamed notes that are shorter than a semiquaver need to have their stems lengthened in order to fit in the extra tails. The default setting for this directive is: .code stemlengths 0 0 0 0 2 4 .endd This specifies stem lengthening for demisemiquavers and hemidemisemiquavers of 2 and 4 points, respectively. .subsection "Stemswap" SUBSECTstemswap .index "&%stemswap%&" .index "stems" "direction" .index "notes" "stem direction" .index "direction of stems" .index "changing stem rules" This directive is used to alter the way in which PMW chooses stem directions for notes lying on the stem swap level for the stave. Specifying this directive has the effect of altering rules N5 and N6 as described in section &<>& (&'Stem directions'&). Note that rule N3 is &'not'& affected. .code stemswap up .endd All notes at the stem swap level that are not otherwise constrained have stems that go upwards. This can be useful when there is vocal underlay. .code stemswap down .endd This gives the opposite effect, and may be useful for American publishers. .code stemswap left .endd The direction of the stem of a note on the stem swap level depends on the stem direction of the note to its left, viewing the part as one long stave (in other words, it depends on the previous note). If the previous note is a breve or semibreve, a notional stem direction is computed as if it were a shorter note. .code stemswap right .endd This makes the stem direction depend on the next note to the right that is not also on the stem swap level. However, the search for the next note does not extend beyond the end of the bar. If the final note(s) of a bar are on the stem swap level, their stem direction is taken from the preceding note. .subsection "Stemswaplevel" SUBSECTstemswaplevel .index "&%stemswaplevel%&" .index "stems" "direction" .index "notes" "stem direction" This directive specifies, for each stave, the level at which stems normally swap from pointing down to pointing up. The default value is zero, which specifies the middle line of the stave. On the swap level itself, the stem may go either up or down, depending on the surrounding notes and the option set by &%stemswap%& or defaulted. &%Stemswaplevel%& can be followed by a single number, in which case it refers to every stave, or it can be followed by pairs of numbers separated by slashes, rather like &%stavespacing%&. The change in swap level may be positive or negative, and its units are note positions. .code stemswaplevel 1/1 2/-1 .endd This example requests that on stave 1, the swap level is moved to the third space instead of the third line, and on the second stave it is moved down to the second space. .subsection "Stretchrule" .index "&%stretchrule%&" .index "compatibility" "pre-4.22" In release 4.22 of PMW there was a change to the horizontal spacing algorithm, affecting systems that have to be compressed to fit on the line. This is most commonly caused by the use of the &%layout%& directive (&R; &<>&). When bars are first formatted, notes may be moved apart in order to avoid underlay words crashing into each other; compressing the system horizontally later on, however, could still cause crashes. The new algorithm does some re-spacing when systems are compressed. Users may have old files in which they have manually moved underlay syllables in order to overcome the problem in the old algorithm. The &%stretchrule%& directive allows you to turn off the new feature, for backwards compatibility. Its argument is an integer. There are three possible values, harking back to a similar change in the distant past: .itable none 0 0 2 12 left 200 left .row "0" "Use the algorithm prior to release 3.35" .row "1" "Use the algorithm prior to release 4.22" .row "2" "Use the latest algorithm (default setting)" .endtable Values greater than 2 are treated as 2. This directive is permitted only in the first movement. .subsection "Suspend" SUBSECTheadsuspend .index "&%suspend%&" .index "suspending staves" This directive affects only the movement in which it appears. It specifies the suspension of certain staves from the beginning of the movement. It must be followed by a list of staves, in the same format as the &%bracket%& and &%brace%& directives. .code suspend 1,3,5-9 .endd A detailed description of the suspension mechanism is given in the section on the stave directive of the same name (&R; &<>&). .subsection "Systemgap" .index "&%systemgap%&" .index "system gap" .index "spacing" "systems" .index "gaps" "between systems" The vertical distance between systems is measured from the bottom of the last stave of one system to the bottom of the first stave of the next system, and this distance can be specified by &%systemgap%&, which takes a single dimension as its argument. The default is 44 points, the same as the default spacing between staves in a system. Thus, by default, the entire output on a page is on evenly spaced staves when there is no vertical justification. When vertical justification is happening (&R; &<>&), the system gap is a minimum distance between systems; once the page layout is determined, the gaps are expanded so that the last stave of the last system on a page is exactly at the bottom of the page. The spacing between systems can be varied in the middle of a piece. See the stave directives &%[sghere]%& and &%[sgnext]%& in section &<>&. .subsection "Textfont" .index "&%textfont%&" .index "fonts" "additional" .index "additional fonts" This directive is permitted only in the first movement. By default, all text characters that form part of a page of music are printed using the &'Times'& series of fonts. This directive can be used to specify alternative fonts and also to define up to twelve additional fonts. It takes the following form: .display &`textfont`& <&'fontword'&> "<&'full font name'&>" .endd The first argument must be one of the words `roman', `italic', `bold', `bolditalic', `symbol', or `extra' followed by a number in the range 1&--12, specifying which text font is being defined. The second argument is the full name of the font, in double quotes. .code textfont bold "Palatino-Bold" .endd This example changes the bold face font from the default (which is &'Times-Bold'&) to &'Palatino-Bold'&. An example that defines the first of the twelve available extra fonts is: .code textfont extra 1 "Helvetica" .endd This font is accessed in text strings by the escape sequence &`\x1\`&. See section &<>& for details of font-changing escape sequences. The capitalization of font names is important. .subsection "Textsizes" SUBSECTtextsizes .index "&%textsizes%&" .index "text" "sizes" .index "figured bass" "size" .index "underlay" "size" .index "size" "of text" Text that is specified with music on a stave can be printed in twelve different sizes in addition to the default sizes for underlay, overlay, and figured bass text. The &%textsizes%& directive specifies the sizes that are required. It is followed by up to twelve font sizes, which may include stretching factors and shear angles. Any unspecified sizes are set to 10 points. .code textsizes 10.5 11 7.6 9/1.1 .endd By default, ordinary text is printed using the first size specified, but underlay, overlay, and figured bass text is printed using the size specified by the &%underlaysize%&, &%overlaysize%&, or &%fbsize%& heading directives, respectively. To print text at any of the other sizes, the &`/s`& qualifier must be used (&R; &<>&). .subsection "Thinbracket" .index "&%thinbracket%&" .index "bracket, thin" .index "joining signs" .index "staves" "joining signs" This directive, which has the same syntax as &%bracket%& and &%brace%&, causes a thin square bracket to be drawn to join two or more staves. Like &%brace%&, nothing is drawn if it covers only one stave, and it is drawn outside the thicker bracket, if that is present. This sign is sometimes used in scores to join staves containing multiple parts for the same instrument. .subsection "Time" .index "&%time%&" .index "time signatures" "specifying" This directive applies only to the movement in which it appears. It sets a time signature for all the staves of the movement. Changes can be made during the music or for individual staves, which are permitted to have different time signatures. See the &%[time]%& directive for details. The default time signature is 4/4. .subsection "Timebase" .index "&%timebase%&" This directive can be used at the start of a new movement to cancel the effect of &%notimebase%& in the previous movement. .subsection "Timefont" SUBSECTtimefont .index "&%timefont%&" .index "fonts" "for time signatures" .index "time signatures" "selecting font" The &%timefont%& directive is used to specify the default font and size for the printing of time signatures. Its syntax is: .display &`timefont`& <&'size'&> <&'name'&> .endd The size is a number, giving the size of font required. If it is omitted, a font size of 10 points is used. The name must be one of the words `roman', `italic', `bold', or `bolditalic', or the word `extra' followed by a number in the range 1&--12. It cannot be omitted. When this directive is not used, an 11.8-point bold font is used for printing time signatures. The parameters set by &%timefont%& do not affect the printing of the time signatures C and A &-- they affect only numeric time signatures, or those printed via the &%printtime%& directive. Changing the size of the time signature font does not affect the positioning of the characters. The facility is intended for selecting a suitable size when a font other than &'Times-Bold'& is used. As an example of the use of &%timefont%&, consider the printing of an original time signature in the form of a circle, .index "time signatures" "circle" for a piece that has three minims to the bar. If this is the only time signature that is to be printed, it can be specified as follows: .code timefont 10 bold printtime 3/2 "\**147\" "" time 3/2 .endd A 10-point font is required, to match the music font with which the music itself is printed. The word `bold' is required by the syntax of the &%timefont%& directive, even though the bold font is not itself actually used. Character 147 in the music font (requested by the asterisks) is a circle of the right size. .subsection "Timewarn" .index "&%timewarn%&" This directive can be used at the start of a new movement to cancel the effect of &%notimewarn%& in the previous movement. .subsection "Topmargin" See section &<>& (&'Bottommargin and topmargin'&) above. .subsection "Transpose" .index "&%transpose%&" .index "transposition" This directive applies only to the movement in which it appears. It sets a transposition for the whole movement, and must be followed by a positive or negative number specifying the number of semitones of transposition up or down, respectively. If a transposition is also specified from the command line, the two values are added together. Section &<>& gives more details about transposition. .subsection "Transposedacc" .index "&%transposedacc%&" .index "accidentals" "in transposed staves" .index "transposition" "control of accidentals" By default, PMW always prints an accidental on a transposed note if an accidental was present on the original, thereby preserving cautionary accidentals. If &%transposedacc%& is followed by the word `noforce', it changes this behaviour such that accidentals are printed only when strictly necessary. The standard behaviour can be reinstated for subsequent movements by specifying `force'. It is also possible to force either behaviour for individual notes (&R; &<>&). .subsection "Transposedkey" .index "&%transposedkey%&" .index "transposition" "control of keys" .index "key signatures" "after transposition" When there is a choice of key signature after transposition, PMW uses a fixed default. For example, it uses the key of G♭ rather than F♯. There is a complete list of the relevant key signatures in section &<>&. This list also applies when key or chord names in strings are being transposed. The default can be overridden by specifying: .display &`transposedkey`& <&'key1'&> &`use`& <&'key2'&> .endd This means `if transposing a key signature yields <&'key1'&>, use <&'key2'&> instead'. .code transposedkey G$ use F# .endd This example ensures transposition into F♯ instead of G♭. A transposition of zero is different to no transposition at all, and if it is specified, any settings of &%transposedkey%& are consulted. This makes it easy to print the same piece of music with or without a key signature. The &%transposedkey%& directive has other uses when transposing music that is notated using the 18th century convention of fewer accidentals in the key signature than in the tonality. It makes it possible to print the transposed music either with a modern key signature, or using the same convention. .subsection "Trillstring" .index "&%trillstring%&" .index "trill" "choice of string" When a trill is indicated for a note, the glyph &{{ˆ}}& is printed from the music font. The &%trillstring%& directive lets you change this for another character or characters. .code trillstring "\it\tr" .endd This example replaces &{{ˆ}}& by the letters &'tr'&, printed in italic. The string may be preceded by a number, specifying the size of font to be used. .subsection "Tripletfont" SUBSECTtripletfont .index "&%tripletfont%&" .index "fonts" "for triplets" .index "irregular note groups" "font for number" This directive specifies the size and style of the text font used to print the `3' over triplets, and also similar numbers over other irregular note groups. The syntax is: .display &`tripletfont`& <&'fontsize'&> <&'name'&> .endd The size is a number giving the font size (with an optional stretching factor and shearing angle). If it is omitted, a size of 10 points is used. The name must be one of the standard font name words such as `bolditalic' (&R; &<>&). It cannot be omitted. When this directive is not used, a 10-point roman font is used for printing triplet numbers. .subsection "Tripletlinewidth" SUBSECTtripletlinewidth .index "&%tripletlinewidth%&" .index "line width for triplets" This directive sets the width of lines used for the horizontal brackets of irregular note groups. The default width is 0.3 points. .subsection "Underlaydepth" .index "&%underlaydepth%&" .index "underlay" "line depth" If two or more character strings, all designated as underlay, are attached to the same note, they are automatically printed one below the other. The distance between the baselines of the strings can be set by this directive. The default depth is 11 points. A negative argument can be given to this directive for special effects, such as printing alternative words above a stave. However, this is probably easier to achieve using the overlay facilities. The depth parameters for underlaid and overlaid text are separate and independent. .subsection "Underlayextenders" .index "&%underlayextenders%&" This directive restores the printing of extender lines at the ends of underlay words whose last syllable extends over more than one note if it was suppressed by &%nounderlayextenders%& in an earlier movement. .subsection "Underlaysize" .index "&%underlaysize%&" .index "underlay" "size" By default, text that is specified as being vocal underlay is printed using a 10-point font. This directive enables a different size to be chosen for underlaid text. .code underlaysize 9.5 .endd Individual items of underlay text can be printed at different sizes by using the &`/s`& text qualifier. The size parameters for underlaid and overlaid text are separate and independent. .subsection "Underlaystyle" SUBSECTunderlaystyle .index "&%underlaystyle%&" .index "underlay" "multiple notes per syllable" .index "underlay" "alignment" .index "alignment of underlay" By default, PMW centres underlay and overlay syllables under or over each note, respectively. There is a tradition, `now frequently ignored' (Kurt Stone, &'Music Notation in the Twentieth Century'&), that calls for multinote syllables to be aligned flush left with the initial note. The &%underlaystyle%& directive is used to request PMW to align underlay and overlay in this traditional manner. Its argument is a number: style 0 is the default, and style 1 sets multinote syllables flush left. When operating in style 1, individual multinote syllables can be centred by making use of the ^ character (&R; &<>&), which is still recognized in this style. In effect, style 1 causes the automatic insertion of a ^ character at the start of any multinote syllable that does not already contain one. .subsection "Unfinished" SUBSECTunfinished .index "&%unfinished%&" .index "solid bar line" .index "bar lines" "at end of piece" This directive, which has no arguments, applies only to the movement in which it appears. It indicates that the music data supplied is not a complete movement. This has the effect of suppressing the solid bar line at the end. It is not necessary to specify &%unfinished%& if the movement ends with a double bar line. .subsection "Vertaccsize" .index "&%vertaccsize%&" .index "accidentals" "size when printed above" .index "size" "of accidentals above notes" The size of accidentals that are printed above or below notes (&R; &<>&) is controlled by this heading directive; the default size is 10 points, which causes them to be the same size as normal accidentals. .code vertaccsize 9 .endd This example causes them to be printed slightly smaller than the default. .index-to I04 .index-to I05 . //////////////////////////////////////////////////////////////////////////// . //////////////////////////////////////////////////////////////////////////// .tocsubsecton .chapter "Stave data" CHAPstavedata .index-from I06 "stave data" This is the first of two chapters in which we describe the format of the data for a single stave, which consists of a sequence of notes and rests, interspersed with other items such as bar lines, key and time signatures, clefs, text strings, etc. The items that are not notes or rests are as follows: .ilist A few common items that can conveniently be represented in the computer's character set are represented by one or more special characters. An example is the use of the vertical bar to indicate a bar line. These items are described in the next few sections. .next Textual items, such as &*&'f'&*&, &'a tempo'&, etc., are coded as strings enclosed in double-quote characters, and are described in section &<>&. .next .index "stave directives" Other non-note items take the form of &'stave directives'&, enclosed in square brackets. There are several different formats for stave directives. They are described in alphabetical order in section &<>&. .endlist Notes, rests and other items may be interspersed freely, as required. .index "space character" Space characters and line breaks can be used to separate items, in order to make the input easier to read, though they are not necessary. PMW makes no attempt to check on the musical sense of what it is asked to print, other than to check bar lengths. .index "bar lengths" When there is more than one stave, the length of the notes in each bar must be the same for all staves. Also, the length of the notes in a bar must agree with the time signature, unless &%nocheck%& or &%[nocheck]%& has been used (&R; &<>&). .section "Bar lines" .index "bar lines" "single and double" .index "double bar lines" "specifying" Bar lines in the music are indicated by means of the vertical bar character. A single vertical bar gives a single bar line; two successive vertical bars without any intervening space characters gives a double bar line. .index "bar lines" "end-style in mid-piece" Unless the &%unfinished%& directive (&R; &<>&) is used, the end of a piece or movement is marked in the traditional manner with a thin bar line followed by a thick bar line. Occasionally it may be useful to print such a bar line in the middle of a piece. This is notated by three vertical bars in succession. .index "bar lines" "empty bar" .index "empty bar" To encode a totally empty bar it is necessary to include at least one space between two vertical bar characters. .index "bar lines" "styles" Barlines may be printed in six different styles (&R; &<>&). The default style can be set by &%barlinestyle%& (for the whole piece) or &%[barlinestyle]%& (for an individual stave). In addition, the style of any individual bar line may be specified by following the vertical bar character with a digit in the range 0&--5. Note also that the &%breakbarlines%& directive can be used to specify breaks in bar lines at particular staves. The amount of horizontal space that is inserted after a bar line is controlled by the &%barlinespace%& directive. Normally, the end of a bar marks the end of a set of beamed notes. It is, however, possible to carry a beam over the bar line and into the next bar. This is done by following the vertical bar character by an equals sign in the input (&R; &<>&). .subsection "Invisible bar lines" SUBSECTinvisbar .index "bar lines" "dummy" .index "bar lines" "invisible" .index "invisible items" "bar lines" Occasionally it may be necessary to put in a dummy bar line in order to allow PMW to start a new system in the middle of a bar &-- something it does not normally do. If a vertical bar character in the input is immediately followed by a question mark, it behaves exactly as a normal bar line, except that nothing is printed. The &%barlinespace%& directive, which controls the amount of space that is inserted after a bar line, also applies to invisible bar lines. Usually, the bars on either side of an invisible bar line are of abnormal length, so you need to turn off the bar length check for each of them (using &%[nocheck]%&), and if bar numbers are being printed, the &%[nocount]%& stave directive should be used to stop one of them from being counted. .subsection "Mid-bar dotted bar lines" .index "bar lines" "dotted" .index "dotted bar lines" The character &`:`& (colon) may appear on its own in the middle of a bar. It causes a dotted bar line to be printed at that point. The bar line is subject to the normal controls for whether it extends down to the next stave or not. A colon does not end the bar. .section "Repeated bars" SECTrepeatbars .index "repeated bars" .index "bars" "repeated" A bar that is repeated in the input need only be coded once. The appearance of a number enclosed in square brackets causes those items to the right of it in the bar, including the bar line, to be repeated that number of times. This facility is most commonly used for .index "rests" "repeated bars" .index "repeated rest bars" .index "many bars rest" sequences of rest bars, but it can be used with any bar. .code [45] R! | [key C] [10] R! | .endd In the second example, the key signature is printed in the first bar only. If it had followed &`[10]`& it would have been printed in all ten bars. There is danger of confusion between repeated bars and rehearsal marks. Accidental omission of the quotes from a numerical rehearsal mark such as &`["42"]`& can lead to some very strange effects. There is more discussion of repeated rest bars in the section entitled &'Repeated rest bars'& (&R; &<>&). &*Warning:*& Repeated input bars should not be used with multi-syllable underlay texts, because the syllables are apportioned to notes as they are read from the input, and the repeated bars are not re-read. .section "Repeated sections" .index "repeat marks" The beginnings and ends of repeated sections of music are marked by the following character sequences: .itable none 0 0 2 16 left 200 left .row &`(:`& "for the start of a repeated section" .row &`:)`& "for the end of a repeated section" .endtable These need not be at the beginning or end of a bar, though if they are, the repetition sign is amalgamated with the bar line in the conventional manner. Several different printing styles of repeat mark are provided (&R; &<>&). First and second time bars are catered for (&R; &<>&). PMW does not normally end lines of music other than at the ends of bars. If a repeat occurs in the middle of a bar and you want to allow that bar to be split over a line break, you have to use an `invisible bar line' (&R; &<>&). PMW makes no check that the repetition signs make musical sense. When a bar starts with a new time signature and a repeat mark, the order in which these are printed depends on the order in which they appear in the input. .code [time 4/4] (: .endd This example causes the time signature to be printed first, followed by the repeat mark. .code (: [time 4/4] .endd This example causes the repeat mark to be amalgamated with the previous bar line, with the time signature following. If, at the same point in the music, these items appear in different orders on different staves, the repeat sign is printed first on all staves. .section "Caesuras" .index "caesuras" .index "pause" "caesura" A caesura (pause) in the music is shown in the input in very much the way it is printed, by two successive slashes. .code c'B // r-c'- | .endd A caesura is normally printed as two sloping strokes through the top of the stave, but the &%caesurastyle%& directive can be used to obtain a single-stroke version. .section "Hairpins" SECThairpins .index "hairpins" .index "crescendo mark" .index "decrescendo mark" The characters &`>`& and &`<`& are used within a stave to encode hairpins. They are always used in pairs, and they enclose the set of notes above or below which the hairpin is to be drawn. .code a b > c d e > .endd This example specifies a diminuendo hairpin that extends under the three notes C, D, and E. Unterminated hairpins are automatically terminated at the start of a hairpin of the opposite kind. If the end of a hairpin is given at the start of a bar, before the first note, the hairpin is terminated just past the bar line, unless it is the first bar of a line, when it is extended far enough to be of reasonable size. (See also the &`/bar`& option below.) A minimum length of 10 points is imposed on hairpins. If a hairpin would be shorter than 10 points, it is extended on the right until it is 10 points long. As well as the case of a hairpin terminating at the start of a system, this can also happen if a hairpin is specified with only a single note between the angle brackets. Hairpins can extend over bar boundaries; if a hairpin extends over the end of a system, it is terminated, and a fresh one started on the next system. The end of the first part of a decrescendo or the start of the continuation of a crescendo is drawn with a small gap to indicate the continuation. .subsection "Horizontal hairpin positioning" By default, a hairpin starts at the left-hand edge of the first enclosed note, and ends at the right-hand edge of the last note, but there are some options that change this. The start or the end of a hairpin can be set to be halfway between the relevant note and the one that follows it, or the end of the bar, by means of the &`/h`& option. .code >/h GAB >/h B .endd This example starts the hairpin halfway between G and A, and ends it halfway between the two Bs. Without &`/h`&, it would have started just before the G and ended just after the first B. The &`/h`& option always moves the start or end to the right, never to the left. The halfway distance is just a default; the option can be used more generally by following it with a number indicating the fraction of the distance that is required. .code < GGG >&) can be used to make them print above instead. When a hairpin's vertical position is not explicitly specified, it is determined by the notes under or above which it lies. However, the &%[hairpins]%& directive can also specify a fixed distance above or below the stave, or a general vertical adjustment for all hairpins. Individual hairpins can be forced to be above the stave, below the stave, or in the middle between the current stave and the one below, by means of the options &`/a`&, &`/b`&, and &`/m`&. Do not confuse &`/m`& with &`/h`&. One way of remembering the difference is to associate &`/h`& with `horizontal' rather than `halfway'. A fixed level above or below the stave can be specified by following &`/a`& or &`/b`& by a dimension. .code >/a10 bc'eb > | `& character with &`/w`& and a dimension. .code >&) are required above or below notes, the bracket must follow &`o`& or &`u`& and any up/down movement specification. .subsection "Transposed accidentals" SUBSECTtransposedaccidentals .index "transposition" "accidentals" .index "accidentals" "transposed" Normally, PMW prints an accidental sign for a transposed note if there is an accidental in the input, thus preserving cautionary accidentals. Occasionally this is not required. Suppression of an unnecessary accidental can be requested by following the accidental with &`^-`&. If an accidental is actually necessary in the transposed music, it is not suppressed. Suppression of unnecessary transposed accidentals can be enabled for all notes by means of the &%transposedacc%& directive. When this is done, individual accidentals can be put back by following the accidental with &`^+`&. If a bracketed accidental is required, the bracket must follow the transposition option, which in turn must follow any request to print the accidental above or below the note. PMW can be forced to print the accidental for a transposed note in a particular way (for example, with a double sharp instead of a natural). This facility is provided for cases when the normal transposition rules are inappropriate, and it is done by following the accidental for the note (if any) with one of the following character sequences: .itable none 0 0 2 30 left 300 left .row &`^#`& "print with a sharp (`black' notes and C and F natural)" .row &`^$`& "print with a flat (`black' notes and B and E natural)" .row &`^##`& "print with a double sharp (`white' notes except C and F)" .row &`^$$`& "print with a double flat (`white' notes except B and E)" .row &`^%`& "print with a natural (all `white' notes)" .endtable For example, if a note that is specified as &`#^##G`& is transposed up by one semitone, and would normally be printed as A-natural, it will now be printed as G-double-sharp. In the absence of any special indication, a subsequent note of the same pitch in the same bar will automatically print in the same way. .subsection "Rests" .index "rests" .index "rests" "invisible" .index "rests" "whole bar" .index "whole bar rests" .index "invisible items" "rests" .index "note letters" There are three `note letters' that are used instead of pitch letters to specify rests. The letter R is used to indicate a normal rest. It may not be preceded by accidentals or followed by quote characters or grave accents. The letter Q is similar, but it causes nothing at all to be printed. It is often called an `invisible rest'. It is useful for special effects when overprinting staves or using coupled staves. The letter S has exactly the same effect as R except when it is used to specify a complete bar's rest. Such bars are normally candidates for amalgamation with surrounding rest bars, leading to the printing of `long rest' bars where possible (&R; &<>&). When a rest bar is specified using S instead of R, it is always printed as an individual bar and never amalgamated. You can think of S as standing for `single'. .subsection "Length of notes and rests" .index "length" "of notes" .index "length" "of rests" .index "notes" "length" .index "rests" "length" The primary length of a note or rest (visible or invisible) is indicated by the case of its letter. An upper case (capital) letter is used for a minim, and a lower case (small) letter for a crotchet. .index "breve" "specifying" Notes or rests longer than a minim are constructed by the addition of plus signs, each of which doubles the length. One plus makes a semibreve, two make a breve. .index "flags" .index "notes" "flags" Notes or rests shorter than a crotchet have `flags'. A minus sign is a single flag for a quaver, an equals sign is two flags for a semiquaver, an equals followed by a minus sign is three flags for a demi-semiquaver, and two equals signs are four flags for a hemi-demi-semiquaver. If the note letter is followed by quotes or grave accents as part of its pitch, the flags follow these. .index "dotted notes" .index "notes" "dotted" One or two dots may follow a note or rest as in conventional music, to extend its length by half and three-quarters, respectively. There is also support for .index "Ghent, Emmanuel" Emmanuel Ghent's notation for extending the length of a note by one .index "plus after notes" .index "notes" "followed by plus" quarter (as reported in Gardner Read's book &'Music Notation'&). The PMW encoding for this is to follow the note with a dot and then a plus sign. The length of the note is extended by one quarter, and it is printed as the normal note followed by a plus sign. This facility is particularly useful when there are five beats in a bar. .code [time 5/4] A+.+ .endd This example prints a semibreve followed by a plus, indicating a note whose length is equal to five crotchets. Here are some examples of notes and rests of different lengths: .itable none 0 0 2 60 left 200 left .row &`A++`& "breve" .row &`#B`+`& "semibreve" .row &`G+.+`& "semibreve followed by plus" .row &`F.`& "dotted minim" .row &`R`& "minim rest" .row &`e..`& "double dotted crotchet" .row &`$$g`& "crotchet" .row &`r-.`& "dotted quaver" .row &`c'-`& "quaver" .row &`d=`& "semiquaver" .row &`e''=-`& "demi-semiquaver" .row &`%b`==`& "hemi-demi-semiquaver" .endtable .subsection "Chords" .index "chords" "specifying" PMW can deal with certain kinds of chord, notated by enclosing a number of notes in parentheses. The notes must either all be of the same musical length, or all but the first must consist of just a lower case letter, in which case the length is taken from the first note. .code (gb) (c'-#g'-) (A++A'++) (g=-bd'g') .endd The notes do not have to be in any particular pitch order. If there are to be accents on the chord (staccato, etc.), these must be specified on the first note. .index "beaming" "chords" .index "chords" "beaming" Chords consisting of quavers or shorter notes are beamed in the usual way (&R; &<>&); a semicolon after the closing parenthesis breaks all the beaming, whereas a comma breaks secondary beams only. If the chord is tied (&R; &<>&), the underline character that indicates a tie must appear after the closing parenthesis. Note that an underline character cannot be used for a short slur when chords are involved (as it can for single notes), because if two chords are joined by an underscore, all the notes in each that are of the same pitch are joined by a tie mark. The &%[slur]%& directive must be used to obtain just a single slur mark. .index "accidentals" "moved" .index "moved accidentals" .index "accidentals" "on chords" .index "chords" "accidentals" PMW automatically positions accidentals on chords unless one or more notes in the chord contains an explicit accidental positioning request (&R; &<>&). In this case, no automatic positioning is done; it is assumed that the user has positioned all the accidentals in the chord by hand. .subsection "Horizontal movement of augmentation dots" .index "augmentation dots" "moving horizontally" .index "moved augmentation dots" .index "dotted notes" "moving dots horizontally" It is occasionally necessary to move augmentation dots to the right, usually when printing multiple parts on the same stave with notes close together. If an augmentation dot is preceded by the character &`>`& it is moved right by 5 points (scaled to the stave size). A different distance can be specified by preceding the &`>`& with a dimension. .code a>. g6.2>.. .endd In this example, the dot after the A is moved 5 points to the right and the double-dot after the g is moved 6.2 points. In a chord, the &`>`& character must be used on the first note, and not on any others. It affects all the dots in the chord, because they are always vertically aligned. .subsection "Vertical position of augmentation dots" SUBSECTdotvert .index "augmentation dots" "vertical position" .index "dotted notes" "vertical position of dots" .index "notes" "movement of dots" The vertical position of dots for notes on lines can be controlled by the &%[dots]%& directive and the &`\:\`& note option (&R; &<>&). This option affects only notes that lie on stave lines. Normally dots for such notes are printed in the stave space above, but if the colon option is present, they are printed instead in the space below. The default position can be changed by means of the &%[dots]%& stave directive; when the default is below, the colon item causes the dot for a particular note to be printed above. .code [treble] e.\:\ @ dot below [dots below] g..\:\ @ dot above .endd The colon option can be used for individual notes within a chord. However, PMW overrides the dot position setting when an interval of a second occurs in a chord. In this case, the lower note, if it is on a line, always has its dot below, and the upper note, if it is on a line, always has its dot above. The &`\:\`& option does not affect notes in spaces, but it is sometimes useful to be able to move their augmentation dots into the space above. The option &`\::\`& achieves this; it has no effect if used on a note that lies on a line. For example, the chord &`(e.g.a.)`& in the treble clef prints by default with only two dots. If three dots are required, there are two ways in which this can be achieved: .code (e.\:\g.a.) (e.g.a.\::\) .endd The first moves the dot on the lowest note down, and the second moves the dot on the highest note up. When there is an interval of a second in a chord and the higher note has its dot moved up by this means, the lower note's dot is no longer automatically moved down. .subsection "Notehead shapes and sizes" SUBSECTnoteheads .index "noteheads" "size of" The shape of noteheads is controlled by the &%[noteheads]%& directive (&R; &<>&). Smaller than normal noteheads are used for grace notes, and for notes that appear between &%[cue]%& and &%[endcue]%&. In these cases, the entire note (head and stem) is printed at a smaller size. You can also request a small (cue-sized) notehead, without affecting any other part of the note, by means of the &`\sm\`& note option (&R; &<>&). .index "optional notes" This can be useful for indicating optional notes by means of a small notehead within a chord. This option affects only the notehead; the size of the stem, the position of any dots, and all other aspects of the note are not changed. .subsection "Whole bar rests" .index "rests" "whole bar" .index "whole bar rests" There is one other special character that may follow the letters R, Q, or S, but not any of the note letters. This is the exclamation mark, and it is used to indicate that the rest fills an entire bar. Without this, it is not possible to specify a complete bar's rest as one item in all time signatures. The difference between &`R!`& and &`Q!`& is that the former causes the printing of a conventional whole bar rest sign, whereas the latter causes nothing at all to be printed in the bar. This is useful when staves are being overprinted. &`S!`& behaves like &`R!`& except that the bar in which it appears is never eligible for amalgamation into a single multiple rest bar with the bars on either side of it. A bar containing &`S!`& is always shown on its own. Whole bar rests specified using an exclamation mark are normally printed as semibreve rests, centred horizontally in the bar. The form of the whole bar rest sign can be altered for certain time signatures by means of the &%breverests%& heading directive. Rests that happen to fill the bar, but which are not specified with exclamation marks, are printed as rests of the appropriate length. For example, in 3/4 time the rest &`R.`& is printed as a dotted minim rest. If bar lengths are being checked, such a rest is printed centred in the bar, but if they are not, it is printed at the left-hand end. If a bar contains only whole bars rest on some staves and single notes on others, it sometimes looks better if the notes are also centred in the bar. This can be done by using the &`\C\`& option for the notes (&R; &<>&). .subsection "Repeated rest bars" SUBSECTreprest .index "rests" "repeated bars" .index "repeated rest bars" .index "many bars rest" When each bar in a sequence of bars contains only a single whole-bar rest specified using R or Q (but not S) they are amalgamated into a single printed bar. If the first bar's rest used Q, nothing is printed in the bar. Otherwise, a conventional `long rest' sign is output, with the number of bars printed above. Of course, this happens only if all the staves in the current printing have rest bars, typically when one or more parts are being extracted from a score. By default, any number of repeated rest bars are shown in the same way, using the &{{{x0w}}}& sign, which is the modern convention. Older music sometimes used special code signs when the number of bars was between two and eight; see the &%codemultirests%& heading directive if you want to print music in this style. .index "fermata" "with whole bar rest" A rest bar is considered eligible for amalgamation with its neighbours if it contains nothing but an unadorned rest item. A rest bar with a fermata on the rest (for example) always prints as a separate bar. However, the initial bar of an amalgamated sequence is permitted to contain items such as key and time signatures and a beginning repeat mark, and the last bar in a sequence may end with a terminating repeat sign or a clef. A text item is also permitted in the first bar of an amalgamated sequence, for example, to specify a tempo. If you do not want such a bar to be amalgamated, you must specify its rest using S instead of R. .code [10]R! | "G.P." S! | [8]R! | .endd If &`R`& is used instead of &`S`& in this example, the last nine bars are printed as a single multi-bar rest when this stave is the only one selected for printing. As it stands, the G.P. bar is printed on its own, followed by an 8-bar multiple rest. .index "tacet movements" .index "repeated rest bars" "width of" .index "repeated rest bars" "stretching" When a multi-rest bar is stretched sufficiently, the long rest sign is also stretched. This provides a way of printing a single multi-rest bar across the whole page for a &'tacet'& movement in an instrumental part. For example: .code [stave 1 treble 1] [space 200][40]R! [endstave] .endd If left and right justification is in effect (&R; &<>&), all the &%[space]%& directive has to do is to widen the bar sufficiently for the justification to kick in. It must be given before the repeat count, to ensure that the remaining bars contain nothing other than the rest. If a widened repeated rest is not at the start of a line, and there is something at the start of the first bar, the situation is a bit more complicated. Consider: .code [stave 1 treble 1] EF | GG | [key E$ space 200][30]R! [endstave] .endd Whether the &%[space]%& directive appears before or after the &%[key]%& directive makes no difference, because what &%[space]%& affects is the position of the following note or rest. A mid-line key signature is always positioned relative to the following note/rest position. In this example, the effect of &%[space]%& is to move both the key signature and long rest sign well to the right. The (messy) solution is to use &%[move]%& directives to adjust their positions: .code [stave 1 treble 1] EF | GG | [space 200 move -200 key E$ move -100][30]R! [endstave] .endd Notice that the second &%[move]%& specifies half the distance of the first. .index "repeated rest bars" "squashing" The &%[space]%& directive can be used with a small negative argument to make a repeated rest bar a bit narrower than the default. Reducing it by up to 20 points is usually reasonable. .subsection "Note expression and options" SUBSECTnoteexpr .index "notes" "expression" .index "notes" "options" .index "notes" "grace" .index "notes" "accents" .index "options" "for notes" The expression/options portion of a note includes all additional marks such as staccato, emphasis, trills, mordents and fermatas. It can also indicate that the note is a grace note, force the stem of the note to point up or down, indicate the lengthening or shortening of the note's stem, change the position of accents and augmentation dots, and so on. For many notes there are no such special marks and this part will not be present. When it is present, it consists of two backslash characters, between which there are one or more letters or other characters indicating the expression or option required. For example, a dot and a minus sign signify a staccato dot or a solid line emphasis, respectively. The possible character sequences that can occur are as follows: .index "expression marks" .index "staccato" .index "staccatissimo" .index "grace notes" .index "stems" "direction" .index "accents" "on notes" .index "tremolo" .index "harmonics" .index "trill" .index "arpeggios" .index "chords" "spread" .index "spread chords" .index "fermata" "specifying" .index "mordent" .index "turns" .index "bowing marks" .index "stems" "length" .index "length" "of stems" .index "centred notes" .itable none 0 0 2 66 left 300 left .row &`\/\`& "single tremolo mark" .row &`\//\`& "double tremolo mark" .row &`\///\`& "three tremolo marks" .row &`\~\`& "`upper' mordent sign" .row &`\~|\`& "`lower' mordent sign" .row &`\~~\`& "double `upper' mordent sign" .row &`\~~|\`& "double `lower' mordent sign" .row &`\!\`& "print accent on stem side, trill or fermata below (&R; &<>&)" .row &`\.\`& "staccato dot" .row &`\..\`& "staccatissimo mark" .row &`\:\`& "invert augmentation dot position (notes on lines, &R; &<>&)" .row &`\::\`& "move augmentation dot up (notes in spaces, &R; &<>&)" .row &`\-\`& "solid line emphasis mark" .row &`\>\`& "horizontal wedge emphasis mark" .row &`\'\`& "`start of bar' accent" .row &`\a`&<&'n'&>&`\`& "accent number <&'n'&> (&R; &<>&)" .row &`\ar\`& "arpeggio mark" .row &`\ard\`& "arpeggio mark with downward arrow" .row &`\aru\`& "arpeggio mark with upward arrow" .row &`\c\`& "print on coupled stave (&R; &<>&)" .row &`\C\`& "centre if only note in bar" .row &`\d\`& "string down bow (organ heel) mark" .row &`\f\`& "fermata (pause) above note" .row &`\f!\`& "fermata (pause) below note" .row &`\g\`& "grace note" .row &`\g/\`& "grace note with slanted line" .row &`\h\`& "do not print on coupled stave (&R; &<>&)" .row &`\m\`& "masquerade note (&R; &<>&)" .row &`\o\`& "small circle over note (harmonic)" .row &`\sd\`& "force note stem down" .row &`\su\`& "force note stem up" .row &`\sw\`& "swap note stem direction in beam (&R; &<>&)" .row &`\sl`&<&'n'&>&`\`& "lengthen stem by <&'n'&> points (&R; &<>&)" .row &`\sl-`&<&'n'&>&`\`& "shorten stem by <&'n'&> points (&R; &<>&)" .row &`\sm\`& "print with small (cue sized) notehead (&R; &<>&)" .row &`\sp\`& "spread chord" .row &`\t\`& "turn" .row &`\t|\`& "inverted turn" .row &`\tr\`& "trill" .row &`\tr#\`& "trill, with a sharp sign above" .row &`\tr$\`& "trill, with a flat sign above" .row &`\tr%\`& "trill, with a natural above" .row &`\u\`& "string up bow (organ toe) mark" .row &`\v\`& "small, closed vertical wedge accent" .row &`\V\`& "large, open vertical wedge accent" .row &`\x\`& "cancel default expression (&R; &<>&)" .endtable .music "music39" 120 4,-16 More than one of these character sequences can be present between the backslashes, and spaces can be used to separate them, for example: .itable none 0 0 2 66 left 200 left .row "&`#g\.-\`&" "staccato and tenuto" .row "&`\tr sd\`&" "trill and stem down" .endtable However, staccato and staccatissimo cannot be used together. Notes that are marked as grace notes can be of any length &-- they do not have to be quavers or semiquavers. PMW beams grace notes where possible. The stems of grace notes always point upwards, whatever the pitch, unless an explicit downward stem is requested by specifying &`\sd\`&. .index "grace notes, stem direction" If there is more than one grace note in sequence, specifying a downward stem for the first one causes all of them to have downward stems. The sequences &`\c\`& and &`\h\`& are used to override the default note placing when coupled staves are in use (see &%[couple]%&). The single and double colon options are concerned with the vertical placement of augmentation dots (&R; &<>&). When there is a whole bar rest in some staves, and just a single note in the remaining staves, it sometimes looks odd that the rest is centred horizontally in the bar and the note is not, especially if the note is a semibreve. The option &`\C\`&, if used on the first note in a bar, causes it to be centred like a whole bar rest, provided that the note has a length equal to the current bar length. (Do not confuse &`\C\`& with &`\c\`&.) .subsection "General accent notation" SUBSECTgenaccnot The item &`\a`&<&'n'&>\ is a general notation for specifying accents. The values that <&'n'&> may take are: .itable none 0 0 2 12 left 200 left .row &`1`& "staccato dot&~ &{vv>~}&" .row &`2`& "horizontal bar&~ &{vvT~}&" .row &`3`& "horizontal wedge&~ &{vvU~}&" .row &`4`& "small, closed vertical wedge&~ &{~vYv}&" .row &`5`& "large, open vertical wedge&~ &{W}&" .row &`6`& "string down bow&~ &{e}&" .row &`7`& "string up bow&~ &{g}&" .row &`8`& "ring (harmonic)&~ &{†}&" .row &`9`& "`start of bar' accent&~ &{~vœv}&" .row &`10`& "staccatissimo mark&~ &{Â}&" .endtable .subsection "Position of accents and ornaments" SUBSECTposaccorn By default, accents and the harmonic ring are printed on the opposite side of the notehead to the stem, but fermatas, trill signs, and other ornaments are printed above the note, independent of the stem direction. .index "accents" "position of" The addition of &`!`& to the option causes PMW to print an accent or harmonic ring on the same side of the notehead as the stem, which is occasionally necessary when more than one part is being printed on the same stave. If &`!`& is used with a fermata or trill or other ornament, .index "fermata" "below note" .index "trill" "position of" .index "ornaments" "position of" the sign is printed below instead of above the note. String bowing marks are not affected by the use of the &`!`& option. They are printed above the stave unless the &%[bowing]%& directive has specified othewise. .subsection "Moving accents and ornaments" .index "accents" "position of" .index "ornaments" "position of" .index "moved accents" .index "moved ornaments" It is possible to move all accents and ornaments except tremolos up and down, or left and right. This is done by placing &`/u`&, &`/d`&, &`/l`&, or &`/r`&, as appropriate, followed by a number of points, after the accent or ornament specification. .code a\./u4\ g\f/u10\ .endd This example raises the staccato dot by 4 points and the fermata by 10 points. For both accents and ornaments, the vertical movement specified is scaled by the relative size of the stave. Moving an accent does not affect the placement of anything else. For example, if there is text below a note with an accent that is also below it, moving the accent does not affect the vertical position of the text. There is a possibility of ambiguity if a tremolo and a moved accent or ornament are specified on the same note, as the tremolo notation is a slash. To avoid this, the tremolo must be specified before (for example) a fermata: &`g\/f\`& is correct, but &`g\f/\`& causes an error, because it is taken as a fermata with an incomplete movement request. .index "tremolo" "moving" .index "moved tremolos" Tremolo markings themselves can be moved up and down, but not left or right. The notation looks confusing, but is consistent: for example, &`G\//u4\`& specifies a single tremolo that is moved up by 4 points. .subsection "Bracketing accents and ornaments" .index "accents" "bracketing" .index "ornaments" "bracketing" .index "bracketing accents" .index "bracketing ornaments" Brackets are sometimes used to indicate editorial accents and ornaments. If there is a sequence of editorially marked notes, the sequence may be bracketed rather than each individual note. The following may be used after the specification of any accent or the specification for a fermata, mordant, trill, or turn, to indicate bracketing: .itable none 0 0 2 30 left 300 left .row &`/(`& "precede with an opening parenthesis" .row &`/[`& "precede with an opening square bracket" .row &`/)`& "follow with a closing parenthesis" .row &`/]`& "follow with a closing square bracket" .row &`/b`& "enclose in parentheses" .row &`/B`& "enclose in square brackets" .endtable Here is a short example: .code d'\../b\ e'\../(\ e'\../)\ g\-/B\ | .endd .music "music53" 40 4,-14 .subsection "Repeated expression marks" SECTrepexpr .index "notes" "repeated expression" .index "repeated expression marks" If a sequence of notes are all to be marked with the same accent, this can be specified by giving the expression syntax for one note inside square brackets. .code [\.\] a b c d .endd This example causes all the notes to be marked staccato. This feature is limited to accents and a few other expression marks. The only characters that may appear within backslashes in this context are: .itable none 0 0 2 60 left 300 left .row &`.`& "staccato" .row &`..`& "staccatissimo" .row &`-`& "horizontal bar" .row &`>`& "horizontal wedge accent" .row &`v`& "small, closed vertical wedge" .row &`V`& "large, open vertical wedge" .row &`'`& "`start of bar' accent" .row &`o`& "ring (harmonic)" .row &`d`& "string down bow mark" .row &`u`& "string up bow mark" .row &`a`&<&'n'&> "accent number <&'n'&>" .row &`/`& "single tremolo mark" .row &`//`& "double tremolo mark" .row &`///`& "triple tremolo mark" .row &`!`& "put accents on other side of notes" .endtable Note that the movement and bracketing options that are available for expression marks on individual notes cannot be used here. To cancel a setting, two backslashes with nothing between them should be given between square brackets. Cancellation can also be carried out for an individual note by means of the note option letter &`x`&. In the following example, the note D is printed without a staccato dot. .code [\.\] a b c d\x\ e f g [\\] .endd Expression/option items are processed from left to right. If there are two or more options being defaulted, &`x`& cancels them all, but one can be put back again afterwards. .subsection "Stem lengths" SUBSECTstemlengths .index "length" "of stems" .index "stems" "length" The note option consisting of the letters &`sl`& followed by a number is meaningful for notes shorter than a semibreve. It specifies a lengthening or shortening of the note's stem. The number specifies the amount by which the stem is to be changed; positive numbers cause lengthening, negative numbers cause shortening. .code a\sl3.4\ b\sl-1.2\ .endd This example lengthens the stem of the first note by 3.4 points and shortens the stem of the second by 1.2 points. PMW maintains a minimum stem length beyond which shortening is ignored. The &%shortenstems%& heading directive can be used to request PMW automatically to shorten note stems that point in the `wrong' direction &-- if this is happening, any explicit adjustment is added to the automatically computed value. If a note that is part of a set of beamed notes has its stem length changed, .index "beaming" "stem length" .index "stems" "length in beam" this may cause the vertical position of the beam to change. However, it is not always easy to see which is the note whose stem actually determines the beam's vertical position. A better way to adjust beams is to use the &%[beammove]%& directive. .subsection "Masquerading notes" SUBSECTmasquerade .index "masquerading notes" .index "notes" "masquerading" .index "rests" "masquerading" For special effects (for example, tremolos between notes &-- see &%[tremolo]%&) it is sometimes desirable to print a note or rest of one kind in place of another, for example a crotchet instead of a quaver, or a breve instead of a semibreve. PMW supports this kind of &'masquerading'&. It is requested by the letter &`m`& in the options part of the note, and the type of note required is indicated by the form of the &`m`& in the same way as for normal notes. The only effect of masquerading is to substitute a different note for printing; the position of the note is not affected. When a masquerade is requested, an augmentation dot can be requested with it, and if it is not, no dot is printed, even if the original note is augmented. .index "dotted notes" "dot before bar line" The ability to add augmentation dots makes it easier to print renaissance music in the style with a dot before a bar line instead of a tie to a quaver in the next bar. .itable none 0 0 2 60 left 300 left .row &`G+\M++\`& "prints a breve instead of a semibreve" .row &`g-\m\`& "prints a crotchet instead of a quaver" .row &`g.\M\`& "prints an undotted minim instead of a dotted crotchet" .row &`g\m.\`& "adds a dot to a crotchet without lengthening it" .endtable If the note is beamed, this option is restricted in its use: the only available facility is to print a minim notehead instead of a crotchet notehead. .code g-\M\ b- d'- .endd .index "beaming" "across rests" In this example, the first notehead is printed as a minim. Masquerade requests for noteheads other than minims are ignored within beams. However, masqueraded &'rests'& are not restricted within beamed groups. This makes it possible to print (unconventionally) a crotchet rest under a beam, by using a construction such as &`r-\m\q-`& within a beamed group. Note the use of an invisible quaver rest to make the item's length up to a crotchet. .subsection "Expression items on rests" .index "rests" "expression items" .index "expression items and rests" Accent marks are not supported on rests, but pause marks (fermatas) are permitted. Other ornaments such as turns are allowed on invisible rests only. This gives a way of printing these marks on their own at positions in a bar that are not associated with printed notes. .subsection "Changing rest levels" SUBSECTchrele .index "rests" "level" .index "height of rests" A note option consisting of the letter &`l`& followed by a number is permitted for rests only. A negative number may be specified. This has the effect of moving the rest vertically up (for positive numbers) or down (for negative numbers) by the given amount. .code R\l4\ .endd This example prints a minim rest on the fourth instead of the third line. If rests are generally to be printed at a non-standard level, the &%[rlevel]%& directive can be used to avoid having to give this option on every rest. If this option is used in conjunction with &%[rlevel]%&, the effect is cumulative. .subsection "Triplets and other irregular note groups" SUBSECTplets .index "irregular note groups" In his book &'Music Notation'&, Gardner Read writes: ``Notating unequal groups &-- triplets against duplets or quadruplets, quintuplets against triplets, and so on &-- is one of the musician's most perplexing problems.'' PMW handles simple cases straightforwardly, but also has facilities for dealing with more general groups. One complication is in the choice of note-value to use for the irregular group. Gardner Read says: ``The note-values of the extraordinary group are always determined by the note-values of the ordinary group against which they are set. […] When, however, the number of notes in the irregular group exceeds twice the number of note-values in the regular group, the uncommon group must employ the next smaller note-value.'' This is not as simple as it sounds. Consider the case of five equal notes in a bar in 3/4 time. If the regular group is three crotchets, the irregular group should use crotchets because five is less than twice three; however, if the regular group is six quavers, the irregular group must use quavers, because an irregular group never uses longer notes than the regular group. .music "music49" 72 4,-14 In PMW input, brace characters (curly brackets) are used to enclose a group of notes that is not a standard division of a longer note or group. In simple cases, the opening brace is followed by a single number to indicate the number of notes in the irregular group. If this number is omitted, the group is assumed to be a triplet. .itable none 0 0 2 120 left 200 left .row "&`{a b c}`&" "three crotchets in the time of two" .row "&`{2 g-a-}`&" "two quavers in the time of three" .row "&`{5 c-d-e-f-g-}`&" "five quavers in the time of four" .endtable By default, PMW makes assumptions about the size of the regular group that is being subdivided, based on the number of subdivisions. However, in order to cope with more complicated cases, another parameter may also be set. The general form of an irregular note group is: .display &`{`&&'s'&&`/`&&'n'&&` `&<&'notes...'&>&`}`& .endd The number of notes in the irregular group is &'n'&, and &'s'& controls the size of the group that is being divided. If &'s'& (and its slash) are omitted, as in the simple examples above, a default value is chosen that works well in most common cases: .ilist If &'n'& is a power of two (2, 4, 8, 16), &'s'& defaults to three. Thus, the example &`{2`& &` g-a-}`& above is equivalent to &`{3/2`& &`g-a-}`&. .next Otherwise, the default is two, so the example &`{5`& &`c-d-e-f-g-}`& above is equivalent to &`{2/5`& &`c-d-e-f-g-}`&. .endlist A note in an irregular group can be longer or shorter than a normal note of the same type. For example, in a duplet, notes are longer, whereas in a triplet they are shorter. PMW modifies the lengths of irregular notes as follows: .olist When &'n'& is less than 2*&'s'&, the lengths of the notes in the irregular group are multiplied by &'s'&&`/`&&'n'&. In a triplet such as &`{g-g-g-}`&, where &'s'& and &'n'& have their default values of two and three, respectively, each quaver is shortened to 2/3 of its normal length, so three of them take up the time of two normal quavers. .next When &'n'& is 2*&'s'& or more, but less than 4*&'s'&, the lengths of the notes in the irregular group are multiplied by (2*&'s'&)/&'n'&. Thus every note in the group &`{2/5`& &`c-d-e-f-g-}`& is multiplied by 4/5, giving a total of four regular quavers, that is, two crotchets. .next When &'n'& is 4*&'s'& or more, the lengths of the notes in the irregular group are multiplied by (4*&'s'&)/&'n'&. .endlist These rules are sufficient to handle most cases. For example, the group &`{7`& &`f-g-a-b-f-a-g-}`& is a division of two crotchets into seven quavers. However, a division of three crotchets into seven quavers is notated on the music stave in exactly the same manner &-- music notation is ambiguous in this respect. It is not possible to determine what a group of quavers with a `7' above it actually means, without looking at the time signature or the rest of the bar, and PMW is not capable of analysing bars in this detail. This is an example of a case where it is necessary to specify &'s'& explicitly; the code for dividing three crotchets into seven quavers is &`{3/7`& &`f-g-a-b-f-a-g-}`&. Because of rule (2) above, this means that each note's length is multipled by 6/7 instead of 4/7. Published music is not always consistent in how some larger groups are notated. PMW can handle some of the alternative requirements. A division of three crotchets into 11 should use quavers, because 11 is less than 12, the number of semiquavers in three crotchets. The normal coding would be: .code {3/11 g-g-g-g-g-g-g-g-g-g-g-} .endd However, if you want to notate three crotchets divided into eleven, but using semiquavers instead of quavers, you can use this: .code {12/11 g=g=g=g=g=g=g=g=g=g=g=} .endd The length of each semiquaver is multiplied by 12/11, so the length of the group is 12 semiquavers, that is, three crotchets. The illustration below shows some of the examples discussed in this section, with regular crotchets on a second stave to show how the irregular groups are interpreted. .music "music48" 132 4,-20 &*Historical Note:*& The code for handling irregular note groups was re-written for the 4.20 PMW release because it had got too complicated to easily understand. The new behaviour, as described above, gives the same results in most cases, but there may be differences for some less common irregular groups. The old code also had an extra feature, which is retained for compatibility, but for which I cannot now dream up a useful example. If a minus sign is present before the slash that follows &'s'&, the size of the group that is being subdivided is halved. To divide three quavers into eleven using quavers, you could write this: .code {3-/11 g-g-g-g-g-g-g-g-g-g-g-} .endd However, this is not standard notation; because there are more than 6 notes in the irregular group, semiquavers should normally be used. .subsection "Options for irregular note groups" By default, PMW prints the number for an irregular note group (for example, the `3' for a triplet) on the same side of the noteheads as the stems. The &%tripletfont%& directive is used to specify the size and type of font used. If the notes are beamed, just the number is printed; if not, a horizontal `bracket' is printed as well. .index "irregular note groups" "suppressing the number" .index "irregular note groups" "moving the number" The whole mark can be moved, forced to be above or below the stave, and the horizontal bracket can be omitted. The mark may also be totally suppressed. The &%[triplets]%& directive can be used to set defaults for some of these options. For individual groups, the following qualifiers may appear after the opening curly bracket, following any numbers that may be present: .itable none 0 0 2 60 left 200 left .row &`/a`& "put mark above" .row &`/a`&<&'n'&> "put mark <&'n'&> points above" .row &`/b`& "put mark below" .row &`/b`&<&'n'&> "put mark <&'n'&> points below" .row &`/n`& "omit bracket" .row &`/x`& "suppress mark altogether" .row " " .row &`/lx`& "invert left-hand jog" .row &`/rx`& "invert right-hand jog" .row " " .row &`/d`&<&'n'&> "move mark down <&'n'&> points" .row &`/l`&<&'n'&> "move mark left <&'n'&> points" .row &`/r`&<&'n'&> "move mark right <&'n'&> points" .row &`/u`&<&'n'&> "move mark up <&'n'&> points" .row " " .row &`/ld`&<&'n'&> "move left end of bracket down <&'n'&> points" .row &`/lu`&<&'n'&> "move left end of bracket up <&'n'&> points" .row &`/rd`&<&'n'&> "move right end of bracket down <&'n'&> points" .row &`/ru`&<&'n'&> "move right end of bracket up <&'n'&> points" .endtable In fact, &`/x`& suppresses the mark in the default state only. If &%[triplets]%& was used to suppress all irregular note group marks, &`/x`& causes the mark to be printed. In other words, it inverts the mark printing state. When a dimension is given after &`/a`& or &`/b`&, the value given is the position above or below the stave of the baseline of the numerical text for a horizontal bracket. Subsequent adjustment of either end of the bracket is then possible, as described above. If no dimension is given after &`/a`& or &`/b`&, the vertical position is computed from the positions of the notes that form the group. The left and right movements are available only if no horizontal bracket is being printed; they are ignored otherwise. Here are some examples of the use of these options: .code {3/5/d1 a-a-a-b-b-} {/b a-b-c-} {/a/u3 dfg} {2/d2/n a-a-} .endd If either of the &`/a`& or &`/b`& options is specified, it is assumed that the mark is being moved to the other side of the noteheads, and therefore the bracket is automatically added. The &`/n`& qualifier must be used if a bracket is not required in this circumstance. By default, PMW draws the brackets for triplets and other irregular note groups horizontal. Occasionally a sloping bracket is required; these can be obtained by means of the &`/lu`&, &`/ld`&, &`/ru`&, and &`/rd`& options on the opening curly bracket. They have the effect of moving the left or right hand ends of the bracket up or down, respectively, by an amount specified after the option. .code {/ld10 dfa} .endd This example moves the left hand end down by 10 points. Very occasionally, when using coupled staves, it is useful to be able to alter the direction of the `jog' at one end of a triplet bracket so that it points in the opposite direction to the jog at the other end. The qualifiers &`/lx`& and &`/rx`& request this, for the left-hand and right-hand jogs, respectively. .subsection "Beam breaking in irregular note groups" .index "irregular note groups" "beaming" .index "beaming" "irregular note groups" The appearance of an irregular note group does not of itself cause a break in the beaming, and an explicit beam break must be specified if required. Strictly, beam breaking indicators and the tie indicator are supposed to come immediately after the final note, before the terminating } character, but in fact PMW allows the } character to precede or follow the tie and beam indicators. Thus the following are all permitted: .code {g=g=g=,}g= {g=g=g=},g= {g=g=g=_}g {g=g=g=}_g .endd When both a tie and beam break indicator are present, the } character must come either before or after both of them, not in between. .subsection "Ties and short slurs" SUBSECTshortslur .index "ties" "specifying" .index "slurs" "over two notes, specifying" .index "short slurs (over two notes)" Two adjacent notes may be tied, or a slur generated between them, by ending the first note with an underline character. PMW does not distinguish between a tie and a slur between two adjacent single notes, except that when the underline represents a tie (the two notes have the same pitch), the stem direction of the second note defaults to being the same as that of the first note, and if a MIDI file is being generated, the tie is honoured. The stem direction defaulting does not happen in the case of a short slur, when the two notes have different pitches. In both cases, explicit stem directions can be specified if the defaults are not what you want. .index "chords" "tied" In contrast to single notes, when an underscore follows a chord it causes tie lines to be drawn only between notes of the same pitch in the chord and the following chord. Thus an underscore always represents one or more ties when it follows a chord. The &%[slur]%& directive must be used when slurs are required between adjacent chords (and when slurs cover more than two single notes). If two notes (or chords) that form part of a beam are tied, it does not cause the beam to be broken. An explicit beam break must be specified if required. .index "ties" "direction" Ties are normally printed on the opposite side of the noteheads to the stems. A tie on a single note can be forced to be above or below the notehead by adding the qualifier &`/a`& or &`/b`& after the underline character. .code a_/a | a e'_/b | e' .endd In this example, the tie between the A notes is forced above, and the tie between the E notes is forced below. Such an indication takes precedence over the &%[ties]%& stave directive, which sets a default position for all subsequent ties. The same qualifiers are also available for chords, where they force &'all'& the tie marks to be drawn in the specified direction. It is also possible, for a chord, to specify that only some of the tie marks are to be drawn above or below the noteheads, the remainder appearing on the opposite side. This is done by inserting a digit between the &`/`& character and the letter that follows. .code (ace)_/1a (ace) (dfa)_/2b (dfa) .endd These examples show two different ways of specifying that one of the three tie marks is to be drawn above the noteheads, with the other two below. .subsection "Editorial and intermittent ties" .index "editorial ties" .index "ties" "editorial" .index "dashed ties" .index "ties" "dashed" .index "dotted ties" .index "ties" "dotted" Ties can be marked editorial, or printed as dashed or dotted, by means of the following qualifiers, which are the same options as for slurs: .itable none 0 0 2 30 left 300 left .row &`/e`& "editorial &-- a short line is drawn through the tie" .row &`/i`& "intermittent &-- that is, dashed" .row &`/ip`& "intermittent periods, that is, dotted" .endtable .subsection "Hanging ties" SUBSECThangingties .index "hanging ties" .index "ties" "hanging" .index "invisible items" "notes" .index "notes" "invisible" Occasionally there is a requirement to print tie marks that do not end on another note or chord, but simply extend some distance to the right to indicate that the note or chord should be held on for some time. These can be notated by making the second note or chord invisible using the stave directive &%[notes off]%&. In the case of a chord, the ends of all the tie marks are vertically aligned when this is done. To help with the positioning of the ends of this kind of tie, tie marks are allowed to continue over rests (usually invisible ones). .code (cde)_ | qq [notes off] (cde) [notes on] | .endd This example extends the ties to the position of the third crotchet in an otherwise empty bar. .subsection "Glissando marks" .index "glissandos" Glissando marks are available for single notes. They are not available for chords. (PMW will accept the notation for chords, but will not do the correct thing with it.) The glissando notation is an extension of the short slur notation. If a short slur mark (underscore) is followed by &`/g`&, a glissando line is drawn between the relevant notes. If both a slur and a glissando mark are required, &`/s`& must be added. If the slur is being forced above or below with &`/a`& or &`/b`&, it is not necessary to use &`/s`&. .itable none 0 0 2 90 left 200 left .row &`f_`& "slur only" .row &`f_/g`& "glissando only" .row &`f_/s/g`& "glissando and slur" .row &`f_/g/a`& "glissando and slur, slur above" .endtable It may occasionally be necessary to insert extra space between notes that are joined by glissando marks. There are examples of the use of glissandos in sections &<>& and &<>&. .subsection "Input short cuts" .index "input short cuts" .index "repeated notes" .index "notes" "repeated" .index "notes" "short cut entry" .index "short cut note entry" A number of short cuts are available to reduce the amount of typing needed. They do not affect the appearance of the output in any way. .ilist The previous note or chord can be repeated exactly, by using the letter &`x`& instead of a note letter. An optional number may follow &`x`& to indicate the number of repetitions. A beam break (&R; &<>&) or a tie may follow, and a subsequent &`x`& can be used for further repetitions. For example, a bar of eight quaver chords, broken in the middle, can be written like this: .code (e-gb) x3; x4 | .endd A rest may intervene between the original note and its copy, but there must be no clef, octave, or transposition change between them. .next The previous note or chord's pitches can be copied, with a different note length and with different options, by using the letter &`p`& instead of a note letter. The length of the note is determined by the case of the letter &`p`& and any hyphens, equals, or plus signs that follow, and normal note options such as staccato, etc., may follow as well. As in the case of &`x`&, there must be no clef, octave, or transposition change between the original and the copy. For example, a dotted crotchet chord followed by a quaver chord of the same pitches can be notated like this: .code (d.fa) p- .endd .endlist The letter &`p`& can be followed by another &`p`&, possibly with a different note length, and &`x`& may follow &`p`& and &'vice versa'&. In earlier versions of PMW, they had to be in the same bar as the note or chord to which they referred; this is no longer the case. For both &`x`& and &`p`&, accidentals are not reprinted within a bar, though they affect the pitch if a MIDI file is being generated. However, when &`x`& or &`p`& is used at the start of a bar, and the note or chord is not tied to the previous one (in the previous bar), the accidentals are repeated. If such a note or chord is tied to the previous one, no accidentals are printed, but if there is a subsequent use of &`p`& or &`x`&, the accidentals &'are'& then repeated, according to the usual notation convention. .code a b #c_ | P p x .endd In this example, an accidental is not printed before the minim at the start of the second bar, but one is printed before the following crotchet. For technical reasons, &`x`& and &`p`& are not available after notes that print their accidentals above or below. .section "Note beaming" SECTbeaming .index "notes" "beaming" .index "beaming" "breaking a beam" .index "breaking a beam" PMW makes no beaming breaking decisions based on position in the bar or any other criteria, but leaves it entirely up to the creator of the input file to specify what is required. The &%beamthickness%& heading directive can be used to set the thickness of line used for drawing beams. .subsection "Beam breaking" Notes and chords shorter than a crotchet are automatically beamed together unless they are separated in the input by one of the following beam breaking characters: .display &`;`& break all beams (semicolon) &`,`& break secondary beams only (comma) .endd .index "beaming" "across rests" .index "rests" "beaming across" PMW automatically beams across rests that are shorter than a crotchet, unless a break in the beam is specified. A beam breaking character must be entered immediately after the end of a note or after the closing parenthesis of a chord, without any intervening space. If the note or chord is tied (with an underscore character), the beam break must follow the underscore. If any other character follows a note or chord, no breaking happens. If the note or chord is the last of an irregular group (for example, triplets), the beam break may appear after the closing curly bracket. Three pairs of beamed quavers could be notated like this: .code g-e-; f-a-; b-a- .endd A single digit may follow a comma to specify how many beams &'not'& to break &-- no digit is equivalent to 1. .code g=-a=-b=-,2 c'=-d'=-e'=- .endd This example results in two solid beams, with a third that is broken in the middle. A value that is too large causes no beams to be broken. .index "beaming" "aligning adjacent beams" A value of zero causes all beams to be broken; this is different to the normal semicolon beam break, because it causes the beams on either side of the break to align with each other. After a secondary beam break, a small amount of extra horizontal space (1.3 points) is inserted. Without this, the gap that has only a primary beam appears to be too narrow. .subsection "Beaming over bar lines" SUBSECTbeamoverbar .index "beaming" "over bar lines" .index "bar lines" "beaming over" Consistent syncopation employing beamed notes is more logical and more graphic when the beaming is carried across the bar lines. This effect can be achieved in PMW by following the bar character by the &`=`& character. .code [time 2/4] r- g g- |= g-; g g- |= g-; g r- | .endd This notation causes a beamed group to extend into the subsequent bar; in the example above, two pairs of beamed quavers are printed, each straddling a bar line. Without the &`=`& characters after the bars, each quaver would be printed separately. A single beam can be carried over one bar line only; it cannot be continued over a second bar line. However, as the example shows, a bar may have carried-over beams at both ends. When such a beamed group occurs at the end of a system, the beam is drawn to the final bar line, and, on the next system, an `incoming' beam is drawn to indicate the continuation. By default, this has the same slope as the first part of the beam. This can, however, be altered by means of the &%[beamslope]%& directive, placed at the start of the second bar. A &%[beammove]%& directive can also be used in this position, where it will affect only the continued portion of the beam. &*Warning:*& Because PMW normally works on only one bar at a time, continued beams are not handled in quite the same way as other beams. In particular, the computation of stem directions for the notes takes place independently in each bar, taking into account only the notes in that bar. This means that in some cases the notes in the second bar will by default have their stems in the opposite direction to the rest of the beam. This is not usually what is wanted, and it can give rise to errors when PMW cannot fit the notes on both sides of the beam. In these cases, it is necessary to specify an explicit stem direction for the first note of the second bar. .subsection "Beaming across rests at beam ends" SECTbeamendrests .index "beaming" "across rests at beam ends" .index "rests" "beaming across" A recent innovation in notation is the continuation of beams over rests when they are at the start or end of the beam. This is thought to be helpful in indicating rhythmic groupings. .index "&%beamendrests%&" .index "&%nobeamendrests%&" PMW handles rests in the middle of beams automatically, but does not by default draw beams over rests at the ends of beams. If you want this to happen, you can request it by specifying &%beamendrests%& in the heading. There is also &%nobeamendrests%&, which can be used to cancel this effect in a subsequent movement. Explicit beam breaks can be used to prevent an individual beam from covering a rest. Vertical movement of the rests is taken into account when computing the position of the beam. As in all beams, this can be adjusted by means of the .index "&%[beammove]%&" &%[beammove]%& directive. Beams covering rests at the end may be continued over bar lines, as described in the previous section, but only if there is at least one non-rest in the first bar. .subsection "Accelerando and ritardando beams" SUBSECTaccritbeams .index "beaming" "accel. and rit. " .index "accelerando beams" .index "ritardando beams" .index "&%[beamacc]%&" .index "&%[beamrit]%&" In modern music, accelerandos and ritardandos are sometimes notated by beams that fan out or in. PMW has some simple support for printing these. The stave directives &%[beamacc]%& and &%[beamrit]%& specify that the next beamed group in the bar is of the appropriate type. The notes of the group should normally be input as quavers. In most cases they are an irregular group and need to be enclosed in curly brackets, with an appropriate number. It is not usual to print the number, so this is normally turned off by means of the &`/x`& option on the irregular note group. PMW prints accelerando and ritardando groups by drawing the primary beam as normal, then drawing one or two more inside beams, with one end fixed and the other getting nearer to the noteheads. By default, three beams in total are drawn, but this number can be changed in the &%[beamacc]%& or &%[beamrit]%& directive by following it with the number 2, in which case only two beams are drawn. This setting lasts until the end of the stave, or until a subsequent &%[beamacc]%& or &%[beamrit]%& directive containing the number 3 is encountered. The slope of the primary beam is the same as it would be for a conventional beamed group. If this is horizontal, a `fanned' beam does not always look right, and it is necessary to use the &%[beamslope]%& directive to change it. .code [beamslope 0.1] [beamacc] {5/x g-g-g-g-g-} | [beamslope -0.1] [beamrit] {5/x g-g-g-g-g-} | [beamslope 0.1] [beamacc 2] {5/x g-g-g-g-g-} | [beamslope -0.1] [beamrit] {5/x g-g-g-g-g-} | .endd .music "music38" 32 4,-20 In some cases it is also necessary to move the beams away from the noteheads using the &%[beammove]%& directive. .subsection "Beams with notes on both sides" SUBSECTbeamsides .index "beaming" "notes on both sides" .index "notes" "on both sides of beam" The stem direction that is determined for a beamed group by the rules described in section &<>& is the default, that is, it is the direction used for those notes in the group whose direction is not otherwise specified. It is possible to have notes on the non-default side of the beam by requesting an explicit stem direction for them. This facility is of most use in two-stave keyboard parts when the staves are `coupled' (see the &%[couple]%& directive). If there is a run of notes on one side of the beam followed by a run of notes on the other side, the note option &`\sw\`& can be used to swap the default stem direction for the note on which it appears and for all subsequent notes in the beam, but only if the first note of the beam has its direction explicitly specified. .code [stave 1 treble 1 couple down] g`-f`-a-\sd\ | e`-\su\f`-g`-g-\sw\a-b- | [endstave] [stave 2 bass 0] q-q-q- | Q! | [endstave] .endd .music "music40" 64 8,-20 In this example, the default stem direction for the first beam is upwards because of the two low notes, but the third note has its stem forced downwards, so is printed on the other side of the beam. The &`\su\`& option in the second beam causes the first three notes to have their stems up, and the &`\sw\`& option forces the last three to have their stems down. This option can be used as many times as necessary in a beam. If &`\su\`& were not present on the first note, &`\sw\`& could not be used on the fourth, because the default direction is not known at the time &`\sw\`& it is processed (it depends on the pitches of all the notes in the beam). The arrangement of beams and beamlets for beams with notes on both sides follows the general principle of attempting to avoid `beam corners' wherever possible. Some variation in this arrangement can be obtained by making use of secondary beam breaks. The &%[beamslope]%& and &%[beammove]%& directives, which adjust the slope and vertical position of a beam, can be used as for any other beam. When there are only two notes in a beam, it is almost always possible to print them with their stems going in opposite directions, even though sometimes this leads to extremely slanted beams. When there are more than two notes, however, it is sometimes not possible to find a way of positioning the beam if the notes are too close together in pitch. When this happens, PMW outputs an error message. .section "Stem directions" SECTstemdir .index "stems" "direction" .index "direction of stems" .index "notes" "stem direction" This section documents the default rules for choosing a stem direction for a note or a chord. Some variation in the rules can be made by means of the &%stemswap%& heading directive (&R; &<>&). The `stem swap level' is normally the middle line of the stave, but can be changed by the &%stemswaplevel%& directive (&R; &<>&). .subsection "Preliminary" 1. The `pitch' of a chord, for stem-decision purposes, is the average pitch of its highest and lowest notes. 2. The `pitch' of a beamed group, for stem-decision purposes, is the pitch of the note that is furthest away from the stem swap level. 3. Stem directions are computed for all notes, even breves and semibreves. In the case of these long notes the notional stem direction can affect the stems of subsequent or previous notes, and also the printing of chords containing adjacent notes. .subsection "Rules for non-beamed notes and chords" These rules are given in order of priority. `The previous note' includes the last note of a previous beamed group, if relevant. What happens to notes at the stemswap level (rules N5 and N6) can be changed by use of the &%stemswap%& directive (&R; &<>&). N1. If an explicit stem direction is specified on a note, it is used. N2. If a default is set by the stave directive &%[stems up]%& or &%[stems down]%&, it is used. N3. If the note is tied to the previous note, that is, the previous note is followed by an underscore and has the same pitch, the same direction as the previous note is used, even if this note is the first in a bar, provided the previous note's direction does not depend on this note's. N4. If the note is above or below the stem swap level, its stem goes down or up, respectively. N5. The note is at the stem swap level. If it is the first in the bar, or if all preceding notes in the bar have used this rule, its stem goes the same way as the next note in the bar that does not use this rule. If there are no more such notes in the bar, its stem goes the same way as the last note of the previous bar. If this is the first bar of the piece, the stem goes up. N6. The stem goes the same way as the previous note. .subsection "Rules for beamed groups" .index "beaming" "default stem direction" .index "stems" "direction in beamed groups" B1. If the stem direction of the first note in the group is forced by N1, N2, or N3 above, that direction is used as the default for the group. B2. If the `pitch' of the beamed group is above or below the stem swap level, the stems go down or up, respectively, by default. B3. The default stem direction is taken from the previous note. If there is no previous note, the stems go upwards. Normally, all the notes in a beam are printed on the same side of the beam, with their stems in the default direction for the beam, but it is possible to specify that some are to be printed on the other side of the beam (&R; &<>&). .section "Text strings in stave data" SECTtextitems .index "text" "on staves" .index "underlay" .index "overlay" .index "figured bass" "specifying" Section &<>& gives details of the special facilities that are applicable only to underlay or overlay text, that is, the sung words (lyrics) in a voice part. This section applies to text in general, with some particular features that are relevant only for non-underlay/overlay text. By default, text strings are printed below the stave in an italic font, and positioned according to the following note. The &%[textfont]%& directive can be used to specify a default font for ordinary (that is, not underlay, overlay, or figured bass) text. Rehearsal marks are a special form of text and are specified in a slightly different manner (&R; &<>&). The &%[text]%& directive provides a way of changing the default position of the text to be above the stave, rather than below; it can specify a fixed position (above or below the stave) or allow the position to be determined by PMW. Alternatively, &%[text]%& can specify that unqualified strings are underlay, overlay, or figured bass text. Any individual string can always be explicitly qualified to indicate its type. Underlay, overlay, and figured bass text is by default printed in the roman typeface. The directives &%[underlayfont]%&, &%[overlayfont]%&, and &%[fbfont]%& can be used to change the default font for these kinds of text. Text strings are coded in among the notes of a stave, and are, like all strings, enclosed in double quote characters. The escape character conventions using the backslash character that apply to all PMW strings are relevant (&R; &<>&). In particular, within any text string, the font can be changed by the use of the appropriate escape sequences. The closing double-quote of the string may be followed by one or more options, separated from the quote and from each other by slash characters. The following are available: .index "text" "qualifiers" . *** In this table, some of the entries overflow their cell width, so they . *** have to have &~ instead of spaces. This doesn't matter, because the . *** third column is used only for some lines that have narrow text in the . *** second column. .itable none 0 0 3 60 left 130 left 150 left .row &`/a`& "print above the stave" .row &`/a`&<&'n'&> "print&~at&~fixed&~distance&~above&~the&~stave" .row &`/ao`& "print&~above&~the&~stave,&~at&~the&~overlay&~position" .row &`/b`& "print below the stave" .row &`/b`&<&'n'&> "print&~at&~fixed&~distance&~below&~the&~stave" .row &`/bu`& "print&~below&~the&~stave&~at&~the&~underlay&~position" .row &`/m`& "print&~below&~the&~stave,&~midway&~to&~the&~next&~stave" .row "&~" .row &`/ul`& "this text string is underlay" .row &`/ol`& "this text string is overlay" .row &`/fb`& "this&~text&~string&~is&~figured&~bass" .row "&~" .row &`/h`& "position&~halfway&~between&~notes" .row "&~" .row &`/bar`& "position at start of bar" "&BT12;" .row &`/ts`& "position at time signature" "&BM12;" .row &`/c`& "centre the text" "&BM12;" .row &`/e`& "align end of text" "&BM12;" .row &`/nc`& "do not centre" "&BM12;&~&~ignored for underlay/overlay" .row &`/ne`& "do not align the end" "&BM12;" .row "&~" "" "&BM12;" .row &`/box`& "print enclosed in a box" "&BM12;" .row &`/ring`& "print enclosed in a ring" "&BM12;" .row &`/rot`&<&'n'&> "rotate by <&'n'&> degrees" "&BB12;" .row "&~" .row &`/s`&<&'n'&> "print&~using&~size&~<&'n'&>,&~where&~<&'n'&>&~is&~between&~1&~and&~12" .row &`/u`&<&'n'&> "move up <&'n'&> points" .row &`/d`&<&'n'&> "move down <&'n'&> points" .row &`/l`&<&'n'&> "move left <&'n'&> points" .row &`/r`&<&'n'&> "move right <&'n'&> points" .row "&~" .row &`/ps`& "insert&~raw&~PostScript&~(for&~experts&~only)" .endtable If any of the movement options are repeated on a string, their effect is cumulative. This feature is useful when a repeated string with a movement option is defined as a macro, but in some instances needs further adjustment. These two examples have exactly the same effect: .code "allargando"/u6/d2 "allargando"/u4 .endd If more than one of &`/a`&, &`/ao`&, &`/b`&, &`/bu`&, &`/m`&, &`/ul`&, &`/ol`&, or &`/fb`& is present, the last one takes precedence. If none of them are present, the string type is taken from the last &%[text]%& directive. If &%[text]%& has not been used on the current stave, &`/b`& is assumed. There is an important difference between &`/bu`& and &`/ul`&, and similarly between &`/ao`& and &`/ol`&. When &`/bu`& is specified, the text is treated as non-underlay text, but its default vertical position is the underlay level. This contrasts with &`/ul`&, which indicates that the text &'is'& underlay, and subject to special processing described in section &<>&. The &`/m`& option is like &`/b`&, except that the default vertical position of the text is in the middle of the space between the current stave and the one below it, provided this is lower than the normal &`/b`& position would be. This is useful when printing dynamic marks in keyboard parts. If two over-printing staves are being used for a keyboard part, text with the &`/m`& option may appear with either of them, because if the space after the current stave is set to zero, the space for the next stave is used when positioning such text. .index "text" "vertical position" The default vertical position of text is adjusted to take account of the next note, unless the string is forced to the overlay or underlay level by &`/ol`& or &`/ul`&, or to an absolute position by &`/a<&'n'&>`& or &`/b<&'n'&>`&. .code "at underlay level"/ul "six points above the stave"/a6 "twenty points below the stave"/b20 .endd If two or more strings precede the same note, the default vertical position for the second and subsequent strings is an appropriate distance above (for text above the stave) or below (for text below the stave) the previous string. The level of any string can always be adjusted by the use of &`/u`& or &`/d`&. .subsection "Horizontal alignment" .index "text" "horizontal alignmnent" .index "text" "end alignment" The alignment of underlay and overlay strings is described in section &<>&. Any other string is printed by default with its first character aligned with the left-hand edge of the next note or rest in the bar, or with the bar line, if there are no following notes or rests in the bar. However, if &`/bar`& is present, the alignment point is the previous bar line, or the start of the system for the first bar in a system. If the &`/ts`& option is present, the alignment point is the time signature at the start of the bar. If there isn't one, the alignment point is the first note in the bar. For both &`/bar`& and &`/ts`& the vertical position of the string still depends on the note that follows it. If the &`/e`& qualifier is present on the text string, it is the end of the string that is aligned with the alignment point. The &`/ne`& option can be used on text strings to cancel the effect of a previous &`/e`&. This can be useful for overriding options on strings defined as macros. .index "text" "centred" .index "text" "centred in bar" If the &`/c`& qualifier is present, the text is centred at the alignment point. If this is used on text immediately before a whole bar rest that is centred in the bar, the text is centred in the bar. This applies to both visible and invisible whole bar rests. The &`/nc`& option can be used on text strings to cancel the effect of a previous &`/c`&. This can be useful for overriding options on strings defined as macros. The &`/h`& option causes the alignment point to be halfway between the next note or rest and the note or rest that follows, or the end of the bar if there is only one note or rest following in the bar. The &`/e`& and &`/c`& options can be combined with &`/h`& to specify end or centre alignment at the halfway position, respectively. If no notes follow the text string in the bar, &`/h`& has no effect, and it is also ignored if &`/bar`& or &`/ts`& are present. Positions other than the halfway point can be specified by a number given after &`/h`&. For example, &`/h0.75`& specifies the three-quarter point between the next note or rest and the one following. The &`/h`& option can be used with underlay and overlay strings, but it applies only to the first syllable of such strings. .subsection "Enclosed text" .index "text" "enclosed" .index "text" "boxed" .index "text" "ringed" The &`/box`& and &`/ring`& options are applicable only to non-underlay text. The longer the string is, the more elliptical a ring will be. For a single character, the ring is approximately circular. .subsection "Text sizes" .index "text" "sizes" .index "size" "of text" The &`/s`& option refers to the sizes of text defined by the &%textsizes%& heading directive (&R; &<>&); &`/s1`& specifies the first size, &`/s2`& specifies the second size, and so on. .code "Some text string"/s2 .endd This example uses the second size defined by &%textsizes%&. By default, text is printed in the first size, unless it is underlay, overlay, or figured bass, which have their own default sizes (set by the &%underlaysize%&, &%overlaysize%&, and &%fbsize%& directives). The &`/s`& option can, however, be used with underlay, overlay, and figured bass text to specify a non-default size for an individual string. .subsection "Rotated text" SUBSECTrottext .index "text" "rotated" .index "rotated text" .index "fonts" "rotating" Stave text strings that are not underlay or overlay can be rotated through any angle by following the string with &`/rot`& and a number in degrees. Positive rotation is anticlockwise. .code "gliss"/rot40/a0/r4 c'_/g [space 8] c'' .endd .music "music41" 32 8,-22 The centre of rotation is on the text baseline, at the left-hand end of the string. .subsection "PostScript text" .index "PostScript" "including in PMW output" If the &`/ps`& qualifier appears on a text string, the contents are assumed to be raw PostScript that is to be inserted at the point where a text string would have been output. This facility is provided for PostScript experts; it is not likely to be of interest to most users. The string is preceded by a call to the PostScript &%gsave%& operator and followed by &%grestore%&. The origin is the x-coordinate at which a text string would have been output, and the bottom line of the stave plus any vertical adjustment that is specified for the string. No processing is done on the string; any backslash characters it may contain are not treated specially. .section "Fingering indications" .index "fingering indications" The small caps feature of text strings is useful for selecting a smaller than normal font for printing fingering indications. Alternatively, a specific font size can be defined, and used with the &`\s`& text option. The music font contains the special characters &{a}&&~&~ and &{b}&&~&~ for indication the use of the thumb in cello parts. The use of macros is suggested when setting music with lots of fingering. Note the use of the &`/c`& option in this example, to centre the text below each note: .code *define 1 "\rm\\sc\1"/b/c *define 2 "\rm\\sc\2"/b/c *define 3 "\rm\\sc\3"/b/c *define 4 "\rm\\sc\4"/b/c [stave 1 alto] &1 d- &3 c'= &2 b=; &4 d'- &3 f-; &1 d= &2 b= &3 f= &4 d'=; &2 b= &3 f= &1 d- | .endd .music "music45" 32 8,-18 .section "Rehearsal marks" SECTrehearse .index "rehearsal marks" Rehearsal marks are specified as text items enclosed in square brackets. The text may be longer than one character. It is printed above the stave, and by default is printed in bold type and enclosed in a rectangular box. The &%rehearsalmarks%& directive can be used to change the size of the font, and to specify printing inside a ring instead of a box, or printing with no enclosure at all. If necessary, a rehearsal mark can be moved up, down, left or right, in the same manner as other text. .code ["A"/u2] .endd This example moves the mark two points upwards. Normally, a rehearsal mark is given at the start of a bar, and in this case it is printed immediately to the right of the preceding bar line (except at the left-hand side of the page). If a rehearsal mark is given in the middle of a bar, it is aligned horizontally with the next note, exactly as for other text. Rehearsal marks are normally printed above the top stave of a score only, though in very large scores they are sometimes repeated part of the way down. If parts are to be extracted from a score, the rehearsal marks should be specified on stave 0 (&R; &<>&), so that they are always printed above the top stave, whichever staves are selected for printing. .section "Vocal underlay and overlay text (lyrics)" SECTunderlay .index "text" "underlay" .index "underlay" .index "overlay" .index "multi-syllable underlay" .index "underlay" "multi-syllable" PMW supports both underlay (words under the stave) and overlay (words over the stave). Overlay is comparatively rare, and to save clumsy repetition of `underlay or overlay' in what follows, the description is written mainly in terms of underlay. However, all the features are equally applicable to overlay. A text string is marked as underlay or overlay either by using the &`/ul`& or &`/ol`& options, or by using the &%[text]%& directive to set underlay or overlay as the default, and then not using any of the other text type options (&`/a`&, &`/b`&, etc.) The usual escape character conventions apply to underlay text, and in addition, the characters &`#`& (sharp), &`-`& (hyphen), &`=`& (equals), and &`^`& (circumflex) have special meanings. .subsection "Underlay syllables" Underlay can be input one syllable at a time, each syllable preceding the note to which it refers. This gives the maximum possible control, because each syllable can be moved up, down, left or right as required. However, it is normally easier to input underlay in longer strings. If a string of underlay text contains space and/or hyphen characters, it is automatically split up by PMW and allocated to the notes that follow. Rests are excluded from this process (with one exception, which is described in section &<>&). As a simple example of this facility, this is an appropriate way to start the British National Anthem: .code "God save our" g g a | .endd Here, each space delimits a word, and each word is associated with one note. .index "hyphen" "in underlay string" .index "strings" "hyphen in underlay" When a word consists of more than one syllable, the syllable breaks must be delimited by hyphens. .code "God save our gra-cious Queen" g g a | f. g- a | .endd PMW prints one or more hyphens, depending on the distance between the syllables. The heading directive &%hyphenthreshold%& can be used to specify the distance between syllables at which more than one hyphen will be used. The default value is 50 points. If the space is less than this, a single hyphen is printed, centred in the space. Otherwise, a number of hyphens are printed, the distance between them being the threshold value divided by three. It is possible to cause PMW to print en-dash characters (or any other characters) as `hyphens' between syllables of underlaid text. See the &%hyphenstring%& heading directive for details. Whatever is printed, the syllable separator in the input remains a single hyphen. PMW does not check that the number of syllables matches the number of notes, except that it warns if text is left over at the end of the stave. Each syllable of underlay text is normally centred horizontally about the next note in the bar. Sometimes it is necessary to move syllables slightly to the left or right. A convenient way to do this is to include the character &`#`& .index "# character in text" in the underlay string. This character prints as a space, but does not count as a space when PMW is splitting up the text. The width of a printed space is half the size of the font. .code "God# save #our" g g a | .endd If the default, 10-point font is in use, this example prints `God' 2.5 points to the left of where it would otherwise appear, and `our' 2.5 points to the right. .index "underlay" "syllable alignment" Sometimes several words are required to be printed under a single note, and only the first is to be centred on it. The &`#`& character can be used to separate such words, to prevent them being assigned to separate notes. If the character &`^`& (circumflex) appears in an underlay syllable, only those characters to the left of it are counted when the string is being centred. The circumflex itself is not printed. .code "Glory^#be#to#Thee, O God." G+ g #F .endd In this example, the words `Glory be to Thee' are all associated with the semibreve, but because of the circumflex, `Glory' is centred under it, and the rest stick out to the right. If a syllable starts with a circumflex, it is not centred, but instead starts at the note position. If two circumflex characters are present in a syllable, the text between them is centred at the note position. This makes it possible to cause text to stick out to the left of a note. .index "underlay" "extension" When a syllable extends over more than one note, equals characters must be inserted into the input string, one for each extra note. This includes tied notes, because PMW does not distinguish between ties and short slurs. .code "glo-==ri-a" F. | B`. | C. | E. | F. | "glo-========ri-a" a-e-a- | b-c'=b=a=b= | c'- c'- b- | .endd PMW automatically draws an extender line after a word that ends with an equals, finishing underneath the last note, provided that the line is of reasonable length. The vertical position of the extender level is just below the baseline of the text, but this can be altered (&R; &<>&). By default, PMW centres all underlay and overlay syllables at the position of their respective notes. The &%underlaystyle%& directive (&R; &<>&) can be used to request PMW to align underlay and overlay multinote syllables flush left with the initial note. The circumflex character can still be used to specify that particular multinote syllables be centred. Text for two or more verses (up to any number) can be specified in multi-syllable fashion before the relevant notes by giving each verse as a separate string. .code "God save our gra-cious Queen" "Thy choi-cest gifts in store" g a a | f. g- a | .endd The vertical distance between verses can be altered by means of the &%underlaydepth%& and &%overlaydepth%& directives, which control independent values. For overlay, the second verse is printed above the first one, and so on. If any positioning qualifiers are specified on an underlay input string (&`/u`&, &`/d`&, &`/l`&, or &`/r`&), the same amount of movement applies to each of the syllables in the string independently. Specifying vertical movement in this way can sometimes be a convenient alternative to the use of the &%[ulevel]%& directive. The multi-syllable underlay feature in PMW is just an alternative input notation. The effect is exactly as if the individual syllables were input immediately preceding the notes under which they are printed. The following two alternative examples produce the same output: .code "God= save our Queen" e'-c'- b a | G. | "God=" e'- c'- "save" b "our" a | "Queen" G. | .endd If an underlay string ends with a hyphen, the equals characters can be omitted; PMW automatically prints a sequence of hyphens up to the next underlay syllable. This can be useful when syllables last for many notes, for example: .code "glo-" g=a=b=g=; a=b=c'=a=; b-. "ri-a" g= b .endd .music "music23" 40 4,-12 If the final syllable of a word extends over many notes, only a single equals character is needed if it is at the end of an input string. However, because extender lines are drawn only as far as the last note for the syllable, rather than to the next underlaid word, it is necessary to supply the final equals character at the start of the next string, to tell PMW which is the final note for the syllable. .code "long=" b=a=g=a=; b=a=g=a=; "= time" g g .endd .music "music32" 40 4,-12 If there are more notes on the stave, but no more words, a syllable consisting of just a &`#`& character can be used to stop PMW drawing an extender line further than is required. &*Warning*&: There is one important restriction on the use of multi-syllable underlay text strings. Because they are processed during the input stage of PMW, they cannot in general be used successfully with the notation for repeating bars. Each syllable in such a string is allocated to &'the next note read from the input'&, but a bar repeat count just duplicates the bar in which it appears, without reading any more notes. .subsection "Underlay and overlay fonts" .index "fonts" "underlay" .index "underlay" "fonts" .index "fonts" "overlay" Two separate sets of fonts are provided for underlaid and overlaid text, and the size of these can be set independently of the other text fonts by the &%underlaysize%& and &%overlaysize%& directives. However, individual underlay or overlay strings can specify different sizes by means of the &`/s`& option. .subsection "Underlay and overlay levels" .index "underlay" "level" .index "level" "of underlay" Text that is marked as part of the underlay or overlay is always printed at the same level below or above the stave in any one system of staves; the line of words is always horizontal. PMW chooses an underlay and an overlay level for each line of music according to the notes that appear on that line, but these can be overridden by means of the &%[ulevel]%& and &%[olevel]%& directives. Individual words or syllables can be moved up or down relative to the standard level by means of the &`/u`& and &`/d`& qualifiers. .subsection "Underlay and overlay spreading" .index "underlay" "note spreading" .index "notes" "spreading for underlay" PMW spreads out the notes of a piece to take into account the width of underlaid or overlaid words. This facility should be used with care, because the music can become very poorly spaced if the width of the words is allowed to have too much influence on the separation of the notes. The spreading facility operates only within individual bars, and not between bars. It applies only to underlay or overlay text, not to other kinds of text. `Hard spaces' (notated by sharp sign characters) in the text are treated as printing characters when examining the available space. The minimum space allowed between syllables is one space character in the appropriate font. There is a heading directive, &%nospreadunderlay%&, which disables this facility for both underlay and overlay, and it is recommended that those who place great importance on the spacing of notes should use it. The automatic facility is intended as an insurance for less demanding users against the occasional wide syllable. In order that it function in this way, it is important that a suitable note spacing be set, and a suitable size of underlay or overlay font be chosen, such that most of the syllables fit on the line without the need for any adjustment of the notes. The default setup is not always suitable for music with words; multiplying the note spacing by 1.2 and choosing a font size of 9.5 usually gives better results. &*Warning:*& If use of the &%layout%& heading directive (&R; &<>&) causes the bars in a system to be horizontally compressed in order to fit them on the line, underlaid syllables may be forced into each other, even though they were originally separate. Although some re-spacing is done after a sufficiently large compression, in order to mitigate this problem, it is best to avoid settings of &%layout%& that cause compression if possible. .subsection "Other uses of underlay and overlay" SUBSECTuolayother .index "underlay" "use for other text" The underlay and overlay facilities can be used for printing things other than the words of a vocal part. It is common, for example, for the word &'crescendo'& to be printed in a stretched-out manner, in the style of underlay, or alternatively, for an abbreviation such as &'cresc.'& to be followed by a number of hyphens. In the latter case, the final `syllable' of the word does not exist, but it can be specified as a single sharp character, which does not cause anything to be printed (because # prints as a space in underlay). The text can be given as a single string, with equals characters for each note under which hyphens are to be drawn, or each syllable can be given with the relevant note. In the latter style, the final syllable can be moved left or right to adjust the end point of the hyphens. Here is a simple example of both kinds of approach: .code "\it\cresc-==en-==do"/ul gc'ga | gfgr | "\it\decresc.-"/ul gfef | G "#"/ul/r6 G | .endd .music "music24" 40 4,-10 PMW supports multiple verses, so there is no difficulty in mixing this kind of usage with real vocal words, though usually the vocal line would be printed as underlay and the other text as overlay. Underlay and overlay syllables cannot normally be associated with rests, but because a final empty syllable is often required when using underlay to print rows of dashes, and ending at a rest is common, an exception has been made for the string &`"#"`&, which should not occur in normal underlay usage. If this string is specified as underlay or overlay, and immediately precedes a rest, it is associated with the rest rather than the following note. This exception applies only to strings consisting of a single &`#`& character. Hyphen strings for underlay are printed with hyphens fairly far apart, and at varying separations. Sometimes a more uniform hyphen separation is required, and some editors prefer some other character to the hyphen after items like &'cresc'&. Some additional features are provided for use in these cases. If a second string is provided as an option to an underlay or overlay string, separated by a slash, it is used instead of hyphens between the syllables of a word. The string is repeated as many times as possible in the available space. This option should be given after any other options for the main string; in particular it must follow the &`/ul`& or &`/ol`& option. The default font for the second string is the default underlay or overlay font, as appropriate, and the default size is the size of the first string. However, the second string may be followed by &`/s`& and a number to specify a different size. The second string may also be followed by &`/u`& or &`/d`& to specify that it is to be moved up or down, relative to the following syllable. In this example, a space and a full stop is used as the repeating string, and it is moved up so as to be approximately at the middle of the letters. .code "\it\cresc.-"/ul/" ."/u1.5 gc'ga | gf "#"/ul gr | .endd .music "music25" 32 4,-16 The second string is a normal PMW string, and may contain font changes and other escape sequences. Hence it can be used to print trill signs followed by wiggly lines, by selecting the appropriate characters from the music font. .code "\*136\-"/ol/"\*96\" E'+_ | "#"/ol/r8 E'R | .endd .index "trill" "with wiggly line" .music "music26" 32 4,-22 Character 136 is the &{ˆ}& character, and character 96 is the tilde &{`zzz}&, which gives a wiggly line when repeated. The invisible final syllable is moved right eight points to ensure that the wiggly line covers the final note. If such features are required in several places in a piece, the best thing to do is to use the macro facility to save having to type the complicated strings each time. This approach is taken in the next example. .index "8va" .index "octave marks" The conventional octave mark of &'8va'& followed by a line of dashes can be printed using an overlay string. However, it is normal to print a small `jog' on the final dash to indicate the end of the section. To achieve this, an additional feature is available. If an underlay or overlay option string contains a vertical bar character, only those characters to the left of the vertical bar are used as the repeating sequence, but the characters to the right of the bar are printed at the end of the sequence, once. (If, by some chance, a real vertical bar is required to be repeated, it can be specified as character number 124.) There are some angle-shaped characters in the music font that can be used for printing the `jogs'. .code *define s8 "\it\8va-"/ol/" -| \mf\\159\"/u0.3 *define e8 "#"/ol/r8 &s8 c'.d'-e'd' | g'g' &e8 G' | .endd .music "music27" 30 4,-22 In this example, the macros &%s8%& and &%e8%& contain the strings needed to start and end an &'8va'& mark, respectively. Notice that &%e8%& is used before the final note under the mark. The repeated character string is a space and a hyphen (specified before the vertical bar), and at the end, a space followed by character 159 from the music font is printed. One further feature is available to cope with repeated strings that extend over the end of a music system. If yet another optional string is given, it is printed at the start of each continuation line, before the start of the repeating strings. The only option permitted after this string is &`/s`&, to set its size (which defaults to the size of the original underlay or overlay string). Using this feature to cause a small `8' to be printed at the start of continuation lines, the macro definition from the above example becomes: .code *define s8 "\it\8va-"/ol/" -| \mf\\159\"/u0.3/"\it\8"/s2 .endd It is assumed that size 2 is suitably defined using the &%textsizes%& directive. .index-to I06 . //////////////////////////////////////////////////////////////////////////// . //////////////////////////////////////////////////////////////////////////// .tocsubsectoff .chapter "Stave directives" CHAPstavedirectives .index-from I07 "directives" "stave" .index-from I08 "stave directives" This chapter describes the directives that can appear interspersed with the notes and rests of a stave. Each directive must be enclosed in square brackets, though if there are several in a row, a single set of brackets suffices. There are three other items that can appear between square brackets: repeated expression marks (&R; &<>&), repeated bar counts (&R; &<>&), and rehearsal marks (&R; &<>&). .section "Clef directives" SECTclef .index "clefs" "list of" Clefs are specified by directives that are the names of the clefs. There are two different styles for C and F clefs, controlled by the &%clefstyle%& directive (&R; &<>&). The following clefs are available: .itable none 0 0 2 100 left 300 left .row &`alto`& "C3" .row &`baritone`& "F3" .row &`bass`& "F4" .row &`cbaritone`& "C5" .row &`contrabass`& "F4 with &'8'& below" .row &`deepbass`& "F5" .row &`hclef`& "percussion H clef" .row &`mezzo`& "C2" .row &`noclef`& "nothing printed" .row &`soprabass`& "F4 with &'8'& above" .row &`soprano`& "C1" .row &`tenor`& "C4" .row &`treble`& "G2" .row &`trebledescant`& "G2 with &'8'& above" .row &`trebletenor`& "G2 with &'8'& below" .row &`trebletenorb`& "G2 with &'(8)'& below" .endtable .music "music42" 40 4,-14 The last two clefs shown are the alternative forms for C and F clefs. If a clef directive is given without an argument, no change is made to the current default octave. However, the directive name may be followed by a number to indicate a new setting for the current octave. .code [treble 1] .endd This example sets the default octave to start at middle C. A clef setting has no bearing on the interpretation of the pitch of the notes that go to make up a part (apart from the octave setting). Changing the clef directive at the start of a part causes the music to be printed out in the new clef, but at the same absolute pitch as before. Clef changes in the middle of a stave that are not in the middle of a bar are normally notated immediately before a bar line rather than immediately after. The &%clefsize%& heading directive is used to specify the size of such clefs. .section "Alphabetical list of stave directives" SECTstavedirectives The stave directives are now described in alphabetical order. .subsection "[1st], [2nd], etc." SUBSECTfirstsecond .index "first time bar" .index "second time bar" First and second time bars (and third and fourth, etc. if needed) are specified by enclosing the number, followed by one of the sequences `st', `nd', `rd' or `th' in square brackets at the start of a bar. The mark for the final one is terminated by the appearance of the directive &%[all]%&. .code [1st] g a b g :) | [2nd] g a b c' | [all] b a g f .endd There is an example of the output in section &<>&. More than one bar of music may appear between the items. The &%[all]%& directive is not used if the piece ends with the second time bar. Often these marks are printed above the top stave of a score only. If parts are to be extracted from a score, first and second time marks should be specified on stave 0 (&R; &<>&), so that they will be printed above the top stave, whichever staves are selected for printing. It is possible to specify vertical movements for 1st and 2nd time bar marks, to cope with unusual cases. This is done by entering &`/u`& or &`/d`&, followed by a number, in the directive. The left-hand ends of these marks can also be moved left and right by means of &`/l`& and &`/r`& qualifiers. .code [1st/u4] .endd This example specifies a first time bar whose mark is to be 4 points higher than it would be by default. PMW normally puts the second time mark at the same level as the first, unless high notes in the second time bar force it upwards. More than one of these marks can be given in the same bar. .code [1st] [2nd] Grg :) | [3rd] GR | .endd When this is done, the numbers are printed with a comma and a space between them. Any movement qualifiers must be specified on the first number. It is also possible to change the text that is printed by supplying a text string after a slash. .code [1st/"primero"] .endd If there are several marks in the same bar, separate strings can be supplied for each of them. The font size is set by the &%repeatbarfont%& directive, which also sets the default font. .subsection "[All]" See the immediately preceding section. .subsection "[Alto]" .index "&%[alto]%&" This specifies a C clef with its centre on the third stave line (&R; &<>&). .subsection "[Assume]" .index "&%[assume]%&" .index "clefs" "assuming" When an overprinted stave contains a sequence of skipped bars (see &%[skip]%&), the clef, key signature, or time signature for its partner stave may have changed before the skipping stave resumes. The &%[assume]%& directive can be used to set these things without causing anything to be printed. .code [skip 60] [assume bass 0] gbc | .endd This example has the effect of changing the stave into the bass clef so that `gbc' are printed in this clef, and a bass clef is printed at the next start of line, but no clef is printed where the directive occurs. Similar syntax is used for setting the key and the time. .code [assume key E$] [assume time 3/4] .endd The use of this directive is not confined to overprinted staves. .subsection "[Baritone]" .index "&%[baritone]%&" This specifies an F clef based on the third stave line (&R; &<>&). .subsection "[Barlinestyle]" .index "&%[barlinestyle]%&" This directive must be followed by a number, and it sets the bar line style for subsequent bar lines in the stave (&R; &<>&). .subsection "[Barnumber]" SUBSECTstavebarno .index "&%[barnumber]%&" .index "bar numbers" "requesting" .index "bar numbers" "suppressing" .index "bar numbers" "moving" .index "bar numbers" "forcing" .index "numbering bars" The heading directive &%barnumbers%& (&R; &<>&) is used to request automatic bar numbering. The stave directive &%[barnumber]%& is used to control the printing of numbers for individual bars. If &%[barnumber]%& appears without any arguments, a number is printed for the current bar, independently of the overall setting. The size of font used and whether or not the number is printed in a box or ring is controlled by the heading directive. (The default is not to use boxes, and the default size is 10 points.) The position of the bar number can be altered by following the directive with a slash, one of the letters &`l`&, &`r`&, &`u`&, or &`d`&, and a number. This is sometimes necessary when there are notes on high ledger lines at the start of a numbered bar. .code [barnumber/l10/d5] .endd This example prints a number on the current bar, 10 points to the left and 5 points down from where it would appear by default. If &%[barnumber]%& appears followed by the word `off', no bar number is printed for the current bar, even if the heading directive implies there should be one. .subsection "[Bass]" .index "&%[bass]%&" This specifies a bass clef, that is, an F clef on the fourth stave line (&R; &<>&). .subsection "[Beamacc]" .index "&%[beamacc]%&" This directive causes the next beam to be drawn as an accelerando beam (&R; &<>&). .subsection "[Beammove]" .index "&%[beammove]%&" .index "beaming" "moving a beam" This directive, which takes a single number as its argument, causes the following beam to be moved vertically without altering its slope. A positive number moves it upwards, and a negative one downwards. An attempt to move a beam too near the noteheads may give strange results. Use of this directive is preferable to adjusting the stem length of one or more notes in the beam, because it is not always clear which notes in the beam are those whose stems control the beam position. .subsection "[Beamrit]" .index "&%[beamrit]%&" This directive causes the next beam to be drawn as an ritardando beam (&R; &<>&). .subsection "[Beamslope]" .index "&%[beamslope]%&" .index "slope of beams" .index "beaming" "slope" PMW contains rules for choosing the slope of a beamed group which usually have the right effect. However, it is possible to override them by means of the &%[beamslope]%& stave directive. This directive takes as its argument a number specifying the slope of the next beamed group on the current stave. .code [beamslope 0.2] g-g- [beamslope 0] c-g- [beamslope -0.1] g-c'- .endd Positive slopes go upwards to the right, negative ones downwards. A slope of zero specifies a horizontal beam. The values given are in the conventional form for gradients, with a slope of 1.0 giving an angle of 45 degrees. When a beam's slope is specified explicitly, this overrides the setting of the maximum beam slope (see &%maxbeamslope%&). When a beam has notes on either side of it, it may not be possible to use the specified slope because of the position of the notes. In this case, the default rules come into play again and a smaller slope is chosen. .subsection "[Bottommargin]" .index "&%[bottommargin]%&" .index "page" "bottom margin" .index "margin" "bottom" This directive provides a way of changing the value given by the &%bottommargin%& heading directive for a single page only. If there is more than one occurrence on the same page, the last value is used. .code [bottommargin 30] .endd This example, which may appear in any bar on the page, sets the margin for that page to 30 points. .subsection "[Bowing]" .index "&%[bowing]%&" .index "bowing marks" String bowing marks are normally printed above the stave. The &%[bowing]%& directive is provided for changing this. It must be followed by one of the words `above' or `below'. .subsection "[Breakbarline]" .index "&%[breakbarline]%&" An occurrence of this directive causes the bar line at the end of the current bar not to be extended downwards onto the stave below, unless it is at the end of a system. See also &%[unbreakbarline]%&. .subsection "[Cbaritone]" .index "&%[cbaritone]%&" This specifies a C-clef on the 5-th stave line (&R; &<>&). .subsection "[Comma]" .index "&%[comma]%&" .index "pause" "comma" The &%[comma]%& directive inserts a comma pause mark above the current stave. .subsection "[Contrabass]" .index "&%[contrabass]%&" This specifies a bass clef with a little `8' printed below it (&R; &<>&). .subsection "[Copyzero]" .index "&%[copyzero]%&" .index "stave zero" This directive takes a dimension as an argument, and adjusts the vertical level of any stave zero material in the current bar when stave zero (&R; &<>&) is printed at the level of the current stave. .code [copyzero 4] .endd This example raises the stave zero material in the current bar by 4 points. It is not necessary for there to be an instance of the &%copyzero%& heading directive specifying the current stave for &%[copyzero]%& to take effect. In the default case, &%[copyzero]%& takes effect whenever the stave in which it appears is the top stave of a system. When first and second time bar marks are specified in stave zero, and there is a need to adjust their height for certain staves, it should be noted that the marks are drawn when the bar in which their end point is determined is processed. Consequently, it is that bar in which &%[copyzero]%& should appear. The same applies to slurs and lines (though they are rarely specified in stave zero). .subsection "[Couple]" .index "&%[couple]%&" .index "coupled staves" .index "treble/bass coupling" .index "bass/treble coupling" .index "staves" "coupled" A single music part, notated as one PMW stave, can be spread across a pair of bass and treble staves when actually printed. This is commonly found in keyboard music. If &%[couple up]%& is given on a bass clef stave, it specifies that notes higher than middle C should be printed on the stave above, which is assumed to be a treble clef stave. Similarly, &%[couple down]%& couples a treble clef stave to the bass clef stave below, and there is also &%[couple off]%& to terminate the coupling. A stave can be coupled only one way at once. However, there is no reason why a pair of staves should not both be simultaneously coupled to each other. An example of music printed in this way is given in section &<>&. &*Warning 1:*& Coupling only works properly if the upper stave is using the treble clef and the lower one is using the bass clef. &*Warning 2:*& Coupling requires the spacing between the staves to be a multiple of 4 points if it is to work properly in all circumstances. The default spacing of 44 points satisfies this requirement. Occasionally it is desirable to cause individual notes that would not normally be printed on the coupled stave to be moved onto it. A notation for this is provided in the form of the &`\c\`& note option. .code [treble 1 couple down] g-e-c-\c\g`- .endd The middle C in this beam would normally remain on the original (upper) stave, but the use of &`\c\`& forces it down onto the lower one. If the &`\c\`& option is used when coupling is not in force, the note is coupled upwards if it is on or above the centre line of the stave; otherwise it is coupled downwards. When coupling is in force, there is a note option &`\h\`& (for `here') that prevents a note that would normally move onto the other stave from doing so. .subsection "[Cue]" SUBSECTcue .index "&%[cue]%&" .index "cue bars" The directive &%[cue]%& causes the subsequent notes of the current bar, on the current stave, to be printed using the cue note font, instead of the normal font. Typically, the note spacing needs to be reduced as well. This feature is normally used only when single parts are being printed; the conditional features of PMW can be used to control this, as in the following example: .code [35] R! | @ 35 bars rest *if score R! | @ if full score, rest bar *else [cue] [ns *1/2] @ cue bar with halved note spacing "[flute]"/a @ print above stave g a-g-f-e- e | [ns] @ restore note spacing at next bar start *fi @ end conditional section .endd The effect of the &%[cue]%& directive is automatically cancelled at the end of the bar in which it appears, but it can also be explicitly cancelled by &%[endcue]%&. .index "&%endcue%&" .index "ornaments" "printing" In addition to their use for cue bars, &%[cue]%& and &%[endcue]%& can be used for printing complicated ornaments or optional notes. (Another way of handling optional notes is to use the &`\sm\`& note option &R; &<>&.) .index "optional notes" When cue notes are dotted, the dots are spaced horizontally in proportion to the size of the cue notes. However, when printing small optional notes with full-sized notes directly above or below on the same stave, it is sometimes better to arrange for all the dots to be aligned. You can request this by specifying &%[cue/dotalign]%&, which increases the space between the cue notes and their dots. .subsection "[Deepbass]" .index "&%[deepbass]%&" This specifies an F clef based on the fifth stave line (&R; &<>&). .subsection "[Dots]" .index "augmentation dots" "inverted" .index "&%[dots]%&" Augmentation dots are normally printed in the space above when a note appears on a stave line. The directive &%[dots]%& is provided for changing this. It must be followed by one of the words `above' or `below', and it applies to all subsequent notes on the stave, with the exception of certain adjacent notes in chords. Note that the position of an individual note's dot can be overridden by means of the &`\:\`& note option (&R; &<>&). .subsection "[Draw]" The &%[draw]%& directive is described in chapter &<>&. .subsection "[Endcue]" See &%[Cue]%& (&R; &<>&) above. .subsection "[Endline]" See &%[line]%& (&R; &<>&) below. .subsection "[Endslur]" See &%[slur]%& (&R; &<>&) below. .subsection "[Endstave]" .index "&%[endstave]%&" The data for each stave of music must end with the directive &%[endstave]%&. This can be followed only by the start of a new stave or the start of a new movement or by the end of the file. .subsection "[Ensure]" .index "&%[ensure]%&" .index "spacing" "ensuring sufficient" The &%[space]%& directive always inserts extra space before a note. Sometimes all that is needed is an assurance that a certain amount of space is available, for example, when using the drawing facilities to print marks that PMW does not know about. The &%[ensure]%& directive provides this facility. If the requested amount of space is not available between the previous note (or the start of the bar) and the next note (or the end of the bar), a suitable amount of space is inserted. .code G [ensure 32] G .endd In this example, if this is the only stave, because minims are normally printed 20 points apart, the &%[ensure]%& directive has the effect of inserting 12 points of space. However, if there is another stave containing four crotchets, which print 16 points apart, there is already 32 points between the two minims, and no extra space is inserted. The additional space is inserted immediately before the note, thus moving it further away from any other items, such as clefs, which may lie between it and the previous note. .subsection "[Fbfont]" .index "&%[fbfont]%&" .index "fonts" "default for figured bass" .index "figured bass" "default font" The default typeface for figured bass text is roman. It can be changed for an individual stave by means of the &%[fbfont]%& directive. This directive takes as its argument one of the standard font names. .code [fbfont extra 3] .endd This example assumes that the third extra font has been suitably defined for use in figured bass text. In any given text string it is always possible to change typeface by using the appropriate escape sequence. .subsection "[Fbtextsize]" .index "&%[fbtextsize]%&" This directive must be followed by a number in the range 1 to 12. It selects the default size to be used for figured bass text on the current stave. The actual font sizes that correspond to the twelve available sizes are set by the &%textsizes%& heading directive. If this directive is not used, the size used is the one set by the &%fbsize%& heading directive (which is a different parameter from any of the sizes set by &%textsizes%&). &%[Fbtextsize]%& is normally needed only if you want different sizes of figured bass text on different staves. .subsection "[Footnote]" .index "&%[footnote]%&" .index "footnotes" The stave directive &%[footnote]%& defines a text string that is printed at the foot of the page on which the current bar is printed. Footnotes are different from footings, in that the space in which they are printed is taken from the normal page length; consequently the bottom system of music is printed higher up the page, in order to leave room for footnotes. The syntax of &%[footnote]%& is the same as the syntax of the &%heading%& and &%footing%& directives, and like them, if the text is longer than the line length, it is automatically split into several lines (&R; &<>&). .code [footnote "A close friend of Schumann and Mendelssohn, Sheffield-born Sterndale Bennett founded the Bach choir, was for ten years the conductor of the Philharmonic Society, and in 1866 became principal of the Royal Academy of Music."] .endd The initial font is roman, and the default size is 9 points, but this can be changed by the &%footnotesize%& heading directive. If there are several footnotes on one page, vertical white space is left between them. The default amount of space is 4 points, but this can be changed by the &%footnotesep%& heading directive. If there are several footnotes in one system, they are ordered by stave, those for the lowest numbered stave being printed first. .subsection "[Hairpins]" SUBSECThairpinsstave .index "&%[hairpins]%&" .index "hairpin position" Hairpins (&R; &<>&) are normally printed below the stave. The &%[hairpins]%& directive is provided for changing this for an individual stave. It must be followed by one of the words `above' or `below'. It can also be followed by `middle', which causes hairpins to be printed below the stave, half way between it and the following stave, unless low notes on the upper stave force them lower still. Hairpins in fixed positions above or below the stave can be made the default by following `above' or `below' in the &%[hairpins]%& directive by a dimension. .code [hairpins above 10] .endd This example specifies that the `sharp end' of hairpins should be positioned 10 points above the top of the stave. Individual hairpins can be moved from this position by the normal &`/u`& and &`/d`& qualifiers on the angle bracket characters that specify hairpins. In addition, &`/a`& and &`/b`& can be used without a dimension to specify the default type of hairpin, whose vertical position depends on the notes it covers. It is also possible to set up a default adjustment for variable-position hairpins, by giving a dimension preceded by &`+`& or &`-`& in the &%[hairpins]%& directive. .code [hairpins below -4] .endd After this example, all hairpins are positioned as if they were followed by &`/d4`&. Note the distinction between these two directives: .code [hairpins above 8] [hairpins above +8] .endd The former causes all hairpins to be printed 8 points above the stave, whereas the latter adds 8 points to whatever position PMW computes from the notes under the hairpin. .subsection "[Hairpinwidth]" .index "&%[hairpinwidth]%&" This directive, which must be followed by a dimension, sets the width of the open ends of any subsequent hairpins on the current stave. The default is 7 points. .subsection "[Hclef]" .index "&%[hclef]%&" .index "percussion clef" This directive causes a percussion `H-clef' to be used on the current stave. This behaves as a treble clef as far as note positioning is concerned (&R; &<>&). .subsection "[Justify]" .index "&%[justify]%&" The justification parameters can be changed by the appearance of this stave directive. Unlike the heading directive of the same name, it specifies &'changes'& to the justification parameters, not complete settings. Its effect lasts only until the end of the current movement. The directive name must be followed by a &`+`& character (for adding a justification) or a &`-`& character (for removing a justification) immediately preceding one of the words `top', `bottom', `left', or `right'. For example, if the last page of a piece uses only slightly more than half the page depth, and vertical justification is not wanted, &%[justify -bottom]%& should be included in any bar on that page. Changes of parameter take effect from the system in which they are encountered, and persist until a subsequent change. More than one change may be given at once. .code [justify -right -bottom] .endd This example might be used in the last system of a piece if the last line and the last page are both too short to be sensibly justified. .subsection "[Key]" .index "&%[key]%&" .index "key signatures" "changing" This directive specifies a change of key signature. If this falls at the start of a system, a cautionary key signature is printed at the end of the previous line unless the word `nowarn' is included in the directive. .code [key E$ nowarn] .endd There is also a heading directive, &%nokeywarn%&, for suppressing all cautionary key signatures. Key signature changes are printed in `modern style'. That is, unless the new key is C major (or A minor), all that is printed is the new signature. If `old style' is required, where the new key signature is preceded by an explicit cancelling of the old one with naturals, the new signature should be preceded by a change to C major. .code [key C key A] .endd This example prints a number of naturals to cancel the previous signature before printing three sharps. When a bar starts with a new key signature and a repeat mark, the order in which these are printed depends on the order in which they appear in the input. .code [key G] (: .endd This example causes the key signature to be printed first, followed by the repeat mark. .code (: [key G] .endd This example causes the repeat mark to be amalgamated with the previous bar line, with the key signature following. If, at the same point in the music, these items appear in different orders on different staves, the repeat sign is printed first on all staves. .subsection "[Line]" SUBSECTline .index "lines, straight" .index "straight lines" .index "line over notes" .index "line under notes" .index "&%[line]%&" .index "&%[xline]%&" .index "bracket, horizontal" .index "horizontal brackets" There are a number of situations where it is required to draw a straight line above or below a sequence of notes, with or without small `jogs' at the ends. The directive &%[line]%& works exactly like &%[slur]%& (&R; &<>&), except that what is drawn is a straight line with a vertical `jog' on each end, giving a sort of horizontal or near-horizontal bracket. The angle of the line depends on the `shape' of the note sequence that is above or below. The end of the line is marked by &%[endline]%& or &%[el]%& and there are the same options as for &%[slur]%& &-- for example, &`/b`&, &`/u`&, &`/d`&, &`/rr`&, etc. The &`/i`& and &`/ip`& qualifiers are available, and cause a dashed or dotted line to be drawn, respectively. The &`/co`& and &`/ci`& options affect the length of the `jogs'; however, the other options starting with &`/c`&, which for a slur move the Bézier curve control points, are ignored for lines. The following options can also be given with &%[line]%& in addition to those available for &%[slur]%&: .display &`/ol`& requests that the line be `open on the left' &`/or`& requests that the line be `open on the right' .endd An `open' line has no `jog' on the end. Unlike slurs, lines are by default always positioned above or below the stave itself, never actually overprinting it. However, like slurs, they can be positioned at fixed positions above or below the staves or at the underlay or overlay levels. The fixed positions refer to the main part of the line, excluding the jogs, if any. The &%[linegap]%& directive can be used to leave gaps in lines and cause drawing or printing to take place in the gap. For handling complicated overlapping lines, there is an &%[xline]%& directive that corresponds to &%[xslur]%&, and lines can also be `tagged' like slurs (&R; &<>&). The &`/=`& option that is used in &%[endslur]%& to identify tagged slurs is also available in &%[endline]%& for tagged lines. .subsection "[Linegap]" SUBSECTlinegap .index "&%[linegap]%&" .index "gaps" "in lines" .index "lines, gaps in" The directive &%[linegap]%& requests that a gap be left in a line that was set up by the &%[line]%& directive. The following options are provided: .ilist &`/=`&<&'letter'&> is used to identify which line is being referred to, in exactly the same way as it is used on the &%[endline]%& directive. .next &`/w`& followed by a number is used to specify the width of the gap; if it is not given, a width of four points is used, unless there is an associated text string (see below). The width is measured along the line. If a gap passes either end of the line, the ending jog is never drawn, even if specified. .next &`/h`& specifies that the centre of the gap is to be halfway along the line. It can be followed by a number in the range 0&--1.0 to specify a different fraction of the length; for example, &`/h0.75`& specifies that the centre of the gap is to be three-quarters of the way along the line. If &`/h`& is not specified, the centre of the gap is aligned with the centre of the notehead of the next note, or with the barline if there are no more notes in the bar. If &`/h`& is used when a line is split between two systems, it is applied to whichever part of the line the &%[linegap]%& directive falls in. .next &`/l`& and &`/r`& are used to move the position of the gap to the left or to the right by a given number of points. .next .index "drawing facility" "in line gaps" &`/draw`& <&'arguments'&> <&'name'&> specifies that the named drawing is to be associated with the gap. &*Warning*&: take care not to leave out the &`/`& by mistake. If a space is used instead, the drawing is no longer associated with the line gap, but with the following note. When defining drawings that are to be used with line gaps, it is useful to know that the width of lines drawn by &%[line]%& is 0.3 points. The drawing code is obeyed with the origin of the coordinate system set to the centre of the gap, and the variables &%linegapx%& and &%linegapy%& containing the coordinates of the start of the right-hand portion of the line relative to this origin. For a horizontal line, &%linegapx%& is half the width of the gap, and &%linegapy%& is zero. .next .index "text" "in line gaps" &`/"`&&'text'&&`"`& associates the text with the gap. .code [linegap/"\it\ad lib."] .endd This example prints the italic text &'ad lib.'& in the gap. The default font is roman. If no width for the gap is given by the &`/w`& option, the width is set to the length of the text plus a little bit. The text is printed centred in the gap, rotated so that it has the same slope as the line. The text option must be the last option for &%[linegap]%& because any further options are taken as options that apply to the string. The following text options are available: &`/u`&, &`/d`&, &`/l`&, &`/r`&, &`/s`&, &`/box`&, and &`/ring`&. The movements are relative to a coordinate system whose `horizontal' axis lies on the line joining the ends of the gap. .endlist A drawing or text string can be associated with the start or end of a line by using &`/h0`& or &`/h1`&, respectively. To associate a drawing or string with a particular point on a line, but without leaving a gap, &`/w0`& can be used. Any number of gaps may be specified for a single line. They are processed from left to right, and all the drawings for a single line on one system are processed together in succession. Here is an example of a gap that is used to print some text in the middle of a horizontal line: .code [line/a/h linegap/h/"unis. \it\ad lib"] efge | bag [el] r | .endd .music "music28" 36 4,-18 Because the &`/h`& option is used, the &%[linegap]%& directive can be given right at the start of the line. Do not confuse &`/h`& as used with &%[line]%&, where it means &'horizontal'&, with &`/h`& as used with &%[linegap]%&, where it means &'halfway'&. This latter usage was chosen to be similar to the &`/h`& option on hairpins. .index "pedal marks" Another use of the &%[linegap]%& facility is for drawing conventional piano pedal marks. Because these appear often in a piece, it is sensible to define macros for the relevant directives. .code draw blip linegapx linegapy moveto 0 linegapx 2 mul lineto linegapx neg linegapy neg lineto 0.3 setlinewidth stroke enddraw draw ped 0 0 moveto "\**163\ " show enddraw *define ped [line/=P/b/h/ol/d4 linegap/h0/w30/draw ped] *define blip [linegap/=P/draw blip] *define ep [endline/=P] [stave 1 bass 0] r- &ped %a &blip b-_; b-; e &blip a`-_ | a`- G` &ep r-r | .endd .music "music29" 40 0,-16 The &%ped%& macro starts the line, which is specified as horizontal and open (that is, no jog) on the left. It is also moved down four points, to allow for the height of the &{{£}}& text, which is printed at the start by means of the immediately following &%[linegap]%& directive. The &%blip%& macro creates a gap in the line at the next note, and causes a `blip' to be drawn. Notice that the size of the blip is relative to the width of the gap. Thus the same drawing could be used for different sized blips if required. The &%ep%& macro ends the line. In simple cases it would be just as quick to type &%[el]%&, the abbreviation for &%[endline]%&, but using the macro makes it clear that it is a pedal line that is terminating as well as using the &`/=`& option to specify exactly which line is being referred to. .subsection "[Mezzo]" .index "&%[mezzo]%&" This specifies a C clef with its centre on the second stave line (&R; &<>&). .subsection "[Midichannel]" SUBSECTmidichannelST .index "&%[midichannel]%&" .index "MIDI" "changing channel" The &%[midichannel]%& directive can be used to change the MIDI channel that the current stave uses, from the next note onwards. It can also be used to change the voice allocation of the new channel at the same time. .code [midichannel 5] [midichannel 6 "flute"] .endd The voice change takes effect at the time of the next note (or rest), and of course it affects any other staves that may be using the same channel. A relative volume may be given after the voice name, separated by a slash. .code [midichannel 1 "trumpet"/12] .endd See the &%midichannel%& directive for how to set up channels at the start of a piece. .subsection "[Midipitch]" SUBSECTmidipitch .index "&%[midipitch]%&" .index "MIDI" "changing pitch" The &%[midipitch]%& directive is used to alter the MIDI playing pitch for a stave, for the purpose of selecting a different untuned percussion instrument. Its argument takes the same form as the final argument of the &%midichannel%& heading directive. .code [midipitch "bongo"] .endd To stop forcing the playing pitch on a stave, specify an empty string in quotes. See &%[printpitch]%& for an alternative way of handling MIDI untuned percussion. .subsection "[Miditranspose]" .index "&%[miditranspose]%&" .index "transposition" "for playing" The &%[miditranspose]%& directive can be used to change the playing transposition of a stave, which is initially set from the &%miditranspose%& heading directive. The value given in &%[miditranspose]%& is added to the current playing transposition for the stave at the point it is encountered. One use of this is to arrange for &'8va'& passages to be played at the correct pitch. Changes made by &%[miditranspose]%& do not persist beyond the end of the movement. .subsection "[Midivoice]" SUBSECTmidivoice .index "&%[midivoice]%&" .index "MIDI" "changing voice" The &%[midivoice]%& directive can be used to change the MIDI voice without changing the channel. .code [midivoice "french horn"] .endd Note that this will affect any other staves that are using the same channel. If &%[midivoice]%& with different arguments appears in multiple staves that are using the same channel, the result is undefined. If you want different staves to play using different voices, you must allocate them to different channels, using either &%midichannel%& at the start of the piece, or &%[midichannel]%& on each stave. .subsection "[Midivolume]" SUBSECTmidivolumeST .index "&%[midivolume]%&" .index "MIDI" "changing volume" This directive can be used to change the relative MIDI playing volume of a particular stave part way through. Its single argument is number between 0 and 15, specifying the new relative volume for the current stave. .subsection "[Move]" .index "&%[move]%&" .index "moved notes" .index "notes" "moved" .index "clefs" "moving" If the &%[move]%& directive is followed by a single number, it causes the next non-textual thing that is to be printed on the current stave, whether it be a note or something else, to be moved horizontally by that number of points, without affecting the position of anything else in the bar, except slurs or ties that are attached to a moved note and any accents or ornaments that a note may have. If the number is positive, movement is to the right; if negative, it is to the left. Certain items can also be moved vertically, by specifying a second number after a comma. The second argument may also be a positive or negative number; positive movement is upwards. If two or more &%[move]%& directives appear in succession on a stave, they act cumulatively. .code [move -2,4 treble] .endd This example prints a mid-stave clef two points to the left and four points higher than normal. Vertical movement does not apply to notes and rests, and is ignored if specified. (See section &<>& for ways of moving rests vertically.) When staves of different sizes are in use, any vertical movement specified by &%[move]%& is scaled for the current stave, but horizontal movements are not scaled. However, there is a related directive called &%[rmove]%& that scales in both directions. Features such as text and slurs have their own syntax for vertical movement. Those items to which the &%[move]%& directive applies are: clefs, key signatures, time signatures, dotted bar lines, repeat marks, caesuras, commas, ticks, notes, and rests (for the last two, horizontal movement only). If &%[move]%& directive is present in the first bar of a sequence of rest bars and they are packed up into a single multi-bar rest, the &%[move]%& is applied to the number that is printed above the long rest sign. See also &%[ensure]%&, &%[rmove]%&, &%[rsmove]%&, &%[rpace]%&, &%[smove]%& and &%[space]%&. .subsection "[Name]" .index "&%[name]%&" .index "naming staves" .index "staves" "names for" The &%[name]%& directive has two entirely separate functions. If its arguments are one or more strings or calls to drawing functions, it is an alternative way of defining text or drawings to be printed at the left-hand side of the stave. This can be useful when portions of the text are being skipped conditionally. .code [stave 1 treble 1] *if score [name "Flute" "Fl."] *fi .endd This example prints the name in the score, but not in the part. In this form, the arguments for &%[name]%& are exactly the same as the text and drawing arguments of the &%[stave]%& directive. The second form of &%[name]%& is used to change what is printed at the start of a stave part-way through a piece, for example, if a double choir becomes a single choir, or &'vice versa'&. In this usage, its argument is a single number, which selects which string and/or drawing is to be used on the current and subsequent staves. Each `item' for printing at the start of a stave consists of a string or a call to a drawing function, or both, and they are numbered starting at one. For example, a stave might start with: .code [stave 2 "Alto" "A" "Alto I"] .endd By default in the first system the stave is labelled `Alto', and in all subsequent systems it is by default labelled `A'. However, if &%[name 3]%& is used at any point, the system in which it appears, and any subsequent ones, use the text `Alto I' for this stave. A number greater than the number of items can be used to suppress printing of anything at all; alternatively, empty strings can be used. .subsection "[Newline]" .index "&%[newline]%&" .index "forcing new lines" The directive &%[newline]%& can be used to force a new line (system) of music to be started at a particular point. It should always be at the start of a bar, but need appear in only one stave. If a stave is not selected for printing, however, an appearance of &%[newline]%& within it is ignored. See also the &%layout%& heading directive. .subsection "[Newmovement]" SUBSECTnewmovement .index "&%[newmovement]%&" .index "movement" "specifying" This directive must always appear immediately after an &%[endstave]%& directive. It signals the start of a new section of music, and is followed by an optional set of new heading directives, and then more staves of data. When &%[newmovement]%& is used without an argument, PMW looks to see if it can fit the new heading lines (if any) and the first system of the new movement onto the current page. If it cannot, a new page is started. In the case of a system consisting of one stave only, PMW tries to fit two systems into the current page, because a single line of music at the bottom of a page does not look good. By specifying &%[newmovement newpage]%&, you can force PMW always to start a new page. You can also specify &%[newmovement thispage]%& to stay on the current page when only a single stave of music will fit. Page headings specified in the new movement completely replace those set up in the previous movement, but if nothing is specified, the old page headings continue. This means that, for example, if page numbers are specified in the first movement by a page heading, they are printed on all subsequent pages, including pages that are the start of new movements. Section &<>& contains more details about the interaction of headings and footings with new movements. When a new movement starts at the top of a page, any page headings that are in force (either carried over or newly specified) are printed, in addition to the headings for the movement. Sometimes, however, it is required to suppress these page headings, for example if they are being used to print the name of the movement at the head of pages. This can be done by adding the keyword `nopageheading' to the &%[newmovement]%& directive. .code [newmovement nopageheading] .endd This option can be used with or without the `newpage' option; it takes effect only if the new movement actually starts at the top of a page. .index "footing" "at end of movement" The &%lastfooting%& directive sets up footings for the final page of a piece. In some circumstances it may be desirable to print a special footing at the end of an individual movement, and this can be done by specifying &%[newmovement uselastfooting]%&. In this case, if the new movement starts on a new page, the footing on the previous page is the &%lastfooting%& from the previous movement, if present. To force a new page and cause the &%lastfooting%& text to be printed, use: .code [newmovement newpage uselastfooting] .endd Use of this option does not cancel the &%lastfooting%& text; it is carried forward to the new movement, but of course can be replaced by a new &%lastfooting%& directive in the new movement. Another possible form of the directive is &%[newmovement thisline]%&, which is useful in some specialized circumstances. It has the effect of starting a new movement without advancing the current vertical position on the page. If there are no headings, the first system of the new movement prints with its first stave at the same level as the first stave of the last system of the previous movement. Two different uses are envisaged for this: .ilist Music for church services often contains very short sections of one or two bars, and it is sometimes desirable to print two of them side by side. .next .index "incipits" One style of printing incipits has white space between the incipit staves and the start of the main system. .endlist In both cases it is necessary to specify left justification for the last system of the first movement, and right justification for the first system of the second. .subsection "[Newpage]" .index "&%[newpage]%&" .index "forcing new pages" The directive &%[newpage]%& can be used to force a new page of music to be started at a particular point. It should always be at the start of a bar, but need appear in only one stave. If a stave is not selected for printing, however, an appearance of &%[newpage]%& within it is ignored. See also the &%layout%& heading directive. .subsection "[Nocheck]" SUBSECTstavenocheck .index "&%[nocheck]%&" .index "bar lengths" .index "odd bar lengths" .index "variable bar lengths" It is sometimes useful to disable PMW's checking of bar lengths (at the start or end of a piece, for example). The directive &%[nocheck]%& suppresses this check, for the current bar only. (See the heading directive of the same name for suppressing the check globally.) You can omit &%[nocheck]%& from completely empty bars and bars in which nothing appears other than a whole bar rest indication. .subsection "[Noclef]" .index "&%[noclef]%&" .index "invisible items" "clefs" .index "clefs" "invisible" This specifies an invisible clef (&R; &<>&). It acts as a treble clef as far as note pitch is concerned. It is useful when setting incipits where no clef is required. It is also useful when setting fragments and musical examples. .subsection "[Nocount]" .index "&%[nocount]%&" .index "uncounted bars" .index "bar numbers" "counting" .index "counting bars" .index "bar counting" In certain circumstances it may be necessary to prevent a bar in the middle of a piece from being counted for the purposes of bar numbering, for example, when using an `invisible bar line' to make PMW split a bar over two systems. Also, if the first bar of a piece is incomplete, it is conventional not to include it in the bar numbering. The directive &%[nocount]%& causes the current bar not to be counted; such a bar never has its number printed. This directive need appear in only one stave. If it appears in a bar whose contents are repeated by means of a number in square brackets, all the repeated bars are uncounted. Section &<>& explains how PMW identifies uncounted bars if it needs to refer to them, for example, in an error message. .subsection "[Noteheads]" SUBSECTnoteheadstave .index "&%[noteheads]%&" .index "noteheads" "invisible" .index "noteheads" "alternative shapes" .index "shape of noteheads" .index "invisible items" "noteheads" .index "harmonics" .index "`direct' character for noteheads" .index "noteheads" "`direct' character" .index "pitch, indicating without duration" Three alternative notehead shapes are supported: diamond-shaped for string harmonics, cross-shaped, and invisible (that is, no noteheads at all). The character &{{²}}& (which is called `direct') is sometimes seen on a stave in musical extracts and examination papers to indicate a pitch without specifying a time value. This character is in PMW's font and can be positioned as a text item, and it is also available as an exotic fifth form of notehead. It is also possible to print any of the noteheads without stems. The stave directive &%[noteheads]%& is used to control these features. It must be followed by one of the words `normal', `harmonic', `cross', `none', `direct', or `only'. .code a b [noteheads cross] c d | [noteheads normal] e f .endd This example prints the second two notes in the first bar with cross-shaped noteheads. For printing stemless notes, the directive &%[noteheads only]%& .index "stemless notes" .index "stems" "invisible" .index "invisible items" "stems" requests that all stems and beams be suppressed until another occurrence of &%[noteheads]%& with a argument other than `only'. Because this is quite a long directive to type, and one which might appear frequently in some music, abbreviations are provided as follows: .itable none 0 0 3 30 left 80 left 200 left .row &`[o]`& "is equivalent to" "&`[noteheads normal]`&" .row &`[h]`& "is equivalent to" "&`[noteheads harmonic]`&" .row &`[x]`& "is equivalent to" "&`[noteheads cross]`&" .row &`[z]`& "is equivalent to" "&`[noteheads none]`&" .endtable .index "ledger lines" "with alternate noteheads" When &%[noteheads direct]%& is selected (to print notes as &{{²}}&), ledger lines are printed as normal, but no stems or beams are printed. When no noteheads are being printed (&%[noteheads none]%&), breves and semibreves are completely invisible, but stems and beams are still drawn for other notes, though no ledger lines are printed. See &%[notes]%& for a way of suppressing noteheads &'and'& stems, but still drawing beams. With cross-shaped noteheads there is no difference between the appearance of a crotchet and a minim. Breves are distinguished from semibreves only when normal noteheads are being printed. .subsection "[Notes]" .index "&%[notes]%&" .index "invisible items" "noteheads" .index "invisible items" "stems" .index "stems" "invisible" .index "noteheads" "invisible" .index "beams without notes" The directive &%[notes off]%& suppresses the printing of notes and their stems (and ledger lines). However, if the notes would have been beamed, the beams are still drawn. This can be used for placing beams in non-standard places. In addition, if the ornaments or fermatas are specified, these are also printed. Making the note or chord at the end of a tie invisible is a convenient way to print `hanging' tie marks (&R; &<>&). The effect of &%[notes off]%& is reversed by &%[notes on]%&. See &%[noteheads]%& for a way of suppressing noteheads while leaving both stems and beams. .index "&%midifornotesoff%&" .index "MIDI" "for invisible notes" Notes that are suppressed with &%[notes off]%& are by default omitted from MIDI output as well as from PostScript output. This can be changed by including the heading directive &%midifornotesoff%&. .subsection "[Notespacing]" SUBSECTstavens .index "&%[notespacing]%&" .index "&%[ns]%&" .index "notes" "spacing" .index "spacing" "notes" The &%[notespacing]%& directive (abbreviation &%[ns]%&) specifies a temporary change in the horizontal distances between notes. Internally, note spacings are held to an accuracy of 0.001 of a point. If the directive is given with no arguments, it resets to the values that were current at the start of the movement. The most commonly used form of &%[notespacing]%& is the one that changes each element in the note spacing table by a multiplicative factor. This is done by following the keyword by an asterisk and a number (possibly containing a decimal point) or a rational number, as in the following examples: .itable none 0 0 2 80 left 300 left .row "&`[ns *0.75]`&" "change to three-quarter spacing" .row "&`[ns *3/4]`&" "change to three-quarter spacing" .row "&`[ns *2]`&" "double the spacing" .row "&`[ns *1.5]`&" "multiply the spacing by one and a half" .row "&`[ns *3/2]`&" "multiply the spacing by one and a half" .endtable Alternatively, the directive name can be followed (in the brackets) by up to eight numbers, which give the &'change'& in the note spacing, in points, for notes of different lengths, starting with the value for breves. (See the &%notespacing%& heading directive.) Trailing zero values can be omitted. .code [notespacing 0 0 3 -2] .endd This example specifies that minims are to be printed three points further apart and crotchets are to be two points closer together. The &%[notespacing]%& directive takes effect for the remainder of the current bar on the stave where it occurs, and for all the notes in the same bar on staves of higher number (that is, those that print below it on the page), and then for all notes in subsequent bars. Of course, this may have the effect of moving notes in previous staves, in order to keep the music properly aligned. &*Warning*&: To avoid unexpected effects, &%[notespacing]%& is best used only at the beginnings of bars, and preferably in the top part. When changing the spacing for a single bar, it is all too easy to reset the note spacing within the bar, for example: .code [notespacing *0.8] a-b- g d [ns] | .endd This may behave strangely because PMW processes bars stave by stave. It will therefore obey the resetting directive before considering the other staves, and only one bar on one stave will have been processed with the altered spacing. It is usually better to use this form: .code [notespacing *0.8] a-b- g d | [ns] .endd In this case, the subsequent staves are also processed with the reduced spacing. If a change of note spacing is always required, whatever combination of staves is selected for printing, it can be given on stave 0. .subsection "[Octave]" .index "transposition" "octave" .index "&%[octave]%&" It is often useful to input music at a different octave from that at which it is to be printed. For example, when a part is in the treble clef it may be easier to enter if the letters C&--B represent the octave starting at middle C rather than the one below it. The &%[octave]%& directive, which must be followed by a number, requests transposition by the number of octaves given. The octave can also be set at the same time as the clef (&R; &<>&). Each such octave setting replaces the previous one; they are not cumulative. If the number is positive, transposition is upwards; if negative, it is downwards. Octave transposition is in addition to any general transposition that is in force. .subsection "[Olevel] and [olhere]" .index "&%[olevel]%&" .index "&%[olhere]%&" These directives control the position of the overlay level in exactly the same way as &%[ulevel]%& and &%[ulhere]%& for the underlay level (&R; &<>&). .subsection "[Oltextsize]" .index "&%[oltextsize]%&" This directive must be followed by a number in the range 1 to 12. It selects the default size to be used for overlay text on the current stave. The actual font sizes that correspond to the twelve numbers are set by the &%textsizes%& heading directive. If this directive is not used, the size set by the &%overlaysize%& heading directive (whose parameter is different from any of the sizes set by &%textsizes%&) is used. &%[Oltextsize]%& is normally needed only if you want different sizes of overlay text on different staves. .subsection "[Omitempty]" SUBSECTomitempty .index "&%[omitempty]%&" .index "omitting empty staves" .index "omitting empty bars" .index "empty bars, omitting" .index "empty staves, omitting" .index "staves" "omitting if empty" .index "bars" "omitting if empty" When a stave is about to be suspended (&R; &<>&, &<>&), it is sometimes desirable not to print stave lines after the final bar that contains notes, and similarly, when a stave is resumed, empty bars preceding the resuming bar may not be required. If the directive &%[omitempty]%& appears at the start of a stave's data, &'nothing at all'& is ever printed for bars for which no data is supplied. Such bars can be set up by means of the &%[skip]%& stave directive, or by omitting them at the end of a stave's data. Note that a bar that is specified as a rest bar, visible or invisible, counts as a bar for which there &'is'& data, and a clef specification also counts as data. Therefore, if bars are to be omitted at the start of a stave, the input should be as in this example: .code [stave 3 omitempty skip 20] .endd The clef specification (possibly made invisible by means of &%[assume]%&) can then follow. It is not necessary for the suspend mechanism to be used with this feature, though if is not, vertical white space is left for the stave, even if nothing is printed in that space. When a non-empty bar follows an empty bar in a stave for which &%[omitempty]%& has been set, and it is not the first bar in a system, a bar line has to be printed at its start. By default, a conventional solid bar line is printed, but it is possible to specify other bar line styles, a double bar line, or an invisible bar line, by using the normal PMW notations for these things at the end of the preceding empty bar. .code [omitempty] ggg |? [skip 3] |? aaa | .endd .music "music51" 32 8,-16 This example specifies that no bar line it to be printed at the end of the bar before the skip, nor at the start of the final bar. Without the question marks, there would be bar lines in both these places. Note that because of the way &%[skip]%& works, this example contains 4 empty bars, not 3. The gap in this case is quite small, because, in the absence of other staves, PMW has packed them up into a single (invisible) `rest' bar. .index "isolated bars" One or more &%[omitempty]%& staves can be used for printing isolated bars on a page, using empty bars between them to cause horizontal white spaces to appear. The size of the white spaces can be controlled by the use of &%[space]%& directives on stave 0 &-- they cannot be used in the empty bars, because that causes PMW to treat them as not empty. .subsection "[Overdraw]" .index "&%[overdraw]%&" .index "drawing facility" "drawing over everything else" When a drawing is associated with a note or bar line by means of the &%[draw]%& directive, the drawing output happens before the note or bar line is output. The order does not matter when everything is black, but if the &%setgray%& drawing operator is being used, the drawing may need to be done last to achieve the correct effect. &%[Overdraw]%& acts just like &%[draw]%& except that it saves up the drawn items, and outputs them only after everything else in the system has been output. Using &%setgray%& and &%[overdraw]%& it is possible to `white out' parts of staves. .subsection "[Overlayfont]" .index "&%[overlayfont]%&" .index "fonts" "default for overlay" The default typeface for overlay text can be set for an individual stave by means of the &%[overlayfont]%& directive, which takes as its argument one of the standard font names. .code [overlayfont italic] .endd The default typeface for overlay text is roman. In any given text string it is always possible to change typeface by using the appropriate escape sequence. .subsection "[Page]" .index "&%[page]%&" .index "page" "skipping a number" Occasionally there is a requirement to skip a page in the middle of a piece &-- to insert commentary in a critical edition, for example. The &%[page]%& directive can be used to set the page number for the page on which it appears, but it is not possible to decrease the page number. You can specify an absolute page number, or an increment of the page number preceded by a plus sign. .code [page 45] [page +1] .endd .subsection "[Percussion]" .index "percussion staves" .index "&%[percussion]%&" &'The'& &%[percussion]%& &'directive is deprecated, having been superseded by the'& &%[stavelines]%& &'directive, which should be used instead in all new input files.'& The &%[percussion]%& directive, which has no arguments, specifies that the current stave is for untuned percussion. It has the following effects: .ilist The stave is printed as a single line instead of five. The line is positioned where the middle line of a five-line stave would be. .next No clef or key signature is printed at the start of the stave. .index "clefs" "percussion" .next Whole bar rests are printed under the third line (that is, under the line that is printed) instead of under the (invisible) fourth line of the stave. .next No ledger lines are printed for notes off the stave. .endlist Otherwise the stave behaves as normal. Ordinary noteheads are printed. Although no clef is printed, the vertical positioning of notes is relative to the current clef. .code [stave 5 "Side Drum" "S.D." bass 0] [10] d d-d- | [20]R! | .endd The use of the bass clef ensures that the note &`d`& prints on the middle line of the stave, that is, the single line of the percussion stave. .subsection "[Playtranspose]" .index "&%[playtranspose]%&" This directive is a synonym for &%[miditranspose]%&. It dates from the early days of PMW running on Acorn hardware, when playing was possible without using MIDI. .subsection "[Playvolume]" .index "&%[playvolume]%&" This directive is a synonym for &%midivolume%&. It dates from the early days of PMW running on Acorn hardware, when playing was possible without using MIDI. .subsection "[Printpitch]" SUBSECTprintpitch .index "&%[printpitch]%&" .index "MIDI" "untuned percussion" When inputting a file that is both to be printed and played on a MIDI instrument, the &%[midipitch]%& directive can be quite cumbersome to use if a percussion part changes instruments frequently, even though the amount of typing can be reduced by using macros. An alternative facility that forces the printing pitch instead of the playing pitch is therefore provided. The &%[printpitch]%& directive takes a note letter and optional octave indication as its argument. It causes all subsequent notes on the stave to be printed on the corresponding line or space, whatever pitch is specified for the note in the input. The input pitch can then be used to select different percussion instruments for MIDI output. To do this, you need to know that middle C corresponds to MIDI note 60, C-sharp is 61, B is 59, and so on. Of course, some indication in the printed music is also required to tell a human player what to do &-- this can take the form of graphic signs above the notes, or different noteheads or stem directions can be used. Here is an invented example, where the first three beats of the bar are played on a snare drum (General MIDI pitch 38), and the last beat on the cowbell (General MIDI pitch 56), indicated by a downward pointing stem. .code [stave 8 hclef 0 stavelines 1] [printpitch b' stems up] d`d`d` $a-\sd\$a- | .endd .music "music44" 26 4,-20 The effect of &%[printpitch]%& can be cancelled by supplying an asterisk as its argument. When a percussion stave with more than one line is used to separate different instruments, or if notes are placed above and below the line, it is probably easiest to input each instrument's part on a separate PMW stave, and arrange for them to overprint each other. Then the appropriate MIDI sound can be permanently set for each stave. .subsection "[Reset]" .index "&%[reset]%&" .index "overprinting" "single bars" Sometimes it is convenient to notate a bar as two different sequences of notes, to be overprinted on the stave. The stave directive &%[reset]%& has the effect of resetting the horizontal position to the start of the current bar. Anything that follows it is overprinted on top of whatever has already been specified. If a large number of bars require overprinting, it may be more convenient to set up an entire overprinting stave by specifying a stave spacing of zero. &%[Reset]%& should in any case be used with caution, because it can cause unexpected effects if items such as slurs are in use. .code [stems up] gabc' [reset] [stems down] efga | .endd This example prints a bar containing the chords &`(eg)`&, &`(fa)`&, &`(gb)`& and &`(ac')`&, but with the stems of each component of the chord drawn in opposite directions. More than one &%[reset]%& may appear if necessary, and only one set of notes need be of the correct length to satisfy the time signature. The facility for printing invisible rests, notated by the letter Q, can be useful in conjunction with &%[reset]%&. Because PMW processes bars from left to right, &%[reset]%& must not appear between two notes that are connected in some way, for example, between two tied or slurred notes. It must also not appear between any other printing item and the note or bar line that follows, because such items are always `attached' to the following note or bar line. Specifically, &%[reset]%& must not follow any of the following: a clef, a tied note, the first note of a glissando, the start of a hairpin, a mid-bar dotted line, a repeat sign, a caesura, a text item, &%[slur]%&, &%[xslur]%&, &%[line]%&, &%[xline]%&, &%[key]%&, &%[time]%&, &%[comma]%&, &%[tick]%&, &%[move]%&, &%[smove]%&, &%[space]%&, or a rehearsal mark. Also, &%[reset]%& may not occur in the middle of an irregular note group. .subsection "[Resume]" .index "&%[resume]%&" This directive forces a resumption of a suspended stave &-- see &%[suspend]%& for details. .subsection "[Rlevel]" .index "&%[rlevel]%&" .index "rests" "level" .index "level" "of rests" Rests are normally printed centrally on the stave, as is conventional for single parts. When two staves are being overprinted to combine two different parts, it may be necessary to move rests up or down. There is a note option that can be used to do this for individual rests (&R; &<>&). The &%[rlevel]%& directive specifies an adjustment that applies to all subsequent rests. Any adjustment specified for individual rests is added to the current rest level as set by this directive. The argument for &%[rlevel]%& may be positive or negative; it specifies a number of points by which the rest is moved vertically. A positive number moves upwards, and a negative one moves downwards. .code [rlevel -12] .endd This example causes rests to be printed 12 points lower than normal, so that a whole bar rest, which normally prints below the fourth line, now prints below the bottom line of the stave. .index "ledger lines" "for rests off the stave" Semibreve and minim rests that are moved off the stave are printed with a single ledger line to indicate which they are. Each occurrence of &%[rlevel]%& sets a level relative to the default position. They are not cumulative. .subsection "[Rmove]" .index "&%[rmove]%&" This directive operates exactly as &%[move]%&, except that horizontal movements are scaled to the relative stave size. .subsection "[Rsmove]" .index "&%[rsmove]%&" This directive operates exactly as &%[smove]%&, except that horizontal movements are scaled to the relative stave size. .subsection "[Rspace]" .index "&%[rspace]%&" This directive operates exactly as &%[space]%&, except that horizontal dimensions are scaled to the relative stave size. .subsection "[Sghere] and [sgnext]" SUBSECTsg .index "&%[sghere]%&" .index "&%[sgnext]%&" .index "system gap" .index "spacing" "systems" .index "gaps" "between systems" &%[Sghere]%& and &%[sgnext]%& affect the system gap value, that is, the amount of vertical space that is left between systems. When vertical justification is enabled, this value is the minimum amount of space. &%[Sghere]%& changes the spacing for the current system only (that is, the one in which the current bar is to appear), whereas &%[sgnext]%& makes the change for all systems that follow the current one. In each case a single number is required as an argument. It can be preceded by a plus or minus sign to indicate a relative change from the existing value. Note that when a single part is being printed, it is the system gap that determines the distance between staves. If more than one occurrence of &%[sghere]%& is encountered in a single system, the largest spacing value is used. In the case of multiple occurrences of &%[sgnext]%&, the last value is used (for the next system). .subsection "[Skip]" .index "&%[skip]%&" .index "overprinting" "sparse staves" .index "skipping bars" .index "bars" "skipping" When setting vocal or keyboard music it is common to use two overprinting staves for notes with stems in different directions. Frequently, though, there are long sequences of bars for which the second stave is not required. Such a sequence can be notated using invisible whole bar rests, but if this is done it is still necessary to keep the clef and key signature in step with the other stave so that they are printed correctly at the beginnings of lines, and at least the final time signature change must appear in the correct place so that it is available for checking when notes resume. .index "&%skip%&" An alternative approach is to use the &%[skip]%& stave directive, which should appear at the beginning of a bar, and which causes PMW to leave a given number of bars totally empty. .code [stave 2] gg | [skip 50] aa | [endstave] .endd This example defines a stave in which only bars 1 and 52 are defined. When a totally empty bar occurs at the start of a system, the clef and key signature are not printed. Otherwise such bars are treated as if they contained invisible whole bar rests. If &%[skip]%& is used at the very start of a stave, no clef directive should be given, because otherwise the clef directive is taken as part of the resumed bar after the skip. See also the &%[assume]%& and &%[omitempty]%& directives. .subsection "[Slur]" SUBSECTslurs .index "&%[slur]%&" .index "&%[endslur]%&" .index "&%[es]%&" .index-from I09 "slurs" "full specification" Slurs between adjacent single notes can be input by inserting an underline character after the first note (&R; &<>&). When a slur covers chords, or spans several single notes, it must be coded using the &%[slur]%& and &%[endslur]%& directives; &%[es]%& is an abbreviation for &%[endslur]%&. The options for the &%[slur]%& directive are also applicable to the &%[line]%& directive (&R; &<>&). .subsection "Normal slurs" The &%[slur]%& and &%[endslur]%& directives enclose the notes and/or chords that are to be slurred. .code a [slur] b-a-g-f- [endslur] g .endd This example causes a slur to be drawn over the four beamed quavers. Slurs are drawn above the notes by default. The shape of slurs is correct in many common cases, but when there is a large variation in pitch in the notes being slurred, the slur mark may sometimes need manual adjustment. Various options are provided for the &%[slur]%& directive for this purpose. The options are separated from each other, and from the directive name, by slashes. The following are available: .itable none 0 0 2 76 left 300 left .row &`/a`& "slur above the notes (default)" .row &`/a`&<&'n'&> "slur above, at fixed position above stave" .row &`/ao`& "slur above, at overlay level" .row &`/b`& "slur below the notes" .row &`/b`&<&'n'&> "slur below, at fixed position below stave" .row &`/bu`& "slur below, at underlay level" .row &`/h`& "force horizontal slur" .row &`/ll`&<&'n'&> "move the left end left by <&'n'&> points" .row &`/lr`&<&'n'&> "move the left end right by <&'n'&> points" .row &`/rl`&<&'n'&> "move the right end left by <&'n'&> points" .row &`/rr`&<&'n'&> "move the right end right by <&'n'&> points" .row &`/u`&<&'n'&> "raise the entire slur by <&'n'&> points" .row &`/d`&<&'n'&> "lower the entire slur by <&'n'&> points" .row &`/lu`&<&'n'&> "raise the left end by <&'n'&> points" .row &`/ld`&<&'n'&> "lower the left end by <&'n'&> points" .row &`/ru`&<&'n'&> "raise the right end by <&'n'&> points" .row &`/rd`&<&'n'&> "lower the right end by <&'n'&> points" .row &`/ci`&<&'n'&> "move the centre in by <&'n'&> points" .row &`/co`&<&'n'&> "move the centre out by <&'n'&> points" .endtable Here are some examples of the &%[slur]%& directive: .code [slur] [slur/b] [slur/u4] [slur/lu2/co4] [slur/rr6] [slur/a/u4/ld2] [slur/a/lu2/ru4] .endd Repeated movement qualifiers are accumulated. The options &`/u`& and &`/d`& are shorthand for specifying an identical vertical adjustment of both ends of the slur. Specifying &`/ci`& causes the slur to become flatter, and specifying &`/co`& causes it to become more curved. The &`/h`& qualifier requests a horizontal slur, that is, one in which both ends are at the same horizontal level before any explicit adjustments are applied. This is implemented by forcing the right-hand end to be at the same level as the left-hand end. Use of the &`/a`& or &`/b`& options with a fixed position (for example, &`/a8`&) initializes the vertical positions of both end points, as does the use of the &`/ao`& or &`/bu`& options. This results in a horizontal slur by default. The &`/h`& option is not relevant in these cases, and is ignored if given. However, the options for moving the ends can be applied. The &`/ao`& and &`/bu`& options are probably more useful with &%[line]%& than with &%[slur]%&, for cases when several lines at the same level are required on a single system. For example, if lines are being drawn for piano pedal marks (see &%[linegap]%& for an example), using the &`/bu`& option causes them all to be at the same level below a given stave, and to be positioned just below the lowest note on that stave. If there is overlay or underlay text for a stave, the overlay or underlay level is computed by taking into account only those notes that actually have associated text or dashes or extender lines. If not, all the notes on the stave are taken into account. One particular use of the options for moving the ends of slurs horizontally is for printing a slur (or tie) that extends from the last note of a bar up to the bar line and no further, or from the bar line to the first note in a bar. These are needed for some kinds of first and second time bar. A slur that includes only one note provokes an error, because it is an attempt to draw a slur of zero horizontal extent. .code [slur] a [endslur] .endd This example is incorrect. However, if one end of the slur is moved, all is well. .code [slur/rr15] a [endslur] .endd This example is acceptable. The slur starts at the note, and extends for 15 points to the right. Slurs may be nested to any depth. .code a b [slur] c d | [slur/b] e f g [es] a | f e [es] d c | .endd This prints as a long slur extending from the middle of the first bar to the middle of the third bar, with a shorter slur below three notes in the second bar. In other words, the first &%[slur]%& matches with the last &%[es]%&. A similar example, together with its output, is shown in section &<>&. .subsection "Additional control of slur shapes" .index "slurs" "control of shape" .index "Bézier curves" Slurs are drawn using Bézier curves, which are described in many books on computer graphics. A Bézier curve is defined by two end points and two control points. The curve starts out from its starting point towards the first control point, and ends up at the finishing point coming from the direction of the second control point. The greater the distance of the control points from the end points, the more the curve goes towards the control points before turning back to the end point. It does not, however, pass through the control points. For slurs, the control points are normally positioned symmetrically, giving rise to a symmetric curve. The &`/co`& and &`/ci`& (`curve out' and `curve in') options described above are used to move the control points further from or nearer to the line between the endpoints, respectively. Occasionally, non-symmetric slurs are needed, and so some additional options are provided to enable the positions of the two control points to be independently moved. .itable none 0 0 2 76 left 300 left .row &`/clu`&<&'n'&> "move left control point up <&'n'&> points" .row &`/cld`&<&'n'&> "move left control point down <&'n'&> points" .row &`/cll`&<&'n'&> "move left control point left <&'n'&> points" .row &`/clr`&<&'n'&> "move left control point right <&'n'&> points" .row &`/cru`&<&'n'&> "move right control point up <&'n'&> points" .row &`/crd`&<&'n'&> "move right control point down <&'n'&> points" .row &`/crl`&<&'n'&> "move right control point left <&'n'&> points" .row &`/crr`&<&'n'&> "move right control point right <&'n'&> points" .endtable Thus, for example, &%[slur/a/clu40]%& draws a slur that bulges upwards on the left. Experimentation is usually needed to find out the precise values needed for a given shape. The directions of movement for these options are not the normal ones, except when a slur is horizontal. When a slur's end points are not at the same level, the coordinate system is rotated so that the new `horizontal' is the line joining the end points. In most cases this rotation is small, and so the difference is not great. In all cases, the left control point relates to the left-hand end of the slur, and the right control point relates to the right-hand end, whichever way up the slur is drawn. .subsection "Editorial and dashed slurs" .index "slurs" "dashed" .index "slurs" "editorial" .index "dashed slurs" .index "editorial slurs" Three alternative forms of slur are provided: dashed slurs, dotted slurs, and `editorial' slurs. The latter have a short vertical stroke through their midpoint if they are symmetric in shape, or near the midpoint otherwise. The alternatives are specified by qualifiers on the directive. .display &`/i `& draw an `intermittent' (dashed) slur &`/ip`& draw an `intermittent points' (dotted) slur &`/e `& draw an editorial slur .endd These qualifiers can be freely mixed with the other slur qualifiers. However, if a slur is dashed or dotted, and also marked `editorial', no attempt is made to ensure that the editorial mark coincides with a solid bit of slur. .subsection "Wiggly slurs" .index "slurs" "wiggly" .index "wiggly slurs" The option &`/w`& causes the curvature of the slur to change sides in the middle. For example, a wiggly slur below some notes starts curving downwards, but then changes to curving upwards. The slur may be solid, dashed, dotted, or editorial. If a wiggly slur crosses the end of a system, the portion on the first system curves one way, and the portion on the next system curves the other way. .subsection "Split slurs" .index "split slurs" .index "slurs" "split" Slurs are correctly continued if they span a boundary between two systems. By default, such slurs are not continued over warning key or time signatures at the ends of lines, but PMW can be requested to do this by means of the &%sluroverwarnings%& heading directive. The shape and positioning of the end of the first part of a split slur are controlled by the &%endlineslurstyle%& and &%endlinesluradjust%& directives. The sections of a slur that extends over one or more line ends are numbered from 1. An option in a &%[slur]%& directive that consists just of a number means that subsequent options apply only to the given section. Thus, for example, &%[slur/3/lu4/co4]%& moves the left-hand end of the third section upwards, and increases its curvature. Spaces are allowed between options, and these can be used to make a complicated slur more readable by separating the various sections. .code [slur /1/co2 /2/lu4/rd6] .endd The only options that may appear after a section selector are those that move endpoints or control curvature, that is, &`/u`&, &`/d`& and those options beginning with &`/l`&, &`/r`&, and &`/c`&. If a section number is given that is greater than the number of sections, its data is ignored, and when a slur is not split, all section-specific options are ignored, even those for section 1. Movement and curvature options that appear before the first section selector are handled as follows: .ilist All options beginning with &`/c`& apply only when the slur is not split. .next The &`/u`& and &`/d`& options apply to all endpoints of all sections, whether the slur is split or not. .next Options beginning with &`/l`& (the letter) apply to the starting point of the slur, whether or not it is split. To move the starting point only when the slur is split (but not if it is not) these options can be given after &`/1`& (the digit), in which case they are added to any values given before the selector. .next Any vertical movement specified with &`/lu`& or &`/ld`& is also applied to the right-hand end of the first section of a split slur. To affect only the left-hand end, put these options after &`/1`& (the digit). .next Options beginning with &`/r`& apply to the final endpoint of the slur, whether or not it is split. To move the endpoint only when the slur is split (but not if it is not) these options can be given after &`/`&<&'n'&>, where <&'n'&> is the number of the final section, in which case they are added to any values given before the selector. .next Any vertical movement specified with &`/ru`& or &`/rd`& is also applied to the left-hand end of the final section of the slur. To affect only the right-hand end, put these options after &`/`&<&'n'&>. .endlist If &`/ao`& or &`/bu`& is specified for a slur that is split, each section of the slur is positioned at the overlay or underlay level for its own stave, but can of course be moved by suitable options after a section selector. Similarly, &`/a`& and &`/b`&, if given with a dimension, cause all sections of a split slur to be positioned at the given vertical position. If a wiggly slur is split, the first section curves one way, and all subsequent ones curve the other way. Earlier versions of PMW used a more restricted set of options starting with &`/s`& to control split slurs. These are still supported, but are no longer documented and should not be used in new files. .subsection "Overlapping nested slurs" SUBSECTxslur .index "slurs" "overlapping" .index "overlapping slurs" .index "&%[xslur]%&" Usually slurs are properly nested, that is, if a second slur starts within a slur, the inner slur ends before the outer slur. The slur notation in PMW is naturally nested, and automatically ensures that this convention is followed. Any number of slurs may be started at any one time on a stave. The data for a given slur (starting coordinates, etc.) are placed on a stack when the &%[slur]%& directive is obeyed. If another slur is started before the first one is complete, its data goes on top of the stack, temporarily `hiding' any previous data that may be already there. When &%[endslur]%& is obeyed, it terminates the slur whose data is on the top of the stack (and that data is removed). By default, therefore, &%[endslur]%& always terminates the most recently started slur. Very occasionally, it is useful to be able to start a second slur within a slur and have it cross over the outer slur. More commonly, it is sometimes necessary to have one slur ending and the next beginning on the same note &-- a situation that is not possible using the normal PMW slur notation, because slur starts are notated before notes and slur ends afterwards. .index "crossing slurs" .index "slurs" "crossing" To make this possible, the &%[xslur]%& (`crossing slur') directive causes an innermost nested slur cross over the one immediately outside it. .code [slur] a [xslur] b [es] c [es] .endd This example draws one slur covering the first two notes, and the next slur covering the second and third notes. The &%[xslur]%& directive does not place its data on the top of the stack (unless the stack is empty). Instead, it places it one position down in the stack. Thus, the next &%[endslur]%& terminates the previously started slur, leaving the latest one still incomplete, and in the example above, the first &%[es]%& is thereby made to refer to the &%[slur]%& directive and the second to the &%[xslur]%& instead of the other way round. This facility is available for the innermost nested slur only. .subsection "Tagged slurs" SUBSECTtaggedslurs .index "tagged slurs" .index "slurs" "tagged" In very complicated music, even the &%[xslur]%& facility is not powerful enough to describe what is wanted, and it is necessary to use `tagged' slurs. The qualifier &`/=`& can be used within a &%[slur]%& directive to `tag' a slur. It must be followed by a single identifying character. It is recommended that capital letters normally be used, as they are visually distinctive. A tagged slur is placed on top of the stack as normal. The &%[endslur]%& directive may also contain a tag, using the same syntax. When a tagged &%[endslur]%& directive is obeyed, the stack of unterminated slurs is searched for a slur with a matching tag, and if one is found, that slur is terminated. If no matching slur is found, an error message is given and the slur on the top of the stack is terminated. When &%[endslur]%& does not contain a tag, the topmost slur is terminated, whether or not it is tagged. Here is an example of the use of tagged slurs: .code [slur/=A] [slur/b/=Z] ggg [slur/=B] a [es/=A] a [es/=Z] a [es] | .endd .music "music43" 32 4,-20 .index-to I09 .subsection "[Slurgap]" SUBSECTslurgap .index "&%[slurgap]%&" .index "slurs" "gaps in" .index "gaps" "in slurs" The &%[slurgap]%& directive has the same options as &%[linegap]%&, and can be used to leave gaps in slurs where they would otherwise cross over other items. For example, to avoid drawing a slur through a key signature: .code r [slur/co3/lu2] G`+ [slurgap/w30/r10] | [key e$] c G' [es] | .endd .music "music52" 34 4,-14 Specifying a gap associated with a text string or a drawing function provides a way of adding arbitrary annotation to a slur &-- a width of zero can be given if no actual gap in the slur is required. When an associated drawing function is obeyed, the origin is halfway along the straight line joining the edges of the gap, and the &%linegapx%& and &%linegapy%& variables are set as for &%[linegap]%&. Bracketed slurs can be done using a drawing function, but the text option is probably easier. .code [slur slurgap/h0/w0/"( " slurgap/h1/w0/" )"] .endd In this example, the &`/h0`& and &`/h1`& options specify the start and end of the slur, respectively, and &`/w0`& specifies a gap of zero width. String options can be used to alter the size or position of the text as required. A gap specified for a dashed slur is liable to result in partial dashes being drawn, unless its length is carefully adjusted. .subsection "[Smove]" .index "&%[smove]%&" This directive is a shorthand for combining a &%[move]%& and a &%[space]%& directive. The following two lines of input are equivalent: .code [move 6] a [space 6] [smove 6] a .endd This is common usage when adjusting the position of notes on overprinting staves. The space is not scaled by the stave size &-- use &%[rsmove]%& if you want scaled space. .subsection "[Soprabass]" .index "&%[soprabass]%&" This specifies a bass clef with a little `8' printed above it (&R; &<>&). .subsection "[Soprano]" .index "&%[soprano]%&" This specifies a C clef with its centre on the bottom stave line (&R; &<>&). .subsection "[Space]" .index "&%[space]%&" .index "space" "inserting in staves" The &%[space]%& directive, which has a single number as an argument, causes space to be inserted before the next note or rest in the bar, or before the bar line if there are no more notes or rests. The remainder of the bar, including appropriate items on other staves, is adjusted accordingly. The number can be positive or negative; a negative value removes space from the bar. The space is not scaled by the relative stave size. If you want to insert scaled space, use &%[rspace]%&. When there are two or more occurrences of &%[space]%& at the same position in a bar, PMW takes the largest if previous ones specify a positive amount of space, and the smallest if they specify a negative amount. This normally gives the right effect if extra space is accidentally specified in two different staves. &*Note*&: unlike &%[move]%&, &%[space]%& always affects the position of the next note, rest, or bar line, even if some other item intervenes. Other items are always printed in relation to the note, rest, or bar line that follows them. Therefore, adjusting the position of a note, rest, or bar line with &%[space]%& affects these items too. The following two examples have exactly the same effect: .code [comma] [space 6] A [space 6] [comma] A .endd This is because &%[space]%& does not affect non-note items such as commas. The &%[move]%& directive can be used in conjunction with &%[space]%& to insert space between a non-note item and the note to which it is related. .code [space 6][move -6][comma] A .endd In this example, &%[space]%& moves both the note and its attached comma (and everything that follows) to the right; &%[move]%& then moves the comma back to where it would have been without the inserted space. &%[Space]%& is obeyed when PMW is figuring out where to position the notes in the bar, whereas &%[move]%& is obeyed when the bar is output. See also &%[ensure]%&, &%[move]%&, &%[smove]%&, &%[rspace]%&, &%[rmove]%&, and &%[rsmove]%&. .subsection "[Sshere] and [ssnext]" SUBSECTss .index "&%[sshere]%&" .index "&%[ssnext]%&" .index "staves" "spacing" .index "spacing" "staves" &%[Sshere]%& and &%[ssnext]%& affect stave spacing. &%[Sshere]%& changes the spacing for the current system only (that is, the one in which the current bar appears), whereas &%[ssnext]%& makes the change for all systems that follow the current one. If either of these directives is followed by a single number, this applies to the current stave only, except when the current stave is number zero, in which case the value applies to all staves. For example, a bar with very low notes might require notating thus: .code [treble 1] [sshere 60] f` a` c e | .endd This example has the effect of setting the stave spacing to 60 points, for the current stave in the current system only. If the number is preceded by a plus or minus sign, it is interpreted as a change to the existing spacing. .code [sshere +10] .endd This example adds 10 points to the stave spacing for the current stave in the current system. If, in a single stave, more than one occurrence of &%[sshere]%& is encountered in a single system, the largest spacing value is used. In the case of multiple occurrences of &%[ssnext]%&, the last value is used (for the next system). When &%[ssnext]%& is used with a plus or minus sign, the value is relative to the original spacing for the current stave, ignoring any changes that might have been made with &%[sshere]%&. The argument for these directives can also take the form of two numbers separated by a slash, in which case the first is a stave number and the second is a spacing (which may be preceded by a plus or minus sign). More than one pair may be present. This makes it possible to encode all stave spacing changes in the same stave. .code [ssnext 2/+8 3/-10 4/44] .endd If zero is given as a stave number, the spacing setting is applied to all the staves. .subsection "[Stave]" SUBSECTstave .index "&%[stave]%&" The first thing in each stave's data must be the &%[stave]%& directive. In its most basic form, the name is followed by just a stave number. Further arguments may be given to specify text or drawings to be output at the start of the stave. Most commonly, &%[stave]%& is used just with text, and this form is described first. .subsection "Text at stave starts" The text-only form of &%[stave]%& has the following format: .display &`[stave `&<&'n'&>&` "`&<&'string1'&>&`" "`&<&'string2'&>&`" ...]`& .endd .index "part names" .index "staves" "names for" There may be any number of string arguments. By default, the first one is used in the first system of the movement, and the second one for all other occurrences of this stave. These strings are normally used for the name of the instrument or voice for which the stave is intended. .code [stave 1 "Soprano" "S"] .endd This example prints `Soprano' at the start of the first system, and `S' on all the others. If there is only one string, only the first system has text printed at the start of this stave. The third and subsequent strings in &%[stave]%& directives are not used automatically, but can be selected at any point in the .index "&%[name]%&" piece by means of the &%[name]%& stave directive, which also provides an alternative way of specifying text and drawings for the beginnings of staves. .index "| (vertical bar) in strings" If a vertical bar appears in one of the strings, it specifies the start of a new line of text. .code [stave 5 "Trumpet|in G"] .endd This example prints two lines at the start of the stave 5 in the first system. The options &`/c`& and &`/e`& can be used to cause the text to be printed horizontally centred or right-justified, respectively. If both &`/c`& and &`/e`& are given, and the text consists of multiple lines (delimited with &`|`& characters), the longest line is right justified, and all the other lines for the stave have their centres aligned with the centre of the longest line. .index "text" "halfway between staves" It is also possible to request that text be vertically positioned halfway between two successive staves. This is specified by appending &`/m`& (for `middle') to the text on the upper of the two staves. .code [stave 1 "Piano"/m] .endd If two over-printing staves are being used for a keyboard part, the text may appear with either of them, because if the space after the current stave is set to zero, the space for the next stave is used when positioning such text. You can specify a size for the text by following the string with &`/s`& and a number. The number selects a text size from the list given to the &%textsizes%& directive, as for any other text on staves. .code [stave 1 "Flute"/s2] .endd The size is not affected by any relative magnification that may be applied to the stave. If no size is specified, the text is printed using a 10-point font. .index "text" "rotated stave names" .index "staves" "rotated names" Finally, it is possible to specify that the text be rotated through 90° so that it prints vertically up the page. This is specified with the &`/v`& option. .code [stave 3 "Chorus"/v] .endd When &`/v`& is combined with &`/m`&, the text is both rotated and moved down so that its centre is at the midpoint of the staves. To make other adjustments to the position, the space character and the moving characters in the music font can be used. Only a single line of text is supported when printing is vertical, and hence the vertical bar character has no special meaning in this case. If more than one string is given for any stave, the &`/c`&, &`/e`&, &`/s`&, &`/m`&, and &`/v`& qualifiers can be used on any of them, and apply only to those strings for which they appear. .subsection "Drawings at stave starts" .index "drawing facility" "at stave starts" .index "staves" "drawing at start" It is possible to cause a drawing function (see chapter &<>&) to be obeyed at the start of a stave. This can be instead of, or as well as, a text string. The amount of space to the left of the stave is controlled by the text string, so a string consisting of blanks can be used to ensure that an appropriate amount of space is left. .index "guitar tablature" The &%contrib%& directory in the PMW distribution contains an example where a drawing function associated with a stave is used to print a special kind of `clef' for guitar tablature. The full syntax of &%[stave]%& is as follows: .display &`[stave `&<&'n'&>&` `&<&'string'&>&` draw `&<&'arguments'&>&` `&<&'drawing name'&>&` ...]`& .endd This feature also available for the &%[name]%& directive. If both a string and a call to a drawing function are present, the string must come first. .code [stave 3 " " draw thing] .endd As in all drawings, the arguments (which may be numbers or strings) are optional. The origin of the coordinate system is at the left-hand margin of the page and at the level of the bottom line of the stave. The drawing variable &%stavestart%& contains the x-coordinate of the start of the stave itself. Just as there may be more than one string specified, for use on different systems, there may also be more than one drawing function. They are listed in order, following the corresponding strings, if present. .code [stave 23 "Trumpet" draw 2.5 thing2 "Tr." draw "arg" thing3] .endd There is an ambiguity if an item that consists only of a string (with no associated drawing) is followed by an item consisting only of a drawing. In this case, an empty string must be specified for the second item, to prevent the drawing being incorrectly associated with the first item. There is also a possibility of ambiguity if the first item on the stave itself is a call to a drawing function, and there is no other intervening directive. The drawing must be put into a new set of square brackets to prevent this. .code [stave 35 "Flute"] [draw thing3] .endd In this example the &%stave%& directive is terminated by the closing square bracket, so the &%draw%& directive is taken as part of the stave data and is associated with the following note in the usual way. .subsection "[Stavelines]" .index "&%[stavelines]%&" .index "staves" "number of lines" .index "alternatives to 5-line staves" .index "invisible items" "stave" .index "staves" "invisible" This directive specifies the number of lines to be drawn for the current stave. Its argument is a number in the range 0&--6. A stave with no lines is an invisible stave. Two-line and three-line staves have double the normal stave line spacing, and are centred about the middle line of the normal five-line position. They are designed for multiple percussion parts. A three-line stave at the normal spacing can be obtained by overprinting a one-line and a two-line stave. .index "guitar tablature" Four-line and six-line staves are five-line staves with the top line missing or an additional line added above the top, respectively. When used for guitar tablature they should normally be enlarged by means of the &%stavesize%& heading directive. The &%contrib%& directory in the PMW distribution contains an example of guitar tablature. &%[Stavelines]%& applies to the entire stave, independently of where it appears. It has no implications for the printing of key signatures or clefs. .index "ledger lines" "with non-standard staves" For staves with fewer than five lines, ledger lines are not printed for notes that are off the stave. On one-line staves, whole bar rests are printed under the single line, and on three-line staves they are printed under the top line. In all other respects the behaviour of PMW is unchanged by the number of stave lines. The &%[percussion]%& directive is equivalent to &%[stavelines 1]%& except that, in addition, it suppresses the printing of key signatures and clefs. This directive is retained for compatibility, but its use is deprecated. New input files should instead use one of these examples: .display &`[stavelines 1 noclef key C]`& &`[stavelines 1 hclef key C]`& .endd .subsection "[Stemlength]" .index "&%[stemlength]%&" .index "stems" "length" .index "length" "of stems" The &%[stemlength]%& directive is used to set a default value for the stem length adjustment on a stave. .code [stemlength -2] .endd This example specifies that subsequent notes should have stems that are 2 points shorter than normal. A value of zero resets to the initial state. Any stem length adjustments that are given on individual notes are added to the overall default. The name &%[sl]%& is a synonym for &%[stemlength]%&. The default stem length can be changed as often as necessary. PMW can also be instructed to automatically shorten the stems of notes whose stems point the `wrong' way. See the &%shortenstems%& heading directive for details. .subsection "[Stems]" .index "&%[stems]%&" .index "stems" "direction" Normally PMW chooses for itself in which direction to draw note stems. Details of the rules it uses are given in section &<>&; some variation is possible by means of the &%stemswap%& heading directive (&R; &<>&). You can also force note stems to point upwards or downwards, wherever the noteheads are on the stave. For individual notes there are options to do this; the &%[stems]%& directive sets a default for any notes that are not explicitly marked. It must be followed by one of the words `up' (or `above'), `down' (or `below'), or `auto' &-- the last causing a reversion to the default state. .subsection "[Suspend]" SUBSECTsuspend .index "&%[suspend]%&" .index "suspending staves" When a part is silent for a long time, it is often desirable in full scores to suppress its stave from the relevant systems. The term `suspended' is used in PMW to describe a stave that is not currently being printed. The &%[suspend]%& directive tells PMW that it may suspend the current stave from the start of the next system, provided that there are no notes or text items to be printed on this stave in that system. The suspension ends automatically when a system is encountered in which there are notes or text to be printed on this stave. .code [suspend] [108] R! | .endd This example specifies 108 bars rest, which can be suspended where possible. If the &%[suspend]%& directive appears in the first rest bar, as in this example, at least one rest bar is printed before the stave is suspended. If it is desired that no rest bar need be printed before the suspension, &%[suspend]%& should be placed in the preceding bar. .code abcd [suspend] | [108] R! | .endd .index "&%[resume]%&" Suspension can be ended early by the &%[resume]%& directive. If at least one rest bar is required when the stave is resumed, an explicit &%[resume]%& must appear in the last rest bar, because by default the stave may resume with a non-rest bar at the beginning of a system. .code [suspend] [107] R! | [resume] R! | .endd When a single part is being printed, &%[suspend]%& has no effect, because a sequence of rest bars is automatically packed up into a single bar with a multiple rest sign. Because &%[suspend]%& stave directive takes effect from the start of the following system of staves, it cannot be used to cause suspension right at the start of a piece. The &%suspend%& heading directive is provided for this purpose. .subsection "[Tenor]" .index "&%[tenor]%&" This specifies a C clef with its centre on the fourth stave line (&R; &<>&). .subsection "[Text]" .index "&%[text]%&" .index "text" "default type" The default type for text within a stave (which implies a default vertical level and size) can be set for an individual stave by means of the &%[text]%& directive. It takes a word as its argument. .itable none 0 0 2 120 left 300 left .row "&`[text above]`&" "print above the stave" .row "&`[text above`& <&'n'&>&`]`&" "ditto, at a given level" .row "&`[text below]`&" "print below the stave" .row "&`[text below`& <&'n'&>&`]`&" "ditto, at a given level" .row "&`[text underlay]`&" "default is underlay" .row "&`[text overlay]`&" "default is overlay" .row "&`[text fb]`&" "default is figured bass" .endtable To override a default with an absolute position (for example &%[text above 15]%&), the text options &`/a`& or &`/b`& without a following number can be used (as well as &`/ul`&, &`/fb`&, or &`/m`&). Similarly, the appearance of &%[text above]%& or &%[text below]%& without a number resets to the initial state, where the default vertical position depends on the next note. Ordinary text that is printed above or below the stave is by default printed at size 1 (as specified by the &%textsizes%& heading directive). Underlay, overlay, and figured bass text is printed by default at the sizes specified by the &%underlaysize%&, &%overlaysize%&, and &%fbsize%& heading directives. The default text type can always be overridden by explicit qualifiers following the string. For example, if &%[text underlay]%& has been specified, an italic dynamic mark to be printed above the stave is coded like this: .code "\it\ff"/a .endd The default text type can be changed many times within one stave. .subsection "[Textfont]" .index "&%[textfont]%&" .index "fonts" "default for text" .index "text" "default font" The default typeface for non-underlay, non-overlay text can be set for an individual stave by means of the &%[textfont]%& directive, which takes as its argument one of the standard font names. .code [textfont extra 3] .endd This example supposes that the third extra font has been defined for some special use in the stave's text. The default font for non-underlay, non-overlay text is italic. In any given text string it is always possible to change font by using the appropriate escape sequence. .subsection "[Textsize]" .index "&%[textsize]%&" This directive must be followed by a number in the range 1 to 12. It selects the default size to be used for text that is neither underlay nor overlay nor figured bass. The actual font sizes that correspond to the twelve numbers are set by the &%textsizes%& heading directive. If this directive is not used, the default size is size 1. Individual text strings can have their sizes set by means of the &`/s`& option. .subsection "[Tick]" .index "&%[tick]%&" .index "pause" "tick" The &%[tick]%& directive causes PMW to insert a tick pause mark above the current stave. .subsection "[Ties]" .index "&%[ties]%&" .index "ties" "direction" Normally PMW draws tie marks on the opposite side of the noteheads from the stem. However, it is possible to force ties to be above or below the noteheads. For individual ties there is an option qualifier to do this. In addition, the &%[ties]%& directive is available for forcing the tie direction for all subsequent ties that are not explicitly marked. The argument must be one of the words `above', `below', or 'auto' &-- the last causing a reversion to the default state. .index "chords" "tied" The effect on chords of forcing the direction of tie marks is to force &'all'& the marks for a chord to the given side of the noteheads. .subsection "[Time]" .index "&%[time]%&" .index "time signatures" "changing" The time signature for a stave can be changed at the start of a bar by the &%[time]%& directive. If the change of time falls at the start of a system, a cautionary time signature is printed at the end of the previous line unless the word `nowarn' is included in the directive. .code [time 6/8 nowarn] .endd There is also a heading directive, &%notimewarn%&, for suppressing all cautionary time signatures. .index "time signatures" "different on different staves" PMW does not work sensibly by default if different time signatures are used on different staves, unless they represent the same length of musical notes. For example, if one stave is in 3/4 time and another is in 6/8 all will be well, but PMW cannot cope with 2/4 against 6/8 without additional input (&R; &<>&). When a bar starts with a new time signature and a repeat mark, the order in which these are printed depends on the order in which they appear in the input. .code [time 4/4] (: (: [time 4/4] .endd The first example causes the time signature to be printed first, followed by the repeat mark, whereas the second example causes the repeat mark to be amalgamated with the previous bar line, with the time signature following. If, at the same point in the music, these items appear in different orders on different staves, the repeat sign is printed first on all staves. Sometimes it is required to print two time signatures at the start of a piece (for example, if there are alternate bars in different times). The simplest way to do this is to make use of the &%printtime%& heading directive. .subsection "Staves with differing time signatures" SUBSECTstadiffsig .index "time signatures" "differing" .index "differing time signatures" PMW requires no special action to handle staves with different time signatures if the actual barlengths (measured in notes) are the same. For example 3/4 and 6/8 bars both contain six quavers, and so are compatible. PMW can also handle time signatures that are not compatible, for example, 6/8 in one stave and 2/4 in another, but because PMW handles just one stave at a time when it is reading the music in, it is necessary to tell it what is going on by giving a second time signature in the &%[time]%& directive, preceded by &`->`&. .code time 6/8 [stave 1 treble 1] a. b-a-g- | [endstave] [stave 2 bass 0 time 2/4 -> 6/8] c-d-; e-f- | [endstave] .endd The first signature is the one printed, and this corresponds to the printed notes in the bar; the second signature is the one from the other stave. The notes are stretched or compressed (in position when printing and in time when generating a MIDI file) to make the bar lengths match. .subsection "[Topmargin]" .index "&%[topmargin]%&" .index "page" "top margin" .index "margin" "top" This directive provides a way of changing the value given by the &%topmargin%& heading directive for a single page only. If there is more than one occurrence on the same page, the last value is used. To leave 30 points at the top of one particular page, for example, use &%[topmargin 30]%& in any bar on that page. .subsection "[Transpose]" .index "&%[transpose]%&" .index "transposition" "for one stave" The &%[transpose]%& directive specifies that the current stave is to be transposed by a number of semitones. A positive number transposes upwards; a negative number transposes downwards. This directive normally appears at the beginning of a stave's data. If transposition is also specified at an outer level (either in the heading, or by using the &%-t%& command line option), the transposition specified here adds to, rather than replaces it. Octave transposition, as specified in a clef-setting directive or by the &%[octave]%& directive, is also added to any general transposition. .index "key signatures" "after transposition" .index "transposition" "control of keys" PMW does not transpose the current key signature when it encounters the &%[transpose]%& directive, but it does transpose any subsequently encountered key signatures. If you require a transposed key signature for a stave which has its own transposition specified, you must include the key signature after &%[transpose]%&, even if it is the same key signature that is specified in a heading directive for the whole piece. .code key G [stave 1] ... [endstave] [stave 2 transpose 1 key G] ... [endstave] .endd Note that it is the &'old'& key signature that is specified. In this example it is transposed to become A-flat. Further details about transposition of notes are given in section &<>&, and details of the transposition of chord names are given in section &<>&. .subsection "[Transposedacc]" .index "&%[transposedacc]%&" .index "accidentals" "forcing transposed" This directive must be followed by one of the words `force' or `noforce'. It changes the option for forcing the printing of an accidental on a transposed note when there was an accidental on the original, even if the accidental is not strictly needed (&R; &<>&). .subsection "[Treble]" .index "&%[treble]%&" This specifies a treble clef (&R; &<>&). .subsection "[Trebledescant]" .index "&%[trebledescant]%&" This specifies a treble clef with a little `8' printed above it (&R; &<>&). .subsection "[Trebletenor]" .index "&%[trebletenor]%&" This specifies a treble clef with a little `8' printed below it (&R; &<>&). .subsection "[TrebletenorB]" .index "&%[trebletenorB]%&" This specifies a clef that is exactly like the trebletenor clef, except that the little `8' is printed enclosed in parentheses. .subsection "[Tremolo]" .index "&%[tremolo]%&" .index "tremolo" "between notes" .index "notes" "tremolo between" It is possible to print tremolo marks that appear as beams between notes that are not normally beamed, or as disconnected beams between notes. This is requested by placing the stave directive &%[tremolo]%& between the two notes. There are two optional qualifiers: &`/x`& followed by a number specifies the number of beams to draw, and &`/j`& followed by a number specifies the number of beams that are to be joined to the note stems. The default is to draw two beams, neither of which is joined to the stems. .code g [tremolo] b .endd This example prints two crotchets, with two disconnected beams between them. .code G [tremolo/x3/j3] B .endd This example prints two minims, joined by three beams. The &`/j`& qualifier should not be used with breves or semibreves. For the most commonly encountered tremolos, it is necessary to print a note of the `wrong' length. For example, a tremolo that lasts for the length of a crotchet is printed as two crotchets, at the positions two quavers would occupy, with tremolo bars between them. This effect can be achieved by using the masquerading feature described in section &<>&. The &%[tremolo]%& directive must appear between two notes in a bar. It is ignored if it appears at the beginning or end of a bar, or if it is preceded or followed by a rest. It assumes that the notes are of the same kind, and have their stems in the same direction. Notes with flags should not be used, though tremolos can be added underneath the normal beams of a beamed group if necessary. .subsection "[Triplets]" SUBSECTtriplets .index "irregular note groups" "suppressing the number" .index "irregular note groups" "forcing position" .index "irregular note groups" "forcing brackets" .index "&%[triplets]%&" This directive is used to control the printing of triplet and other irregular note group marks. Despite its name, it applies to all irregular note groups. It must be followed by one of the words `on', `off', `above', `below', `bracket', `nobracket, or `auto'. `On' and `off' are used to control the printing of the `3', with or without a bracket, above or below a group of triplets (or equivalent for other groups). When `off' is specified, nothing is printed. Note that the qualifier &`/x`& can be used to suppress printing for an individual triplet, or to enable it, if it has been disabled by the &%[triplets]%& directive. The other words set default options for printing irregular note groups, and they are independent of each other. .code [triplets above] .endd This example causes all the irregular note marks to be printed above the notes, but (unlike the &`/a`& option on an individual group) it does not specify whether a horizontal bracket should be drawn. The words `above' and `below' can be followed by a dimension, to set a fixed vertical position for all subsequent irregular note group marks. If the dimension is preceded by &`+`& or &`-`&, this does not set a fixed position, but provides a default vertical adjustment for subsequent irregular groups. .code [triplets above +4] .endd This example causes subsequent marks to be printed four points higher than they would otherwise appear. Brackets can be forced or inhibited by means of `bracket' and `nobracket'. If neither has been specified, a bracket is drawn unless the note group is beamed. The `auto' option resets both the position and the bracketing options to their initial states, where the marks may be printed above or below the notes, depending on their pitch, and the bracket is omitted if the notes are beamed. Options given on an individual note group override the defaults set by the &%[triplets]%& directive. Note that the use of &`/a`& or &`/b`& forces a bracket to be drawn, unless followed by &`/n`&. .subsection "[Ulevel] and [ulhere]" SUBSECTulevelhere .index "&%[ulevel]%&" .index "&%[ulhere]%&" .index "underlay" "level" .index "level" "of underlay" For each stave that it prints, PMW computes a default level at which to print underlay text. The standard position for this level (the base line level for the text) is 11 points below the bottom line of the stave, but a lower level may be chosen if there are low notes on the stave. There are two different ways of changing this level. The &%[ulhere]%& directive specifies a temporary change for the current line, and the &%[ulevel]%& directive sets an absolute level to be used until further notice. &%[Ulhere]%& takes a positive or negative number as an argument. This is interpreted as a number of points to add to the automatically computed level for the line in which the current bar appears. .code [ulhere -2] .endd This example has the effect of lowering the current underlay line by two points. If a subsequent occurrence of &%[ulhere]%& appears in the same line for the same stave, it is accepted if its argument is negative and specifies a lower level than the previous one, or if its argument is positive and all previous ones were positive and it is greater than any of them. &%[Ulhere]%& has no effect if an absolute underlay level is being forced by means of the &%[ulevel]%& directive, which sets a level relative to the bottom of the stave. .code [ulevel -15] .endd This example sets a level fifteen points the bottom of the stave. The &%[ulevel]%& directive takes effect for the text that is printed under all the notes that follow it, even if the text was input earlier as part of a multi-syllable input string. &%[Ulevel]%& may appear as often as necessary; its effect lasts until the end of the movement or its next appearance. However, if &%[ulevel]%& appears with an asterisk for an argument, the underlay level reverts to the value automatically selected by PMW, and any subsequent &%[ulhere]%& directives are honoured. .subsection "[Ultextsize]" .index "&%[ultextsize]%&" .index "underlay" "text size" This directive must be followed by a number in the range 1 to 12. It selects the default size to be used for underlay text on the current stave. The actual font sizes that correspond to the twelve numbers are set by the &%textsizes%& heading directive. If this directive is not used, the size set by the &%underlaysize%& heading directive (which is different from any of the sizes set by &%textsizes%&) is used. &%[Ultextsize]%& is normally needed only if you want different sizes of underlay text on different staves. .subsection "[Unbreakbarline]" .index "&%[unbreakbarline]%&" .index "bar lines" "breaking" An occurrence of this directive causes the bar line at the end of the current bar to be extended downwards onto the stave below. This could be used, for example, to print a double barline right through a system at the end of a verse or other important point in a choral piece, where the barlines are normally broken after each stave. See also &%[breakbarline]%&. .subsection "[Underlayfont]" .index "&%[underlayfont]%&" .index "fonts" "default for underlay" .index "underlay" "default font" The default typeface for underlay text that is printed with a stave can be set for an individual stave by means of the &%[underlayfont]%& directive. This directive takes as its argument one of the standard font names. .code [underlayfont extra 3] .endd This example supposes that the third extra font has been defined for use in underlay text. The default typeface for underlay text is roman. In any given text string it is always possible to change typeface by using the appropriate escape sequence. .subsection "[Xline]" See &%[line]%& (&R; &<>&) and also section &<>&. .subsection "[Xslur]" See section &<>&. .index-to I07 .index-to I08 . //////////////////////////////////////////////////////////////////////////// . //////////////////////////////////////////////////////////////////////////// .tocsubsecton .chapter "Characters in text fonts" CHAPunifont .index "Unicode characters" .index "fonts" "Unicode characters" .index "PostScript" "Unicode characters" .index "accented characters in strings" "list of" PostScript text fonts such as &'Times-Roman'& contain over 300 printing characters. From release 4.10, PMW gives access to all these characters by making use of Unicode encoding, which allows for character codes that are greater than 255. There are several ways in which characters other than the standard ASCII set can be represented in PMW text strings; these are described in section &<>&. This chapter lists all the characters in the PostScript standard text fonts, with their Unicode values (in hexadecimal, as is conventional), their PMW escape sequences when defined, and their PostScript character names. However, some of these characters may be missing in older fonts. The use of the escape sequence &`\fi`& for the `fi' ligature is no longer necessary, because PMW now automatically uses the ligature for variable width fonts when it is available. The escape sequence is retained for backwards compatibility. PMW does not use the `fl' ligature automatically. Printing characters whose code values are less than 007F (127) are ASCII characters that correspond to the keys on the computer keyboard. However, in PMW strings, the literal characters grave accent and single quote (codes 0060 and 0027) are converted into Unicode characters 2018 and 2019 so that they print as opening and closing quotes, respectively. If you want to print a grave accent or an ASCII single quote character, you can use the appropriate escape sequences &`\``& and &`\'`& or a numerical escape sequence such as &`\x60\`&. .rule .leadon 2 .itable none 0 0 4 50 centre 60 centre 80 left 100 centre .row &*Unicode*& &*Escape*& "&*PS name*&" &*Character*& .row &`0020`& "" space "" .row &`0021`& "" exclam ! .row &`0022`& "" quotedbl " .row &`0023`& "" numbersign # .row &`0024`& "" dollar $ .row &`0025`& "" percent % .row &`0026`& "" ampersand & .row &`0027`& &`\' `& quotesingle ' .row &`0028`& "" parenleft ( .row &`0029`& "" parenright ) .row &`002A`& "" asterisk * .row &`002B`& "" plus + .row &`002C`& "" comma , .row &`002D`& "" hyphen - .row &`002E`& "" period . .row &`002F`& "" slash / .row &`0030`& "" zero 0 .row ↓ "" ↓ ↓ .row &`0039`& "" nine 9 .row &`003A`& "" colon : .row &`003B`& "" semicolon ; .row &`003C`& "" less < .row &`003D`& "" equal = .row &`003E`& "" greater > .row &`003F`& "" question ? .row &`0040`& "" at @ .row &`0041`& "" A A .row ↓ "" ↓ ↓ .row &`005A`& "" Z Z .row &`005B`& "" bracketleft [ .row &`005C`& &`\\ `& backslash \ .row &`005D`& "" bracketright ] .row &`005E`& "" asciicircum ^ .row &`005F`& "" underscore _ .row &`0060`& &`\` `& grave ` .row &`0061`& "" a a .row ↓ "" ↓ ↓ .row &`007A`& "" z z .row &`007B`& "" braceleft { .row &`007C`& "" bar | .row &`007D`& "" braceright } .row &`007E`& "" asciitilde ~ .row &`00A1`& "" exclamdown ¡ .row &`00A2`& "" cent ¢ .row &`00A3`& "" sterling £ .row &`00A4`& "" currency ¤ .row &`00A5`& "" yen ¥ .row &`00A6`& "" brokenbar ¦ .row &`00A7`& "" section § .row &`00A8`& "" dieresis ¨ .row &`00A9`& &`\c)`& copyright © .row &`00AA`& "" ordfeminine ª .row &`00AB`& "" guillemotleft « .row &`00AC`& "" logicalnot ¬ .row &`00AE`& "" registered ® .row &`00AF`& "" macron ¯ .row &`00B0`& "" degree ° .row &`00B1`& "" plusminus ± .row &`00B2`& "" twosuperior ² .row &`00B3`& "" threesuperior ³ .row &`00B4`& "" acute ´ .row &`00B5`& "" mu µ .row &`00B6`& "" paragraph ¶ .row &`00B7`& "" bullet · .row &`00B8`& "" cedilla ¸ .row &`00B9`& "" onesuperior ¹ .row &`00BA`& "" ordmasculine º .row &`00BB`& "" guillemotright » .row &`00BC`& "" onequarter ¼ .row &`00BD`& "" onehalf ½ .row &`00BE`& "" threequarters ¾ .row &`00BF`& &`\? `& questiondown ¿ .row &`00C0`& &`\A``& Agrave À .row &`00C1`& &`\A'`& Aacute Á .row &`00C2`& &`\A^`& Acircumflex  .row &`00C3`& &`\A~`& Atilde à .row &`00C4`& &`\A.`& Adieresis Ä .row &`00C5`& &`\Ao`& Aring Å .row &`00C6`& "" AE Æ .row &`00C7`& &`\C,`& Ccedilla Ç .row &`00C8`& &`\E``& Egrave È .row &`00C9`& &`\E'`& Eacute É .row &`00CA`& &`\E^`& Ecircumflex Ê .row &`00CB`& &`\E.`& Edieresis Ë .row &`00CC`& &`\I``& Igrave Ì .row &`00CD`& &`\I'`& Iacute Í .row &`00CE`& &`\I^`& Icircumflex Î .row &`00CF`& &`\I.`& Idieresis Ï .row &`00D0`& "" Eth Ð .row &`00D1`& &`\N~`& Ntilde Ñ .row &`00D2`& &`\O``& Ograve Ò .row &`00D3`& &`\O'`& Oacute Ó .row &`00D4`& &`\O^`& Ocircumflex Ô .row &`00D5`& &`\O~`& Otilde Õ .row &`00D6`& &`\O.`& Odieresis Ö .row &`00D7`& "" multiply × .row &`00D8`& &`\O/`& Oslash Ø .row &`00D9`& &`\U``& Ugrave Ù .row &`00DA`& &`\U'`& Uacute Ú .row &`00DB`& &`\U^`& Ucircumflex Û .row &`00DC`& &`\U.`& Udieresis Ü .row &`00DD`& &`\Y'`& Yacute Ý .row &`00DE`& "" Thorn Þ .row &`00DF`& &`\ss`& germandbls ß .row &`00E0`& &`\a``& agrave à .row &`00E1`& &`\a'`& aacute á .row &`00E2`& &`\a^`& acircumflex â .row &`00E3`& &`\a~`& atilde ã .row &`00E4`& &`\a.`& adieresis ä .row &`00E5`& &`\ao`& aring å .row &`00E6`& "" ae æ .row &`00E7`& &`\c,`& ccedilla ç .row &`00E8`& &`\e``& egrave è .row &`00E9`& &`\e'`& eacute é .row &`00EA`& &`\e^`& ecircumflex ê .row &`00EB`& &`\e.`& edieresis ë .row &`00EC`& &`\i``& igrave ì .row &`00ED`& &`\i'`& iacute í .row &`00EE`& &`\i^`& icircumflex î .row &`00EF`& &`\i.`& idieresis ï .row &`00F0`& "" eth ð .row &`00F1`& &`\n~`& ntilde ñ .row &`00F2`& &`\o``& ograve ò .row &`00F3`& &`\o'`& oacute ó .row &`00F4`& &`\o^`& ocircumflex ô .row &`00F5`& &`\o~`& otilde õ .row &`00F6`& &`\o.`& odieresis ö .row &`00F7`& "" divide ÷ .row &`00F8`& &`\o/`& oslash ø .row &`00F9`& &`\u``& ugrave ù .row &`00FA`& &`\u'`& uacute ú .row &`00FB`& &`\u^`& ucircumflex û .row &`00FC`& &`\u.`& udieresis ü .row &`00FD`& &`\y'`& yacute ý .row &`00FE`& "" thorn þ .row &`00FF`& &`\y.`& ydieresis ÿ .row &`0100`& &`\A-`& Amacron Ā .row &`0101`& &`\a-`& amacron ā .row &`0102`& &`\Au`& Abreve Ă .row &`0103`& &`\au`& abreve ă .row &`0104`& "" Aogonek Ą .row &`0105`& "" aogonek ą .row &`0106`& &`\C'`& Cacute Ć .row &`0107`& &`\c'`& cacute ć .row &`0108`& &`\C^`& Ccircumflex Ĉ .row &`0109`& &`\c^`& ccircumflex ĉ .row &`010A`& "" Cdotaccent Ċ .row &`010B`& "" cdotaccent ċ .row &`010C`& &`\Cv`& Ccaron Č .row &`010D`& &`\cv`& ccaron č .row &`010E`& &`\Dv`& Dcaron Ď .row &`010F`& &`\dv`& dcaron ď .row &`0110`& &`\D-`& Dcroat Đ .row &`0111`& &`\D-`& dcroat đ .row &`0112`& &`\E-`& Emacron Ē .row &`0113`& &`\e-`& emacron ē .row &`0114`& &`\Eu`& Ebreve Ĕ .row &`0115`& &`\eu`& ebreve ĕ .row &`0116`& "" Edotaccent Ė .row &`0117`& "" edotaccent ė .row &`0118`& "" Eognonek Ę .row &`0119`& "" eogonek ę .row &`011A`& &`\Ev`& Ecaron Ě .row &`011B`& &`\ev`& ecaron ě .row &`011C`& &`\G^`& Gcircumflex Ĝ .row &`011D`& &`\g^`& gcircumflex ĝ .row &`011E`& &`\Gu`& Gbreve Ğ .row &`011F`& &`\gu`& gbreve ğ .row &`0120`& "" Gdotaccent Ġ .row &`0121`& "" gdotaccent ġ .row &`0122`& "" Gcommaaccent Ģ .row &`0123`& "" gcommaaccent ģ .row &`0124`& &`\H^`& Hcircumflex Ĥ .row &`0125`& &`\h^`& hcircumflex ĥ .row &`0126`& "" Hbar Ħ .row &`0127`& "" hbar ħ .row &`0128`& &`\I~`& Itilde Ĩ .row &`0129`& &`\i~`& itilde ĩ .row &`012A`& &`\I-`& Imacron Ī .row &`012B`& &`\i-`& imacron ī .row &`012C`& &`\Iu`& Ibreve Ĭ .row &`012D`& &`\iu`& ibreve ĭ .row &`012E`& "" Iogonek Į .row &`012F`& "" iogonek į .row &`0130`& "" Idotaccent İ .row &`0131`& "" dotlessi ı .row &`0132`& "" IJ IJ .row &`0133`& "" ij ij .row &`0134`& &`\J^`& Jcircumflex Ĵ .row &`0135`& &`\j^`& jcircumflex ĵ .row &`0136`& "" Kcommaaccent Ķ .row &`0137`& "" kcommaaccent ķ .row &`0138`& "" kgreenlandic ĸ .row &`0139`& &`\L'`& Lacute Ĺ .row &`013A`& &`\l'`& lacute ĺ .row &`013B`& "" Lcommaaccent Ļ .row &`013C`& "" lcommaaccent ļ .row &`013D`& &`\Lv`& Lcaron Ľ .row &`013E`& &`\lv`& lcaron ľ .row &`013F`& "" Ldot Ŀ .row &`0140`& "" ldot ŀ .row &`0141`& &`\l/`& Lslash Ł .row &`0142`& &`\l/`& lslash ł .row &`0143`& &`\N'`& Nacute Ń .row &`0144`& &`\n'`& nacute ń .row &`0145`& "" Ncommaaccent Ņ .row &`0146`& "" ncommaaccent ņ .row &`0147`& &`\Nv`& Ncaron Ň .row &`0148`& &`\nv`& ncaron ň .row &`0149`& "" napostrophe ʼn .row &`014A`& "" Eng Ŋ .row &`014B`& "" eng ŋ .row &`014C`& &`\O-`& Omacron Ō .row &`014D`& &`\o-`& omacron ō .row &`014E`& &`\Ou`& Obreve Ŏ .row &`014F`& &`\ou`& obreve ŏ .row &`0150`& "" Ohungrumlaut Ő .row &`0151`& "" ohungrumlaut ő .row &`0152`& "" OE Œ .row &`0153`& "" oe œ .row &`0154`& &`\R'`& racute Ŕ .row &`0156`& "" Rcommaaccent Ŗ .row &`0157`& "" rcommaaccent ŗ .row &`0158`& &`\Rv`& Rcaron Ř .row &`0159`& &`\rv`& rcaron ř .row &`015A`& &`\S'`& Sacute Ś .row &`015B`& &`\s'`& sacute ś .row &`015C`& &`\S^`& Scircumflex Ŝ .row &`015D`& &`\s^`& scircumflex ŝ .row &`015E`& &`\S,`& Scedilla Ş .row &`015F`& &`\s,`& scedilla ş .row &`0160`& &`\Sv`& Scaron Š .row &`0161`& &`\sv`& scaron š .row &`0162`& &`\T,`& Tcedilla Ţ .row &`0163`& &`\t,`& tcedilla ţ .row &`0164`& &`\Tv`& Tcaron Ť .row &`0165`& &`\tv`& tcaron ť .row &`0166`& "" Tbar Ŧ .row &`0167`& "" tbar ŧ .row &`0168`& &`\U~`& Utilde Ũ .row &`0169`& &`\u~`& utilde ũ .row &`016A`& &`\U-`& Umacron Ū .row &`016B`& &`\u-`& umacron ū .row &`016C`& &`\Uu`& Ubreve Ŭ .row &`016D`& &`\uu`& ubreve ŭ .row &`016E`& &`\Uo`& Uring Ů .row &`016F`& &`\uo`& uring ů .row &`0170`& "" Uhungrumlaut Ű .row &`0171`& "" uhungrumlaut ű .row &`0172`& "" Uogonek Ų .row &`0173`& "" uogonek ų .row &`0174`& &`\W^`& Wcircumflex Ŵ .row &`0175`& &`\w^`& wcircumflex ŵ .row &`0176`& &`\Y^`& Ycircumflex Ŷ .row &`0177`& &`\y^`& ycircumflex ŷ .row &`0178`& &`\Y.`& Ydieresis Ÿ .row &`0179`& &`\Z'`& Zacute Ź .row &`017A`& &`\z'`& zacute ź .row &`017B`& "" Zdotaccent Ż .row &`017C`& "" zdotaccent ż .row &`017D`& &`\Zv`& Zcaron Ž .row &`017E`& &`\zv`& zcaron ž .row &`017F`& "" longs ſ .row &`0192`& "" florin ƒ .row &`0218`& "" Scommaaccent Ș .row &`0219`& "" scommaaccent ș .row &`021A`& "" Tcommaaccent Ț .row &`021B`& "" tcommaaccent ț .row &`0302`& "" circumflex ̂ .row &`0303`& "" tilde ̃ .row &`0306`& "" breve ̆ .row &`0307`& "" dotaccent ̇ .row &`030A`& "" ring ̊ .row &`030B`& "" hungrumlaut ̋ .row &`030C`& "" caron ̌ .row &`0326`& "" commaaccent ̦ .row &`0328`& "" ogonek ̨ .row &`0394`& "" Delta Δ .row &`2013`& &`\--`& endash – .row &`2014`& &`\---`& emdash — .row &`2018`& "" quoteleft ‘ .row &`2019`& "" quoteright ’ .row &`201A`& "" quotesinglbase ‚ .row &`201C`& "" quotedblleft “ .row &`201D`& "" quotedblright ” .row &`201E`& "" quotedblbase „ .row &`2020`& "" dagger † .row &`2021`& "" daggerdbl ‡ .row &`2026`& "" ellipsis … .row &`2027`& "" periodcentred ‧ .row &`2031`& "" perthousand ‱ .row &`2039`& "" guilsinglleft ‹ .row &`203A`& "" guilsinglright › .row &`2044`& "" fraction ⁄ .row &`20AC`& "" Euro € .row &`2122`& "" trademark ™ .row &`2202`& "" partialdiff ∂ .row &`2211`& "" summation ∑ .row &`2212`& "" minus − .row &`221A`& "" radical √ .row &`221E`& "" infinity ∞ .row &`2260`& "" notequal ≠ .row &`2264`& "" lessequal ≤ .row &`2265`& "" greaterequal ≥ .row &`25CA`& "" lozenge ◊ .row &`FB01`& &`\fi`& fi fi .row &`FB02`& &`\fl`& fl fl .endtable .leadoff .rule . //////////////////////////////////////////////////////////////////////////// . //////////////////////////////////////////////////////////////////////////// .chapter "The PMW music font" CHAPfont .index "music font characters" .index "fonts" "music font characters" .index "fonts" "PMW-Music" .index "PMW-Music font" .index "PostScript" "music font" This chapter contains a list of all the available characters in the music font, which is called PMW-Music. Characters from the music font can be referenced by number in character strings. Those with character codes less than 127 can also be referenced by switching to the music font and entering the corresponding ASCII character. The following two examples produce the same effect: .code "\rm\this clef \*33\ is treble" "\rm\this clef \mu\!\rm\ is treble" .endd Character 33 in the music font (which corresponds to an exclamation mark in ASCII) is the treble clef. The second method is more convenient when a whole sequence of music font characters is required. Most of the characters in the music font print `on the baseline' in the typographic sense, though some have `descenders'. The only exceptions to this are the constituent parts of notes, such as stems and quaver tails. The typographic character widths, which are not used by PMW when setting music, are set to values that are useful when these characters are printed as part of a text string. Here is a list of the characters in the font, giving both their numbers (in decimal) and, where relevant, the corresponding ASCII characters. The printing width is also given, as a fraction of the font size. For example, when a 10-point treble clef is printed, the printing position is advanced to the right by 15 points. .rule .leadon .itable none 0 0 5 36 centre &&& 36 centre &&& 54 "char"" charoff=""40" &&& 40 centre &&& 210 left .literal xml ASCII Code Width Char Comment .literal off .row "" 32 0.75 "" "space" .row &`!`& 33 1.5 &{{{w!x}}}& "treble clef" .row &`"`& 34 1.5 &{{{www"xxx}}}& "bass clef" .row &`#`& 35 1.5 &{{{ww#xx}}}& "alto clef" .row &`$`& 36 1.0 &{{vv$~}}& "piano end pedal sign" .row &`%`& 37 0.6 &{{%}}& "sharp" .row &`&&`& 38 0.6 &{{&}}& "double sharp" .row &`'`& 39 0.5 &{{vv'~}}& "flat" .row &`(`& 40 0.45 &{{(}}& "natural" .row &`)`& 41 0.0 &{{)}}& "fermata (over)" .row &`*`& 42 0.66 &{{*}}& "breve rest" .row &`+`& 43 0.66 &{{+}}& "semibreve rest" .row &`,`& 44 0.66 &{{,}}& "minim rest" .row &`-`& 45 0.66 &{{vv-~}}& "crotchet rest" .row &`.`& 46 0.59 &{{.}}& "quaver rest" .row &`/`& 47 0.0 &{{/}}& "fermata (under)" .row &`0`& 48 3.5 &{{0}}& "many bars rest" .row &`1`& 49 1.34 &{{1}}& "breve" .row &`2`& 50 0.84 &{{2}}& "semibreve" .row &`3`& 51 0.84 &~&~&{{3}}& "up minim" .row &`4`& 52 0.84 &{{4}}&&~ "down minim" .row &`5`& 53 0.84 &~&~&{{5}}& "up crotchet" .row &`6`& 54 0.84 &{{6}}&&~ "down crotchet" .row &`7`& 55 1.2 &~&~&{{7}}& "up quaver" .row &`8`& 56 0.84 &{{8}}&&~ "down quaver" .row &`9`& 57 1.2 &~&~&{{9}}& "up semiquaver" .row &`:`& 58 0.84 &{{:}}&&~ "down semiquaver" .row &`;`& 59 0.0 &{{ww;xx}}& "repeatable tail" .row &`<`& 60 0.0 &{{xx<ww}}& "repeatable tail" .row &`=`& 61 0.0 &{{=}}& "ledger line" .row &`>`& 62 0.0 &{{>}}& "vertical dot (above note on base line)" .row &`?`& 63 0.4 &{{?}}& "horizontal dot" .row &`@`& 64 0.6 &{{@}}& "bar line" .row &`A`& 65 0.76 &{{A}}& "double bar line" .row &`B`& 66 0.76 &{{B}}& "thick bar line" .row &`C`& 67 1.0 &{{wwCxx}}& "normal stave" .row &`D`& 68 1.0 &{{wwDxx}}& "percussion stave" .row &`E`& 69 0.0 &{{wwExx}}& "up quaver tail" .row &`F`& 70 10.0 "" "long stave" .row &`G`& 71 10.0 "" "long percussion stave" .row &`H`& 72 0.0 &{{xxHww}}& "down quaver tail" .row &`I`& 73 0.6 &{{I}}& "for repeat marks" .row &`J`& 74 0.0 &{{wJx}}& "upward note stem" .row &`K`& 75 0.0 &{{xKw}}& "downward note stem" .row &`L`& 76 0.84 &{{L}}& "solid notehead" .row &`M`& 77 0.84 &{{M}}& "minim notehead" .row &`N`& 78 0.6 &{{N}}& "pause comma" .row &`O`& 79 0.0 &{{O}}& "mordent" .row &`P`& 80 0.0 &{{P}}& "double mordent" .row &`Q`& 81 0.0 &{{Q}}& "inverted mordent" .row &`R`& 82 0.0 &{{R}}& "double inverted mordent" .row &`S`& 83 0.0 &{{S}}& "turn" .row &`T`& 84 0.0 &{{T}}& "horizontal bar accent" .row &`U`& 85 0.0 &{{U}}& "accent" .row &`V`& 86 1.0 &{{V}}& "caesura" .row &`W`& 87 0.0 &{{W}}& "accent" .row &`X`& 88 0.0 &{{X}}& "accent" .row &`Y`& 89 0.0 &{{Y}}& "accent" .row &`Z`& 90 0.0 &{{Z}}& "accent" .row &`[`& 91 0.6 &{{w[x}}& "dashed bar line" .row &`\`& 92 1.0 &{{w\x}}& "single-line caesura" .row &`]`& 93 0.0 &{{]}}& "for use with clefs" .row &`^`& 94 1.0 &{{w^x}}& "`common' time" .row &`_`& 95 1.0 &{{w_x}}& "`cut' time" .row &```& 96 0.4 &{{`}}& "suitable for following &{{ˆ}}&" .row &`a`& 97 0.0 &{{a}}& "thumb (above)" .row &`b`& 98 0.0 &{{b}}& "thumb (below)" .row &`c`& 99 1.5 &{{wcx}}& "dal segno" .row &`d`& 100 1.5 &{{wdx}}& "dal segno" .row &`e`& 101 0.0 &{{e}}& "down bow" .row &`f`& 102 0.0 &{{f}}& "inverted down bow" .row &`g`& 103 0.0 &{{g}}& "up bow" .row &`h`& 104 0.0 &{{h}}& "inverted up bow" .row &`i`& 105 0.0 &{{i}}& "inverted turn" .row &`j`& 106 0.55 &{{j}}& "for figured bass" .row &`k`& 107 0.76 &{{k}}& "for figured bass" .row &`l`& 108 0.84 &{{l}}& "solid diamond notehead" .row &`m`& 109 0.84 &{{m}}& "diamond notehead" .row &`n`& 110 0.84 &{{n}}& "cross notehead" .row &`o`& 111 0.0 &{{wox}}& "up stem for cross" .row &`p`& 112 0.0 &{{xpw}}& "down stem for cross" .row &`q`& 113 0.0 &{{q}}& "up stem fragment, 0.2 to 0.4" .row &`r`& 114 0.0 &{{r}}& "down stem fragment, 0 to -0.2" .row &`s`& 115 0.5 &{{s}}& "for figured bass" .row &`t`& 116 0.55 &{{t}}& "dot for guitar grid" .row &`u`& 117 0.55 &{{u}}& "circle for guitar grid" .row &`v`& 118 0.0 "" "prints nothing; moves down by 0.1" .row &`w`& 119 0.0 "" "prints nothing; moves down by 0.4" .row &`x`& 120 0.0 "" "prints nothing; moves up by 0.4" .row &`y`& 121 -0.1 "" "prints nothing; moves left by 0.1" .row &`z`& 122 0.1 "" "prints nothing; moves right by 0.1" .row &`{`& 123 -0.33 "" "prints nothing; moves left by 0.33" .row &`|`& 124 0.0 "" "prints nothing; moves down by 0.2" .row &`}`& 125 0.55 "" "prints nothing; moves right by 0.55" .row &`~`& 126 0.0 "" "prints nothing; moves up 0.2" .row "" 127 - "" "unassigned" .row "" 128 0.6 &{{w€x}}& "tick" .row "" 129 0.0 &{{wwxx}}& "accaciatura bar" .row "" 130 0.0 &{{xx~‚wwvv}}& "accaciatura bar" .row "" 131 0.0 &{{ww{{{{{{{ƒxx}}& "grid for guitar chords" .row "" 132 0.6 &{{„}}& "short bar line" .row "" 133 0.0 &{{…}}& "breath" .row "" 134 0.0 &{{†}}& "ring above" .row "" 135 0.0 &{{‡}}& "cross" .row "" 136 0.8 &{{ˆ}}& "trill" .row "" 137 0.6 &{{‰}}& "short vertical caesura" .row "" 138 0.6 &{{Š}}& "long vertical caesura" .leadoff .row &D15; &D15;139 &D15;0.35 &D15;&{{‹}}& "&{{w}}&&BT15;" .row &D15; &D15;140 &D15;0.35 &D15;&{{Œ}}& "&BM15;&~&~&~brackets for accidentals" .row &D15; &D15;141 &D15;0.35 &D15;&{{}}& "&BM15;" .row &D15; &D15;142 &D15;0.35 &D15;&{{Ž}}& "&BB15;" .leadon .row "" 143 0.5 &{{}}& "for bar repetition" .row "" 144 0.0 &{{}}& "for bar repetition" .row "" 145 0.0 &{{‘}}& "for arpeggios &-- moves upwards by 0.4" .row "" 146 0.0 &{{’}}& "tremolo bar &-- moves upwards by 0.4" .row "" 147 1.0 &{{w“x}}& "old time signature" .row "" 148 1.0 &{{w”x}}& "old time signature" .row "" 149 0.0 &{{x•w}}& "slur" .row "" 150 0.0 &{{x–w}}& "slur" .row "" 151 0.0 &{{w—x}}& "for splitting/joining staves" .row "" 152 0.0 &{{x˜w}}& "for splitting/joining staves" .row "" 153 1.0 &{{™}}& "inverted `common' time" .row "" 154 1.0 &{{š}}& "inverted `cut' time" .row "" 155 1.58 &{{›}}& "unison breve" .row "" 156 0.0 &{{œ}}& "`start of bar' accent" .row "" 157 0.35 &{{}}& "for bracketing &{]}&" .row "" 158 0.35 &{{ž}}& "for bracketing &{]}&" .leadoff .row &D15; &D15;159 &D15;0.33 &D15;&{{Ÿ}}& "&{{w}}&&BT15;" .row &D15; &D15;160 &D15;0.33 &D15;&{{ }}& "&BM15;&~&~&~for &'8va'& lines etc." .row &D15; &D15;161 &D15;0.33 &D15;&{{¡}}& "&BM15;" .row &D15; &D15;162 &D15;0.33 &D15;&{{¢}}& "&BB15;" .leadon .row "" 163 1.4 &{{£}}& "piano pedal" .row "" 164 0.0 &{{¤}}& "for arpeggios &-- moves upwards by 0.4" .row "" 165 0.0 &{{¥}}& "for arpeggios &-- moves upwards (sic) by 0.4" .row "" 166 0.0 &{{¦}}& "harp nail symbol" .row "" 167 0.333 &{{§}}& "alternate bracket angle" .row "" 168 0.333 &{{¨}}& "alternate bracket angle" .row "" 169 1.0 &~&~&~&~&~&{{w©x}}& "2-line stave" .row "" 170 1.0 &{{wªx}}&&~&~&~&~&~&~&~ "3-line stave" .row "" 171 1.0 &~&~&~&~&~&{{w«x}}& "4-line stave" .row "" 172 1.0 &{{w¬x}}&&~&~&~&~&~&~&~ "6-line stave" .row "" 173 1.5 &{{ww­}}& "percussion clef" .row "" 174 1.5 &{{ww®xx}}& "old-style F clef" .row "" 175 1.5 &{{w¯x}}&&~&~&~&~&~ "old-style C clef" .row "" 176 0.0 &{{w°x}}& "bracket top" .row "" 177 0.0 &{{w±x}}& "bracket bottom" .row "" 178 1.0 &{{²}}& "symbol for pitch without duration (`direct')" .row "" 179 0.55 &{{³}}& "for figured bass" .row "" 180 0.75 &{{´}}& "major chord sign (jazz notation)" .row "" 181 0.675 &{{µ}}& "diminished chord sign" .row "" 182 0.675 &{{¶}}& "`half diminished' chord sign" .row "" 183 0.55 &{{·}}& "cross for guitar grid" .row "" 184 0.0 &{{¸}}& "thicker ledger line" .row "" 185 -0.42 "" "prints nothing; moves left 0.42, up 0.4" .row "" 186 -0.76 "" "prints nothing; moves left 0.76, down 0.4" .row "" 187 0.0 "" "prints nothing; moves up 1.2" .row "" 188 0.0 "" "prints nothing; moves down 1.2" .row "" 189 0.424 &{{½}}& "half sharp, Egyptian style" .row "" 190 0.5 &{{¾}}& "half sharp, Turkish style" .row "" 191 0.6 &{{¿}}& "half flat, Egyptian style" .row "" 192 0.6 &{{À}}& "half flat, Turkish style" .row "" 193 0.6 &{{Á}}& "pause comma, inverted for R-to-L music" .row "" 194 0.0 &{{Â}}& "staccatissimo" .row "" 195 0.0 &{{Ã}}& "staccatissimo, inverted" .row "" 247 10.0 "" "long 2-line stave" .row "" 248 10.0 "" "long 3-line stave" .row "" 249 10.0 "" "long 4-line stave" .row "" 250 10.0 "" "long 6-line stave" .endtable .leadoff .rule .index "non-printing music characters" The characters numbered 118&--126 and 185&--188 do not cause anything to be printed; instead they just cause the current printing position to be moved by a distance that depends on the point size of the font. The values given above are the factors by which the font's point size must be multiplied in order to get the relevant distance. For example, if a 10-point font is in use, character number 119 (w) moves the current printing position down by 4 points. If a space character (number 32) is printed from the music font, it moves the printing position by 0.75 units to the right. There is a discussion on the use of the special characters for printing guitar chord grids in section &<>&. The larger round and square brackets (characters 139&--142) are designed so that they can be printed directly before and after an accidental, except that for a flat they need to be raised by one note pitch (2 points). The large circle characters have a diameter of two stave spaces, and are intended for printing original time signatures (see the example in section &<>&). The slanting arrows are for use at the ends of staves when a stave containing multiple parts is about to be split into two or more staves, and &'vice versa'&. The slur characters are not used by PMW itself, but are for printing ties when using note characters in text. The first is the correct width for two successive note characters; the second is the correct width when the first note is followed by a dot. Because they have zero width, they should be printed before the notes. .code "\**m.\ = \mf\\149\\51\\53\" .endd This example prints as:&~&~ &{3?}& = &{•35}& . //////////////////////////////////////////////////////////////////////////// . //////////////////////////////////////////////////////////////////////////// .chapter "The PMW-Alpha font" CHAPpmwalpha .index "fonts" "PMW-Alpha" .index "PMW-Alpha font" Richard Hallas contributed an auxiliary font for use with PMW and other programs. It is called PMW-Alpha, because it is designed for printing music symbols in conjunction with normal alphabetic text. The font was originally designed as an Acorn RISC OS font; the PostScript version was generated automatically from the original. The characters that PMW-Alpha contains fall into four classes: .ilist There is a set of letters such as &{-f-}& and &{-p-}& which are in a style commonly seen in music, and which can be used to print dynamic marks. .next There is a set of digits in a style commonly seen in time signatures, together with a matching plus sign. .next There is a set of fractions, suitable for use in organ registrations. There are also two sets of small digits, one raised and one lowered, that can be used to build additional fractions. .next There are small versions of many music characters such as notes, accidentals, and clefs. These are at appropriate sizes for mixing with text fonts of the same nominal size, which makes it easier to include them with text when using desktop publishing programs. .endlist .section "Use of PMW-Alpha from within PMW" Here is an example of some heading directives that could be used to make use of the PMW-Alpha font from within PMW: .code Textfont extra 1 "PMW-Alpha" Timefont extra 1 *Define f "\x1\f" *Define fr37 \x1\\203\\222\\217\ .endd The &%textfont%& directive sets up PMW-Alpha as the first extra font; the &%timefont%& directive specifies that numerical time signatures are to be printed using this font. The first &%*define%& directive defines a macro for the &'forte'& mark that prints &{-f-}&. The second macro is for printing the fraction &{-ËÞÙ-}&. It is set up without surrounding quote marks so that it can be included in a longer string, for example: .code "an unusual fraction is &fr37\rm\" .endd .section "Use of PMW-Alpha in other programs" From within a desktop publishing program, PMW-Alpha can be used as a kind of musical typewriter. Richard Hallas explains: ``The keys Q, W, E, R, T, Y produce notes of descending duration from breve to semiquaver. The lower-case versions of the letters produce notes with up-stems, and the upper-case characters produce down-stem notes. The dot key produces a dot which is suitable to follow any up-stem note, and the > key (shifted dot) produces a suitable dot for the down-stem notes. There are also some simple beams which can be used with the crotchet characters. The keys h, j, and k produce beams for upstemmed notes, while H, J, and K are for use with downstemmed notes. They should be typed after the first note, and all have a width of zero, so do not move the cursor. For example, typing `rh,r RK> < Hd R , | Hd , Hd e , Hd } \ | .endd produces: .display &{+&~V&~<&~Q&~<|&~<&~E><&~R,|&~,&~e,&~}\|+}& .endd There are two systems available for fractions. Firstly, the most common fractions &{-¹-}&, &{-²-}&, and &{-³-}& are in the ASCII positions normally occupied by superscript digits &{-É-}&, &{-Ê-}&, and &{-Ë-}&. The standard &{-¼-}&, &{-½-}&, and &{-¾-}& are in their normal ASCII positions, and various other common fractions are available in a fairly sensible order from adjacent characters. Secondly, any fraction can be made from the individual fraction numbers and character 222. The ready-made fractions are preferable to the custom ones because the relative positions of the numbers and the slash are slightly neater, but nevertheless the custom fractions will usually give a good result. The fractions are in &'Times-Roman'& style, and should go well with that font.'' .section "Characters in the font" Here is a list of the characters in the PMW-Alpha font, in the same format as the list of characters in the PMW-Music font above. The stemless notes (breve and semibreve) appear twice, in both the `upstem' and `downstem' positions, and for technical reasons, the treble clef appears on the lower case g as well as the upper case G. .rule .leadon .itable none 0 0 5 36 centre &&& 36 centre &&& 54 "char"" charoff=""40" &&& 40 centre &&& 210 left .literal xml ASCII Code Width Char Comment .literal off .row "" 32 0.64 "" "space" .row """" 34 0.26 &{-"-}& "small semiquaver rest" .row # 35 0.46 &{-#-}& .row $ 36 0.38 &{-$-}& .row % 37 0.36 &{-%-}& .row && 38 0.7 &{-&&-}& .row ' 39 0.38 &{-'-}& "big semiquaver rest" .row ( 40 0.924 &{-(-}& .row ) 41 0.924 &{-)-}& .row * 42 0.77 &{-*-}& .row + 43 0.64 &{-+-}& "for time signatures" .row , 44 0.26 &{-,-}& "`double dot' space" .row . 46 0.13 &{-.-}& "dot for upstemmed notes" .row / 47 0.38 &{-/-}& "big crotchet rest" .row 0 48 0.64 &{-0-}& .row 1 49 0.64 &{-1-}& .row 2 50 0.64 &{-2-}& .row 3 51 0.64 &{-3-}& .row 4 52 0.64 &{-4-}& .row 5 53 0.64 &{-5-}& .row 6 54 0.64 &{-6-}& .row 7 55 0.64 &{-7-}& .row 8 56 0.64 &{-8-}& .row 9 57 0.64 &{-9-}& .row : 58 0.26 &{-:-}& "small quaver rest" .row ; 59 0.38 &{-;-}& "big quaver rest" .row < 60 0.13 &{-<-}& "`dot' space" .row = 61 0.564 &{-=-}& .row > 62 0.13 &{->-}& "dot for downstemmed notes" .row ? 63 0.26 &{-?-}& "small crotchet rest" .row B 66 0.64 &{-B-}& .row C 67 0.64 &{-C-}& .row E 69 0.38 &{-E-}& .row F 70 0.80 &{-F-}& .row G 71 0.64 &{-G-}& .leadoff .row &D15;H &D15;72 &D15;0.00 &D15;&{-H-}& "&{{www}}&&BT15;" .row &D15;J &D15;74 &D15;0.00 &D15;&{-J-}& "&{{w}}&&BM15;&{{x}}&&~&~&~beams for downstemmed notes" .row &D15;K &D15;75 &D15;0.00 &D15;&{-K-}& "&{{w}}&&BB15;" .leadon .row L 76 0.38 &{-L-}& "crotchet notehead" .row M 77 0.38 &{-M-}& "minim notehead" .row O 79 0.80 &{-O-}& .row P 80 1.40 &{-P-}& .row Q 81 0.64 &{-Q-}& .row R 82 0.38 &{-R-}& .row S 83 0.72 &{-S-}& .row T 84 0.38 &{-T-}& .row V 86 0.64 &{-V-}& .row W 87 0.38 &{-W-}& "semibreve" .row Y 89 0.38 &{-Y-}& .row [ 91 0.51 &{-[-}& "minim rest, with ledger" .row \ 92 0.38 &{-\-}& "`note' space" .row ] 93 0.51 &{-]-}& "semibreve rest, with ledger" .row ^ 94 0.46 &{-^-}& "double sharp" .row _ 95 0.53 &{-_-}& "for joining words" .row ` 96 0.70 &{-`-}& .row c 99 0.64 &{-c-}& .row d 100 0.817 &{-d-}& .row e 101 0.38 &{-e-}& .row f 102 0.47 &{-f-}& .row g 103 0.64 &{-g-}& .leadoff .row &D15;h &D15;104 &D15;0.00 &D15;&{-h-}& "&{{w}}&&BT15;" .row &D15;j &D15;106 &D15;0.00 &D15;&{-j-}& "&BM15;&~&~&~beams for upstemmed notes" .row &D15;k &D15;107 &D15;0.00 &D15;&{-k-}& "&BB15;" .leadon .row m 109 0.88 &{-m-}& .row o 111 0.76 &{-o-}& .row p 112 0.69 &{-p-}& .row q 113 0.64 &{-q-}& .row r 114 0.38 &{-r-}& .row s 115 0.32 &{-s-}& .row t 116 0.38 &{-t-}& .row u 117 0.817 &{-u-}& .row w 119 0.38 &{-w-}& "semibreve" .row y 121 0.38 &{-y-}& .row z 122 0.42 &{-z-}& .row { 123 0.26 &{-{-}& "small semibreve rest" .row | 124 0.02 &{-|-}& "bar line" .row } 125 0.26 &{-}-}& "small minim rest" .row ~ 126 0.70 &{-~-}& .row "" 160 0.00 &{- -}& "stave segment" .row "" 178 0.75 &{-²-}& .row "" 179 0.75 &{-³-}& .row "" 180 0.75 &{-´-}& .row "" 181 0.75 &{-µ-}& .row "" 182 0.75 &{-¶-}& .row "" 183 0.75 &{-·-}& .row "" 184 0.75 &{-¸-}& .row "" 185 0.75 &{-¹-}& .row "" 186 0.75 &{-º-}& .row "" 187 0.75 &{-»-}& .row "" 188 0.75 &{-¼-}& .row "" 189 0.75 &{-½-}& .row "" 190 0.75 &{-¾-}& .leadoff .row &D15; &D15;200 &D15;0.30 &D15;&{-È-}& "&{{w}}&&BT15;" .row &D15; &D15;201 &D15;0.30 &D15;&{-É-}& "&BM15;" .row &D15; &D15;202 &D15;0.30 &D15;&{-Ê-}& "&BM15;" .row &D15; &D15;203 &D15;0.30 &D15;&{-Ë-}& "&BM15;" .row &D15; &D15;204 &D15;0.30 &D15;&{-Ì-}& "&BM15;&~&~&~for fraction numerators" .row &D15; &D15;205 &D15;0.30 &D15;&{-Í-}& "&BM15;" .row &D15; &D15;206 &D15;0.30 &D15;&{-Î-}& "&BM15;" .row &D15; &D15;207 &D15;0.30 &D15;&{-Ï-}& "&BM15;" .row &D15; &D15;208 &D15;0.30 &D15;&{-Ð-}& "&BM15;" .row &D15; &D15;209 &D15;0.30 &D15;&{-Ñ-}& "&BB15; .row &D15; &D15;210 &D15;0.30 &D15;&{-Ò-}& "&{{ww}}&&BT15;" .row &D15; &D15;211 &D15;0.30 &D15;&{-Ó-}& "&BM15;" .row &D15; &D15;212 &D15;0.30 &D15;&{-Ô-}& "&BM15;" .row &D15; &D15;213 &D15;0.30 &D15;&{-Õ-}& "&BM15;" .row &D15; &D15;214 &D15;0.30 &D15;&{-Ö-}& "&BM15;&~&~&~for fraction denominators" .row &D15; &D15;215 &D15;0.30 &D15;&{-×-}& "&BM15;" .row &D15; &D15;216 &D15;0.30 &D15;&{-Ø-}& "&BM15;" .row &D15; &D15;217 &D15;0.30 &D15;&{-Ù-}& "&BM15;" .row &D15; &D15;218 &D15;0.30 &D15;&{-Ú-}& "&BM15;" .row &D15; &D15;219 &D15;0.30 &D15;&{-Û-}& "&BB15;" .leadon .row "" 222 0.75 &{-Þ-}& "for building fractions" .endtable .leadoff .rule . //////////////////////////////////////////////////////////////////////////// . //////////////////////////////////////////////////////////////////////////// .chapter "Syntax summary" CHAPsyntaxsummary .index "syntax summary" .index "summary of syntax" .section "Preprocessing directives" These may occur at any point in an input file; each one must occupy a line on its own. .display &`*comment `&<&'rest of line'&> &`*define `&<&'name'&>&` `&<&'rest of line'&> &`*else`& &`*fi`& &`*if`& <&'condition'&> &`*if not `&<&'condition'&> &`*include `&"&'file name'&" .endd .section "Heading directives" Those marked with an asterisk may appear only at the head of a PMW input file, not at the start of the second or subsequent movements. Those marked with a dagger affect only the movement in which they appear. .display &` Accadjusts `&<&'n'&>&` `&<&'n'&> ... <&'up to 8 numbers'&> &` Accspacing `&<&'n1'&>&` `&<&'n2'&>&` `&<&'n3'&>&` `&<&'n4'&>&` `&<&'n5'&> &` Bar `&<&'n'&> &` Barcount `&<&'n'&> &` Barlinesize `&<&'n'&> &` Barlinespace `&<&'n'&> &` Barlinestyle `&<&'n'&> &` Barnumberlevel `&<&'sign'&><&'n'&> &` Barnumbers `&<&'enclosure'&>&` `&<&'interval'&>&` `&<&'fontsize'&>&` `&<&'font'&> &` Beamendrests`& &` Beamflaglength `&<&'n'&> &` Beamthickness `&<&'n'&> &` Bottommargin `&<&'n'&> &` Brace `&<&'n'&>-<&'m'&> ... &` Bracestyle `&<&'n'&> &` Bracket `&<&'n'&>-<&'m'&> ... &` Breakbarlines `&<&'n1'&>&` `&<&'n2'&> ... &` Breakbarlinesx `&<&'n1'&>&` `&<&'n2'&> ... &` Breveledgerextra `&<&'n'&> &` Breverests`& &` Caesurastyle `&<&'n'&> &` Check`& &` Checkdoublebars`& &` Clefsize `&<&'n'&> &` Clefstyle `&<&'n'&> &` Clefwidths `&<&'n1'&> ... <&'n5'&> &` Codemultirests`& &` Copyzero `&<&'n'&>/<&'m'&> ... &` Cuegracesize `&<&'n'&> &` Cuesize `&<&'n'&> &` Dotspacefactor `&<&'n'&> &`†Doublenotes`& &` Draw `&<&'drawing definition'&>&` enddraw`& &` Endlinesluradjust `&<&'n'&> &` Endlineslurstyle `&<&'n'&> &` Endlinetieadjust `&<&'n'&> &` Endlinetiestyle `&<&'n'&> &` Extenderlevel `&<&'n'&> &` Fbsize `&<&'n'&> &` Footing `&<&'fontsize'&>&` "`&<&'string'&>&`" `&<&'space'&> &` Footing draw `&<&'name'&>&` `&<&'space'&> &` Footnotesep `&<&'n'&> &` Footnotesize `&<&'n'&> &` Gracesize `&<&'n'&> &` Gracespacing `&<&'n'&>&` `&<&'m'&> &` Gracestyle `&<&'n'&> &` Hairpinlinewidth `&<&'n'&> &` Hairpinwidth `&<&'n'&> &` Halfflatstyle `&<&'n'&> &` Halfsharpstyle `&<&'n'&> &`†Halvenotes`& &` Heading `&<&'fontsize'&>&` "`&<&'string'&>&`" `&<&'space'&> &` Heading draw `&<&'name'&>&` `&<&'space'&> &` Hyphenstring `&&`"`&<&'string'&>&`"`& &` Hyphenthreshold `&<&'n'&> &` Join `&<&'n'&>-<&'m'&> ... &` Joindotted `&<&'n'&>-<&'m'&> ... &` Justify `&<&'edges'&> &`†Key `&<&'key signature'&> &` Keydoublebar`& &` Keysinglebar`& &` Keywarn`& &`*Landscape`& &` Lastfooting `&<&'fontsize'&>&` "`&<&'string'&>&`" `&<&'space'&> &` Lastfooting draw `&<&'name'&>&` `&<&'space'&> &`†Layout `&<&'n1'&>&` `&<&'n2'&> ... &` Ledgerstyle `&<&'n'&> &` Leftmargin `&<&'n'&> &` Linelength `&<&'n'&> &` Longrestfont `&<&'fontsize'&>&` `&<&'font'&> &`*Magnification `&<&'n'&> &` Maxbeamslope `&<&'n'&> &`*Maxvertjustify `&<&'n'&> &` Midichannel `&<&'n'&>&` "`&<&'name or number'&>&`" `&<&'staves'&> &` Midifornotesoff`& &` Midistart `&<&'n'&>&` `&<&'n'&>&` `&<&'n'&> ... &` Miditempo `&<&'n'&>&` `&<&'n'&>/<&'m'&> ... &` Miditranspose `&<&'n'&>/<&'m'&> ... &` Midivolume `&<&'n'&>&` `&<&'n'&>/<&'m'&> ... &` Midkeyspacing `&<&'n'&> &` Midtimespacing `&<&'n'&> &`*Musicfont `&&`"`&<&'font name'&>&`"`& &` Nobeamendrests`& &` Nocheck`& &` Nocheckdoublebars`& &` Nocodemultirests`& &`*Nokerning`& &` Nokeywarn`& &` Nosluroverwarnings`& &` Nospreadunderlay`& &` Notespacing *`&<&'factor'&> &` Notespacing `&<&'n1'&> ... <&'n8'&> &`†Notime`& &` Notimebase`& &` Notimewarn`& &` Nounderlayextenders`& . &`*Oldbeambreak`& . &`*Oldrestlevel`& . &`*Oldstemlength`& . &`*Oldstretchrule`& &` Overlaydepth `&<&'n'&> &` Overlaysize `&<&'fontsize'&> &`*Page `&<&'n'&>&` `&<&'m'&> &` Pagefooting `&<&'fontsize'&>&` "`&<&'string'&>&`" `&<&'space'&> &` Pagefooting draw `&<&'name'&>&` `&<&'space'&> &` Pageheading `&<&'fontsize'&>&` "`&<&'string'&>&`" `&<&'space'&> &` Pageheading draw `&<&'name'&>&` `&<&'space'&> &`*Pagelength `&<&'n'&> &` Playtempo `&<&'n'&>&` `&<&'n'&>/<&'m'&> ... &` Playtranspose `&<&'n'&>/<&'m'&> ... &` Playvolume `&<&'n'&>&` `&<&'n'&>/<&'m'&> ... &` Pmwversion `&<&'n'&> &` Printkey `&<&'key'&>&` `&<&'clef'&>&` "`&<&'string'&>&`"`& &` Printtime `&<&'time'&>&` "`&<&'string 1'&>&`" "`&<&'string 2'&>&`"`& &` Psfooting `&"<&'PostScript string'&>" &` Psheading `&"<&'PostScript string'&>" &` Pslastfooting `&"<&'PostScript string'&>" &` Pspagefooting `&"<&'PostScript string'&>" &` Pspageheading `&"<&'PostScript string'&>" &`*Pssetup `&"<&'PostScript string'&>" &` Rehearsalmarks `&<&'style'&>&` `&<&'fontsize'&>&` `&<&'fontname'&> &` Repeatbarfont `&<&'fontsize'&>&` `&<&'font'&> &` Repeatstyle `&<&'n'&> &`*Righttoleft`& &` Selectstaves `&<&'n'&>-<&'m'&> ... &`*Sheetdepth `&<&'n'&> &`*Sheetsize A4 `&<&'or'&>&` A3`& &`*Sheetwidth `&<&'n'&> &` Shortenstems `&<&'n'&> &` Sluroverwarnings`& &` Smallcapsize `&<&'n'&> &`†Startbracketbar `&<&'n'&> &` Startlinespacing `&<&'c'&>&` `&<&'k'&>&` `&<&'t'&>&` `&<&'n'&> &`†Startnotime`& &` Stavesize(s) `&<&'n'&>/<&'m'&> ... &` Stavespacing `&<&'n'&>&` `&<&'n/b'&> ... &` Stavespacing `&<&'n'&>&` `&<&'n/a/b'&> ... &` Stemlengths `&<&'n1'&> ... <&'n6'&> &` Stemswap `&<&'direction'&> &` Stemswaplevel `&<&'n'&>/<&'m'&> ... &`*Stretchrule `&<&'n'&> &`†Suspend `&<&'n'&> ... &` Systemgap `&<&'n'&> &`*Textfont `&<&'fontword'&>&` "`&<&'font name'&>&`"`& &` Textsizes `&<&'n'&> ... &` Thinbracket `&<&'n'&>-<&'m'&> ... &`†Time `&<&'time signature'&> &` Timebase`& &` Timefont `&<&'fontsize'&>&` `&<&'name'&> &` Timewarn`& &` Topmargin `&<&'n'&> &`†Transpose `&<&'n'&> &` Transposedacc force`& &` Transposedacc noforce`& &` Transposedkey `&<&'key 1'&>&` use `&<&'key 2'&> &` Trillstring `&&`"`&<&'string'&>&`"`& &` Tripletfont `&<&'fontsize'&>&` `&<&'name'&> &` Tripletlinewidth `&<&'n'&> &` Underlaydepth `&<&'n'&> &` Underlayextenders`& &` Underlaysize `&<&'fontsize'&> &` Underlaystyle `&<&'n'&> &`†Unfinished`& &` Vertaccsize `&<&'n'&> .endd .section "Note and rest components" The order of the items that go to make up one note is given below. Few notes require all possible components to be present. .itable none 0 0 2 100 left 250 left .row "accidental" "&`# ## $ $$ %`& .row "&~&~half sharp" "&`#-`& .row "&~&~half flat" "&`$-`& .row "&~&~invisible" "&`?`&" .row "&~&~over note" "&`o`&" .row "&~&~under note" "&`u`&" .row "&~&~transposed" "&`^# ^## ^$ ^$$ ^% ^- ^+`&" .row "&~&~bracketed" "&`) ]`&" .row "&~&~moved" "&`<`& &~or&~ &`<`&&'number'&" .row "note letter" "&`a-g A-G q Q r R s S`&" .row "octave sign" "&`'`& &~to raise,&~ &```& &~to lower" .row "note flags" "&`- = =- ==`& &~following a small letter" .row "" "&`+ ++`& &~following a capital letter" .row "" "&`!`& &~following&~ &`q, Q, r, R, s,`& &~or&~ &`S`&" .row "move dot" "&`>`& &~or&~ &'number'&&`>`&" .row "dot(s)" "&`.`& &~or&~ &`..`& &~or&~ &`.+`&" .row "expression/options" "&`\`&&'expression and options indications'&&`\`&" .row "tie/slur" "&`_`&" .row "&~&~above/below" "&`/a /b`&" .row "&~&~editorial" "&`/e`&" .row "&~&~dashed/dotted" "&`/i /ip`&" .row "full beam break" "&`;`&" .row "partial beam break" "&`,`&" .endtable The possible expression/option codes are: .itable none 0 0 2 48 left 300 left .row &`!`& "accent on stem side, trill or fermata below" .row &`:`& "augmentation dot other side if note on line" .row &`::`& "augmentation dot raised if note in space" .row &`'`& "`start of bar' accent" .row &`.`& "staccato" .row &`..`& "staccatissimo" .row &`-`& "accent" .row &`>`& "horizontal wedge accent" .row &`~`& "upper mordent" .row &`~|`& "lower mordent" .row &`~~`& "double upper mordent" .row &`~~|`& "double lower mordent" .row &`/`& "single tremolo" .row &`//`& "double tremolo" .row &`///`& "triple tremolo" .row &`a`&<&'n'&> "accent <&'n'&>" .row &`ar`& "arpeggio" .row &`aru`& "arpeggio with up arrow" .row &`ard`& "arpeggio with down arrow" .row &`c`& "print on coupled stave" .row &`C`& "centre if only note in bar" .row &`d`& "string down bow" .row &`f`& "fermata (pause) above note" .row &`f!`& "fermata (pause) below note" .row &`g`& "grace note" .row &`g/`& "crossed grace note" .row &`h`& "don't print on coupled stave" .row &`l`&<&'n'&> "rest level" .row &`m`&<&'flags'&> "masquerade" .row &`o`& "harmonic" .row &`sl`&<&'n'&> "extend stem length" .row &`sl-`&<&'n'&> "shorten stem length" .row &`sm`& "use small notehead" .row &`sp`& "spread chord" .row &`su`& "stem up" .row &`sd`& "stem down" .row &`sw`& "swap stem direction in beam" .row &`t`& "turn" .row &`t|`& "inverted turn" .row &`tr`& "trill" .row &`tr#`& "trill with sharp" .row &`tr$`& "trill with flat" .row &`tr%`& "trill with natural" .row &`u`& "string up bow" .row &`v`& "small, closed vertical wedge accent" .row &`V`& "large, open vertical wedge accent" .row &`x`& "cancel default expression" .endtable Accent numbers: .itable none 0 0 2 20 left 200 left .row 1 "staccato dot" .row 2 "horizontal bar" .row 3 "horizontal wedge" .row 4 "small, closed vertical wedge" .row 5 "large, open vertical wedge" .row 6 "string down bow" .row 7 "string up bow" .row 8 "ring" .row 9 "`start of bar' accent" .row 10 "staccatissimo" .endtable All accents and ornaments except tremolos can be moved in any direction by following the code with &`/u`&, &`/d`&, &`/l`&, or &`/r`& and a number. For this reason, the tremolo options must not directly follow an accent or ornament. Use a space to separate, or put the tremolo first. Tremolos themselves can be moved up and down, but not left or right. The notation looks confusing, but is consistent: for example, &`G\//u4\`& specifies a single tremolo that is moved up by 4 points. All accents, and the fermata, mordant, trill, and turn ornaments can be shown in parentheses or square brackets, by following the code with one of: .itable none 0 0 2 30 left 300 left .row &`/(`& "precede with an opening parenthesis" .row &`/[`& "precede with an opening square bracket" .row &`/)`& "follow with a closing parenthesis" .row &`/]`& "follow with a closing square bracket" .row &`/b`& "enclose in parentheses" .row &`/B`& "enclose in square brackets" .endtable .section "Special characters in stave data" These characters, along with text items, occur interspersed in the notes and rests: .itable none 0 0 2 30 left 300 left .row &`|`& "bar line" .row &`||`& "double bar line" .row &`|||`& "end-of-piece bar line" .row &`|?`& "invisible bar line" .row &`|=`& "bar line with beam carried over it" .row &`|`&<&'n'&> "bar line in style <&'n'&>" .row &`:`& "dotted bar line in middle of bar" .row &`(:`& "start repeated section" .row &`:)`& "end repeated section" .row &`{`& "start triplet" .row &`{`&<&'n'&> "start non-standard group" .row &`}`& "end non-standard group" .row &`//`& "caesura" .row &`>`& "decrescendo hairpin" .row &`<`& "crescendo hairpin" .endtable .section "Stave text item options" These options may occur after any text item, but for a rehearsal mark inside square brackets only those specifying movement are relevant, and &`/bar`&, &`/c`&, &`/e`&, &`/nc`&, &`/ne`&, and &`/ts`& are ignored on underlay and overlay strings. .itable none 0 0 2 60 left 300 left .row &`/a`& "print above the stave" .row &`/ao`& "print above, at the overlay level" .row &`/a`&<&'n'&> "print <&'n'&> points above the stave" .row &`/b`& "print below the stave" .row &`/bar`& "position at previous bar line" .row &`/box`& "print inside a rectangular box" .row &`/bu`& "print below, at the underlay level" .row &`/b`&<&'n'&> "print <&'n'&> points below the stave" .row &`/c`& "centre the string horizontally" .row &`/d`&<&'n'&> "move down <&'n'&> points" .row &`/e`& "align end of string, not start" .row &`/fb`& "string is figured bass" .row &`/h`& "position halfway between notes" .row &`/l`&<&'n'&> "move left <&'n'&> points" .row &`/m`& "print below, halfway to the next stave" .row &`/nc`& "cancel a previous &`/c`&" .row &`/ne`& "cancel a previous &`/e`&" .row &`/ol`& "string is overlay" .row &`/ps`& "insert PostScript string in output" .row &`/r`&<&'n'&> "move right <&'n'&> points" .row &`/ring`& "print inside a ring shape" .row &`/rot`&<&'n'&> "rotate <&'n'&> degrees" .row &`/s`&<&'n'&> "print using font size <&'n'&> (1&--12)" .row &`/ts`& "position at time signature" .row &`/ul`& "string is underlay" .row &`/u`&<&'n'&> "move up <&'n'&> points" .endtable Font sizes are defined in the heading by the &%textsizes%& directive. For underlay and overlay strings, additional strings may follow as options, to control the printing of hyphens between syllables (&R; &<>&). .section "Character string escapes" The escape sequences that specify accented and other special characters in text fonts are shown in the character list in chapter &<>&. The remaining escape sequences are summarized here. .itable none 0 0 2 60 left 300 left .row &`\c]`& "prints © from the PostScript Symbol font" .row &`\p\`& "page number" .row &`\pe\`& "page number, if even" .row &`\po\`& "page number, if odd" .row &`\@`& "start of in-string comment; ends at next &`\`&" .row " " .row &`\*b\`& "breve" .row &`\*s\`& "semibreve" .row &`\*m\`& "minim" .row &`\*c\`& "crotchet" .row &`\*Q\`& "quaver" .row &`\*q\`& "semiquaver" .endtable Any of the above can include a dot after the note letter to print the dotted form of the note. .itable none 0 0 2 60 left 300 left .row &`\*#\`& "sharp" .row &`\*$\`& "flat" .row &`\*%\`& "natural" .row &`\*u\`& "moves up by 0.2 times the music font's size" .row &`\*d\`& "moves down by 0.2 times the music font's size" .row &`\*l\`& "moves left by 0.33 times the music font's size" .row &`\*r\`& "moves right by 0.55 times the music font's size" .row &`\*<\`& "moves left by 0.1 times the music font's size" .row &`\*>\`& "moves right by 0.1 times the music font's size" .endtable Musical escapes with a single asterisk use a font whose size is 9/10 that of the surrounding text. A double asterisk uses a full size font. .itable none 0 0 2 60 left 300 left .row &`\t`&&'x'& "transpose chord name &'x'& (one of A&--G)" .endtable The note letter can be followed by &`#`& or &`$`&. .itable none 0 0 2 60 left 300 left .row &`\`&<&'n'&>&`\`& "character number <&'n'&> from the current font" .row &`\*`&<&'n'&>&`\`& "character number <&'n'&> from the 9/10 music font" .row &`\**`&<&'n'&>&`\`& "character number <&'n'&> from the full sized music font" .row &`\s`&<&'n'&>&`\`& "character number <&'n'&> from the Symbol font" .endtable The character number can be given as a decimal number, or as a hexadecimal number preceded by &`x`&, for example &`\*109\`& or &`\x20ac\`&. .itable none 0 0 2 60 left 300 left .row &`\rm\`& "change to roman type" .row &`\it\`& "change to italic type" .row &`\bf\`& "change to bold face type" .row &`\bi\`& "change to bold-italic type" .row &`\sc\`& "change to a small caps font size" .row &`\sy\`& "change to the symbol font" .row &`\mu\`& "change to the music font at 9/10 size" .row &`\mf\`& "change to the music font at full size" .row &`\x1\`& "change to the first extra font" .row &~&~... .row &`\x12\`& "change to the twelfth extra font" .endtable Extra fonts are defined in the heading by the &%textfont%& directive. .section "Underlay strings" These characters are treated specially in underlay strings: .itable none 0 0 2 60 left 360 left .row &`-`& "end of syllable in mid-word" .row &`=`& "continue syllable over additional note" .row &`#`& "print as space; doesn't terminate a word" .row &`^`& "centre only characters to the left of this or between two &`^`& characters" .endtable .section "Bracketed stave directives" These directives occur in square brackets interspersed in among the notes and rests: .itable none 0 0 2 160 left 250 left .row "&`[\!\]`&" "repeated accent movement" .row "&`[\.\]`&" "repeated staccato" .row "&`[\..\]`&" "repeated staccatissimo" .row "&`[\-\]`&" "repeated accent" .row "&`[\>\]`&" "repeated horizontal wedge accent" .row "&`[\v\]`&" "repeated small vertical wedge accent" .row "&`[\V\]`&" "repeated large vertical wedge accent" .row "&`[\'\]`&" "repeated `start of bar' accent" .row "&`[\d\]`&" "repeated string down bow" .row "&`[\u\]`&" "repeated string up bow" .row "&`[\o\]`&" "repeated harmonic ring" .row "&`[\a`&<&'n'&>&`\]`&" "repeated accent <&'n'&>" .row "&`[\/\]`&" "repeated single tremolo" .row "&`[\//\]`&" "repeated double tremolo" .row "&`[\///\]`&" "repeated triple tremolo" .row "&`[\\]`&" "no repeated marks" .row "&`[`&<&'n'&&`>]`&" "specify repeated input bars" .row "&`[1st]`&" "first time bar" .row "&`[2nd]`&" "second time bar" .row "&`[3rd]`&" "third time bar" .row "&`[`&<&'n'&>&`th]`&" "<&'n'&>th time bar" .row "&`[""`&&'text'&&`""/`&&'options'&&`]`&" "rehearsal mark" .row " " .row "&`[all]`&" "end 1st/2nd time bars" .row "&`[alto `&<&'octave'&>&`]`&" "select alto clef" .row "&`[assume `&<&'setting'&>&`]`&" "assume key, time, or clef" .row "&`[baritone `&<&'octave'&>&`]`&" "select baritone clef" .row "&`[barlinestyle `&<&'n'&>&`]`&" "select bar line style for stave" .row "&`[barnumber`&<&'/options'&>&`]`&" "explicit bar number print" .row "&`[barnumber off]`&" "suppress bar number print" .row "&`[bass `&<&'octave'&>&`]`&" "select bass clef" .row "&`[beamacc]`&" "next beam is an accelerando beam" .row "&`[beammove `&<&'n'&>&`]`&" "move next beam vertically" .row "&`[beamrit]`&" "next beam is a ritardando beam" .row "&`[beamslope `&<&'n'&>&`]`&" "force slope of next beam" .row "&`[bottommargin `&<&'n'&>&`]`&" "bottom margin for this page" .row "&`[bowing above]`&" "bowing marks above" .row "&`[bowing below]`&" "bowing marks below" .row "&`[breakbarline]`&" "break one bar line on one stave" .row "&`[cbaritone `&<&'octave'&>&`]`&" "select cbaritone clef" .row "&`[comma]`&" "comma pause" .row "&`[contrabass `&<&'octave'&>&`]`&" "select contrabass clef" .row "&`[copyzero `&<&'n'&>&`]`&" "move stave zero material" .row "&`[couple up]`&" "spread music to stave above" .row "&`[couple down]`&" "spread music to stave below" .row "&`[couple off]`&" "no coupling" .row "&`[cue]`&" "specify cue bar" .row "&`[deepbass `&<&'octave'&>&`]`&" "select deep bass clef" .row "&`[dots above]`&" "augmentation dots above" .row "&`[dots below]`&" "augmentation dots below" .row "&`[draw <&'name'&>]`&" "obey a drawing definition" .row "&`[el]`&" "synonym for &`[endline]`&" .row "&`[endcue]`&" "end cue notes before bar end" .row "&`[endline]`&" "end line" .row "&`[endslur]`&" "end long slur" .row "&`[endslur/=`&<&'char'&>&`]`&" "end tagged long slur" .row "&`[es]`&" "synonym for &`[endslur]`&" .row "&`[endstave]`&" "end of this stave" .row "&`[ensure `&<&'n'&>&`]`&" "ensure space between notes" .row "&`[fbfont `&<&'name'&>&`]`&" "set default figured bass font" .row "&`[fbtextsize `&<&'n'&>&`]`&" "default size for figured bass text" .row "&`[footnote ""`&&'string'&&`""]`&" "define footnote" .row "&`[h]`&" "synonym for &`[noteheads harmonic]`&" .row "&`[hairpins above]`&" "put hairpins above" .row "&`[hairpins below]`&" "put hairpins below" .row "&`[hairpins middle]`&" "centre hairpins between two staves" .row "&`[hairpinwidth `&<&'n'&>&`]`&" "set hairpinwidth for this stave" .row "&`[hclef `&<&'octave'&>&`]`&" "select percussion H-clef" .row "&`[justify +`&<&'edge'&>&`]`&" "add to justification edges" .row "&`[justify -`&<&'edge'&>&`]`&" "take away a justification edge" .row "&`[key `&<&'key signature'&>&`]`&" "set key signature" .row "&`[line/`&<&'options'&>&`]`&" "line above/below notes" .row "&`[linegap/`&<&'options'&>&`]`&" "leave gap in line" .row "&`[mezzo `&<&'octave'&>&`]`&" "select mezzo-soprano clef" .row "&`[midichannel `&<&'n'&>&`]`&" "change MIDI channel" .row "&`[midipitch ""`&&'name'&&`""]`&" "change MIDI percussion pitch" .row "&`[miditranspose `&<&'n'&>&`]`&" "change MIDI transposition" .row "&`[midivoice ""`&&'name'&&`""]`&" "change MIDI voice" .row "&`[midivolume `&<&'n'&>&`]`&" "set relative MIDI volume" .row "&`[move `&<&'n'&>&`]`&" "move next item horizontally" .row "&`[move `&<&'n'&>&`,`&<&'m'&>&`]`&" "ditto horizontally && vertically" .row "&`[name ""`&&'string'&&`""`& ...&`]`&" "specify stave start text(s)" .row "&`[name `&<&'n'&>&`]`&" "select stave start text" .row "&`[newline]`&" "force new line of music" .row "&`[newmovement `&<&'option'&>&`]`&" "start new movement" .row "&`[newpage]`&" "force new page of music" .row "&`[nocheck]`&" "don't check this bar's length" .row "&`[noclef `&<&'octave'&>&`]`&" "select invisible treble clef" .row "&`[nocount]`&" "don't count this bar for numbering" .row "&`[noteheads `&<&'style'&>&`]`&" "select notehead shape" .row "&`[notes on]`&" "turn on note printing" .row "&`[notes off]`&" "turn off note printing" .row "&`[notespacing *`&<&'n'&>&`]`&" "adjust note spacing" .row "&`[notespacing `&<&'n'&>&` `&<&'n'&> ...&`]`&" "adjust note spacing" .row "&`[ns]`&" "synonym for &`[notespacing]`&" .row "&`[o]`&" "synonym for &`[noteheads normal]`&" .row "&`[octave `&<&'n'&>&`]`&" "set transposition octave" .row "&`[olevel `&<&'n'&>&`]`&" "force overlay level" .row "&`[olevel *]`&" "revert to automatic overlay level" .row "&`[olhere `&<&'n'&>&`]`&" "adjust overlay level for this system" .row "&`[oltextsize `&<&'n'&>&`]`&" "set text size for overlay" .row "&`[omitempty]`&" "print nothing for empty bars" .row "&`[overdraw ...]`&" "as &`[draw]`& but done last" .row "&`[overlayfont `&<&'name'&>&`]`&" "set default overlay font" .row "&`[page `&<&'n'&>&`]`&" "increase page number to <&'n'&>" .row "&`[page +`&<&'n'&>&`]`&" "increase page number by <&'n'&>" .row "&`[percussion]`&" "specify percussion stave (old method)" .row "" "&`[stavelines]`& is now preferred" .row "&`[playtranspose `&<&'n'&>&`]`&" "change playing transposition" .row "&`[playvolume `&<&'n'&>&`]`&" "set relative playing volume" .row "&`[printpitch `&<&'note'&>&`]`&" "force printing pitch" .row "&`[reset]`&" "reset position to bar start" .row "&`[resume]`&" "resume printing stave" .row "&`[rlevel `&<&'n'&>&`]`&" "set rest level" .row "&`[rmove ...]`&" "as &`[move]`& but scale horizontally" .row "&`[rsmove `&<&'n'&>&`]`&" "as &`[smove]`& but scale horizontally" .row "&`[rspace `&<&'n'&>&`]`&" "as &`[space]`& but scale horizontally" .row "&`[sghere `&<&'n'&>&`]`&" "set system gap for this system" .row "&`[sgnext `&<&'n'&>&`]`&" "set system gap for next system" .row "&`[skip `&<&'n'&>&`]`&" "skip <&'n'&> bars" .row "&`[slur/`&<&'options'&>&`]`&" "start long slur" .row "&`[slurgap/`&<&'options'&>&`]`&" "leave gap in slur" .row "&`[smove `&<&'n'&>&`]`&" "combined &`[move]`& and &`[space]`&" .row "&`[soprabass `&<&'octave'&>&`]`&" "select soprabass clef" .row "&`[soprano `&<&'octave'&>&`]`&" "select soprano clef" .row "&`[space `&<&'n'&>&`]`&" "insert space before next note" .row "&`[sshere `&<&'n'&>&`]`&" "set stave spacing for this system" .row "&`[ssnext `&<&'n'&>&`]`&" "set stave spacing for next system" .row "&`[stave `&<&'n'&>&` ...]`&" "start new stave" .row "&`[stavelines `&<&'n'&>&`]`&" "set number of stave lines" .row "&`[stemlength `&<&'n'&>&`]`&" "set default stemlengh adjustment" .row "&`[stems `&<&'direction'&>&`]`&" "force/unforce stem direction" .row "&`[suspend]`&" "suspend stave at next system" .row "&`[tenor `&<&'octave'&>&`]`&" "select tenor clef" .row "&`[text `&<&'name'&>&`]`&" "select default text type" .row "&`[textfont `&<&'name'&>&`]`&" "set default text font" .row "&`[textsize `&<&'n'&>&`]`&" "set default text size" .row "&`[tick]`&" "tick pause" .row "&`[ties `&<&'direction'&>&`]`&" "force/unforce tie direction" .row "&`[time `&<&'time signature'&>&`]`&" "set time signature" .row "&`[time `&<&'sig1'&>&` -> `&<&'sig2'&>&`]`&" "scale to other signature" .row "&`[topmargin `&<&'n'&>&`]`&" "set top margin for current page" .row "&`[transpose `&<&'n'&>&`]`&" "set transposition" .row "&`[transposedacc force]`&" "print cautionary accidentals" .row "&`[transposedacc noforce]`&" "don't print cautionary accidentals" .row "&`[treble `&<&'octave'&>&`]`&" "select treble clef" .row "&`[trebledescant `&<&'octave'&>&`]`&" "select trebledescant clef" .row "&`[trebletenor `&<&'octave'&>&`]`&" "select trebletenor clef" .row "&`[trebletenorB `&<&'octave'&>&`]`&" "select trebletenorB clef" .row "&`[tremolo]`&" "print tremolo between notes" .row "&`[triplets off]`&" "don't print triplet indications" .row "&`[triplets on]`&" "print triplet indications" .row "&`[triplets `&<&'options'&>&`]`&" "control triplet printing" .row "&`[ulevel `&<&'n'&>&`]`&" "force underlay level" .row "&`[ulevel *]`&" "revert to automatic underlay level" .row "&`[ulhere `&<&'n'&>&`]`&" "adjust underlay level for this system" .row "&`[ultextsize `&<&'n'&>&`]`&" "set text size for underlay" .row "&`[unbreakbarline]`&" "join one barline to next stave" .row "&`[underlayfont `&<&'name'&>&`]`&" "set default underlay font" .row "&`[x]`&" "synonym for &`[noteheads cross]`&" .row "&`[xline]`&" "crossing line" .row "&`[xslur `&<&'args'&>&`]`&" "crossing slur" .row "&`[z]`&" "synonym for &`[noteheads none]`&" .endtable .section "Slur options" .itable none 0 0 2 80 left 200 left .row &`/=`&<&'char'&> "specify tagged slur" .row &`/a`& "slur above (default)" .row &`/a`&<&'n'&> "above, at fixed position" .row &`/ao`& "above, at overlay level" .row &`/b`& "slur below" .row &`/b`&<&'n'&> "below, at fixed position" .row &`/bu`& "below, at underlay level" .row &`/e`& "editorial (crossed) slur" .row &`/h`& "force horizontal slur" .row &`/i`& "intermittent (dashed) slur" .row &`/ip`& "intermittent point (dotted) slur" .row &`/`&<&'n'&> "following options apply only to section <&'n'&>" .row " " .row &`/ll`&<&'n'&> "move the left end left by <&'n'&> points" .row &`/lr`&<&'n'&> "move the left end right by <&'n'&> points" .row &`/rl`&<&'n'&> "move the right end left by <&'n'&> points" .row &`/rr`&<&'n'&> "move the right end right by <&'n'&> points" .row &`/u`&<&'n'&> "raise the entire slur by <&'n'&> points" .row &`/d`&<&'n'&> "lower the entire slur by <&'n'&> points" .row &`/lu`&<&'n'&> "raise the left end by <&'n'&> points" .row &`/ld`&<&'n'&> "lower the left end by <&'n'&> points" .row &`/ru`&<&'n'&> "raise the right end by <&'n'&> points" .row &`/rd`&<&'n'&> "lower the right end by <&'n'&> points" .row &`/ci`&<&'n'&> "move the centre in by <&'n'&> points" .row &`/co`&<&'n'&> "move the centre out by <&'n'&> points" .row " " .row &`/clu`&<&'n'&> "move left control point up <&'n'&> points" .row &`/cld`&<&'n'&> "move left control point down <&'n'&> points" .row &`/cll`&<&'n'&> "move left control point left <&'n'&> points" .row &`/clr`&<&'n'&> "move left control point right <&'n'&> points" .row &`/cru`&<&'n'&> "move right control point up <&'n'&> points" .row &`/crd`&<&'n'&> "move right control point down <&'n'&> points" .row &`/crl`&<&'n'&> "move right control point left <&'n'&> points" .row &`/crr`&<&'n'&> "move right control point right <&'n'&> points" .endtable Most of the options for slurs also apply to lines over groups of notes, as they are just a different kind of `slur' to PMW. The options for moving the Bézier curve control points are not relevant to lines, but &`/co`& and &`/ci`& have the effect of changing the length of the `jogs'. In addition, lines can take the following options: .itable none 0 0 2 80 left 200 left .row &`/ol`& "requests that the line be `open on the left'" .row &`/or`& "requests that the line be `open on the right'" .endtable .section "Default values" .index "default" "list of values" .itable none 0 0 2 150 left 200 left .row "Bar length check" "enabled" .row "Bar lines" "solid through system" .row "Beam flag length" "5" .row "Beam thickness" "1.8" .row "Bottom margin" "0" .row "Bracket/brace" "bracket whole system" .row "Breve rests" "not used" .row "Caesura style" "two strokes" .row "Clef" "treble" .row "Clef size" "1.0" .row "Dot space factor" "1.2" .row "Figured base size" "10 points" .row "First page number" "1" .row "Font family" "Times" .row "Footnote separation" "4 points" .row "Grace size" "7 points" .row "Grace spacing" "6 points" .row "Hairpin line width" "0.2 points" .row "Hairpin width" "7 points" .row "Heading type sizes" .row "&~&~first heading" "17, 12, 10, 8" .row "&~&~movement heading" "12, 10, 8" .row "Hyphen string" "one hyphen character" .row "Hyphen threshold" "50 points" .row "Justify" "top bottom left right" .row "Key" "C major" .row "Key warnings" "enabled" .row "Left margin" "computed for centring" .row "Line length" "480" .row "Long rest font size" "10" .row "Magnification" "1.0" .row "Maximum number of bars" "500" .row "Note spacing" "30 30 22 16 12 10 10 10" .row "Note stem direction" "automatically chosen" .row "Note style" "with stems" .row "Overlay depth" "11 points" .row "Overlay size" "10 points" .row "Page length" "720" .row "Repeat bar font size" "10" .row "Repeat style" "standard" .row "Sheet depth" "900 points" .row "Sheet size" "A4" .row "Sheet width" "608 points" .row "Small cap size" "0.7" .row "Stave spacing" "44 points" .row "Stave style" "five-line" .row "System gap" "44 points" .row "Text size" "10 points" .row "Time signature" "4/4" .row "Time signatures" "printed" .row "Time signature warnings" "enabled" .row "Top margin" "10" .row "Trill string" "&{ˆ}&" .row "Triplet font" "roman" .row "Triplet size" "10 points" .row "Transposition" "none" .row "Underlay depth" "11 points" .row "Underlay size" "10 points" .endtable . //////////////////////////////////////////////////////////////////////////// . //////////////////////////////////////////////////////////////////////////// . ///////////////////////////////////////////////////////////////////////////// . These literal XML lines are processing instructions for SDoP. Show only the . title in page footers for the index. . ///////////////////////////////////////////////////////////////////////////// .literal xml .literal off . ///////////////////////////////////////////////////////////////////////////// . ///////////////////////////////////////////////////////////////////////////// .makeindex "Index" . ///////////////////////////////////////////////////////////////////////////// . ///////////////////////////////////////////////////////////////////////////// pmw-4.27/doc/postscript/0000755000222100022210000000000012247665016013327 5ustar ph10ph10pmw-4.27/doc/spec.pdf0000644000222100022210000427416512247665016012565 0ustar ph10ph10%PDF-1.4 %Çì¢ 675 0 obj <> stream xœeÍNÃ0„ï~йÕ>ØØ&õϱHHQ) K=Ъ£Ú$àé‰ã€j%ïÊ;ó}† 2ÕÜ«–\=kÑôD¢!g¢¦5æVµ¸ “ÄA’} VÃ.Ç›–P°ðF´AxHóâ×aŒ°^kð´}!´|ÇxZôXö±Â¦‹CÝaKËõfË…ÿwL윯\Ê÷N_(påÅ2IžéjÆf$ý:Õ}= ñ½AÙ1-…”…¡M·oÙ.Ü~ø“a¦?ºÑ6Ž\Y¡çütÜí¿÷Â;ï¯i}ÌÈK}fÞò8ÖúûUjendstream endobj 676 0 obj 232 endobj 683 0 obj <> stream xœUNËnÂ0¼û+æ†ÝƒëuÜZ¨TUEd‰Cé¡DnâŠ4„Jíõ/‰.ìfµóО $A\9¯Øýfb Š–)ìÄ(ʸR^áÑFK"9†ýdC’`4Ì$ ·ŠñUéþ8j±<·>Ƕñk°ã«åv'„ý Ù¸ï :}eüáÜ•u3ÃÅóÇŸ;ˆ#Uôë`´wo|^)©Tªùo㋲Ã?´¢ä6ýn_¢}ã„NåtJ†ÿøÖ×ßH¥6£,\îª}ÿ_(ˆ™'ËÖ=.úGÚendstream endobj 684 0 obj 216 endobj 689 0 obj <> stream xœÝšËšÚ6Ç÷<…v•û×’,_–™¤MÓ6Mšv1É £ÆØÔ6My‰>su„ Œ“/\Ò™ÅÀŒaøùÜþçý…<— ¾›ŸébôÝë Ѽyh>úkDôŸQó#] ›‰¾$B$@“»ÑæuÑ€ºŒ( |4YŒð“"¯E^WÎäÏöz×Iìé Ç4D“Ùè¡çy]:$vã8òq1[¥µ,rçýä'xmÄ›×Fê_DŒªÿ§^ˆÝ‹í³±€¸¼ùt¤ùcLZpßgn14&tŽÔQ7M¢Ù},JgL}õ¼y‘óµqâÀ%ŒF×pö!™ºáÎ-ØÇÆhÿ®ÁïaªÝ ª“,“ù½zñ‡óÍ•cw†ïc³a–§`ùçyš­fÀ[ß ´p”D!ñª’)ºs¨~N°Š¥ É\_T¬êåªFÿfÂp Êbu‹Ø—¾Cû<Ôó÷hR„~—¡žëy1Çö ņ¨JK!Ìh§^¤ßótö6ÀXKå£b½*‹©Â™XT裬ïÑLVË,q˜B%„ã5 *gÞ°ÿíPŽE…’|†¦I‰”“‹Êd椸/ƼOH"î`l8ÁC_ȪjY IE‹ñé =‰ÿ}.,#=?@«¼õY²Ô¶¥ƒÃ´ŒœØ?? ¶­‹Üžv{ ¬í\qó~ï]Ê–šÇ:;ZéÚÈôzœ×2Éd¢‚­Ë0mŒBVY„ÍÊJ½àÔÐfÎ €kظÊ:O€¼oØêJuQgÀž.:j¿2«3&’(ÃRÙÒ¨ Ê‹|üÊáiÃEU¿I›y<ÂrY£%<Äð&JU–é—²´‘cC2Ð]ÃA¸T/ŠwQY0•ñH6ã‡"´!Žz›Ë]•·Ÿx(sƒË‹÷ªN[¸`˜¦ÅL©Ù׫¥oD­ƒt&î6Z/ÀÉ*«QZ,ªÚŒ¡–ä¦$8·QX(ÊÅ ixT],úMh((™ªŒ¤KéRŠÔìE Ô :ÊÙ`*u¹UæZEY¥©zTòñ.å™(XBÙä*Ör(¡Ë¬ì¡È‚3î(«GZPf7â~¦š|{‹}•gŸ51©ª x.xqÈp-f›Î l.ò´€6Û¢øè‰ù÷?u×dßL¯Çõ!»¾‘‹e&Ð"IËÂôZHa1¢Ù«šQ7 ‡”+ƒ¾Õâ½Pé¦ÔÖ»sˆ‡ER¯J[ƃs‡¬aÒ¨§øH<Ȫ\7×E)šÜšµ¥ »ætLµ þª°P½^Zؽ$›•òOâSz൨j³ !¯£3{òn"Ä¥Š=•MUôÕ000MÉÙÙó¡"ÿS¸”¸ÉÂ@‰u9¸Ó™£õãx·;|\oôð1ÄýSU‘ÚL¢ÿì¡Çi {'=ûÑJV !Žód¡÷QFýùٜ׮të´Ô{ÐiC„žÜåì«ôZ;ßmS U*½Q¤Èçõ}7%ÏUå‡&ËÇ«ÅT”6ëEçª"†ñxÜU‹ct !”Ã›Ž‰³ƒL0p¸ œ3Ë~Øyéá«ÅlL™+=Ï25Í×F×ú(Ûl«|&ÚĪú¬f®E¯Ñ;œ­Û¹åX¦Õ;Çâºô|S3óðn:p »A×ju•Õr BUë,K¦z¹ETɬºÜ;ÿÇTaóHÝbˆg)R™d(½Wí¤UFp’Ö*Tu^Ú J¼ÍZ®Êç¶Mã'h,ÍU,= ·ÃÆ€-I-1G×!XØd±;ÄzôÜKÝ/~ù¬BŪÅv õOmɱ§0Ïgsn—wÔ:ûh)AÕIålz¸ã‡øª²U¹yêî‘vÐy&«J=(,A„çlº w ½^É<0æÑ¤AÛwZ'Œàò¾z‘ñ¨‡è³¦’s?&$jsÌc)-:Í\Ç®àA^~Œ7Rù§=ù;'"ªuU‹…m<é_jHpt } ´ÕS;ãЪš üÕ$$+é(ÔLm?4O–æ˜'¼Ü®ÇŠÖ_ç ±£*›7 ”ØQ$þ°yDc,šVsZ:úøbªë¬r(:³}Íä·ÔÁÃÔ>ì„$œ¥h+)([%…¸¸ððÙ¦ü°ÜúÙa¢JË­}×Ó")gÛc@±øÐuû÷ƒ–Ž!O½:Í TíÉ/Ûþ†úúlÁ¬;Ѧ<ÿà¹>á?à.¨$6¹è¶•¨ß£™,EZKÅè»:¨-;Ï‹-z”½ÅµnYv)õ¦wãÒP’d%§ÛL– =áµÍ#®´4…ûŦb¶ÝŠ{®¯Þ¡­cRJ¸äûÉè7õýS¯endstream endobj 690 0 obj 1826 endobj 698 0 obj <> stream xœÕšMsÛ6†ïú8R™š%ÀÇ&NZ·ÉLÚ(ÓC¦š‚eÄâG2Žû#ò›‹I‰@JîÄmìmîb÷Ýwù96F|·?“töó_¥h%fZ;̰ºŒÚIŠ^.àO"Œ0F‹›YóQ‚h¢E:ûd¡öË·#ÛCèU^k¶D¢Šçı‡ºÖ×9ñ-&æÿ,~‡· ýîí\Ïv0•o¹XÎ,û”_óÅç2×qmê·Ÿ„P¸|á¹Ô¦E˜ÀË ªoË»ƒ~cñR 8[¢›¹ ”ÅX¥bjûçÀ”!!Ìp#ô~îFvzÔŠW ­ã†ÖÃË ‰¬¼6`;ø\q…wƒ^Œ#|ÇNz¯2þ=‰+žgí;õ#›çÔCÚœëŒFÖEèõ·ªœcˆ¦G¬8©x¶BE\Î/<aתº)óÅH$yÉô‡îiR{Ÿ“øÞ6…]lŽbûO4ì>­|ýílñâ“Ø2­ßýJv3‡v1±Xɲ„¡%IÉ p 7À§=Éû„=lwÿ®˜cÈJÞ4§6$V.ãK< ±•ÆÊoÔ­ø¾6Öæ@½ßéS\/ÍxÛxf[Zà}Ë3†®Kß íÜbïLPƒpÄ…û´C§ÊRRæˆg‚µ‡;Ä2§ìD»ëQ”êU,,¼â_yõ …rªtÞá0z€€šË³V@¸áþñ4ÆÔNM­Õß?ŽÖG胃 €´bPõÒ–{Ú#gi·zäÛ!äq­×—‚¥ùû2Î~ØÞ”e•¡ì>£PÞ—¬(ó„ é¼ä%“b%+!FÕ?5Dÿ@="ÐU^¼ÊSÙ³“‚‡éd_\²ïÛgƒtÇrÎ;³Ž7BAx¡ÛöMîyu‹ârU7Ço?˜”œNåiIø=¨à ”ì"/®²d]/õÀ…“äìÓ'°h›˜#Cv‡èƒŸ-9t…xŠáZƒ}£Ã@\ÿ Ÿ9‡ŒBµÕRfáÕR¦]7U*ÿ ÉëLM_RŒ_Ç¥–’ò½ŸX²j4î&DÃ3réwÉShy¦}jU9&€*‡‘¯knþÆÿ=;.X‰ÿwŽ•@s-}"é4Ûw죢 ’åêò åuUÔZ³‹T.NQk‡çxr¤ÝHïξS"”b+ÏáäŠçŸcÐе'ÙJ–qÆP2‚¦†Tï²ä˜ü5Ï*YG\–M%¹7c$x><‘W?×bS¢ô‚zÆräÍžŽ:BèÍqe?‰CëAÑV²RÉã»Êâª.šÔ=¹ŠÓE©g‡ ôbŽ¢k•àc…a ‹T&Š\pó åçµ¢MÈ®‹·ÕØ#'*Ø\9i,w#94Ò»&üíAþÖ$Br›—K”Å©I,xѽEû¸8 áv–œRÛñ‚ë"ŒÀia3¥ Vé1 ”;ÍcÖmR¾Uý²lš’#(XÓ¸z#¢½:=âéʇoÍÙ´JÈvµû'‹BÊ\n½5¹½æpMf´¸eàÛ« /_”=Ì ‚'©nº¦ö‘èÞPäEÕv®H–qcC~Ãg´Mú¥ÌƒRö1ãI¾d*Žo.BÄ2ùÄPÂ'mPZ(É!˜O»4ò(¿Œ“fåK"ëî~£9âr)䘓2{¯ùšWÝÒ”HARÊ’7«(¬6Q ³»R€„?`Nת³ß›¿=£©°Ç {4‘ÈÑ`¹…pBÚPDÆ™vHÛ öwHžÑaØ#ôº( "µÎTËhdÕéµr‚{££P•× ,¾Æ%âY¯Š6“Ø‚z­ Œ*§lÕŠ¦Ð{œf:Gk9—BoU"‹To•'4[øl®ž²Áã(å¨÷¡ï0Œ=ÔoýtÛKáñò×O|ZõšuÀ#£l€#X©žôº†ï\ž¡é“»óBî~­y—íÁ[mJn?šË¡`žÒ® 戵¶EÅÝÌbõÖŸ™IÆN}Õâº2¸Ýƒî>‡ “F2ÄSغ C–‰ì¨ü´ÈU߉<"l?™×HÔrÎÉÔN¼ytpø©ÁH6küÄ÷GËlÏÝö[ÿȧŽày#j#tYÆoìëoâ„07ÑM'É7;INŽ{ôˆÂ|#ó½ ¤¬¸»¸Ž…”ÊyÁZ© •»R냩ûqþˆAaö¹l›õ­xã=Þ+›yoå8í©ÀÛ) <¿tç»–KY%›ñ6¤0ýTù3™ Æa{…gõ¨kÎÖ=÷+^׆Sü<ö_þÈ`OÛ¨Ø)ÔüÕ.Ø*ÙÍÁžàÎdVvª—¼ºç¢1cÖùJíB¶¬d•†§BÕgÀèX<º_‹Qg¼¨×Í"ZaªÕ‰;ÒIs¶˜!¤¬ÔÌ<‹+†Äƒ¨Xª?ä1Ñ'ýˉªÁ'ßxj_AET· íìùVܰ÷!O3 ÿod¼äÇ‰Õ Ôž>xH½¸íw5ö tšiô mÿ“*ÈÈÝØ°ØvH¸ùþþâõbö§üþ²ó®™endstream endobj 699 0 obj 1925 endobj 703 0 obj <> stream xœÕšM“ÚF†ïüйE¤j‰fFš£×qÅIÙ©Ä&ÉÁ•ƒfA6H‰µ“_Ÿn}!˜Y!R|y÷ˆâ™îyûíÖ|&þˆÿ«ÇÉrðÃ;!%™eŸÌŸ´x›T“%¹ãG4%”’ñã ¼ŽɈŠŒ—ƒ?9‚÷Éû²Ü,ÉÓ…#ßC/Zï(<§,ðâèaHõHkª¼…ɆÁ¯VaýÕp‘¾~<x£ ÿ Çw@9eÕ/ %¾wpYü¼;x^n°!df]AS!,hæÃb¨À M|ðZÐnrŒCXëNxNÈxH‹¨rÏ 9’ ïkN²!€×CåÅÉ,#qB¦ë!õ½¨É‚/ø†½$¡¸ô’ì/S´µºs Hû=X’® ¢"ì<]»²Ý±«e»+ßå¨&~'qHÈ^È÷ÂI²ÍÃ:ÝäqâJö€]…Ù ¯û² Bîé¤Ùßl*) ´ðŠ[¸“– Ú—Vò2M¦q§I´(Ó‚«Bþlò ¢mÔï¨y“¦«f"\2ý §WÛ£V}±"í„Ô]ûdxn¢i!ÉQ2% Ú^šæN)f>l”sJ±H Ñ“ù]˜– ò5%˜‡ÅÙ3ø(u€—ÂË]µ‡_<âvñ zFšÑò›aE–LÒ©qìÝðÞÃÞ¼l[lƒÙzõ5Z®†¤d“Yã:Üζëì2`ŒŠó¥¸…Êhïôæ;¨q’›õ]’æf7À¾,lÇVéKÄÖ T+–Üè‘ê"©+DÆožòº”&2×f’ÇO°ïöü²<¯"õ$n~Ó ¸ä¡Y‡o¡pïðB zOïkšæ¹™¶÷B íßÅ-*ÁúPiäygV&ªHl__µSuÁq¦¶pÎùLÇ[p*j𨀸eת)¶Ï×-½é=éQÝZd²Me‚9õ"{“¡™¤·ÒÚZÃû†`¢ŒCK/©Mœ£Gm½ÚCÚÚÁ[1£¶¾N+7ë íÅÿ‹§ôÒ$ß0oÖD—kBViVôï.WÈ|ÿÜ®Ðîèd ¹cšX#³ã‘£éÇM–/Mâèè®ÛÂö‰ús(‹I„öLÝŸBëR:Ã-®bò`„©k‹:Ü™ú@ÇBwŘêàün·:míê˜×È `ïW‹8¯àªY¹SÆ(ã×¼+`φƒÖî*j±FHêE³z'Sî™bö„ž‰äóxÒÌi>‰º¹=ì®Êþ My9K[›,·Ý.ÞUí“mžøa´ +’UœOæßœ5<̇å&Z<’h2‰§ ŒAËÒ›êS¨_ºéHÀoslC•å¾Mšq০73Eï‚y»ŠÖ@>7õEÆ·ZKbmIè.ÄIÖdŸ’ } cÐÝ}v1ÐêÁ¸ZÅ[GGEjÈÛ´ŒX£r:Ô(Àb\òÀÝÔ^˜ ª/¶L$zfœíjZOò1mÌ¢|]ƒ7üBp8êHT0§IÔNDŸÃ'‹¹}1––^yJ åEIÞîP@%½T@m“§Û¤.ÐN…Ý·£&‚I…KnafUà>MÈ“Ìò9Žn“>@±KÄ­s"߇‰ú„¼œ§ë©cä_V/ûðqNÛÊo>ºÓT+»Á\– ë7 ‹]F8ÚÌði„ÍÎþj#ù ÔÆ*‰¡: 5Í4OvsU÷=‘‚Óº Nµ] ïÇKKŠ·JH6VÕ®+Ü V åºcBµ>oòvöÏ€ír•ùkžV#s·†ô Åìh²æ´E/¬°5‚E*÷9TõضãGfaÕù‘í©·Ðe¸0ÓU9k¶{ÙàœeÀ¾w'Úòôsò“IªÃ12”HÔ@(q…R8ÆNþEÂ×5v¢¾èA–ä·aˆzH©×‚°T,x–@ÃG’虹"lï“뉥Z·5¤ŸÞv¡‚~ÏÂ8ДϣQu&•±ÂGù1pxä§³¡uÒ¥¼ƒö ”=XiK6QcZú²,¸¸#B#rÖhë‹àÚÅbx$À,É¢ðÍŽ{qòÒíêshÜçméT=bÎäm”}ÞÔ§æ•Ç9ܽ)§p‹ÿ— Õ ·Ëày¤&cˆaFà‰Û§hzör`7:þè¸h…ØèDÉ T“…·•¨¨Œ¿«ý¾í˜í!Ší Axõ©8ʽxµ0µFæs³&ñzmf›ÏâŒÙ¬È_ŸSonV™ ƒÓ‰¦%–R¶ÅRïg—§õ7ðF•Ø( ·ß'üÀ«ñàwøÿª©¤"endstream endobj 704 0 obj 1876 endobj 708 0 obj <> stream xœÕšÉvÛ6†÷z ,Éžc•8Ë$M›ô´Mê¨í"邦`™ Eª$åÆ}úÞ ¢ hÊÑT{áÄ’-wøï¤¿‰7¦ÄÃÏök2}{F™U#ÌF¨~˜´_’9y9Á§HJ(%“ûQós”DŒD¡ “ùè£CÚ9Ç,"äÝ¢N‹¼"÷.÷ƞDžS”$-K5[fqIò¢VdæRxŒ†¾SËEåþ9ù_Gíë0FǾ‡¯6™Žœññ>ÜÉ_k@ þ´¯C©‡ßøœŽÃ€’ÊðûÏ!/U<'w¥Š?§ùŒ¤ùÁx<¼çH4ІHt$IÈ$U‰ó)©ŠÒ½ár,¥ÇœšTÙ²4 hèå)´#‹¼qt#÷y=Mk„£Ä%ó4Î4rš× ¾Í|`Ž„3OëZå5©Á$¦ë<ÿ”à( ‡ ÌºÎI yç3 L Ðü•ãX0¦ÁÙ·Ž{áxÛ3'2B~ÈÒª¯d£/Á"”ÎgKŒúÑÙQ ÿ ÿ@DNÈÛ|±¬ÛDôµHHÄdY[¹8gnÄ”l¦|c˜Ê1Tˆ_P#ï@C!Høô‚Kmƒã2{Áµ€P]×+„ÁÈùiªÛ¡dLŠa©°’}\Cc ªKáj¥ÜytY਒ÜAýËÒÜ¢šÁgKE2dƒôwz¯ã¤,ªŠ”ªª¡8Ö:f‰Ê§†ª2~|U5êº wq¬ûÊ'äE’¨ j›nG¢ÀѺ‰%¯SNá¤u\Nõ÷‘ÎÖŠIýÇuá$ࢠqQEþIëÝrU¤ÈÉ]ÿ«Ò©Yõå'‹?³¥?[¤:ɵš“iZªD7͆R€“.U­mlœF¶pW ”Â÷¥ÊRH'¬ÖKRøÒy2âÿN Êx»ÌÎ=H)iˆsO^ä7˜WjÚ†)&_•}zÙ©` njaf.z2 ¢ ÞYÜi$_@÷süù0ô¸”"šï¨fX /ÐxÕ­:Êä1ŸU8áUuìRÍÜÕ;2á{x ÎÇædĈv¹Yb†¾é‡"h4Ó›ºîGN‘×8!eé,ŸÃ@tå¬b7+äèë<ÉŠ "¸VMXs>7Ñ®vL’»1¹Žl†­Gvç\~m]ÚÕ÷Þ{ÀC×s[ÔqݸX³³Èêb^’Ö,8þ¤Ð½wìì8wŠªþtiŒºµ¨wñ³èRüf„ó=ÙA¯í¼* üd±Vh!˜ó¤û¦fâ¤~ØMœU(¨Y÷\Éá¹]ÜC£ ¢÷ÉÉžºßÊC'MªOîå§œm¶é샵ù·Ö&È £öšMª§,‹ït["Aé3›¤ì\1Gò f¶ù8¸ïÃ:‹m$?µÆàÑ@èØÎ} ؃ÏÙ*/š'f6£ÈÓJ¥i6ŽLâÏ$Õ¢Tñwt†"ÀšÌ1ü |¨ûïêU’e…{û¡nb5\<À¦ νÕbv«íE¢¯xdòÓhòÍG‡zc\¢ÀlÖÂ?ªnòhípOåÔù{ÎVΞÇï·äU¦î{TWß®ÂÈÚÕÓÝRDôôÛ+³nÈzR(/²ÅC|§ê{„,­jŒyœÇqÂøìçñÞz”µï½'3†y¼£;AÍàÖaM!¬_=ÄeœàiR7tDzÝ °±¹wÛå…½º]îúÕ£¬]¿‚pWxo°[LyÿódÞ0‡ÌYViÒš@Èm`9Ž]öβ²ÃÚ%ä_i¾2„ë{ÎN \ÏaP±ÁÞ…ÏPºÞ4{*×-p¥0ã‘Z¿-ê}‡^s}€´À‡¯äm$á–U ±mH@Rèâ¾(‹fÉÊáÁ²_·ÚO4¸;gGÇ4Ç—ÁN|$oô«¹kwÈp„ýZ<·£®Ø²ÆÂfÁ#ä;Õlg)ÈT¼ÌjÒÖUßwâli]cœbCÿÕ¼´ßä‹=—Vؾ…Äv›ûu¾ŒÍ¯8~#œç@¾çõ6žGéF{H>Î<&ú'<¦øŒ×“ѯðù­#!7endstream endobj 709 0 obj 1903 endobj 712 0 obj <> stream xœ•ZÍ’ã8r¾÷Sð¶([E“àÌ©=³í-Çöz<]ë=lû@I¨§)RMRS­—ð;L?©ó Tµvè $H$€D懿FIœF þäw|÷/¿”U=Ïï’èùÝ×w)±#ùÛ£}¤&u”–ÑãÓ;î—F6Oã2ªÊžçn'd•š¿MÝâ&X"0Ml\Ö ‰ûl~þø·ÏwÒ«lL7 ­›ÂìÆãéŒâd´Òœ¦ñyj¡ÉӨܪ2Ëåäf·,Ýð<¢‚q –0ÖzÜaTFt¨¸{è ÜÓìîeJ÷©åIíÜ<“26‹ó<3¾\f$‹•5³ûzvÃ&Uä¸ &^Vƒjs æ±w* ¶jû«ƒ½º³Ð©¶Öüv—b öBét¤ÃrPFQ ÖºÕ¢SnƧP>tχÐúë¹í»å²îÞ ‹Û‡öóÁ¹%ðý v—Ö—æÏïÿéïf<¹©]ê—Õ°Üf{Ñba&×îy˰VP^nº,@ÉÒü­ ó–¶BWúZË<îImsïæÝÔd¤-–K]3‘N“úA•‚9Ÿw‡Ð´ C^ë0[G«€óUçe‚-@uòÌ‚ÄÚÀ¨:“ªN{ çá"µUfw—q’ä•ù¶H5ŒãöÝ‚†´5¡ôrGg;/ nÛ.V‰¶Vç › ~ß/‡ñŒûÎ2éä13õ£f%Œ æºÉ†(yt e¿¢ÛKHGJ‰›Õèönb“²qeaö³”aá~?Ïp>l'©mÌýÓÔ¹aß_¾‡¡umN#X'ÕXXI/¸0û©}~ì ,Pn¥Ç„›‚y87l¤"‡µ(³‘•–[D´¡xd¡Þà›p/êª@uÙ‹É\Ã&µ—Ð,Qˆ™çd ðÄVüÐFhØ]p!ÊäIpÙ¢G<¶‹ÐYC.B;œo¤’dÅJp}¥Ó–D¥ç¦wí4¸}¬5à´ߴ݃UÂéÚI+Õr0x2%ÖÌ®×gñeéܘ+µ[¿.þ0¤|RE®‡A£ÓF8`¼|h™ÊÉj¨\¦f§ ¬BÈh¸efN°cÀUIºýÊÆí×2تvÄ­Ubfæ“ ,s>µDáË] SIÁU¯ô])Q’õ‚;Õ=Uûy\QÛÞ…AA]-8þäQpM~ƒóáò‰‡ù¶Üo[ÐÁOZ¶æ2ž…(,S†rù5`6ûs)rŸ¤\Ðr@¡‚Îxãy=Ÿ¥NXØŽMhÉ6I-2¿áÊä3B̚ψ0<€Ðžûn8Ó_~¸Å à/¦—nv8d‰ ÅhAGÍv5Ïi¦8έòõòÁaƒ$–:l àvcÓºˆ‹*ý?ll—©‡°t Ôªüòõ óÙǯ„e\ÍÿW6/#ÍKºŒ´uaÂâwdfrìï3U–+Xª«He½z°mE’Àf”WçŽëðàÍJÔ*Э ëçqZØåPD€ŸÆÝù.MjÒÆ|àÀ‡I0"F†Àÿ§üU2;O’uI[Z.74q-ãr»™Ì‰«Š§P—Y†øb8¡N‹úx‹%!Ϭ +„‹íi>÷-C]é¾^îea³Ó’Œbï|•æ²£6/â2‘-5÷î4ßî9Dý2)Rï(—~¾‹ƒBìðxP¹#IöþéÜ+mº§À ‹šÕþò"×"Z¾õsªc›fj0¦ëû3@Õµ‰ÐKD/PÑaË78´ÑÖ…ÐÐ *èØF{±ƒ§ú*Pón²VÝ1LP:åHAåZ¶890dš!üÖyY¹D"Þòܳ0yl«˜É¶ð¿îÒ4!xÝ0IB»T›Ã0AGˆQà8Cû¤@Í7Uðçn8»ñ}ŒZó bÁŽPHˆñºo÷}÷Å#&§ML÷ØMã€[€‡Šù•ùc;õV¼^¤YXp¸_ܤ’!ìÚ¾‡³pëÕl]ÅIæÝÕUr®)*æ¬ÉÑäíÝ«ä@SÆMžU*o:¬–¤ºÑm:‹gu†>x<î)܈ÍûÝ8 ßï Äp«™…ðï—‡O? ð?>Ip _U{Sî ¸›£ÒàR†PfS"mšdŽÃ(¦Q»åù[¶AíjƒPÈ+=+£›öó&ÈÅÂ)¢ÜYtZ`W÷6ïá<Ã|0bUYlùöDź0}üp_+§ wfª‰`yX³ÑšÚ;aB¬‘ý ª2ϹA+^á\ Ô*{÷K‡ÁÓ unþ‹ÛR Gœ®ýå0TO09¾n·VdI\LëvÏÝ@ø—:goA7j¬ZÊ3ØYè´æ\É_Ç,­#l#å…A»teT¡ÍXk8“GŸk£Y)"ñÓÛ’»ÃqžÆ)ꆇ‰Â.UXÎ(ïmÿ(°¾é$d%p·ô¦åSOîVƸ ÍÔ¹0É-j:M)åœÀäÌÉ i»]éû§qÆç'"aâï÷ÎmµejþÒÎÍ\[Bc!WJˆ‚èw5¬mdXnË™1,‚œ4UVZêV¨ñܱ¹öïûÓ¡Cׇåz|öÌ­}—ï\8xum%2?¥0éOQ.†|5^nˆ(íÞ3"7ѵ9q'¥^vÿðvF±¨ x3ÞE"ÏBÂy#UI‘×þù‹Ê¥Å‹b÷<ЪPûšðs9ÀbãÚù¢T*·4jF™}mE3è(éHÌ4È\>¹£;nõM/«MxKèsl¿xhïæ05X´@pæ›ËíªÑQˆ`2—Ë©ô\T{4ÖÊ$,œqáLè°)´Ï¡ªCkˆqs·íE >b'ó¶U©}$,¸ícw-¯®ülxr`Q7X¥4+%¼•…ªÙ-±JÍÌ_0Èöý%ð»páøºFÔ-O†ˆ°È¡25.‚Ã8Ãzn„N2EÜ*D×—zÕýmÔÎ2nߤ:ÍLx†“ªÊ„rvsgaþQCV*ZÀ ™\¦Ž›šAd™G?CsÀ°nï­äÉßÝ7~E_wÈnø1²Léù12ñô%xpí?Œç~/4œ1~ü’6ÍW ³u6‹T𣂾›”Y–á|H™=e8âÕøì “Ùê;mî¿#`•¬t™'ܶèQ$ð?ã–1x„e«’,äžÝÀÛŸïÄÑ­rb«ƒ9à˜plÌ`³$½IŽUo(…ð\Oµ³<{mc©E^ªÂìS{€‰]&íÇc‹`XEÓÉ|2…¡NBxÜIJ¥‹I¼ú¹éØ c?>_BNF+Õ Aòâç†ßbP:/¾q^äò³09…¶¾„^øP"£ÞA1ù Ð(ÔJ@™µ¦ðYÂP#Ö/Ô1"á —5à$;÷ý˜EÚÔX2R<²|Õ°µsn~¼VÄå¡ýUçÂ5z¬°µ/Ï0P¹(o-Z4x¨ìá™FKi¥ÑÉÒËX[W´ê©¼@^tL¼¨ã»r^îqœUl¡ Sôòº@ÐýœJòûG?C :%*Wl:Z=ð¶Ç\ú7|š"¿ãt‰Àކõ4|¦®í©)ã.F[öÙˆ®ú/R-¯âTÎ5 ‚D‘ûŒ³ÒŸÍ%ñ¸q®Ö¦˜R›¯wt_¡Vü|Ke‹OàÁ韻"0™]Ûÿz­2Ìxñ³>ßÉ}e(;IòÞ$¼5Úa–b$(—xS:9¾ [S7L•×hê |ÔÔwdXGß„xíâPû¯.=?s'ç6AÈÂ!Œ±r¨ßPùU¾QØ;@¯½ŸP¾¾ƒÝ|)ÙŠ€%ù6BëÎO]41•Þvc¿JŸ+h þšª ‡’¥‚K¾Æþ¦]›«†ŠTˆ•QŽkZÊW,4"{BÅnØ;2¿Å¾þ£@ ã_‹oùó½_oz¨zßä¼úL„ņS»:ÿƒ4Èr6º‚¿¼iµ:ãÈãps••˜¯”â+$ó,tµëïwH.`žºðçËq;öeWòÍŸ«µ ‡±Ñ§8k5ÔMœês…ùç[PYÒÄ¿×g±ÃdÁ“ÌNßë3̈¬Vie× jëšr3âÏ™ØõÝî ÃDªCû‘Rµ¿dU§ø>ª}Ùip3ü|ŠmŸX˜ÌÕ\!×4„s© wŽðξh¥'ò´Ó‰¼¬ªâªÔõhwÓ]^ð­?±©0«Þî_'ôš8·áYhÔy9À=X–1­®>{8ŸN`:s„ëp |‚yÕg•KÙ]ÿ¸Ž¹f”qôwF€hÑ㽄Ú[á“WŸ¡Ö7×Ì„òØúÙ¡vª„ÐÿûÞ1xkpÎýò=ðÆÝî¬.ªÎÀ?Lú6ªuŒ¨Xè#•z 之jRš£kmj3Íã“/ýY«2þð•ªåYÇ©ŒÿVûË¥]Ø^%…oסƒ4KËðàIžd ÂÙäK€ÂÄ0'd©¥­í/ÚÔÞÞ©Jºwµ=xû¡ÅO[¯>PˆµIzõ5UèÁçÞ·§çp“oD<ÔÝŠ`¾€>…Ò È÷´"h…®£ôRå°gêOÛ¹€r`%#´,²s¸6¡eñ;;˜?îþÿçWùl.kbü&Ât‰µ±ÍýwC&.RôˆwhôÁwž3R0}6) úÇÇwÿ ¿ÿõ·endstream endobj 713 0 obj 4472 endobj 727 0 obj <> stream xœZÍ’ã¶¾ÏSðf*¥eÄ2>ÙUqeSI9?ãÊ!›‡‚$z)R&©ŒÂï°û¤é_Ôh¶R³µƒ  »Ñý¡9¿»(vø#¿ÛóÃïÿQ”epœvÁñá—‡˜†ùÕžƒï‘¥Êƒ8àƒë ;C¦¥ùHž\eh†à0çàÜ ü×µ `Øà#¿Ì€ƒ§æ|'ø°¹{=²ªŽ’ʆj¼—xA¨»€` &†¨ ²¾¸N½D—¤nhwn¦r/ˆ©Þ½Ð.¾LÙˆ5»žÅîŒGŽ#ï§\3./CöÕÑóuîÚÈÑ?Xïxåöâoeî;\eYŽkPLFâ_lìëÌeµ¥£˜ÆÙNLWñ»ŠÌ“•«3òÀs·gïc’ï´A¹xéuZZ®†ô¼:ö…u‘a7h×§ÞÄhûu0Õ3áÞÈ7’\ëk¿X¶G™·ÁɨŠ$¼.àÏ` mðZˆ×ýKð䩎f<½€‹Í\ó2uÿú¢W¯"ÄÚeÿ9R†/0ƒ°KôBfbhÅÌ<ßýx|‘N „*ˆv>–@„ñ­¥ºE›µ?c¾Bèº_ Œœ Ù-xÍT0‡nàdœ˜'3˜ß<±h1eœL³'‹ð. ô™Ï<7p¸{`°:ÆE@z°A蹂²uî Ú­ª Õœ»¾k&*)×*ÇTF¾wó¯³q{&Oø~ê–nVpnD^³Ê¨$ ÉDØ­™ÿàè'PFÇ8Ž}Sou:DçsGL8öS‚m»³¥‹°Æ¥=™ekýó—«xvV¬pÎ&Å΢·.…lwЄÏf–Ö÷Äð»Í7„ëTpy XøqÿiΛǟWH9)Áè13pvMÓ@EŠÁƒš1$”S×~T2•¼®” N¡| Ž‘ÊebÑÏ#á[š‘e< b:^º¥ã3‘ÊdçdV‰ùÊZÓìÖ'Ë=ŸÆiqkälü­ N‡ƒ·»X û”×Uð]udšöàìàÄæ‰!´}‚Êöâ9…g/Y`yÞĨðýщF,L¡7»yØV;¡‡­Ö~2ŽçÒ7/vULPÔÎ÷Vcô¬:è‹*ÙÎ|üÞBü² ’YëX2+æˆ`y¶Hf Þ8H0ð( |y›iH®»oñ8Š“ª¾kq‰ áGV)D0³¼r‚4ŠjWû^òèª6Ãȶ¡@òl}f•h4¤¡’ŒÌœF“· ¨Ó­#äË0’1ð‰÷‹JŽÝþ`NßÉÉÎä5]ÆÆ5{Å™€ÙŽË ÷}R¢ÆÓÔ´mú7v¹Z^z²§›˜Ï^QÀö/5E'xs¤€$:!>æE'¯ÞÖ 3H•¶¦~$KÉÂÜÞw~Àε‚CêPî9)…(ìµ9œg¿~€ð€ä,‡ñêæ|}ãe8C*Ý…[$5^ÞI<4Éb GófþI¢ØD=µmÌ Šñ k7¯=»ŠÊzŽÊœy#Íw”ÿy$2}ÔA[! v}¹˜fR1)¢åÙ˜Ag—œ¾uëtvv¶Z L‡a•zJØè`!}é=öuLÔíPòÈ~¼à•#ŸÌw ÔÚù$!iGÓx=ž8,—{1ô ­å†x Þ ;;ÐmU —;ã;è@òÛ•ÕÊI^Sç·~M1‘påØDa>²RN(âwË¥ŽM÷«=Nì¨mx·_‡½?¤é[EÃ#mîæEj 5Õèí!Ó»!DVm7µ½qЙK µ¼ûqñº %¤”RíbÖoá¦N wPæ½+'±Õ(@ €yx|Þ!5TYµ¾pe!Fð½&¢Ô‚"Q¶ ‰T¢åE²³ªîÛ~ßa¡‘Þ&ȰãÛ3¯XT’…ÓÛAsV6e´<ƒ7™FrS¬¬˜+hm³•{Ëku‹Ç; K£t—{D0\|·г£à»@Á!¾û|ß̉{`D¶…Iг_ÇEæ¥{Ž[ª^Ì#ÌÔhÖÂáŸÌЄ ïDz¢LW7©ÎÈy¥P 8ÁM}ƒºÓL3µPTÒ¡ <{çvêžT ºd°(›½…Ä’yËW.p±tH¿O£JX?´i2_ij¹Aݎ뤼oÞ'û”Û¦w,X¨‹ÜÖ~âgù¦ÀgX’Q)PNÀz*²õ¤.Á*¶AP#Um]|¦€ ¦xž¢8îO5c q?In…_烊DÐíL »õ½ ŒU¨®Õ¹Ä]Šcè,77KðbÛgÀˆSvW©·ufÏ6ºpï'«Yú0@*ÐrÛÌtÕ)eoØôp]†+¨ßÛ‚¤ꞦTuœ¬Tˆ†ò”¸KþŸ<G™(”ýɼz’Ñ¡AfšslÁ&à2ùL—R9e¾œã $!‰î×qX(èѸ-Ré\|GP;êXמtN3N.››fÙü99ü‰IÖ´¤Ôd½+oÔNK%TglºÁÛ×o>;|‰Àá$ 7ìj€iå­7`/ÖÁ" o*~TÏÒQr%äV7Drd"àög³tgãÔÖ‘œ|hÙüH¥ÍIÓR$HuFsO ]ÌÔ^gtk·% óíG«÷ÈP¥ô‰kØH%xï!£·üøÓ.‰ÆÄ –¹‰Æ*äóý°ðE9ø¡AëZó±Œ,”¶·VE'¿â{Çö„õ%ç/‘.þÉ‹ w«RÓ&Û…[Ë¿Z]*ðª,¶Í¦?Ø"UÓ¶æØ÷qà¯øRÙ¼Ã×^ þÿ%€üôe{(¤9#8}K]E¿‚R€ìz¾¡]£[´Žpm2ˆ-6h˜×e¬Á¿† vçÕÃi»AàR™Tª°]&¢ðõ·t”­XBe}sGð] ‹PN^ßôÖTtšN/⎞.׋‹µ ÆZI¹t%í=~´9îIáñ‚TüÒâÖöÎ’Ñ‘O¦Ùoº¦]ÝÛð´ŹàPùåÎz]ýJeÃÙé垥Ò$ʪü¦vQFI!Ÿæ  ¾¨AèRÏ£úQG¤¶¾uœø…iêf©d Ÿ´”Èå33ŸÇIGò7öžp)-° ù„àF±p`”,OøKÚòù„‰Þ–w'¦VÉ«Ò êf_Ô†ÃmÀVßÁ±4ô%¢£@>eøÝXŠXèmiùyH Bsõd¨Š)'À*ûv½†Ìó¼û“b˜5àÍò(‹UÞ.vô¥V>8'¯B,v'±M¡è±@Rðòhyƒx•Oî#Riì­ŸyP$úšd’bµê7|ÀSiHÖkÜb·ðVY0;mÝ>nw¸ÒŠ%kÑ:ƒ÷çx¢ºÁ¥ …@›’4 qõ”*ªž*Ó|Ž‘²ÕVÀª›™g7Ë~¿BzǬÜÄÏýËÔµó×Óé\x¹‡…Ê+"X¬*ŒœÍù’—UÄà ØÃ&2œ\Ò‚ÍR—zÔe¼`"… 3`ý›‡ª þ+SI%™½]a"É­¼ŒŠÂF¤÷ð”ßd™XsÏš|ãZò‡Ÿÿ8¨R endstream endobj 728 0 obj 3385 endobj 731 0 obj <> stream xœ­ZÛŽ#·}Ÿ¯è7SÁ¨§É¾ȃmØÈ&ëØ±Ç0‚Ý<ô´(©³­n¹/«‘ÿ!ûöOø÷RUd‘-iÖŒ`±/Åb±.§Øú)ˆBDøÏþ­wßeyìÆ»(ØÝýt'i8°êCðù#M)™Û;³N*–¡ŠŠ Ï’àñp'T¼êÆ©jÛ¦Ûß~ýãêñ߸°H)qáZ¦%­X«ï\+Cb|ÈXWÎHèÞòÅißÔ{Ká]Ü#‘ûŒ›âܽŸIê`â%!•J+$2Æ${%hœÂI¢ò#’4ör’BÁEÀM2¯Pss˜^e”tÕd¨¨,¸˜LŸ,ý…‡sHœºc*ub+:牰 Žâé침Bý%a&·Jy‰çQÜ·ë÷PÉðHF#‹¤Ã ÕÙϹÀU·Òc ×Û¹]l×»Ý({:²c_V¤PRqe9f"Ø´Ž#ÄTÉÇt€oUMs3‹ qT‰ˆs½¦{ …¥ÕýñÞSš«‡çcËžK,¢ìÀ0A Tk¹“¼î^ …LA ±Ê©‚ƒz^ ¤Ü´ßolÛ†8íàM—Ä»¿až2¤)T8Sêy@´{¼@nfò<ÎUû°„ Tì÷a7+ „R"¸ºÎAÛe\2º¤®Ó’P‘&Ì’åFtËNÅ!ÇÛ€qß§†á"£@YÙeB©7Á2B‹ð„ß6 ½†äÛº¿A½×õ;G±ž?–b3\È .ĘÁ¬—@€k§“ÒˆñH_kºŒÃT&Ò@©C/à.ýt«¸•¬à¹KÎT,°Ìú8Ž(6 ŸN(«Ó×âs–²äFÄ^æ æÁ¤Y‡•.=EТ„yËÝœT/§ÈÔaÄËÃ<my÷æ•&‰ò°Ê‡ÔÛ$‚ºÌ)µ½ÚÚ6¸Ò¯…NÎ9*,»©;&Í™fìÜË.Q&’>w…,%x¾ÆÄHCÛ‘ž2hÛË]ëªcª„£®›íÙwT~â¦Ù:ö[=h'#xÅ/á><ÿêdí;¬GBd ƒ¯(lK ÅìØÐêy®Çö veÐK ÖkØtÛ<ÿÙß Áò›7´[ÜE@g5"tî¤]©KÇY„%œ(xÛ·í²|6;_߉ߌK–‹óyjº—¤ƒ(U”IÉñ£]¥í̋ߤ4Óð PåÐäßn0²ò«{€ÿÒ”) f¦L„òç›礸}@11LÁ/°þ×àXí´QÓF5$6m´Âý‘*:PÌ@ï—€Þ¢¨Ds'¬Q”†?ˆý¿D÷€˜ã ̬å~øöû½)该.½×*ëÇé{ð8fÕV® Ÿ§ã<]Ê õH¨ã¸…ä9>àa1ÃDØÖ_ÏcS‡ÇmõB(Ã4r ¦xT¦T¼›À‡DZÂ…îA b¢?‹íƒM¸/P¥- Eäg Æôˆf§ ºÕÕè6ÊØBì7j¦E{Á¢²ØÛJïâƒBœ:K¥£@Á@÷]m²õmi’Âæ\tR×5ÏÂÂ=û€9zhpeC ¹&Paÿ/ð³ö¸áò L’¥º¸<Sª:Û•Vó3=y8u—E3Ü]Ùµû%§ ®ž©‡`gƒ{±»±o^‰4ï–¸“g÷R‚¥‰¯¦FyöTîR­–óÔ©ù튭þ˜’QŽƒ \·jµÙòÂ' Ñæ›6¡hY”¼f´äÒ„&¤Ëê z•ÛÓÓìD˜ý=C‹½íè®qaü½ÌÌSզĴ|OÍfÚ/Ö"â5ê¹Îûï̇ HÌz`$^Ò‡¦ƒPt``ƒæ·ôöØŒ…ø%}CtÔmÌÇìñG=1·Â¸8­Ë.í€&礉‘É a¦ò…¸ÓóݵsÆQi™/åq•"p¬ßô¸þ®ÇW¾ë‹Ì¢ÐaÁ·+/‘­ÌÞÇB§3EhV””†bÈhƒ´³¼7â›Î<\*ò-/D¤+Oie_>Š*òWšºw|–< ™é–ˆ~í‹.\¥©o¹y”Ì ÞW'”8ýô*HG+ÄNwz¨&Þâ÷òrY ~ï$i›î8OŽB¿·ïxq ¶)½mb±™¨Œ.…“ùÆvæƒ6A p#9uzŒmTú¤¡ª8†·qJðÖÎøËbÜ~“„æâ~zá.ÍËŠç ΠY†ØBT;h *ø¹¤!äIG*Š;$¿Á½oôBTËÚ }G`à·ê;ßæûöAköC¤*™K#&eìJ)¤lÁƒ³ C CÕí´íÈJëø4s„DzÕMŸË&=гsÛ]ýF)}È0ýøjÇßhÞã{gÕ´æ•™·]È@0øHÅz1Ü//´ “Rl' ùPK—E§*³½õ+"„nì×$O]G³¤yïGBºã2ó݇RûÝû%èÜ,{üÌ— ñÌ[&ÎÌbò¤{¿¼üL[Í8q­îxØé׺ct¨î­°Yލœši*ñ®3GFž›s•gf¤V7ІdùÁ¼ÀÐç!tÔ—ÏßÚ3ÓüJDx¿‰…fê~iDËkçú éÓ /3‡ï½~ꓞNôZh:øWcè9¼ò3¯}^|§)_á÷âþn£ü0צ95mØä¥Ïüîúy·öpAP3ôPĘbÒóÒ*‚ø`PlCŽ÷øSŽØ< p,P¡ ^uõJE AÔ{0 £wMÌhD%˜nj«Kcls¹GóÇg|4@lÃLfž"ÉUˆ(–Éþ£V–‡å¢èX[רĪGœôR2Ïü{)ìÌ>Rp‹e¯³ ¥yü;I0 sÿœær ³l›½IŠ6™y&§4„©Vl³sMr¿›Z#Áš<çCÉBT0åúæð0¢ÊÈARãü–¿Ã,IUG¹È¨þ·qÁ?ÓQªÌWl@º DTùmû£±Ép-\l¢RÒ·:»Kî@±á…)hô+­ãó¨­> stream xœ•Zm“Û¶þ~¿ß uN8‚ß’ég¦iÒÖ‰[ß´Óñu:”DXK¢BR>«ÿ¡þÉ/íîbPÒűãxÌÅËb±X<ûý$¥E‚øßåîæîoyQˆÇá&7?ÝhêüÏr'¾¹Ç!e&´÷ë7O‹"E^ŠûÝÍ[9nšÙÜæ‰2™–Ýq<G¦ ùqÛ ž(e݇‘¹ÜÖýLªªŠ\>6½ï(åâÄßy%ëE¸e©4ÉÿlòçH¯;?/—M½Üx"“Ý:tLäKåø4Ó‰J´Me—YwûqP‘þ~gœºcìXM&í»‰d»v¿Š]ã¦fÿºÿÓNÅý_nî÷VÓVU%ìï}øjúMS¯nð?H*šzh›aõáÐw°%1vb¬ß‘ÔIs1Æs+…6x(i¥J¿LªRñ÷¶™é †+ŸÚý£xýêÂŒèö´Ê°ì›fï9Åã­¼½ÀŽÊpGª•5i g¿º‘ÜtÃøfÙ·‡qvÿŸ3Y®Ê2«ÜÀ·v±m—õØvûÙÜTFY8›e+Mü>ÍŠ©¬cç{rù¶”¢ÖÒT>q³-%l,Ž÷¦çæ”2.™K·_ågZùràoSɧf»<ëa"¦‰ 8™¥WYЌɵ*+¯™ÇáR!sk•êBÌÑP'Ën·«÷«[àœf Æeðf8²pׄXuèv2r݃¥Î´5?`¢â[3ç>nü+÷õ®ñ ™á¸ÜÄ¡õp½)­Už•þñ¼ñÐp+[À\ZŽ5ª„{Àj¸e-†¹2&I"Ã÷ÁDóg˜¡`UW¶¿UW*)ŒWÿûKõõ1¥}†ÕÓ¦% ·¹Õ¹*à6…:ÔËwõ#ª=)T™x;@"­ÐJ{O•²ÝM¿†ë)ëe˜Q¢ñ^Ij@©ùg\¡LUÖj/s»g®#ÍÀ:Úî8p›–»®÷Ëj²¾ãØž¢|O³ Î,·0ñ„ç´ò` ô”˜y``À4;ã Ï÷lê™FV  ‚Åþn?%ÖNµº,TžØ¨ZÐäãÒ¬PiYÀ憱Þn›•â¶BË‚2q!¸ÁG?Òa†‘Ëå¦Y¾ód†böqú^ÂfÁ2ÁZÆPèÏ:SÖÐE1×U;¶õ `Ö7UÎ\ˆCk‚<ÍrD„ó]±˜\î] ©0Ÿ‚ˆTH —V™Ò ¢|…§œ»U‘¼w¸B$€`ˆ ºýÀ„ǃ)¦ŠŠÌÏ ‹2«°P™ñfâ€FÆ;Øñ¹Ðc^)Ø_¸Ú«¶•tý) ‰ŽÛKâôÈ‹O¶] ÖǾ]ÌRôåpA~ç…ü6èœcf£Šjbˆ|,`>êÝaÛÜŠzŽ;t—`O¬xŸ[;ùÎë‹mÁŠÊü³0H †Lÿ+7¾0žß\#š¢Ç ÇN<ÅT³ëT{w-‰V‡k—{ sß‚´Vƒfr¾ÁÔüY¥y„wDÑÐ'`ÀdÌ«î¿u?†Q;P˜ò”¡  ÍféxX¶(·*8çì¨OÖäz™D<ËfpA5•¶t³ü\0‚_fp >¢Ð6øâBE'3o÷ËíqÕ¬5aBÁxåk0bÓÖûo8œ9ªsnÓB™*‹öBg¶m÷èhl·bèÈ8°‚PT` ç»k8\QÃçÁE›ÛœD·¦ñ}³åXöã}?Rˆ¶ƒÍ.Ç¢=N; I3« X\HŠDj\HÊß.$EâÛ#-ÈñêFuÁŬ¿P_Ze¹)ü$¶f/‚–¨¢(Ó•§3ðºÍ>îƒÏ›NØ ÊXî A3Îñ3¬4rÙ³Gú½ºs°m2Þo»…Kî·³oš‚_V© –Ô¾!LZ4þÛ·+OYÜT:=j!a2ù:®Ì2Içì±.ùˆëÔ°hÖ] l'\Ø#â¸à…âºud耓c—C˜è÷lÔ©Ä{JBN‚3¥²02ÞU‡àr•N Í8Ä`º²{·úæßßþøÃýë—÷ß]j¿HUîU/À2 F$!µæî¸ïé¦TZcØS/¦é¢EŸJàýÕ•°aØÈA´ùpèúQLÄùýÝqèï¶Ý²ÞÞ PüÝa÷tw܉|U¿ë8!‹ï3ÄXÓàƒvSA6HQ§VIe]bè(ˆ~vxbD€¢»ëˆ‚£¶Òä®ç'X¾>nåðÌsî™—NŒK¸ãÐCˆêYdʇÜ[¢ï[4ËšPÃ5˜óÁpÜ£c^e"~>?wI¯¿¬{JWŸ•c²•Áͦ°ºcÊú4 ¾MéöãäÀÀ6o8 ê`9Êw§òåÞOKÞB´¾‡dÉaœÖ±, c'ÉÓƒ©ö᪘Êá´[t[Ò!ü{çgéÂêñs8¶#Úsœ¸öh‹ê™Fpsm èè1¯³·*¤/cˆ–¿bÎÆª$-õu$–sާx=XÛEnu+‡Mwôðg3²¨½kAÃCûböAvLͨ–®÷üÒp *Nó)@Î)€# žïöq¿Š=ÝqŒòM2; ÷Ò!ê »l›A\¦¨¶‚x$©>#HæC˜0X÷‘ „Lí88.'Ñ÷{‡™ 4n·Y]•eØw>^e…¦~b¾ù HúÕS–  Îö.Á†“hGš5ì„îwÁµl00õtÌL¦Òpút5)nÃ×>nFp'('õ§1\…ã¬äÜñØ‹ù >å7îàvÎ_n›Z<< /)è¿ ÓOè3νøìµ^!ˆ«ÃšÖ{ñÅË…é®äwa\Ó2Œ’«zµj)öMÚÝg"¬ñ+¢ àØ®ßiìUv>x&쾍ۻ$ûò;éEK v’LЙ{²b¬r¢åûù¾ÌÁ>I†Ž,؃³Ì.Ú }qŽsY¤ƒ ã*oZ屈† ॰k6Élb]=d?îêƒú㛫{‡ñpVúòXt=b¶îŽ”iº0íb•òsʹS½JB6îéuâšêTc½ÝÈh`âAžÛÃL|ý<œe­Ö–ªÔ˜On·×¨…êÍËâ3¶¨TÙå£z˜7WZx!ç„‘h>?2—?c(íý£ÛË/~j%ƒ¼‰K˜å¢‰ è<âÊo.+'UpoýÐ'Á?Ǥ¤é;ª íõ—¯‰i&©þ›ò‰Á-}!;Sgçž ìäïEãWMeßÌ9¹²”tV‹¦Òô2… .e#)±b\ïWÿ¶”na=ůÇunK9¤9^^ãÑžçŽý¸mS‡òã4‰¸o¦“>µ”9ñ¢péÛeóìfry<¬ê±YņiÙ¡â̳²…Àê\4òwXÒ„x\L^@qè'Å7|HÙžD,á?÷¶_VxÝÓ‘ã«U·àòH–°™˜›`Fù1ºw3HëßC–€’.êžj‰Ãu ~ß`\hIšÄ¢f¸UA q·Ü…éßèÞeʳØjàdh´„u}‡tëóŒpøEsÿ.A³¬/ÂòP¸K}½„<ÚÏ@à§ â\]Ti¹9 u/&ÑתÀõ Eލ¦e³óº=·Á!ºåñ¯)Ö@é»ä:µOÊb®³ôÏOŽXèzŒe¶§ÈŠ^+g’ÚUdÜ òmèn˜ïéÇÖ=²Ruµ&Œ©Ïx²P“ŠFhéóP @û¢· ­2+ïg½ŽÑ\¸µf{`*­øB»¾*<¹!™¡_ŽX5u Æ¿V¡Ïž =‹Ü¿½¸ñg9ý§ºôœg,šø½ëVíGz÷ò§(yô]ÜàBjO95ÄÕ › °ÅÈ –Þ´”æa¦˜]!ÈÓwQy'Í=ÁÄi^D—z¹GH;l&y;7—Ÿºx̤ëã·»xD˜póH031œVAÔubYÿJEo‡}‹…­8O™¥ô§ÌQo,?H£Ò@¢¥ÇW"€{pz C·u›©ÀJÝsÙ …ÝØ¸¼‚Á¨JáŒøADp}p V Àß㈩êý:\4y¥JƒNHjû™ÉQ‹`IW°hR€…ðó…jv6ˆÔüC‹$U:¿‰) ¶ÒâUK/ ‡“`gï?‰¼oÆáçGk’#ÐXú„J'n±ñ]—hðÓwŸÿÉ 2g°êXsžâœ-ª“$öº–žˆdeç0ðWÆeˆ«æ6¬§Ôíäq*ìÝ'ÄÕ·ˆL"–™³öß—.‹;r,?îÛî+Ê7§ìÜl}önâFd—Ø­Uæ P»ßN8é•Ûêðí”…›ö Ži¯†~% ŒKS0DžL¤½LªáPUšøß£|ïêÅþ7X2}˜áŒ?Üßüþü¼T5Åendstream endobj 739 0 obj 3738 endobj 743 0 obj <> stream xœ•ZÍ’Û6¾ÏSà’ gKâ’àrÊu*Ùš]O*µï#R#Æ©”dz‘wØ<éö/@Ér6ñÌF£ñu7 _LÆ&Â?ùs¸ùë?ó¢0ÓMdo~¹‰©ÛÈ›ƒùòYÊÌı¹ßÞð¸ØÖyiî7?Ç¡ëçiu»¶U&YÔ}#D´Ý¼kGí šn:îëg¥mÐó®ëutžÃè{»[›…Q\”Á»Û8 «2+ƒVû« ÇaœBmȃû]{ûïûoAç"NEg›Æaf+Ðû¾u×ýp[¤"+‚§®i7»zœd_hž‡±ÍtÌpœ»¡÷:N§ãql§©¤--X§Eœ¦Ö¯bØúïY\'QæYjÖ±Å9HƒºÔ›¹Å5ÝÿL›Sê* P(1÷ßÝÜÿå§À†IhÍ7õq2]o¦¹¾ÑNy¼k?\L\†0Ž}=Ú¹; îI bò"¸ûþG%²`8ÍÇÓ,t‘2–©î_Ûxö'Øa¡`oA¨ˆPÍót½ç ;)Ašãn¤Ë FgÒ¡-y@dí’AÅ6xÚu¹åIR†iÿÉ-/Â(-uŒ_u‚»© .Ò`xÓ( ÓªÒüÉyìv‘Ãü™øI!>Dš³OÈ7ªäÇ\7‰ö§ÁÒGD¸}§³&eà¾Á|“ßlíþù4Í:² j/ù8ûö }…l­Žsœ°m›±ÅMàY*u‹Ïý¼êçhv»©>àÆGIçeðë^‰¢cÌ´¥BG¥«`3Œc»™÷Ï·9ºB„ÒWåÁ«­|—ryP©Gö0ˆb8' š±~B‹ÌÄ1š<‚¯Ôí¾ë¯œ%XŠs7¡5Ñ¡oV^ÝÈ*‹ÏœÛsÔ£* N掬¬^0Þ Óüz3vÇ™]ÏEh«Ì»,ƒf¨@'ÀS³Àa„‡inëÆ [SOK€1è4†ÍdÂ{¡é8‚cNæCVI˜TvyºÈhö÷— Ë$ÎyL𺭼Ckç€ A.q ÷P†·„Çž£[ž_ƒ·, ó4x#bag¤³„w¿m~oÂ.ð†T’^›ð¼ ¨©qÀú:¾yW»‰ÁÁØÒeð¼¿ñ·˽ðR&IJ:c¨÷ºŽøc°z!Œ:e7]Ö…!råVaƒ(úL°Á ."иÂs&6¸+YÀµÄ¥a)ˆ˜‹Cº1¤Ï!†t_E ÑŽCøÎ¦ûb0FÀ¶òf~zîÖÄŒd €h"­¸V݂Ɍa€ çD&ŒÊ·@×yð¥ GÀ(ð „H‰ã2ÄÈAÆ“šÐI•%CFÚ4yå6LÍýÜÕû®ž`fÖ5¼å†wš}‚ðóÿIQ~ÜÑî&ƒvÐÍò]Å|Z½_Ÿç9Oöâe-‰RfËD‰+ˆ4Å‹²`;X²¤ íWˆH@UÅ¡i6åøú¥r$()ô¢¨¢ ïTpˆÆTRßÓ˜ ö“dŒÐ·÷m=i?ä©¥G }ûš3)Rh’³´6TÕ¡¿©üâåÝwnðÒô— 7„»ÜFÅÒö2»G+±cU†eáÍÈ–K-ˆ%x‘ç@*™†öq<`Š-CßT>oö§†‚¬Åìƒ{ —ì¬Ü`qIe>´u¯üTÓÕnžr©^É{¨6"÷” Šg pŽ9}·A<^§gå4 $ ‡0FÒÌÌ’‹LÝZ¡*ª2´ƒ5Ê´•)^`‰»­ â#“Ìe×öÀ'̋윶"ÌRwÄÅ躜Üëu}£ö¥7ðjÕ+¢4´qîÝâ¡›õ‘¶)Cê>! fh!HD˜·ÌB$.¯Ëóó8¼•SϤv<C£òãk±K»¾Z.‚§êÆ"ŠWOŠWWòÕ5Q7NöcéâÄFS#õj¼vSÛ@èßÔìmjs[F°±Å!å1‰ñ˜fp¢kÑÆ?ä†b2†?ÐØ0öaøª!Žõë;ÌÛ¼<‰aW*o•ˆ8f¡r°RAC"†Z´ü7mqA5®ÀåU5ñr Ÿgw8ºÈÕ(EÀÈ•Ÿ…h<¨çž§™JBj(õù `üꇻ×BåkÄAZ$óhåç—„%ûì‰ÓÑ¢-Ͱhß¹á˜Ñæá>±©÷{Ƭ’€›[‡BK…ŽLņ0!þ(àP‚apI/XhüïlÍÝÎG)lðøö·ß‡”âãr'…nö§0凞¯2‰ºR§q¤•‚ ã|îÊÊåÝ+øC‘Úܽ4¦n]¼@0þà©! cÈ®Ýݛ˗eVÌ&<Å·¾+mÐ#¢Ã2ÇwlD‚Üê ÅGr—ǶoGÈàÔiÈU;87dUÙ¹ X“Â2Ì 3ù5àMÿr…i†upñNÍ4¾šõ»Ð[&ð­÷G@¸I{äRE³‚Øs™C·†å2^æ ß&•J¾Ç¤ï<Ø5%p:‰¤ÐÂy6¿úÌ‚÷/›w\¿a’ÕoÚмÚ<=fWs‰ö@wÊVPú€y‚àk†Í0&#ïØÕÏã[øÅû!€Ø cÜ]ÛÝW…ð7ƒÒ°3ÃÖ×~Йe±-ϯÞÚ!fWdò"äz””<“±XôÀ¼ÍjWŽyË?ØÁ7Íœü„_¡Hª\61ãòÞpü+:ªeXEü&âD5f2—‚L ߟÇîn\§™X­¼ˆHZ·"Pã3ŠÞŠðL¹U’… ”…J8uÆgÕ(óÓØTaŽ YTµpªZ4)dÃt§µXóß[z5&™ñ¹œy8z>)ÿÖ6.ðwHîÇCm½ÙQÁ€7OÜÑðW~„ƒzƒ*èÏxyEâl`ABI>ùäËö±ë_¼ïæ×íø®?3ýÃ1Ð;QcÓm|QzM ¸ïöSä{Ñ7^ÆÅØšæKèÙ00(ÜB`´©ûMÉ&øJ!’GVH' 𡼠,àŒxqóøû2‰úendstream endobj 744 0 obj 3586 endobj 747 0 obj <> stream xœ•WÍ’Û6 ¾û)xÙ)Ýñ*"©ßÜÚN§³¶³MœÉ!ÉA+S¶YtD*®_"ïÐ’·ÈR¤„1²mVÓ=FrNò¬ Ûãê ÝäúV¤Y”äôãš§´êF¿“Û?Gg‚¶Ú­EAÍ|5IèN6ë2*‹2/i5v&\9UZŸ×,Žb–%T ;w”&´í½€”ö´GqÌ9=‡Ý{¥ÍËzhO³À”ž†¶7rÐÑlø],¾¨1è>TkV•¼„DZìK *ûÏkV€9‚QTÕ‡ªßËÙº’¶f$U]·~·ýuÅ8Ùþ¶Ú~ÿÆ)âqT² ¬·7-%¨QnMw*ðXßá:΃<ª5ƒ—³$[éï¥ÎÏ–H¨q®L8]ˆ>É¡–½qœQÝî{¯Žô-=ÚúàõC”/3×Nv7ju<΋²@÷ U~»öz@΂íD¡s´©CTC`“hY«~Gº¶—¢ìU†´† ²ÚiRiÒ¨®SkO/ó‚žõs+çÙ‹\ŸºœÜrA¶»Õrø(‡][ò ÷mO¦%òïÖLgëí_WynۄǬEÄ NÛÆ¯P$ò”þc³ì³ÛÈ0 6~–*è§NnU2!KpÚ(ë6'ôÜBâ8©9}ð|9ǘ«|Ü]<;£ªv6“¬0(›(îö•Wë²!ÝÛÇÞ´]àlM8 o€¤QXïg9€B7ÕØ*d´‰| XâcPF¼ˆD0 (#Ÿ?ö4/£LÄåÄâK$cQo9ŽÚxŠÓ^yäX½Gð(ó4³‰oyrïrwcªOO’ôAv.Õê4WÈ%p¨Æ­_PVwîÃ…Ç®L8›Õ㉠û2µ—ýpqnËJŸº"I£<Îm¿B±=r^Ê£4Í Ç¸ÁãÛ$É#. }w`÷AÖh$înP’Gi–ߪ„ì”ÔbAÀm’œ[s z¬¶V`Ñ„çy¨ ×SÅ,*⺗Ì{ >¹Î.Ií®¸¬¶·øBÀÙ-q怋Ħ¼vlÇêâõ•t/{9TF†c¯#.¡¹`¦e b`ßö{ÏY(µ®ö2ò¼9`ExÆâEXº¬±p}Ýô й#À\]õLXAeE‡8ѤÕdÔ#ô’ ààQB‚÷{ðõ”ý TLú¯âßÍÍ›Ö='3Ž]ºª êw팼»¹ù*ÚÞ™‹H@û™ê €ÛºÜzªV$Ò¹§&º•eMi3ZÀ³¼ØFz3¨Å†šï,nþÜצµ§übðEj2¿lirë~±mTXcn.Nfí óYr‰×bdV. BßÍÝï ÆÎ&<òå0<ÌðvžWÕÅ&”mzˆ"ðô |!óX1#ëmÛ×݈C—…kèšX|zB±—8þ’:™Ö¢&š¥Ö¾· EIïí­™&ÈëÀjûx m$ïi4AJ»\÷a žž $8T&ÞÔèt<k؃a´~ò2‘FYsc¶[¸¼äÑa#hsíH%>а|‚ÎÔÖž‘…¸Éü¨dY¡#Lnßyîbz™=å ©p09ÑÉT£ßD^?§?tØ}eÚiìbY.Ãb¨¶Íl²U¬M~Èö¯ìƒ—XHs|‹grúÓ«û—sŠÚÒšxEb'>}ÑF7ndù‘ÉØ¦¨~6Æ‹(óÿÑw²ˆ'œûøNcMbgH[ã§A¿õ¨Xû *ƒ?³õÞÚ§z=áAñÜËgJ•SÄñ1·0¤EeRÆFŸ€SÉû^MÕÁ9÷Ä(òäùp7KÓò›Û®Ãh=6Ÿê %rüÀÁÄÑÐÑ9T?˜l¯ð¨ ¯ _Æwv L¯ÇÓ—ðß&w !î[!·ø‡½{½dytcY±ká`óº«ø¯v!Ùd÷7´½é3SýúµÕ¬§ÏG‰“ŠÝó΄%È€.d];@;VC‹3 -r†® dýÝŠs©WÎ#Töxv‚I1â±Ðî®\LÞRß;pãçíêOøý 5Ûþ­endstream endobj 748 0 obj 1604 endobj 751 0 obj <> stream xœËŽ#·ñ>_Á[¨dÔ›d?bÀ ØÈ6àØø°ëCKê™é¸Ú~XÄþCò¥©*É–4»€ƒ9 «Y,VëIê½Ø%Jìðÿº»Ï~Ìò\<׈(C×UýQ½)5*ÉKï&ÉéÆU–YÊþø,èÔVˆ¸‰F]€­¼ðײ\mÝL3ã#S©Ÿ±‘«{¿Lcîk\…ü‚j‹$³VlÑ‘‹êx¬Ñw`jÙ CírP™EùÉýTN›4Μ¯Ñ’ 0uÏD“à ."Ъ×lÙÓJp˜(i…þi*À¹íë8‚VV5Ž ˆVpBN”–UÛÆÍÕTÙJò>?µL^sd Á ®L<ϼ4Š|;ÜœwšXe Þ.|‘nL’§F~3ŽtHê\võ4UOŽøÇKAÁa« Ñš‡ 7ˆ°åÀIt¢ÿ;ØÿÓØ(6r¢ÿ;ÔÕxL)®ÞGôóssxö“šÎÇY™è]ml_‹±Þ›±>ÌõQ4=%ËeZªVœÉ"ЬÕË&svžˆ€å ALCW‹èUwjëI ëô;}"¿êÜçW U‰ôK’‰¼“¾oOBoè†?ªqžÈçìf0yW³ø ü¥²°Ü2°ðÜÖ³è^.q'¡Åv˜Úæz÷CHî¢ø­Úê sÛ5ÇF|6w§ÏüWørEà²$y%õ†r¤múZpQ@Z„ò„KÐc Ñ÷uÌ9ûŒ¹2 ®¾ÚPÙ>¸à€ñ$×ÊÙi*§Ú…ù ›­ZFÃq¦Ð8v´^ãMž ¦ÑjfHò0ôó8´ëé:ÎNÍ2©?‚vóLC~蜿yT¬ýp‡ãrÓà6ï¤×YšúÒ(7‰Î,‡€¿ÝD¨Üú%öÝ&‰;¼é/¹$ßÑEžØ•žñLÑÑÓ|—d:¥`uϠ´Fù!ðzÖB¦a4Ò@(œ›QrE-«È}^‘Ð¥S$× »S=®w¦Óa¶â^ŠÓ'¾Lõñ>Riú0Ãáƒ!,RúzEÏéª~ú@UbªkÍ:U‡¹}áŒfXC5äiêƒÁòPTkË¢Z¤iJ™ø5FþùPF~®ÝÐØ 3ßh¬X€“û¸ŠìÊÓ®ÚÉsdAÝËé4@ع©&ôª‰"cËšÏÃv9Ýæ&Q*O½}ƦÇúà>’§œÇ\øhÍà|Þ`ý¯Ð]Øô´MÊÝÊöØ[èäÊè-§ìò|^´7ÎJÙ¯ ¦hhÑæê*œ} ÊÇZcev+ƒ¯‚i¶Õ¸Q90(Ý:$?>I·µ}ÅhW'éÉ>DDZœšãätª͇(¬¾²vï­TÈ“Z(Ì~e¶è>Ç{±ß¤;,š -N̓€,è²´˜)é•Ä+ë=Äçié°[üJ‹Èq©!Þ„é-FáuïÈ©é&ö\kqŠlZÇæç‚N “q'Ø ¼áÉü?<™ Bιz¹­‚oøÚ¢™`Ÿ ·\£Þ°Hpv5ŠÇº>N¢™’u޽\Ô#lt^ŒÃ\͵[  >} ©œ©L—@ÛÔ p¸æ»¯ÉŠÐ’qÝLIiué«Á~éö ²k‡ÕI¶³çKê¤už¨]UK?Õ`išwUr?äOÓ.`¹™²øÀä§Rr47§¨R¦1”‚ÁMñø–_’ùÅmCEp¦ÿ„Doå—I$è<ÌsqÅ|³böyè‡eô\©ÒR îXÖò‡aš:ŒÍiæâÒì’Tg^_,Ò8%â eÕ‹è‡}ÍSûAáNx«¯j ¨£U§*¹¸CâÄ»2 U8“8ŽÕy_X]}Òª¿®06EÍ!;(÷1(x{¬.[ÌVô¥ŒM<­ÕÜ}8ÐB†|®FHo «§¡ùâÁ‘ç&×Ou°ü·~„T˜„­8ü1åÿhc¹x™Û–èvq–¢8÷õmSž2™{!f®Î‘Q¬R–À|yŽØ\|iŸð'ÞoüB(7áœ=®/Ô<"¶†ÐîŒίK9)º1´E˜°©wlÆ¡ï Lšâô™ª\/!6#X²Aó]^¦ûF÷ElTî3—m bb¤²%±_–‚•Ìs˰Úù´Á+Dð×êäÉäÖ•N„‘Ê=ÙÑÈÏ×ÍHÛ\^\#…×›æH¥Æ•°@sµ»«ÎxhI:®(݆X¹{§}Ý÷íÍE«G ®i¡ÓK?¬.F:¼S7äó,IUˆ¿ŸtÖÌ—U¯ø»%2Þéß:B("u4Š˦Úç°ùj(ø "úe3„…?Þ+¹F€t´Íéî'Ø.Áip*ž^‡GÄ_E"ºkïqì„#‚CÌ}Dð³.$xȇ·SˆnZsDðÈTcóøµˆt}ZM<†´éÜÿÁÄoÍqÁÖÄ!²Aß{ä2H`vJ2Â^ %LlJ˜Þ›9s¡„p³U,!Lc ×"¡AZJkJLU5„CJ,à ],¡É]v!‘[]Ň©(–EA¿ˆ%n™ºŠô¯Bû¸Ùë;Ýz¬†ìÛ p„éÆaÓ &fòòåX¶{É£ÿ–_ºÈ 8òm%¦-«èDÞó4)Í.ó|A1Û¶Ê|+"\ð+S{}cµâ GJÑe §¶í·?¤X€.xËA–&…V3i–%yV¬Š‹åÔÖ¿ª¬ º0- 4vœèq }þhíFѳS.ÿ¯GËcbGX»ÔçÆjM£„~ª¯ÇÊup4•ßø[|à\G0•éyXZOÂÝÑúÝb‘çxÓg¯Š¼PÔ¹RíPõܪÀÑí¡˜£.€®çÐA¼“S] ì®ÅÕ=-e­<÷vO­±!#ðÜš]¶Ór-›¶]¦yôwμØÕ:R¬”–ýT¿_ b23ÆØÔ‰à¸@K<´ ==Ä/~¬as¾pJy ÔÄwÔàäŽ5†ub#- 2Ì‚–Çz®švâ &uQ8Õ?ãÛ-4•ŒmùvÍO³3y«ÇaT±tSâTŒ€Á›‘áPOœÀð›v÷“y­7{™Ýè½RQþ"šJ~ë‚–ÎÜ+Q¢Û­-PöÍñcœYŸåU¢c15î›Þ?q\„þ»ðÀüš­CìÏMxý —³k18^ùÄ–…eÍeÞÏÝÆÎ´Ò»bUtYRµäìúž?쬤»´²ÀK!o4^ï *ƒð.ã´ýžž—aäw°«Ý¬¬–yè*º6¥šŒ)ûKâ§oCqÏnŽr¼ýºÖKãS,>ÁÙ;|ähþŸ¡8!gu×è™{a¿:VúåcÐõŽD²ð·àp{ȵnÌ·r´¡òe~æbÀ7^z¿ÍXAý<¢7säuík(Ç^ÊÏÏ,Sõk¸Ã©WËã[/·N&ƒT[M‹Ûâ#½ ¹ÖÞ½"i|ÙãW$ëï©¶1(K&š‚å¦&\¸ÈüægºÒ7*«†@ŽÑï6ˆþÍÃÝ¿àïœlîÉendstream endobj 752 0 obj 3243 endobj 758 0 obj <> stream xœµË’ã¶ñ>_[8®-|VR©ŠËv¼‰7Þx'•Ãn‰3¢-’2Iy=ùˆý‡øïòé'R3»[©¤th4~¡ÁŸÌ6ŒÌò¿k¯>ÿ>Ësó0^mÍÃÕOW ùÛµæ‹[D)REæöþŠçE¦ÈLžæ¶½z|×Õ×›8ËÂ2*ƒW/ÿÎ@Q¦Áy¬74Ô§~˜ê½ö§¡¿;Öí(q¼k¦ƒƒ¾zõZqÓàý±VÄ(ÞêÎQ[(Oõ®©Žo£à¾ï&»µÁ»zP†·EPÇÞÑêŸÎÍPïC‡p{¨¯ÿqû§«(6·ß^Ý~ö&ûãyjzd ˆÂ8¾¯Ë°,ó4 ªQzó,˜zÅ(ƒS5êH–âG @;Ô:R̼ÊXÕí°KDެÂq#Mç.–“úSÝmÆþ<ì´³(‚×»¡¹»Ž`EG¦üçÁ¾œú“t¤°‰óݱM÷@AYÀ> U{s½I²"Ì£(Ø`,ƒ]ÿ|%ÐJ‹ &AƒEþ¨mmðÅ¿ÿÙàáñXìÎÏ*a~=*á$Ât:OjS_Gi¸…#úKIX:b •·β}mO$¢8ñYõ¦ãq8ÂC}ºÓíláyÒØŸaØTŽÄL‡j2»ª3u56ÇGsW›º½«÷ûzošÎTo4NƒGóåí+# ‰ÞçßçQ"f·Ö&{Û_›¯¯oXå6´Ev‰Ãæw2\Z.Â2µeÄão‚}3\Û —ùî¦~x”åA<¾Hg¿G‚›$È‹˜É¼®«a‡ÆZ¡MU9HŠà¡¹ŽQ®YæËµè&dmî*PÔƒ22³£6VFð0ÚzšÝ¸A‡yëÑWÜå< îj ­ÜÁHœ£ Fä3_‚Úߣ9e^Õù8}€ëOسÈ’”ÝI×›hcp€em­“á™lk¦‰:4ÒT¼(öÒ¹p/[,â¹9N¡ d¢âL ^®óì¼óýù¨‹ ýÙ1çö…æ ÄÙÍp»­~œ‘jGÖp,÷÷®]ÍÄ»\ÒVT {ÝĔ§fÕ_ìv«Oòàá%³ÁZÑ=ŒŠÆ‘¤?ÏQp¨X``é|ôJ¯wí8;0&ÐÛ$x”î$ šI ' ä>Ð}q¿LDÝ/¢—ê~yè Í4§Y»´Ð-ÿâÞQ¨\÷P« ì =¸]ÏÎ2¦B쪶6ÍhžœÓݘfÂቲÈÓzM5]‹c’™zðqµŸ nq2Þ.åÆtý¤h ÕàöNç ã¯×)yˆ`4ËÍGà÷?âï׿Ÿƒ—È¢üÓ\ IbM!¶agñÂåŘ+ôÍö*¶•Zè÷l à­æïkÁØæ|ZØ,0®-¹ šœ7|whÈ™˜ºÌ¶,œ™¥\ÍT&²~É WgÆ¢–k’àjÑ#9ú'c uWÕ¤äÁpÀž¾o•Ö&a˜99üEÄÇŒ€Ú¾¹ŸÕŽ‚è$c6ÙŒ¡bsÎ5*:‚!C ã“•ó«RJÀÓ»öT”l*‹wJ’ýýZÃìÖ†‰µ¢Ÿ5JnÒÇÒ‹£ µÏ 3‘sþ¦œäÞme­¼ý Ò *‰Ä ŽÊZ/Öò!ç8›HN!”›_óÂàûAz!Ÿ©¹Œé—ª=IÙhBLj)ÍSSï”6h›‡Ã¤K±8ö0TÝeRÀ2‰FrpZÎRd2åzKÁsíúa_cèúnç-B”’{ƒLÝú~Zªwä@a¥‰ˆÛ)æ­˜ÒÖÒѤ®ÐºÉ?©‹‚ÉÊv£tõ°¾‰óR’^3.Øû 2¸ÓÐÕpgô]퀌êPg[H¢¼±Ý¡:M¸qîÈ‚Ôir„ûß×SÕ‘‡4q%W© r<ô¨Jï¤#Y.ØM!»×Yh÷:À» V½åÁ¨bN@´=†)âæ9OJ˜Æ@ÕžC53‹„•E]Ø4^dǧK>±„ ² ¹Î,ÒO3ÖG´Ø¾M?ñ:¦jƒ×>r <ß\ø„8Œã(úÄÀƒyMœN¯âï(÷âÎßFR“4' í¤Ù4^–™ÎŽšå‚È«~œð x𤠍á!±&" å7 E  ªj¯Ë°þqÓ#Í馜î(_œ6+´L›…ëªP"]UìüCÁLyí˜ – ìešŒ%Üå^Ü;¤Jº·ñ"«‚ÛéÒ© ŽHéh0ЏьڎçÃÉ‹ež¥t@Ž“¶³ÅLLÁ4 å½2¾ÛWú |Fâ¹–"ÀäkJí‰ôsæÒB~>ydV$UôRöI©¡i‚9'$Ù`th«E)í“Iši!Px™ Ê-†Úp¬Ý±qŸ?>ºY”ÌH›"­[ð5Dxà$ç¨ä°þA‘R†=í™1ùC}vBÂܹâT ÷ÜæD…×<¡w-å~ùƈÜÓbeOW$£(m4_Òw¤FVJ·²³Xd±Î'ó Tçz¥ÓR\ÑB,;èPÑ>¶ ä9ÞÞÕX6m{am¾f¸ôàZȃjÒ0PŠóN¹ ªh¬AÐÎñÊõ“|.ŠËD,¤QÔ‡M¡óë£|}ŽáÎÚJæp!|ˆ›ëBëûrLís}ț¦¼W¤ËÈç”hº*¦‹ÇÉ(‚íå*¤êt:6ô>I$ÁB¥ÄÈô§™cˆÈwÕ Ëò¹j‚ˆ9ݤ„Dâ´\Ù`¢¼G·!ûԆ襲tU˜Ym-ÁÍ(vù¡§Sp‚OèT’ã«C1ëÔÝ…´ÀEÏuŠ2pÔåDªÄ$Æ °2ëÎNÆg}'ŒTR+¥DU ¢”ŽäѤ“Ò_M³¼Ò»ŒÒ5›°ó5›3S¬O%s /ÈÂŒªc§`HÚ(Éç¯~º¸$Ööù=¤.Qn ?Úùlda¼u6ëÙ¯Ùêa‚‹õ—³ëî2'„ Ì.p¨-c,¤¥Î¶¿mZJ3ˆÁšía;Qã@ÀÎ%E„Àá°q^êÂ&r²Ocôͽ¹µBìåËŸáX,Ï?H½’¸µß—Mh6~Þâ¯P ht—YáØ-ÕÒä>üØ’¡(U7g†›Q–,8t¿°ì k JäÇv‹… €u²§+Í7:uÎü2 íŽýÈ*9ŠàLÀ[:òêJ:¨Dee^<‘2-AY®ßé)¨ßé1½ÈÿPç—ËõäË߯ø}Ñg{ãÕhÒt—)´ú¸Ž:S}(G È'‡ÍWD¯ôxÊúÛ?í½|~¤uDȽoñ*\Vn[¸^=Ü{GêÎ3Ž7;¿;Íd¼úŸ¬ú/Ræç9s—‡(õëôYr(©í\É èå%óŒwY(ÖzqÎ/Zúý¹ë€5úìm`áÎè_Ý^ý~ÿÏ6endstream endobj 759 0 obj 4087 endobj 766 0 obj <> stream xœ­ZÍrܸ¾ë)X•C8‰†!þ&©T%N\åT\q6Úø`çÀ™¡4ÌÎ\’c­^Âï}Òô/À™‘¼®ÔJ¡ÑF£ô× êû ŽLã¯üÝo~óM^ÁÃt7ßßbòg{ þt"…Ic‚»ûg‚" м îŽ7áúí»ÕÝPQ™‰TGȃ»ÝMü^Ø•vU™­Œð?šËñÆFiš$"ðd¯“*2yj‚µI°÷CøíÔ¬ÖI–Ge’…ó^ ›…í*É¢ØäyøieÒ¨*³2l:0%Mé¤ëIÚqIjþ}÷×3kM\ÂÌḃðí›?¿šqesÐ[eáV8ëÓ<²UntLv«³åaÛMsSïtÊ*ìï}{±Š<Ü5÷« æ(²"¬O‡Ù›?ïëõˆRUž.WR…S3{U§a!¾wžÎ»·ïý˜ç5mV»“*<µ‡9¢å®M–FYVùÝxƒË(Àë%XËMgáØê¶6¡²v¹^†wƒÆ–aW¯©´m^ÚÕ[U”†í¬íj12œëïV&Æ‘)Ÿ¯U¤*¿ÂÎ4œ{U©;%Äö4ŽMç&OÂ];6Û¹ŸV9H€ ÎÈ"ìúy¡æ9•(Åû"ƵÝpšÉïèí¿ÝÜýŠNÕ« ýQ˜’f1É^LWaÄLÔz·o(»ÚàömßÍ5œM¯hënB§ô®· 7ÍüØ YcB󴓢 ën§¼”nŠê³á‡vÞî›éG?Å}?ªf8\Ý|êš-wl{š&˜ž"œ6Ü9Š}»m¦H8© ÿ8ÔãìÉû±? eXÜñÈûCz’ðÐvœð,7áÇpšaxÛ=è˜4|lç½ð‹+/N‹TÝÍq˜Ÿ”ÌYó­—mê­ª±Äô3´o»‹“áÆ¨ާ ì¶lªÜÏçvõ‡S™‹±JÍû±itˆ‡vF“¬-à´¤àõá§«„n—ËHnžD,¶x‰¡NC½mn6Z;ö“Å<.£ 6žØÇÚ‡'ãÖ“hbšú;wdz©k¸êšŠ‚×+ƒƒt?ì† ÜðC}Ío%ÖíBSÅ6®Cb›õ¶o¶Û`SOS°ƒX€•ûžÀ¬~‰]E0µ»&@ñ︧ôã§®è]ã:ÉeFciÆõÛ]Á¢AÈ0?/.Ú8²e–\à¢M-\9XDdé˸H°©TÃ#µóäy\kÊ2cð²¢[yi4©¼*Ës8äI2‡j0Â!Ïzf|æà°**Cå0êÎALUò ‡N|ïª(ì‘\+£^^E,Ìùú!d§Qq€áÛ†ášæ K¸ö0Ã2‡L(²&5h'>ɨ{‡868Ävy6ñPWÆxˆ2ЇÐNíOà!Ë3x¡eÀ„±ÀCì0/à![)x(jžU nŒ††ÃušV‘Í“k$Äþì „ iQ$Q†B$àp- PØP(½ ©#wXHS‚…2Ÿ`!Riqc~êîtÜ4ã¹¥ ¬YHA)t¬Ù¸À{àaØïkćX½„5ÖP(RЀ’aMYÚi¬¢šP j*É Æfä‚jª’`IÚ|…àØÂ ÕHq¨§ëa9œlUO(¨%62Uº@5ìȳgQ YÛªQ»"T“n‡lH¹¬Ÿ˜o²Œ,Dˆ3°“>;™ÅƒN{vÒëÀÎé´ÓeaÆæs & øˆÇú)¨‡¡©¡ÙM1° únÛ(RB¨ú?‘26ÁÐÖ]Ïà”ý¸;a"&ÆI°¯Ç‹žÍØ>ìg?hÁ´€§§]ÛŸ÷5¸¦ã•úçÁ•ü®;È ÝŠä™ FžU&¶Ê(/œéÚ×3¥—DC$ñ¼$©Løytƒ!,œ[`Ê„{q¦Ö=‡ÇÓB³‡áøx•~@iacW—bøà3/Óá!޼ýo¸äX[HÐóx‘`lkpÎ@H xsŒáp›£ã<œ‚ëœÊF—}#°R*iðñõ6Ú$J0·‘„ BHð1äeɲl”$F×ý뫜 ò£¤¬T\E¢cqÀ,bãy wqʸmóôÅ£öž¢FZT¸áCÓ5cÍñ—úrʨiK…†pÁ¨†4œTN“ˆ‚ú×븊S#Y¥Ã¬ÐýTÑ·K€‹lÈ)ÅÒ6XU»Ýz¸Z‚…ó“­J8*…8sÝWÞ\³…ÛàV§M¡6ä㔂?³xá´é©ë9€»\ÍQAÖ`âJ87fÅWº1Œ8úÁe^“[H?ÞÝX?¢'ɨ$AWÆ’pñw9G‘DUçne {ã~XÆ‘LÌ‘Eîg&•‰JÌ“JvféKüL³È·~žG.Ø ³¯ ïÇvÆ(Yæt59d"aÏ1‰úÀOš]1møä‹åàâ¥W0…~ÍqˆÛx¥`µ×Ta{¯3•ôø#C1.t.îW¸‰ÐxöË»dôO˜Sñ› ë;[ÇçÂêTÇ\.÷ïg·ÃbŽ]]V`œ€ñž×{^_ÿ°yh¡zfÓ3kÎ7½„*y¹ë×9Ë# 1£ï(cŠƒà ͶýL1{ ðêNš.ñ¨™t”q xb³`´ÝNÞÁpÚ݉b¤Ô‹ BÝz>à€6ä¿CÝRþ¢¬{ÏRhs•~©¦ñÁÊü€NбSé¨ÜbÉE ¼G.TÍPö;5•t±EC÷ä8mGåz>zþ Ôª1XAz›ßkß{¹Qk/­)u’q*>×JeøCeBK; L¦·ž•/Ú…oÒIÍ8 kÁ  ž]0ÆFg0gÃ7 G\:ø•… (˜xOUv¢ç ù Å)ú®÷ËÈäýRf©‡áðäI0€.–zr±~‡5rpq» B26•ÃlwíñâÂóiy¯u_Õñ­ä . íTƒ=*:öî©wôxuÀMzy˜¦RN0æ.‚A}ö‡æúF»Ò‹Ü{mi+°½¬$Ã5—Wyk0çË`ý¸k|:‰Oî9…èÒe®øNn¿?¼¬<ü UûæüèÕ¯éS2lq6»uÂ4¦x+Û³¹ùi’ŒŸ 7O×ÐZà« ÷ÚºNû®¾º€©‰ª> stream xœ­Ë’ã¶ñ>_Á[¨D¢¾Yvå*»Ê©¸ìØ“òa'Žè¥H™¤vVþûì/M?jFk¯«R: t£F£_àÁ62Áò¿;Þ}òm^ÁÓt· žî~¼34ÈßîüãQÊ,0&¸ßß1 Ê<(ò2¸?Þ½ ënUEUU„Ïò__¦Õ&IË(KÒp8ϧó,pš…C¯í4œV€Ü„cûtP¼$ B»2)Ì—Wáû=éP>lï¢ÚÌæ³{rÛ~nû'ϪÕ%eIhûú±³vÀkõßûÂF‹8–&IÅi›½oC™<®xøMXF&2fû°Zû <® Š#®B·ý<†-×óÕª1ÀE”n«`cbžðÜŸ§sÝ=¬¢Õ&M`ú" ïQZ” -;;Þ"gá©~²ÓZઠ۽¢§,Ü2uäy8?¯Ì6Úš4‡ÍÔ6¶QÊ"wuïGëÛÓ\ïÞáºù`dž,ç¨=UX÷_Û~è‡ëi•A“ pïÿº mÓt6˜‡`?ŒÇ ~=ÕÇÓ¡³óoÑê/wñ6*’¬BÔû¿¾ ¿„MÆe™­aub §Y¡”dÃж„ nâŠèÔÚâõ¤ˆyX+}öçã#n•ñâði´õì:`ïpʽG7kmƒÌê±k=mŧ¦”iXÊ„ªwG‰—Ëyìêþí¤3WéÕ ÎâEŠr‚õàm*aÇпm% E¨c˜{²¤?M|q¨#ÓõX„?{ZÜdu@t†’tFÛ;N#i>.p^2ÓcRʶÚ£ígÇ?V2óBÍP¶Å®ýÜÃèWàVS¥ze¾<&l‹ó”t]&oÚÑîà°W9ܧáÚ Õ˜T=@YDˆ‚=ÀFÐKO°Q<±Ýás;ÉÏÇQiÒÒÍ…‡Š«~9YZáU6êV ÜhX!Þnµ‹Â›ËY "Ù3œ”!äHC`²Ð º^Yä7bª-hù³›ˆom"±‰åºap²»Á-®ä…‹§4=§÷”¤ó •äռߧžŠ/µAoÅÔ#î<Ù$ Øv Ø.x9ð® UI8¬Á@È4iøuïQkßÝœOдm’‡ïýPu+²?…ªîÃʯCï{ºeÒµ'¥Û¤À±¾xƽEý硘¥¬«…E¹ážðžWç‰[Š‚ÏàÔºW‡™äQ¾t‚á„¶½3øû4/À™ÉöQ‹â±€·˜0‘—à|bƒºÉàd™ 6δâ”ßK8—GÕ¶€wpK%tƒ.S€hZ67pñߵ͙  gu,+±&ÔN‘'¢&|1$±'£ºËí‰iŸk϶L¸N‡áÜ5 W²j¥†ƒí»Ëb®Þ:ïs´:$¦€ˆƒõŽÛ`WëÝ!¼å§ºWÚ*0P‘ôƒ[£0t:ãÜë|Lõ¤Ã‡³À6„cçy8Ös»ƒ3»xŒºaÛ) ÉO]/‡·¨¸f›«õaAêOQ÷ý8ðˆsSï+ÌðdÈ‘"—˜C[-)VTÂ¥ÝWŠ…#C¤õhYˆHíe¤øEø‡p½ÈaŸ<ì!ܬ;_ù˜óɨ•YKxåo¾úÞï dÝzrà¢ø|RðA)ÆÿGÁIÁa1¶s±V ¤‰v{$LR*nËttñý„m[ÝûšâU‡åg€âgU·¸ª¢".B×6÷ °ÕŽt,Co2é¨I_ØWàˆ$p¦D•€*Ÿì®Ý_)bc^ az"mƒæow " #Æâ}ø½}ò ‰ž˜Ëh;ðÀ.uZÐx|Ž` ¸…çžh™è&ëFâ$œ\¨ÿ\Kª&H~_ùõlä‡T:ꆒdKÕ’u#Ü‘p´‰À¶Ê8¹Ç68ýq˜%¹LbNƒ¥0$ªœ-!‹’z¤žE„㜩(¥S8ÝNŠ\„XëÚ›kσš›Ü5¡ e^ÍŽ]ÅÀäåÄ97®á¹¤ P¿¡[FÇWBq}|DV]]ê!¡šæ ])1)UýÝØ ó\£iµ”ÐÌõÒϧE®=6ÓZÉ2Œ­N™ÝÚ„¤ÆÛ$ ׎©Ÿ¸€4Ã!?­ ésvµ/§E ¨®%´sÐöäÚ†™0p–:<}´ÓzÂHb¼á´b³ÿON‹œL¹M>‡ãŽ$7”qÆ 0H† ä/V1¨€È­*lÚi®¹(DÔňÒÝ=‰ù¤|Dnà~¢ÌËÅý„Pú -‚)êm«Õ8þ¤rœun¹’õ‹ëÇQ^ɃïI±€ÿÎ:Øb^-ŽÅnµ¯t«%J H>pyœi¹ØNô& €KZ{žóá¬<.J²õ>µŸñWÖ¨ßüЏ°&ó>bBêHcÃA¥ di .´ò;C¸Ò°¨É36šœ3kTˆ­$3ùªSf¸®«RÌíkƒ½3Y¬ùûdµ„I™eŽ©@×ú%–šºÊä­E Ór7éõn8ç¢UPÌ~¸*–Ò¡£=”(–´Ø/ï4WJØ ê‰*]¨1hàŸÛI§È´œ">‰÷Í èbEߥÔn颮ËxT®ZOÔ Ï“œ¾Dé[y:½q†ÂüÕRœ8 ê‡ óÌ è½¾š6@’(é)Ä*P›/P¤`~9K;ã7emë›2Áú2÷:åÐs1Œ\É÷!npï^ºê{°Vö±¼= YÝáã[M¿˜p8Z?rãÕ—·\˜8œìXKöø—Ýßp3½ ЍJcS}dœÔµ¯k¤&Á²Ÿ¹ —LŽ{ˆ_ßûT^38RˆÕ‡€\³ÇFz eÙ’7,Ó¥âL‘`€¸¥–Çî+þA K-ò –Ê[Êm6žXœÅÚ³F߯G«ÉO6ìýzï¸OõˆÅ#Œ‘ëà€ƒJ{9OYã£Ôat¬û'ÿ™l°ŽÇz¢a™!?NZJÀÓqö;ñ1·;þÓñ98?Õãl¦À¬“M¶®àŒ^½ì{š7áw.qÚB°™^×y° N¿„P)üÑH¸˜$‰~~ù¡¯‡[©$ôvŒ:%fãc”`À½‹Êœø08ùY(F$Þúq÷ûTXìÇáèg©‹Ü üÇ–K_8å¯F^|[CÏxásü*#ï_oP®­ÝòÍ ©Ñ[é®Äèv¸; ­B…Tº˜kž;Ðùy¬•¾òÚŽåÛ#ÅÏ=ã•[BËa‡‚n´MåV’ygŠtùq&šÈ3ñâ ,¦ow‹~:_C¡£NS)›sMÀ$wö—ª\Ò|šî¦íÕ«=´Ü½ÚÓ—€)×íÙʤ\()î7ª=º°gRlžr È?d“s'ó3t{‚¯†qÁ~ØÏߨumôøähëú6J²¡8Ì2šÒ`"1êžç¹éfb÷qà·W{õìA™zçm~ÇЉŠLcƒŠ®ì‚ìSX‘È„†~Á‡<š.Ö%}R_Úxå ¼YDiåK=fûª¢zZºï»¾=÷=F#ß|õ}ð&+Dÿüþîßðû½•Ðendstream endobj 773 0 obj 4122 endobj 778 0 obj <> stream xœ•ZÛ’ÛÆ}߯Àã0!!  l—«’²SQ*vk+~ò€%°»ˆI€@­˜Ð?Ä_š¾Lc@r%mJµ¥¹öôôtŸ¾€¿FI¬£ÿùÿ·û›W?åE=Œ7Iôpóë¦éÈÿ·ÝG¼…%…Î"­£ÛûÞ§£"ŠÜE·ûµ™V·ÿF:ÎúEElÒ\°ð¶¾QÑ7~¾4~ÞÅ¥5¥öóÝq× —4Œ‰óÄÊšoqzclìœM£Nqô­zsh¶íýiµ1ÎÅÆ–ª’¦VÓPuã¡Û©í»µÏSÕv²&Uc³o§¾kÆ8ŒýÁ7 Å›Wi—ΕêýJcË:ÕÈjá}>D†>6£Ð(Õñð´*ã²Ì3«ª¡žg>ÁŸVUWfªÕ¿nÿrƒ×ýëÍíïÞª®a& «V6N’6 öœ½Ôq ƒp·Ð©{\÷Ô=­t'ÚÏÍ'ù9G±×J„—¸ó%~Xõ÷aíš¡—žQûêöV»Q¦ÔÝÌV®šnj†¦þ:l›Û1œÛªë§+ Å2Vû&ªÆ¨ë£3£jŠªÝ.ŽþDÂ)³BõC´ï‡&ª›©jwcTÝõÇé|×:›þ¶D"AZtÒÒ6ÐÚè2.láHC7¨Â®¹TcZFÚª~~lºˆç´„—p^Ë7õñ°k>\™‚3kÄ¢vÞ¦õ)“ĹI>ÇÉã0¶$…z@>Y•Æ«wÒà ãÖnRAÏ “ªû~·C¤±ê>?Bz< TÙ©5·3€yD•q’½)`áîä{Yª¦>´«°”Dhä_@þá-bkZ¨8ð‚Lããé,W§0|ÆÑ®§¦›å,¼r`bÛïÁ¦fsù㸎¼ˆuª@æfø(k»íîX7Ïè䬎LjSû§JÎÃõ«,ôó硚è¡ËW»(lt°‘žv©¤ŸTÇÏ™‰C=Þ]ª$¥Q=^@ì¯ã2Kµhô·ë«ýðl:@åx¹?‹ÓÂÍ俸ÿŠ}Û³¸%3ÿ!\peÖ¡ú°®vÕG€÷²P(oX—yqûÅI©êjª¤—³ I]¢ï8Ð' ÚM£S°Ÿöí»jç#š0_0Ítœ¸/_ð-Üp¦ùb—@´ºûÝ1\óìÌÔGNïVþÎ.WPÐý(]ßea O_ó«ó"†Àð%ïyÆrË.d“ —‡Ú÷Þ×-؃<Á`“$Ny† ~O¿P-‰ "±¶Á³Ñ#rÇ*±(95UdZ¾[jE6æ—çêõ½´3;?C Ð˜£Vì[K·¶ zuá–7§Õïngäg;§ê³¦“5 c¸h†Ix\ Gô`-6¯3¿E쉋]™R3p¾µÒÒ4ì °*Ò°êã@nÁ/×öt.žúëpl+´‚ñ3ÓÓ|é>åûŒ2 ½WÀÎg%Ì‹§ÇiÑ ”µdM·X"G&Ëš‡Qj©÷ËÏˆÍø¤Ãwðe.|GImG0ò‹Ä@ÒìRl/ êép†”Ëðõ‹Iã—0—Ýe´è»ãÀ¡D™Â3ÅÞ £©µÐzb`¦n²fÞ•*ÉfR€+’™†ñ^ÝwXËýægp¶HãÄÚ/^ŠÑ‚Èdg…hÀY™_œ¹€YfÖ°5wéÈÓØøÒ€ÔÚa–屃‰w¨°¨›4:BjƒDã2°“0Ú›/M—˜PªžQ—y*¸@«g(»ª)´9YdêFAŽBù:L,øÝ¡˜#M`Ë'fŒ B)€-ÔòZ§æp-âM¿o¦vßxlsZ ÍA”7C›KrÎy¦ ¼WVylj² 3SßK´ª.ÌõݶùÚwM*"—µOín'kËÅ1°0×TÛGé¸C,Tíì@œO°ç‰@ãõ! ò0–ägÒa¾Ñëha(Ú&NÌ %– ˆi°XdÚ'6a°0q½ñyOÝÜWÇÝA°¼‡ÇÚì 8Ÿ“ŒK@Y¦(+p¨`Õì©`ÄÃN-àÜw`:÷ˆ°ÎådlÛ];dié£.줖k>÷'Òh¯ y ïÀçB•ý§þ:/å‹RÑI6/;¡™ª±¸›oW(Hc¹Ÿ£¢C¸9e7L”}˜Æ°ðxX_€>ùyãHWw}ÿËè»iÆ‚m#®•:`¨c3ü¶²äÞ´’pò#ØKXV·C³úá$$ É…°Ãe<:9E«“}#Ú€½\G«¨±©@e|Ø? +“£Jjµ½JsL ˆ Ëå°ŒÕßóÀ¸Âüçlø"œS ½×a¢W¸ŒøÔ;ZaA0×@°½pUì ÆºE*=Wø´ƒW@–¾æâ'͹ð~ûD–g¼¹¢h7±t Ðv{~vdïóŵԕqn@íîY±ú,þ¹°ê¹þ޽LÍíL{½¦NAUw!PPêÁ[RÖ>Zå_ÖÀöÓaV„ùfºÌã|.[æV.…ÝÎùs»ß7u ï²;…ªûɇ)Ë#œ†Ç™ëIð4W§­r&Ý\|PNán1Éí]@Ü8H[‹Eà<ðRçCì;äe° 9#‰‡' ËìÀ}NÒ·æû6ëz Â…ìš_àSGÉ('Y‡sq©“I¾â§…Òþ8Îtý'êËQ¥'ÿIL w çócÊ"6Ö¼Øg[ sý~D¨Ã$/3&Ô Bï1,~j‡L–á:’!5Í\;¡.x­íö8Ч?€8¿9úJäGÝÂÙ Æò~ÍEÚjü;ÒDö™ˆÎÓ¼éh´`X’¶@ÓÌÕ¯¿{-³yêåDrî¾#I¬g­]¬[žPÍ~äã‡ð„5aQ¦½ædzûöáq†¦¯® xJû¶n£WÇqx5í¯àQcù,>ýØ´–YœÙReìå>^¥{ÔoîùOØÎPÞ;þ´)Cé"÷» ÎýäÝ|žË9  ëµ y`¶’ÑxÉÕM¿MÌQö´cXwC¤™³-ÈÙÏÚ~íý?âW h–ÍË?²ã÷ôáµ¹¢™°˜…il«Î?MàùÃçØ„”?È&ôZl;Ï/ã¿ ŸÛ©x„„>v‡(ÉÏú8Sº’ˆa×:ïY˜®Ë–F#£ü€Øá?W±ð Ú]ÍŸîK„¨¶>RyݴßîµÎOW3“Y‰ùTH{ LxåüÙ‡„´5+Ÿ}Èì¹wÌãÄ$zñޱÏÔŸ{.d°g_ÓÈÎ}ÒÊ”Jµö»·’Ò:†|"7×<ý²Ù™ÐR57³â|WÈh–£ÞÅiãuTgá¶…^DuÛ&™yFp-—Ég†·Ë‹<+]qÂË­äJºá^”Ùy1¡Q°Å$EœØ¹îLéÇÕwд”ôØÄ&zÝÝs5!ùú‹í¡m¶Íc‹ºÄª ïÙŽJǤd×Ç®n*EɇµÜθ¬m+?”àfEÛù·$8âƒ/!Ì!0÷¼¯Áv滿Ÿ£ðjßîZªdyjOíô6±¢øÎ¹Å -ÎAýîG¸Ñ®v‹TÚiû8x'v^‚¨!Öêð;=zé,±Tq=q› ´£´­:ì I­¥_úo­Ô£ÊÛ¶¢üDÚIHòÉÙ£ÅÓ@ÓàUVÝý^z¾îÁÄL0™eC‘oÖ~D‘¾¶™–ê82'»¸ZÌ„Æ_ÚÃü4ª×â±”€?ňþÜ ô …ª‹8lÁúÇ-QO:yöÙ3ŽP—{¢¨\Z´)Lœ9 ½®ÔPÆ:_ü|€~²Mlê¯øG[¶ç:"—‡ ôKT#Z–³½i}õ™5+<韎Uñwï”y·ÂåßßÞüþýzÀendstream endobj 779 0 obj 3535 endobj 784 0 obj <> stream xœ…ÛŽÛÆõ}¿bð(•Xït›§± 7I&jƒ".PJâjYK¤LRÞlÐ_ˆÿÁþÒžÛ\´^»»Àîœ9×™9s.Ã×*ŽŒŠñWþoW¿ÿ¡(KµŸ®bµ¿z}e­äßö¨¾ZI™¦Êµ¾¾b>£ªL•E¥ÖÇ+ýu37jš‡±Uç©Ý©/óz©§¹yÓªbÓò›—‹Åú?WI¦Öß^éï^üãéwOÿºVfñèJÿH„Ê“,áN>äþü+%Ü__p?}hM?¥õYÈ÷ùW!_öß³;}*Ð÷5°É¿òç§êÛ'ÿ|ñ÷5Êúñ,å±2«Lå« v.}¹PõÊ$~‘Jýxj¶­:´×³zuBÆ/•IzjÆsPaœÌÄÊLW¦T¦Z%‰JÒU’ƒtƒø¤X%’DrîD¥"*©W -MVi¦Ò|•~ŠÛäu`Wš:a™KëU– -9Ø’¥«¬PY¹Ê*•Õ«Üü»Àe«\üvI­’8*Á‰×»«Ÿõ³…É¢ºÊŒÆ,¸Œâ:Ñm³½±P¥å•~ãFí±íg¦1±Ñ]/ôU¡ç›Ö©>uí¶]ZXÿÝOVpªwÝt:4w“Åæº‰ÖméŒÞg« ‰®©Õ}Sá-`y±‰ËÐÖ¥˜–ƒi³å5q¢É--¶Öõ7´æÖZYzèÿZÿåjýÅÏ,0KÒ¨2¤ÜÔ¸›Å=åD”ºéw¨Ö¸ÖÌYg!#^+ØGÆnp.gË€žNí¶{K‡ˆlæ,ã,ÓÃÖÞ»¤=ØRýk;K'm¾qÜEª»Éb`Çi—º~oÍ åöþ2ð'ϵi°pT›$úÖ“»Ýî²Dž'X{bïߥù|Åf-Øh¸œpp+áàÓ/Ýa6l›ƒÌÃýŠ X¶ŒáNñµ˜Z¿ê0N0"¦ƒõ´Ít-išH‰»ÌUjXS7ŸÇ&òÏ/‰œÐPB œUïŽSžSb@gK‹ƒ¥éz?nüPÒBF•ƒTtq‡ƒ¢­ç²aRC•œxá½ÓRâÄ r„ÂÔ lP®Ë4$VàÜjß‘ÏÔù…ýpmfº_m¿ûèÉLˆïN¤,K Ùl8Ïï턞ÚíÜAºppÈ&;hšFÇ¥‰Zò¤Ã6é¡évž´y`v–aÖ>OÝÖ³9#î‘¡ýS$0Dç½ç¹ lÝqü»ïþ©ÊüƒÌ›EäpcÛZvânšÛã$¥E>÷¦m{òZŸÎ³e¬ieLeôIn,“™¥Çl‡~nº^" sb"²P©ÍoY@ŸÿV%n+¶þÍ$nl18ÎìKUqQx@’-è†ä:òϯ½ æLÞ¸-ÞÁŒo'ŽS(a†Á#ÀŸ(¤8¨M+ãbêØâµØY)û “¦[*AD€ëóá Ïëz'ÓèCÛï1YÚ—”,2”Y—ÕN;o™ot!¬6“We–—7¶¯Ï-lÃZ!™¬Â,Ùnì¦W°•°Å˜ q—h %Ëiì¤æÀ HQÍ5 ˜íY ×O\*nÏ@áªB"M¸*$‘¹u"̤*@ªRb’Ó\z™ š£T·Dœ]h€Óí~EÇ=ØUBĨÇÖÁ/6Âî†8p@¼ÍaˆƒkçTËvv\—a µ´³5–‹ÄY£ÊnGe"¡€y–qE›CçàÓd5T’@,K{Ìi€C¢à#ZI`þ©…²0s¡tv¼ :‹¹é·2íWr{ÓááxóZ·[èáì׊=´„Ô0œ;¬­¤LŸm[ØÕ]C60“R-v U5;Ä@W‹„Oþã…W@U’ê·ã4 TÚkFaTâÒØV?‚x\Ô6‹‰«{‘Ñ@5D?yåR‹‘ÔÌú4A ÁÚÛuK£*ÎE ¥U’s”²BE]‘ÃEPÁ’²`û—÷²‹œYRs‡I7½æ–ïöfÎCÓug)*+ÊÂp„ËÒ…W„ ”8—ш©j¸%äëV§ fÒ ŠÀ*òš×7ÞºŽ–{l¸°ú¶Mj=ïyj!äzøö¦ Ø ´ð(,Î]õ4ÞAtE§k`$¹ÞíÂ`=Ù¸¹³ÝÂDUTTP–Î쥒†ÙE!ÿVuâ6ý=)`͆g\i|[°e]æ”tß;W’è¶ Åqéâ3ÙÊY. ¾¹“šÉà¬BŠ LhD ‹‹šÈ¡ž;­µ·.¯/Y.Í£€!Cñ=|“q».Ý•=<†b«œ á„§5É x°¸…¸# û¡àg/Ä©„šFÊÝ4Q /AÇ×+öE+ƒ¸7Ìóà”§÷Œ1”ùYth®?RÙï<ÁÃÁÙ .¼àÊ\ZÔuäì<ؘ©¢ w/Þ¸7 ùï'î…ÃD‚P¹$˜35ó„­û<6–ß8ß"ŽR"!Û*JÁè–bã¸^5o•’ ¶Ž³6õ!k`~r¹ì²¢<Èæ²“îŒ/êËnrY;vñÁâcNëðì¯ Ö„.‚pvá¯HáS£5(w|nÒ’‹O0í&˜ÛÝyËÎ…6ç1á0îØ¯ ›8x^¶‚—k(C²»i\PÅQj¯<Þ1…Îv:µ=B…8²`6n¾Ò›q8ïo,Ô›fûÊ¢k9ifLBµ‰¿“gÞ> ˜\Ã"Z—`°$Ÿ°ÊŒ©j¶Â?x)“ùîÚ3\XóÏæp¦Bá{@˜÷¼6½2q¬ ¿†ò =5o€î•M:8'µàpªœYð³I¥LŠoÐImÃde ]ÕõÐÐ)¸èô†C§'M%'¸Ÿåwoئ²ü?QzLÓ2*Òš[fR½kgèÉ&;œŒ³C õ*r LcR »,]¦ßÒ£ŸC˜Û±£b†éƒGG¨„ɦëÿ*,Ww͸óVÝ3”Gžüy°šã0Í÷ò϶‘WPŒ ™Jc0uÛŒcç‘·Ï„L±Ôßâ»å“*ˆRLœÛaú\vÄ"§Áre¶ª¹Íä1GÛñVüÜË´ZGU]pœ0isÌÇaDËIóó2óv½§ôÖƒH$‘óä'öA_úk‡_/ áF.èͯ®ä¹ÇŒhÁ³µLÃîÇæxt/˜èÃè!ÏøÎ²ô²¶Pé4N Lࣟ3#—Ï4qF%R/ˆlÌÿ¡‰³·…"-$ÕûvöTÃ×g.+HdMïŸn1HM¥>vÓ¡mvÜÏÓœžÎ› Ûuο8UYן"™‚ý§÷GáR1Ë´µÞ ~ÌDUê3Ôà#Ý ¯¿¡7 cs(SÛ+C¸ÔY°´ýö¯ ©É2Óç˜Æ×#l]UâëÉ®ĕàßÑÆ;‹‡Ý/Ð`3àT#™%“ •8¾xŠtR *Íd!8Š4†[Þ¼ri·µ ë:îý,Ù|wB<ÝàÛŸ•c/3ÙçwYœåCŸÌü’݈Z–i¿¬8µA};B»§úóq­Èp­èãÄxÕÍ‘zÒÛ>Ú¾#" ¦9-…ÆQV€2‚ pNвÉ!|âŸK^¾µ'j…¹aw¥¿øB=ï·Ã8BdPÒÐã‹0véf©øS»Q+者ݩÚÜüúŒ¡ñÃ;JxÖqŸ}“AUq:Þ~¶T} ìØ£*S>Æ®ãxýhµWÿå°üóLJ¾¸bd³}Ó‡)«k7iœ–Ú-$ƒ>,«TLøÎ=¾ZҖзn$º¾úüþ–Wèendstream endobj 785 0 obj 3148 endobj 788 0 obj <> stream xœXÝŽë4¾ïSäá¢Ý;ÿ‚@€@:@%.Îá"›ºÛ@÷Ä e_bßáœ'efì±Ó $´›±gÆãùùfÜ÷I–Ê$Ã?ÿ¿?o>ÿ¥ªëäÙn²äyó~#i;ñÿúsòõYš2‘2Ù6NN&µJêªIvçÍ[ñý¸}ÌU›Ö2óq°LU¢ï¬fJtþK)qÆeÅf‡gV‘çâÆýÐwó0>3O¥¥x¿t[Ù¦m[Jñ×ViÛ”ÐÓ»-+©Ä±³QöIë1Š›ó0ÏzÏ ¥è³ž˜»…+°Í…£™õö÷Ýà°Í;!/Ë´)pÄn¿ÏÛÝ7>ªÒÊm½|J.®Ç¡?F2¸)Wxâ¤fr'=æ•J Pÿ(•Ó2wnñ¾µ {È,-òVÐ ñ»ªÈ;~¹ŸÌÜõœòn)vt#$Šœ{Yf&¥8 cØ„½ðÉæ’ÖÆ; rõd&æ,Å•Œ«à+šT‹½žuïüŒ+ï­°G³UešeM+®ãC8¶÷áûæÌþØM]ïåOøðåÇH€rtºìÇÍî³·Â,³»h–ƒ²J,ã^O£îæ#¯q¨‘¨¤¸;̃ýJY .ÿÊ­‚üÞpnÌ>H™ÑÕŠßõµ‚xX»LnÄßÝùrÒ,RŠ7?ý…Žký,–o9?é¿'? œ½•¤‚xê&O9=õ$dü.0B5ø„ ±RŒËùIOq—,¦ïF<BY7ë2Yo-ëJØó¯ì©Åå89p Z‰š`¡OKWwUê.SiÖrÝ÷uW¦%×ÝGÖTBñ÷ÝNÕÖœõ<œµÆ8{o ‡]fuZ¶«:ï3&³Ià. X(Kñ÷œ ±ÉUpâB÷&—%%ú’$%½*çýÉPøª&mÚÂe”ut Ì@ÌÛˆ¤¢áo¸Ïl.žÊ ‹'ÓkËŽGˆ½¯‚¸:õ: ³¶q¯9_ ?YKÓªÕ™Iú>w„žÉU]¾ƒ:G}€úW>×°½-2ÀÉÛâ]婺‚ªTpD ÉF}„ÖÁăv«WÏ•Á‘Ž q¤›™jÅÞÄo@w«¼™¢+2ÁXâì‘â0™3kA÷’Ÿ˜=:ë1e‹KñÕwïÊ<Ú2°Åms{¸Ï(³RbQyêJ\•2•mÅ—FªVN9~7GÃlà¶a¯y«ÃšÚáw.ݳþ"îQ2:àÑ¡{Õ|FMÈö੪t ¶!œ¨°ÐÊí1 ¶”šî» „󌯘Rþ{í‚ìƒ\ÓXäJ¼´ÈÓi†Ö¤MìÜMsræ#•éu ]$“9 Ó>ù°ói„Ø~LŠê&‘9AQ(âPçÍ6‰l†ŠþµŸ†Ëœ c¿U¨ŠòHhFËZbE(p—ªsŠ]L7¤}´sòs<Bt Ë|Àû0«ÄJöœØôûÓ²ÇfÌ+o‚¥,½ð ÁÞi¨ÄëI§Qߎk„štœÝÉšh"l”Ûæ/Õ>âÕªöÙö†>ŒÛ-øR©ËÐý & ï¿BAc©”o‹ÀZ¼k E¡¸9àœ¨*I†û2AªÁkœp,!0Á¥ PÐ,qŸ2Òox—òf!zhÆ ¤úÎÃ~­7k‰pt…Áw ÆÌ~1Ã8¯hDZpåé †]ê[-LDÒ4ô­¦>0·’ZĆ e"çãŠâXQyP$B1Á+/~E*h‚ïˆèþÁ-5OnW­X‚¨¼U m‰¢ÙÂú×à2Ñó¹‚%í8c6µi!Gó [ª¸²Ýy8 Ý´reà¥Va`( àÑDï‡ÞCp+t}cÐùúö¥ëµ' ïQ&Ø£ÌÎÙáü ã¾_'šÆü¯+˜ŠÂábƒØ¤ÏÚ8…À#c%´>ÓŒ§— p¥ø/„‹7aàCð7ÞƒãØw»œ\àó¬Is`[§­ÁÔùzÒÌ g­f²t rª2AÉÚGíQ_ì}Ô”Jó¼`85~5áyš'Ã3ÎÊï¶©g®ý­[‡g‰{CÁjX3>bŽMÎ!l}.ìBoRÏrùɤ 01éÍeÐ{~/­›T¡*Ìd‘l?Ý(èE0@ÈÜ'\xøÉ¢]ýàòË2âTFðüNäÐÎý›ÝægøûˆáÖ;endstream endobj 789 0 obj 1923 endobj 792 0 obj <> stream xœ­ZýŽã¶ÿŸ‚½"¬‘õqý#_H)Ò6iн‘m®W=[r$ùö¶È3ä!úíö7CR’×Þ$Es‹ÛÉáp8üÍpfx?ˆ8R"¦ÿïzõá_³<Ûþ*Û«® ÿÏz/>½a’B¨LÜÜ]¹yJ(“D:KEŽ¿7û«[™F╆ºÙŠ~¨ºÅR•QY&™ìF<ÔýøúOß Û¬Û hßÝü‘øF(E|—…"~J,u.n6`øe³X&±ŽŠDÉá¾îC+•U³ñ8Åõ ­ec*Ê"+å»!t§r}_Ûù%Æ)J®[7Åòíø5Ò&sþ‰\U}½l´¼[`EnrY­ë]=Ô6H©RÙÞú”ÉÍ*³ÔÈê1ì#‘ÐÎD_7‡c?6²ž±e ÚÍuU²Ý׬wÖ©Òâæ««›neß6e”¤KÃß™qÒpÃdrßv#Y&gúkÚ*äFÞÙj8v´?Ç…d LrÙvR™kBgí4ôf¡â(V©–Ö¿d.CV-ä»Ã®jª¡n›~½¯÷‡¦Ž/Ž»]àTBŽ»¶Ûó¤IÜz6[/´ùÉ Ï‰VÉ$:{g;èØŠÞ®‰§hïÁOì«æXí®ÅÃ}½¾gŒ½¨áÁ%²hñþ•Ž£4'D»3øvQ`ó1vFçoÒ(âxªo¦’L#4P˜PËŸº>Ð6}ýÎ7bׇVé Fß*qH•ü´(ûÀ¦ógÖSµ›H>i0cM_†5 ‡ýôÝ·[ÛÚ§®á¾š øØ§ÆÐ=Ntíq˜ø³-ŸBÕŸ?Žâ]Eg ⤌R£eÕûï4ðçDv¶Ú„¡à¸‘IpQèIå54y=M>övÛnjÍLzÁÌ(B }i(ú…Îæâ[Z1ÜûêΕ´›zhgLÉÂÚkH>²«iè§iç k›¡ª²ë‘ï¨:RZX*}7¼ôØðÚ]2cö§ò #çüâÇ€áŽþÅâæWr±ÞU»º‘¿% LzW=öõ?­(#C}M;Øþ_>¨HQßû(^ÑÇPï­H>LÉ R:Yy ¤¿µ¸,†Î®vüaß "pþ”òÅ«v#z"††Å¶«–ëº=ö⛣µÍõ b¿[Q‰Å]$¶Kú¢Î_µeWû‰M»¤uf³Vb%ÖïcÚ*Õ,Ü´q92y&˜¼Å¨_EŽðÖ6ÞÄwg»Ò—A/âÙ.¶ß‹Õ÷bù›HØ%sÚ z~¿Y¢ñ#šü`‘ï/­rr)އHmºÿoJX„Ë…1貌â<—{ºH¸QzpSCŰŸftè}Sím˜ ]…¡]í¶–NêŽÐèëæFJ˜½žZ|3‡I|……‘:|³ÇžÏ]òL@€‘”|%Ì]vm›aâ¿©;Xz G“‘2š|e‡- y}øƒ øÐãáÐöv.ÖŒŒ/uµÛ!bq'QkÒ W"2%ÜPL‡ìf~ZIe’M$¾îÚµBbÐÒ­EwlȲÝŲn÷¸[6/¿É‚—&޲$=A€<ìIJnÖ»ãÆÞÁEˆg„9‡Î'}Ü;w¢ l^y‡J¢”÷Þߥs‡á‚Lß5½¯66´Ìx„|‚Ýðx˜­¥å¾Â´bx7Û_Zrk¶ K•nDºÞÃÄÕ(pÛN àNq1’§£Û\ü~/—=<.ÜAèÀÝ9ºóã0‘UÓtD‘Ú Lc<ÐÑ]ÆDjÎeúÑ¡zi©4-Ý­´?Ô )fú+ˆ*ܬv !ñ¶†hlϹ|pèA„âv8ÃÕùm°ÌÁ‡ °TE”‘4$óö­x^lF0ÏB¿FˆG {‚­?ñ’¼ŠhéøÄ×m?ümÝÕ‡a!̃í^/"qÑUÜ ¢¿o»Øµí᜴¼“—óœ ÅÈ·äNt9 2^^ Ãä>€ ;.("ãäEJsq¬n¿¿£=*˜)¶è»ÞóV§RAØLøÀ"mÄÒDÎâ¢È¢ YÎn>eœ¬TD:Ç”$ŒÎÝ}Ë×*ökO÷³‹©(Ÿ»´BA-à¯\1åÇã^H¦é¡_à«Çž¥Æ¡ó´”çü›çè}Dò)M¢_Nèù‰†×)‹I&óF‹Ä³š:S¤†ç”¤ Oúñ„,ØWî6”%‘2y*­vp){ýLÇ Æªd@¹™yÂn;ˆ<’!ÿ©š.2$<ÎÂÒœ<ÚN°R®_\!ƒÖ3_‚¢Á39_ņ@oæì.k%‡Þáv"w¤™ëRÐ~tz+?B*mà ·b2º)á–g—5^ ?Hò¹Æh]Ø@›gŠ øè’B¯çt;M„·r¹X¦)dƒcàî\Û@ŸÖE9Ww~‰;Nzr¢Ò…ugÁ4/jœ´r®q“‘œ©/fsÀ/ÏÿËà¦=3US z&ºy&1ÀâüǸö9ötÊðén¨±“M‘^ý,¼äÀÈ'~ÅßݳøÎÀ’]Ëua~ÏáÛ\À·dlLórDý{ ´D¥É²g0²Þ/S˜,™bˆ§{RðùÉ)’MŽý·ñëp±:u4>žã>)Sй· RTÁHÅEë¼C9.¹tŽq”(\¿eF1±ò,žª‡ÓVsuº|õ×`àÒêÆÚP@“~ìöLegT® aëgÿÛŸE™ØÒg<ƒ¸rÏÿÉê$H%‡>ªöKªs憫¨.±¥†ÊŸËoÜpæSš0³š Ì*b^OCm320’3dú¦üÈÕT©`»nÔJî‘V[®¤2yHx£’žÀô¡«‡K•ž3WVýŽ\Î**6›ªÛ„aýtYŸ¨{rJÔŸ”‹]\ιÒ}+ªÃÁVåT!óI† åÃB0¿¢jéînéêxe¬C!×%çH†?k;JÖ9fÁ^Ëþõâz,fùÂÂlD:\;äIº]pv-Tuù4q'Mßf,aÐôLnêÀ+5.o =2ÔÞm˜ž&°KH`]»¼˜Àºå“Óå÷õö~\3;+¨¸%q qŠéÉ\‰0|oì®^Ù9à.”RÕdèÚÍqmG¥1þ8ÜÄ(ÆÃcѽ½$Ú•!ý·ÓjÎJõ½Ú\õ³È Yíë]]~mJÕÜ ðrüȼšÍ ‹¦%þÞ%ü=ØÕ¬=c—¯;¾óG˜¡^s©Ú¯±ªÆ=ò›NW­Ëup7µî'–Õ¨%*¯Ägv,v¾":´HhE목§¯@;*/î‘ôBAËS­(Ö¹Œœõ ý:¹„ìšZÙìÈóØU‰§·X ŘD\Wl¼»I›úŽã¾R)É/#¡<ЋDhi÷âCß¡+s+KÂë’#Ì]ÙÙñ×ðNU3ñpîßÐ.=P•H‹$áJ›—õf”œ7ÕPM¼Nל8Íá91bñ_>ñJþ ¤À¡Î E…ƒ<Ÿ7›PÞö™š? ]‡^*®ï}+÷¯ þÛaГ:X¿tøÑ3öî ÒË5{ãš—Âüè )UɧV_o›ð®ævâk­A’*ùPÛ5ûðAQîùr£dÕ4a(@Æ7¿¾Y$¾–Ëc·"}¸¡œ.¾$‹§—$/âΓ>áÒŸTcZ-{‹u.lVžõƒ7£|e1é6U; O;Av;.Š.™ÑÒ{™Æ’©q¶b¹‚ëÈ‹$sµ8z:zkû³8Ö]†úï­Û &ÃOÒNÈq äÛÃw?mð0<™uªJX—ÎYÃuÌÀ%èÐ÷”t›49P3ÏÂY&¼az«Vô •ûòÜõÄì´ì– ú%ö©¬g¼ÝÍéɪ‰Og8ÖÝÃõüÁEŠ^9T0dõ<újeP08¯qöÖAG©_ ë*úõX✠s¡÷‡ ˆúŽ‚®†ç:;wÉ’jµ‹§eä’*õñÿ“E1%Ö®‚;ÿï ÿÓ‚x-Ó× bòùÍÕ7øù/¾,öendstream endobj 793 0 obj 3191 endobj 800 0 obj <> stream xœ•ÙrÜÆñ_Š“ è"áÅ 8OŠã(JÅ®L¹R’“Â.f¹0±À ÀŠZW¾Aÿ`~iúœÁ””â13=Ý==}ϾõAè-ðOþ¯¶W_ý=Ësï~¼Zx÷Wo¯BZöäßjëýþ@ò8öÂл[_ñ¾Ð+/Ï ïn{åoLU7ݽ÷«ÿ~_MMßU­÷¢›6fû«ë»Ÿ‘ÊæÛ0ònÃ2ˆ’Ø»«¯^ûws}åQP,2ÿÃ0N2Š¿n³ššë( Ê2Žýw×!|iáë˜Ü =M—0ý®©Í(KQâWj2×a,qæ¿W a¦|ëDâ¯ûÁ &Ë€î³2Ž£9ß)¡GÖŠ#ìÍ4švíγÝÛÓE¹¿4neÜïvmcj]Mý¦á0n\÷ûek®¼ûóHðî/Ww_¾ößî{ |›$ ðWÃÃà8^2ÿOz:žHü¶éP>4,3¿ë‡mÕ¶7³ê,2É(S¿_ËwHâdD©ßšõävÕ0Ý(’#¸•é¦ÅkÑ1hæW®¹Û—ûCs¿9!¸U= EPƒzÀņy·?‚êÈÒ,ˆò<=£Eˆ÷9]Oüf”ïŒ$w.àÈyêÓ5ЖØ_ô;#u’é™&S³ªZYJáZ«Á‘Xmª¡ZMfp\5ÊPVˆ‚é`®¢›¿Û8FQó•òûj»kco74ݤi ·;mX·•ÿÉJ e%…\&¢Ðr[UûÑD=è0Yn´ΈàÚÒ€ ٽɌRT\í#±½¹¾qûH3xñ•jrìEG‡g‡IŽƒÝÓuX€' Ê CíË©rë“÷ªózDã=’΄Yâ÷C=Þx0éÆƒÛò¦fj׌ž˜@@¨Üè‘#ô—ƒ©€ÛèçyÍ2 ’$ö™UgŸp›“û$”Q†ièÿõ»t?8Ë^Ч<ØCêö¬$[Ob\7¬ß²yÚ̶°a0‹âˆ”`µf¡aî›jµQN#œªk8:ú¯ÙIðÃu\òl3múý$+`G 5ãÍì\3¿ÁÜd%°´ìà„ñx øÊ<Íü~ßÖ –°Ç&˜Ò¯‡ŠÃœì±S˜=èÔtû~?¢_¥Y€XýV÷ªÆÒ0®~çèn• [$0ºg$2ÃßÏÐÏi-ûi²ŒQdÆ ƒ™8Ž6pí=ê8ÒQÁÕ„Ü®rîIgyRAÐlš‚q»hÜ£)çÎÑÈ!1qlüÑÂqè»Ù9ªAqƒÅÝk"}”¦uºéäZ²R¯Åßõ”sþöHúQÞ2)¡F$Ù£¡¥èm¾Ë^OÝh ÀIŒ[SûA¡1[/-‚Œ;»?Qó(ö!©$§íL”òb0ž@¦ ¬ÜY> Ä©ÍY” àjßNn猂- …8”M³c—Ù>s~%Üq>Xs?\ToUh¨º$6íï¼Õ¦ïG¬­!%m1»mÞˆeZê?ðå©>aÂÙƒ¡uÞÆ´»õ¾õšÎû0¡çÁ/´Èc­±¦&jjd6 –˜þ÷X^ž\nˆ¢ õr¿ýHò Ãaøv(u›•®·\r‘^@úpl`¹` àËY¾'K Žà6Ú¶']€>’k8gIT!Š8tˆãHü<¯ÄÚº}¥¤¸Äal`t›¬Aô{©ã³ÙšÙþfåŠEtöйþÈ"!&ð:odˆ„{]’èNƒ8;Б5íâ€ÍßX(^òÚUŠíË@ôÉ"™6öx5=KbùcÓ*ï°eiìnÍü™…Çì%^<“½4W׺N"°“.> É4ã®Z¡²áå¨P`÷¦œ‡¨Ð¬Ê´á18ƒO"E!…O2ÓyJ4V5$Ò>J|  `‡@ è {Ôt+Ÿ£¥’ hîtF¶nú¡ùœ¼[ä$‡PDâ&Ð9*•ÍØ Ì­&Š[%VÅ9y`ú†\ ¥* ¡ NeN­j/ÛŒ2SˆÑ7fëÂCNÙ>»kFqʬßú ù&xãf×Bé­r,¨4¶Ë¾å€'»î,'@’Œ®®KÀI„‰Ï$³ŠfÜ7S…¶Û˜Rà\‚8å¡É,$kbŒÞ.p[~àJCÒܳrBpÍ’$ ðUÉ‚n† }gMÑÔ7ŽƒfÒ˜ðN–<¤ðÍÖ¶H“ü´4¢ä[]«¤íÀUÑ÷Úq5/¡ÕÖ æ¨ÒÖÞòjÍ-($I— $y’À{ Aœå’æ……v3Ù$¢(@[ÚC¡ZQ×ëhžÍ­qŒ2•+ë´žKÆ­¹‘ÖÁÐ-g½Îì8dH¶Ëßá‚z~Š›kQœ³Lè»ÔHB`RH ¦Î¬Ì8Vƒž ŒØÔ…neïuvÃMí¨±{Üúåi¤í“Å®ÚUW+DÒDÉ{ÀÒuXZRÚ)Áž‡¾£X+ BA·Û™ntd*]Ëý¶Ÿ,âÐu{¡µ1è•Br (ÂWâ\p\ øû9ït»!CÕÝ›Àê%õ*вCéUÒ7jÃhWiråäDG£ ‘=Øqèhv(Dûõ‡UÞ€š=…±Ö= ”f¥È!Èl{å½/Ë$§ÉŒllMP·é1°6àg·PSÕº.ù®À!"ÏtãŠÁfÚx})$¦‚ýjUüZSÕ?íÇ ý哜(RC¯nž(Gß‚"ïƒ9x/Ÿ ·ó~eZPMøÖgyô©W*¤þâ޲Ȱ&blŠyp°csßU”n ýWkù†Ê®ëìªâ"&Ý,y<Ÿâ™òéÆíÿÆo«Ÿ¸˜`æxªq„ðRnßwMg/1 t.~UÜÜ.¨Øîgo#G%­c?ð ßP Öò†ãÈ6îyК‰û 8ãùeûtã¶reD ñiö}s¦7¬Ç¡”‡þ‹í©Þ„qiy8"ÿØTÃNfßp-ô×-?ðÒ3×(xì5Žzœì²ÐNë`E°œÂÌFÄÛ(‚|?œUp. z œÃ¸Nh*¦ÌD²š¦ý¹cH,±l»Üô …­d±0:.-é;õ³ƒC9£` ûà°pÇP𸗪Óûг,HÂ\îë‹ÓëÊ‚lVé+niHépÆ„ï¼%‰,Îc”´Ù`¶;]d1d:1ÿÙ~M{¸4û2Ì~ÀÄod}QÚN. Ñ?Vóš·Â]Ò‹Q–}Ê/B¥žCÝîö¤üŒ³¸ˆgÙs¾) ìô^ÃVrJD‘ÂŽŽF?(¨š·Ö˜‡ªÅ>eœ†ôîIa ¹• nWµN$®Q„϶'yí¿ t•£Ã)\ ´ía®ßµ§ jöžY÷"ÅÔsÚ $yh{C$u¡7ö[#£ Yù]€’ñ½ÓÈ6=hû…ÆfI™G¿þG¶e·ìO¸c£ Xú4݃jq žÏ)ñ/€¬«ž<Žƒ‚šƒ àîa™ûÆàª»§7×Úû!˜_¤æ÷› ìGgì ¥J>A!ÈåUm ´BmÆ™o·Ä¼·ÅÀúE˜Óg\,ƒæG.–æ ûF?3uYŠkËñM9àN`zéÀèHÞa>§´Ž–£©êê­úJjôXJNˆE¤Q*2üæ‹ó˜S…¬Rurº? !öª ½<סYÈòàØ;›Ðœ<¨‹Sÿ<¡‚óP6gÓ*l$yñWÉçdVüø:6ï9µŠèÁò©UDŸš[!M­øéë¨8ɤðµ”L ×3ɤËån_c)>Ûx¾±Ø€E6ß9Ï•òÅlñÑp‹–·Uº’„G5ì~¤¶_”§ÆøÎbl\ÒD¡ÁAžÌôúF&ÓXßq"–ò\yã'%’oï®þÿªiìendstream endobj 801 0 obj 3936 endobj 805 0 obj <> stream xœ:ÛŽëFrïó„7[Äð~qžÖÉ»Àn<ø,`J¤F´)R‡¤<Àß°ÿ`iêÚMj4“Åàà°».]]]]·Ög/ðC/À?ùÿp~ø÷ÿÎòÜ{šïéáóCH`Oþ;œ½¯¥H½0ôLzyäåYá=ž¾7§f³‹³ØòÔÔÕ\ɨHL;OMwäq$æ0ôS;Í“â—fhP&¦RÄØœÛ_æëhùæ ¼Ô4ýa¨›Z'Js¾Níaëž7¥_–Y’ša¬§`_:ˆM×öÍXõµ“t`跰ª:ÀûûãŸPGe,:J¢ÜKPÓcý`¦¹ú¹Ù<þø°“é]!à{S·ã&Î@Ψ4Íann&eeÕD~œÂë{ãovQZøiZ˜ÇMŽ{,"3¸ÉsõíEa\à`\ðÖ_ÿòƒàý°0èâ^/‹} 7÷(‹!ºÀn¬|K­“`À:h£Š]ég!zõeôò?øˆîe“¡E‰ÙÞ!Ë16wS3Ït›h6×/H‡³• h–'¢kÁÎ++zæD‡ùý0ŸÜè¾U.H)ov†:rþþ—ê|éš-iõ ¾™Ò‰0'ë"û‰C ¿¡ùÇ8Í zÓA8(ÍubQ˜Tø0h›}gùR¬=*ß\B-–tp\ äEµ£{_„â}5Yy"ZÒwk>Z̰´nqÑMVnÛ7þt²Š“›“ÚxG4‚ëÛWg ƒËL±0Ê"aÞ¼JŒÊl%IÕó®#g@E޲ŸÝ2ò¦[Ï™e~’lj҇ѭ¾‚Å0“s$93ñ>Ùã ïmÿG»HõR3)Jµ‰Ð±C~rã†e¼önp‡³âƒûd zœ8_oZ 9[ÐxßÂ9Û·Ä@G ³Pÿ‡€ ¼B‘itL* e+ íhköS4ŽÌßÑ}3;šVèƒ<†ÛŽeë`3^38˜f«| Þ¢ð#Y!;ZL¸}ù½}–+Æ‹=bæ×IrXíR.«‡½õ@ÛÞ<€a!­G$`zx¹eòNðoßB ±ÅÃú›/9k óuÖRääs36çªíYšz+æ <,Þs·[ÍAb½QaŒ5…½sCV2×¾nÆ®zyu Ì3¥ÙZ¹À<˜í6ÀÔpëQä ¶êÚ¹5æ—‹¢Alä ‰ƒ«©Eîmñ]òk%Å : £ÉMPî%ßN«æ$”˜gÿo‚6\&~žÄr™qâM×Ëeà«@`(3α^¥Î„^©n6->6b¬Dl~jûZYÁ’Ñ…æu(¤éˆC¡¢<7:Rœ P/Äl¦ÐU3\ë˜jÛÒl蜡Ȁó,%9Q®%NQXü}³TÃ|›Ú“¨.æA\Ü3 „D¡X¡e”ðÑü;þVè¾é¥?4vEIKNìël@×£œr²L‡8³K¹O,¤°7Wá¡øÁÝ/æÏÕø“Ëìk'¶ÓÈx=œ|7üέœByjÃêÛ)sC” AÈI9’;ÃLçÓØÝqžuqÕ‚PH±Èàp—Ü @* 2öànÈ>•ÑÄY à´îÎÉÓ2…qRƒYîµý•³löÍ¡‚|J)ÌþÅ1âò®Êhœ Þ¹úqÛùÅ-È…«£§FÜNÂ%„ª´ëÀ{VyYÂ7ênúíàU³×UB¸€<#ê:Qèx« V·B7åÝ·ö¯^;ñÈÛÙEëóÅÇ¡ö&H€¼á:zOcµ;´Ãuòþv…سý›I|9Í“÷Åõ¯ÞÑ÷žvøáÈ|ñç¢W× }?ì0Î)1 ì½½wøÈö¾W퀓ÙUq„îzGÀþèâ2’ìnD×^`¢m¼²Zš‡œÇY-cr1ÆÐÈÖºÙêb`µE8ÍU~SêlsÖ[·Í¼‹•&Bu#[]Ó4Õá¤ücsÜÔ\±;$•ÌRèð²àìó©t͘*‚è{ò?5ÿ †BîÛ Wk䉓"î÷Ò! ;L”-ÔÆ3Xþ¡¤ÞT=T _Pó-u®dˆ±cƒ(à»^.àÙ•qŠ~‰oŽEbí@N6L².ÕV¡Ðl-íÃF ·é¨,!›Š$þÁw¨i‚dÝô¢þ¨ªÉQP¨ ùÌüfÝÌïŠ`Ó \ËüÆ~ä÷­[}o¯÷uVNZ2 ̲ºÖФ l].{¡Ê÷f<7µÃ{¥s+ +Sû›ŽÕˆNEÌþ'ñL¨âë-[;s9]ªC#°Ó ù¹!OCȱdLŒJ]Á£ø¶‘Ë$9›2”ø:ƒmûŒ#ÂÚ)…ZÊ Ö‰7°dD>ž7Írüxæu Ÿ”ÆÔN`€@8N:VÒË·vOya_çr©3yd÷[·ð²ª±þÁ££¬U &,gì‰d>ÐÅnAJY’2‹¹j»ÉñBWÊwñÜ^èfÉwEmg‡’R­ç¶ŒX-0+Öä°] é2JÜó!Ýâža‚.ÂT[sï ÚÞ‚žëû„–}5Z%';‚7[òuýANÒŠGÏW,\ä6µIIz~Ò·à]NÍá']8xwåÃæÚÏ“£íߘa…~œ«48ÈÀîŸF*Uhìüë(Ô´ ÉÀ¾Úsã@SûÔWøÔ·•9Ø6ûY-°ƒ"zRxhÚ£ûž¹¯GCûªD¼Ñ:åS¼r62=Ø=” ü œ¯˜šŒµ¥$Ë~‚…‡ëÓi!Ôlq[ç–.Ã4µÒdo´ôL°oõ(keFÔY¤Ss®‚«Óã§ï¼Ð£ugAb“á·rîÍTJ_Ä-Þ´£cµÈ¾Ïm×Ò³©¸°®™çft”Øœ|7þZ“z]éÙ%âRQd6CçÄÕEû&ÒèÝ6WF׉K•Œ<Ã~1O”÷ <ÂHø%¾³µ²·Û = rÈq¥Íbž0_¦Á%¤8aiG…K0f¸âÎ}f]X® tçuNr÷H?å‚°?:6¶¬J‹{ÛË<s#/#/ù(eÑ. 3?OÓE_±ïÈ#A¦*-TÅð»°w‚DÜB¥S o…!ôÔº&®‡ÆÇÑxRÇÆáµ½¼c „PóO •}ªoöÕ4¯V^À¸AÌì• †G–Ôy±ÊX`pK¿}FB(gDáéƒï}3{íäÉ%Å^#UZ΋²W51søòÖáîYûó¤¬ö°¬ñ>_a«ž‚'Ù®4Ÿ'¨Q[½7VíÔLTþÑôþÅÃ>§»Ny¼nÛ•ì$Û…Å¢Œ¸kmê+$»-›OB½’áè¾+E´ç‘P%£q®æPçjl»¾ˆ{n{ ºXSh4Í ß†DMšA8AN׉ÀÏT—vÖŠ•É'Ø‹ aµššO…'ÖÝñ˜ãaBfsæ^ˆõɨv!y7³Œ‹Î~áAiqõKß)U>!üQ¾‚ÈH‚ùƳ—QFÌ+_±.ê÷Sg’±9Õ¢oz÷£E@'ã0C¸¡—:™âÇ*;pߢ,]o½:µe)·©DÊ!f±"ˆ18ÐöLÝè’{.ð3ÖvpLýsiã ÖKMêQ‰FìLèÅeÑè½WoD€Ëû_×QìG&–)3/-©9JÙ /ÀŇE«)w0+>èKoÇWn•ƒ‚B®“£ÄLÉ*ëEagLU™lšð£Î‘-†ø«J>‹ø•ñ|)ÇÈô™3y„–”¥L ÕBSj:ŽXR^bœ¹µ#óùz7*¯Ú„›¸5p]þ9¤}Ã+"ʹoÎC/M;»jH¬ ¢8ˆÈˆŽ]õ$#l;°­âHJwÆK¨A+^Û餓´Aú W·2ñ;; y!dúØ±Š­Z}]¨ W ×ÃìÖ 4V+”.moW;Äœ¤Uµ´¸„¬r ãÜškTzýj{ üX½…`‚·„ŸÎ¨;ŠÕï=nô€`¾`5G\sEÛ¦ÌÀ³‰ÃZ9÷Û£[ÌÓÞþïàýêÕ¾×ì¨-ùä5:ó‡zƒ_aXÃ߯Þǰey)wá"V}·)ðGH?¯ƒ¨³¨z¥¨}~¶æ3(J‰¿o }¡£W\(¨á~ΤÚM)ÒÈÏ „ÅŒ1…ßêXÜ0}çÚ„L)t²ç4ð»[‡Çy?áOl$(agåÙѯ˜Ùä›Y¤ï¼½ª ìÄ-³EÉóÆË¥Üüë1i—Ú¡mVñãÿÎNJüUÚð^a€ Sè'Æd~Ëù‡|·Ú yˆº.cæñ*²”Éú·–2Ùq/‚ßÙQJþe“ˆ ùŒ°ãw ¦sòäÅ›zÞ:”Ê}>Œ€±ÝÙxA-EÇPŸyò˜Ýš¼¼äàåV//ø8ªÏC¹x¥«tÚL/çýÐ)‹Ô"KGdŒAJóÛp*¸ù·uŒ 5ø]õŽÉ0‚S¢&žÎPúê;nßôŽr¯/C9=ôGͶèvä6Ä­a÷!êXÄvJNy2î:VÛôJ¿²d„ÄüÑNN2™èÍ˸“@þMCÁ 臎…¸miR¨ÌèåQëhaxÛq$¶u)¿»È¤r'¥­ÿ(/]¤5qœPTÂ_œr€n9’…¿  Ðè»wÓal÷–EøÆ ‚#mªÊb×I:1“Ýk8*}âúGä5…dÝ™fæÒy‘ï±ìŠaƒ_Ý”[‹˜ó‡W¥V.Ul¨-ˆ„#þÄ”ya\ÇgÈR`›ù'A:2¿Çç_ÿI>¤¨tð·ç‘ýųñp<‘”n2Ì„©ý­VšùAb Îü£@~>+àeñþú—ï¸bEÈ'“@ Lþóñáoð÷¸y.µendstream endobj 806 0 obj 4341 endobj 810 0 obj <> stream xœ…:ÛŽëÆ‘ïóD¬9ÙZìæ5Oö.v“³ØY{cq&ÕÒ0–HY¤<žÀ¿óÙ/ݺv·¤94À°ºª«/U]·î“U–'+üÉÿþp÷å·U]'»ùn•ìî~¼Ë È¿þüÛ’4e’çÉÓöŽûåIm’ºj’§ÃÝÇô»—é¼ßÜ?ÚÚfùʤoÓ™UcÒÑ9A­ê6ÝLçõÞ Ü¶éüÒŽ³R·étR6—´yºÝwËü œŠô¯çyQ¨J—·£§\^ügì»~q§ˆòuè]¦þÓ÷e·Ÿ'Zž¾ts˜Ë<Üý_žþë.7ÉÓß=ýîcºîæ¡¿4-PÀÌçóñ8m0é×B@[³ýVQMÚõý°qãjc•>§4À—ßÖÆèf—ö† ÚÜ¥ÿzÿô×KYج,mËèi›U™y¾Ï„emÓ'Ü t>vý0îBÃyFÉ0”£|Vlà óªËÔÝçEÖýÏÝá¸wa¯÷mÖ¶UQ¦ÝÆì_¦ÙyfMºLñ¡ûá>_e«¼0iÄhXhåyUgu™'¸É¸"×Ío [Ãøq²¶îUzrÝ&ST!b$ ½q³Bu:NKÜíÇópr‚m-m S# ¨:íŽG×Âk·¼:\™öξëªbÕ•)¬Hßy¶ë˜Ï~)²ÐÎј¬ºÔ©L?fÞÔ¶åÕïÜ”¿9™¶ 'H•ÌKwŸ·Äþ'WÙ¤.éñ\&°æn¿K^Ý~Ÿðª’ýðƒ—žKPà¿Wí³VÕË€$ÚleMCú·Ûu¿l³Ýc÷˵">zR+’ûãtop¦I_ÂHÑÜN÷LJOÜ “gEÑi \ÙôÀgœ°F$I(ÜaE¨"3‰‰`8Õ£*ð[iÚú¼çĶcmËK·„ž¨Ã~çBóù¾/8º±Ÿ6tî´… ƒÓ輌Q¡@©‹¼ÉLþ'O»¨I³¸±ÑÓXµrnÄÖ®€±)Õ*üVúÂú{¡ ‚3&+VÆ*-Ÿèºe&ƒÎƒæ¼ó àÎ3G ÓYùÛaq‡ˆ­ŸpíÂ'š´’ô³M³Ðü=ÍÖ”`©¬½<ï2… W °%wt;ô ³Úï'œÝ«ÛYRÌ0]Cüñƒ@Öà˜c#Æ_€Ã°Ùì#˜Üuª/ 5–ùÆt~:r›`þüdº9f:DÐ…¯š?3ô§x‚q ¤H2Ø+Ü`‰·¾¸óñÇÀpÜq饈Yã~J=BØ Ñ®;±„ÌöÓ¸£¡>®g’† vtÚ°é'Ò Á : †Ù`·ç½ò(XÖ4ØÈv¹[œ’k¦ h>eäm fsÄFÓ¸Ìt+Á d¶ä𕾞?}ƒ‡ezª·Y0ú…ÑÒ ò_´!œYAÔdŒn5äªýKÒAÈOë|'âç0>ý*y{’ÀfG·éöÉõgãN@–do11òÖ†5 ²¡ãäŒ æDä@ßÉg²@ðÁóhÙ¥­ÔEÛnMº›¦"RH¼#ûäÓp ¡@DÃÙM<øù°fÉ›~î-´ñæ„Gí–Ϲ1L-l¤ ]ÿ¢S¨®"”ëCâc›ÿóNºKvI—ü’l³d÷H__fºNÖIÿÀë,é 0Øû´ƒï-@Ȱ©‚¦[Á7Y³’3üý}³Âu‘BCNœlu©°ŒGç§Q6ÀrûÉg9q|CY’€ à sQ@L¡vƒ©8xe¦¢† |Ó-Ã4vû0ɯG 8Š«“™Êcà‚éèüT0¨Ñf°G*AQCm1#öÈ×a¿÷‚Æå4mίÁò¬*À'M·®[Î'Α‘ÀH&‹ßzÒ/Á5Â4> }P¼I×ÞŠžJ¯×aLE0${aˉչWÉc–—ÞNì@ ¸÷BR:7ˆ‡m!ýÅt`+†þ¼×°–‹TÌ”UœÏå…&lE¶ªZ_ûˆ†„BeÎFÔmÿå&¶6kÔþcÐÉ–Ñóo«Ú{€pl=kÖÁϳ.WзҮ›œô2xomÊ,kÃÚª…¬ˆd™~현3-˜Ã°,ìo„ÞW_Œ¯¾ÀçEªP¬â­ÔzÁ–^Ùý" KÎÔ—èšÒzOò꯴`Ovnt'p¢¦ vLúnLÖ.Á*M²LÉ<€¦ Û·¶9éÏóóŸ]êš™K@qæL\LÝ$¹¥¼¿Õ¸ ÎMòòpÉ¡ëOì'°’2ßì|Njú5[­Ö[Å2«lé…I\ ²7pœn5£ÌìÊæ±ó ƒè&G'AŸh±ÆÞE•àå)b#°ä Is:*g2ŒM§iwêÚsnkÓ}7îÎÝÎÍIç9ϱ–ê´@é覇À<àP mcC´%&¤i"ïY¢spÛ¤óÛŒu€L[ .&#Ðb¹˜½(¡ÄÓ·¹9äØ IÝý^ Õ5FÑMÞU+®}0X] Óé\ ¤p?žÁ¾E„d ¢z„Ú¸¾w­K¼Ø2AÀMåire>HÙÁR ÚüÍÇû”{A멤N- ç-g¼¾n/$° ´}³‚¥Tá‘wAq\Ã1ÐfêÏW?„&®ãv@çݹN¦¢3Xó>m:L̽xO’aIPâÉK7# Üêf]2‘†|!w˜=$rБJJ ˆ|ÉÉ#ëwn”À¦rx„Âõµ¥ÕU¹WyÉv{"å]öJPù»„2X×5Aj¶QMX^­ÞÑŸ¨`Üaq˜Pq)ù{‚jÞÓm˜°M$N®c„*Ïl®áa{[ÔC"(ßµÌüåËö>§âÛ°—^î~>né³äßQ7îDRu‹†r0_ ‘0¼Íö ÍϱºŠ)Ííw·Êä°M~óü<,Ïχççõðü¼ýÍ—ë÷“xÉߟ¨ŽX˜u°7áo®ö`ÜÞ^F²Õun'D,,‚òtã>NyÙ*0«Õd2aÑÁ4»²sá)”8ë¸ßTt»ÿyqèYù/óSú ³3uX& XfÒ¹ÝÜ€K_ºØòKù ‚1+/Þ#¤05ì¦öð]”l‹}àÅ%±¦ÉÊÚ„ ¶øÞVl†q¯r·áiƒÏ,¼ÁŒV9Ý•¼¾ XB`°äÅá7ßãh3$̧MÀ`ð(årµb¼´C6¥ÒöƒÊ†ôVÓ¨X®¶(öÅu|-J pü/¸4éñÔýü`‰ï—‰þ×Xfºå´}~Çÿ &$‡­Áºç¯­~ªR‹ÔÔ¥Ñöç“âòøZ®ôSÉíuâè@šåMsö.@›cn…NOb‹ó‚m16¬‡ùâôTã-š/NñÈ©ksÙU§Q„Ä>)üÝ¥Ñ"£@éúÍb5evûŸxf¦H©¶OÈŠ¥Èß­Û”uJïb†OÎ㛘)U¥2L X®ð@7†NÝŒ÷ ó™bkÚ¦k»/êVêÚh/Á@]Û8€¥-nò÷[òáw <•\ýù£­‹Ìš:èZdÞ¬ ékœV6RžÇ,þäel •lÒGEõ™˜S}ê³vÑËÃvx£…šËwBpö]︎ÏüÊk߬z.Þ8… Àð¡•¾jóhêö"4<¹Y¼;–•ô",T·À{L-¯"ߣ>¬Ø>ÆVr. Ç9›²w‡ã!­¬¤x=,^¢ÒLl Ãápp›¡ã;e˶Å+Ƙ*ZF^‡LaEiŽ$Qʘý^‚ßï÷çÛ\Fy_o9Y0–RP©ÈYzø„BûKMpÐÖïÖU_P:ËOÞˆC>~Eƒ(›ŠQä›bl#‹æÑdìN’…­LÚèaͬ¹NÂ/n¡ðMÁJŸwüË­#æá‡_‡7«<»a ª~ÁlÐ:„#¨Æ¬F‡Á©·z6ÚbøPÖÑ òÑÓþéçå"<„z+µ1ÿ<kMVDŠŽ(é,ƒ…Ú˜:zÅÓ©¹*Q«¿Œ^?)+QgéEÜÎ+ïhq!9xä-4yƒõ0_\&H¸®î‘ ›êV¥x{ªŸû"m”õ\;¤€ìðf¾KëÍŸ!° á.¬jƒõ°ÐóÊü ™0e0Œ‚gw’ZªŒñôâé!¾‰*Ò2˜Ëø…$³›®_6G =\eu¿tô”sîSZÈ™é)޹$KX½DB̆dÌ7èªÊªJÅp`14¹¢!3)ŒŠ!½9iÀº2ME–<œÑ'I<¯ø™V”øHÄ\}q›ÜØ‹ûT^WvôRDâÞò9ÖíèöøäVçÁCˆ&˜H‡Lñ¹Öøz6¼‹ZOûÍÕ¨Ñò»9š]4u¼ü¦r ‹”"Ï#Sƒ‰:Ý"z¼òœ~眀TçéÑVÏÚ’–™ÍŒ’ˉоU–EzAf >Wë5v1Oƾ‹ô%\ºáx¹^e1à]Es}eÇ3Чï_†w«¹³o(³çûÐGã±èÉ„ ' , `­5Y²á\Q‹¢IÄêÅðÕ$¢”j’ðY¦@·ö£™H …ãÚí£+•Ðéj¤Ï^Z3Û[%ö×z2‘é(‚¢[iUÃ’ÁRQ˜ É›â¬YÀΊ¶õæ8¯oÊU¶*Vzÿà  ФÝ&Ášî^ô†0yN 0ù§»ÿßÿº†¿endstream endobj 811 0 obj 4420 endobj 820 0 obj <> stream xœ}TÍŽÛ6¾ë)xj)`­EJ¢šS -Šh=lz %Êfa‰ŽÈín€eÄ«Qüë'ôóÑ=á5"Ç,ØÔV¨m8:NÙV³±bî¥Éï ^1¬Ç(S†íE&E]Ô|¾KÚÚkI]”%kñçx]rÜ‹9|’›,†A»ãhå’Ž_Åjð$úEÇ#©ÁåõúfÓªy“ob±ª¼Š%§]Ñue…ï¶\ $äœÿ}ü h)Pж**FŽãá{‘ÿùª¦ ¼í‚þ?©ëu_ߣI©RŸ¶s œ %è@ª`e:?Ûü@+—¶z6”–ðÊl­C'\´XœtNXÑñ¦Ãÿ©æxgáñòž8‡Þˆ¼‚{–»×wéy ÁbÞ!8ÃO9'->i{ySÅêÊL0¾§%‰z1áÁæ€tEMùΛƒ,n7 }d%¾Û€ØÕÙáE/vÒ&áÉk¬g¹=V&ʤÁPíP„ÞT/XC·Þü&‰üŒž$’+ÒÏbº]¥AzD7mŒ:]%?þÂ^”A~0z…ø=TÔWùÃ4"qêÑÒ½@r<ƒÜŸýqhЀ¾¼„á°™?࣫—AqeG°¾Y¥çWájV4M¹6fh^z¬ß­<é0Š°Þ»é01N—ÏÈ:¶´ñcë/a©<ÍÛÍés´ç õœ’¦ø¦a–M‘¼·ø-EëAËÊ/A’]Ç’UG½lÁÀ$å½ë)i{å¸+™«ùöhCû[Ðr€km‹è~Œc•Ö•KÊñQËÜr†²›ª > stream xœµk“ÜÄñûýŠÉ'´áVѼg ¨RÂ$˜KåƒÍÝ®öNxwu^i9®€¿ÀÀ¿4Ý=´óÙ v•­ytOO¿»g_³"ç¬À¿ýÿ‹ÍÅ_žkÙM{Q°›‹×œ–YÿßbÃ>»¢-ŽqîVŽ3î\n`ÊÅ®6/2³·õö†5Ýmµcÿúú?l5ãE^NdUÙíwU;ûþêbsšqŽØæœB3–]-Í—ÛÙ\ [i²î¶nãÈg‹Ûò®«vý×Ù}Õ+-šW¹wÆg?†/í²a³ÔÙ¦i»„«YÅo §D<Âe›ò‡f—Öài°šyÀkµÍÊE½®»ºŠÔqŸÕÛ„¤ŒßJÁ|·k–ûE×ìâ¬c¶[ N#¡ÊgyÄ“}º^'<ÊêíªÙ͉ƒ\°«¯.®þüðtu³euËvÕ0¹Z²zË6Í®b˪+ë5 ,¯ª]µ]T¬gc ÓeÇVÍzÝÌàˆ‚sžÝÏ |À®<Š /QT²È…³OYsö5R^7ûŽm›XñÁD²Üƒ\‹Ð+%k«‘»¬ÚÅ®¾®`¦ÙTÜE³ÙÀRP.‹Ù¾…[ÝßV[v·n¢ŠÑéLas£¤$‘ßÀFÖ=ܽ<’³p2Æd ” @ ·åv¹®ú±Ïªúæ¶‹«:[Ö«™!z`1xXË^ÕÛeÛœ$ è É¿ì‡Úd«]³‰`"»ÞUƒ»<íϹ[ïIByJ{5»tV!nݦ½Cô€†j}?ÁÚúaÈHúÞB¨±}Äõ$Þçy#³Iq+(±ŒV žmG årYcT/×qÎNòšÂpÝÖ)vÓ@gÁz~ú‘záÙÀôç—…­=ÊဥY:ÆŽ²X—¡^I T¹{…ÑÂqÔ‡¾. 5KK‘šϺ†&¯Ë :x E„$PO^ÚÚÕP\´õÍ–ŠO¶)Øuu¦jP<ê2ú ¾£/§ˆ8tÆé—±µÄ§xyHA¬ÊîoJËpèy†hÂÀñh0â ¨^4¸ä³ëL¬ëâŒFîÆ‹>ÄY‘m÷›ë*¢÷¡Â øÀJ€m:ëzv·ïº`D²%ÿ@kGëmkA$»*¢4P´”‹WäõPuãÓ*P÷êÀaDñæìsbl¡,Ø Ê⡈ÿ©Älí’ä%JEÉP(‰öMÔŒŽòF8a.ŠÜ‚NS x!Ô÷ìùŸØ/‡aË9w`Ø^ÄÆ£ß;ƒ~‡gƒòaÇšÕ×]«m0Z kûÛ43*Iû1«a¡Ü‚¢…œ”Q‚ ÅFÆ–=0°dÒ©äl•r¨bû¬*7Gì¾ Å‹ð°Ù›Á"adûxF+r”Ìã%ãAë`äzÉã‚J¾;B¸ï´äE¹^?D(ðß@fPTM¾°kn*ìE@ ¾xºMÔ _ÈŒ¾PûíºjÛaˆ~‰¸'Mö0¹ÝT¯Úê\ ™‹(]Röðið¼ð©‰Ö~dQ}«ò™ÍLJ,"Áßæ ͧœÝ‹êÅ4E¸Ú8V±‰Ó/±é¨žcU|4½Q_ŽÞ.OPoj“ÊÐáD¨6ñÄ’zH8À‹N2‹°%VÒ´EfÍîÙ÷Ç"ЙÇí: Ø1Žì¨™ECŒK °ÕiãVˆ¯»_ÑÐEåŒxH©ÂOÚ'úª;îMgDí¼L{'·Œ|”Ò# WµYÑ«2 8°ŠLÞBe{?|•mܙٮ!Çæhxµh ëúï^ÄaœÊ,Ð L o§QÝ¥žî2Q•~ 4A€³?½ásØÐ ‘`Úô GŠaª>ý½×õv´RÇ3!KÅë»u½¨c’|½a‚O{™…:EˆØå€:Ä(w®Ëõ8(®ï—™ÏmþrvTÄ`þ®¼´àÀ]ª´ÿquñ퇼2’ ãlîÛ€÷3Pp[&¬t¹1l=š¢Qrœ ,Tˆ fVgûÛ£škhp„†˜Ãøjs²‚…²j˜g¡6‚`f´çj:-'Ñ ¬<‰WçRr3Á cU˜·âH»>‰—ÒG5ÁKhÏÑ ±ÐÎÞpI¶x3ÿø1È´ÁõÅœD'xaQ@$:‹¢Rj`ªP¹Ñ –aÆ8D— ,Þê]E' [/Ÿ$;éä”ÇN8lxŸæ…Ê]1‘+O0Ãâ½1wG¸É5T2#Q±ë³hì™ÞRZ=ˆå¤T†(7HEÚ"§“AI‹ægF•f¢A%¨÷2(Y@b¦ýT*ŒíÞת,Fì ä§ú>¡£öXiÁûX„ôQ´3~W*Ô(ž<$‹ÀÔ´Å žqȤµ²Ó=Š+5Þ£õÁ-T?Å#öXˆœJ>ºç]„ŒðžO„|ܰ*’uÇÏwÀ\é±·|Ý cC ZŒ´àæ“Ë·RtÊÁ‚@%!Ф<áfÜ•CºÒ)IܘôÝTñ”¾Û#½¸TX E͸¾9Û›´"Ûìc?HS¬ÿV¡ä¥i3¸=ÄY›µwå"nRÐÝWÕ6¡ZA`ÙºÎQ.6ºpÔ¿ýÆ•2„Š l²©w„K 5€§Zf Ÿ>Û¼/Ç•A¼A³;¨V(9»d×3å ²W¬xñ94Ôté2®«PzX¯»jÓbEº,;f=#¨R¦^~mÚjýchY•~+7<@cfýа«±"9Ñæ*Ϋ™Ä´Zûa/$ož¡}JéÂë"Õb´*C1Öï„Åuœ4¥dÈñ=%ËmÕE<*¼Ö÷{âSEÿ<Øo[ìwëx€Ç=‰<}1Jk!?ôDGè'× õíe\õÙû¶K”Å÷¿$ßÐAa¿Ë7Ø3 ×k€g%¾/¶õ² -,µØ?Q¶÷u[Á2ÃõôŒåûýð2„q¹+‡lý~{êõ*Øâèåj’OséMŽ>[@®)ÞÛçóhIa0Ø ËÿùDJ‹øž¡ŸäöMî¼AçñqçL즇Ÿ„ó„£ÄØ 7š§Måü×§iBõ $ BZŽ ƒ;÷v&1_-é¶ùyõæô.>é˜S‰‹5ö²†M7ÇXÂõ}|°:FÌøÖ1O›VoÎ\ÿšñÅ!Ó‚”ORkM¥‹‡‰¸‡hód¤+=pΠBlF3†TŠ2o9jIšù+Ô£9¨8#ðPiWš ¸î]*HG1c=ÁQâÄc U9ç$—C翞IþOÝ1O98]nÍiž*-å#ÓÌÀm=äÄSFBÎ<ž8k &ñ#¸a&1R@¬Í%ÌITQ9A ®0Ù¥ä?ΠÏp„i€RÀTAå@š“&/‡b’p©eˆi˜A‘LØ»ï\î9ê?L„»:óJ ;Œ›äúÀ©ý9?y¸`Μ˜õè´Í=Üj\EhçR¢¦*"º“^3 œà#.nì)Ϻ8¨Á¦…ŽÛ›¶&†O¿VÓĶyìó¾ Èàòt¿ëç›ü´†ËÒUðWÀ£¡†ûë)¦›†û½M'ªe0X§'åæ˜KQnÂíŽp,ûÒ/Ù¬„]¹¥ è’í¥p>diÒ×ô£™ï€y=Gs› fœ»Ñ¦a"`&(å°,†^oÊ‚ª}žÅ8‹3h±í,Aö†v¦ `p4gÑz“+”„»ÈîJ3P—jô JóÜ¿s+@Iìäò©;žkLß¿s`Y² ßM jû=Â÷Y?Õ£s–Œ)è“09 ‰¿URO4AqV·ð¢½µñi~1ú% IºqFóUpºÀß¾…V,Ã=M‘~YòIÞÿÐÆøøú†O¾"A_ûý˜~<“ø¢¬!‰ÅºF¿œQÚJ6ôíÅ\õw†endstream endobj 826 0 obj 3744 endobj 830 0 obj <> stream xœµZ_“ä¶qßOWœ6Úá‘HIÉN¬ÈŠd¥Ek©\·zàÎpgé›!Ç$G›­X~Lå)~΋ö£ä“å× €àüYÝ^ùt÷°Ó@£Ñhôð"ŽÓ÷w¹½xõï¹1b=\Äb}ñÇ‹„§…û³ÜŠ_]J‘‰$×wv]"L*L^ˆëíÅkùûË$.£²4²Û_.Ò¢ˆr•ËeÕz@Éå}Õ®k§r¼÷@¦äÃ%¯ÎrY=z”LŽ}³ÛÔãàF’RV½_”fr×7íX¯ü€‘·aïÝ~›ví'ÙíÆ¦k=-%«»±îϲ£[·a1–û~ã‰ëLÞöÕò ³œÆ‰¬Ç(`~v~?Bß^~‘¤âú‹ béòˆÒ(åEi¢"ËH ×« ùªº¼þá¨sl‘—vþµåQé,J #PO(sùÐl62©¼õhyÉ›º5ßmw™è¨, ùý‘rB.fh»±®<ÕR>Ü×}] |¢ù!ÒXEªÈý!nßrˆ»®_Öƒ'›ÉÆógßt—)ñ•¦Ð Ç÷œ/cÙŠ[Ÿµ^ P€n¼«–Õ0m„I"B¼/Ò,‹R¥Å‚î…XÚtíúʼnN¡ƒ°œÄ¸[Ñ ¢Ú XõË g‘mäåPf¢ˆ2„Ž@T%ÎJÆÏHŸ\_|y‘$ºˆŠB˜$6Q©E–Q¢ŒHÀ §¯/îžµ=’µÛÃ_çQ.ò21M6(ÿóîiaE?cÉ@EZDqÆüä!ÐKS²%i}†$8#󚑱à'd¡Ø™2 È–‘±‹ÀÞ÷ÿpBBOO$åqD¡€ý‚T ñ’š¤šÆ…ÂF“Tó8‰´ù+¤ yê$;”ë«Jœ-öP?.Z轉"ÑfïI´ižkÁZr$Ù(ËÄ8ùB6Ü}YÂŽÄvP°l l.R•ã’ÒÙÈW0eæcXf`FÍ×ùGšÖ©8O¢,}oWš–C¢®ôö¯¸Ò$ûI®”ð½]é9kQqG..Î`õt%aDe4²¹PJãÚ’Ù®&1Ã:“¤Åÿ°n±´yÔ?Ò®×”›¢Èá³¾JÇ…½JÐ5Ê&2ážÒRG&‘2£ÄR®"­ËC¤wP U”Ð1u ëÓ{d#€‡,­¸?'º[ æŸ1ÅrO¼ÀaáøÕyùŽê£ÓkLéš+º¯³„Wb¤W \C´bùtJ•µn¢™*oŒÀ¤ TcBª>úþ-d˜5ÏÓ¢ÁùEà)(šN¡£üŠRÊÚ~±¥ë †]–³‘¯0–—ó1¬+4Ýô|Ý4biÓºgo~&rwóYLAÚ YK{ïÿHl/4´È&0¿ã¿ãtgáÒø+äb6Á¸¦üEcSX—ÜTÃè <—Cí]ÈîÎOd6Ï SÃ=2£,‚¶#û˜÷•'`æ³áŒÙҤİÚRÂÌ0Òî®;Y­þÐ56ïµCå1ûvSsâá'‘¤n‘)¾!J!ý½þ»×T ±²yw 7f´l÷»L‘Ð×CÝr6ͳ¥ü·ýÆI ìw»®‡°éÞD rizÖå·ëý¦šMÑA%¹î»ýÌyBr¾ÁoéÖ”KŸ›ñÒ½ò”ªv0ïç¨C=ÝÖ,Óî« K„d±í¸–A(EœU'4É#Mv@‘È%.ªï6[“8 [±0†"ô­ƒ¨¶a¾°ÛT˰¤e–ˆ9$²­ú7ž¥TÞHŸâ¦©Oõ‹®È§úždú(RUøL’@Ž[^ùs;¢ãÙþÎ(ÄEI¢n.}†›b2-JÜáLŠ$ìè@3ÿ´\Bs©·+Ñõ-ÔÐ1ìg6²U"îR>¯XH ëÜÊßÐsKÝcgVÀ ¤¥ ûM š E׆+Eª¦_(2j^º¡ÚÔTuÝzr ÅI7 Þ¢BàKîÝHžóÂX³…Å7‹#C¬ÆšëÙL¬Áa7›™{±Ú‚@^B)ª€FF1(m•îŒõ”b*%yÒT[˜Ê•_›2¹·E*ûª×è×lz!%›ÉU7Z,vÄœÅÏÜà©‚úÇEªÒЪØWÚ77ÑÍ͉ö"‡õª…ó³–XÞ í0z*³Ýv­­)²Öô]Mé5æPœñߟf/ Ò‡eãan¡)‘Zsuéáì' bÓ¶çÈ/ Ë_ÌÄáU› xdKó,Q›®Lˆ¹Mhu”»dõÿNø¥ØLir†$!P_¼ŒcEFRÊë3\;²<ÿâ­TÇ”•ù,üw§,§‘šçFDúÏ/%-8-øå)Ýî‰Ò¥ÙÕýùO/s­$ð·Ï yªˆô«²¼€=àþ ±ð¬ÿåœHLnÀ=l³-ÎîqŽû°‰?Å_ì¡”+NÎìIåï9eÑvϳ›RÁsHÜVZÃsLŠú)rnÞiõ~ÒDø ŒsüŸÔð3ótäï^®#™WÚߟU]¦PãNO´¿~gÅþæYõ;Ðì§w ìxþßg)Ï9¾{1a¯j7—/³˜îÅ”µ‡ÿëG^ <¾»,¾zÎ}ÌE1öïî=þûe²Ø¿;Ëë]ßêÝ ×l‡92¤¸˜»ƒŸ¨`ƒ ÌQÁV®ÄÖ§mo¤…ñÉ®œ™ë,ߤFzì:ßœ3N¢r8<õ1<¯ßBãµ+çˆ1Tc×rhW00€ÂhØVTÄØ›®2€l“ê"H³,M.×uÿa^¨ŒÍ²Ú ½Z×Oa³)!¶TY.+ð3ñÆ•¬Cžï IZ'¡ñ>4Ûì4#rQ FMÎ+íoTQ÷ÕŽ’H S±Ûí×÷Æ1í»O¦³$gùÕ`;Ô I"ö–µ›LPé<†…·ŽH›CŠêÍ¡ýôAúî—”r¿›1Ô…Õ¤¦òÂÁ(#)O¿:ÊËWõ®nW.ÿNXô]ë~k~‚q/ »‡O¹^µÛÕÕ í¹w‹ïsxÂÍOÞ`,¾Rt ¦JÀÎ]OsУnÆ"@WT:ê¶]áùÜtÝ›Á£rÓ¼™ :`…±•\XóõTPÓ;P£·kñÃ~'n©:O‚8¸÷Íòžsî/©h(U*ʼnY'ÆDÖçMrÿc…‚$zd†bìD_»þ…hƈ}TRÂg•Iª¬ÎÿÖ÷,à°uvTÚÓ`2«äíÞ=ÝzrªÏuÃEPbî¶õk‹PMÚÜÉ“ê€ÒÄ3rW5}€¸QàXš•›žN(7£@ï×]V×Ó¨/ ý­±Å ‡(ÒÒ> zÐ[7às¬·ŠSë$øwB¥#ÿL\aéWL”•ÜuM;z4‹Yr¿ük~•ÕŸÖß¹fÜ«€<㯄ĭ‰Ÿ ¥àãàä‡3*•;S G‚£» ÁfX½…†‹öüŠC…•ùBÓi2œ0”vW/ÇÆ=,v¦F›ÇËœŒ&;Ö*áFÜ7÷¤NÊH ”’×¥©ëqÙ²ãjZ7ÑÖhøv± kg"xÔIùqÚ.Éä°«øUÙîœ[?Ñ ¬»˜É%©ˆ×áÞA›ÇZPÔˆÄ?×cÕlÑÝ DRßMÍD¬n9k¥TÕ g…1|æÜ EÓ jÒ³1®á°ˆ™¥¥p×w[A­°$]{¨œ§m°©ûec5ÀŒøøZ“²ó”+¯„>++Êį!lÖû"†KѲiÝo•Kv”¤Æ YÀ€ˆgDí›Ã ¦¹S8&8ÇËœ‹±h¼]}s°Œˆ;a<©ø‹ˆÉ Â1GQÇvfÛýö–üªç†=„Ców{l'þ ¤–8äLeßí¹ÃG`©¤ÿx™’Ü_·«¨K ÚpúPÇz ¦¥]|vçé)/Ÿ Á{®glœ¦µ86‘¹ò«3ë•’‹ä~+åC®ç‰ì¹©6~QáâÉUX0Þ7CèDï‡QÜZ&E=Ô`êѱþÿO4üñž bYµ³¥EQž¨?1L–GÃь͡ÏC?×3ófÄ\®§*ï裇P/ðK×A¨¼?ÊN^ר–PÃ!ñ•Ðüø)ú4úù'ÑÇÑú¶d "õËùà†ºÜø¾ÛôK›ÄQ™géÔqy-?¸Ìb,`µt“‡K<¡©Ió¿²¥p*GqZpªíŸ”oäÝb½8sžãÒñ“Ã÷Èïéñ/¼_¼Îå˜Ey¬Ê£û±ý¹Ÿ×sW½@’|U’®hÁµöÂõd^Ë¿…õÅÌ‹ bQÌß@8¦H’ m2,¥é’>­™·KO»}š*¯bÖýº‘Ÿ~È]†OŸ><Ç)ó”*uú…“Š]âµ,Å ìK¨Ò !Ò²Ì"­èEÓ )D”V0T:âfNN_!NeKŸ*)×>ÒJlr÷Úð¾:PÕ¬ UfQ*~UõÂF*ÛÿÜR\.LŠtŠc —•ÈŒÎDÛÂÇ~ÀTôU\ãò¾^¾<¬]1ÄPžøt’€)4džOñyÞ?Zdcóa;~[ùqN‰FŽën.l`¹ï)ˆùä¶ÍÖO#sšu[ûžkq7fŸÀï뺭)ÂBÕ†éºïÁáaôÝÖÃPñ¡¹¢ØßܹŸ®BI\Þùè1eäÓoH(räõ/®dEVò`Ó­éÓ<ݺäW”ÉW†Ë\í®¾È"@ñùi*¼[¿›‹žn.··jË7žGR׫ !åBÄNeœ‹NÇi†êvS¯¢°ÏQõäF«°f×ÔË:O¶šFPϵ€&@QšRþØÐ ŸsÙI*æzJE~C}•‰v—o§u¸|~÷vk˜=¦¦8­jû®»›&ÓÔ~¤ë¾¥¥Àœø/m-qn .8Õã’qS|l/ßëÈ€ŽÊiœýíî‰ßVí¾Ú\¹íê7„[´#Ú~½l|oþ7 ¥éùý”G”á/ ®-¦Ó|‚ªcFy¾o!ïëj5›, ýT•HKç —.%ÚùXó=}ã*Nr¬á%S“Fh›šÔú‹CÎ0”ßÒq¸ÊÞ¹k8ؕƖSnÆ«°›…”m’‰*9'‚‹ž¹±fµçþ¢cUÆ='sÈ1W“LÍ>ª{&V¶|ôËÃo'kè›s±-X@þ©öµâ·Ç5}±K_ž:Icu™PÐGM4“q‘ppq‡Å^@"í´¿µÿö"çœ]5Ï \Xví²î[ªÙ‚>XYWäÉ-ô _‘ŸO]wÎî›7*üöD¸[ÚH°ôœÅþs‘Œ+çùäjˆ…ÔÔR¨F®ÀY?"ç5½‚£’ì¾I.Øûò×ÕT'€ú¶¦“*è2³Fv±O䥄z¥9g|½¾«‘üŒ} …É·°‰pµb-þ$–ÜáÏ‘­Ïô±V‘¤6äü$…@uYN:’ÆN9JÏr¶¸LS¯¿#­\‡ Ä|qW“˼T\À!âFfÈ¿è<œ~yñÿÂmÕendstream endobj 831 0 obj 4264 endobj 839 0 obj <> stream xœµZéŽÜÆþ¿OÑþeN2C³›Í+†Áv 6ÛdÀ\g—1‡9ZmgÐ;ØOš¯ª/ÎŽV± D‚ ¾ªººî*ÎO"‰¥Hè¯ý¿Ù_}ôM^âvºJÄíÕOW’·…ý¯Ù‹O¯éH™ )ÅõîÊÀIQ(Q䥸Þ_½ˆ¾Ø­6i*ãDÑ|×[;MЍ›Ü–ŒöcØ)q°h–ÄU™Fã`¶¢i®W²ÂšŽ^­¤Æ +£víàdô÷¯¾³`U5wmóãäÐ0Ò9mëæ.Ìüwõ0€^®£©Þ/(Æy±×·Ãí¼@× aÏ]D(‹è¦>®2¢\WQÀ¥ï¯Ÿ_I%®¿¼ºþÝ ÂOïÒUœeàÔlÇ:ºm‡öXÏídWÒ4ªÝ°ˆîW]“åQ}ºáÖeѾ¦ú¶uGóh7ÝžH»µï¦}=7w±]RUô·Ó|89*€¾s÷ëbéúÞM¥§pû±]Ë¥å¤…îÆ£C•–Ä’)lÖÐb1áMß·ÛÕF•E\ªè¾#ó$I£›¾~ô{Ó¡nÚØíæÑ_Ç•".§:ºoÍáqýçEi \•±ÔyåÂX+dŸ‚”n.˼ŒNû¼œ™@Ááð>B%q™ a íêCr0R‡]YjçCHa;F|‰/Gä-Tê@îÚzË‚S(’°àîØ6sǪN2‡ÊªdCc8n£·=Ls»ŸbqM&'`b2ê[!L-Õ·îÅÈ ª#àæãØ ¶UR— à‡C ñ×ÃVtvp ™Ç>¾ŒJl”ŠpŠƒøa¹ úéÙ£H²ytþ{MÑÔÎ$ŠyÌqQ³-d÷“ƒ)Ç™”œ2¾€&ûÓÔ5k›Á* ±Ç%‚èÍqšùìÓÔW‰zL½L~íä u¬ ò¬ô;‡ßç´–'¥d}ãqe*ìÔnX:GNè*«L‚(ÜEÖs_ô@±»‚\kìv¢Â]°‰Æ“?b〹¸¹Ç©uHçч8'(ØúîGï£ÚeÅÓ¡mºõ»\ <¥´CxÏ7Þâ n¶Šp%Í m¸ÈÇ2“ø\fXÊa‰9âYüO3Ž«ÝƒWq€£È‘k"’½9¸ãñ¸¸óç›ñu¸`ûKØ1Ö䟙ïfÿ¬ªbì."œù5uá62ð¹%ªšµ›z•ñe 'd›¬”&9Ò’¡éGë ±Rr·°±Þ@eQêÔGg¡Wãë8\{®Wnu_?,öÓ®²ŠàÔ’pqd»px¦îßmwžCdÓ»‘<q‘MÜHD#SDÄÏdì¿kþÍxæ÷2}¼¡“½Kõk€Ê²8W•‹%n%Íl„°“ Z €>;ØÂrÃ"bW¦sIaË>ƒAEDçÚM­8-ЙBN뀓Ÿc©3´Žª“‚=IŒŽÆkOb†â 7§ÛéNýˆ ¨ÅSH’Nz¹VÁ· Xý¹ê™&lx-àP aÕDxA#&Ü ÓÚ²Sw™Žþá}䛉n®û®y»le¬Ë²8“m©ã4+—²¥•\»ÊÐL‚liÞŠEaaÍk·™=핺7ç–Ï`œëOK–yAÒT;GÀ{…OY!6Xñ0’‰ÇYC³3V4&!çˆâèµ ›×&µ7ûò¬°;)i÷i ÿ’†Óép@ŽK¤#»ØZ_“ÕmOÈNBÜŸÖœ‚ü~ôáý••ý^¼ŒœÜ•²BL«J'm-ûû‹R6‰SUVvªˆT·x¹Ší9Ÿot‚4ƒ>°*pJ¬8%fB\Œ¹tñî»»–Â÷ˆ­µ"ðwmÓš™DmÄ>¹yiëb> å©× ͈|¾[‡•#ü²bNJn9™qjªLÂʼó*„ƒ*ÃP™öˆ¹?5¡ÖŽùÉá\¸Dš~”Û ¢U&p*#AbÔy6p8ˆ@œŸ°#I£O9ï±1Ä|³)Ý–i_ñXQ/ç¸g×aW\ˆ6.‡r¾·`ïç6Ó²N™‹DëïxC˜£5½ÉèìIÓZr3Ã;{ûv ws{ÊF}šÇ=jäÆ8=Û àH.9‘¹áœ¿ŽÓlWQtn ³³-šUÑ©*ý8M ÝÒçËJLfi\dÎ^ # ÷ûÇÚ¬ËX%iåʯ'ªÓ;ª±u8u×qäâg…„™çEi²sÒ–UtÎòÖ™ÂÍŒo,Êh¨ÉjÌÖÎv¹6Nqµ¬•‚^nRä /T’—²Êz~s@™d™'HEèV76E¥9Vù´Y³m|t…i-ó)×UµV±µç¹y«ÛÒo7{‡QvƒA]ôª™Ò2ú–ä3a!S¯—¶Y7ÿúÐ×up'€NGw#µMîíBiË·Ûmɼi§Á Àø^±Q¿ÄŒ•i‘ÓWm»õxLC–Ç%£;r îär‹âÀÚm¥¶?nIi½¾®É,Î13-Šzëíñh5‡øbÛïä*kœñDÓe}?š8ÆÜ›‡ö²lÙÿ㻊ŠéfrØ\sŒÁ5)–ƒHƒ²ã·Ù4ª±X#þ¼G{%+âÒw|]sÙ#äêK.µÕ/DF]½rÑf*a0ˆÚ—TVÄAý¿<"¯Ž‹ba±ï(‰¦·'~ò¢arzµÈü"nŠéôêCP÷ªRÌÇö¦Çà{^µ4 Ï,Þü°ùX4›íFüG´ñ“vSon7--l7ͦþ!nxuG+ÏÝÆ¢ÆjÌÉϘ/q=Ó¦g†¤£Œ3ó’¸°W~Ë !Ħ|@ÆI&òؼVÓ‰<Î ønÃ]"”q)u)6Èf ìšÁ>!0 RäO×W__Iä|°P±]‹=G’‚ëX¡ö“ýb%G¬«hÅC!~+»'?@.é²_ eªèk’9’²¼ O‘†<ú¼™è\—ÚÐüœÃ(þ%HÇ2U‚ŸCY¿SáÅg†OpùÝÙÑ"–)§‡ÿ£…¯’Zå´Ê\BpÉã „—iŠ,X¤E…çC“³8…}‹cûž ¨r°ø‡ fÀoE|þÊ4‘‚É@²Õ&ç¼Pá´É¶ üëç8äׯ²œát[ϳ2‰aŽ;2ëš  ”ýšVàwXîa…ò†œV<tCé÷Õ…,E9Ð>m‘-Ÿà_ö+õƒ¼9Ê|’ð!ŸÜ{Fѳ½l-º39ã`F½SEVÝŒ§Yœ†m{ìm‰šéA¼ŒznúPoááØ5ÓËÕE"Ú.¦0A ¢_PiäöŠYA1õ¶/q¸*,°¬ª¢—(søÃjÁ}›¨ð}Á!óö5è“kl;h*ž©-"“byšÀG*ó£‹û¾åßåXàåŽåµK1×9ÿƒo¤oæãéö.À™ŸÅ˜—™^ïÍÏ)ì9þ Çy‡¦÷ûq ¢§ÔÜ÷¸^ÑGIz×—­Û³»­Ý×T¿a²§Ò˜j]ð%‹ãØÚ¹s¿ EÛ1ßýƒÍ µ÷ù§äùË:\`¸` ˜Š7¼ìî¥nïkmÛ©9v7mhØœs7¬Å8pß™w Ùakº‘õ,ê¾7=kÿy¾nºÏk'þKC„e«ý¡ëk*8¨Åù6• —çTÎ]Ë/í®I¡®*ÿC %ƒ26RqBaÛÖiÿàÎ+ÿ®‚?¹îZúYÀ*ÍéN‰¢ †—YScWõõÕ áÐendstream endobj 840 0 obj 3751 endobj 845 0 obj <> stream xœ•ZÛŽÛÈ}Ÿ¯èøÅT2bØÍf“\À@²‹ð^‚lv?Ì$EQ#Æ)“”g'È7ì?d,äòœºô…’lÏÚcúR]Õ]]]uª8oEK‘àý]ï¯~ù“çâ~¼JÄýÕÛ+IÓÂþª÷âó")„”âfsÅë¤È•ÈM)nöW·Q§Àï›ãnj—]?5b|ÜíªÕB&q’híšqñ§›/‘O‘Y>*‰U‘ƒ¯¯n~~½ìËè³4¦mc;ªŒ~WMmßU;;¢Môëö®ŸGÍBê¸,L}_í;·VgQÛ>õ¶:LÍ`2é닪޺žŠx÷žQf¢~ãvWÌvŽÝºvÕ£#•ÑâŒËÒÀ\5†EÕ8öu[MÍ:ˆyh§mØß_ãDJ’Êé¤ïP’.ã\êõÛnšF¯¶Mç&SØS;ÚžN#ßV—¹E™Ý:utTWcsíºEÔ¼=V;¿0E} U Ã’jh‚ãH‡±Û›úç¾›Úîè7o¢*4gʵä=ß_VDï|‹.Ê ªfGÛW§y$u¡¢P7£¨FÑ5u3ŽÕð¸0H7[Ã9Vb©$è¼ã[_EÏîwýò…ý7´ËJ´Ý‹Ï7½Šªe³¬–âïbµ¬Ÿ¿X½¨à?ôêçÐ]®pâæ±±xŽBÊLq†RòX‹eŠ6^¤$ægÈð77Wß^I©U¬Rar“Æ&*Éã´„÷Ï(I 14W›?Ä‹p/Q&&NM!ŒÎc;€'Á™PÞÉ–T\Òh!sܼZP«I¢/Ùê`«b™Á3ÆÍ~ù5®¦17”ù‘e gá_…#é,îÂd:‰A"ð½<’̲œ‰Œ‰5l«@}Fd´zš(WOsúgñÔwmÀhœ¿Â³Á\LÊŠ¾ Yú1&qÚ`äìô^&Da‡n#³XJ¸„¯èpê=Äî fú.uÁ •–ŸhBïS@ 'Gdà»>¢€û[5Ü7>§„,ñÖh>\EKá~pažÅ¦L5CfC{aœ)´)r8qªÞlÀÄYQ&&È¿–¨Î2.pVîå!ðÜdRê Ä[½T²B§ÃïTýþJA(ˆ ” Zìf…Œ‰#~ >Fø¤—¬TË2=yÉÃ.u•ƒákI× *£KÚŠì~Møù¹²òéÁ"Zòúõg0Ü2M ¸ˆ89çœ~uhÒÖ¢__$ÑëKý—q:»àìâB-#Gp¹?f×®Šî[flY·Ñ—ÿ†$Ñd)KòÑ2VZòâ—æU ꕊc%wRÑÖv(…1GƒQ—ÚÚ)êò„žsÒѮݔæOmVU†žè‡õµOO¹ºàÍ›+N‚·£Ùô; *ŽïßÚv‘\Ëeôxp;n*úý7¯ÎÉah»‰x›¸PŠ÷ Í3Áܽ›J :q»<“0†‰~íªsÌ”ƒvEôýÔ Ò²3RF»¶k®¡&Œ@íTFÕá0ô°C@[ŽBѺ9‹ÙÖ@ûaýö]ø]§ž_6Šw—Ííjò@„Vé<…ñ¤Ù¶ÊI <^ ²Ü0_nŽsX T‡kƒ)Å®'é*l§ŒÖ=àjß#›³²§¡©|uÛø½Œ–l7‘Ñxh™îvvpâKËkÝ╘ǭÂý'R¢ãfp»öJpÚBئ4\¸at¨R¸Ê’Å_Û9 0õäGGXæd<žtJ‹T0ð0´G½hÕ¸…©C©–%Ì «Ù •Úmµãl‹sôn[ôN‡*+ÃÊž#S|Iˆ,²R—Щ€¦ýÓÁ¾É퉸WÒ©¨ Þǽe} ¿d§VŽaÜíB‡-š„{`ÉŒÞÝÔöÅdÈñkÝò"š(atÑ7”x86mWïŽkÏŽç)VŸ¶Õ$ ¬½nkÔ¬X= ¾e¼W,¾è»±EÁŠFØcƒK€(7ÐÝ‹à!(÷ûìi¸Œ@¢«éÅ3Àïâï_‚GÀÿ¬ïHÒ¾šž qß,74?X€?§|o½* ¨"už+Ï|RJ3ƺlg™vIÝCSO×n¯¼®À€‰¿Cd¤¢†Ñ­6zf›‰b4u c³Ã <´C³oºÉ ¦Œ,îŒ\%u¬Û G °ü H›/Úô„^¹[€?ã³Y‘g!åÚˆ…Õ®­ïqs³ÈÑo!œ ëþÐi)ØMÂÑý6“Ž>9#'€‡“ <z(´Q 2ìeR[F«ª~3B6aY›c"bp‚í˜n,‚c;+{<Ο@™åBÆEb•»ð±ÑÛcψÈN§iîlLtl˜ïÚf Œùò,c°Z ‰“‰Ú%TÔÉ$—J¹gä™áwˆïŽ6>Ÿ© ‡ 9rÈNk½é8%êÜ öîÔt¥^ÿG3ÖÕÁ÷uP÷aØŽ¨õÍñ„,l&ßa\œ·œ6CE¥1î!C§±žû†/ȶ!¤³oÁ®bÛ©û–c°›ùR'|^¿w=À‹èW†~gJDwðLöºcÇ4Cß6¸U¥ó Üœ»ã~åw•ÛzºeËËFxæMW7ã³´ Ñ¢SŸ€ø)¦^qogp1ÀJ°a¡ÜvüÃfç‹ßz„ÔI–þ3Âõ“Pòî®zjL£m%¦Èâß¶†á™,5–8”cð—§üë ñS þûƒ??Åà?g0ŽO1ø'Õi²\`É%˲¥ £ ô™îîôΜ¹Bâñ¡~%¦r]îš îœ—Öýº«fzhšèU; [ï#›ñý‰,ì!ÚéîîƒÇ¨i£hr–¤L=I¬ÝX:Ú*& *ö?I8€ªû¸òW›OØw.õ{÷½êwuªºù [_µŸ pð‡ε5Ï«3(鮿6â7Z€¯äìÞàîóôêÚN9§í:mw8N¶«]ˆº4…4\ÚÝ=csëíÝ]wÍðì|“2ìžç®æè«a$´Äb¡7”ì6÷EʱöŽgû?pS“”Ž>v'Îݲr›L¢X®›Yª¶[®›Ã´u„ «8õqÁw“0p¶ôçoöÖ~âÄX   Ô‹yp¢¬‡ ãa“TT3áÂd¨2ÄpTÏ㸣*íY^èCI 71(EÆâ»@ÁD‘†þ–?±òò='y’á̺P¼Ã@µêþ,Ùy°õAçšp?áSÌ.*±kÇ }IµPˆ÷%~¥„(Ì1åÓ,œG"ËüK^‚h;a?FÃm¿/Y¡2;&))$)U{Z|À·Á@úÕ"夜ϖ´k°„Ǹ›‰®ª¨Jx×nX[¤‰¬¯uãq hf¸šhóKËèƒX«“úž'㱬NhgßÇqDIo[©aÛ²„ë>pc°g'êÁ›áŠ)¼´¥ýnO’ˈSg¹ óÙQWgùÇyqÅÅ`-±¶ð­ƒ:™EÚÜÉ}½TÚ"×&´Ï¾7Ùü÷fïke®âTk÷–_1)Ü\‹5vòÙ…Ð,¥öN㥓›Ît¨clmÙ¶qãç0 ïùàm¸¸Š‡¾ð=ø•¬ðÎm{¢(ØöºÅ*Uë“«(ÉÚ4ýÝ6”²|‹,6™‹¿¸p©:.ŠÌ¹`‚qVŽGà e–WE›@tNnÀÂôœ*Å`í~J³Ã¡¶­ÑRøø8Nô'$vŠëÓ9Õo¹zlÈãmû¡ýæ×œB!¤p˜ÁÃc±•e“3A‚SW0ÿa mûW,$ª¤¯®=;q_:ÜÜGëíªq &»§‚v°"ܸ‰ Ýš*/4WÚçij…}NÜSö9Á¢80~9ý#˜CDNœÆ´‡*‘ذ8BÎÃe½ŒÌÄøúÖok<ÓÄ1‚—”hÎçœ&ÊŸlÀ*–™1Žœ=™“ç ªöüî*)̸´#Ó’4oxÑ¡BP4AîY‰'àŸ~N,KO¬Ô9X,á>K¥Ü¾þ8"¨%% ðÅb¹þ<5^3è Å]”ÁÀ­Ð÷èo¯þ´Cs¯endstream endobj 846 0 obj 3541 endobj 854 0 obj <> stream xœkoä¶ñ»ëûmbëD½Ù H/A“´hÐǹhïÐîjmå´’OÒÖg ¿!?¢¿´ó"©]ÙIÛ\p§!‡ÃápÞÜ* µŠðü»=\¼þ{^ên¼ˆÔÝŇ MÓJþÙÔ—7ˆRfJku³¿àuZ±*òRÝ.nƒ·ý¡žšC=®®ãL‡e”OýQ­ƒCõ$@\+SdyPu“žzùNý=áäiÔ–¤ ªÝ®™š¾«Z» Ç~<ŽÓ¡î¦Ñ:Rø}_{`|¨¶MwÚ‘"¸éw7‚:•&iê4…SÞì.‚[\T¿[Ýüx"†$ ‹Ì0Îm°k†z;5«8 #$Á¿V: M™•ŽBãX Žc½£}¯“¢ M”¨k3)d>ÉsX‘M7ÖÃdáôD4–Ät¦Z@㦞ëºó]?Õc(p”Ó‰Hƒc× à7g¶Jƒ}?Ø­O·Ñ8óüõ»úEÕ`š›ÄÊ*OÃ"‰­°†¦›êÁ]ñøo¿ü¡oð*…‚“vnÂD'î+¿y¿g9¦IFYlå<Þ7Û{·?Ô xBuz„UÓmïC¾Î"±,j\Y†©)KZ^)¾wU¼S›ó»¿vØF.íæ/71y˜ä:Øö;Ð23ÔÝxj‹‚®ßW“Ÿ&uÀãJG D)MF ¹D‹¤IȲ[M¤'°ÖAµév«Ô`öD'DÀŽ:;ž( õÊï¶?(G‹œÕC5L~NcWçt VÁ÷] ^ÈŸ/n>½µ–ôÇÔ,. z¤ýØŒh(%œ´rS‡ȃ7ÓK‹àÉŽ ¸»zh+;¶Á2µódk´ATÓTmïQ³y6a³¥uˆœ™fÎTä»jÇÞC‡Þrfë;Ï@õð0ô éÕT·O+0c¢8= ª¦gÉÚ Ê‰·Jaƒ¼ä©FÐ(Èb²,ËŽ·mZð È7/)Ør Èr ÆFúÈÓ)™§3Й‘|Š6¤ô°^ð–ÙLæ–ÐøÔ¶Õ¦Qê¶B?ˆç=÷ƒ–õ©÷øä~ìf(ýÐÏ}Ý ã$ÂCïw5#!n;ØÞWCµEoòɉ=§)JU‹unÁy˜Ï}I’‡1ˆ­ÙË7Ä f²ã%Þe] £ ìüè3gÃ!¼¹€h$M(y»E‘±ï=\Ùï\§§D¾Ç-3Áf¥Q—!„'¿¸™-ž†Tmç—Ì)‹½S9Ûýùž…»Ìj…9JЦ·àÈTtÁæ}”!þŸ2ØBHÈ h´ªóˆp}Í`Q3¶º+†5ØÂÃqšPa%0»Kã(4/Þ© ³2†H*÷ê4Ã2ˆ—5ùo±{Ɖ$dA”e®òl{u·ˆÏ»Ñ¯n¦Ù©ûÓÝIÌqA‰½˜‡æî~¢«7!&=ÝÎ~N0<y9„W>ùo*ÔžÈ/ðÌD¨¾ uÐÖû)ôoëmßíÐ"i}86K±X³½Ë™žßf’hõr?œ_'ø¼$‰´½Î™ ’ !íQužgƒœ]¥EXäÆK×^!ú’<¦©ïÚ'04Ü÷Šìä\‹…ï‘¿cq¥ ¸‚tܨ|7v<ŽÙJx‰Í¸,ûm@¸?wœE<»›—%šžlv‚Èès‹é㌿›ë4нD\·{uìzŠ+4[ ¡ ÊC®,ôKg©´O«ò$Ìuò’Éj0†ÈjjúYVö›äE ™­>µwf1Q¹÷<€“­·MÕÒíã$À¢ ²UÌ bü—’«N’ø8ÊB§^ÍzgX3Ãåë•âC…I£ªyR°Õá¡­ÕxßS÷8*„0˜Â½>Rú £ú½Z:Ç$:¿ð\«… u˜”éK‚žEKUí¹ÈAm…’g$žlçBÞ\høí‚K(€²0ËÓÓlûòp›­zõêÐßÁÇðu©¾ùÌý/¬›L•a†$!#P×q 1,OˆÚo<ÿ‚¢‹0JÑ @‘í° UPÈC^¡– ¼xA o¼9À!)¥ž§>¬0Qþ¿Òc!(õÑKÐ ”Kz b€Wê<='†…-,†¿pè÷8t­spÕ™Õ¯–ÿ­’( ¾²e[Q*"J^$&嫾 ðºþ‚9¿zßt»õeb#Àùã´¨ý@Q@iŒ-"nV9f¾iˆé@.ò#V‘Çó’HÛb ![9á7ÔŽäÎx±9¡I޳£ãpFhs?`QÏHv)[›œÝ=´¡æ7ûeŒ4iëâE=¿NÁUੜ^?r‘r×Pj?ÀõÔ”ôÐ$ÓoÛ{ Ï- ”’ë1Ï|0Ý6wIDj°Þ“††ƒæ}•ÙŽ\¸Ð:¨fß\àà«|Þ› S™aš…¿"3µsX¨]¹ô‘nÊĸH¹ôÀïܺ,À6*‡•mÓͦ¨dÀïŒLe°SF.™iØT¾ËôYæìœí‘ EªÁ G+Û‘,ÿvfÂ5¦ÙIú¶J¨ci¨ì‘Uggð[²«^=ä&³X/<-d*Y⪞fv ;i/'©›1ãŠÊô¼H‹^*H7EãÔØ«jÄŽ(”†ªš(‹›±þpW(KÕ d¥ðÒ¨_ê:žˆIk +é\¿ ¤_ø É3h6Ë}’Q¾ Œl+»:fçl¿¹ÇOfB˜%NKåY}•9ª¾‰s²†¢­%jl úÁ*™¡Z/ÅaìF¹‹ÃÇgâpkÛÁXLJõêj‘‹ƒ-³Dv/8©Ygf eëFðØ!Å¥Ö…YÙâàuû _YT”VëÖTÉ"!p¦rb>´¬ßÓ(Ì´£9ü*MjlP_™hÒÚ@ åF”|vÇì-\ÄçÜÓ÷xd4cæËw 8EjUшÔqBBÞèÉf iš‡~€_Hˆ¶@¯é½b pç¨`cg–QìÃl’w}w=ëRã((¹8÷(D÷ Ìs{%éyÛ)þI zÜV†Â¼µOqIž;Àš °ñbzÃ;bŒdlŒÂ7,,Çö¥ 9¼»«ýÍäWUãYžÓÕÀâX ÒÝ…”0TßÚ·š±?Ô‹Âø™bòüÑæòûËוºSôïëcê>Û>B .Á!áUõ“º\¯7Íz½ß_¾Þ¨7!`}r|âøpX¯¿«ž®„¾¦_×4»,>“tY|šdV|¢Qp=õý²¦ËÂ¥dD{¾0çG/8â‹‹iêÙÅ2\LäŸ] 1ägç3rñ°eL¯‘óúï„0Ôr9F>d¬”–`Ûkïè…ó¹# y·é‹ƒ×È匓RÏ9)¨CM0à 2öKF"¬t ÑJ¾@b1ˆ (v¸D·…¥j¹Ip°uù€übQv_Cd‡ênÃì|W‰zƒ ±-¹ÝÑY\(w†/W&Ç'! ì°›1ˆ\ÿBõMx™Ò³ÒW‹¬^Šp +i"ŒQCêò2,M|Ò:Ã1l6­ƒ‘R[‹S¹9y$OޱôÙx=99­LƒgÁ¹Fzæ4Ù A€ãèVÚGeÞOå•EÕ.dG›/v~΀ •6”8TYËnâ9½_ò¾S”úqRÛþpè;µ­F|Hÿä9Å5kézý)xóXh{'òü£*u€¸r8ü×€gS6 ´ýom‡~ÚÞC†ey†ö…ÄFö¦tóþت¦³íGê»À ᤇE;Pì'Ø’ÿ’yQì§ÒìrñöbÓ•+Åï–?ðÚÎíèˆ;€¥&â–ÓìœxtÛ«ÄÍèdq¦vÅmðF õ=>T­:TÃ{Êl•ôs©¯DmHÎz±ŽB„m¿ƒÄwó¤Zúˆj&’ ¥ XÀ{zh…ü;¨§à ÿ(äòÍåâ'!×áV~QTç¹W?„±jcÓ¢ÙY‰+³dò]Y´R^| ¨ªf “Po¡ 7ü`·2•+K|Ú¶=ÿÀƒFŠÙFå|#ü) „òcK¥Íë`ÓüÜc[ó#BÖþÈ}“ÊñI‚}«…î.£Ù+—¨uÀVÇ®³¯®Í-?{îiÈ·³” µ^¯ä'óæc¬!C“ˆm=‚mêñJí‘ã$óbKü®m€›n×/}‚wÊiË[¸)òeiJ…­9Œ¥#Ås)·vv2‘^ø˜ÓÔ¼YWËO,h>åÖ ÌÖ}À·³ôàE³Òη½£®çn²„Ÿ>™“D UênÆùGYq‚õó0Nç)5@¸˜ÈÆRFiúÌó5™¦ß¤H!Å‹P#ýlcŽ ¾‹òbZ"­ A˜-®exèQ¿æ 2Ég¼A`‘+´°{|¶Ð/),Ä Ú®˜7pp¤ v» Š. FXiT 4ò/,˜KŸL‰Û„jßõ]oƒŒô€BÍqðj_Wè)¶ÏK§—ÖAq7ûÃÍÅßàÏõà¬endstream endobj 855 0 obj 3736 endobj 859 0 obj <> stream xœ½[mo$Çqþ¾¿¢c ¸¡s;š~ +–ÛòˆmþpÃÝ!¹òr—ÚYšàüÿ‡è—æ©ê·îÞ)<‘å»­~©ê®®ª~ª¦õhj)ú_ü{u¿øìO®mÅí¸hÄíâ»…änÿZÝ‹__Òo…”âòfæIÑ*Ñ:/.ïïªýîb©|[;£ªãÝ eªýÃÃ~ÜS‹ÖÕ¸Yç~]íoRÏl¢®vûãp7ôë11Ãþ>RVÎÅŒÇá~|]èë ÙÕ]§ºêñXZW}^fu=äŸ7ûív¡lÝ4¾«ž†uš¡ªë.¾¹üÛoµŽÛׯ֯tPÁåzQ}Ö_\~;W«µ32öï¡¿Ì—ªÖªMÓ¯?:ý]uÜ—åß쫼gÚÿ=/n©»¦¶K©Â¤þz!MÝùÖV ¿¬¯±?ˆë¶Š–ÎØêI€‰Èš®ÅåÝ0bØÃq³ßêývÜc’x‡µÀÄênÀФ–Î _[Z8˜b Zò¾þ©ì:vK[k¬Ð×-¸}GLÔÖ Õ€ °'Œ®­1V,ó˜ÛåO0i©ÿß.\H Sm•‘u§Å=ÁjÑʮ҂/æÂ)ÏD¸ZÌZšVl“ P»Hœøw‚‘«ÅÍiª—èM§Šm §ª~û>×ddûeúDIN×Ú7rª¤Í3-³‚TƒÔ¯• :R²éB‹ëvÙÔ.§éÊØÕbÖÂjšL ÕL˜19•öre)okKg•uUÝô«o~¼º8cX´ÛlyŽú¡£Γ¶–…œ-AaÞÔi{<¦ˆ>‘,ÛšûÓEóÑèÛ5dƒcéh´ln v§i&&©-bYWƯ“8O™â•(ìˆ(Òx,–Jc­êT° ­Ï ¶)ҙȒÂЩl´43Ùä)Xn⨉¨f.]“ãM¥kïŠt&’¬8t"ZæÒuÛN¤Gj"*IOú0dG3í§Xû­ªa‰´¶ dOkH-¸”¢öÓkŠö™ÈÒÂØ:|¿VðÐ³Ž‘.›©kØúgÙçlÚԸǺÿO×0×µì&®aƒ¹%ønjÉa(’¶uLfט´D×(Sà …EZv #•˜øÎÝ…øCfÆD–•œcÖÒ̤w(Ì9•Ö<[AŽÜe’7“‘äåÈ=ky¶‚ÖÎVÈ©´“À‰æ+ÐzrLdyaìth™¯€dLVÉ©´Ÿº;&]H©æÃa÷ø’Li‰ƒ€ì«þó¾-# r‰ýån ÈÙvuãYŸ.dS7 yŸZ]7»Ûíi 6Âcc$»ˆ¹ËTëÍMoRV7ÃaØS_W=lŽ«»<|úCd*W­ö»Ý°:2¶eÆ-aÛ¼†>ýTÕ¸}<\è.`Æ×eHÀÛ̃úû¡,+î 2–þ«ªßá»õpWûÀ@@À‘€êÛÅå/ßEH€Éùw[à¬#©»êwµzmÐV‡&à6¬¹s¯ÙÅŒð;ÈrM½:dÆJ“áwW•¬á)ã›çg Dèš6!ôõæÅn¹ ¿™¬©ì檇D*¨~ˆ ‡l}õ¥Äžj3¦Ÿº: ß=‚÷:q±!ˆ[[ú _¶CkÍÛ£gÕC‰™†ép¶ ;_7pÄœ-<³J\bö"m’5ÜëÛýfF.˜Rœ”~ëÉÁ¿Nm4$&T6v"µ¯6i2t6ô«»4“úãDÆt1ì üÛMxƒA4R¢Züã,fû!ÝM÷S~7Á`ÈpïûÃ_±)ƒ{ÌZÚ4Ÿ:Ìï‡ØhàºXÎ!‘]Úk˜"q@püDvÕv¸9F FÞo÷»¡N½¾ú×]a[´šÚ,NbL9[¡È‘ _öˆÄôv»Ç~·ÞÏVu|†$ GÃSÚ7oâ Qrfé\õ„1bsO›ã8ɘeC&§¼·')¯®Uò&ÁF;Š^äʼn-G9 e«ç8¡;±Ù!ñï×bƒ #,ö(8|YŸIS—”ˆ(¬f‰õ}4U¥<Ý~4YÅJš8ä4]•È Á¥ Yýø.’qH6²!€$gdí=e¬Ãå§Ð‚åHµ R= Ú#b9ÐKZ8©%Ê\©¡¥††Æ#q•MK]˜¥y\•À–8À¼)6@c*ˆ”úÅù+#œ(²2ÜÜán½ý`ûqřڷög¨Î€kڹƑ¤;¤ ;áTxŒ”BK›ZÚÈ;—T)IwÔµ; –@´”õ#1è±pµj±ßP74‡½¤ R‰M÷bÕµT0˜ëîæýg§‰{Ð]±Ëè® > ;…?OtÇ=O€Ú¿]Ho-öе¤ÃÎÀœ,+ úøó‹Òu€NÍ7ˆÔàzu6]g÷›œì×ÿý–ÆHÊÞÒ¦_-8ˆ¿çÙyØÔtÿ!9—(ÚÏD«“SŽÈšÿzQ­‹öÁ¥íÈ|’Ø.ÎçièjQ|H/òx¬:ò¡_Q€Oy…Rºe}7N'¡J…ÕLä&*ˆ‰£‹\rî™Ü÷~aED‘¤~2å<ÅÓª¥R2‚ÊOKO¡'†ôgß4ÕW1>OðsÇð9Ný÷ì¤:êRKÊ8Útɘ}Ó(CØ+–}÷Û¿ñíʃ¼Ïp†h¨S~«X-õ3LŠŠI'#* S.0ÂÊaXÇyEhï>pØ‘ÒL‰å1 †EÚÃÃÐ'¨,§ÐÀ8÷¾.ãË>œœ²µ™l)áúݳDéC5ýTÁÅãn;Œã9ø…û¼Içzæ‹Ã~mFq» ù úDЮ>a (…0ËÅfýÌ‚+!ÖËZ„±~óþ ü±zÓ/¿lX¯h÷~výøçõ«««åÕ•èñǸÆë÷×Ë<²Øô«y²+&0.–úܰ"CE°– ôu‹+Œ®•Qê0,(öS0TÂ8`!üE…»Ù€@‚UŠ žª^ô5Ìþ 9›e•…EiŰʹŠ"]¨®¡%P­c¤k•e!ƒ–›I2˜“p œhiÛIEt7eä™m`ô’-ª–m,b þ¦@ÿ5—ä ÙNÉŽo̯ߦÛ@%w$dñ¾”ŠÀÄÓ·‚0¡r“HM Bø•âY&hš˜1‘DùO¸»¤v¤BC@1Ý{±”®©Þ<ñÙÑøeªB¾ UȦî)[ÀIPCjy¦¨¿s8)MEÒƒÆM…«xÇn%XÚ1zPµæq¶]üþD-Ú„–¦ ‡ÛJÅIê’Ü™`$!S’J¥¾V{j©J,r]°1”\U‰¤];‚K2–m/™¡Q,ÒjòÜÄ8; z‡©Ë:õwð§iMü ‡Ô98-­¨ oÛBÂòÊp¨eÒ<%O@î¥dv‘,âbÅPZP 598]8…¶d PuÛÒ$SË–Ê—@÷ŠÖÔRÝ1Ø©âU  D°>OË Ak<2 dÎ5”5€%2Ê< Ô;ªÒÙH ›0]´’à-`‚@d<ÜXò§Avcãq¢Ä…6ïi†3SuÈÐôAs¨dí)/S‚y’yl “¥Z­äå Js¤<5E}8eξ ë"ùsˆ´Z ßå߆´sg«!ßyß÷÷Û!öxÜ w“OöiF—!R*‚lu¨6†¾ ÂÏÿÙ ãqXÿXnvá™Ñ€u»2¶ßŪN =ÕÕ²ðݰÂÜ~¸ “ñÒT¯ËZ¸žõj„ìYÝÿ½µ>¡·¶¸rMßQù)¬…U8¨¹­ö?hK À- ”¸3Á",aÞñ)œ$R¹ù¤^jà#>¯ÿ<„EÖçT— £.ò€‰I"àFŸ ¬9¾BH½:”®B¯ª€À×Û²ðŠweó`.›UÏï4dÕ“ó ŽÑt¨‰Rø5>i‘ôpDOÿ§÷éA½è×ß>ޤAF^ü¸…ûÀKŒwý€Øþ†«P£@à [©tÜä7>¡ù9b ü;³ (Z·îꢎ[„BÍN£ ÈRÅ‚ŠÅŸ Òãx¢~0äWû*I93Ží ß’¥RaÈT÷#T—:*Eg¢<®åâ'»UÝ<œVû5+cÌ 0E&Óbîõð˜ÙÙjµÁÝ®.SÎòù™„Äé”?•ܨ@_à™æžjçç¿«žî6T!«‚ý÷?”ïW+ öð܆"+‚{v9*Zëøá#l“ YÝoÖëm¦Ã§?åôñ'üôšÓƒø2–1OÃv[X—[ñaœŠDÀ;ö‡IßþPæ ¶ÔI¨Š_¦uŒŽÈtB>¿íôeÐ?ã1QT ¿ŸÈ%å箾ü‡Õ~ÚÅ³æ™ Ö…Ó'·Td›q?á÷G>®Œ'±¨# k±HŽÇÓP„ʷ݉ÅL³iÓèœM«ÝúÜçÛúœàåÚXl×T… ÍîSr<ì’ÂQìÅe±9¾Nò½Íñ® ž¨`¢ƒYâw‰-›wßo·§+ço.yåäÅÑGãz§bÉ*£½ûÚT¤àø‚ãvË0œÞÈÁ’ƒîpêÓ7o9G¼^Þ¼Z¯®_½_½ZŠ¿ >)q»\¿¢Åm-àªâïœGò ˆÕ«7×o0¸_ŠëšfÐî^?“%Ú‘,öïoÁëy†WîÄèêyŠh5Õw½• ªsË)¢ TjѶ†Æ¶“)€vƽ8ƒÂÁ3•Ú$C&®¹"þtt­Þ¥"äB’Áv[Þæ¡}—65NN¨¤ìÌÉø–Ç—"/,ÀQ5)·ú¢çéœP†° bßÐéÉ¿fo”’ Ìœ»4 9Ð쀱Z_ɶpæŒ:úš£Úɩɣ@úÆaÒéd2‡ÆÂ¾È|­9£HÜ£¶8™•\Ç_^~¢¢ù!÷Ðkf}áa~G§Lfv¿H90b®§Ç=ÛI‹Õ­2‹ Xú¥AÓqp†½Ô875¬_“OÌŽ° xZæh›ÇË3ØÛg•¾DÅ£O¢ly‡Ì5:Ú³F`䲃i§Ï±ÐY4Tv06¸E ºC$kiAQ ³ÜâbKCîf¨ì`ù:#æÌ²Ñ……AEŸ›´û„’½˜ò›GÙ¥i¨&è>þ•çÃ令†¥@ñ™Š¡=†pVT7?iËotÎ" Èb3Òù„Z*GÏ%Ó³ünù1S$¼Šx.PžÏ. ôé­ uÉŒsÝFtøG„ŸºŠ05çñNÂ5›Þ¸Ðï.``š\¿лi’¸˜âð`[Kªâ˜¶úþ˜„ú”¾Ž-­ sˆOˆÂØ6d«eàÍ~w,NåØovY¢›Ï=>]ð«1cùÛ³§oD»üîlžg›ÛÌÓ"ør6»ø5,ª*+Ü¿}ܭ⃹NÁ"þ~.üB²ÉVü6š`;\X"äÞîÎUÛiÍ%M$"•Kãè­Rj^í‡a|FLm.¾7㦗U‘È?TX ³a$ågŸ9€X¿.fáÝñ¿Å‰£pðá™"5p­`²ˆh-Ú±µ¤æiý`I_¼ó“ÿfL¯•ÒÂñóÓd%CùÅÕÕýÍÕÕêσJ.ÓñG!ÄäM×+4¡Ñ˜Vϳ %p4÷§L*JZÿ\Ië“W¨’*I¸Òž.)Sáʃ‡ï‡ÝjÏ—×±§jJXÚI\,Íß Wwýîvéie‚쇂ÜﵸyDz¸àz[®‡qi…sÄÛÌ{¥f®%6;â÷³¢.é(é-®\ôÅKV”¢wÙŸ*eâ"³Ût¸×;•Ë:ÿE…(ÁU[ñŸÿñq3ôGzâêH¶¬ªÓÙø0•ïè?.þ©šsLendstream endobj 860 0 obj 4964 endobj 865 0 obj <> stream xœ­ZÛŽäÆ }Ÿ¯Pž¬Žg4ª‹n€dc±ƒˆ³øa×ênÍ´ìn©-©w<@~!þûKÃK±J}›ìÙ}˜º°Xd‹<¤ú§(MT”â÷wµ»¹ÿG^ÑÓx“FO7?Ý(šŽÜŸÕ.úÓ‘”‘2ÑÃã ¯SQ¡£"/¢‡ÝMœ%EôuÝû¶? y™EJ!¹ÖI•fÐüëÍÃïßÅ_͸jºu¿¸3Y‘輈ëní:E¯›Õ Eÿºq¼:×C8¬úuãy”ñal»'Y]ÅÓÆ“êxµ©‡z55øøþá/ iaŒ“Ô¨<1EÊ=¬oâ/NQi’™T¹išÂzU%¥²Bð‡W׿‹Û.µýÆÄëûàéî$-fÑÒÌdœêawº@b8•IÚNmétý4ë=öÛm¿ÐY’¦Ð{ÆÓ:= ¥UbR}í0ª$ÏÜ\?œ„N´ÒÕµƒkßñÝ“Xp§pé¢Knƒ.Y6ÓåH•*^6ýà5Ë ›…²IU–ñÏ3V}×$aKoµnİa11XãP/T?w³ ñä­Öñ3ߊÊ4Þ|¸'ETÞÑBaÓæñ–(+c$(S¸€<^¾H»ó\Ð2x õa;݆©%q©@†Ãä¸Ë%;FëvhVSKâUÆíæî¤tw”çIa*¹‡whf¸s•Û,–AI²¸^ö 0ÞTiäˆ «ãæ{Ç2Ü+¥¶ÂrUw"ZÇÚ‡±Y‹e<õá¨V5ÌÉ”EåvAÿ9a`WßO“ÄNõÙ!$|]ÚæI¦U¸®¯ZØi€'gAeÑ¥öòèÚžW–géçH]ž5$ŸpÛ,øÒÌÑõ¯Þ?·óK/Óϱs‹êîi+]£â%8µéþt i’ <¦Í¹«3ð+yÝ÷‡3_U$©Íå¿û÷‹ÛÓgŽf¦ðX¿Êã0YÏëß™Te“¥pÜžr¼³Œüͽ·ÍㄼîL•&9œ¸£S¾V'¶ÊÅ1ß$…ù™¤Cû´™sÕ.FaG[2×ì»%˜Ž¥W‘DzBƒ=nÚÕFº&~jIyUYäè2˜xÇà3ºUãFlÅÁ‚Ú&Þ÷m7Q´ •6~Óy{ ûö¡Ýaºz-Âð²îØ…L†vefQg߬Ú_èç¬Q³¯Æ¶qÉS|òSø”¸Y¡ºBäŸ Àñî÷Û¡Tüî¥í™CçyÓoý^JØÜʈ9õ˜n¼S^é´©ç$ƒß&;ÓÖÄsÒ#‰Èqx*RÏÑOßm_¢©`UÄÑ¿£%ô7í횺o£qÛƒO‘ žÜJ´l"vr|IÏ]r!\Gwˆ´àq G_DõrõÙú3hDÿŠ¢/î×ÖÜoÛñè`ï×e˜8¨Ô=ò*‹Ê$sÁ¼Šî ¢8[óß! ¼x?&±4”áG•y¤’âh°B, ƒ¹§¬ìñàW7ßÞàÈ3Ñ?ß(e O‹ÜL´»Ñ*-!ÌF¹Jó€çöæí+D l¢˜è¤+é0­6YRBTÌ *`ˆàö¤.hj*õÿWXÛ Ì¥B5«`L^%)ŽZô| DûtEM‘&&/¯)úñ7›}¬¢¦uÒ†"lQU‰A´E_¡Jsû?(š¥6)«ü\Ñ;›wÄëùiÿib•ÉSy„î02›±pA†¹C®/ÓÔâ2°c)7Ê+]GŸæ¿¡Û¦6@MðaÖù³g§ãU- RQYÆá®"‹®Á6nÆjR­¤À@Ó‚¿ˆKüÌü/ίû)&б¬ùeÓx›0äfCvÃË&Pçigw¶xÞ´Û™ÐÇúˆÄrŸÑ;ä€ÊÙw Hý8#|hëÊ•xxœ¢vg3>Þéò€æ(À2j»º•쉇ĦÂîÏív+ópõìRàDš@4y¶æ¼Äù€U´z{˜svm°D{]òøïû.®ûfôÇ81•Žwõ>àÓ(§/]A²ø"£û¢ÚÃ<…ëμâdñü”dd9cÝNc³}LÂÀ×3¿Þøw7ã<, ¥7ÕBÝ*ɰ›²‹e9!kÜí°(ÆÂÖaÉÐütw0݃NrRþ€HÀ÷ šµ4K¶~ÊrÊAm•¡SÎÕwLcî¼ïfìÁÑMíê°­‡À—±Ö­ðS2õ–ô! L»+ü®^“sS{±âCwÊxYŽ?®H—!3ê]¥™C/ŽÂ ¥,q}mđѬK¨£œK ¶óì|Oó—*j[ùÈ*ü¦ Ñ\UY¢3ß#f& ³ ¡¾ é˜,ó…øW¾g%A¨ïè„¥7½Ò"öm oèà©P2Çô%gæt š??ù…×éN›äi9¯€‹Ë®,•gÈj¨ã½;u€éaȈi@]‘<ï¼3-æïH5¶O¢ v[Q°7+šËûসÏnŠ7ˆ@í9à…0aðêšsÂyöÌSÌð{â~tMô¹ýþ<ç–Oøm·LÛj9T´|‰lÄÁëôÓß®u¯Áoq§_Ù‚~×qi ý)[Øò•- ‡>æÐÑ–GìC:z§ üÎõlHFuô–ÞHôTïÏö(RO[Øâ÷,££‘¢ È g"„[c8pí8tÎDìÊ•ÌJǿʓ•§>WüéËþ·[7,PÞ1˜3ñ#°t’ó‚KŽÚäh©ò)—7¾p ÖÊ”|5–ôŠjéßfUØ#×­O¾Âßá׌pí›§Χ€ykúrGR¸•Î9ãõìÞ© Ž—Œ{ÄÅŸˆZ„ ¸•ˆ~`›ìÖaE‡Â1Oƒ§8L"M\Ï –žåiš€>–ºÁ©xsÁ ýv/“™ÿF‰ŸºBù}—¤ìÔ5×# ΧÊ×+ÿåש9OuÆÔ×î«ì˜p_?5·y˜Ãò˜„G;³a!:Ž!Žn.!¸-ÆÍÁ{z €w  ‰¥‚ļÂb]ÝWX¸l<«Iü>~ÛÌ\z:Å_ˆ—ùá0NíãËéÛ0&1³ß¼öS'LÎ…ue)œ½ô™(gŸj‚¿,*AznŽS¿÷2LnWñãÐï£u/aƒ>”¨JͤÄ刌Ýü1Ê%Ë…)êHY†œ!u*;«nóˆû t¼ƒuý#ãd†åœaÎÕ Gô»xÍý,³*C·SôìKWýðãˆõÒðÑïçz5áo0lÕ»ÆÑ"l¨_¢zŒÎ­¿÷CûP'6“_zÅTTcÀ¤Þ`w–rp u±Uå#¯Îœ¥W˜«“GõÿÄ“ˆè£C–=6õtšãݨ¸ÁoX ŠE‚¿½ùqè}àendstream endobj 866 0 obj 3714 endobj 870 0 obj <> stream xœíŽã¶ñÿ>qAqt»Ö‰Ô7Ú?—6A¯i›´Ø ?öY¢w•³$G’oã6¯—è“vfÈe{½ X“âp8œïþ(Â@‰ÿÜoÕÞ¼ùgšeâa¼ ÅÃÍ7Š–…û©ZñåäB)q·½±û”È´ÈÒBܵ7÷2 ò _eµREPºŸÌ4в«Å¾šqõáî/ˆ&OM¤Q,îþzs÷Û{ùåqµŽ"¤‰’µÙ®I^d…,»éÖ-ÅJ~÷·¹I¤ä}Ó<åÔ?˜éÑ üEÂÄu$Ç©\é0U˜ÉÏ+þ$—fÞ¯¼œüIUßî‡fd Q.K?ãdZü©™ýlˆwÿ´"Ž„Jšù*µ8º*;ž¤rc<£1¼¢3ÙtÄE¥™ktCÇA”dòïåÔô]¹s_²X¾í eˆT{ï´?•í~gäÝŒ)NeoÙÈÓOMWûcú­§)I éx±cóÐñÆ\¾—‡ÑÌ[ÙöãÄ›s@4™ð¶ü!ÓÓJ¡°b-{&2!¢zåñ™™ž}gˆ]È(P”i8´¦›Þ¯"KƒB§²í8/´c%M ›¹u€!È÷±©ÝT%‹} …ÍŸwå°RÈ:Kåƒñß´#ˆÈ¯/錂°6’E‘³g.ÐàîêùŸÕÝ'&T€Ž¤aa—ïeõX݈.I€w© ø¤å;Ì$òÍ“0>g¶ÛñhÊÚÊ?ȺL55+ W)”:À-®bGÙZ'°)ÊÄ•‰³–Àç˜éÂDE Â8swÇaoëq‚äÃD»u’Ð9?tè4gv ür‡3mž{S5Û#Hfñæ9P÷¢š|ž;îÑÝŽß¹1)Ú†U~{ªõ iJ{¢…µ6e‘ƒŒÆ†)YÔx4_-6FÏlD¶®Áb§žû'ÒÓùɽD3Šm¿Ûõ+ jæ…|2ൢ»fœD¿3GR½Ü*†²{0@ݹÞ±k€WyVÌÒ‚x Ô:¾ùZ)”œ•¡HÖéêõ‰×óö<²äß=’Éala7Áº1·n­*Áá̉3jšd³Óf4$87ÞÌHrà1BeÀ¦¦&:¨¦›÷dè1³Ø6B¼ãE+ZP×Ô)ðw« CD®åÅŠ4Ndÿ,.¡L> ýa?Þzò®ë­Û­~‰gˆ¶Ž¢ï§urìç}) !=ItÆé(V±x×5SSb§$ ?]2þ4ý‹á¹ÐA˜Ï>&ù´aòSë 5d )šŸÛ³Hï(ýuˆHy/°hÆSØ ŽÆ˜è·}·8¾÷`PtŸ˜/)+dW¶†±äKÊÎà\šHd©O«ÄlŽ'™í­hÚÖÔM9™¤h(³j=Sw‰îÐn\¦B0»Ì!Ö`OS"û³êóÕ!Ýï?½Ó`6;øöá<\Ÿå!÷®ÌI ¶ ŠÇƒ×ûi²ŸsÐ1*ÆFY?Ìãq¿k&ÞžÊÞ—Î h9›™S©eîOºI›•Ü飛‚.càò¸ÐÚÔ›H:aÜ05ÕѦMì+€ñ÷ŸK5ivS¼Ä¤8“B¡HÌ;u¼)?”«]dzaq"žD¼ús?t?ƒv~ýå“[Ñ|»Çòôx0Âz£"CÍÄÔìJÄå€+v¨ù¨\ð¡¥î„@ãtÒYçz r=â½dåÒšW¥V¿;' ¬!Ò¹+¬¤€©ð÷«À¢ŒèQ.0`½öIPˆoVÈuÒ-Pˆ´Âæ†u¶¨ˆãÙÆþ7d ¹^¦¼pã´â¸íal*7M­'¡±­í stOvl½“Ý)C?ð,ͨé±­˜ ŸŠ‚åÿèOð˜ÔÉá‰uŒx:î¡ÁÉ«†ê.9ǹÛÅxⱿ|.ϼá`êC5Qëˆú DmT qšœ…úCH©àΛçòÝ䆙-ìy|ŽVÂLý‹8–}_ó ¨­ ¯íÄcj{¨¥å¼[kËî0VC³Ÿ<¦ ”{89u‘%ÕÀ¾šJCE,^¶sªiwt+ñ–ƒ¬ÕºØG‹6U qäj ‚I]ñj˜®êméƒ@6fÛóÙÊæu:²A:`àX¾e8—zóÊâhL®†Ö2˜Ñp³È"ñ¤ÙZÚù®—]z¡X·x@9˜ùëžt‚tötëæ$ÊÎ-æB¸“RSÀ3WˆÛ- ¨h¡ƒ‹o£ƒË¦ÃÔ~wÛÔkÛ “H–G>Š*3=Û2 )tÞ2Ã=WÙøó\&â°`ð#§I¦"Ô¨1‰3Ï]6È`|Ó^øÐ(ÐsÎ0õä¯Õ:ù´8q®½›\*s™]®‹,Hðˆ5¦˜Î»J|ûÙ Žm³3U`/;S×M§ˆ[òãë)ïj][õeèTŽ#ï´¢æñ õŽBµEÙ¤“¡·žåc9‚eãðåWÁ¼nô@äúÜ’uònáyaß.nDå “Š9ýŒVË=Ùtr—‹~s þÚ63¹vvÔ0Ï©‡íÒžºUöcb+mƒ¶Úî¯]!&Ú…Œûô0suI»Ú²‡ /»ÆÙ/š¯Ãƒ&ÙŒ·3Z*ÂÜm>+÷ý~èm/ƒÎNSFûRôC âN$ žê”î‚=Ž—HzÖ1]G à!ç“Ãä¾f…ïQÒ‡BSžØBæy1/Ö÷eeËÖ‹ m™MÇ¥òßfèy¦åØû÷þA°PÜäzOÃíu…OQC-5ÈÙ½G´¤Ä5–L¹7‡$¶}°Àïÿ~4|“Ø=”¸-ßßoËzîhX µ=µl|hßI q*’Ë‚)„ä›ÒT0‘¹p§ã°¿,•’(ȳ0z±‡]„Iq gݳ†?u—ØÓŒê!·×w‹"|÷¨øšQ~Úìq/U®Eä­Ô·e<»ÎR–ã©z¢Î‚Ž¡Ô×ɯë/_06Y:_ä~jü3œ,7Ž‘z¹,M² Ë“äE^'Ñ•S6f×Ï=½§g‘çEªæ—ÿ>yàŽ¬†+ýc,Øüe~Nd PH–í‰O&Ï_;ý®YVóiÖkZüVR/øµwëA¤ /&›€Âǰg-ëø>ÌåùCá-/]„J·Þe-ââ…§V†¸ ¦¢˜æðÌò•÷ÒMð)€|ˆt¹Ô|læ\ˆŽpJïx²dÏ';;vëc©K’PùNçNÙ-Û+ÙuYÝŒ¥¬ "Á ’aràV ¥v…KnÝ}àn$á¼h9’Ú£},™î8]¦°[UawÞ6Õ /é1£L–s¬ú<ú¦öÕ®ÍÌ•eòM®N¸–²Á‰¬<‚´³WÕgß–¨gZß½‰çפOÀÖ×ü°¤Ö1N¨#áx'Ô›Pè7q»BXÔÔ€\4•¾kÊ®õ¦{Â’}Ø 41Þé3ø¢×.'’oÍkñ³¨_,·ðk>n üü)?ãÉ÷ gÄüáâ(}~@Ý?uötMO‹#ÌǺ¤o¿¨áÿýØ"ý ~ó‡úãUuí¸Ë6‹¶ýVìg ¿40;.fß uêø‚ Ù7$³ý~DR˜`îbkÊé0¬¢E…Õ½x/“÷+’×Ww7ÿ€¿ÿ £€endstream endobj 871 0 obj 3178 endobj 875 0 obj <> stream xœ¥Zk’äÆqþ?§€v,Ú±¨ šañ%-9BTŒC?–$]3 «6лÏÀ;—ðõüeV èé]jM.c¦ž™Yùø2«0ß'yV$9ýó¿ÛãÍoþ¬IÆ›¥1B~Ùk´d–— Gɳäxí?_#æÖý£äVÂýztÈu8ýý޽„FI7¿#+Í?¾¸»ùΩd&ªDËÜd¹LŽ7E!MVÑHi2SAÌh‘h­‹ [Jb^è]'íÍ;WÌÖ<Ú›û÷ñ•†õg¢…*á‘h!L&Ë%ÛËÀs®ï ƨÃ…,²Ê×¥È ¶#,_Aã·ªÒ kR½y}÷Ÿ7U"poÁºŒ¿­!  ²ðÓ2Ë+S$"s–þXÑhYe§àõk¢Î\Ìèyu^cuf⨳¥¨EÑ*¯3©I§Òˆ a¨¥†ÃÄ•‚.¨¯ˆW¡¥È ƒn]Òè”G )2]&‡lÑ™¤5ÞW&L²¤>´.ªÌ”xV´áCµ\WYUc· J^œ’tTõGŽJÊiêRÑ!^.ô¼²zZ¨¬J¯~IÃ850«ëÚw¦‚ä•(#n}LÃ8 _%VÙԚ¢ð'X“h– ©p0`–êUú¯•{gh¡êd¥³…®I¡¼Xk”w35;TI6‡Ûh]™ Æ;Þ”ÊEŸ607fJ]Àr5­€—Jô« LÐY©à%í­x„£õ€¨É(Ú“Ó h*T“çŒÆ\ç {} K•µÌè<šÂ?®ÚÜ–²Ö™ª  Òx- Œá£ëUúb¡Iˆ¬Dq-È„,j>qQB7dBåˆÈ›W´\h¬á{¹1ô[,Ì1]• 27¢h*) Þ£¡‚\פ^&‰4l‰ãiODçjDæEV ™ Ñ^#ZxÜ"hDE8ƒAP橊ٕÕBØAI©¬*7BÁ[)ìYr#±ÜB–d{aC@‹\UÐav.Þ`ެ‰†$My´ÀÑ+ ¦„Êð‡›YÔß‹ ·„mH8 y½ó’oÒÍ­4*8J™)™ëÙQ(‘—ÒݴדÉ;”e=AzèA ØS“ËàŒ‚fAžÄRP_Öäcì2 ëF §'„{E4`Õ¢&=i¶']Ð ®&"ùÿWSàWzM}¼‚æïAf£ *Wÿ¸;ÁYpÊŽD)ÞA`®ÁPB®á½‰R"~áMDvóe$é è£ ¡SA C;žµãù+ °¬¯¹Ó*KÄDð—!0®¦RÁþ ž †ç?ÝÔt¸¼á y-L!ǼŸXpî÷P ŽžJ·5 ûÑOWÆþ”ŒM?ØýáwåÕ¼ƒÖDAçË×k´¯{fFhèšç?û€ÿ6 6(L‘~à¾"‘ïþíW‘q—wm£Ì!è²Øå>þïöödT WeÚÌ#Òéí†*úB–é–è´£ë—ïÖèö¾­ëtÚwaÆÔ©ÝàPWUú·æøx˜™H,k¦Hoßl.êZé·Yo±ºÂb]¥OvÑÙZÛÇu‘Ýã¡éz»ûh±r˜ö±·:d;ô½m'» GªÓ·V“þÜ…’Œ°oúÝ¡ë6·©® ‡°¾Sè´mÆÐ+Ëôížär eÚÄ&Ž2o2éÐGjC&„Hq)Ý”¤øÜ¬U¼ÝÂPÒ¦Ãù°‹›ÓÔ5‡ÃSE§Ãvlϧ™«ˆâˆ÷ˆ³8&fœO]?­4Bb“%a‹ÅÂŒ5I:üÓýI\Qb)9J‰3/ gaž¨TÚÂSJÚŒÓ-ù…­©í‡óÞw§Ó7îì;úqö07#/ü˜¹æÌÕÎB8ŸpªôaàƒÍû‡ØÆ¡íéÞºÕDHrÌK÷î`îÑNÍÓFû£¼Œ"Œ qXå‘ËãyŠsÇó8Íj„ÃN ñ¨cÈ¢Þñðü®í¦0¥@gœNçvê†~ô£¹âóp[”éÖE }ájL¡ôŽ:÷ "{©°.3ß/Eúøu;2ZغZ¾´ëS )ÒOã,»„3w§HqÉÚ[nžêã&b… Ÿ†#æ%Ñw¸çG~^Þ˺&}òÃÀ'ö G£L?‰ËqÑ—a¼ZŽ ¶°ÛkžG­ßЇ”º{ßVuÊafw‘ 9vXè”ê;cs´qß~8u'O9,h cG®…M"½Ûª¢Èz{ÄQ~ 2WˆÜO y÷Kü´É®;!Ø:·N¯|'ñ©‡„Ü‹!e`$"Ÿé}Ž27â>4éÅîYÖB®°ak²oè½ÏöÉy´»,¹ƒ@Qz¯3+”âõ+¾2 P–Øûùl÷Ø5þÖ¥îBQ „ûp˜çËŽÿÝܺyåuú…#®,b¦\yÒèT>6¸ctzóÌ4¯(·0²Ð\­<»•µ:C s©”0ÉŠ3ÌËÐ-ê2ýò›Mئù¢ä©?Ʀ Æ1Ïk!¢IOÝÃ~š©kN€ÃyŠ”¯5$ ÒZ<ÃJP .ÒçmáU9Ü'MÏʪTO8\ÿØÃèó­sº×ÕuÝ×5®.†ÍžøP~ é}[ ½Û1wrz7V±>|sÖ÷œq»¬Óñ±imp¿z~ëF©^ï¹Ð°ß½vF…×áÖ[uÚ ¢HC}¬I¦Å(ŒžÅîËU^X<›‹Ã¼¼@LV^ÜâÄò§’×%PÏEpz/s¬¢¡PG—ñër•w‰Nœ“i``·¹´_ˆ/šIZ 5Šá›ÚU‰–«%žRéeDú0oɶ¡³ [Ê*=ÙæÐýQ‘iR¢ÛÙG‹ý„êG“Ö\ªu[êtûÛGÛô3›(Z9g%x‰¢Ä”™Á ÊaÄÔf‰]Ï‘‹nMº2Áuâ3¹÷­,8Ö+ö¾×—®…Û¶ÎUX¯pnÍãGÏ侕ôDíº@Ý_Ç“ÕìÐB‚Þs`¹Æ7%•ÍGŽuf+§Hj'ä2ï²þzH ÁŸ¼ŸÁÓß î⎭m›óHˆ"æfÔ)O‘„ËÍ~ çZn«ôþd¿?;gðDË”† ÂÀ†êº §H‚Ë*O›ñ×Ýë¼F¼.SûܸDJ—çàõî¦pçJ犵4ZTk;߇/ŠÇ„»OÅžóùÜEÍÖÆöhm u¡]„*`ît§™!Ùœâ&6ŸxÏÃñ+³(ÔâLeúydÖ7Óù4Ÿ*Fº]ðŽCµ× Í]d2 w.ŸX$f…KQ¾ ÅR8s—/ÎÜu•âe,Ô&S€³_*@®Æ‚T¢·î¦ 9YÈJ Yºi´‡ûØI\².+À@á]W`GE¦ óúЏUÀ§Ú¶#Üã¤ÇŒjŸéñ¹¼ |½{ -Ëô æ‚>»ˆþ>¥H€·Ö·hîÞDhp:=¹ÌÄ}=ã…(‹Ý¹dòJº]ÜEðßšé«Vå —þû%@r¯f€l÷Í©i]2ô„ÜÚÏ¢£V±§zó(æÆî¡½ ÕØÛ}G9Œ”¿²úÉ¡vØ…g8Å™& «+\ªñ¬àhñÕg‘©B-õm¹RetTœTP!†PA½¡ú‰–Eó'ê"?ìýäkdü?žïl;.ã‡À—tS‚Ë6Bq‘aÒ,ø?}uÅÉ´1îK5n¦ô`º¯NHàÓëPx¿±ó÷ó9³iþpîâø+‚òB» BMU¦‹ž”“Šê“x‹ðàÈàÉèÐ7ûú€§ ÜUÈ$;? ®ã‚Ý禈2!…`Ù!ªÜ‹…o_¿>¾Œ{×àˆOî}Í-òOOnNû»5Ï B:ͬVïkLžÂJzz–ôÐäè•|™ÝËœ›5.GPW¿áqÎÖ4BÏ%Îxîa€W…«./(ætù20PWë#P'WŸ±õ´)*ÈŽ±“<‡T‘IOW‹ÄÄ…Ý\ÞîÔñIÑ‹oñLwŒ¶îüÚ'#?DG ,²¢”1Ö.êOzu©³¼Öîz@mVãï=<]øW!´MQtŠœž%癇®ï›Ä‚f¹ÜTs¢µ»½ŒLÆa¹¾™â†&LÔs•áúè†e+vó{M°FÝŒfÎ mÛýhwqÄšçúLfÅOuuŸù~ïN/ çÒÂ…§× ®{ ~é§‚ò¸Sû7 žR¾|¸|ñä{üõõvï^xLñS¨ïI÷Hh®¶>{£v«DÚl‡0µvI?ßú7Ogk#ƒˆ>ÂaÀ°àÞĦ›Åóh@†PdùŒqèþºx'¡¢â·Ïs%ݶ«¬’²ö— ÿWX¯“Oì‹´_Å?ŸzØo³MvMòÃef½uÔÂ7¤É¶û¾CQM¹¾” n‡ã‘î\»ÄÎÆ¿µöqJà3œ†¶mF®w˜2¡Q¶t¸–jÆQ¢ÉWýFæî÷¦»-m;àÎiÇi|*Åüµä/þí]ò‹GÀ}êÂk~ù%›¶ÕïÀú1,ð1Á“.,<æi;4® —ü%ä±³­¥‹=Ô€æ)´]Yá”ëk Í彜Ÿ]ãÁ Ÿ¸ý¹ÿÏQÞݰ”žÞÛ×i%¾)£àÒ„Ýþ‘=ôÓ+uK÷’Ämðúñp^Vj áK‹yýݼ¦Ôá„ßqÆòuÌÏ~§| (¸ÛÚØv•1÷|Ŷo-Óyƒz.£ß\¦çÇ(åò„\níp¢Œ5‡íÁöÓÞ¿çä0ŠKBÜC Gâ~%U%/÷¹ÍuÜÁ\›`‘L0…z~®*rÀÓÛðÖ~7¿шƒl– LB·ÓÏ\x†Ýmx#‘ز煓¬P'ÏL9ªyŠÇ@êò´:ýóËYO‹ÀA¾K%(¹&ã ‡!?ú×÷Ε%_M9*ùáo¡ÿհ͈ÕÉO ºXPxøù— F&Ÿ g`þΡnû>tùƒû4UV‹ã„`ç‚>Õt­ëä€q8Ú©;r⥡š¾í´‡ó.ŒyI ;ÌåÍìf¶¶9Ú] WÏ9ÜS÷߸xl´}ØD5ÇUÔ »O£aí;/‹"ݹ×;×Ý×u¶öWü׋„q8iI䯽—(c{²åO-™ë~v¹mq‹Húk` Ⱥž_aJã“ÖüZ‹k>~¾æÿ73¨O(¹Þ[º‚m„¦Sá’0&ߤ a1ÿåË×7ÿvQƳendstream endobj 876 0 obj 4190 endobj 879 0 obj <> stream xœ­:ÛŽì¶‘ïóÌy9ì`Z+Rw Ä68'vÖ^Ïâ`qŽkÔêiÅÝR[R{2†¿Áÿ¼í[ò‡[)Í%>bsX,²ªX¬+Õß«82*ÆÿÝ¿Íéê?þ;/ u7]Åêîêû+ChåþiNê“XR$‰2FÝì¯xŸQeªŠ¼T7§+ýnšëZ˜›Çööˆƒf¸œa°îûo67¾2VÝ|~¥ï¶í¶ÙÞ}»m¿Ý6ßnÕOª}½}ÿ~ڽ߼ÞÞ! û÷ï¿y ´Û~Gä¿ȦDÆñ³ê¶ž&#Æ1øêW@ÿ<Ù G¨2UFž!‹RµµEd ¸»Ò¿B·q”ÚLm“"âÙW8Ë“~î·tš$ʉÝo‘ þ1qdýÌÖFU±ØówÖ@s¸äÜ„Œ‰*œ¹ùõ;ýÍÖ˜¤ŠÀ77o®~wsõàÓ"*•—Y¥™:]™"O"3yGI®Ž‹™$@Ðãbç;^í_¾Õ ¹VWQ©òÂD°ÄÛ}CâG¶(3>ã›ÏIá ½ª5FEW|Ò7¬±’'ëµilAµN#ÿ™9•0‰4Šq“¸G-„í÷¨+¼L‡éáÌËXÇ,ÏcîØX“ý{¸ Y˜´LŸ*Œ#)múAl`\FV?£Øä%ƒ[ÙZQEYŽªå%²í§ŠË(-Ñ6Š(3`?6ËJ²,ãDû 36Å¡ýø]`uàòÿªýT žJ¢ x¢ý‘¬BeQl€ ùÇÏW€Âزb¯†Ë SëÕ9F,έ6Q¦xµ‰À¦@16J›Û`Ÿ6Š‹¤Lž1eð©®µ kA'6+ʧÆG0ml¶\ZÁÌ3d?ì"·¦@;[(qù;ýé3ÿmò8ÖŸR„àèÂÁã–B€/3½ Å>`ÃWñNßÚÍ6ÉLiõå|nGV•†ð¹1UT•©þaT•Y©ey‘êC=9 ÏômÛö‚2ú¯œv“¹Þ ›éûþ~GMžêzÜ Jσ ­ž½Pql(J}¿”nèÛHZýöØ#n œý²ƒmײ0Óuïöfûa^Ðõƒ’¡V9ã úÎlYFUü²ÎÇ<Ô³¬¶$ŽË*óçï=E›ãŽ>ì8u»ÝQèÅ \²#.ˆ¥ú%-ȶÖ<IÈÀ˜F©>‘­©ßÖã$Pªï»ù0\fY[°^»þNØ&Þ‚À€Àêú»(,þXŽ` ]çvìë¹#áã²zNH«ëóyêæàf¬á[¥q¶8BA*fÿA§&‹Šƒ1ÆœwìƒTÝfk8^ÎT™-ƒ(¯€L̛߯⠺Ú]; PsL„cìÇáä ¢b]ÊÊǶÅ[^²-!R:áÕ$“WúÐÝ–”Ø7˜_é}CàOƒ”Þ˜ûƒã°¹wf†E°ª¸Xûª~+*sZ}§¿îN—ã\÷íp™¸ ‹PÃ^Í÷8p•1êùóOªëÕí0Ô®Ûf&òœº„žÜ·\‰ÞnrG«™,†2à£'‰ ­"—VîúS')Ä9°®$Ë Lâj‡+ Ñ|’<Íô0~ç¦Ñ1ôø ` ý±„ˆ˜ ™†ÀòåLãhuB'ÃØ²4Y“åDà\7Çvï ÔÒïÖâÐ%Š.ü%z³µh¶ ^±U°‹û¤|­€"Mí:8Aß®ï!âä wÕ ¢Ãv¬`?\FuÀ§È:ÊÀ®®H!ŠµÍ€Rl)€) —áJ ¨Š”Wõ—út> AnÓaðç^vØR8» —eLþ.€ówÍ"³8J¨‰[¡Ñ|ÃΩÛ-wñá*{Úút6-0{´40bˆžMwìæ‡€¢±NÄd#Ø¿«™ÊãR÷m»C‘ †({ðXHDbPn¯«\dâ¥p5Enœææàc±ï”-ÔZ6v.¦¹Í}rQ<(0gtz;Ñalœ™“D•þyœæ€rՊá–E®Õ&Ôs€öÃØ´¢±j$—z·È8^Ä´inq(>·–Ë4cÅç†É¢¶ÃØPd9Õv‘ç9T ã©>BxÀU¥…¾–½FŠ5Z¹Œ.—ãN¦!¶·é…g!Pc6ÔÚ° ̑ á|êr¬ºþ…]NSzI¢ú8 Þ‰l"Èö¨T®°äzV?‹>5HUA3p¨tÒÁ©þŒ ´‹´A–—q“„)•úš¸cØA¿t T·LÙñ(H²Úå¬ñ±]'ìcaÖ÷Ϙu]†³é…H÷‡®9ü"cÀ@̦ EÛ!Ûe‚Ï ‹( átr­DVaÝ$áUR(ÄÜ‘¦ÇöTw˜ YÇßuý=ë4…øQ7ƒ&[7LKç Œ€†Fx¸)¸U'Q y©>‡}[qœ—ëôy¨qJ‹ ¼¹“¥p B"q[cì&JãC3q/½fæQqIû‹…9¯Ì/âlG)\dZ ¼B m;×ã,’gO«SLmh^œ6œNÉ«ÿ°È–sY¹+•ž¹ôFTá£ÆÆŽ“îJÈ·y™hÖíñýÁ™KJÌj±0s1– 8¿Ëün½ÇKQæ’‡K—†¯…@¦¿üâmØt×öíX»´ŠSX›fí8‚¦Ô%“S{)Ú¦–º5…Ñ"ü¢Ï¹ç’€J·ýp¹;8¸3=×ì+¹3’¥?ûm>}0 顜c§ÇPÍ#äíbtukSö´ó ÎY •ôÎ;Ý¡*÷@á€&ªBh®ç6ìnê>ànYSº.á®Ý©zRTà o!ýMõø€Uw­ÎÀ)~*^Ô×6гu;$öOz'ŒMyìëi5_F,ÞgX쫯½Ôïyï„ôc“ ßæ¶P˜2/xwõ¨ú¬­wÕ—{Ÿ3Úv~RÉC£wliJô•’sOÌÑrË8ì. ×4ìÃóái÷X¦P49î@M?:)XegFNêb ¥¥ âõ:ùÅ_ØX\d;´€²¹¹L“+z8d°-,b¢,þS±¶>º÷Xf‡­g.U0¯¬V€5œgª bŽ_©ëæ ÜTj‹bþwƒïá {Èüà„UBžzªP„´ÿ(àÒÒ‚##­ÄmýÆ )€àO;¹8‡òªüEÝg&ÿÕ{¶ÕB„J?,qì¾cÇ´Ab(KfYîj"ÀÏÆŽB °ÛÉ"CDúDT½Ù®eK¶P²ÖÐ]Y'\àÔ2|ð5AjÒ4\½ØÂBU–,ÚšàHÅc}ľ¸À Í!2Ÿéùá,$yTG•š‹ˆìͨR¨täÖP†³Xêür¡&»øRÐxÎ`—Ó¹mºýƒ` í‘P¿‡L±éæ@c?ôsxê~ôòëÛ‡°ì®ó3? ­…¬kÕ_N·ÐúÞ¶P=µ®ªé%áõús d®† v‹ÑíÕO_7~^=¶â­ÛcÀtoДC!ˆ‚räd‚}/ ÊF;%…üÌOŠˆ\›9$‰HЦE©6‰¬J´4ß™ë÷ ˜¹Y¾ïÑLX9Þµ åÑ“€Lÿµ¹ŒcKÊ'â%sû[Ä\å4p8HVÃ.ˆ*=Ã2Û£_TôÜ~®ï*ù^iÈ*¡¡Õò*áf Öj¿¿`%°r=¿#¸¢îlÈA¨ÚkÙ¥'Ù„¥ 03áå±’æ™ÕNÓ„¯Öü†¾]œàvð yVyÁãŽÌë//÷.ªãk{>²Vú²s¤ ÂstJ œOÁ Y–u‹Wu·x¸E÷>BÇZ¹È㎉í}í 98Èõ4½R6}ÁAV¾‘ãópùœo o%øÍð; ã\xËùUÚ9 Aò¦TÐÉÝØ:…] .å·3Ê@âËåv«b³—9./ L튜vÍ" ¸ÿêÛpR:Ùª£Òԋ—ÓOe¼YC•Ú݃? «E,ʼnœÕƒCˆ³K7A"é‚|¡lÇ!`¦!`ܧ¢âýÙდÏs˜]¸N8ƒÂ‚z±xEoªOak}¢YøÇ1 ëo‚N,=¾óÓNáݼp‰¾Æ¨yP$–Å»Î5âp¼}‹¡M¡ñ@ݳÁƒT Êñ6ú`›ÿ „W*F›«^½ÆÝô‘z©¯OÝ|øé§/.S×|¤>ŽÔˆì(¯_ö“?à{¾M¢,‘žŒ!_ú·Ñk‡J]ø&,‚ëF¥á® G?uø}Š'À¼ÐH˜G¦ÐÍHŸh;ÜÞ„!Ô@äE¼Æ.¹[>™¢á×!?ôØ•ËÒc»Ÿ·‡@ Ûsä*ÇîîÀx…út­ð+¾zàç)¼W¼;Õ4 èSÑƒÚ ¸T=›Æc}–‡ª°9[·LkTÿ¢éìGÃ,5Æò“<2IQ}X3Ìsë>æÂ¸à+ qY®®¹™éCí·=Zfœ'1Š^AOaa==ó…%à eyRåÊŸù7–eL<[hÆVÞF2޲ɽmÒ¶dq\÷öêVݶa¯y…²{‡ZJªP*³ÉÅ%},¹晾ÝÌO!4–Ú_:Ï@8cåÉÊ‚ûs2¨/¦¦>ûk(54ϼŽ'h¥FlÞož¼"¦‘­¬ï©É¥‰MŠß>÷—£ÈPRÏ,¸R²µé7n b^7´„\kƒ~ÿOŽ7ò ~Éxl P›UQbÂgÔ—µªHÜáÐ7 ¿°*üÝNa?ÜKÒÅW‚ú|&ëN ]7ü¶ÈcùĆDA÷‘¡Ø¸zQpä88æO12Mí›K9ìä2lt„ÖͦÀtRò‹Ž0àâK¨¢f&÷éØKÚ9MÍ¿#"ïõ„"™¡!S†”U¥e°dj›ìšS£OþP’ò0Ï>t€ôiå¹¼p9´J¹­þéEZè}ÜÍ %w—æÅÛÌ ó ÁâŸ5ñ‘œÂ.?0yÞ9þP£JþÅS> stream xœÛnì¶ñÝ_Aä¥Ú«ê~ÉÛiÑ-Z -\ä!îƒvE{ÕìJIÇI¾¡Ñ/í\IîÚ> z|ކC‡Ã¹Óß™$NM‚?òÿþt÷»Tumž—»Ä<ß}w—ÚÈû“ùýNiJ“¦æáéŽ×¥¦ÎL]5æát÷Mtîží²Ùæi'uÙMZÄmSµÑ{{^‘&Y´¬Ìjªè?ó²Þ+XGÝØoþõðØ«N Ý+>«ö{èe›§MVÆIÒ´Ñ4­Ãø,k<egI¦Kºóù8xÞšh‚-GÐîý!.ãÑ.‹ÇO|¨²‰¾w_vž‡¾·£ÎÊ¢§iÖãþ¸àq¯wó«v¯So¤°Më&ÎëÔlÓŒOÅBH?A^Æu w#2è‡Ùî×a“×mž‡üÇ›mVg@ªŠÙ¬NÓD§ ™eT´ŸN§iTd]+¸¤‰¦'ÿ ç]"n_ä5MÃ}¿hXdEËÂãoÐ<Œt:ŲȘ§</§ñÂx¤ŽìûÏžpÇ' [@ mU,"FP…³™fx³›Öu:™éÉØn0¸Ul@"³5ü[³µÆ.ûîlÍb¿»Øqoüe“ÖáêËÍÿñ óÜ)²Ù‚.'I™ÒÖçÇGž^ß}!Æö—y¶ãR¿¥ çrGºöcÂßüe3ÇW3<™a5Ãb,kÌõͪží?ýß»Ù~ê{$´-j ߯iž¤|ˆ‡`áogÖ×ó°ïŽÀiŠ:VTÑÝé|´_¾aÒ]P#NЕ°ù˜/~¦ëøâ–ííÍ­}ýTªH“¸{Þw`‹À)Û:g¢ªe¨ª®ÌÈñÌ<Ú¹y-KÇö¹Íà¤^ýÚnõè`Ë<ÂÃx­’Éfj´BõkuôèÜätŽY'mêy»ã2Ð;¾Ú<üõî᷿첸ΜFšÏx§ûk [¦“]øÕOnþ“%=šFR+ô²¤S›ø­¦ÂeâÖW¦ˆ“¶ëIØ~~þ™õøWhêâf[‚TªÜ¾º=L™9mᙹ\cÕ—)œ’†(ÍõãNCh (It"©ƒ¦³PtkCmÈ@;PA9ÖC7êÞù5yŽÝ(_¼ðî¸ÚyìV æ+÷p´O«næáù°Ææ|­mŒê&ɷʙ…÷´ìÁÍ †)ѦΒYá¾>hnòHîR`0FÈh bò:NÅ®ˆE?¬º¦‚7®Ý0.º²ˆ¯í“j"ä1âÉ Ì«fM®Ñ‘ ¤ŠŽÃ¨PžE—³ÿ~@¦TJŸD ¹ð Ù±Ÿ!'¨ "5äªVŠwê­ƒ²B¿Œ |8y–³¨·Ë0w»£’+rÎàhEt`F[pž§ÍW-%6׿ Âe4]Öeè­`‘ J:Nó©;zøÔÍ›´ÆÄ¤ŠžA1bAi?¸uh] d›ºKVE/äLõUF ¶oÑë7¼‰¿Ã§î[GÕz¢”–¹Ó=ߣõ[„ˆàÄU´œí~€#«¸ö‡nîö+_\ÑÄEYEÃè¿y1…Ó ! ?ùÄ|ÍG°N£nV zgò;«@yÞÓÍ';ùÖ-½ ï’œ&o—ôÞzÌ4zÁJÒÙ{ݧvN³.«“ÉËa XšÕ1$¥%³óÈŠkõc¼™’ðÈ@š @pž–a¦1Ö¡‚”‹(7Ñ«ÒÊY‚”˜6piÒ‚û4º”äÓ¼dí ìb_ýíkx!Ë–õ †cïYi¿rŠ2A¨ƒ4 ør€ ã’éeÀ8“¿7B+©Ažèμ^;ÍÎ`°§€OaÈœ/3Ȉu‹y±Ç㻞ÿO,á È0ãï-8íã")[A‘åh+z8³T}e\MúêW‰t•±s6S7×Y°ÊÉ&h2\hóy¥THEiëD)°‘y½÷LxfëCâLŽDIKZ&\ Á!=©ëX ig^æqH³ü^ ¨žE•Î'ÐÎå<ý¢ƒ5[|§Iíª¨«¤êÒ´Õäþ§Ûl r…¢)4Ñ NÌôSv'J_1$ˆeo†œ-¢¡ \¿5§â¹`þt'_6À4ÏýâIªÕÂNÁžÈ6u=Ü•ŒiÓÄUÝúÊ;‰áô£('Aöþ»)IA p‚ÎÿhÍ#žÖ$³s.xoò87ç‰* œÐ™4ÙLd a5˜FŒIX“B}fƘ¼Ü~¦Ày?­===>þçÓããušë±ï'¼`¸MP|¡E\æ˜`E,0D)-ßr—¤q‘¨¦ð†oªÄ<^Ûú2RöÂÄÙ¿Ó7dª«ã5fš×hðaì5¿Ë:³“•drnÙe~Ãw1¿)ò5NuͲ fº…+ .¥pÚæU'YãËk,¨¨(lÒÄyõQ˜…Å9`JœÚQ›Hs;\œ]%g0Ñ(s¯Cû']iôº­BõÞ®UqÔ¥Kûrþ‡6Á´–ÚmBkgý&®¬qÄJ6åcÒô\{¤‚Y´˜á‡`âqš(õCÂ|ßûU¬;<%Eë ò©~@çIÅ%ÐõÉ5ÀnÞ­ÜwÌ!*Š›L‘G1´š¸âY%åó„Ž‚ÏÎSâ"²;Ï#YM¨<·4-U E¨Ô[!T!&€ LCS]®ŠUs6läþƒ¥o5%âBê{*‡Ä²‚Rm T;Œ´ô±CüñNµ”*²…)w‚«BSƨÎ!T†Å'R’Y§%á;¨+ú®¬æi» :U×Mö+žt<#ìÕ îDÀ–=׀˛Ü[W¸lÉQèýÉc²*‰›6xš}ôyƒD±à§G IÓcìˆ^FIÒËüZå«öVçßvs)5mÞ&»_Àpò~"ÛÚøK%?7à¡È\ô‰”ý> [-²…{\Î4“Þ.v¯øVÊy½2YÕIsÎTçÊ8ùj“c†—¡ü¨…H˜Ò>àÄšc·Á,>͡ܧ˅Âq’ÄUæéÌWÊÊ ®¼Ó<üˆ½Ë£;Úñ™àLêÌŒ²CWg|ã¯ËjO‹ `{†´†²ðçbWùMà^Ó>Ùn\üÖ~«<, öç9!6ŠöcÆ"ÌÞÜ^™bÁ÷þƒæõóÔ½ç…ÕUÿX'qY{} sWzLbðÚéI//û­éæ%0_¦û!óy®‡üüƒ½9š4°%‚Jàr\Í÷h+Ýñb¹cŽþ˜}Ä"ÁaX§·eá6­ |r¦â…lŠ†Ì„ÝbpSgÉæ7Ÿ3~æÅZ9­¸]B@RFËeX¹]›•µ*<ó:&ï¼ô¶ÁtÅünòèSA´»3 Ùæå0ðXˆÉdlœ<Hp˜)·Ñ³í<]/UtéEY±ÒåõÈPI•Ë)DL!YÁº·Òf  5[”lZ@€ß¹ÉÑ0îgÛ-Q[r€º˜FñxÖ»w‹+L 7è–°¸C•*T9^ ¯q Ÿí*7# ÖiòÀh»`± †ž¨’i ÝÖ9®óƨ’aÂäAHÈ«÷OYMÝ[ü,´0D «\÷–p)´²Õgò胓‹ë•úÃDõ–Š;¤í&‡ÍªÛ¤Ù'ÄËëéd!|î‰ûJ^˜¨êI°SËY p¿Ý²\äÕƒ´繯ÓÅÜ> stream xœË’ã¶ñ>_[(g†&ø¦]>Ø•TÅ©8ŽIùàõ) c‰œ©LÊß°¿“ßK?RY—BF£èøÞD¡5þäs¸ûüǼ(Ìn¼‹Ìîîý¥a#›ƒùæQÊÌXk·w<Ïš"6E^šÇÃÝÏÁ_†Uœ†U—ÁKËÍ4 >¬,¶²2h«¤ «*¯‚ûÕCœ§aš%A7i; š¡J“ t¨ˆƒ®ßìOM+@bzR °Áø\oLƒípôxÛa˜º~7ê’i¼B{QSÈÅç?6Uã]aç`À°ÛÀ«»GÊôÜÖÃmI-yAjë†Ì-w²þ7SÇ*IæwÑ35 :¡kÝnºí«ßË“JR1誑W¿M1‚[;òæâÎkš˜¼ÊÈ$Ûô²ÂSLå¶»¸%q®öLk:8Vy–h,ºr{ÍÎo¯r$cå’‰¡÷“æ\Tî¼ ø=RyéFT6/|ˆ]B¨³»)õÌI¿˜û*ƽ€¹wÇ Ì0‡v×®÷äB¶Ã~Ï»ÄAð4+‹Î"+м¡ÜÑÀ±3ëÖÀkÌ4˜®ßîO-ú+$ÏWà‹k>꫇" x~¼r>áÀYbùÀ?÷í ò_Vÿ^œË´£$Öcùö)Ll˜£cVGÁÒŠ ‰ù„Ò@Â>݃µb•AÏö-"ïíÔÑà*–ÌŠRÛJ`¼ó¤nPâóônå)¨“åqq€ À}P ÀSNw!/¢Ìb(Ü1ÝdêççnPh¾L߂θà ýþ”ÿ-ƒ?F3r¨$œ.‘ö§5™§ù\“xØ/4™Ù°Š¿K“°<®æT‰pœ‹*iPT í²òª°V¬ U ;sÅáË _†\0$ƒd·¥-&¡‚éî&ßV%(ëið-_Ô‡ìl–Y¯¸Oé(²å[:²É5™K%ϸ.+ Ük‹á4š˜s5eanÛxË4œ[†ñù^À=0Ã;6úƑ,Ýá¾,0 ·gÇì§U‰û-é¤i Qøé84§ :Oê+®»;°Žy®þë­ýåQ˜¹Óú‰sè™ÐÅ-þ^OÝÐC>áP¿îá 0D"L¯ þSž÷í—~.žÅÒƒÎðr Ýë=‹ÂØÎ|àº^Ú¶7´cúE½Ÿºç}jY¿šÚì®n¯7³¼a3A,–eA¨‚M#–Ö`.Zó¸ø\À—öã‘BÖ<Š(9‰@ÖÆ"‘‘ÜB˜„Šv¨à[÷{•hV‰hÒä!íxõ¸µ43H i“EVÈ&§$ÎHI€ûýô¿Ì²·I®ãñpB# |QÀ¦dx?UÏ­OEfÂĨ¯àŒŽÍ'A¥ÄÅX ÕµkWÎu²‘2D9­§‹¡ SƆgGŽM$3$4Á …O‰›úé›Z?y<ÔžÝ2ÀPdç*²qäÕE/zÊ’¼D'ÊÁ.¶!ùöYõ€Q ‡mð9Oíþy{Ú+žœ$lÃÅžeLv̾H0b‘=a`4rÔU!¥%ÍË‹˜Éøäé?!TX唪ð}$´Rl­®Í·H†Ö­o7C?ƒà/í’&°€lçÜߦ03Ñp‚>¿É‹Àˆ”>³¼ž‚àZ9^gï³kã F×ëõQ¬2dî:òÁ—ùo AFœ9Ç ¾àô±u‘À»U(«€ie1òþ! |NûÆÃoyþÚqœß®`)1„´TÕ¤c}:É(ñhÆ©ds"ÍËŽ§õؾ?ͰݾCÅϹÄ"mÏ— :]äs[TD³¢Pì´vÔ¾‰UPÍIsj«¥DÜ-Ôå`iµ3§¶x Ó,̲’o7¶±ÖÇu„˜snÆ¢ûz©ÈISmàS‰YÐ$ÁD,<ÍYà%|ÓCE¤xþØ‚Á ¿ƒ}ñœ¿Ä… —KbÞòH[Ø Ðv¬$šBda_î=ÎXÚæ'ÉSªÅ…ýâ“$\I Ë_Ìî«ú«õW»¯¾4khí m~3xcÍŸÌoWÃK0 q¤§_L\gôJzW ŽS¶zØNýñ‚ƒ~VK„NÛ‰†ã¤XÕMÆãxù)ž×Ùš·Ò(„a„­œÖRO6[ &_'î°g,‚2Ž 8ø”²&R’0È:$‰ád-TrÍ‘µ@N‘ˆøPˆÔÀ%¦ÔE,ûzï‡n82TлW–Yªb€o÷—„õBý)[H^À:™è0¸$ñ@¼Ž(ƒô}žNîo}¨Øxcð2¥SïÇÁC/O+ª2&‹í’)˜üòy:[>OýŠ>xUÿPåX™cë_dÜÙÓ*DUÊJí’tö³”hâq1ãHb²n{éÞ°œ’¦o¸7P (Ò\^¸jIÅåÌøŠ91$%slG¥Çà; Ì-ùd–Ã[Êý‰—רšyM\1ZÕíF^HÊdVèâw¿" ‹Äj5´lœ!ÛÕ;e D|ãV…‚‘ý×½„ËܱpìJ'•Ç„”^„>Ê!áõs~\`4 ÖŒ1×B{Íxéï¶¿„þtX;¦âd±¾{mIùiôCóå48e’v‘yê]ß}ÜPuoêÑ4í¸9vk´;~‚ì}b0™#³¡×"A^”ëOpÖ\P… ¨ïj^ bôô/žl©“ùz±î1±oêc#=÷ŒÝgã(hkÑ•‘¬²ÕŽõ«ÎaûËýÉ×£Gª}¿–°i¥+bêˆéc/$ZÑŽì¦{ùXFCOùZI•#ñ…zVXÕ)& ®0näÁÆ×ë(º{£ZG. ÆÐ&Ù™u·ÛµG¬ÝQMÝÉYª5^V‰²˜ùy@­6Âú¶cÞ 34Og½QXdgÛbï^ªc§Ê YõÀ$®ª6«!ñˆh—€Xó0‚³ŒP WR’ÀÙøýÁ±­%‰§á|Nû½QaW'åþpGz;> tÜ¢\£aú¹ß"³{‡ö‚Q Ûœ0æP»È€gXyH}%:Rù#s%î.ƒDš±®jGÂa§‚ìE™B)^ÔAŠô‰WBEÚàáj.Î|œ—¨žyž¨E¸³§j´ç–’ѤÒÚö»€=aÇZûóB~ÿãEˆywâÔ2´¡µ¾Î0Çúª.‚¢œZ¥²ný9-7g`ÿ•Äe'Õ,WÛOdЫ ‚õ™Ð.ŠåuçÞ\üa`øÐˆpÑctÍ KÏŒh},&óÜÉÑj±Ó)¹¼]"Y?xRàÁ§cGÆ~Tt.*ÆŒñêÌÃcŸÊL°Yf²êºõ· Ê·ÎO3¹„`0¼ãø‰«SQNÙn­ÍòL”ÚËoòü9½O¤Ïxb ÷T´¨fáÇ);År¯üüU„£Xx$°_LÙñƒœRŠÑ#þ ‚ïkC/‚ÔË< ññóp$'}V¨á$±Jø5ËÀL7ŸmŸ{  †P [¹j CúM ‚”q}„Iu[?Rûî¹Â&ð/º8vί«±äÀÜéIä§’-UªÝùÌ—\Ë´Y,Þ. )Ñö=ÝZ3)çbÛººaI"òñÏÌfކPâÛŽFHh¨¡K?>ü¤l)eIö·bCÀÈrŠù3‚’Bž#Ð\Æz¸+BÊ[ŶsÍDîÛ$ƃH¬žêPQ‹ßó3ËF˜ÑyA{Ó>OZæÍeÎ Ñs/-÷½m£PPd¡Ó?ý+®ÖJ“,Ì£Lý*…¿R»òBnc«xxµÙ‘y…™ÿfãÿ„°^˜ýž·öQ8ÏøCq¬UâK·þUõÂw–¨"]Èßs"šg , F.ÔQ 1ès§”€Swá?R“jÁêìãy;åC éÏöÂõ˜nÔa€Î¦•sðA‰Œœ1§­bªÿ ãKCɦ+k¶m=àcb,µ£ydà p…??Þý¿ÿ\9endstream endobj 890 0 obj 3832 endobj 894 0 obj <> stream xœ•Ë’ã¶ñ>_ìÅÐÖ C€oßâ*»²©¸’¸ä¸R»{ $hD¯DÊ$µã©Ê7ì?d¿4ý@I3».„ÝF£_üMÅ‘Q1þüÿúpóçŸò¢P÷ÃM¬îo~»1´¬üßú ¾[J©L¢–ÛÞgTaU‘jy¸y«³Ö¾ÿ}ìëõØ´÷êX÷‹;ëqPÛ~aã(6±ÑÝAÕjXw½[¼_þ ‰–™2†ˆ–Qš%•Zþýfùú­þeçÚÅ]’ÚÈf¹®eXhÞÍ`‘èOû Èô®µÁÓˆüŒµú/¦eí1¹d~Eý£à뽫¼f“ù–Tï\½oVC)pïVõjÿÖW²îcFINÀ½»kx(x‘"')Z€Cý$8S´Lƒ¢Eg¤Xɪ(.½>9JÝv£ä·G E*>ˆÀJ¯ÈŠ+ù4Ø,@2Û,*Bš°—|f$pªÿ³€YYÓ™ˆñgò@½:êü|žêØvOhŸˆ^Vºžíª=ÄSé,Õ÷®jh–÷mói]³ß%²¿ƒ ø·]¿v,á½@àìÉá=9F—鄃À IÆãœ„nÖ'”Šçàµîëµ"ç™^îš!ì˜ÆàÓáYôÂ|Â?üåó"ÃךëA‚]•ˆ³·9xó,xsˆExX At´Ì~‘ä T£Oû膋˜YU3}LÀà0hÜ¥@ÜäIM 'H“˜œàrçГX•ºîS<ö^ œ˜Ãã  (?“äÉ u)\ÀYu ›éLSô~ÒÄD1Ä´Y>4G¿bÄrÒÝvNÝ… >\H)€§vƒ–$'Z»~¬á]ˆ Mš"á ï'¶`/Š£V•W¶°TÞ·¨c×ã&Õm!~êÐÜïFÔºB‡9îqßC- 0Q$šá[‰ô‰\>\Ëd;e^Ðýè×ÍÖçDp{Z)²þmÃæiZµøÜ®í›Ëu%´¾màonwŸ¼d;øÎù0U`˜¨UÔAœBñÓ–M‚Æð\ÏL§K0›—lâV@.P¯w™Ž56ÊcëÍN‘ê@Jcñ·¼ögQž%múý¤˜3 9dFÞ×ít6ð çâÀs+L%Ü^º&²iý­>Pè炎2]Rd mPã4bäUPt3B¾²&øM4')â-³(±á1ûô |*8ŒRÃ<ëªã50âÙ}Ü^œ¸°Qj«â… È"HÅK92Ä'J†‘FßÎáé:áÎ< HÝËDA©ÉVêí‰2‚Ì”Ã#h8Wàq±™³7"1¥·a/GO–2J¿sèfXƒ›$–\“ÇóР.!åÕ,_¦¸–Šðú"Á‹þžï¡á'd(ð4£ŒsÏT§•¬œ‘Ì5<ØIˆçþdhÀ •Òz·*ص 3Ñ!S­|¾ã<ʼԚŒÛ.P¿ž*¹žsä\èŠo%Ë.K*~®V8qT”éKŽ1¶º¨p˜¤<"OŸkšH& k—/ÊN,)_²ó¤²VX¾àÔ<#L‡±ÀgIUôLdÉb‚âÜøZ£Í¬Ö”³|ÁÆ,Ô=lc?4íTÆÇ³¨u‘Fé3=¡,Ê2¤&WX%³@ý¢cFÒËòÀjZÈ4¨mã!²x,¦î¶Üì Å 9ì¯ûU3ö5Ôíç厳¨Ìr(êŶ>\ö!ʤqŽæ>µ“x .ê®ÍT'²Â!úE†§†ª! 8OJ^î“%e”–yp•ÃÑ­›-Ò…H•§Ò×AÀAh‚ó©¥G¸ùÕë3I,Ñîòæ ³ÈC´ãx&ä*îÁ§j.FÅùI1ëÒ6.v£€üf’×ߺG[¹ 8Ì‹‘<†ÙPòwý&0älD¸õä_ùp+)òÑ(ÅSÎ*Qß1L —è`¾ÎSÚ[¿Ty'ÊXÌ Lä+°5̹ -Æ'§÷¾)Á,6Õšw” LEÙ軿´±ÒÛ¾;¨CÊÁDÚomÁ5ÈDF%¬°w“ž?î›u3²ßö°í¡âу‰ƒŽí“”^µ§Ã ÒD…õ•›”« ¨GOûò´Ðï᱆Ϫæ$€MøV¡›DIu´‚еŒç\áÌ 5ï9xϘÞU/z@¢ñõ¬’³ÍqzMr`à‚ñÌžR«¯t?²+%óUÎ/…šÛ•ô…€_Ð ôA ³-Ç"ê ®Çi~¶yÖiö‹ÏfÏ~z,#¹ê- Nˆ¦ü÷Z~ U[i/Òc!Éù±@ÒógO—Å‘4gz†õq»#£l”Þ-©ÕD±ÛV¨t¬ý×nƒG Õ²œœØú£à%S}H$2ª§%zf<ŸèNë’èF€o¸yÒÛ©¹R¯›}3΄`ç)­fTùÓ‚'@îÁx ÄI>?Mç‹X:2úy7À7ð~Ä„;ÌÂó !iáÓ×…R¾.¼¡ ! gF<´¾‹8ºÖa»¥¦þ7Nå,¶,C-áZA¯|ôãÅ/´ê©’šÒïŸZ´ŠÁa|ÀOgöYTQ–¥/WSi.ŒÆyöÜMEí¶ç;-àL>oÚxÏzß|Ö& wnœ´iοj\S·ùuÀSÏl^Ç›À‡z Ik$SS •À¬8ïÞ"Ž=ï›Ñtò¥ bŠÆÛ2þ»ûÍ£ÍC÷Ô~®(k„@J(žöɃßý‰­GB |ú!Ìã²õrˆ Žä[äòùE&Àkp¯4’½™þ+‹†P C†U ÕËï†aÁ'ãÝuäœñ»ÂÃŒÔNúÍ“”]K&àêÝ0£¸ªû! ÎZÏØJ¨§%{^ùø øaµH4!¾Bù‚¹Ä·¯FÖ·\ÀæêÕ²?Žn|¥ÆÞ½)óžBí[¿W?ýIý÷jhå"E!¦Å›¬¦Ò_'Æ¿¯) ¯Š(žµ;~FÓTäîX†Úºz<ñ7‡ìƒ*ªìÝ‚ôýòæ_ðû?€ñ!0endstream endobj 895 0 obj 2960 endobj 900 0 obj <> stream xœEÏNÃ0 ÆïyŠ]š"­k’þ½‚¸ qXwè:w Úº­í8 =ÏLÒu H±c¶Îa º3ÚjÇfoIšbݱkvdbHc4ÕwÚJR¥ tÍ.uY„4É wŒßš]µoÉןLHè'ƹ\àígß³ Úvä`Rðz{ê©ð'³óêD ¬½Ú#çñyïcYm¬±€YhöjÏ/ªgƒendstream endobj 901 0 obj 342 endobj 904 0 obj <> stream xœ•ZÛ’ÛÆ}߯˜§t¸0qlW*‰*.+%—dS~ò0gw“€ZÑÿ}D~"¿—¾Î€\IIjv.==3¾œîá[³‰³Á?ùßn¾üKYUæaºÙ˜‡›·7 Mù×Ì6Iiîîox]b’ºˆ7ymª27w‡›×Q›¿ÿÉŒî~ÕÄMSeäF×·ÎìÜÔŽÝqî†~õ÷»?!»º0I‚ìn“$#>·ieîvÀçîÑ­n³²Š7uG׺]×?èPµö8»q’‘ªŠ˜ÿÖ…‘Ùóhšhk§® ,ïO£“õÉ&‹†{m×—+á>aæpòl° 7ê®m«í:ñyv§vÆ3Ý?IÍÝ«›»/^GÛ÷n\å›x“u´†EiçyÆÌ°]¦ÌŒÆÓhw°€»°b:u³ÝÑý৸M7I¯J£ãi<“‹Ãüß&¾DC¿?뮉HB: "ïì^—âìèº^O\Ñy8…ãOÃi¿ §Úº0·8/n3LPóùè&7ã\×iYifyôÔí\è½[áìØ¹ù¨é3J›>V¬ý2únX¥yÜÔi=9Xo6Ð|·Jpä2ÍPkˆ?n#—” µ“æøéV òÉÊè–LGׂœnEÖJß,ÕŽHQÀv í*ÁéâXa¾”8©¢3HI¥¶uô¾/7j^[^pÝ.øPd`LŸF£;Ø®'¢¡¢"9R»ýáNí†ötpý¬«Aµu>ñÓØÍ³?JEÌ[Š.é"ÐÐCè-v³:šÁ±îÙy„!øÉîã0ð2È ú®ÂÝq§±Ò„ÍÛápÜ»ÙÉHUGK‡$d)«­ÎÄð¥ÓõÇÓ¬tyôa例òJà¤Gø²lF8”‹#À68aÔ}‹ö…Sîýä4\`´Üÿ‰UƒÉíf†Þ->=È’ì¹ÌA‹è§GGŽ'ƒ¯×ÜŠ“B ï ‰¦3Hí=͉šÖuàuçŽ,¦É²¥&ÑÍ…ìDê-ò3ÄgöGhàþv§ûÕÍÅ&x!ƒ»aBD¼ÀµíÙå2Õ–¼xÁIïDòV‰ØþaïÌv´íÏ«½*L»yZ”q`°Ñ{‹Úð•¢*Ë$S¾,6†¢ô”æku÷‹êWBD*óL6Ê¦Ž›"k™ÇåS÷‹»f‘eq™(“ß>çŽ%) ä2AoÏ8¤úµTYàômR–°,_Þã5¨ªR ±” šzà ÎöÚŘãÛ¥8'êU)k óÈ"–.ùªMÒu»À_?÷ógŸLÇÁ?Ïá[ån ìio[Ïô{a“áCгýІip³%¯ÁÕ¤rÌZ¬Ê›GÇþ|m€n:Y` _û†ì™z›Ü çÀÝÚÉ­u²–°´?9O"ñ˜ •#v2RéAÀD-‘SÔ Æ;åÐ|f*Æ›UXöDæÿÑu6$—1F/ﯖ¡qcÌÐ[ÜáµUtÝdloX| ˆMÊ ÷¶4°›j`Iî lZY°Æ¾öæ½ ^ìæΉ’Å6Lö6)Ê8oêO®©èã•ñÜ^ûëèÛѽ=AdüSâq‹ey ±R¯ÎŃÒTá:ìNGò aùFš¦°D­2Bèµ÷¬¢þtØ*û[«,¼OH‹<.+uýõš8©ÊÆ‹—<*s–0ƒ€Æ‚éB°¿:HnöÓ@ímQ ¡|Ùû&JO Ú^©È Ê—NáXË*u»¼7)Ù‘Ý~©¬Å7Ï$Po€{õ¸Ö×à™_–.\ÆS î†÷ewÃm Ü̼ tŠ¿××Óã€_Ñ%^¶ùºT訇®QJ×Ú9œeñìyqhpj$ï6È+/oö‡÷g8)Y"ŠMѲ€¯0éÔþ6o"±¦4Uû¬³8õÆö›k¹B4ôÙhàƒH“½YÅwyª&U–‹<.­!Xæè÷ûq7à€'‚$4‡Ó@G@¡N˜hÄ•a»È?Rp¢>{xYH¸M;‚Û˜E¥¸MgÙÅÒñïûnjOÓâ<6VÌT.–_ìþà ™ƒIý¤B~t%yƒ÷xêæG逻ö wR‚Ó!?´ãܵ§½e,ÿ,4‹•K½WFw £ȤÍ~¶®>.¦‹%‡Éíßq$€¤È… AÉJ&iJN^¸“F) •%[‘Ref]_k·YDêŠ"µP¬všHU%©0½8é§M^`+Ðó*Wñ³;¯Èn¾ÊJ¸5Ü$ðN®´4…ºD¤é¾ÕèôÝ㯳}§íÿvˆ™ŽToEâޤGöªŒdƒfIî’Ÿ¸¨ªàŽ9óKggÊR8_K¨oÝüiåó ”$e¼iò«›ñ2P2;Ûgw)Ò¸J’êÙ]üÆÍ›ÕZx4Õ"•ÓNSÎiòYÎ݈ÆõXÉí~&º44ÌIðã1¿·½xR‚IeÕ…¤õ…ÇôÏØ#$£±“A[e_ t•RêQ-WýkUÒG“A1Å*',¬eßÁ¦ tž¯n"ð®æ[rsÈËjè½V¿¾ôÈÚ­%ýãq7`8¢sGÊY Ž!Г”»*G¥¯%÷…NÝdÿ¹Me($B,ßõvê”H¥Ã%êp,á&,™u€ãt´ž9@[:¶Aü½C¡¢*!’p7qiدq§R –K2e|çöÝ¡[Ú>ðCgfÕK…§R‘/I³iðlì=ž:ºsÃ[߆ã¶Ýé›/î’o6l^Ð óH\ "^ëzM3”Î.&–I´s¶¦í+|Å’1žÝ€$ÔûáÄæ*7¯«Z©4Ÿ£YÇk/1úÆ ¸¦ÎµÒËñ˜íïd°®4Æè@ξz-}tä½§.ÅeHgëBìò–ÀÏ:DZ©+> z*´Ívtvò˵Ê-Ó0·³ÛnßÍ nŒ‘„×’ü[ìïÿÊCoºÞ°±µQŒ ”`¶„ÇYVÒh̦ÌÒP3Œ” yÍVÙ™1¶® ª˜@<m‹õº¦é(PùÝó”±Ì@_42Sö<+*Ÿ2{*ŸrÑ—ò,ì÷µÒƒ.ÞKë¥J x•¤2Î t¨_SjÝ ìS]o”‹‹[‡Ù_:¬ýF\½U–dšݾçw[eøR“†Oö”ì©ú«æÁr-Œ çÅgŒL9½ãú®?!hÂõ;­ÀáñÇðãèưÂ4Ç ö¹¤©2Œ*Üõs†’AŠ…Õê“%ƒéx²ä£E ê'òÂGs)ι±kñiW§í¸#…)èÁ£²Òƒô&h).ó\Mq™'ÐeH‰¤šEÓ‚DdõØNêL¼ÙÉsHÒ“\`E,$œà“°<ä^–'.Jm´ _6î•e©eqœH@Iø§ô±ÚÀe6Roq?µ­X0†NpÞFQǺXñ¡Ço =zSº¡ÿÔôù—™¼ >¯˜­3bµå‰-{»FÏÑõ;ª9rJ+ÑðÝ—«!¾—"›:ÎØŽ€ìYáÙèã'Ç8lmºÙû0Ðü Ù®SÐɪ*ôxÏÏŽB&9§YC ÄcHí ß2p*—•7!–gÙuQ·ÉcpƒÍÐoݨŽ[ƒAb%ßu¯~óÀ®àƒrøãÝÍŸáï?”1%¸endstream endobj 905 0 obj 3790 endobj 914 0 obj <> stream xœµínãÆñ¿Ÿb•ÚŒ¸üNŠ×4EÓ6@›(Šs~ÐÒÊbN"u$u®Ÿ¡À½Cî%úzÏ]Z:ù …xgggvvvv¾¨·f'f‰òµ¿úòÇ¢,ÍÃxµ4Wo¯Bù·Ú›ßÝÒ’Ê$‰¹Ý\1]bJkÊ¢6·û«¨ˆ“85ß6£3£ëÆvjßµÓÓâö$¬r%¬b[X øËÕí¯£¿þð÷ÅMš&q]•Q;âØÆËe­€ÏðYØ ðy½[$4ª" YG·ÛfR&0¹V.yÔN2NÒhÝŽSÛ=ÛqëüFetï¦Gç:e—À·vjvJ˜DwÑñppƒ’Ô$ÛÝ"ÀM·Vò"÷Ín$¸‹v=É_§Gá¢~¾ýÓUbQÑÎM“ÆØÜné»Ý“9ìš•ÍãÖ Î Y÷wýdö .6Íà¾Z|Ž*Í›¨Jÿ½¸)³e\ƒ`ßwfv]³Â~cÖíàV¨ÏV<Óçhî"’çËË4ÕË‚3I7}»¾ŠþüÝ?În³Ž+ƾŽL;÷öÈÜ—U Üm5;×MfêÍóÒÆI™$Âü;7Ï<º[|Ø›¥q nü™qçNüf‘,ñŽà„|Ö¢ŽžÌØ>tÍt.œ:·±Íeçï>ûáÿwh÷Ùþ¿9t‘ÅK8+:)/ú×U¿ß÷ÝöÀqú§clÌýàø åüÎïfj÷îê°yW…Èôí©¼E¬(Ú–Ñ3bð •Ы‹Ä H0fÑ$>zì/kIn…õê‘«¹L¬w-³ØÖ鋆·éx˜æqQÃì2‰úa=šãèÖx€ñàVíæÉ4;xº nñjd2þFˆnœÇék:öù«~d³.sÞcÓïÔË¿Gðrdª3xÁb\°QU¥r¶/ÚÍ™õå[5O¸”ÃàCnhDžÞ}àFiúÜó^!BÜ$¶Œ“efnè.*Ã(‘™?ºfÛn³°Kô²UDÚkûN9] ¯7¼’<«8z2¼ß¹€§f˜F…£~Ã>/ÚèúÔ4mà‘­£î¸¿G?MpZ!­ß£Ü>p]ÚÅŸÎu±{Òuô¦ëûØ)¿$jÆÀnI[«i¦™…÷¦¸eM^TšÇYf­^TØCüU¶ŒàúH²:ƒ§ß®y»›^Oº¬Áœ-3€‹ðú¿I³,.Aê‰+BY5‡Ã®¥È‰iM}@âA„4»íw f6:´nå±–ôÉ,òhÛÕu€A]˜©Ç®¢6ûÃÎ]Ž}7cïI_?(,jj'/¼›]Û¹ñ: 9lÏ O‹èi˜Ñâö ÜhjÓ¸‚ÛÛ½`N«mÓ=8­ª€RØ‘t†s ž8ÕÑ¡ LaÔW†`·ÇÕ6¬hÆ0¬:‰îSAêÐ=LÛ˵ ´ê»ièwgô¾kvkó^'P’)xžÎ»¢Có@é¢ áù^ŽT'yà]'…W?‚¬|lu§˜ãAyÕø yXBÚ$¢ÔèI7t¶GI²\¢ “%]š„‹Ã¥÷.¬k»ñ¸y¿j!¸„É¡ï÷ºe%¦(´Ïö|?ŒSy|Á),ˆªŠRëÎ ðzxm‹·K`m)Ý¥qQ±à²^FgðrÛnrk%Ïè>™²@@ èÂK™Â¬\S _ðûòA’À²z–†Íš@É­ÈÀ˜ŸÂ,¹EY Nf}\¡›’•>U;Påò*’ÈEÉS ù1w[ëþIÆÓŒB„ã½q\Í”Ì8ʾ•n3à•2”°L<ÄxÆB1UÛŽ“¢sŒ%±"É¥*ªöÙËÙª`¥à1ï[îþ ‰ù9&Ï Ú‘*âØ½=ö@gúƒë04Žo˜ÝÍŠ“Ø|› dRl ¯)³7÷P ôè#'>ÆíPwèôÁGfÙ»aDÎÍOSÃqìà£À ¤ÆþR`NJ¨…ÑØ2°Ž¤!ͲuLœgAãšÕÖŒ(ePÏ2£k>x;RŠôÕyÒn17£ùXÀNCfVÄš-þVp>æj™Öš–w§¤y¬åÀ7挢F’—š´7ëu‹jvfÝLç™e AºÖÅßœ¦¥Ïåøù”ú&CTË\ãö'5’•ô¨tÊá$æ4ó—ÅEÁ`Ã<®Këw~íº5±ûˆþ*$Yƒ\£,£µWC{àƒ&sM®`œÕ³d(d¬u a³*5ÏÁ«§Ÿú,~>³MHÒ"¾ºª0Ü 18ä;Èn¶¸ G‘w8VrY"±NÔèB¿SÎI©ï]X‡ÁPǘ_éš" ó>š'rIšÂ—!‘ÓçSeÏË{ðP¿àƒ–]Í@ c7ÉP%"Ø:C=€q@üm[P‡B2$‚–|8&* ¹¡rÖRU.Íl¥?Åó›Rüü¸O-¯ƒpgÜbÅ@DU˜(/$x¿n˜(»Í²\9v}Ô!Í7`ã¼Ljy#¿9{Byl³Ê·À¯æw‹X8BAËa„Ø[½DA–N<†Í Ôô¸:¬•Œ‘p)êÆ íÊ3/1E^SEC`­CM"4“­(|â@`Bù®kª WDV ^®šYe¸®o¬R¨¦/¹Ý ê Y5JíÁeÃÜT9Ýt-3YÊqŸÍií ª¥©V‚¼\Ÿ‡¢¡4]7ðˆŒÊ£î¬z³àaìÅ@rr"ºSf8N=C¸9¬ õ(áѨ¸ÍLtŽõ¤tHcàŽŠO»x FnÈ@72†|Ž íÉteÑVü¸Ã”œH‘ tÍ 0ûC]HêGÀrb+*Ó$!-¨ncAÒ”z¼þ™„ØÕý²Ë·ªéì¥w¨Öâó‘)(o B‚Å~ ¿Sq;ªü H;¬Ž{ا[9­ÄZ„@.Y!ñs*âc‹¯\±÷îÄ‹KÁ\|¢>ÊL%? „ž?``¤)ì¥uжìépJZ•÷HX)«£ôã:™sصÛ‰ÚB²Î­Và½ÀKëTqZe‰”éÆXré![ÀÅ® n…ʼé#¨(_B¢XF¯FkáLx_Æè„Ïa˜”ë%•˜.Pà ÷Z©ùC “úYMÁø™Íh%É£P½„9}n–bìºÝEÙ¤éÒ®¿ž 7’ŠÄœ°ôè;(­vM÷Æðu~~R!Í‹£ÂüpÜM-hö==ù%Ö&nW8~¤(š½â´´1x_þÊ…c9‡Ìs‚Çþ‘ I­ô²’X#¨Dú_€LÚ¸š=Û½DGY$=!‚RùFFœÅY³‰ïÕ®œ T÷.ŒGˆISXG=eÞQcPºÙ§/Ýp–‚µÝÚAå»æŽ D·Î#69J˜Ï!‰ÂQä³ÈÍÝÙQQiäsÅR"ð÷º”šZà8<Ä~ðÜ3Ìšè½xvÛv¶Æ)]¨M(‹À;M¢±ß»°žëØÞ·;üL*“·ºd9zq}Û[)‹1˜‹ è8G×1µ½¤& kêÑ=àWȰ€z1²&•–UéR¯êe#£E™æÝ òÁÑ»ÕtpüÖ¤Se¥9ø}S÷N}\ÛÓpĽ¨YIÜ1KäõQ€¥P%WR`¨ìÙÔ>Z¬5e´:~êÔ¡[¯h}7Šg0T¾ “°FÖ’|<ȯ¶5w÷£®×ûÓÝÉËÞM`Jw9—Rº ŒÏØ ªUæîÇ#ç–²Û½›5 ¦Þ¼!™rЊsîÆÈ“¥==#öc3:ìbOÔ:Íb¨ÞI¡î*ò„:cÁsùUug³S¾Â*2 ¢OÙ€¶lø8…ah£K)–Ðýa;v°xXä¸Tr±âÒè BOŒà‰]ÓùÝøIÉ*öݲMȪKÎMG-¨¼'%6‰¶…g°o‰¹"å|VúлL¸êÆqrKŽ Š\ %$ìE85Îè d6‚•Tœ+ÿ±Ù+TWòøר‰fd$M¥gÆÀù]ÛyÆ 8P¿ ë½ü.>„-¸e $÷.<—cÜöô>‚jB 9ˆ‡ž­Ì©<½o¨„#Hœ*ŽKj3ДNw@N' Ž…ˆ ‘X×Z±fZ—{?+›öy`o½Ïµv.ÙKnC)Û1È‘„¤–2£©£ÌÃì£M3Äáû¦YçqS¬UªbÞ6ÃMÏ[g7Jÿ©J3¬”úåó– Î·ºªð}Aû“@ –¯' >Ë"%WM©¥.™,ïýìÓ%SˇDRN4yñ…¢-+^m&çiµ~A ¯4²XÊç%ÝñTþ` >ô–dµåˆè&jue–ÂÏÌy¥|t¾ÖÅå©fÈ0d)YŽ+¯Äô…ák ýÌ)Ol˜'/›p¬ûçêþù€®£¤O&lÄwæ9Ì5§e'l¨øÅ8ƒù»ÿ^fÿóíÑŒ_uef_f?=ðfsû‹|ÀÈ26òvàXdXæKۼߘ÷Uî%õë06*ÄÅ€—û'Ùüú:}3ºù Œþ ÷ÑmœÛ‚»hôEÃÂ5fµÿr¥ÙiS­Îâ$ÏýëGÕ ‹´ÀKJ"·q @šà x4³®¼¹‹ ùQÚw·Wƒ¿ÿQ¥"øendstream endobj 915 0 obj 3631 endobj 920 0 obj <> stream xœ¥ZÛrä¶}߯à›9›C€w;år®•MÙ‰«*»~ † ãr–i•_HÕ~D¾4}Aœ‹´ªJéAh¢Ñh4ݧùÄ‘ bü³ÿ7‡7¿þG^Áýø&îß||£¨;°ÿ6‡àw·ÈR%RÁíö SA™E^·‡7ïÃïëq Æ©~0A¿ >«*ªÊ"+Bø|èW*Žb•êðÁL7­~¾ý H,'Q·ß¿ ßwæñÐ3ÏÏ«¯N& šÇ=uÕÃS°3uÓv÷AÛmûáPOmßÁ€Û·ïÃ?­ÒæNó°hÞæ]*7šMß5¢U\K­PÂOÌpe.*K²Óeäe&:þtÍ´‰àÿ ,êFUQœ‚‰0Ñ?üsu£³$J T¨¦ÑÒYÖ¶™&agV:Å” í×\…ÇúÞ ëÉ÷L;ã‰;³R¸ü2¼o»,$cаßÊôÊO§ÝtZûétˆÖÁ¯I>°Ä¬ iÕk?tîöf”E¤j2ˆ.™ ÛÅúL×Ï÷;Ï:ôýÁÏ›·â;hÕ²/°ÓÐSQ––ˆ*´Þ0Ú/º ë®±DvÂ[†Ÿ‡qò]ãÓ8™ÃÚ~HËæH`›+0ØÚ³µ[p:ñ5a¾ÜfªÛntcûnÿä»ûÎ,ÆNõJ¡¥Kƒ/T˜Ý)êϧ#7ÅíÌ.ÛÔ`ؤ̢L®aÛ0µ›b1Ù0´Mc–#žl;QaÄ36JgJ{&h{¦U*gºˆa' PóóÑæä´D»{ØÏRQEÀWÊð¦ÌfjWt­’d©µ_Ô‡P”ÐÚŠI³¨Êr«Eø«Õí¿Nf!Y‘È$ ’ŽÒêÃ*™:|×ùö½éÌPïײî N n?Qq Î:Ü7 ŠK` ÑõÁLf@ëÅITi´a¢âÜî ïµ³p4Â¥2Þ;Âz¼ÔÞBÙÒ8vƲ*Â#Ìߎ qÛ O_8ð2iNýkø×^Ë;ré öfž.$©¸@f÷¦éç»=D‰ t>Û¥,t"{¸æ^/æb[¤ÓÂ{WïVt†5yî_i%Uü¬Ð8 \×ÁÝJ£·Sd ÀQX^Ð#€Yex:#E×`êÑ…_EÁÊç„L¸]riÁŸ·® ¬7SÏ'+ÖEynÞ鋱e¸ÙÕݽL y¼éÍèU…Äè”xoð0§,ĶED¢Äc‘€×-Œ.#€‰‹êôš‹"„º¿m¥}"K–Á£=š «æK¢ãJ«÷³ý7«÷Ú+.à’ç8ÔO~Ž;'ÌÚ©FB‰ÿ=H„¤ õÁK0z´\P9Ò §¥]š%ä„Yñ ·c<_V•”ÂþòÉG&¨_ÿÜ“rd4ÃÍôÑÚò ¶líG-´¬ Âï÷=+PVá£70ž¬zÝlk+’­±pmŠÆÉ’$ŠÅ8BXã‰Æ¡vY,øªÌ–ŒL/øšð¤”ß¿¾¬¯ª,ÊKŠ{Àã¦>^¢”ëoõÖ)£\¥±äåC}ßµŸ7|rž˜©鳈ùDÐ{ôéÁ~3LÿšÇ©Ý^‚ç`Î_-uÛÍÖímåÖ ÐúYlg«…ÊŒ®·è^¥è]|{!ýæBx‰EëKÀ1wˆï.ÎçKÇÙX¨†î§ÝEtWQ’Ïî癘Òâ|¼€“Ù‹>q*chïwÓÔïÍvºð­‚±~ Ë/ä®5ScŽW–Ïó½FÌØþûÒÑù%ñKEÁ¹”Ƕùÿ”Áê <¦À‚eÓf7Ì{sá5°eJ';oÝС,‚ó¹x’ÊT“ù4m9peùU×O -$ DvaàÑ„<Ÿp-èJÌK µuðã`Ž—ê €êGD46X>\)ŸA5À` om1(’¡@|©¾”mIKb£8÷f„´™ˆÚ XÈ —€2}Û LAÅ`'©àûq^Èú¼7ßxËAœIì(›?×¾û:+‡¶iö šr#‰Ñ€jÐ||ÇÖòW}'™ð¿®ò  £‹4õT¯- ȉn@© ¯z§Gc:ùÀWˆš"Ùɵ]‹ LA”URz`5™VÎV™:½jcîJÐ!3‘·°á"¿<‘èˆÿöBÇÊðˆ\†+Ù4!'_~šüHØÉÍc@‘S’¼è+(à°€‡åçE¶PÊíÎÿ'ÿ™ Z"R¼˜Ûï 2S' ´SGg¶ò žÎƒa¿6õ<Šðò¢¢¦úÒ<à#ܘDÙÊ ,a­Lëðm ¦Æâü ˆT®mqì*nœíx=€!c¨õiã¨-[M„ß$‹,Ü·»Ð*ü­ç;·~._ÄŸV¸1$ùI(¾ •žzò*.ÔÒ‚½ÎÕçw;u]‹ê)j¸1 í­EEŒíÅØÁÁ!Fóíø ™*ü@å6;Õ•Â`) @þÐN“i>¬Ö†õJNkÇÖpy ÅÀÞ¨NÄo\¢ô !9RÁÛß÷Â_E^ #·\?æXÝë/˜™ ä$”A¹°,!Ì¡n»†»í‹¶O8½Ôœ,+”­*-ãû®ÂÇ­Òy‰ ¾éüNÆLKà›ªŸ§…")쬢àÔþõlc6ÙÎû¶3`‰f?°™6­§}6(a©8)ÜåÐÕÍÓÁÛ?˜Ï`”k[Gqç«Ó˱8J¡â³™ûmCcÏ1[Ž—x¼ü £çò¶ã*±¥?SÚ^â¡ÌBžÎ.Ç?ò¬)Kåñüfà‡U|®»P†—eåØ#QBcT™PH/=•W¯Èé†?‡]}02ÂÝGòl¢}û`¹|óÇLPõËïo<Ã<Îȹú¸ÑñÙ{½%MèQæG*±*&XÇ@\âëPæwý0Ò.Åú_‰cê±õ¥9pz:šµso?U¶T%[,“évòmŒ¯fä[*ûQ‘gYuóßÅý0Òµ˜ÊÝÅ?ïwyìÞñ솰H67©†".qw0áØâV@»´ã×מޢ•2ç¶½œ4ETÊZ¿±Î3a²,Wãý:¯²¼R ß^Š€¬«²Â½ «¤ÀÌ Iv¤ûAŠhW*ËÜ? |K0^e:*ÊJÖóž· -XÂM–ÒŒ¶¨ …æäØâLÂ)óe’¨˜L9·‘È~¸ãÑùRTn/„±ë»ÊVÂ^º%§e=ªÓÁhʵ'Ñ÷™Ýí`wfÀ«ó¯>ÖÖãØoÚz¢¬ZäpôÂÇJ¬óØR€€T•¯ÝÁ÷üŸSL³¯D TÀ©àHnúޝþxn‹o©S &`Mš#Œå ãÞL|y'RìO xlÓÞ·?·Ã‡¢ ßÉ|€¨”‘a‚I,I†ð2ý‚x>>IUáÝ…‹LxØÒ´Šøj”[%ë°¶4L;öÒÇás´d‘’b–ˆ//´“2* yƒ-ê‹H£"Õn#è¡ZôÀì.mL/k¯ÙÌõF‚jË>{S§ pÇŠoêQ¤Cvp{B,F—NÚö†|“¯„ó$ÊÔŠPxØ ¿ óÀ5F L¿&Q;Õ’ž˜,Ù”‘¥5× Žà£ÍRr 8q˜ÃËH2".{­h{¼¯2½”Ðõ~ŒOg޵ö£ ©­á—â‰AcžÂTÓMÙ ‡ðFX$°·càx€ 70‡ãôp²¢[Qßab.ÍîÇADægVjóó61}[Ðk‡- `?AfûNšŠ„BC%w¡]ÁO¤ÿ 0]Æ‹ä_ȬEøqæW0Kêá—q1¾Ó"ÞïêÉÈ‚ª«(”S9WðÙÄþüƒ(ÆAÔÌS8Sž¯bhÖD–.ÑݸñÝÚµ4KoDžN/fHBWŸ¸YRs³¾|¸-+È•_Äy’è«Øôô’}íf‚òÐ?¼µS§Ðîgd¿&àaç·\ˆE™ûƒmZ[ÔV1DUÅÛà´ƒdø€q¶wŒZ~‡…€I›)@cÃcÝÒqcŠN&K.…ºÚ›h›ŒYnæ2€¼tÂg·+ò_Þ-XŸúÙ¯ŠïlÅ+ÿc/˜y[!?U"Îé’Ÿ¥¦¶ÞÛÚz$95‘ Å” çΙ…>¥öPŒ"A.ØÝ^†1Nb/qdÅ÷2UzÊLK²|kvÉó4óE»~Þ7XÈÙk5X݃ûáQ¾Ùãy\Q@ ¦'­ÜS@˜dç8ò±ÂkÎØý‚3¬˜£3«Ðl =N7CK¿“ >„ù‡ÍúÇÛ7‡¿ÿÕ5ßÛendstream endobj 921 0 obj 3795 endobj 925 0 obj <> stream xœË’ÛÆñ¾_“Ú\˜3xÛ—ÈUI•RqÊI¶J­ r‘€Z)áH~"¿—~Î É•åÚ*iz¦§{ÐÓïá‡h•˜h…òÿæx÷Ýß‹²ŒöÓÝ*Úß}¸3´É›côã¢TydLô°»ã}&*mTUôp¼{?<µ‹û¬®Sñæ©›ÍÜŽ‹_þ [Ë4•­E•¤E¶wñ«ÅÃ?/)ÛdU­dù}ÜMJ³ŽÏS»¨¬ãf Æ2¬Êxwhö/CâyÐm&žÇn¿wkEÏî`u:¯§¹›Ïs7ôŠRÆÃΓ ±ÇöØ×í莸s»0YRWyš’Ä}µJ²¬¶Ñ½±ü…ïž`ÓÂæÉÊdYüÑí se%ËÄÝ,ã2›Ó©mÆI&rXìuœË‘Haátv³ø1–ãÀi6íIWr??µ½‡º`Ïn88\ü¬ +2Éâ?è°Ž7ÃñØö³_sÒ\,ý¬§oããyR¨HãuK2BÉüåîá›÷Ž}²ZUiüŒ²MM ŸÅëÏ8®`%Ãëça÷ͱõHóS3{´'TZª³ø¤B7&þØ çé  Âûl<µ³_:Ÿ´³Go9[OpÛí;4^2Ue1¸0å –‰¢ ÈžLfÂ@‚PUI™Ùx7G± `3g‹ -Ÿf.$60”;²ëI³hXÍ¿¨”E–Çí$ó)8\ô‰’2lãB¶é=Uæ¹9\ü73zÎVNìŠÐʉQÅV.˜x^º´Uë‹ØRË­òZÉN''úáG.eÚÂW>/Ì %mÑ2uŸ;뤘…ó 9yAö 8ÎÕ…$ž*û=C&@2ÌsOdë9IœC(?ˆÃ9pN/ÄQüÖ먒pgé—²2TÞ£+ÉVê2þù§w€nvÓtÆûVÏψð¥ãHê Y™øØNS³o%üØ­œÈ•œY…äʸ=žæÏœ ë÷‰L€9½u‹Fǧašºõ¡õ˜” 긅‹¢(—§I²pAl ]b+ ×ƒWq?Ì ½Ó0×"”’rÝÂé#±^­Â±^޵-`©¬5`|ûB0É2Ó‹Ä&ùã"Q~uüF¹eA H.ÑsżVñÙ/ópè~!DrŸ n© h¥Õ5›qêä—ög]àHÕ³ÜM]&6S¹ƒÁFS»A˲Ä$òÕ}*SA!!¹"~vý¬)(B°¦è¹›Ÿ¢fd¯`Æ u¬’<¢Òz œü>-,éM£À Jй;’[C˜ˆ$ÌŠ3\)Å( ¤¸;¯$½c‚–]‚Ì7¤¼«¾ÀúˆYx3~\ñIJx‘GÓœþÒy²à‡ HKLµ­\Àü³<©mY†U_ ™@Î(¢¼TÇp4üÓm»¨Ø‘À ¸|4\ÞR@Ö?ìÇæxdo/h$fâVƒ1N›±£+¡ÕR ߯X*WbiD;ˆD¹fòçeCª­è|ÊîÜ“jK]EjFN€|( ~R$Üëì¥Ù<))dcK‹J!'Õ}˜‚ äò”’\h³…Ä®ÝêY VH7×,¤$oN.A©P=,c44¬’ÊÂÚ‹ÜÖêiQ9Ä#“O"tì óI•’Ç%¿Îì¿ôó Ü|Ë«º"?Ekp9]»Ñô;QºÛxݵ®k5¯à@ÿyjú=)„ËîÚé¿KÁÒW¨›–ŠJ˜žÁ%^Ø4hûm@~ðY/™afiûØíŸfÑágñ˜Rg¢0lY»Âá¬;câ%Ødf4{ì¶÷M7êVH¸Ž…—ô‘½®Ö¤¦LÇ„ûï}ä™=:ž*ñàƒÛ …äkJmðx ÿ]KyU”a ™“!î–ëÝ­I!q¿.ܬIŠÚj¨Ý¿þÂ-‚Dë°Öí÷Œä‰Ü[›TH%¬æâ÷Óá<~7Ž&ÿ%Ú¿ŽÞ·Ó/×ÔÑ=ðžÊÞT€Ñô4€Óî#ü¶ˆkÖ¨‰ÈSH¤ë)Øa‡ÃÙ`õœ1â4#‚RÕ×3U†ïo’Asuòo¶í,3BŒQ~Ë«Wæ÷~ ݆ …8Îîb"ÏŠ“½6;öצ…Vé†*I+x¿q)0.‚k;°œ˜2 £Þ¡LÕ‚–ÒkŠÜ ’mC¯Ô!}F¿pF÷é >oéQ¥7!œEë\É8]©^VA [¸ÆÎ+sÓ¼Ê5¤y5w‚B ·Ú”áfcT79áb&°í6T•óŒ I¥\µ Iß³$F´Z]¢þ:N³?ʤ 1ß-Ñ ÁŒ­Z¬ÛGéš–&©Vµžh¬ø¢Þ˜&€f‘zk“·Ž¶PéSå×»kQá"´úiI¸H(Ž|Ý^± ì_ƒÈøÇo¿õ@ûúþqñuCx‹WWc×ÓJ4g¨‚h>aaD`.©8Ø/¹*Ñkmú6 ±«;NJ/ @2¯—Cw)²­Ó=YPóR&C„ðFè®jn _½Ô7Â(oôMpYƒnªÏt…ýú/«þ½b8>8&)P‰ÛRrSŠú¥O奔Sړ§žN‡Ž2œ({Ù’-â–T½ç Î-)ctKKe€µÍæ0LŽAÁ)¬î¡Tx¯Á1p÷ÄB™Üξ·óºK*î2Ãç›Þ)ÅgMãþŒ½V…%MÃqù‚L~íØ8"d2DëJ<–HšIß””²ÇÉ…3w –y@<½ÎxÚ-ÈyŽÒX‚ ­=vü @úm¤Ÿ”i…qç &|1ÎU —åWÃÜ«Wök‘Nz¶UžHórÆÅ¯˜›XÉ…qÞ„= Ê·¨#A#I³]"Ç»cþbË—=H™2Iz¦S»évŸu±r¥A«).d§~E‹©eHpà¬ÛPС§ ýîÒ¯aJöB ð[~øÒ/¿[ÉÕÊM¼Á£§Ü'äÀOx¤ëBV@} ÇòMAŒåJàE«I¹·I% p?`© S»®ÌÁhõ&ÐÀÙ4ság-^Jé=­!'lÞ`Ž£«,Û”ûœAN¡2]·ó3÷™Š<§¸lªËÜ‹ç¤ ÇØµ0W˜¢Š%nŸâQÁ X˜[ýà׺ÝR÷KrÎÀ7YúÍœ{XTÜUb¶GšN”¯0M'/ª&[‚.C´NmÏÕ›L8™eœ,¤Ó‡c(Á%ÈLidYVK£­ó¸ÔpÌ4 •Q—¦›¬‡+¯ª%½‘h¢|òøäý¡z*irêJ¼Ç e¶J/o4\¥W£t²Ëa(vÕv>À|¯WœBÚ½9Z‘-ãÄÓÓûñ ~ËÃËÝëŽ}ÛŠÙÚ›Ú\(H“Ž@ë_“ª4÷N\d.Œmn^%ùíîR“2¨Ì*Ì+_xI µôâyg¬d8æ‡kž–wŸ¥ÍöEY 牢Ñu‚8£VW§$ÿD¼¸÷'ô7 ßš„\£G·ø.ëd!{xå”iô¦]¤I–×”© ÞõØ6½5)*>ÊѸÐÊ‚ÐLð+îÛ ~ \žŠ«¢â&&ÎÏ2Ë€Áå޼xÀašÒüÅ“äîµ)q_/­b[CTÓV±­ å)ÍaªNÖúƒ FcoÛ˜—à÷íßI°åËÔ9 ó.|³ÞÎ[Ǻò[Ùá+¯Ç Å/¶ôùGå¦Ö½Ch| ÞU4ž-jœ¹a³¦åî…¦=é1`s«ø‹û2[%õªÆ< L/…Lˆr|${~sDxå¼RJìPl´œ“bñ²|Í¿ìRÊÐÄINÊáóæ‰=m$š(V¿[¤5g²|fï b«zÒ§»’_»øšfl±÷^ˆ… p /±Ǭ`Ñäñ÷:Ñ™(Ö;¦J’å¡´UõhºG.aû¬W%ˆÁÍ.onˆüR^”‚üÆÜФÈLõŹø;<‘¬ yí ¬¬Ñ•’ûß4†L­6ÍI‚êä’ÓC:`^+âP5<µÛ4Ki£±ðir”©NsÿX¿eæ¡Æs»®`gy…¾e)ªºr{AA‹zÅV³Ùt[˜i8êçPSUþºÁjª:Ik•/ªðM¯¬H2íÓR%º$BÔ5úßónl™”|¨¤.S¶bf¡þÌj×qŠÓâúwVu–˜Üý þþ²«–?endstream endobj 926 0 obj 3756 endobj 931 0 obj <> stream xœµZÍnãF¾û) ࡇÿMî-Yì³H€Ý…ì(ªe1¡( Iã—ðCìKìëmýtuS’Ç3{|pÿVWW×ÏWE}RQ«ÿìÿfóáß…Öêq¼‰Ôãͧ›˜¦•ý×ìÕw°D§©Šcu·½á}±ª ¥‹RÝío‚Û]Ý?>ßß>,šw‹ÅÝoH´ÌíŽUœ¨U K77÷Á/‹´ «RçA;í§i±JŠ"Ôq0íÌâ×»œ•ga•”x"ì n/ Waž¦UÉÓ÷Áq0Ù´ý£¥™ÂKÛN4À, ê¦i7¦Ÿêî?‹<£¸FaEMw=8Ö,Þ™±•Ui<-à&U‘åÁáÔm<íµœ“dAÛOfÆ&# ’8¨gGÁô¾íë Ã믊,ÌŠ$V(5º«êak8¬ÔÁãi¬¨®§wÌÅûßÅJgQXEUðq»X¥:VuP÷¶Hª„ ç™%%3IÐ@ m?Ú‘8 öõÔìu¨‚Íá´îŒ®‚O§Ã4ë6»z¨¸Ó¸œ öûÚM™A'Y#+@‚ÃÐa ËÒ]­`N½]*·JáRy^O VmoûiɯΓs;Ú~V€,ŒßÙ&éäÁ4˜šÞLfÇ£iں램K”—A(‡èà‡Þït\Étî…f—ˆÐl× Í%eÐÀƒÙëÞýt¥Ú¾éN³QëgeƦ>‚¨vRx_µxwn¢hbéͦ ;âÔ*Î‘ÍØ+ÑG¸N–Ä $i°E%/Ë¢“Ak¢ñ(e¹r¬éx4p‡¾qcEpØ^™sœ¤p»/±Ça’F•XóÚlƒÐU¬± š]æðRýªîŽàu@‡¶‘EÅ\”<”¡êÇ^!x~Ú¦dª$håšQî©kP½f8ÈLåìEb/ltiêÜ+cÝ‘7ÐÖ+€É=£¢Ác &PŸXÁ±_ˆVbøê sXTÁ“ìIÎÔ‚VÓAš9nƒ©w®Èô~¼ka·ÓÙÜÑÒxÚ‚/Tf0ýĮ̈µ;O—à?¥íÚNUw –I0cɪ¨°Jµ“Ôß%ø÷-òE+ ºÃ}F#+e¡MŠ:  ˜ªÃñصf³ôtN}gÆÑoÝUbžºiôgˆî%Õ¹îÉÖµ1¬7(ˆ#让`Íç1R=‚2)+øî3Í€¤BjÒå´p©àÎÊVø£Þ;ó—W ŒÀ¤à=ðßöFqòóønù¡~X(u?v§áÃ0Äùímò«º½Õ½};)Ú™9Sí¨X©–ÊìÓ3\f£öíˆ9‰¤e‘‹:ÁQƒ9vuÃø)] 7|ë.6ƒ»ÎÝ áð˜u†± iÙ utb]§±o[VÒðmeF¿–ÜÉ꾜U²Ù2ñjF\gÁXïO)$lgå9C_9i¶ PwïÉ£bsjmŠàíI`œ ÿh83G¿ƒž3Ê3ð‰×ùEš„EY½Q.áËäÑÜf0ŸNí@^Gl$¤6@Ê·ŒíCܬ…‹DÀ”«l9çp’vfa"/¼3…§¡&í4‰ÕSK¡œY¨½sŒ–žgXØ@m#c)¢¥.%žS@2NVzüáã/­®à]Œ¥OXa°„ò„TdÈû3ahÌ$æ+!„üfšÉˆð@9@t}OΫuòÜEðèDÈ¢Ô¥‚ÒG}%,ò{v'Íø-æè*tôwÖ¬,œ«¯0éú}ý÷··‹Çwàí½³ÿFOÿqR‚Oƒ§Q‘N«±º:¿¬à¶ñóe—ÆßÊé!Æhœ0ëS¢Õòj0KD¯¡®Sœk’4ËL»üä:CIŠ0³Ó µ\­2(}”<¯Õ¥ˆ"ͳ+v«D3çE˜Àö÷û†-$a”B23ˆï ›CRFš®ƒë5S»Hð)Óô¨â¢Šj)Ü–ÇÁP62Á*ËTsŸÈò¨K/È(^:7“ú”“úE`1ìT;´£`YVñ@]Ù…"!çèl,ýÖ!óâ¡1œ Ôƒã\;So¤z8C‡TpÊ ¢×p’»,jk+êc½/²ÈÒvKÊ™yK/°eéCŠMyÈ$s:8¶†K·oðûög³G³¹«,²€ž¶Çâ¤=}®¢Ø;²˜¸RzîȉZBw¶¸Œ’éa¡‚tQ’«ª¸Ðt­*ÍyêÑ|¸rø¶°ÄÔwã´Yf:¿{Û`é¡,¨Êåű£‰C?µ90*(Â8Êdó^³\·°Ï'TjÛÔ:»zÜ-m¿äº·9Mrãg9)mÆü²«­‰•ç•"[Ÿ{v6Ð)J¥aAÀ+{šÓ0H ¬í”OïH’¼©PtJ’ é³NØŽPâ€&g¤8¢vy¶±šYï¬xçr¶µ—6˜Í®mv~iSB ‹J~‚ê–ëñÐ&ã>ÖÓΟÌo/=[= øc‹|šK|UfE1œ+ÿ'k(c;í-±“ÍÅC+ÓÙkQ‘›kÜ4§ƒÖT쀑‚«L,æ:Æöå¶xúmwlÔ´ÍÒwêޟמŸ#ìÒø<êV›Ôö4Pñ€Káq&ARcjm1Ÿ3ÑK³ð¦SW@RoD—FÍ‚ZiÀú<¨åꯇ~C«îØÔqw@܆©œ=ç³ß xhº ºCãiÊ`q!j‡Á¿u » «)ƒûìæ„W%éÔ m{UqKÂ$‰h/yÚïÏC]e•—÷¦¯$ž|¡wéoƒ_‡.‚+è$u¯øòʧƒ".æuRK „×^|ÇÓp¤Z†È¨I$ìÂìp= ôdÈŽS;Û˜Š¨\$Õ9àêÌãê…ÎÅ¢Œ¨„˨Ì|ÈŠg°7ÊØÑ»sd´{W‰×}´pfA³™‹ªQ Gí1›I §~cÜ|êX÷íМöèî3†2îâåü°Ü®uü†VÀV÷µöþ\ÿâ‹""ó—¹òhE 4•㼊›r0~À".5 úlCͪò¦±”•¹8f^BÖ3ÚÜGPv[™=­rþewØ,ý[0}ö'¼Rl~…Í=¥/r覞êPÖ¥\«µmŽƒ¶ãn䇬¸<Ì›†Ç*sÊŸ%q:Žc¥Kë¨ !…®Lm)Èb§ðŽi§£(å‹À™(“PçÕ›6žƒÑ¹tÔôÂM€IµþF£^zn¸vAWÈëù(Â0ç +{]E}&PiE0`*Œ¬xüL¬ô!i4ÖÞSðízöÑIÄ«#¸Mn™£N0þÞÌþÀBßµ(£ ’õü+¢ÌuYÍKBÒ¦1öxöb^ä§Ž!)#apÁº;4¿û.Û“¹¼ÔK×a"Á"Ã7† ëä-ks>.[›éÉPɈ*F«v­D‡U 1;«f~qVœ6Ðs+¸ä¹ˆÂ¢Èâ/+X²›¿—Yôkÿ¡ö™?+¥[ÈS[žÜöùó–éùG)4”‚ö²¿Âù¨–\²¿WH S½ T5²kí{É$…>U*7ÜóÞ«¿Ì˜ýAÅ â—F¯í¿òÉ5á-àš¡ú¡W¶ÞâŠ%ê©í:µH )®| ëÖ™ _I”¶jlÐ%‚ðdûvÛ65š¦ŠÂ 0œ5ƒw×óq˜Ðü¶%¨w™[q}W!é$Fq1%Hµ}íJ˜ª²³ÏÍÿüù5,Ò£Tàg5ê@˜ÂÏkjcÆfhÄÅCP<,è’»»ùüýöŒendstream endobj 932 0 obj 3427 endobj 936 0 obj <> stream xœYËŽãºÝ÷W³¹òÀfDRâ#« À 2Á ò€‘»˜ÎBmÓ¶YòXrwüóÝm~/U|ˆò£{€Ì,Z$‹Åªb=ËßHNÉñø»Ú?üæïR)²ír²}øöÀÜ2 V{òû%’è’0F–›¿ʼn’š,÷ÙÏÕj7[þ È+/¨Ò\érý}®7ž`§¤9+Á×lê‡Ù‚—Ís™íª3Ô˜"{ž±‚]ê̆eƳ*}î«aµ«ÛíìŸË?]`4—Q€ï7ç3*™ŒÇÏ#G‘=ù£¹ÉNN"ƒ2vöhÃPYkí:naYÛM(ŸlZ¨Ú¹Tqå²Mo¯Eã%F¦y²Ã‹µm´ŽFYö4ø%®eV÷éû`ûzFAó"º¤gkÁâ(Ý‚kCçdÁ¸?qÕµëz¨»¶jf‹¢ÀcL¶®v5Ô3¸Yc„˜ÞL?d [5¤=µ_ÁÃÞšŸ—pÀþÐØÁ¦™Þ~;Ùvgt™u›ۡ膗×Ne„ŽÆU”å% ÿ¹vJð9U°÷]BÒrôÇê$g2ëV«Ó1IöRàrIË îÜcV‚Kç\e4--wp#ÎÈ"/(W,ùpìœ Xð¹^[¸9!5-„AK¹O gÍÐU)3ÈÏJ´ÿ†ùîÀOá"åÈ |ö´)Ã)jÂD¥ŸJï DV5Mb:O–&FËM/°,àëtÀkw|›¸10‘ó©·“Mu¤*4(‚fDãýò°ü<ñQ2tm@^v¯ØÚýéZKº œ@º y¡È¾;ÚÇI*“º'¨Òo£Ã =ƒBS­´‰.Gú¡z¶=a A€™…®äVŸë®©[\Á¯jöÓ…‡-®~;lH•DAIfvm×äéL@âåW`0(y_{›»…Þ¶½W,ZëcSgÛú¤‚LyàýŒõƒH¿9ÙWÛ¶ÞÔ«Êqg”ƒNÙçMýCÕ~éó$`:ã( !àë«cýdàϰ®Vw§~z%èÅÜ„ Ü.ØãÔƒ›“Û¤ 9FÈ•†SÎY {ŠË nJÊ™¾’ø¿³…*rjr÷®§3Ã||Þ¿•@µbÔáòþ¦kš ±6ÙK[Üšø@h )YÄúÙoR™ \Žå x !=a5òç%v2_^šHe"’¿ºË~›'é'ú)ÎÒÔt7ÆÛ™umsžÐ\”xC¼¸úª¯Jû¸n¬2/œ ¦4åF§¬Ù‚,ZQY/ ~—<ëvUw Ä­²,Qò ¸Èþúç_Ã*T£}Õ®)D°§ádÍq¹-KC(׫€Šb©ÔR¡¦9¢žÙ››b-J÷^Y0Ç¥‚<»ªOÂ;ìáÕ* •Ú¨±Ð>™úâƒî"d4cf«cSCŽ„L…1ø½±>,nbø*"¸TáméåuDà´Éý͸o0÷ë¡:oi ö·‰Á„›œú[œJœxð7?rNÜ%¹cÁÇýS²Dôž+Žë£+Ž»£÷yq!Ù¶v;e7!žnŒnÄFÔ½8çó¤r·súÐ Áþ?w+ ͈{É ŽÜs’”‚–¼p®¢¸ä÷]EIš‡\â¿Ù§¨ÒYßYI¡¾Þ¿•·D5|däŸhá àXDˆFólÜPò2$»»ìû·ÇÙLÜŠöàÞ­ð˜äñ@¸ó‡³½TOçHU8‡ šÚ³BM¾|G*š(¾´‰å°óó+«ª·óx´ºãY_/bJD<à8à7¨bÊ|æöß2ܤqâ;%Ãâ;Bϣϙe`~ä£ÓùHE&`P¬ ñÛ£hôÝgã»2§øäœ<ÙÂF‡T½fEˆ»¦ij¹›ê×¶]Š(L“ñÛLì"á‚#Q€)g‡´§æñ/(žÓÒLÀýÎVk í#<;Ôê¡¶r©è°ð¨lçtû§º­<òéļgYz’¨é+‚6pN L—¾ïcÏNnÔÔ –Áiîó­'É^O`ªV2s(W„tAâ¿cøýÆz·R\#!»N¢`”DfUÚÑV{;OT¾ø†µ‰ôú™„©Qr½Úð1âÑI¤Û¤• žï%ñ«\2(Ã,Ÿí@°ð®ýÞÂÅÀt¨yuìd½—Ä9`“ËÝÖk 2MZåêpÿ³æï;®‹"†µèÛ¤Œ€$]üV2{_ÛWÃÛ¦¼yÉ Þ’œcÅc‡¢`.ù%Þž£Ð]RÆËÍ9Y R•)Ö+‚îàŒ4'XÄ7Ψ%¸lÕà# 3ÛKÝÛ*¦u€fÜB,œV7Áu¯ Æò 6}§Ç‹ÔlŠ•0mhk9àà6ÊÕ5Ö.®Ê© ­O]|zNÜsžv&j\øgÎWÙf|ù¢'LNmcûH¨ßå Rrù¡•ÂÜq#ÏÓ¹‘Ï0“+uû) ×&§=šÞÏ"ªõîGèNž¾Ý)L8퀕{p¦0!ÓØNñìäØfó øÜ/ù@A+>xm8ë‹ç¦—°¸ÿÜTÆMf‘¾ ÅÆ€IšcÑ4\Æê*ƒ¼žâ™=<(ê¾kc}}ñ°Áh4“k謱ÿе"5Ô±Ö}(·pÑmh×1x&݉É?B]öÕ¶ƒDº)þ]aßr¬ê§;ý—ªÁÎáØ­ÀE1ûi+Ë‹Šþ^G&5›ðmN.þýÎW}²95MX?ÚõiÞv¯a“Sí6Øh&7ÿ"3|Ÿ=fýã,în?Ýëþ0?ÝŸ î·ÕÈ<õƒàM°üeÒ%#É}Ï6PD>ý¡9 öSÚ7í«ñ…ðGŒÔÿp-µþÓÝs>!CwèÕÊNOƒšº×¿/iS·¯U.?lxy‡YÆæ‚€lÝT}x“cñ¸öž°¢.²ú©YÇyåñ~—ˆbêí¼1.cÕ:§ïº]5§õ½ÄÏzCv±‰ü!µUe3(3ÛÛ'¢0´”blIÄŠ+Š£š€ Æ Â…‹ ’bþ¤iø¿Â¨‹¹+,Óàs¦oÍo ª›†–k ûAx”á7¾ÙǽYb£ý/FŽb¨÷‘ jÙ¸¶—ÿõ™“Ä[gÒ—4šˆ¿ ‰IüíÊo|JÍב;7îGƒ4Šò@Ñoì0`[ÞsÖáy!­ôu?9ËU^·ÈÃÎ~ÂuÜ ®ëm=øR€ýr€¥ë:†Œ— xgÆŒÈVèPÆ×›)(¤­±Ý·NŽ3!1…±ÌÂ Æ àa…?߄ޮ+ä1“3wÔÏˇ¿ÁÿÿÁ7fendstream endobj 937 0 obj 2600 endobj 942 0 obj <> stream xœ­ËnäÆñ®¯è›9±–&›oßl$$ˆ“ðaåg†š¡Í!gIŽe-ü û»_šzv“£Õî‰H]¬îêªîz“oLÆ&Â_ù¿;Ý|óï¼(Ìaº‰ÌáæÍMLh#ÿv'óýM)Mœ˜»‡^›Âš"/ÌÝéæu‡‰ùaßôsûnWÏíЛºß›Ýp'ýÁ f[›8 «* ¦ÍÏwC’efâ˜H–aZ”•¹ûûÍÝŸ^?þã§Í«$JÃ$Z¦ÚLò$« ¥PZm¯˜8hgEäqpj¦©>,^&`FÀ¢æc£¸`ªO YÐ_NÛfTdÔ "› ¤ÈÓ,.ÝÞØêò<ÎcÛÏÍÞ¯Y®¯u^‰‚èóë=«`èé˜b«§ÂìV6,’"8,»Pà8îŽí¤XØã|îÚFÄÁv˜;:.ƒf‡Q@›-Ï Ÿ€pJ¦\­\°£’È–ı“ÃÔzÖ=‚zÔu©…iö^ˆ%ùßH[Ê YlžtRNûâÁà‘tõÓpAÒ ÜI 7ò ãnôiš›Ó$@¶¡÷™yÊ ® $—èQºþÕ]x£Ô"ÐK·m4õô¤˜”¥Õõ4 »¶žÝn«#–-ÝŽ,Y°ëwó¥î<ߢú‚õâ®…”ãÖl76 £îí2›v6cóæÒŽÍd¦áÔ˜éÜg釙-öa [ÛÃ-î&ÜÏuÛ# ;±Ü"NÅr“4³,‡p·¿ ^÷ÙüÏ›»_Vžf¡µQÁÓ^f|ìævcÑ#ÀÍ/n;¤=àºã°(ró |CÛ˜þÛ¼ {¢ƒb ÞÓ¬PÁêH€µtJ¶{ÜÇvwôZe$*Ö’Ÿ'¹E®O'TtÅ‚yà$žIPåa^$_tq,Óî7ˆ•ÂÝ' ÜeÁÐ$l••»8†mÕ…ïC¤q*w…cpMêyi¼mÆáÖ£Ïã A¤~²J1±âc˜~ê¬a)ªMÒ0¯ähÛ+!AŠ$ª¾ìžh#½$q¦äÚ6M¯óÈÏ…~"©±c¼Ájqp \íÈb¼²Y¦¶òg âRÜK(¢½DŸXš.¨7E‰1Q¾wök$ú1Æ0.päXhMªñ*+ý¸ÉÜú H3ÎpßúpëW½‡å ¶K¸™)ËYð½K Ò€§*È2_V†§ ž’!ŠN^Î@ <RȦ!D/<ôªq\®B'°2”¨ynvàʲü¬ÙF~:N¼¡ÄVæ:[6³yÀ“gm!zììŽàÒ:éízÚèÛ Oöo‡ gr¯âª 3Æi'ICÖY”¡-Y  £Up+ó"xºnŠÁãjò“ŸñžuÀƒv ² è:2EÙôM³g“£©Õ *ò î¦aiº¤«gE–àAû+i4 +D~GÆì™…R¢‡d\; ô6•¯*Iˆ¬EÐ>wÚ D¢rNØy¦9¶Ó*u¾ŒÜQ„Œ™=ÓÏ4'/8¦f–1x©Ú­ßÞ·sËY NTC@áóX„måLQ@1EÞüVèéþ•Åß18z…ÊïõéÜ‘»¡š‚2)U%0ÿ’tLôI7sp¥i.¢T†tH£»y·8tNyЂÍã&F+/8Ë7ÛÆ8s2mo4‰3õdÐk™÷1þ±ôU–êŸ÷ɇoõò PŠéÛUN¼ ø­zj›mºKïLmþ0ø»½ÁçÇf÷ëÏæÛûùcó•Ÿjªypk`ÂR/^¹íã‚ÏãŽ1dKyS À1xjÉ=Šb.»hœBþK‡æ½œX1ž# ²ë.ÆY+Ù™cÒ3VÄ)ñîH2×å°þ¡”´6Fo<÷IºÚ¦öó 9¾t³§" S@¹2eÅtœÞÁA'Q¡~üÕoÏR æ©7Câ0ÎÙÒHÀ*¸âE²Ìá¸ì¢©yе}ãÞªSÖê6I掯Ÿq‘€ >±IÂä~úýî'àH“óeª-;ÿbúzÏg=y¢^¼Ä‡¥Dw)E­d¦Ü›ˆº$ýø“¦±7bÉ´Ò8þxŒÍ,$½ñç“óejûš¢Ò^®\ g›)99 Q2}>!– ,"Å韥† !¡ +Ù~ü’@ L˜Tÿƒ@í‚ðÂz…O›\F‹¹ ˜æ09™±ÓKe–C!ž/ò~°SpÇfBn²„F_³}çuî.Pq¶‡>4 hÜ¢ZëIIÕ·›zË ~¹R1³î¹ 7~ŸÜ_Ûû͇P›I®?eá”Ê„Ú&A¦æÏí©é'ðÓ•/¼ê:‰Ä.¤õ©ÀGHB7ÁguM za¨_$~ ƒWjÔˆHÅx®¶ë3i6ÚVî»c•F Ke¼Z÷y€ùÏÂ=ø™8×+=ß-¶Ý7ïzÇ+Î’×K?BIùŸÝØžg?¡«ûÃBžÎ‚N$-5Nlê•£yà µbžq~Aã2ˆ¿)¬‡èŒq\dœmà, bÄQga]Ìœ")Ã<^Ðó£йœšÌ´|4.ƒ©kǹ{òØéTw]3²“$iðϾñRœÚ®­šÇÆ“Y’´d2/m>…Wý¼ŸŽMÏét”®BåV³W¥5í¤Ê‘,䛃[á‘ö·L^²f=/âß:×`»j¿{*ÔC7 ÊÃ¥3”5¨ÍÏ™y¤·õà;ðSêZ§6X8H™¹ì €¾Ü[¶KÔÇäaf~Ü$ôv lò [Ní[Ôvx–­¯T—]û=•Ïe˜Br­·‚Cç–ômÄåÄñ`¹C™Iá€=‘M$^áTùRÇ ›óò %IWïÄNïi—úÕg”SÁBR(!1 ~ÇvökvcSÏŽs~EªlsÇÏ¡\94WU}>Gß„XpjiÎâðX+V‚P£Ú·øŠ„‘‰|ÿÀãZgA"‰‚~JAÊá($* LO€,• pœÚd¸õK?ú½„Ä¥°ÒŒ¢$“<äuI•%ažêxª„_¼¥{µ¤Céì§è\½];2i@á«Ê<[¾‹¬å5¼—µmt\ˆg ¨W~4¶Úî—@üÑ}\€ é+3쪶¡gUŒ‰N¨ÔŠëô—žRzÖïëqïyÓ‹’exSÓ­Gë׸~$€%ºûèÀøÂx’´JÑÍßUOþ7JšEP›TôyÈóÆú!þ’¦öé§®8O­ýü#/ë†5>ÂÒsWó,'ÅG2«àx¢•"‘’_wÅAÊê¹"=ˆº?°VIÎK;y¶êŘ•Cã!Âjûp9±Y²hôÅÓÍõ5}å‘¥ô•‡t¦A"ƒ’`ë?­Ü÷AR‰|®I\¥aœeN>lŽ›$G™ TbÉŒ@•9öÍDý]l0Þ9$~ÈÀ_înþ¿ÿ ‰Ð†endstream endobj 943 0 obj 3876 endobj 947 0 obj <> stream xœ­;Ûrì¶‘ïú ¾-µ;¢ $È}K*›Zo­'QUÎñ5Ѹ™!ÇCŽeå#Î?Ø?‘ßK_ r.’Ë›RÕh4¾çû(ML”âŸü®÷w_ý¹ð>zîÒèùîû;CÑü¬÷Ño¤Ì#c¢ÇíÏ3‘·‘/Êèq÷)_šû‡¬(ŸÙøõ¾JªÊÇýq3h¯‰º/Ó$5ÞÄ¿É~^I¿qó~w£?_ôÿvÑìòí`‰]3ŽÍq>¼®;mØø© ß§¡Ù„™m7ŒM½IBÏãK;„-½ÔCZl¶ÙÞÛè̲xÛ¬G] Šûm˜1]m÷,6#ß=þϱÑãÿÞ=þû§xxiš'•)â×v3¾p³¬l\wKËxÓt¬²E<öNHãu< I8ÑÆ?©q½;5ƒ.TÆ[f ÎÈçÓ}üÜòÎ| Kª2/ã¦St>Ú¿7I ùë1`­wCZ°ýÙŠ‹Eõ³¶Ò<Þ5Ýó´µ´šo»ŠwmÇLCv)¤+ `hxŽõ¾Ã´¯"ÆÐ·ƒ]Çþpl뱑άFnQTËÊÃR§ÝÐÍ9ÅÐ9sŠñ‰ pÃÁâ‡FÇLF|Y).?ÝÔ è4†9€`hr’SžaHN•’õKÝ=£¨Nƒo†ÓÓÐ|j:Äkˤ€aØh¼èÖD:v‚î¡,Ò·+'ÑûêÏ ªÒÎ%i•ƒZ?nîˆÑÂßÇÿ[¨~n*Ï`Àž¡É’Ò—FÆñho )’4· ö)Þ´(¥ l b¨ÑLØt ®ŠÛmØN×Àî†úøv_ $¨yr¹¥ÔÃP!´üµ ÏåœçWfB (aÚmÖJ“¢°Ñªè†Mܱ@qµ>=|ÒÏÊMÊRçÊB L£|ûB4@ýAb4ûªÊâ/»iЇ…ÙÑ%ߊ§¡ Èñ9‡l;LíLJf87öö©ÛÄiõñ©›$˼Ñc_ÍxCj® 6´5§[EÚ2ïŸÏŽD÷ísÚ· 'ûÆFò}MòA©Š²ðÊ dXƒ6_ˆI5“ìwE6QBÀoívÒpÅÕÅ}™äÞáCp¶°•²Å¤+I’„¾¯8¼ë<Þ×o$¶:÷Ýî-ØvKr¹QšøËqòûþÞ€¨§ÙBÔ÷h…蘬)“ªÈõ˜à¢:ùMpo` Mé+õz_ã’ixÕù`#÷°-IC%x²ý¾WPÖr@ ËÃv9S< Afq»_4Éh!·„ W.‘,áHˆh­Bm½.ýÔ°_—yU¬KÓ¯@ß~ó×€oÓ7Ch‘ð‡À,üáÐÇûC¡¨2ЬHŒ+Õ¯ýÃép.8Y–øÔ«Ü€çë0ÚlY$¶ðtÚô 6èõ¥]¿Hö;¾ÞŒ½œ{íUÆR«b¾Ò,]\u ¬­†>KGÁq“ ”ñ£‚åäŸõ»©'ªGc«¤‚ñêuøÜ$°òèöóë·à ´©¦ï¡Îó*˜>Ê O,ä*K­›ãX·]DcŠÁD¿k o7D É#„…l6ƒŸZ»0øÌ—}€H$ÊÔ+¾ŒLFê\%9œ -žè›¯÷uÔŸÆÃIŽ8Ùè霪Éo¢î´”@Á¤õèn ˜k}ôúÒMÔA(TîvÑ0ÖÇ1zmÇ—è§}»i&Úë{pniZhDØîê§]Ãûï»ñØïÀ<Ã^DÒ¯ë±í»HøBV¤¸ á™'&ˆ¨÷-ÅÔŸ•lܹAÁ ¸™iÔ³ à·Éc –”ËM%ºFAù•Ø¥´IáÕýà&e•swô©µý‹ƒÑô÷¥"úóéÜØ´”‰ðÏ÷¶ÈÈðvìÒ<3ß“î߯­òÂIF¢èc\<šu»}ó ûÈ!°™&÷…µ‰ñh@ô¼¤b4_ô]æ¨>ÚÍÇÇîìü!ùæ¯0ð¥6Ù¿ãØ®O¨{‚‰íã)nbÀ1r¨± jŒ ÊJA%bàüª3?ÍÎþ»3u*po…ùÕgûÈR¶Ñ&Î|¾_‡BF7… D%ä ?£ þNmÃ<*†ŒÈÿKhü$D:$òÁ5A»ˆ<¼€\âàØ+Q|hÇõËwádyõ/¥Î¢þ(qï¨Ë0Û º]lPIè+°«¹å¤¿ñœBIÛj¸@ƒ榧ƒ4!"¢HæÍà–ÍnÖ¦˜€ËPŒ·cד(Xü{Þ„J”f <¸–õiHI¹ÏÜÒ›U˜õŠ ˆb®–Ôvõ"D¨)žaH!$_S°c е6N)£·€¶e¬¤RÈñ„á-Žþzø 1HR‚_Ñ!¯Cv Ð-«òÿaz+S-…§ð(¢[ÌñH(þÐZ* 6°Ú4ÁÌT)¯È%xÉðv¿?íÆö°k)! ¾©îû`SÌÎÂðI1»¢ˆ0™»B ’©  í/æ2á. Ý4›°" © 0yøþ<# Nq_ÿØîO{ÿ@i&;§ôó}"c P/':YŽL—ÒÔLÈ~¬÷‡]3ƒÃ22Óä6öÝ“+È \99Hœ\A¦p¡ŸùI ŠõC=LÀMêÏöMrÛDÌ„‰vγréˆÌM*ÉdN“®fäÓj™ú{ÞN&ÆI þžÛ6ƲBhÕãu»-kK!v6$í,úƒ.y^Š–ͱ•¢Ç<6:”Qe |Р*’–RÒÂñYŠÀËXŠ,*b+x'N«Š«ÇÓ¬+Uóæ„È}Te!Žáû¨iëTçEâ~ߎcØ7DðÇ~/YQ ±éÌ8Ì LI±A$UŠe)Ïç²]ú”@®¤ô£¡ÞNöOj{Ä `ÀÅþ½…x/ì?‚@„9ï3ZÖ&2€«ÊcåMŠ8Ô*øº¿óLï2¹¡w™ÐÊ å µÀ›úoŠ#“»cüösîüX¥÷6ù‰.qQì\ršnË'UidJ«ÄÁQwý…ËÎ ¡«Êré Ò²ºé ¬ö+8=}ä7ž­Á Ùç0¤Ê!3ÎÎOà5§¡º?áÇïÒŠ1;«¢‡ëÍ…Y7· {™¤™ŸBŒÏqÓò"/S¼óš‰h’wP¬§ê}sÁs§©?®ëã‘ò6ãâ”~‹!âYóE®iÑbÐZPŸ!ÝrНø[¼8 ¾@#’™Q®G²ÇOý8ö{¾Ëœ»ðzˆ^›ÝÁrÓåáä•bàâe©æçâM›é%ÆëæÀÕ9“z*~ê;M¡ÎrµfV¯åy$$ø Îð•²Q]¬Öê\ àƒ3“™X?j;~ '«¢ÍœÔ*êýÔR›As€–Åü& ¡½¾a Æ{:q¼êà·sT3ë. @"PÎsŠfø+:dHÜ/óÄ{?½xÊ0µ’åÊ™C¢ž\^Ħþ›{{ïíÈ4{éJyb%9±Bµ[ykf§†ÊžË‹½ÉÓ¤š]}æËèEû O¸éô k^Ð+Ö• ú‘\bË›xú†ôg[®œ§¤ëRÊOéÂR¼ •*AÔW‰ßT¬Ç0ë6·èîƒæHÙFQ/V‡• pçÈØôaòZ.`ßÍîŽý@>I{2GR/|U¹3mÆakoTXŽí&ä©óAX×ý+¢`¹ÞŽíó ]ØAŽ•—3Ú¥ƒˆ—ïMó¥ãÛ­Œnþj®³2zÖEOE¿DdD”iVñAÌ&¨ÛiB¿²’HëiF@`³,{Th° »M«Š«Æz)žðtVÒ´(šä8–7Í‚K|•R=K‚?hà…$rŠç=“Æ0óví¾ d‰^#ã‚™Úpá•éÈæDeK¢Ì9Ž,%/Ïh%»Póv%ßFrÇé3ËÊÄo—Å!_ß³_¬ªËšÃ{ªª•c’Ô—!K¤ûRz2ÔÈ' –f¯pø!;ìÂÁ¿àÛ>WgZÐÁ¶[Ã! Š7“(#)fÔàS|z×+#–<Ðr‘ °Ê€" {œBU…7G:Ü mXY}ZMǺíw»^ „ÉÁyd|ÕDߺõûÙÈvL3Ðò|/Ò{[i•ÿk¡Søª‹Éñ¤«‰ºÅúáUádFŠ”—›)ùÅVó;º ýôž„^I„Œ»ÂŠ­¾ÁwcÓ{ ËB­â}á!®ó*ü•pͧI¦zñnI,Kòê—¼C^…¥‘raÔŒ1ÄÔ’·ì 1v@?§ý²F­#üšEv¸ù¶*÷øZ-KlÁ)ªZZˆ\5½ÆŒ]*[^¹Væù´×o¿ùkt¼ç+ep¡Û†n4ݺ‰@-×Ç–2èsŒ/ópýÿz¼ûüý~×B‘endstream endobj 948 0 obj 4435 endobj 959 0 obj <> stream xœ:[’ä6rÿ} F¬#ÌZwS|­¿$…+ï®Ã^uÄ~ÌÈV«‹Y"YÓ꽃u‡™KøzÎ'ÀzŒäèf™‰D"‘/ÔOÑ:1ÑÿäÿöøðÕ_ó¢ˆ^¦‡uôòðÓƒ¡éHþmÑ7ψRf‘1ÑóþéLT¤Q‘—Ñóñá]<7SóÓ¹éçÕSšg‰-²øT¿4S"pžÅßÇfnͤCeÜzô*nu<‹G`ÕŽÍN'Óxt²‚µN§±™½p´R€M½kûwe\Ïz>4 Vs=.æ†}­V†yÜ7«4‹_ÞqX™,Y¯m\—TeVÆÍvÿ¸úáùßL=ÿùáù÷ïâý0Yf’ÌÙ¸a\PÍÏõñÔ52“›¸ÝË7pD /¯â7E±q=*¾«âMTÐÅç‰t…PæXW4g0¶t$:uhÂ\_› ܰÿÚ—7«Â±~ý‚vNX®ÐÔÛƒB%_ÀçÙ‚mëž”ŠêÜ4Ñnè›hóÕ;<ä–‹>¬*ʯaÔÜ+VH7Œ»èS?à"bŸ£y JbüÕ_ ãĶSôiöý¼³~×7¯¸ÿu²6¹Ãýã—Kyÿ?y¸R¯ %v`ÅÛ¹]¥0^³Tàtmk…øÉ®‹¤tEô”šd]™™ˆiÁèb?¬ž¼Xý ìŽiÓ”`MÚÔ¢e<œævèvpžiV€T«ß™Ø‘UyüÚÎewdÔ™‚f†óV ÃWàÝdžÆ¯(÷ç@É¢ü³#àÕIýÁk¼™M³'vô¸­ ‰‡¾{ «âUâ‰ìR‹uVNcq.OÞØÄÄs¥Ìâz;ŸëWÂë’ó˜£râepNo©Ü™aàXjeoýðo‡¦Ðo©Sej¿°•ål¼š),í=3¨ß ÙíRv{_öÌ»_„ ’ ’WW}NÁÿ[°Ò2¥Ñ'ðŸÏ2Ó ‚=["W9§S³mëNçJ@fr‰LiÈ ò¤š6S’CdëfD¾8éÔ^˜ª«'•ÄXÙ#A¤¿Î’ÂÒ¶Ù9Öå¼'YXá%à.FàÝP Í¢‹CW1öXýã…«ðýž“”]TòÿöiV&¦ÌÁ+§ñüåoT[à"$ é͵35i™¤™:C’‰ÝŸ×µÍÒd»Ri¦fž%ÒÁ2`uOQ2\ÓË nêtOÃÄq„ç¿›§ íG¼ýuwnÂ<ù?ž§ (&½i%äÍÛš;ÆSƒ{z2å:±&‹PÛ´o×74Q%ed,*Á®“,-+Í!ò¤Œþ8Œí߇~®»¨îwÑÇÔ`0À8“v Ã?ž§¹ýe[“‹¿V+¢šµçøLF»NÉ;I Ä0Ƀx¥?-Ù}ãNˆÐG šÉI-ô]tSñíâíÔøSdJoa' «´ðó(éÚÊ÷®™¶c»i”™^6™f¹sÈê·°ÞRŒ×C‹YOeAª,îÚ¾ ÝgÙÆÜøÓYÊ%n,$võ8Öý §¨ëÄe†‚a+NÛ9Èé468HG6ùßÕc+ 1 Znö³2ÈcVy³û¬d8ˆºW.´s¨=~ü4¼#FDë¥M”ñKè«øP*0òùä ê—Faâæ @XÃÅHûtóó½Ù½4Ãó*Iá§±}9ÌC"¾ØYÝb´Š­¦…ß  ”±R”±ì­¤ÊŠmƒ$aY½t(l¢Œâïöaf3P‚#´в ,`ñ»û ƒ\¾§´À3Ñ”½`sКæQçE·‚+çGäÜg:"-ÙÑ D¾ylæí O†(#Àd•.Wsž­ÿ.â_È6 ¶o,?CŽC Ž0Þ4ókÓôw†C¹´hFx¦Ð¯ê ç\d ×Ë€¡@NŸ˜Üý¶9ÍŠ(E~CÀü´ð”#y9å¡—Eüӣ޳s&V¥^^JS2™Cu«x µ°j¤óu¥@rœˆ…ÈYx€å˜»ß¬õw–Å»¸eEì!×àsˆ~é:0—Í–‚, êšzE^nÒG¬~6]݈¦S½m¢z¦„ŒyŽT|”gŸõ(NŸK¼¥_æA2»vûà©=¶]=†8®©Ý5#©}Òq°ôÓ '§ø–ÅÊÏ€j‚À ‰ÿ‚ýìì¨lPWõ‡ O*N‰OìRÁ”ŽLÑi&Wú߇ñH {ŽÅØY‰K “ô œû£ ¨.¯ΗœöÐtñ€µ%;ÏÈé2‘½]r}mwó!L_¸GpÃg ò]1 lò¥¤°úv[O|Êä•ÓO¼È¿ÉÁ:4‰" ä Yh’>Ê»ñÛZª¤ÏÝ.uÃðA!¶BÅ/€>‹òH—¾‹"Kü¥ÅŠ…`Iò¨ì°\9 㜒ïÙ2Õèèp=»ù>ëa?£nì!WŸ¦Ú¯RQÑà‹¹ßrØýªš ¤ñoâ"&¡˜ùv•8‘z§b¾ª ¢oçë]º%w¥å½Ðê&ö,ÝljZ:Œ_A$£ÆV& ~ÇæÒ‡å↠A™¯F 4%—ºl¿ Xøú¦Œ„OGåßÁgª<†–"AÔ‘éÝqêŒç.œz¢yüÍ›¢`R¸§nOWª>w󣢕rð=áïîb½éؾqìéò® ͽÆBr_–ÒÑa÷o×%•µIYž án aQ UÀ¤2‚ðNØÜ–fΤl¨.HéEuÖPTTQ€ñ Œ•v8оÕ4€Û8*d9ѦïœÒñqè”ß]vq(‚b çÌ‚.¶CP©•²àñÑ`¯ùJ……¨sƒß†«KJÂÐóÓAó›‡Óbg +d¼7å«[VRUÆTA]Ÿ„J[:­;ùf ÛÒ¥î.Û¼ÀTä~³Ï^ÔyDo÷Ía/$ÚŸGôîѾk|“àçvÓvíüaŸÂ9j3êê74·…⓱eâªèÉWŒ(HžTÑŸ€a, o´gl¾DSûÒ×óŠÚ{Ubá*@ÿ$—‹Æ5UZŽsÁˆÇÀÉó­Ãh€ š_¸>DtȤBUsÏÅli ˜ª¥ò®"Ï.3û ]Z¯ÌÞ’=/Ù×úiÄs‘tå·[H^Ä5‰·Pj@ºEWPÈqª\Ì J¨´¢hò n Ø"§–üi˜¦vC1F ½T<-{¼n›u™¤VýÄñÚ?€Ö ùœXßᜲ£¶ß/u êÏÉ×±í)œ#™ß]åçb©‰RYQqKˆË–[,4xRÌK… ñûøf£ÔÌõFþîz£yâ¯ÕûU`6œ]oÛÜy±eqÊJbžUZªi¯ò,…ÔÜ',4…>&œI0‡³§·¥hÒQ‹è¸éÂXn¨ŽÀO™û®Ö•ð¥¥WÂt‰´ާ3éGÌÝ“Ú Pëf¬6hÉê– £‹¥‹I)"ÈaC ëîGH®ûÙÇtîó­©±&Ì ˆßEI-]àÂÜ,ï0$ðôè¥g†@ïàF×£À€ŽN%0¼c8¦*gô†üïÎcàËBþƾUÀ¯)Ÿy.„ƒ| KÜâÞÙ!ëWµ±ðˆºy¶Cr§©.O¦š²— ¦ú}Cþ3£n²t»€ª*å¾CZЇâ2Yé˜Ó¬cGÈã»vÚž§)àZ+}/ø†Xñ%—ŒÔîÊ×gÔù®÷â5‘¤¹cÝOàõZ”ç1, €ð¹›aåeb3£ÇF z”&nÞn¹M²Ê£ú€‹Q®¸HŽX¿`(˜¥ª_´'ûàCeñ$Ï1p²9ýÓ‡ký4„ø2†ÕûUjŽêˆ+# Ñ­~ÃúœdǺ¼ú'µ~ž¬ÒµY¨v†“ÂEL bsw¿¾É73ØN‹¾ŽŽõpî¼·Å{¢o?ÇÛßÝ“+&ßFtÏ#Ž¿Âê››KwÅé›ýÝoËôí_~S$/Ì>‹²:ÞÅÏ+K­c¸Öè~ð”KôS #¥“_K Ž€Ô,’&q”5xòæTccƒH…Ïüê¯Å0ûóqÓŒS`#]‚¨½¥SWO‡$Pþ+€Í©Àf¹ìÂYóïýÊ©4>© •—¶îënþ;:sÈa3ða •D@HÙøýW‚Âðd ³ý „TåÇvÖÖ#H°ây‰5†~eáßS7—÷AY) C|ôÓùÅ‚JÕ¾3©BËk"Ë\·ሣ™5a "y¼Nw# b«Dõq"6ñk<'sÿ»z*ÜL¨âÇ’rýLè yö¡ªB«Äo¯íºÂœÏøêŸ#³µUü ‚ÿ‘TØ4Ù?+ÿO˜ÀºhQÕÓÈ3oAþ¥ ;´®ÒõÔyâ$†öëß‚êDÊʯž™{´êÍ*¥€ÜʲÄ8rf|ëA}Z|UYT’—uh·ÓÿëZ{š%&ä¬ {op}TvådúÅ£*“l](ϯo ÊÈÒÞ•]c ‚Z»–EJ(;ÆÆÿ(a¡’ÏŠoðìÙ}ùì!•ׯŠ~‘~•àª]!£á-[Ö’Ãc XM ù·Oñ>m—K°òAB–½ÎóR4Ñ¿>NÒëÌjLýï_?Î\ýq~ vT9¸0¥º„²à t^~¿B@*$øm垌šh ùyžä¼œh*qK:Ur®¢“9|O°Ïvú\y4§ÊøP/¾4$d嵩ÿj…äì,…âxîæöÔ½ñÝM–B‰©òZ‹dü{5ú†ªj2Ss~¡oa$„¼Z@…ÁÙ"ÍØ%Z¦¯éS ‹98ûfË­zž½ä Fý2Ðc«4¼Ý¿ÞmJŽ+·¦òšvv% ÛB CСE“;Ü ƒ¯[€OáûErÅü¢ÏL­FİèAÎX«èD=†Ÿg ¸Fi¦ÒŸ=y–ei ÒÞ”À<‘/ÓßßDÔ&© ¿… Ms­ œpñ Ü%“þ†}‡ ^ùá¼ÈGÀýù5©—M51ƒû+!Ú4 µG©ÅÓ5nñ+ˆ¶oéá…’~(œkd©0Ö_tí¢_{œu äqÀg™YÉ ù-}ó»q)È©}NâQ‡+ß³¹8üÍ]•úSÀ„ë&+Mª,½>¿¬ß 'k:~ny4¼µŠfi_˜cÓ(è®ôtŸí3C~ -)Áû–5Ž—©¸ã‰[ qUåý·3²ÑJu~Çd¡ƒÄ1=æh P»ì ­múmñÏ3èw|Ñû8¿"þåùá?áïÿÿGþendstream endobj 960 0 obj 4078 endobj 964 0 obj <> stream xœ½kã¶ñûþ !H¹YëDQ²ßrÍ]sE‹>²@>ÜæƒÖ–×JlɱäÛlPô'Ühig†3¤üØÍåp(‡ÕÃáp8oú§(MT”â?þ»Ø^½øgYUÑýp•F÷W?])šŽøÏb½¼ASDJE7«+·NEUU¥‰n¶Woã›u³ofó̦Ižë¸ö@÷»±í»A&U¼ê÷ è*»Ý¾†¶»çÁ²ˆÇu€Ý¾íÆ0]”q¿’õ6Ûíwhï»z<AÁÎãz óïfY̵ýÁólêE3\ËŠ,®»¥ÌVÄË÷7 T*g äi‘h›n–WŽAâãæ‡#AÍo®2Ä|/Û}³ÛY–'ÖføQðe Ã!tž%ijãEÝ1 â»Éøah–ÅcÐÐñ°kíêQÐÑ4ñÏõbÜL&Ö=žþA–fñ¢ÙuÛÉ€S¦§ÂtìTîbBÅló©œ8še"«øµ?%Þ¼Œ6~ôçz»Û4×$f”Ô_®n~ÿ66/L¢ˆîšˆIFõé/õ—Ù sõû¨ï6Q¡îÀòhSïgÊí,¾o¢î°½kö'Ú#S  ¹‘^‚Œ2S%%\ý²YÍ,pe+ׇÍxÍS t ØìÛE½‘!%ʇPv¢|„aÙÁŠdx@k¸Q§×´¹bµ'ä<¾ë7Ë­únLøMO*d²,~hÜg^Lµi?ËÓxÂü%-ÖU–¥vZü–³ ;Ö`?^ô.®Åbµ_7õÙ¥ŸçªHT©>PÑó4O”aEw@E$NÓDZFŸU”ÝÍ™ØSQoÆfк3(5Ý4 KÞøMU\/—-z§kÙBÇíêLP™) Я˜{n“´P™È³˜h™Ó®Ã¶tѲa×ï·¨T2‰W='æZ‰- k¼X×Ý=ȹdð •:§ ‰¾¡Ù¶cß9®q¬ÔñWü‰–t|SŽBÉ2"Íb& ðbfPÄL K€vqû NE8˜JÛ6P©”˜·Av{ÐÞµuØê¢ÑCRZ–’›ÍÇóŒ¼6Aß:óÎ %„›¶k²\®^ó€å’ó?´ãÚÕK†‚¢ó 4©¼ã¹÷›ÉÜÝcØàÒ)2!ÆT|Š 9Ïg˜’;ÒÂ<ÏY, ÜÌ ­„€¥ã#¥yºyg‡4_Oœb0£½©d¶¤¼ðÉtŽ\†IŸ©uÕ(ÙsX€WÖâ¾¼TÎ|X‘a̰"–$}³’ýU¼í]S¢¤¬¸cÈ`µ#SÖœZ„[a&ß¹$$œ×²¨”–…#ÇuT Â^Á…?$'Ú´H°ç”ò°=l\ír|k¾^-¼±“ËÉJ𥠺2ð?†XçHÁβÄש8V•”úy((7°& &“qk :Áb'àÀž 5]x²ÂÌdüNV@ÌôÇXNø\÷‡Í2¬ øVŒM@¯>Á%¶#[ƒñl¸…²‰â“ÁAù”ˆ~Dt”‰â¸É§ÉaBÒÝ1QÅm+¤¬sKMü€}[‚«9)7”“óŽß­›îÜ-X åþ‡X@‰‰ÃQé)'å®sA™°”C†Û溳ÀæÚÄò]‹ð´NŒ~.óCØ[3 ehnÕÓ§µÕq߉–hÖ(ÁXõ›MïMìA6’`à™sDØÕmÔMBç*8`ÏžªÊ4Ôg¬¶ˆ %røÁL¹_~ù7Þ¿JÊÿã ¤|G`B®øwÿš}q•'x›Óé£<ò­<-£9­Á ßÖ?¸.­ãH|_•kV(?òÒú؈i>‹ûÃè,•p V wê›-Œ™K}ë§óxía ä¬ËdõŦ–¦³/øKx#qóxžûCÇ7Ô»B W&± Óš\’å(”å¶<½$(ýœPåV,ÝÊïàV¦| VFáXÇÇ]ã‚;nÚ¿A”¦Œ¾=oZ&aê+YáSD7cIáÜT(ýyêLyAw‡€íL€<®7C/<* ~Ã)¿ö¿6ƒÈo˜¹sµ,\ô!rE‰]c &‘Õ$­óêyµI¢ªÐ±A16Ѧƨ°‹Fö‡á<æ¾7 öG.¨ä†+¨§*¥~å†Ï¯VÁ|™ÙÉÕ²yUº‚tl¸­—Q¿¢–¹xTʥ◳¹--<͸\ò= Ãæ†?™ß¨°N3öÜoä`ê`¢ñg³y‘A0àëS{Q9„¤<ûx{ÉŠ©½ðÖØ†TÝ‹äõ‰H Sez¶ë'‰Irƒ¬É™ ùÿˆä«3µ†=•ýµÆý¦jÝvtÔ²²ÏÕ¼t‚8)a)àÕüT#`ÛMW·Ô×¥]¹ß#s—SY;Éee²I¡ÉfIEB‚ôªñsÍ>ª‹v u4œŸ©Ü»ÕØC¥ÖŽ¡t±¦Ê27ÌWj÷i!”bÊKZ eZ¸9LãJFaáÓ…™ÀÕµ¨&Õ!Ì?´†la{㫽iÝ7 WË29n&Èj—Û¹I{!W’™z5bÒæNà;®ó“2xð­Ú2‡‚…³=ëýwÁùa¨ ù»*]E‰ß9Ôåã¾å_f5}mÂ;ËÝk--À|üb@mº+;0™Tv<ýŸE}@†‘–çp¢&ÿ•Ñ’ÓPF!îÁ„p('ᦥØê½Ö½Ïue°cyÔíIx¸Èä-«rÀïR‘.¸qi2Œ5P¾å·-{\{:yÎ+d—ûÐŽåZ/׿NðÜÅ*ÈèDÛÓvâyÖeÔ©~Ž^™ñŒÏµ#Xî¾?ܯ¡Ü‹êˆÚAG¯_òÖ>×ÿÅ_)¨Âô&0þ1”9ZxKXƒä¸ÿ°ŒºzÛ gÞ .þ¨i¦ƒ*+åV5öÛzÄ_vNÓðQûÞ-·ˆzÚÕ¹råáOÖO<ÍoK¸M/à(Ë!m»ð ® õ9Õeüó†ùa? ÙÄ„„gKƒé¬Ûfú&wéYÈÑÝŸo87J¿Ž¸¤:ýµAD±däÛ´»"¬m··g=x¥Iôޤ~ñ²ñ$ÅâH¹¸ýÙ·`ýc¿bR¯>ÿìLc±LSœ1à»TV¥ÔpÆEV“Ö’¡vSüðèVÅr(1¡p*­Á¼L8Õ«ÏÏÞÎÐÁ5íºUªÜЯʖ<’»'aà,›Ô ËíG'þf3JO2q—8n,ýŒÀþ¤»Mìé#æÇúG÷»$^BG‘iö>27=Ök.Hs5tp)œ›Ty’Zì1ºÏêü•‡Mål ¾æ/3ùÖ샧„{£6C¯›Å˜9Öíf‚j¶a'r l½B8wëÆÚn±9,–=• •xhŸ¾Øûˆäü¢é7:÷í%cíІ†~ïÛÌÏY9ÕÀò6zÓ-Úö¿Oê5ïy]«²0ôã|!]žýnêŽÜ¤’e·ŽîY©…­˜Â5Ÿ‰¶a‰xj<²@:¾o}ÿezRFà9ä§—®ü\ ¬à´‚æ!¥Ûíšz/ŒÌ¿Vô$ð„Ñ"~¿&kïê=Ü4£Ïœô˜Q(Þ]j’ÿBSè¿=rk<Ã_†3oèÌIN.3 6›zï‘+ ^›,Źþœ~Š$®??•øYÀí!c”)ßOÌÜ/ëÜO5Üš!üR”G8ò9`òšÂ„å÷HJÂ[îÖ(×î0&GÙ‡s›®÷’ºh…±jÔ$·¡ŽÍ3ÖP¯Æ˜TI4rh?Ó%ªŠUãtÞ–àö-åuÑm\ÞÎh×W7Wÿ€ÿï®U(endstream endobj 965 0 obj 3825 endobj 969 0 obj <> stream xœ½íŽã¶ñÿ>›8º]«¦¾UE“CH‘ib ?v¯€lÓkeeÉ‘äÛs‘g¸wÈ=Aû†/в÷ãÒ?½v9äÌp8œOê~V‹À¨þÈßõþêÏß§Y¦îú«…º»úùÊв’?ë½úr (Y‘¨F’kw‚E¡‡Ö‰Rè_«fc›á£“;'áÆåŸÚªñ¢ÃIX$Ô@¸0 ’G…ó¢l Ó0Xä \²LmcJž $q¡µÜYU5‡ã ª^•½Ú¶uÝÎÂD?ôqЉ"§˜X¯Ðr¼bHÊp,!Ó¹Åw‚cߺ²iatoOꪽU¯UÓ®wv}ÿãÍêu3tvU[A+ÿÀxë·êûõ«Í+õ âÝØfCl‰JvÕ`›¶{‰ÿëÛÛoÿt{ûÒ._•²É¹ež÷F½E/‚(ËuÙÈ85ºjÖÕ¡ÜD¤ÙzaœDº³?Á6n&‡[p˜!ÞˆPŸ3ØnæÒXh¹mêÓ,MÀ£ܱضßMœ%_ÑÄÒ`˜ƒƒTÍ0B¥ßÌ«¶ž×;’¦ƒj«µ €˜Ä 82êý‰Ê2ò'Ç™¦4â@˜ÑbÝÛCÙ•ƒõ„¿îÛ™¡X–Nma °ÿxí¸ä#åf²çéQb !cÇù˜±oû°oß7Ï õYW dËÄmâ00aìÈO³ãšÇPŸ¤&òÞ9ê9Žrˆ–±v ãË ˜+ FLŽe×Õ<&Ïú˜¬7Ýú ˜ êµÇm<Ý£:¯ÍÖñ˜b5v÷½Ç~þ~ÜVᙌ]u·ó~"#øh¢ €u¯wIqÊå$'Îh -Ö²– ïuéò#ù±³rYèíº¹¥ Ç©‡¸sÉê8NAkÈ¥¸qnbpãG!=‹¡X–€–Æ6uÎchëÒÔY”䈮]LÊpĤ0¯lÔÐ*l­àª9îW¶Sí˶¦ÊA•U”½jíC×ÊŒ%Ér抾Qi^W•§n7KX*ÀðÜ÷ƒÚÎÀâ ’¡ì y§áȃâĆ #ÀÔÙvCïg8| ‡œ-yÅpÜ–q)Cð>¥ÀQ8A ! n9B½¿µ{4ÑŒÂ^;8Ñm7ât°[ ÌX'd­¼1c3•0Ô;JgÂÔL&Ë¢AP¶£[¼Ç$Ò_°Ò¸úEaŒ†;‡åÌD½qŠzܸh³)»_Þ¶Çέ‡úVwí¾l®Ý:f¬²®Ön´µjkGöº“œy$ËÄ£„Ç9 s¼ØÑTÆX Y¡ä'ãÒ ÑŸöÀÔ/áÕOö–ËnãBÄÆj …RÐ@MÇ ‚6©jdaÔ?Y­›Ä<ɘƙ£Ý2·ÿuãù–›M…‘ãÚMb2†$fAîðÝxÝÖósѰ¨½gAÎîPWÖ/l쇆™ÀXdŽûî¬ß.=T•GZNÔåý"ý",r0ÆTC½ºéD·Øº¥Gú£i0ë[é"ˆÂ¸.ªßFƒ\¡IíêòäC=‚·cs)L qëþvæ§l¹Þy9wOVŸ~¯Ò7ìÌÔê–ÇÚ‰žppò…ÎÖd ïÉñƒtÕMÕ÷lqÝSÞ•ÍÅàÚ[î’é–)øvÞq°^(Kی̠7|€¡šro?ÝC“w_&BP~E´;£yVsÀsɃ}øEFŒòINžáC¥¡B ug˜éåQ/¹þ‰õoTBÎKì哜8ô¼Äˆ0ˆÏµ‚ ýžê«ÙõXÝýÏ|·Çºþ$cû~èÊK®€É\Õç²T8ÚÚJh.eý‘±%Áx¹…P“%Tþ¡pŸ»:`d•ÂÇaø[X ;%8%Jìmdn¢8È ¬|\]Ü0¸ñ©ÇJ JˆAcY?ÀÉ%è%ø2<ªSâE`FùnôΖÎÞPàc úâ›!cÊ&8†÷H/¢ä@¬Ræžhòî²ðUÁ-<ì* yt¹A¨e×-’þ@*ÏEg»PüñèS)}©A=›ÉÛÁ´öp‰Ù®åÅä•Âßk­´q&t£—³s¨¶{¤d(( _ÚBªªèÁÙÃù©v£q1ÁŒã¯¬¥N³$”Ôc„Vœ—XNpÈ~ü:@Ù“§€-ƒ4sÑ?<"hã²t´©2D@/>9=i[f¸ìe‰k7¬ÈΆÞ}Gå—kl"°‰Œ¸Ùjeœ¸Î:¢æòWÜ}oñ ¡ÿèPRý¡v8Э:im4¤3œÚmwr iN¬ppÛîŒ$ JP:ú¬jSÕA5²±ºEŒ‰¤ž:XyB<9g1Ö¸õiL¿’øcl.¡B)«º\ѱ“˜…ú»¶~XwÕa¹Ø—YbÚéFü‚ª¾º"‹l~Kaä‚®ß×òˆ *á­ŸÛòÔýYHcì­?è&eÌmƒìæ*BÓÄ7&Ÿó®°3p’ƒBÜ`|+] %Õ½‘áÊTŠ@yÀÇ­®â7œL./‰0#wI„"wŠczÇ…‹!Qx6ØûíÆ­hï#…“êþq?¼èÎF—b+ÅW:/Îe I òŽæü[IÛÉûvŽgN2+Ù5“<õÜ ý´±ñ õüÍe0ø.=¾õ@·½‡új£°‹Wí[¬ëè=f{RPz¹Ž¡¬Õ(§zÀÊK?çq'µ/Oj…¥”È$:Þ >fê>naIšA ˜D®ë!0Ê\ÛD‹1F q2zÌ…ÃÐr*Ïï4Åxëme†O5Ò¼ftgëÓ"^q–_ã„*”%hÓ^ÙuÉ¡L ã¹ÒGç‚rºƒÄÝ€ÌAÉ]·í½ohÛÉR)Ÿ@ w¾h¯¶ãÃGY·Í]_mà¤Ì ç+,¢¨ðƒD©-àR9u ·ÒQ=â¼ÀF¹þ^á£| 7ØÝ÷3ÖÉ Êäñ$RoZæ:›£–‹Z¨ÞÐbÕ᳂`R=ÔÖŸSÃo¡ø7TРŸ©±DAG0çÏòpjú8§Õ ‚Ê™¥ÒIé \kê Óâ·#:½¼LŸ©ëÔ@©¤Zz¦eáïÒ‚£L¢>ûåð Ð^ù™Š>gx"±ø(â&ߪÊ&O?²z«M‚ #Ã…{íyƸô%ÔÃȸÏë?]yÚÖÏ®„Ð,2-6åÐä 1K@Ñ$s²)‡IZö˜Kî6;‘EûAÝwì(Eœ?áÛ6„Hq‹¸È È2NàWDR-×î&87ѸÀÏ ô„Èf1ú&cRƒ!ûÉG—qiW¬#ã÷:ÇB,CéBçnQŒ—\Å2‘Ô¼V€¨»™¬õ¡èƒ;TôÚ§ÅI4–÷…k5~$P[è–)ì!w²Cp¼¬{õ¾.Á+¥-7!´ þo.jöê*„C»árG]¶R–$cÚBífPR‚¯À‰mMñÆöTÂ`J¹Õ)˜5îúÕòêðó_AYFàendstream endobj 970 0 obj 3435 endobj 973 0 obj <> stream xœZÝrܶ¾×S`rn+Ñÿ‘^¹™tÆdšVÊø"êL)ÚeÌ%7$7²2y…øì'è]_¯ç‡ %%m<ó8?88?°þQE¡Vþq×Ç‹WÿÈ‹Bí§‹Hí/~¼Ð4­Ü_õQýù–I¢´V7÷̧U™ª"/ÕÍñ"8تiû½ÒÙ+&¯€õ³_®‡¾šÛ¾úL%ÑîæÔRfNÄ•ŽÕ•6a^h£nš‹ïƒ›ƒÝ]ÅEFE|§™)AÕ4íÜ‚´NÆÊ ?ïìè9ÚÉ}—:¨dY†±ýyègaÅ¥Ó<Ú¹>€¹~Ýý΄¦,2PVÏÃJî|¨Ö–t³MÌŠÑ¥ ªédëYX³`„ÝŽ4e0Üûï ß=Ø ¼Y-kçÝ?oþz¾ºùúâæß»]¦¤{?Újf¤d˜Ú»i“Co/U䢧F;»Ùíç ²ADçAu:Ùj]&˜À³_\õÏÍŽ4hクvá5«äAg§ÉK]™b׿kóSg]Õ׫1«£$€ÃîÈoè1¶5/CcPLÛ£§s\¯ƒ 7a„§ëW:¸ EÝ£¬ ŽÕ;ܺÉÓ,°Ó2Ü2_Ð Ã;'AÃV«q§ {:4\ §øÐ·á<Ë@œ§Mç“H†ëw:…EY<úÑã0Z¿þ§e‰綦¸§©$˜NUmCòŒKÅ(Ìã Ó1SHG`Œ1=1ü·Ó%Ÿ›í«¯NCÛÏ }£` ·`»•Ë'Û¨~U=O`“mX•5X»’G”ªÜäažX8Hy&ɲßÐãå¯ÏAÝ=*Ƭ$ ‹gJÊ$4‘WÂjJ‡ñ²oø3=QXnü¶©‚E¬ò7”³..dyêj­Ž@ !*6¥ŒÖøJFdÁ¡L߆#>±jA‰]hðHÕï;J¤¡Zm5G+Ú ÒÚÞÏ6–#£ÄÂa§PfÒàÍìb k?X1¡ˆ]ê9!¤Ò“wv~°¶_’Ö&QI‘8g¢(ê_ŠK^h8Eið@õv¡ì¸ÈÈ8•=ôJB{Y,kìÚ÷AZtA¾pL+3K©¾ ɲïážPW'Ø´Äà€ÏˆRzX[RÔKLJ5mfYdÁpÛ ±@bqæì‰KX]À¦i¿\¨U…ÿwÓ ðnàwŠÎ«fšuµQ-%î ¼š£µV¨p¥€[×Ç/p¨äYi|ƒ©b²0cÌ+lä± ºyÒx Í­oìØUn$KÕ蹆%×ueµÜxxDZ¶È±Å±›ÁGØÍŸÕ¶,,ÊȈ_M¨ãÛÝ¥XÁȘ´-(N”cƒZV­ž+x>Þt"Ë\åÄo¬y®щi“†Y‘øzç»Rî“;[ŠåçaŒþަW@w©šÜˆIÜë%Ö¦5±âƦL˜ˆôŧ1'ç®z¡y˜"ÌKÉ‹_ž:Ø„e¤M&žìøCR”/&âòà-˜ì |7[±yk^¯°¥K™ƒcÛ4ÝjÍjÿ‡8; ÓÒxgƒ¶™¢ËAf@Ë¡zÓy ÆÂ­„…²ªf®:30#o…Ÿé寇—pãV~Û€Ä!ƒæŒ ÅšvÉáŸÚæ\uŠÞd–K'ÞüJ:/N¡Vßõ-´Hì¾QßÝüåªTÖõ„§Á0BšÂøæ†1+4¿¨Ñ76Ç ß, às¶õ¡Ç`eM|×óË´“÷8œÝ7ôÒÞ ŠAŸ[õ®ÇŠØ~1ê‹ÈÔœU4áNÝ­j¬=‰<¼åÌUÛM/³mqŽï¦àØý%·™ ØÈd!_•è4wÕ½ Ñt´ûž^z–ïÄ÷®,YZ&÷C'%ß餈BwbÔ /§ßµ'G±ùÓøƒ6Š…Äs.eÐ7ŸTÇ€Sâ}E½§Á¹’µ–«´oKÚµ%xfžßÌSèQ!i~»s½ ¹ú<0œ‚öæÊ˜[¾”2†ÒE8A¾ð-ôóëzlLðªtA`H…˜è…wè—Œ{.í~ ÀݦH“ ã~`ªò˱P'ƒK$¿Ú´Ĉõ‹‡Þ+ªü'>™ŸAÉ'~ÖÊû0(ß‘Ku¯^0ïØ<%Z áî|ƒß)–`BMBŠèeñúšJ# Ä ½"•¥ò"F{oG~`tË9Yyq5ùñ××_¾y#‚ %釀–^neÈdî»Øô?Ùì- èº;7ü<_æôàL?·PÏKD¹`i^€z¡¢ís™¬èÚeYÛÝ@$±Ÿä¾àDé8¿ôSdÚÔ.¹º*á¡ç³XlÃ>3®4s—*À^_DÝ–ñW›( c€É«U¸—üÎryƒç‰gÁ’,,+ø¼5y~®Ð, q¡-T_® {Ë%ß r;4]ºCà)ž+V¬Õ¸ØXº1™â‹…Ó‡):ˆ;Ô¹§Jæ#d:×Äð{ËÙó€Ýðu¸Ð4íl?…ж©Üo»Ø˜{FŠí‡YÑ3>{S¦È]a{H÷£Û]ß0d’¬5ÜQOv8Ñ/HÃ~±›Ñ¶Îå·D¢èWêJxá1XN²½wÊ‚ÊëLÉz¨‹áçËÏ‚¢¼v'Lâ2ùí‡$–üþ×\z|Æm»áÄÖ¸G¿ :Âçy %Jå›ë¿]•ef®žõð ÷–þ˜%:YZƒ R“ñN]Ê-;%•é&×iŒý3õQ¦ ¦> 3ß•B.‰ÌTî.½D˜užÄœXn¯ŽÀÛ¦XãoŠ=Cn'Þï1ÖîÄøj†-ÝÒm£_]2ézyÜ-—%|û£QL±†ã¥/‡ÍQµŸí€B ¿ótS’X°Üü‰’“mOÒRÈûò×z˜7÷faéã0‰!T@KÊ©r•Á³6l¦³X*#Çwçaœ;TŠßP'—Ô~þ6øø5þûý‰/n8\@iëƒ,Ò‚¦eþ): QÎ@·‚ѧãç·4ê’8b¶ÀÁ-â :v‚"nâí®ŒøE; ÿ|u¸Jôª«úý¹Ú#âÿü"–]ðõE †pHÍrY Òôé»\u–-Oß~óV;3ÈiPáA„Iñ±ÜBeœGAÙU·A~»#c¾º¹ø;üù/w”Ëendstream endobj 974 0 obj 3650 endobj 979 0 obj <> stream xœ…Ë’ä8ñÞ_¡.¨öZ~N» C@°0 {Øáà®rw™)Ûµ¶kzû#v>‚Ÿà÷ȧ$×4AÔ¡”Ê””JåK)ÿh’Øšòî¾ú[YUæy¹KÌóÝw–ÐFþƒùæIêÂXkžîxœ5Ujª²6ÃÝÑ7ÝÓ4w»û,ÉâºÉ¢¹;wí"Mb£<¶É^Á2úîÏß+qõãÚÍ—¹[»£R¤Q×Nz|]u²4‡~¦V›y$¶ˆ“$+£ŸVO½¬s?>{¸]té*½Ñ¹ó¨Ã©Ûp¶Ëš¸iò* øé×S0£G|Ú¥EÔž¯[nÿùðÇ;›š‡?Ý=üò‡h=!¶ÈpÖhnÇgó(ù9-Š˜Úqb³è;k JiÂEÆÔytî–Å“­§vTÈF6­=꥛;…ª9cgR³4¨G_¿ÿí»w{]d;ýÄng‹' ƒ ᮊpW¶¤}‘ p÷ÌSZqÁ¨öãÅ[eÔÚ=ÍÓà€wïÿr_×Esoc×÷~tØçô$í4e>2M} KýèñbašÁ%ù³-]ÒÞp¾\w6gÍøD­º¨£n&éQ6ágoÇ~í§±=;Q8C‘ÖUœ€å,WÒ{‚>iwãý±]B$6©¢n°Øj± m*JŠ@ëhœºuì>]0©ŒÚHž”Ñ;!°nK{?[{8°r"\“Ûí8÷¤a “¢ŠA„áþ©«Š^œ6´®ÍÔ’ ÊyöçöM•Ð%]ß*bZíE‘´ûñÚ‡N§+ÁÔ'?5‹‰²‘Γ7좔ª/×€ì³_½‰Óõ| ÁqmIÇ„xϯN"€,ùÕì×ò‰"P¥à·úóYÀ²Ž®ìNÀ£w˜J”˜1682í«9ï=ázš®Ï'³SåöÉûƒN »è’ €€m7´ •ö â8v-ÇÀŽñîw¶Ž ›Zõ†d‚àdêžàdéHÅÏ&t]È‘3q à÷ÈჾJwû§]Šv >ë ÖW |º,`‰¿E)ê¨×v’9Õà±½¶³tCSýøuò#àþpòðc·¾täähmr™CìÿÝ'Ú…Ñ݆Œ—Kâ*-AJàÊEØ ™Ã^@´¢»*É%:ãÀ¢í†]ÏRÃ4Ì.¢¶Ñtï‰Øe 0¶Cçù"7,,lÈÓp™;ôäÎîÕ£•4ç¢ýÓ Îà¯ís·w¶4ƒe÷Ûó<Ó2Cû¥&¨Î\1Ù!ãp«9±JmPYôY㊶Ác+¶Cx#Òž»eu€Ÿ"ˆÊâ6ÑnÚ²~RÏ#¸688¬]ž€"ÏŽ§ìËÝo©ºÊFöDn;C_KfÆí4:Oãó=˜Á ]5¸Äó]¹tà.&m£%ô‹@°Yg¤ÜÁæ í¿=šÔ^{jPÆžCƒŽ¸àÄIº]ú%ó€ËžŽœ· M`H¼[’¾K/8€DÓ|>þ{W A2SøO)ÀzgK'$2µR5O!·¹ô¡êÌ:¦F[â¶MXÂn0BT€<ô‘³²³ vûÎæ…’¢0Â¥(¼"eV{^O×ÅI¢!J²Áå¢L8P@(Mlîñh ‹à!àŒQ¥÷µ Ô¯ÚÝ8£\¤‹#¾¬Q’–ë K?\Ïk;vÓu9Ó䱟ï)4æq/k†é˜%â2@4“70tíè÷îÛŒ“á£0‡v4¯|ëdÀõ Îfz2C7Lóë®ÄíÀ˜}3F1[m£XcãR¯MØÖå•™z ¸]L—ž‰àmئ>Hk8}”«[ Œ>Ïè†xµ4J‹Ò[ífòo¯3:Øš%S–.(ØÌ´~>6§2Íõ½àú¶ñ)Ø`ÝÀšx0ÝÒ)¸Íô° ,ü6ÌÖÐЪøö¾V´U·¡Ø;‹>ﺋΒçj<†¯‰ m –øH~¶i¥“fœc¾5ÑÍ~ Gry wZº/ÓxôÌU y_°t,°áoYçrtNJZ¾5Zr›èyîÚÝÈ… ˆ °¡½@eɰ¢XˆæÖ³D˜¶ ¶¥£{]§*¼5êdïž>J©ÇÂÝâHµ^ªˆ¾›–õ=lí¢Óƒ z‚$Ä1Vn&€.ìFi#KUOXáî–`w­Ûj’¹û§Ï‡Cfó2‹ËT¬€¬äñŒÉ¤hÚSM“ûÜI˜û¼C&È!nQ‰\èõ¤ëNúÃN;.4`ýòMBº½ èÂrª<í{ï—{'‚×y¡@“§¿U·Õ9ꆀÊõ ³“žR ×BÏ‚F m|­š|z<((;0î‘% º®ŽJKL²™škâL†ê†Ìe.¤.‡viYŸb'}–à2çÂ9¹r¬õ TÖpzrŸàò‘$pmr‰SVÑïç®û¨”×……ÇÊAŽDvĽZBÈ)í—¼šÀ*8ÿ(Í?Ò&Ó´4 eï_‡Çé|›{d}Ò0Í´嶪ü¥×bïXsÉí±óûÇZ°Û–ï‘•û,­°vh0¿AÀ;ÖlãÚ|ˆ˜¥*M5m²Xý°Âö¯n9†žÁÅM9×öa›‡S¿Ú9}YxåßÜ3 9NÀ( –´hžÑ¸«X«Ú§k)¤³¢+ð™W̱‘šoÚij :øñ¥w)& YÇÅ ¯láןûõÕ<±F'x}4Êèó”êÏ\ºÐ¬]–÷û¯ã¤J3uM¬¢YVé1Cåöû2 CôH€¥É$ÍëaK±G™X³½cÑyß)1\;¯ýáznEÊIJ5™¶Õfê«„20d¿ÒÜV ÖϦ²‚u•i8 n8EÖŒÄW¨WH‹NX se}GºÉµWŸzhT® ƒéVòÒÇ’G¼dÕž·`&o¾‚›c_Fm4×yWF7Qì ¿?)ÓÖ½ÈÀÅ×ëH^ÙeGü.‰:Ëej‚ï’#@¨×Cj7!ÿÞãúU‘Á»ô¢ ä^ž¨-»C7g&ºp¬AöI=ü(ñÆèMù“±ž÷ZK¥ èk¶e׊ÃôR¯²y8qyÁÂe¹ˆ\¦<òBE¡>ßRuà±=|¤;!^ù}÷Ææµ»ä'KšÆåíéÓ$¤ê¼þÍŠ\L@ ¯õ ·rƒ¯JŽº¨¤8m©â/õŠ7×Ú ÂÙy–QbG’—6Ë4Û¾Q AppD•†™;ö`~OJ@R¸çQ.5 ê2Oº’Ç:ÖÊ Y&š®+?gÒ¹~®„t4(5ºÕSy‘¶_ «u32ª©~ðò&ÊmmÆ·*øo®¥úEPYÈAµVgªÔd[…¤\Éãn䕆‰!t:.K]é>Àùy¿y¸™§'’K5Iª~¸¹¤pS„»Ž\]Äs¢6\57wêc•¡¶¼|RSÜ$Óäþûê°5³-íñ:<êABôÝ{ z~f#ZNüi‚uc©‚Ü×Î;>ƒ‡Šiþ¨LÐ4>¨ƒÙb] ?BKäFARúˆ)#Iéë§ô-!²ÚÕhù*÷¡HNùP„?Š’øâ©]Õ–?§ò_;`‰`S/¿øu<øà*Ý~p•ú®ö:Svs Æ/_œË x-:;Q†¯?ËŠÔ/Ór¨£‘ (¨mÜŠ”e¼ ƒ9ŒÁÔÅ`%Ðô«á6íy™Œž®YÁŽqáº*0×ýhÚÅèÉÑ=áœÝ×TÉ黣·Î‹PbÐ4ΠD“áó’9$Îjsz26ü²ˆ†È‡h‚¾)Ê4ü¦ÇÃ4ërUé”ÀZ•AxÙˆ˜"¨ åô¹V˜ÃºS4CûjàÒ€xmaé6à¶AºpéÀGcì5ÓÇWvåÖÝ+¿ƒ~â`¦ú¬õÿNÒ¸å{ã$w{Î9€¤@¿0B0Ëø$xŽ\“oB¥âh·© H_?zjÎ<¡™Á'~JŒ.JÛX¿àôÝzšŽ~á,D c÷ùþ‹û sjùngë0l£¶?væz9¢)í¡}hñZ‰çÀ/ ø†Cûz»Œ°Áã§£–40K’¸0´?õÃuŽ<ºLóÚjîÉ}™Týy€|¸ €?1"£`Èß—!È~\Q\Þç~È•¦a…ã¯}q&÷±"Aú*ÈKZÿÉßœ·P:&ƒ©´ ‰CÏ ¬íÙ%}QN@éÙR]7œ-™ð%O“ÿ†âˆ’‚üó¦qÅŠ¼Âƒ+§ Å…ÕÂV3à~KµaQ¼E ¡WÆNʰª¾~ˆJθêïîþ ¿ÿ‚bÊœendstream endobj 980 0 obj 4245 endobj 986 0 obj <> stream xœZKräÆÝóØ ÚÁ†…¿6[¡ Ëá -*´Ê!tMBƒz´8ôlÝÁÚyã+ø(þ„âüV¡?2\õËÊÊÌÊ|™Õ¼Uz+ü“ÿ›ÝÕÏÿf™w7^­¼»«W! {òo³ó~uCSr/ ½›í¯ ½ÌxYZx7»«w~„qy_Œ›r_WÞf®‚Õ*Küûr(7S=,ÂÄßÞüI剒ʃ(ñn~{uó³wþë¡ß-–&Oƒ¢n ¸(ãì ›…¯¢–žäøêq_¬Ú5äNE»Ihµ‹j½Ö FM7@›²kq»9¡VjŠÑnøÈʰK¯ |§ÑÑêÜ] ²3w†'-$Uñn v>#ßrôþöim¾}ŠÆ»9ïÖ_/ ¤wë¯ko]Ë=Ã+üÌ0yj'ððÏsûÏOsû‹øÇ§IÜÞ¾€†NzŠÈ³wh¼B™Õ›BŒwJ-O@‘y!kΨ¥Aª:ðúÎk€ x´4ó:Ïmò“wIîaœ&+f ?ë €ÖwŸb8CÊš3j/gø¯O0œEjf /—/àø/ŸÖÒòEDþ|ɪˆ"4øØÆßÈ&ögØøQf­uÑ &®­±OˆÙï ȇiì?ÍÝýlÚø¸[÷-Íe´GÛ§Ž0„3„s§Ò31XS¬º¹èLÄÑ*T‰–uëœl(rq•ò•~ ¹Ü؆‘5ÍŒ2Ä(`«"Xe¡ªåƒÂùK °I>¶ ä=}[ £fä¿íÇé+È'ö“.ˆù ŒTÆ1UïÈðÒûy`°lÈx„qÃ~^ÒEVÊAc٢ƀ3?㣎å",{6´Ò([8CWN ;ZØeÎ!… Ž>žï$ndIZÕ_tøpöÜÞÞf„ËÚÛ=~h*@3|Hœ^é¡Hé÷XŸÛÛB²IhÈiÃÓô´°¶ Þ$±póK섟ã¢NñX:xE£Â@²…AÈPÄê ÆÅm=éÍ»n›Q­Ì”@-|‡+m+™¦BBEŒ!> :œÎp,Q:2‰Q',ß :?qhÛGX‡öîãä;Q<09S|çXo:·+p²Ç$@Q}’Y!¥Ìÿ£lâ)• n›9Ô• vâq0îÃnWÍŸ(]JX†là,[Ý[ä>0ë6ÿ|ž8bŸäD:~´•ÜMÑYçfM÷µxÏ÷ò³Ú æqÝ—Cå(mIª0Ö˜Pä2i,y…{νðÎ-Ù»t€×:1µ Ï8ñ£U‘dlÒ˜'dØ•d~wØ­¡Ó)º6%éöŽüûY’S¡qÞG|`X©7µc¦¯Ï¢A”à$ûÏ.{˜8.ô¾÷3ç|ìÛ²aÙ-ãÕ š9pá sR† †<™ö@F¶®§‡í”: ¤hV_½ö¦._¯1ýcrÅIúG½ïÏÒ¿³8˜àœ§û¸ÎÎÁ^”L‘Ð?A¡ âK$Ì£gˆ¼³1“ù)^èmByh[¬±èg! ™“/ák0Y‘;iϯNsìËC­<‘Ô„†à^ uÉYê¯ÚGéBÓÉwz^Á’n{xMLWIh­?Éкv#uu{¹;ʨ  ¡²Jàȼ¶×˜’%™å.÷SjGMJzu¬£ÈÆ4Åz^ÕÀ—/?ú©v):à ðõ×ÞÃ}³¹÷à¬àƒ¼r9ûൠÌAb&_z,ÕVt”¶+nCDH.íTbKúóœã}‡"hm° þ}  Ýî=2ÖºÆ/·\²¤¡ý<"žw)G·Óšî'·0¬µõdÃ^æBTZU³%ÐVP݆`ŸºØ}9ð5ÀBlÁI/5LŽ­¬Ø¢¨'Ì};º §:w-Bkzd¤öSío¨am­‹¹:M£—ù¸{Vœ¦¥ÖLƒ®Û¡ûÚ‘\&.6cW4ø×³y÷ý¡­¬(± Xùf5'EavŒwy<Ïè*ñÜtžeà•¢|Žî”Rœó„ŠÜÌ* Ò%ÁȺKîÄõÊôóÊÏODVÄWbmõBL¢*óÌÙæ‚SMÁóX Jþ†w‰P,ŠLˆþÏ9G-߯ôA:Åo0"Õ) %ä’ñsu,ù©Ù`€¥!HôÖå K"©l35»G¨?Z!²Âä]Ÿê°CTŃbr܈ÀMÁm,1Ö©ªÉ8cD#$QU7V)zàÙëvÀÍr¯ŠÚÓŒò×8È2±bdù^gAl"ëÅØ?1g‘T…¸€!;D5eîf‘QMˆÀ²vJÖâ:J÷9ã­xI“TÎòŽžÀ°®`/1µ¤˜C(Ó»)íBŸ¨i 8ºTÃVÊO@ó¦]âÃYRÏÄéâô|ÎI~Ò€5:U½µ÷¥<´“’bu:·ÇŠ…@Çf–HqÏÅD*Ë‚qëz<ϤÀ’UÏ×B ߥZ°hxÀøVÔGÏÍ2GÅAmHK_Ĩs/Œf|gUöYmvƦKÙx/Žw¼Kx’—qorŒÐÿ‚¢•q¦&êÏ… Þ»± ÒUäÀÀfñ4P(Û¿[yy°B±z3R͉—CSå$øÔ«ÅÞ¿ŸénäIfމå0HÑ_饬¨ °?ÖXBþ$yêöãõôSØ{»à:)=#b®…>]AòÿâuT9K H³šITà¦.ýŠCÝâ É8Í©6QÚF†Žp¨µ‰ BRž¥Ô•Ú—h"–»€ëí®¬x^(uiP °ôÙM»‰ó½, †û身Þ}óc¸¬¾«;K“=b°ã€ÙF³9@$õ~üèÔìíõ³3ÛãG41¼ýóOAô¸ËÅmo_Þ YsŸ|vØ÷ÿ7a¯ÙzÍ„FÝWÕ3»ÔOïòîÅÛÔ—Ë‹t¹ùI„é}‰)k77’ß&p#÷‘ª´’Èù/l›ŒK™ø»Üç¨ÈÞçó!–>ë.IfÄcNë/ÊÒ=øûkåC³€ ˆv= ¿nÈË+€ŠªºÀWœ@lcð2ÆÝ”2ØQå'¿ ‘ÂB ÑgæXweEY)8.¬/_®Që°¤Ó« €´ƒ!¯4(¾â÷,Qš]%c!¢¥~²£DyÌr8ßEB™äϸµ8ß>›PRl£ë˜/]Û‰©«é}ç%)çUüð¢¡[dœŒAÊãZmõ{¿zØ|J ½¡Q÷Ê“ δðkÒ|リªá_!iˆh¡ž½Ü4ôë$7dYÂ_żoö{–%í’Ù:‰'dMCšNÑÊÔ–o´]Õûº«ŽºúÎíŠkéEŸ€ H\¸'à8[µP¶ˆáš%öMðí›o¼afRmÍ P'½*ñöö(ïÖOå÷‹›«ßÃßÿW&@endstream endobj 987 0 obj 3580 endobj 992 0 obj <> stream xœÛ’ãFõ}¾B hƒG¸u¼ €‚dªò°ÃƒÆn•µ%G’wv¨ÀþCò¥œk·ìñ,ÔÖÖôQŸ>}úô¹·¿‹V±VøOþ®7¿úª(Ëèq¼YE7ßÝXšŽäÏúýîQª<²6ºÛÞð:•ITUtw¸ykÞ/’Ü4û“[Ü&ù*®W©é·2¶©™v~"3ÇæQ¡Ät§Ãƒynbý–šÏ»…ÍãÕ*+ÍsøºÞ5C³žÜ0*­Ê<¸éɹNwªÍô´°«xe³Äôai¿^Ÿ†Áuk7Î>z³9ƒ…Oã4´ÝãâŸw†£—i*GOËUœ%)ÿnscîïÇþþ~q÷í™x’:¶Å*aœ·¦”²5ã»öxt"{›ÖuœWYtkÆl‘ŸªráëPU§*1AMM;Ê´Ù,³0M·Q 3c{h÷ͰÖOµÙöËÚºŒÓ< 'tWO˜çy­'ü¿øÎ^ç–9P¸ï$E²Y\Wye\‡£Üí<:>4ïu\×EKgÇo§Ùæý8¶{ÇÂNܨRa›©Æ£[·Û繌v®ÙÀ…Q¿&Ø+Ù~ÍŸ '‰nÒ.KTp©¬Œ>cm jðçþžáï¿gž}ø³K¡Þ^+gNë4®Àj ¦Ì͇æp„sñLbŽ ©Ó ñ;ßkQÖÓ8++¹×îr÷<Îõ:RÖš¾Ó],ß,½ÛNІ6„ñÐ>îæSÛ0>£€L.u®6wtÊQ1>±ùÌ×è§OnÃ`“*®Ë*˜ÛÜóˆ´`Z4¼Œ³<­£»¿Ü˜"ÁçÑ›þpp èè©é"öãâç羌?ÍiáÝ/ð š¾ÊâUY“ÊÓÌ¡‘a•š-*sU•iÖí¾žu*#•%°¼»¿$s³®bÅ Î3-ÌŒÐÜyâ7»J‚óTþHt:ûª LâUžyñÛKU²U\f™÷ä„”‹³ :çmýä>q—u.é¡Y¿÷͸ƒ+ÂEÆþ”Æ`ï]?¸M,r5 `4.³pØ0>n{Úøiç°f6‚‚Aq°FÍü〮¼NêÜì{Ü€!¹¹˜a»*ÍûE‚«ÒÌ<9‚眓Z¤äOk³ «È¯#Å "âz§ä+d’q2Õ?ED š. ùfY©~…•cØa„hÝã’âçæá9P „ò¥.ÎØó !PóÑsÂE/‘;§çh|Þïˆ 1[î5“G9“ÕÑÝ¢—¼7;4Ý1]ý;Gf3°°ô;ZS4JÀiíÀ^-Zsf6Q×ܨ¾å5ñ9f$|C©½L Ü4…ضnŽŽ`3ºïN˜Àè¬ —™CO·YCÊô¾e¹ Õ©ãûØ)u•:ÇÜ Åœ³#Ú)7ï|N%&[™ç1L£Òñ$°g»ïšI7„$dןöÊ[U‘Qêx¨î‘— çºÏž}e!$Tl‰ 枣A S£×0Óò¥ Xv«™=¹|•{¸‡ yQtú Õd¥8$[»¶ÓýB0RqLYý€™D§Øƒ º¸0A¹ÌtxÛ„ôÏb‘ÿ£.ê–$†²z¢e`ƒž"MÁe¤ 4Ϊ°y˜&‘ާ¹ÜAÀ Ügi nOJ§ä W,U"¦èC¯ 3“Žb—$HîÛÎ…Í( 3ÉÃil×±ïv345>‰~iÇ,K!e¥`Ó‹–Æš/qî6ËÊ8>,qf]B¤ÎÙ÷À8E^HÖnW qû={a4×'§ë³L¢Á¹;¿¦`¤±X*ŽáÂ÷n’*H?ÿÏ—Ë0Í.˜Ç'¨7+ˆˆ£‹T]“-ÍsX×§¶ïšý~Æ[8N­ÇÉç')ð$ª|<l+•ŒC)Äòõ|U7‘Ï#ܳ*ïEm’Ù¸( ¹šŸ\^[ó[›¯„ô6·µ¤¸æ§¯®|KñO8!·F\gà^¶L1êA>¹Î#˜ú >WIœgVvûÙ'v‹Ãn_sˆ¨ ›9~’ZnvÍ8»,xy½Ûz[Ý:ˆ‡¿ÑÕÖ|Æ ®µ 17K) (êŠYæE÷”‘¤(^ˆÇÏ2 žECã2SÀ`JAédä iœÏ½Ÿb示ºçc  û“÷‰ç"¡<Êš'v®Óôœ¨W ÁšEÑÍ%D”+„¨¢†H ‡¤BŽ‹7žö™<µ“Šë&Ár„°3p'Ý«’+Ïâç¯_¦Î (qguÂ}zß]ÿª‘©A¡`{Ú®®÷ÐmÅ6ð'J¼jjÛu½Œó+¾8ÓœÙÀ8‘†ÌG®pjéä±Ü™°ºk ìs ë uŠ–I'¬¦¾ 7ÿÊÐt–s<¿'j4ºT~âN:4´uj~iÃ8œ Wû[¶$ËãýøBÏ–ªRüÀ}k*3>só{½8¨©j*°ªØ–©v…ÿõ¯ãÕØ¸Šð?~zV1·Ôþþ¢mNÖTWÑ-aàíÑÿ¸”-“"øú…äßÿú%ölNÜylÄî«æ%”)C“eod©Ð¡ù¶´Ótm¦‚Sÿd32ãûí6Pþ4oùsíÖnšé7\à ÆUé_Y†«,Ù¯ZÅž™Eӫ׬ÁùðýÒbÜþ!˜Ý©©áÆ+zH˸¼¼ï"Âÿø‰>¬<(×_Ñõÿì{¸~ÈÁ€Ñùô\! [ø—]ÚÛ4Ëb²šP›¶Œ¾è»‰»°ôŒ‚ÄÅ­¥Ž$vQ_ö`+ _õ‡†ªƒÄR|j!Wn×úÜÕCOÙ#M[6Pž*/¦xeX¸íùYN@N¥ m›R”ÜÊcV»góy%¯°Ôì÷Ìä|í÷aR~t›°{Jº ¥¶è¯SÒcùü;EÁôÀm} »…˜´dtQ”í0O±Á@Ú|ùÚ˜BRSZ«mŽ;2£hóµ†8='¾'2º¡ådé—lž²—Ê4Oð8æÁgzTøù'Ķ\ÃëØw—ùwÝ”N8BȽ,ˆ¬Ìü&÷aÚrú±Øxq H?“Ù»ˆ·¸I]Ÿ§`ç5T¬lA¦Ñ¶šÍƯyà2ô2Î’Yº÷[Aºo¹‘Ç@¢ËÌœŽ:fÂhØErš+ƒßò X$ò7 Jç}Û¼^’¦q¹Jÿ饘–³¾˜RÇ0®'ƒË î[zAÀ „••§*i7ɘ‹SEôÝ&JkžÅ[‚ã? nÄ]¢·ˆðü—eù¿jöîËýù<Å&HŠlü•$?.ЫOþY Ï Óèd–…'Æ©üœÆF¸f½S¨ =Ô€’]^¬ 8G§ üúÇ‘'÷Ê8¦;ÎGhÉ; yÊXå÷3´cà>-θ×{¥ÐwîjÂûJ1·y‚…"‚’K5ÔBU,`b¾á† ùô'cøks®Ò×߉A²%K5œxɪ.kò’Š–ÉÏ”([û.LBd,fDQeÏeª{µJ 2ÿvJíE}¤eâ½g{ž¼‚üñŠˆM`äÒ¦ehÙ‹IœÁ¢^90÷<‚î~ Þa%Fêø<_{Î.ð³”9P§ÿÁ®¶NY²aìŒwÜ¥"Þ²*R®ÝSlu $ƒD~9ãy,QRÛp0{.”+7ÇXí+ûifá_èv-uüëŒÚÜ÷á–ÕyÓ”>ÖÚûÁWn6Ï]sÀlƒ—§àô‡wcåÁž° }ŸGèÄ–±û_ilƒ±äfûÂ5çq ˜åü…„vAÃïOºdcpSËÏÈò‰s$…4GRáÐê •åpÚÔ—Y2õ®•Öûm’@Ь‹É©Pº"‰ÄÂýÞ- 6tUº|Îs•[*rrd2žWúØê{ ÕáÙTvâLûËßÑRi—‡\MÖSa%qI)eVãû(kz½&¬Œ1reõÇúD'/¶ó~ûåoÉ^©Ã¹rûìþþa{ÿù¦ylûO—Üö’‚˜|i…4S¤!3FDmï"# !p ÓóQ)jÀ£™ìeÌ(œÿÑ>œþñ0d ÷]à¦ñ_ñ©›‘à)o52pŽ>ºâÍØŽÈ=„qÏéÕ|2…Òµ¢·ê%±Ï‚Ñ?_Ø”s¶(“‹7MOP^¥Ó ýo{_½U¥lB?ym§Uœƒë{m§³>듹·Û‡­o$^¥éY&éÌcàïñ²¢ð¯fg¹"£‰ó[I©b(¯oAÒ–®¼÷ºÆu×ì“ÝÏûE,ˆ|¾ÑGIè;ÿ*KHM¾ƒðaÒuú[¦eøà„ˆ@°Dì=ù_9¢@ô7?üE|G/­O=}é#ðwávúÔG¬Ö”ÒoU3íÜc‰ rN¨•æ “•b¾> €Kµyî«(£a¹8Ç·u @€›G7®‡–~Ý›Bž¾ÿpwóø÷_@®1endstream endobj 993 0 obj 4229 endobj 996 0 obj <> stream xœ•YÛŽ¹}Ÿ¯ 6 ÒrF½bß{óä, ìÆ öÁ³T‹’z·/r³å±ü AüÉ—¦ªÈb·fÆ3 4ÀðZU¬ë!ûƒX…R¬ðçþWíÍ·ÿÈò\ìÍÍJìo>ÜHšî_ÕŠ?­aIÇBJ±ÞÝØ}R‰È³B¬Û›àînhïîë_V‘º…i ëÖÛ› :¨n¯ÅØ‹¡oUg×M—°p)#ZzwWWQªGÕÔÕó¤6»¯“z?£µé›­Ø-ʰ,£• T¥?¯ÿöáú*‘îòAMu=Óª¦•:šȯ"7´0礻¾Ÿ§Ùž®¦ÙžL]I¡Fp´R˜ú³~ü3¦z–üî*y™þ'y+ ƒ/ƒ…^È$,‹"ø4Êê}bNõ_YâøË-v¿¿ŠÛx¯›Ýx@†i¸ZÉø!Ç,Že¸’™Ýþ+Y"ƒ~pb–Y|Rí±Ñß=ò\ ·QZÔߨ`µðG)lØñ˜uYaˆÑ™¿y¨Â¥§žEVº¿÷£^,£2 ‹2 ƃ¹W@ÏM•2 =Žz0<u·HV ( >.$côÍG«Õ[&•j`RQ  Ý,Iƒ{ßRg& ;´¢é”yÜëÁ­Y%A¥Œ=Í×,WêÌ5©ßM„ÇóQïÅÎSJnYl{=“ ëljâÎ]XåÁÆy[Zç¾Û’ ׯޣ„ßYW±>"ÑÚ£0ãPw{QwâþPW°šPÇ£Vƒ ‰€7Ë¢õ=6X®2/ƒ±w΂ö,ÉGó0Ï’‚õÝÛ×oÞ,–ñJ†i\ß¿þáÝl‡së",ã¼ä-Ó©‘ƒ?µÌ½  I©¶ÈS0cÅ ²âBѲˆ'w-}ËëRà2L,/¨™|ìúÍ#³40§ÑNºãê.‰NCK)³0_ÅùïÑ` – œæˆÁbþˆÝ\OK˜Aãà—“áž”î|Æ-µä]Žd RŠG·´äJŽyžwʱ›“À¨V3×â)§´»@ßæ+ªÓ0hËÊ®DÆ¡ç¼>hßÚ@qìtå¥+ƒF™ÑX×ó^wêÆº%yAT-Oê@L8¯'wæáŒŒ½"sJCIò’N·ö$@ìA7j¬æ@ç£#í6€Ú©8ø¤C"•Xe3ã4 Âê&#èuÍœžž‰·9ó„U¨Ë¾2qá§Q'Ò2bˆl|½š)ƒ´GnáA«-Æ*¬Y&ó2Ÿ9ß¶@ïîÔQ1?5FE–†¨ôþÐÍ]È— Y€”iìO­õzœÉsèOÍ–»%Õn*Ð)¹ÙÚ ¥KZ†) —îxA¬gä].cïhY˜eçáõ"Ū™C>jµy”µ£"Lsé³¶ÑC=©èBB”ÂÜÚ4 ä¸˜<,-`:P‰€üÓïu„ª$ªÞUõ 7…¤Ðw!K•,U&«´äÜ‘…°¡ïêÏ‹%™1ÍÀT ì!°ä áãC2h²ÔlÞH°¤>¾ì¨÷"¦.3‰q«òÂÁêWš£®êÝ™ ®«½žzŽo‡„GÁÓ»¾gÓ6 BäÐd65Âù8Áôa&9¨Œ¸öFOí}í‘Î\÷Ó(‰ÒõhÝ?ÎS[I(Mrг Ý”ƒEVR6}˜Á±÷58EÇd$Õ6œ‚zfFµˆV˜G‹‡ÙØP·ûJ—\Ó'rŽÁê#bB»Up/ “ºÝrµ<öu7N œ/Ó'/9çž¡îOVŒ ¨R7õHa„r®9½õI8ÎÇz‹r%EÊ•U³ë¸zFrâÈ*O(e…® *ýg·ÕC£Î H?·ndï½²fjsë@I6_üeX`£Œ¹eJë†v 6ÄíÀ;­Åu´¨•1´ª¼' Ê+ï†ÌHÖL”Š€;¸ï¼ªŒ>ªA„( È7ÙSƙԹú-÷1?×(‰íJ{  àS[˜±“3'"äG®=E>-ÌŸüEŒƒ¿vS[m·5f0&R2–²(HÃÔkÕyêL)ƒHåb:´‰*Ò& ÈÀóØÌZÙK/¦]¸V-´bnƒü"kœh|¬«S£¸'è–“(úqœa½ »D—”8e”8Hò‡‡€f®†¢%¬.nònt‰¬!ñÅô}ðÓAô‹(±$î Uî˜âlaÄÂ[BpÔË-‚³Ëb(Ø;^ä*ÞËhÒîÍlývm²Å½½e€w:nC0¦¯jEÆwÃ=ã$ xqÝsãêÛ~˜1_ì‹h‚¸Ý¾ñçJ­kxÞ™ìOi<–”1XNɃ'l•­ ²ø«¶ŠÃ2—’ë=TÖmD1ìß¹´¼*ÓiÙ±gï!¼-àÂkû…äúH{ œîttûNœâì=ªÍN–Ïd:¿Übs¢œÌtUC?Z‹ñ€é'—ҡ‡±ÿŸ-¾"@Fžð •wM‡› ¿eÐ}®³1]óج4•Eˆ°©Õ5ªi{°úvšš$IØ ™ :á­Ÿœ/tÆ¢»ËjÄÉA(^hÌB¯›•?b.) * øÆüwô‰âÁ§‚Â}1yµyî‹ ™Ä%6ƒEªå%R}áÚ+sq£ÛšÐ€èÿaðÜ÷HO¿­»º}þÃÑ«ç>ÍyBÔÂê _ø†öêÇ«N ñe+òåýjxéÈ®Ö)rÀ,ZdÑcöƒ“Ãê¯;‡ª%€¤e" ÊŒ+Ô–.ŸR€Ú<‰Þx§+A´³˜(1t¸¹E¸h©¾ÚtG¥¹|Î1v1Æ=û‚Ïì\-ssyX*ÑŒŠeGH†é§}ê¸Ñcæ·S—ßSègOŸ§îÃÜ­xd¾$ ³UÌoÃèjác Æ1[0kÀ4ªªê­F¨#¦Z+ p‡à÷ˆQ7jÓÀ¨³´1to#\f±eþ¿¹Æï)¿àô¿½†æìèüî:O¤A¼}^ø1¾JbIæ»/­a*AÅT`A²7j,Øöis7}R¤ 3dýa„û¶Õ#P[Åöï€|A\%*Yð¤pBû—Ú2 ešú»ØoÃ"Î0Tð㊶Àý˜½/0ì]Ý-ˆéŸ×7?Âïmkendstream endobj 997 0 obj 3095 endobj 1005 0 obj <> stream xœ­Ûn+·ñÝ_A¤YöFÜûmÑè%E¤­>õ’VÖ&’VÙ]Evæ¥ïý‡s~¢¿×¹’»²OSäÔl9œɹq¿1‹ØšþÊÿõáæÓ¿ei‡›…y¼ùæÆÒ°‘ëƒùÍ ”ij¬5ÛžgM•™²¨ÌÃá&úh¹\m—Ë/\3ŒÝЙåò“õri~aŠÅGƘ_Á³î»q½kÆÁœšÞÚãyln¾BîU.¤ïmbîm§YV›‡ÍMô°k¿o0Í Ÿ1~i3å Ý ˆuŽËĬˆË´FÉ-¿¦SÅ™ ‘Ì/Ä*ÊØâô)³7Ñç¡]ßÞ§Yçi­w®wë±ééË˨=®÷çM³Q,ì £~†t%u4Œ°ØG¥•Ñ¥w ÙÈ)¡"oß„™nBíðµ"ç7‚"îå¶Žëº÷p\¯ä ‘Ò½à0çŒ ƒ\îöïÄ xøÓÍÃ'o¢+#)A—em»ã(Pžw§Ê5èHÕŸÚ…@â5 ØèØÁ!q{íH`Åßépn£n«Üìt û¾;7$®Çhnm/ ¸§1à†=‹CçÃÎKP6Ü1¬ÂN}Zr£ªbQ1¨’m›äE¼°°ïcs´ äz‡PûÛ:„6à:A\Øèàú¯I¸¼ÁÎÃ]j·JÏ"ØÅý©kIóD-}±nì®2ÝZ/X´jXm2ršÍ] &lêk.ºù*u¢8!ŽÔ¼vø`gÉ"ÎðZŒ±´ÎF8B›À¬Ú<¨‹çñÁÒâåg]À¢“=òÌàØ^1mèÌñùÔ Íd xa´¥¾›à7©ç+Pý Ý¡ÛCƒ×6Oâ”×´=ï.+Z•Ž­šÐïV{…òz‚•èÚQW+ÐÌ~ ¾CX{ÞtÐcå}¾°»ÜÚìv–Dʸ Öi˜tõ*dQ€` Ù š/•âèµÒ kw —[@ƒ{Ô|snŽëIÜ:Šœ,4³*œQD+&¶7E[íNqk±'Dcf¥u2ŸihÕÝ×Þš6G¥QFÛ¾;,®ÑË"ÔØRŠ3>S™whÂFeÎÏ)’¸Zn„LuóeLªè¯-kS'M)lš-.µªq÷Î{%’é ª eöƒÇ¡íæ¡bJ6ÑÅZ¡‹È)k¯&p‰\¿ ¨ªWÁ–+§ëb¨ƒím’£]®¢oYtP\3A`bªÇp5Œ ÈaPfƒ¢BXÝÐ2íŽ3hˆ‚鎌>º[‹§ׄaÌNƒŠè9ð_{–œ&0-óxÜkãðÊÕe¼(3°o㥡û…àšœ6K !l`á]«3? D¥ŽVnýõ°wî!GJ½¹˜ A GÙNûæŽäšÆ¿I±s)ñ"Dº?ÃX÷:d£R0Ê›(VI«èÝm‚Ô“$º4ܳ19ým¶ˆî„çîPÙ±upâÛ§0(J@i¡¯Ž!¤Çp…„›b6ݼ‚ñv؈BÃiF­™nk&:ŠqY>æåçL7¹JA»z­¨8> þ<:ž+2™[03´ „VFoÃ}z§½|¨]ª@/¶à‰Á$º¹LâZF›.´YUB¸á=k˜uWu"úÑoÂs AÑWÇ.P\5S´Msu~;ô_7 ¢ÕæÿäÉsÒX½ý]2ìÝ;éË Ðe2wÌ„íœosò`¢É²¡lÖ£ T/ëŒCçoä·ÕËì©5Òì“IVÉ >ÜÊS7´#_wîB+uÈÍ¥‘<‹‹4Ó 0Þ§½[‡ÑDn-aæ~oÀP{aˆ®³_°Eç—–(ÏÕé®'ÙÌé™óɬžÍ"N Å›dð’½»ÍqïÀ%Ÿ×Lùßi51À{óSxox/lt9þ_„Øÿ!öÍvdî@öƒØ÷?…}ß>î„? ÿŸØòí‡qÿå®þa_ _«â2É™îï˜DµäÅ‹"N¼ß®^œG Q"7ƒmñWÒrZì#ìÃI9œ|qÁèe™ ÁÀ+0+šTõµÐö^…ž(:dÉ'• ¢žçжq–ŒÉWiÑ‚&E lC µsûm€$ˆf*›ÃèµöT…³HÕ¶.&aÄ›H£Ø*›Énöív ƒ^gDþrrAž±Š“En}‹î±,ã*…xs³!'"=p@(eÕ6×Úlî E«ADÀy% aÞÂnð*®ÝKrLãÐÛº)&S+¥‰s`Yêè«ó |Á3l`Fß®¨`²XÊíU®v« Ç1À•-Ë–eàISÖ‚´9qçãWÔzüJØŸ¼ÖÚ¥;>_Ÿ=X|QZöfG \I–J@.³ô…E¤¨‹¬6<ë$H6ÐUmŸ¥:ˆã¸ŽƒGì&!õpXÔcÌò…H@\BG:‚p³Ô¦á žúfÝpEuQSÁd¹¾–yçxØX/O/´²ÀûgU+h7ˆ„j²¥U² ‚èÄØ‡¸U; ŒÚi¤Ì_ÒRêÆ@:a^\—NÝÇ >âÍ‚v!˜D¿V“ ꨒ Ä}‹«Ì¬¥C-j§ReàZ/Ovuwxx^ðæùœ)Òðûrì£ `õìèç©‚!L³I¬ˆ•šx°˜¢¤¯$jžpXDRáë3‚W±®“`º³ü•44—Tþ¤ðK„§Í5p€rÀ Ú՗ܘ÷ªo†1æQ¹ ÛYÆ  QËóqÁ$j—¾‚G”©ÀÅT“hßÑ $¼bRP!ºm˜6³¢"‰˜¡Æ¦@ˆ©)ÙRZÑÑv +h• Ö}Sa.g¤‹œf´‹µ7 매圑 ©qRŸ tv^óÊ幇%Ùý2XpB áýÉ©¼ÄÃÁ|kOÆ5Há-úÈéíî7Ÿí4Ò• \ÜÓNˆdfï`n?©É¹£i¹¦`ÊM l·Þ…À_c X­Yi`Qªï(bPŸ]˜ßŸÛÑõfMfdQWÑ. {ìhcûv3(•` +¥Â³1“[ÄeŠyg‡õ5mñtÁ/Sý†©>K;¼ÑÄNÿÞ-U;jTXØkÌÇ 7öCA#Ä Â¸~ãqR~'QªN9&òhHqªËhóä™ÇÛchKÆË@¨ú¿ìëˆÐ ‹#SÀUç“ÓÉÊ!õ¥Nœ]M"¨yP°5WEnj\çÚYš˜“j8¸C”²Õk$è´©]Þ†9;.©2ð]Ów eø¾Ñ=öî´ãÀ—;/ífÜÅÜç~ΟêG9;IUB˜‰…˜Q™LÔS ÖwW%‡î2õíøŽäT e±]L”¯c‡C³Á8.ì0-Éðñ´ føF­ŠUÕ3Ê{·ö„‹œª7:EjQ8PñsuSϬo<Å”ÊE^%t S,¨õ ÀFÿê)Æ@ô«šST>̱v$|$Hç;$}´Aºg›ë£oÊ•i¤%]~8EÃ5N€nBĺÛ¶fÓ/ ™“º £¨_NçÂ’Ñz’ᔡÌ¡ó·br?6fì()¥/óÄ# á8/è)"ÿ½@yÊÁµ-—x¥Ñ¥R±ê2‘~ÍpS º4§š8ZõÏU‚‹_§hM)ˆ›p,\Ù±!Ïôý¦Ç#‡urJÈEñ{°åU=©Ó]䙲×"¿rÞÐ©ŽØù¼¬Ð×G(lñCúÅ O”à2=~bþ_*>I—Íï:Ú¢WJõ‰M^lúËR½ðÄrؓԲ›¹”¡úf¢ÙNs¡©Û‰X9o§rH#)S”Væádc$øÂò‚Kä½%¯×Vè ‘ÿ Ö€£Ò/T Wè7lêùÒ Íº¯ qù5¶;@cú,DŒ«ðüCÂ$ AV×¾3«E _±®³Øæ¹×ð—_üÍô·iªµQ³m€€wÐpM愳Œ ðÛ¨Œß>Üü~ÿzrˆendstream endobj 1006 0 obj 3946 endobj 1010 0 obj <> stream xœ•ZÛrä¶}×W0ûbŽ-qIðn?9—ªl'ÞXU.×j Œ†6/c^V–+ß°ÿ`iú‚3*véAº4ÝÓÍùÉ ƒÈ ñOþo›«×ÿÉòÜ{®Bïáê§«ˆÈžüÛ6ÞŸo‘¥H½(òn÷W—AžÄàV·;ð¦ ï(ñÅÌ3ô"µð&Ђ ƒ.=ÒrN ñwfØöÕ½]¢(d="GàzLk;¤ìaÛAÓÍÚüÀ÷(Ó¶¦5Ì:ꪬ˜ÑÉ"µGãˆàu7˜~!P÷`@¨žtr#ЏA7AUtÀ™„Y‚•ÜDh]ØÀ${°µúénc9?õ´ÔÌ¢ÁÅÆkaÈÙâ™5h9Ã"#­ñ¬Â¯šcÏg/“üÔ˜%c5ÊJúx4àÉíÖ ¡¸yæÁÌò—®áÌ,\îïÝaa+»éϺ9ÖÀv<~ý~…d p‡CÕ›ß`rÄ&pçÿ¸!ífZœÙ‘’ZTæ?VãAz`!¿~ÿl~ó§–WÈÓÜ®¸%¾ùú;ÇÜhb-³$õ1 ÙqòpÛ!…H›u§Ø–~„s@ù†l¢à®@!æÐGsÁzàmDØwíØðÜ-ZW Äýµ™{pýÓØá []C”ÍD£0€Ý*ËC²q–¨‰ÄoéIb®¾¯ÉépŒäþÉ-ZµÛzÚ±ÇÐõ:Ùfʆ6 T°40 y”ØÀP”Aš–62´ë ݬ—LTu1¦ÀnEÊTTÜíW7I‚ò:ÿâ»H2ŒNþÁh›b¾5lGñ)çÇ~±—Ò€-ü47Çt»Éñ åwnðþLÏñ©ÚÑn•^2œ\âŒÆ´vµŸnbDêáÚ§Z÷ŽŒQÊÎÎgƒ‹>hŒ„§®—«¡FýÞì¦vèÅCƒƒH·ÆÓð÷óÍ'xe±ý Ú¥¥bRü«»»¾¹»ûžÿYg{…·±¼­›ÓiïÈ4= I$a=ÂKfç¡wÓHÏY€n¼eÈvêÜy-(ÓãkˆÜ;àa+!ê¼x1؇JÔâÅK½o ˆýÆ Ÿ™>wq8?“·d*Y*“'®¥¦sh Ž.FÚZš`ÇÊlçeg0[ì·SsozôG»ë¾ï;Wù‘m2ò¤v¬|øçoZ»^:c½kÇ‹øÇõ8TKG»E†£ÙVî´ÑÊiÏ£ùBþT%`¾ðÚ¶‡!êÀÀaˆ °øt<ÖaE&ÇаW”kº¶ ø–µ…a³îÌž‚ /¦žêÑQ.šW/iѺ)7D ±;"fsò¾,¡bc^£·‡9úOÃhš/67€­áÁŒhŸóè™ÆA”gJBàÍpîtØ-<‚6º® C[TLm¡8ï Qä¸ì+n#Ü=ÈÜ ì¶kÝî,€nÕ.È»]€iè3£#éý"÷°½Û»Âðj7þWçf¼|Ž’¶ÆHg·ÛÖfïú'!wžþÄø ÞÐ(Ïm¨Z=N==»™ ’<"ÐFmx*Ǫ1ÒKŠçÜ€8c öÈŸM‰2ö4ËŠ#ÜžÁ2bȹ ·!v´;Gr'™Y@ϳ$qa³7;)9öÇY°sòØíÄÎJÌ­¥þZq~ü¡*À ¿Þß;zþ‹8ñ 7á|K§ÚĪJÿÚ&+!à HV*°ûÁƒííKÀAܾ‹¬ŠŒL ¹ÚŠG#Œ6Âdô1Û^5™ÚU)xð,¹$/a @üôN3#lvœ'e¦<Ä#¹ |2…ôÌ)ŠÞ2~?K•;«±éû‹‘ÊÉ1«vŸƒ¬¥ó ýR2z ÕiÕæìi³Å›Å"/Y‡ ¼sµkWé˜÷ÍÎ6ι."çXbQòñÛËh ]?r.õ™ƒ]¢~klX%ì+£gñ\> ÉŒ®½™O ÃÑzLNÀæÉÌ$B?®œƒ¤®5›dSh¥æš'çJBuÀüÿWà \«‰à¦ÞÛ¾’'»¤’¾Àü¨•T ÄOLÔ–¯DçÑ#Šrp¥?†Î”Cs/`±ë…€ã,!îQooµÄ$K7f¤D•¤NNN„‘(pÝ7­k?˜Öôºžw‚ütíÈz±ŠvÒôf@xÌa‚j-‹/ü±€¦5þ¿ÁКkIQþRñŽwmùŠuOº8 ö2ΰ© æŒY—æJN” ®%2§˜²F'ªŽõ“[ç¤t…¢ÛbR„_¸ŸÕŸ¢µß"´3½¾hÖõµ[ÖY±»fþ>rrÍ)}hçzA™¹OËD t€TÒ0–äo"®&m×[G”üÍ…mˆ¿®Ì6Ä‹}»¨œ–ü]‡ñ%“µ[d˜îᑱýü„m¥ü78ŽÅùÒ¹2k?¨@V-Á }‡2óJtˆÀ€¬×a<uJ‡…Lø>spÀ-AæÀÁ!Lcû¡íç ‚„#ÅðRD. 䋸QÊ? J•q`ÝÓt‰ O›É¹3V¿3C5_>þüÅ<«B#A¾ìò…¿H퉺þÆò üVº“X†NPí&üxÂ{®Õ±·Ÿ …]»£%Ëè#}ÛÛ-K`Áií=€Ój\˜–¯b*_µfk†A÷O2”äR‹©ƹ‡c—YL5ºËúЈï‰"úŠ×Û5æ¢vÈsHuòÉ“Ç|ùõKÕ´ÃØOäˆö> stream xœ•YÛŽä¶}Ÿ¯Pž¢vzñ¢[ò”âÀœõû°ëM·fZÞn©-©w=ùÿCò¥©«¨¾ÌÆ`±,±H‹¬S§Ø?Eib¢ÿäÿÍáîïò¢ˆžÇ»4z¾ûéÎPw$ÿmÑ_P¥Ì"c¢‡§;g¢ÂFE^F‡»ñîšÕ½s61y·£´K×û±WÉÆõꇇÂt…ñ2]‘&6­J˜òa 3}ØôÇ—ÿ4ÃÊIU:÷?È`Af“Êy¯CÆ©^™ ´}üye<4²2Vk oÛ¡ÙLíÊBWåÜRi´¾ìÚÍNÄÊÄSýisV¹ÏâF¶ƒæ/f=4ÝØö~‚­½.(Ö°—2IM‘ÇÏ'3­#ºíBØþx§qaßë†oy±…aj7õ~uoóì%TAôàÕTÜ™‘ ¢æ¿*ï“nŽØ5õ¶ížÕ2û2“Çc³iŸ^ÂÀBŽ@¶Ž€Ø×›úsrÛåÖ,lÂÙÛ lÍ+ l ¼tøv2‚ye—/¬yZÙ ¢Û˜ø | ꕉ7~ÝI»»Fz Æà¶ª¢ŠëÓ~Ò!p ë üê¸`ÍÒU¿iSŽÒÌ~¸Nh–½4^M4a)ùl :x¹%÷FêBÝŠâNuçÅb»Ø}<6õ fš€±/8õGI)…KÊÅyKò¥)QÿÕÑø2NÍ!¡‘KŒ~ï ¯­àd³ø—aœT*%±‘ù¤Ùô³œ uªd1´ëPŸF™Cîœ3„_šmèn»°â«®]„¸u˜la`)ØÁbÁÄí‚2¾huMXÛÑ…çÉ$q«Xátíp‘*àÓóŽà K™+v¶m ‹×Œ±9QÛ›ת‘Óñó\àß]ÚoE®2<êóˆ¡vÑNë…åÜ%®ç v½Ú³j2£ÔýÒ…1’²egÓI"àñíÙºÇ Ú!ØÞÀ¹(ˆSžˆÚ1Ú6m×lQ:=¦‚f›Dë»±ùéð·Yåh 0‡uÔÒ(ÜkfDmÑ¢ÑD¸´HÊâ7A„¯ äR£C"v~Ä!¸Ê²8Ñq€þÆQN‡ë˜¬Š y(º#zXåiÜŽýPíž ¿Dã î{‡ù‚éLœVñg€¡K‹®"ÒAÚúWkQ=L"¥¥ ´¿ÆvOÉCeº—,Ëö=æî€ ü ß†1sRÛ–Ýë ÚÎ »ÅÂ<»•#Ê´¼áÝ„‰Ç<º í§Ó~æ7ýÐè|iÎñ(šãéx„NíuX–~)ÎãõièHýª$wz³Q€Ù‡Fhcå‘îY“Iºáè,‰Þà_bu¤$G¸Éª\Åÿ•cn¶ÿ ™Ë¢zŸF&²ÜCY–Ú ÇÍÐ>êÌÀê`ïäY7T«É®<[I¯!Ôbÿ"_­$"s„2ÓÆ½6) ½}÷íû l{"¤"ñÌ"ȾnC^P¨OSÌ« v¸;ëÅ}h¿ô§ ìxâ ¬?÷…ôO‹àîEÇ è|šdZ®ÆdW ÞCº |êŒç™WÌ Œ &Q–ve ×7dé©áH‘WJhAÛjñÄ=^‚µ¶Ú¶>µ õ1ÖÍY+VW¸šËes¸Ü”qI•ÏlÖ@áòÇUæ|׌§Ãq’ª8]`÷Ó}iIœ)$p{>áµZ "ŸÜý“î6Íç„MJåù$ûy“WL·Ê’2+fÈÕ9ÚÞ\þ½OK¸úe8…³ã´g~â¿ â6¤¡©v˜ºrQ!·›Ó’æÇ ‡U.¾dVßÏák.‚ÁA R ýô€‚5”ï¹íâOäÖ°0K@ž¤ ÞÁ n8T. @3³þ€uXèD>1Û‘Å”-¤=5œ¥^~ž "®—‹ö§ç]èïñ0C7©qKËÀ¬ƒÎ™-®M’齕nðùú z0Ãr§‹ÿÑÏï8_¤þòÙyýå*¦¯º‹bAû3¢ÊLûÙÌ:hÍU»Zò&šë(ÌRÍö }æ¼÷û3ŒqÀ7Ólæ¡L]R}b¢É±Çöqß ¬ÈD@n·b ¬ú¹Ýžê}ôÊ刬A"¤6°BƒjÃÝÈâØ¯¦(åá"IwT&&16Ã<Š÷P%EêÃûÕ{©R0±"’‚ <ªW TèÁ§”ù{˜p°X:eë ÀŽà—XýÖõÃhOi€ŒË^]Ê\–ò:o‰ÏF›šé}<8í§v~rC¾“:Õ#•à¼`EõÓL“êÀQk i OGi#ÑÕ‚_~ë £žbyQ.›j±vÚ©äÂ(„žS7…žùETg©{Eþ‹çp6g.q²±…Ýʇ|Î!4X—×ÖÀ¥.ö‘vmûÙEB³$šÖo€yrvôUœH‡ qÕÍ—›4è$bÐåókU%iQéÅþþwW70Ñ¥sÒ5ÄÙ¼SNsëË#u•z ÈD½Ò…OŒa`m”qø¼¬áôîÚ(—ÌDr\ÑÎk"­jæ[|–ifS¬ä2#®!8žWè=ü})wÒ+¨˜[o¬7Xµ@º±€UÄ{õp˜YnøÊUåNîÁŸ$êmÐÃ{Îj™¢aýˆ7œ?:½bkù’y}2Pzš ÁÙødgl‡Å—Ô†,¬¤k"Ô`îPùkÕuÄøÇ&¬‹ïŠã:<*c¾€£§8©lâ˜Ï~A¹Dû<†8økÅR–7«…óWáQÆ÷'ªàH*¬<”‘M¥òÕ•ëʽ–KEÊéZÐsüâõñº½à(a‰¸jVó#”Ž|Ôß® ¨\fôÖÄã§øðÒÎ O†;$ø­t‰7VCâ+ˆä˘°‰µ&<ÂÀŽåU§œˆ7 táÀ«·éNiy¼LÁï¡8ÈÝ"yýK =.eTpz($•qóõ_Ì´ŸK"®xPÇÂ=L±$ï¤[€ðèso˜ò ‹_¸øC<ðã"ªÕ›¡çäy\Bk>pQÃÉT’ðÍzœã š¡ê©A–Ay䯰ù×8޲äDn¾ñ‚Ký…Ô<"<.:¦úù™’Y’iVDÉ™›U¼õYâ¼ÕÀìXu§—«ÐÌ ˜2›?Øè–n*X.Ï^'T¨¸;/¬óôãjv?ƒÑî C~È ¨T¯øX é= BF¿N ecüGÛT±Ô|ŒR&ÀÊ£=ßLüäŠ~Q•>$LÈ¿VJŸõä|bÒ 0 2”X1£Tâ•›Yr ~Q7"®/]ióħsq¬Ç±†šNíƒ4øñ\U`q¸ðÜÒWøŠ[_‘(/Ú(˜Ô1¡dÁs,ZÛzªEª<û‰Ú9sª¶ø1ƒ¾¨d\;ýY.ÄDé̆3ꥋ„%„x‰ÔнøK%íõˆ…4ÖÉá±¢M+lŽUwA%c!j}5ƒ83r,óÉU>1@ìô\¾ûö}hcè oX€}7ݦ‰øi“ž‘ MäW´âßîþ ÿ;¨¾Šendstream endobj 1016 0 obj 3149 endobj 1022 0 obj <> stream xœ•Z[¯Û6~÷¯à>E.ŽUQÔµû’^v-Z m‡¤²-ÛÚÈ’+ÉqÏ¢¿¡ÿ¡ù¥ûÍð&ù$‹mZàpÈáÌp8œ›ü«ˆB)"úÏüÝWŸÿœå¹8Ž«HW¿®$/ ógw_=2J!d&+½OŠ8ŽÃ$NDž%âñ¼z䡸f¨Ö2 #ÉàÖtGq¨vMÛLM=®yüŽè©’èld1Mœ‹Ç=üøÃëõFEY˜«2ØõÝT5Ýhgò 2C)ƒÃº ˢȊ@Ó²KqpèÄy°'y’°,³’åñhcs¾´µÅ”Áxª.õø0ÛZÿÑÕ{Ge°ñ˜Nng\ÇzX'QEiêiô»¶õt«ëÎrŸ‘­Oœlr§(y8q®Ýu¼z¦™>–SAµÕ%ß?Ú<”¹y54.á)ê¶ç'^¨j4óÖið˜¥y3r¡¥§‚o'3.b}‡zAòÚ±¾C‚bx·édW2ç,'ùÇ~š-•æÕ¾Ãµ­Ý&~Ÿ¢÷½ðâ,n1;6^ª£…àk=;'%j} P¸Vm¸~±‚[’2+¬_ûr½Id¦iâ¼3ÃðxxÇ¡:ŸÙ…ó$®¨­ºã•ÙêÅïVoÉŒr‚ìtFM<…gwC³uûÒga‚œ¯ÅEð3TY–p ßÍÞÛïܱ壯ÁrÚõçËuBxX:ðÅiT–²Ÿ9WO€}ü¡Í–VôÌ~‘ øµ‘4Ëypª‹ ?öžjlÍã}„¦¡>x©yšÛø®¹XA¤ö·«ï2Ù>éÉ4ÕQ½ö€¶Ë†ÍV`ÁÞ÷³1ë™Ï¬ ŽfÍšö.ôD§p¡ 4Bàÿ=R/°, ø›ÏÎeb²O™à‰"EâIr[?þ{‘âÜIÇãM ŒG{\íŽR8Êrárf‡Õ(}k•]߯/LÚ›+åÒÞ, Ë$FÚKî/ÂÞ1É¡Ä&çþ}=õBÿ{É Œ“þ†k´L ä« ÞKAamûiêÏ¢­“FÎpž9*!ã94ÿ¡d»½ß74ÇÓä¸,™X.[XèR CÓ¶bñ丹k&Ñtâ­6rwØ·kÚVw{¾…w%ÂRMoLŽ—QX”±}»Êúñê•IJ°Šw7ž§¨6Tñ¿îØrHf·ˆŠt®§˜%(?âºHêÔTŽYf4©+ÇY.ÄS…œ±Ž=*Ô8Í?*užåaèÏ^–ûS{@ß­-XgX¬Áψ pÓ˜"ï|†G…ƒýk.6 ñ祿ˆëåuÂ¥k‚ÿøÃëë”^µ*a±Hú)<¤è¦qëLóùwS³µ»ž·ÜÁæ‰Ì~áíÔ®<à&àf;ØI02tæ#ÃägQç›t„Ù–0C²K–?¨u^F>qèá·Á7͸»Žcc¬míÈѤ§ž ôŠY;3¾ &^ÌçU§î g‚ŒõΤ;L.¥x¤Â·k?ñšmPãÇæó³Yòœg·NOZõ´ ¹ëk7ëTÖn8xB¶Ûk6v²h”<ø}Ía6ö/q;ýµ›ÌW”œŠðzhï×À‰î’ëµBw…5€gÑ!ÖƒCÄj¶EBøm‰­$j؇(qß⼊QþÏgÚÕ«gss¬¸ÐX1•ðq1ÛçqŠø~ÆÓ¦ºÿF»!t&d¬(˜; J`*þ;Ô@ýäïhf:ð¿¤)CúŒùs$÷7Ôœ8’z?’ú-Vffqx‡åg©±ÜáÝ>S¦÷3žö_9µ}Ê(&®”]ò‰ÌG…ù/ÞžÊxËFâoVØ‚±pã}·ô|¨§Yµ#Šaž‰*õ¯&Í"Åø3ÃÈ%ÑG[æÆ;Ÿg®ÚÏ3x:ºáøý* ïD1üP‚‹µ}ƒ46ºÒX"ûR±ëi|3è_=ÅIPÝýìI¼ r„b÷ùÓê¿T[endstream endobj 1023 0 obj 3603 endobj 1027 0 obj <> stream xœ­ZÝrë¶¾÷S`rª±?ü9wé¤Ó¦Ót’Æ\ää‚’(›=©Ôqüí;$/Ñ×ëþ`J²“œNÆÂ‹°ØŸoAÿ Öi¦Öøç·‡›Oÿ‘…z˜nÖêáæ‡›Œ†•ÿÙÔï‘¥tЕ–ê~Ã33•ièÈKUYšÁïýá&™‡£öjšëí»Õý¿nþtóõIsõâÿ|“¥Ms SL™Â”Ã^»³žî曫¾%W–1—άMu¹˜yrwÙeÛÔÁ^`¶KM® §5ŽW#Éú`ý]h]¥.åò4¯rÒ… Ë™¢Haô÷[ÎêÔMË™ }‡Ó›uÎZ Ú÷=gº\¡GÕ…®Ã¼8˘˞(ûƒŒi]¦ÕZ㪠!6¦Í0ÏÃáÌžüä §Þ™œ¦Üi›™…9»›ï’ûÇfug³*]¯ód~lÇ’ ¼JÚ¹9ø±¬HÚ^*䛄ÒÉ~¬M? ¯NxeÀÛkž<­*üµ. ýTïv?§QüýcågÂúaŽu”ÛŸ›f>—ü; kçE{!ªîWßßÿ5T¯!SiVV `RÍp‘™…™Øça” A¥à'Æ8-ÎŽÐ÷Õ.uÚª»LG©(ÌoÅyrššP•W4¶Mò՗߯ÝXóvò*yjû‘P&õØDi›:ŠsY2ˆ8gá.†I8s“ì‡S¿ B⺙\_ ÓüÍvl³H*“®îNõC“Š´"ùö±Y,åÕ‹§þÛÍýâ¹WwFº¼ ¥*ó¤é·°™¹›Ý­çÈÝqT.ÙÖ ¦0£bÕ°( qTmëì‡ñ œ·â+¿‹và®d¡ÌŸYøØ ¦åh=GŠÎ ‚ö»±©wϱcà³ã©I¨.éÖrËÔÓ°±/zl;XÐ.ñ¬Qà&ûs¶@p_o8sY¶ÀüèÒë)éziÓt 4wëågö|¯óÓ btëdX° ÇXƒ°E51ƒfÅàÆ:Çc³ûY¶OGÑØ‚»ÛÇÞkÝŠ‚J<˜2ù¦„ÂE7š‡‡æúƒ€Gà´¼Hm›@«fÂËǶ3ÉØL§nŽ4Z µmžOÓc#óÀ96B=vÓ£‰ñ<»jã­’ “|#ŒÞ§dW4Y _±lü©ÞÏ¿x´àˆ÷òXO‹5M9‡MCA¡!Ïätû¹ºiša[|°J1d¯õaÜ/w„ÅÅÜ^Á  ,AB(Ê_A–«J›¼“$Ï>:%V! uÃÓ¥NÁ±œ+JE*r"œK¦ºÝ e9¡a»„ ¾ÝžÆ•C'·‚ àˆ¸ûCÓã 4SB§á2iÆ‘.‡†’C3M½ã0…L‘[o€z‘”û(Ê„a₤±÷>°HLôºñG‘ûÐláJÚ‰°%‡LÆe‡ß‡p֌ϾŽ7µ‡c‡Søj†.><åìÜS$`LÛwÝó*÷ÂÒ(ê/ÃJc¯ÖÉSÃM¤Ëu—IEf1Žä°¾âR&9Ôï8WæSãžâH.Ã4µ›NFýKûi¨-'s¸@Q› Œ³O12òvØ e´w)¦§7lëRn¦xu–P±±Â…õ»T¦šäŸSç‚ý¼rŽ@÷Bäv80ì—õö˜ZÊÂZÞ¶];?Ç¡¸`‘<6Ý1Ž<§H¼  £i€¯‘“1’„ùM<á‰QGpZõ0€Mª¡OWð)ƒÞÈU4”“hùúˆ‚{¢š‚ “l»¦=iKŸèiì ~‹¼J"‘òóüÄ)š†øô"¤ 2ÊÂ׆,ÍLƒùn=&‰pÂK¤§+@zÖy¤÷ìæéûËðb,ÞhˆTŒƒ¼ÈÅQtÒGÐðãœÆ~®¼„:ŽC¨Þ·;Py´ì˜çË’hl†é—x`ϱ/ Ûee’c ®€ÚãA'õ\{ ¬1hù« &]]†ŒìOýÖ|’€P«ë¦ÛÈÁ±Žˆ,$Zž25AG‹å@ཇ(³ÝGFŽHè ÒXhwá¶/ØN^¨—íz€GõÊèÑeêÂÍ3,h|,BP$¦úÐx‘Pœlê1Î'_¡¶û¥9`Â+j†ºlne£.†*0‘ÆõRæØ”ŸãžÚ®‹Ô¦‰íº Õ|¨Ÿ§¸Á 0§¶—À˜lM¯›‰4¬ jÚí#“k¯/Ú-Øò³tCÞƒ"¥öÖà«QBWZCÚöÇy ÒÕæYc''*¤ˆÊ|ò+ƒÉQ+}œ´8}~~úìlïg§/)ü‰Á–·þieT°‚ÅUŠ 4‡k†‘•Ëã‘?Ñl01ªÃüŒ*®ŒŒ9‚<02ÍKx¥×<´’þ2¦U©-õÚHLcóbé™—Tt¦°qÚüˆ‰ë¥¥3»¶¯-íR'Ë~’Éym@žkŠ%Ñ`cï±çv{êü’‹”Ĉ‰Ze™_¸›±X»€¦Br8;W—l%hðÌõØvÏ2Pää] !(vº¨ šiø]…ÆŠämR{P<…!8†²„º—[Ƨ'X îÿPËú“@ÿ÷!—R}»Je!|†úŠä~ wo'ŠB.Í*-! ˆ2˜?Ra9ÒáH%ö‘Væ–¥<   ‚ã>k…ÇÍB6ŒŸ /¢ð*)¸r åW‰º„"TÿZž"<Êì î$@a¤‚`¼ô³¸l/MMxJY†œºó,+^ èQ—˜ëØ8vëÅÓ Ùjk0²]óŸžßä°ÃZˆpþ–‘'DXO5 f‹Tî; ¬55ìql›‚bTEÈP‘ã—¸—‹ {0œ}I„å˜*Ì}ÓìâzTDùs ì­Ìá)Ù¨ØÜ à_B²e²Æg Ì‚týè¶%W¸‡M#4¦!HTaoe–×!Ï¢œÊl™#bʼ„§ý¤!®ê«d" ¾´ŒöÀŒ¤½j·Aã?Uªhª†ôl~xß–ðõZMõ#Nî’T]…YgÒ*ϽG@e1ª÷µj@TÓ¥g€i®‹\¼G½M˜¡ÐZR›iy£O>¹œPÑÄaÉP¿])LµjÓ(ÚjÛOsSC±ÃS¡4Í ½wdÆ¥E ¸Ö€ 2yC‘jõ¹7ˆ²°üò®žÚùQÕcè}8a)4]}!€YXÅ8ßȽïZ{î,”ªXÔ¾  àÚiBhD¹<Í×ÐØv΃Æ[”4-oYbó%½ôª¬Åþr ËÓ2ÜÔE >K ~÷[O±Íá_61AF¦á Ó¡¸æDAKWXÞŘu¶¼./r@1 —ô6ÙÓ’yžø0ºý±æÇ…«×õ5@€Ò?×@ÝZïð.RVáMçíêV–€Ä7OB@¡Iˆ›(—ûÐIDÉ8†v‰µäõÅ1šH·ÅƒôÍKøºñ#Q%'(Y5¾•ùYñÔpßµÿ8ÇLóÈŸ”X *KÔ|OW98HùšïÝYƒ…aoÜÏ>èºàZ¦îšê#îCÙ<û6¼éXCÚN…Ÿ‚?•Ä›ûÊÈ…{¢Ã=Q‚“©ýBñ%ëùÂÉsä$‚œˆÎò3¹ÁÏk½vRð½ÄЛ¼‚x¯àPõvVõDуj4-ÑCÁ0ò)‘œÊ˜€Xñû­Ùˆ&©ÐC•µª¼öYeÔKs|æï¾_} Ý]Û7õñS.!´mºöÈCSwÃÐGŸ}ôéVQÐ ÃÙMŸoã;NÒà¨9Ñ)a¼ Ëhj»3;ví–^Èh¨ð¹®ärÌ"§%ßnæ¬ H£ô1GØÞC\…óD‡W×0š…Ò›šÈ´ÅœÉ{¯È¥}ù²‹"6‹ žøAƒÅ9 àØtp¨·£œŠ2Ã!mâõcííBòPó 0r“ ð#+~•g£ 6¡^p̬ÈS­cNÖÔ þ¾Êe°©òùÏâÃF}6ÂÎ Ô4*¼ó“^¿óJüŸŽóîÑ ‡®8ï8¢óÔ×2Ñ'EJ'tË:'¯€Ì ‰[WÖüþ¬vÍD_¦”ñ—¬¬Ä…“ÿ’É.?”¾þ° ™ìúlGîªfÿ–W<(üæ«‚[Àqþ\©Ô°Zƒ)½ÇMáj<ãL%uÑjwýl”ÎÕN1©ÑúVc:½Ò2bWÞúÞೆ*3K>oÑPwÒ'ÔžšíÀƒ@.?é" Ö(ÿKÁ4×Äjbl_=‰ÂøìæL\ñЏÁú1ü«ã\?#| ¦Eu"ª'L+ÅØ¨F>Ǽz y e¿vÉáÔ] þïGõ¯¾ùí±{^š^Ýïh:蘸æ¯o¢üÕ†óøœñFý=Æâ‡z"ϹáͳIø=¿¶e¬üƒµ—°êÎR[ep_¢²­ªpCÎøÝ.žfF-Ùðç#'T (‡CNm3A@,Þ®h5ú<ûõÍÿ çÝ}endstream endobj 1028 0 obj 3608 endobj 1034 0 obj <> stream xœXË’ë¶Ýë+° `‚ ò.ß,\®JÅÖn& Š‚4Œ)R—yäìßñ§øwÒx“¢æÎØ5U#ht7€ƒÓÝø‚bBQ¬þìouÞ|ûS&: ›6_6T#ûSÑw;%’§ˆR´;nÌ<ŠD‚D–£ÝyƒvÿA¹“I@dwØàaÚ›±ÙüŒ¤4.ŒÀ=þm‘’$øçi?öe5ÚÁðø(ÝpŠÇîrî7šáv:ïeo›iŠ»Ö~ç|>1ÃÃXV¿¹cßdr%)«®=Ììß6ÉcÓ„ã»`°‘e”¨îX৺= ½¦fŒþ³ûa³u±…ÝR{Õµd‘ö–¨]S[Z(7s³YŸŸ¢„“¢ —ÍTŽ5ÌéŽzšŒhŠ_.``P½ø³oøC„þ@)úeÑ·UÝÔÐ^ÂÇAP9 c×4]”¤$Žáž‡OÚ78KÆÂY'˜q“!ŽÊôž§eú[ CýdZäˆ25Q»Ÿ$Mcë¾ í"Q¨0ÜOã#zÒ»g\-HÖú -9Éò>Üìþ~wz3ó‚Îqw‘}9v½›ð—qÂiì@x,›A^Ãö1±°"%œú5†  J­ÀØOk Œ; _¦áÑú–äöÔUƒ™ÚõyçcûÉ„6n)¦¡¿kÇ.(YhÔ ¹sm¡pu‘ÕXkxäp’OU_iŽeóeê|A9 Êa'§1\ö®‘ð+SåYZÀ²˜ˆÚoªmSÞ ¿ W¥.ÏqÛw®åÀk~Y¶]^óÔäoTbÌÿ æõÏõàlú¶¦‚Í5Ñà×@g±V8å,Qáí+D²u".¨ë7÷ÈŠe áÙ;Ì·Tä6ÀbrÍkÛ”’„öç¡Ë/+5©ó.(’_¦²©Çו6s^·kW:êö#ZNïhù­‡§^ÂëíÀuï{hìà_Ó?þYýïël>âs¡ù¯8Ü|Äá <(Ü2…(Çtаÿi˜€S¬\0ô˜ø¥<_ù•ÐoABuZ¸†Êö*G¸‹~Íñ6‰QQXRɼº49‡ áq~ëÒPääã3$:óüIG»©~9[ˆhEd±(ØLŽÖ{|½&üZËæ0€9ðöúRƤàÉÇ/å=¸KÐî­pç"ã4@\ˆèSU¼V[gã’&Øu`ÜfÔlËuæ•¡ïêQñ›Ž½Mwª«™M˱ •ŒRûr3Tê1ˆ³P©»h‚¡8í:öÆ%בÙI°ì¯ JGo‚JÝŽÒcë¤J3…cHF§!a¸;m :"ûÆ"";‹óhf–ÍW-ƒ¡‰úxMÐ@ešñs¤_±¦|Ð#$ß%úŸì;tTEÁ€rœ¬ÒY Åœ¤œ-“ÕpHÌ1Â>òŠSXà8ñ÷48‘Û ^ÞÖpïUX†Óy©ši¨=Rf”€lÄÜrMVZ¹ÂØ•m¸?ÎA÷+.Œ –;ûÕ[Ü’EÞ`{ m ÐÓ"*xiŸI‘òR@’¡Å ˜”È}iU¢È6\UªÛ,{{–M¤¬`îrÝLéÊ¿e±³e¡jÅ>c¨FUÎ]ßë=?Ê•—KS[2ñ°\éx+E'×äi0¨m¥PõµRŽ@§Ý€ã6H+ƨd³8ˆ<&Ø !ø2@ÜŒ4f¤Hò¿ ö²*N¡h_@!þfša-0°ˆú‚Ü(h)]¡¸ÕѪ@?ƒ…ˆª« „ø :—m}™[›/è u‹^gÌ õ“ª¡àØM™Oç{Ó/ÎU\WÂÛ–¨åy@Ë'eÿýíöSMÕ]^×î왆QUï&ø'yîle%–µ…– ‰ãX%î(6ÑU†òêÎ QüüXWn”Ú"A·€ƒ÷2Œ”ásþÃ3|”ƒÕ6è>LùJfºË_?«gȶòަ6J(ãXmnPlMê{—$¡üÕ2®vô~ÛÎ3Ÿi ¬iÈJYŽñ)דµSæJÝ€}µUžifpLíXB&}pSÙRÜ×Tn”2o%Ãɼ¡ F'–.FŽ£ìWaHÂ!" â:×Àf)I)§N¼ƒ¼‰„‡=Ÿšƒ¥ÿ8&<çžÐì:áêÝ!ð¥þwö6føèíçGÁPÁx¾x}Lˆzµû>FuŹ+õxªO8H›úX‰ås±Ìù¦¡¢¥D±”räoÚ\sd…Üà­yê1Æ·äQGT p>Jón s À.×Ob ’ù*ôæe×I¹Û™çz| –ÊÙrK ³¬ÂAž¦³lís&Ë ÅCD‚àBÿÄQÉ ‚k(a¹`û„>ƒLÙž¤&5®ahÝåM¶Û2¦5¼oþÒ­‘"Ýë†÷ô~³E£½1/ÅÚ“u%‚õP•ý†­cI¡•oAKœ ³cºØO ”ð"¼ §üºÚ p³Xâ!ü½‰.ê=ºT8:–U Ev Áô‹‡Hü¼ÛüþþHé%âendstream endobj 1035 0 obj 2077 endobj 1038 0 obj <> stream xœ­[rä¶ñ_§à_8‰Ä ¾à¿<¤’”«ÊIíúƒš¡$Æ3à IE^bïà\Â×K?p¤]ÛU®Ý*±~îFwcþ“m “mñŸüݯ~ýºi²‡ùj›=\ýçÊÐt&vÇì··ˆÒV™1ÙíýÓ™¬±YS·Ùíñ*ÿ~sûoÀiL©8Pn÷WoòicÚb»­|>›¯nÿ²æUnp?ÙܸÚkóÛÇaŽÐxî§n'1e÷ãt 86ït²Éwô{:tSœœ‡ûEÁ&ï廬òaé“'ýôùòØG’yév_Û*ÿò±OP‡%ùVn¶ÍûÓn|:-ýÔï¯uÔ!ã©']܈n@a¤‚ãÓŒ¬¶®¨Ê2¿ë廚©ì`R,“ÇIgʰ„jÞ‘ÙÎÅíÈäm˜¬Ú|ÏÇ1¬£¶Ä4Ò~œid3Äut‘‚’0»×¥Û5³ÓÓñ®ŸHK¨œ¿^Ýþò c·uQÖùyœ‡eO³Œ€™Ü½“ï&~vŠëƒV½v¤0@•˨ߖN4-ÛL¿/tD•D÷»ñ´WRŸ(jU¯gH¤/ H”m†É¸C#«F àއӦ܂+¹ü¿ã ï-ú|W0hËœLÌVMáM›w¸4¼Øƒ`ºlc<É[æï&ït|kòCßE4`;Pšcwb±®ÎßE9Ý~OGÒT˜îÀÖ[²dYQœ¤ÂŸýíË üýWâó©?ŽA:l¿,| ÖÖÏÉbû µåyc@kÌ ÎÙ6UÑb„OË4d`ÛÈ1ÌŠQç÷ÓxŒ/WÅ¥" î|K¡@! MH™Ú 6ÃÆÂ.LÓ¦»PN¦ ¦¡œÑ4x½mP«0FË×½ý!päGôÇ"èëÏ$Ì« œhà°‘Õ 6^dÇ'4àÏnº±(ºõé"®•W•÷:+CnÅ Hà¬æa^Ï:Ý^XÃpzˆ„Ý)J`gÔ9\ÙI²Mr㤂VXd×Aiâmm÷Éiî§…B#–M‚¾¸Ûadm¸2–ñZÙ pרtºvšóœg¾@ ½®¥$ä@¨.ÜRlá+œµPl#—n”`w§¸›ïžÎÏ”[Ãn»i?ÿ/.uÂK>@¤>ùNöçÕƒR›sÎD<Ê`s×rYàw¬„Á’,~Ã=pêÙÊÚüaƒJ{½C¬.ÌÙ1?æäWŒa‡Ñü˜½OVQFó3¥šŸÆ€‹ Ï>ƒÿ]öÝך?Ÿ$rÖ%Ÿr†‡»¦’ó—¶0•çæOpÛ«SÖ³n¶6ÿ¦;ž½’?Íô)ù`’7–eQÛö"y¬«LóBRPçdöÆ”má]º´&Ë*«›Ì› ðhGL¹^l‡½ì2¿µvu¹L8ÍÎqQ1ã(¸Â;¸¶ùH0ÁË(®Ã"¯a•׸LHUh™ý>»ô;8Î>;º]OçŒL¦~~:, ã“tۢŅ`’Õn+Ø]U˜¶¤Ý‰!pæ›üÃíÕç€XgÏP |zö Rfõ¶ÚÎgÇ+ ÛLGW_¼K±¬c,‹G 'é"NÓ\ŽDÞeQÁZ€º*\U5qÆUMfJG§P?Zºˆ´x±¶)¶ ªj!ch*ªbê&h È«ý¶€éŸO^ Ð.@^Y½”W•MÓ?Ÿ<`d@a(Ï›—òÊ­ýyõ §Üˆ>»°(=ß £ìòìKGRkŠXqd[2–ZS¤‹8pÇ\ŒDÞ?eKf ñ¤¥Ùݸ,ãqå1X=·™q;\M$'¾’’ßìw#l†r‡*ß§núnùý*^@,i·FK.:¬ÅŒ.£qbrƒÄ„ù(\å[ñ’ÇÛBM—Í”œSó„Í÷SGAÈCz†ûaV)ߥòÝ)$Só{ÿçÍ¿âòx)×Qâó°÷»áæ¢ä{Où †¸;)ŸÁo(JÏãpZæB øÞr†† ÂJ©!ì2”‹ŠQIr‡|5·c¾ã4<9ÍÑâQÌʳÉ÷ý¹?íu2¹ °ñ yãCBÊÌXOââ5¥Ó»ýòÔèžçq7tX«fpÄá൫'›íà*¾ëÄ f÷ãÓ”}=œð*¹§«‡¯ ½ýø¾ßÜ4”x°€ßÀ¢<8Ó¶|±„‰’E¶­ãê’¾ë<ŠdÝ6Í{45þ,óÓ¸ôQÖ[jw0ŠÅ¿Ýr#:&Â&åæÅ.W^V‚«L‘G\ ä“ ?íšûHÓÅá».ð‚¼Lq| ‰H¸©Y­;t|îárçäu€‡ÐV—áØÓ¼RW›Frž7pÏ_]&0YUFŽý0õ;©À¼s©. ÖŠëðw‚uÌŽœˆf|êD8(¬øn‚ÖpõUô"™¤j‚ˆê<0hÝšˆÃk„騯ËjÝN:ÎÃP¢ÚB.R×mÔ=§èp•¸Æ| ÍCÁñØÍŠìs§ã%·âdXZqÕ´zŒO¶ù™)LŠöBç0/T–øm?× ¢{…*“r]7=t¡´žëˆ”nþ•Cg²69tÞ—´O#“u¼~œ1p·Á$vÒ(Åo‹!ZTVÚ $¼` Z1ŠÀô>2ìt¸Î«›Íù®àÇÌz|:ì£lôŹ}L  ßB=Eš¢M˜TS4R¯V·*ÑÔ;êmQ9é˜à7Ü!ý€ý:«¹)‡ßV»úûåæ‘{8„ÕáƒÎ—rÁ‰€„Я1SblºŽãI£|¿fÃAOV)®J¢Qô¤S`¦q«…ä"¢å¨¶pqx§n4Ÿ`)‰x^”@€öSñÛÑåÀÃN.¦pì:‚D×KŲmÊáõ*YyNOØþ…XÒ4a<(n¥aYLº~³ZjAÈLzø‘¤}ÐÆ5kªT'Fã-^RSPÛÝĪ0kUM6ôî þÔЋÄ܇&¯ ¯è9Ôx0öÿbéœÚ>wA)îÒè‹Ê¤ìà(Ÿ#TrzCŸa¯Âáï‰ö…²KÙÔJè$oŽ¤Ï Ükk8Ô8“Ú[ïlm!¡1«j„Ƽôfé;D iøUZ&ElÚ€hxSŒ$yÑ[Q—¥DÒJЉ>Ç$$NqžUu¼” y¹9Pœâè e™†îôpè#Ã>7·¯t¡Ø”>²n¨—\l~ûFηœ]¬g瀧q¯Ý4#‰3«ÞËK}W«xMÈ[¯q‰08.Ñg™£$l%/ÀɃìˆ1©ˆËá`JLcé£èÚé ,¤^ס„`c*œ¹#k©ýçu™÷2?,Ö¡ŠL£8 Yòùk¾yªLI!«é¹IDâ‡È›6ß¾\ mâo–8õGr9½è/àµWåÞ½ò¯«WxÑ4Ò9 ².2øÒÖm_Ïà×A(J~›«,k•M…¹”ˆúÕ‹>gi›¢®õ@r`S”íÛ T…S†yl¶ï—n8ÌÔYë~ݰKjG¿fØ8 »¤?vI]ëµa—Ô~WÃF 1ì’b/ÿåŒ÷o–ä d=±]¢° êõ÷§ ÜߥT¯Ÿ«‹ÒÖZ¡˜õ—MZócNï: c'…o¨ Ю¨vq•Å úÏ|€›¥•P–ZEzÍRh’Œç$Åæ¯þ¸€µ7ÓP½™`#É:rµy`Ùš”ÉÃ~Hà Яñ’£ +o. $¦#ŒÂç>Yå«gäñ×6=£‡îüâ˜nO<ˆ»üÁø”½ò Èû\œÆþ!öRÁƒ°ùbYnž¡Vñ†ŽO‹4Zße°´ ¾ÕP‘½\,ßüØå½‘õµ%¬/˜$ýr`7g}Ó)k´¦ù|c^6uÆEŸol|¾¹(>h¬L-¬#7 KXúðöõÍ’ —n\ð説óÙMàmMÞ­¨ÎPNKÄã»Nhë×ëÆ"Ìߎø0®Ï—,“B9¸ðº›ë¹º¹ËÖø)vÂüË/óéåICU¸<?˜ÊvEê?ryÚøÎ2Û5e¨Êi2Tå.þ8`M&Ñ'#¬²öÀC¢¿¸c ×.ȺVŽMho¢‹¬¤ë%¾Ö¿ô4Ý`_H=å#-³ìµ{¶),DüŸ&üöí¦xñz`œ+¬‡o½>øìo£<;z_¦‹¡½|9H 0.M )}ZþQ—ÉÏêq×áCãËWY8»Õ,Swšh´—i „Œ$ma%ÎÆçüÍ!Èu+ëpÁ“tíé%"Vë‰ 1q\Hq°Ê ß)1UBï ftÎ'×+¾E¼ï÷ÙÝ;~žåQ‹í¯L~-”§W_Ó¯³©?t`MµúÙA&/ðãa/ÇXè9C°¡÷Þ@±‘}:uçÇa—…ãbEB¬øˆÐ[½îÁ5{Ñ[™e¦’Ò•ÑÚü³q^¾ØMÃy‘±kø=ÆFá”ÐwmSÚ&i uïâèê~HHÝôuX…§†°Jˆ\ñ§{2*®hyªTDRµúýâ烢AmÑÔH@…ö @ x:ljN?áÊëgRõùx#=s¬$aƒSñ.œJ•˜øÏ¹ƒËî2gÄÆxüÑld-% •!}\G±óàß÷ð*ÀHŸÉJ'©29Åm8ŠJÞS ò%ÎÜX \5׸ü>‰Ñ 7b!>•>øN^U²½¨Wa ÔíýžMØXP,=bÝw»á0,C?C|mÞnH"=~õˆ’¢endstream endobj 1039 0 obj 3776 endobj 1047 0 obj <> stream xœµI’ÛÈñÞ¯ÀÍ ƒ ³°C>ib<ãp„·û ù’ÕÝ‘€jµÿ0úƒý‰y“á\« ¤4’¼¬¬ÊÚrÏ,¼6‰‰6ø“ÿÝñæW*«*z˜n6ÑÃÍÛCÑüíŽÑ7wˆR‘1ÑÝý Ï3Q•FUYGwÇ›Wñn8žv¶‡çU™'M]6ñzu›5u²1&>O]ÿ€`…CñühW»û-,Z™\ݘ$ËRXøn8Vw?,w-“ÒláU<œìØÎøʚ¤i6i¸ôrº[m6ñ¡ëm€tUZ@oUÇïVÏ_Ô±íýÔù±Û½éí4É%š<î&??¶4­k?õ§= îÞâ½pjçǵ$*>J¢[c`0O£[“•&;㞺ýüxI®¢I꺩…žm¿g„€àuÒd•QzNó¸Âå뺊‡7+³rd&ÖSø…³4ÙTÆ\òaJV·iU%EžÅ/¥™5tKõÃxl #ÒbÓOÝ4O®¹ÂËÔp=âʦnB®ŒíAPÊ Qˆîy?m?Ok?ý x¦{U|lŸýA¶Ö 'º&x“ Ñ„À¯H’r¤EUÄ»óøÎqÙâ}uäîÑŽVÀÚÄ»¶W §´ý°ÂëT&nO“Î.ãN°Í&c aôŒh—ø±—¾‰²r°~ ¦2Ï+Âý…ý\¤°Îk=^>n­Þä1DÛw,ÓÛÝl÷D($Ïïnî~ùÊ18à H¡V8u–7Iž«,0TÇ{û¡ïæn襫HããJP D:¬Pµ«¢ŒŸ\«}ždnGPÄO[¾€›]˜ÎiJ•Ûã€kÖÀ;–ö<í<\Ë{•ÔY¾w8õZ·bò¡AuÆ=R‘/ j<¸Y8íöÐM¹ &vH mAiž,—)(]Ux±< ]?£hlàp&glïg+æÔa­£q™š&>vïç3É*v¤l©½É‘$4+ãwdŒh #ãá[˜:#ÎèÄ‚uŽÇY¸9ì®û`÷‰Ÿü-ÈhÛïìäwíÚ¯ÔN‚§Ò¡²’A+FZ,—}ëïÏÎB§ç ?º4—@óÓyz´ûèÃ8Íël:0ÇFÏÁrÑdA\÷IF!zÛP‘³êØ„¨¢ûáp\`ö4½˜ÿ´úÅÒéºxEwe0\†€DÖ¾òµÆøe­s^D€3G B–HJ-Q„蓆öp¶ÑpO£¸6\fžA°£¡e£«p£¿*k$>d:ÐEåIä ¹xu”º4n•ä-‹˜åô6«7 ²%¸éšýé*äþ$5|I’ªIÒãÕ©\ÁYMz&Ê©[?sÛÍ>žÝ˜deJá9Ðõ(D©[{?ÐÍÎõl2HE@ÒÎTä"Á¹ßƒ…˜)V”™ ›`8ÃVà© †nåË”Tº[w”‹)Ónì¶Öm`8‡¤á ҌޥöÁÛax¢÷B3Oç™êA%ÄI‘Jô¤Iš¥a,¸1h(H€ CAìA‡Öž'«Ë\8”;‡-IcÍñ4rÁ¿ë†óDvœv(¨dÍ5ZCêÙ<‘ëÔÜZ‡<‹IWŠWö‹¤p´$¸¢•‡¦ üö–]k©U{>P®¿!ÓÃ4v®g€6här•4À®@ú·-KŒ‡]Ô¿˨w¢=2ñmhñƒÛ»Ç¶àËÈà³?ÙÇž°Ò²AMð?™uWI”¹zé }£ìñòžÍ‚]”iÞÃz@ùÅÙi³Á4'¤5rlÏ5’6ÒŠHØS4ô–JX3–©¶T‘g-T}aZ‡”$3Ï j»þ*Ê7‰Éš0éGÓìW%ÄëȾ'Åœ¢æý¦ªÂ8(®{-eì+ä ?î«2 ÓÐWåEN_o0§ ‚ØÕsšz*a4—Ÿc4$íEý5>s-KgÍOù|¹ðT±¸:@CÕ’UÜ™2¯@Û}Á+]¦Õ e¹`1Këá¶ü®³Ë*PÏf¹Êÿ–‰ 2âÃ0ÑøŒ’ÔI]e &_ˆ ¨0=ØçªÂôBñy.M}á`¿à£¥ƒ]ëæ×ܦcÖj°`±ËKÅ$|W~ã/$®4S?£à{þ,§Ý–Ãr{Qé"Éëÿ ¯¿0²%Óœ?ro1!M3ô”’ŠÊ¨Dâ4"ŸAaÜ(}üsÿ¬†J±Ò¤óȬ4žÛ½õƒ÷n¯"¿þâ’úÁ•£/ÓcT@ø ²e®žÉþRRHL5O†Cû3ƒi¾z¤TÚ8v|ÍW“…~|†_^1%)ËMó¥y½ÁPɶñÛ,ªõd†¿(åÂ<Ÿ.nO'ªAX1C´m]óž*~ÒÿÒ7õ{C^ºp òƘƒÍO–ßÔñÆî5—0ÜÁNâdÌ„hOÀ8E#9’+]h¿KVI¾ ¢yäh»Dß9É€,Ì:€S°ÊÕ,ó ¡Ê²IŠèjèÔ«ø»Ž XË _¦çFjÖZ"ˆ?ôà&‰ÛCû0œµ«”‡†Ý7ÒÒ‹@ûöluYŒX¹äÌ0„ÃuqâpDŸ-®ä™¼¦TZ÷Øû±ëÙÃReIá§Ó³Ò¡ÒÏ1u1X²±*Mê:ˆýI,°2”ç'=jcGÿcƒŒoÌùÓÅÙ œÚ|Vð;÷Z ÞÜŽ„äjíñ‰XØ6‚ü÷oÒ·¢6"‹0æ‰FHÀöÍO‘Ý?X®U ç cÝ’4…S¿ýé#àñ‹ÀapE„Ê!©i’¼ñOÿE)rÔdA¥(K‡ývtn-~OÝ·»îùˆ¢×qªûüæîæðû75XT­endstream endobj 1048 0 obj 4138 endobj 1051 0 obj <> stream xœÛrë¶ñÝ_Á·ÐÌ ’`ó”NÛ™t2“ië™>ç–(›D*$u|œÈ?´?Ñßëîb %ù§#Ï ,‹Å^þœ¬3•¬ñÇÿ7‡›ßÿ½(Ëäi¼Y'O7?ß(NøßæüñPJc¥’ûÝŸ§’ªHÊÂ%÷‡›T%c3= õk²k÷û¡™ê¶é§¡ÿ©¹½ÿ.år¦s§tr§\VV@d{ó!ýnw{§ÊÖªL_ûk•nûØûC3=·Ýv­³Êåé¾ýéV­ašQiC˜)`ŒŒPåißÅùµG§úVU0ݦo•E:N&÷;™jÒÃil7«/øŸûÓ~+L§mwkµ)&¯t•ơ̈Ց·Fx·év>òôe¶! Ðô|ûãý_Qìʲ¸ŒË³Âi+ ëC‹ì—y‰‹É Ð{ù‘çÎD-“Qæ0=jàbH¦çºKü¹Ä…r VYåJ?xŠgggT†gϼ$ͦ> Ò›’¦OC3z …¿1éOÓñ4%õn‚E›[ ò®J7—üðJ‡š4{ Ów0¹IðŒ4 ´ÐsÔŒ¶wW™ÌZÍU(ýïù^Ë+UÜ·]óÒnA´g›É‹Ì™RÉnþQMcÒo¥ g Ü톭J»Óá±Öpø£´M:4?ŸÚ¡Ùrò HMËÇOT5ªáæ§HdêgCÇfÓî^e¢^Nô ©,s†û#8§ùØD>Dóf¬=¾zÑŠ@D[påsÁ™1VD~«J8W…'cí§ˆ†»P €kLJítåëØ·Ý4ÊZªZ®õñVçi½?5‘°9¶ã4F»¡?D¨Ÿó°©÷ûÙÐîÒ’sÕç ìή‹Lë\Îàœ#¬D–PT駉MaéHß¶‚è±HŽy¥Ò—‹ÓÑ´°4Á’ûg4^>¤ä8 Ø’:™<ÕZèÝÑrRÙ¨Ö²nn²\¼Ñ¯Ï÷jb´«x8)3en3ĺSU•å¥l ¢Ó—öõ^ÔŒ¸™©›²ãÒ{ŠÅ„ž‚|29¸€a1Žø!QAUdo© {,²7”œàÔû}¿€dåp–d*ýØö§qÿʃ mâ×}Œ,|Ÿ¾ŠsûC;Mm ê.8Q6t–Fб‘0žM‡ o¬Ë”KÑ™ ü7CÃÄÄÀ–×ײ¸£p`‡«á dwá1ÊÌ6°’À‰\èÆe!;0ݪ¬¾D×e®4A²¸¹o1J½£LZÛqÅ£%GoPäjE\•™ì›©ÙÊDP ºÛÆ5êØìðˆÙï´©2««àyÁ±$ˆÑM⥜±•.Q&dQpŽÆ>D°#•üãuœšCâóW€×ÚúÑKDÊ‚*ŸKLÍ‚±Þsÿ;HÆ0.€f9HlúaK¡ApiQ°m0¬J¿KOGnƒ®-´´pjšUIkÔ$OÍ€cÛ©íI› œaíØïÂĽ—!…bú!R•”(Ñ4ùöÎÚ‚êGÒäk ì|Mã£%)̓9}plÛmãGø.,VŒˆ^}”6¤X ÆqAœô˜< uI74ÐFˆÊ¡[7C{D{ZI¯d‘ tõA à˜’Hl—Þ<’:ÛžGРVcÄŽD‹<…TMbÖ®ÙLq`NÿxŸ#·•^’£'¯è—îf4¼TÒkµHÕd‘޼CH…FŠ„¹6j©+!Íñ9·EÇ4z±åQ°BDH†µ9—0Q‡BQàG™2‚´BF,pOž©¼~4†ZÖÂÑîÔmð¸¹v »Ç¬”ÊU~§=šm üÓzÔg€-ðt Ã>Å¡¿Ÿ• äË<¥é¹eŽ)DFŒdD0'GnžÛAÎ,WR!$Cë™ÊÛJºs¹§£¹Õy¤¡^=ÓwßSHŽçAÊaÄo囨ñYÜ9«PyMqdA¬i˜QÜ’9|C²‰•ù'Ò¢‚üëÄM;ßõDWŽÃ1 "бþ#žžáåUúë0¢ÊoÛã‘Ìk1Ås•E‚ß ñ¼ ÇÌiˆÓ“ÊŽQ¼à*âÃfQ*a£¬’_½_!Ó§ú8½/úÓ¥[xJ0]Tâ):ó”Ø[.=eúµŠm¿)ß¾›õKÔEÊ…x ÕEªåGŠEàõDs žÇ&"pÀ±„xm¶‘J=côH(Ä'j2ªóÒúN¤$U㼑‰^Ü*Y›Ùu)ÒܶägWk+´ ¼¢Kno Ì.<ø‘‡Ôçý£Î]†ÑR9U@ÒÇxY,+üDwÂŒýF±ŠØe„´Üœ¹ôé+B¨Ø©²Ì¯­d¯´Rû—ü>6X`âlHë^â„ÿXäÑQž‹Å¥vò†…—–nÑÅͯó ÕÉ™qÍý½¶îKö…&ýØO¤—·ßZ«¥›¯øVÔ;g;gèÕfáœ+¨Rä„hè÷ݦ‡bºíê)ôZv¨H ŒèRæÕuD¤+ÉÇ7±«ÜuµÄ§Êr½M;g"æ›Á ¨›’:¡K ¹a‡f× úX¹Q€Ðý F"¼,ÎäÇq53,3çìÜÝ­-^›¥ñªbÙma¯òÅ46u¸´ð#ÚßÁñ xô–†×MÝ‹¿ *,]pñ8–ü¾"2ÖGb«‘vó ICó¼¿ãI³ÕfI"áôâG%½còÿ~úîé?‘ÌH…º óíÀK(^‹û£6x™˜r &°*Cva/”Ç—™…ÌÔ\xL`Ð+ã9å¸Cço 2 ‹o‚Ÿ÷Œ3K_üü^œ‚à(¶3úÑSn/Bï;ôphŸž/Ñæçobx a ¹(èòîÂ_‚¥¾ ðsJ‘«€(× 4Pt‘ìJPÃÝ›K?mšã$ý–Ê€U¤H®[€Z(Vb#š‚m$àuì°óÅãׇôt¤Ë઄´ŽmÅJ éÉÇvì¡ge²„àtÈzh$Ø`<ª5[µs²ÆšY­h½õ0uo=4Pͬ‡Ösb=L”YÌ“¬õÚØ,ØK_(¤ÓK»ñJxLèT›æMýñš¬ì<áÓk»:3hìÕ ƒ¦)hRy¨×x»¾†ŽìàM¬y(Â.HïÛ·p—¯ý„Çä1ø7€ärï IÏ`ÂËPDhï9ŒBPK|º–ynqEV@,‘sðÐù9`o¹8è1!oÃa“~:;èÍ9+¸@7îòLæpíGh”—­â¤Ù5½÷²8¨Ü^påë+‚¤¾’ýÌY«Ã9¡|Î À¤í²õdSC*ç?À#šï9éwpœä=’qîwÿ² 8Ç6rDgŠT±™Â§ò5ðô[Ò ”ÍÙßãôµ"ÿ>–æåÿYšÏ«êÊSkÿ‡tÜÔûPWü©Âùõ¯uøvalið©Dà–+vµ¶KB1Á¼,툜ä©ÒQ’lj# +ztЖ^]½'·ø ‹÷é·ýƒŸoº77#ã”âY~gÞã娀›ó=R0 áyê GÞ<õÏÄ»sËÐçÌjL%šý.ÒŠÌ»ÅSœôÑc„<[Çiã±Þ€ø¿ 7«!kýåÆêíûªw(/³ÊšÌÕ¥Rïœ~C`–T^/ü\…7þóŒÛä™É _rä³i^¹ ‘ŠÃ8´Ak¤è'j:ýRó ]™RHÉOóùÔH-9ß›Öôy‰|CòfÁŸCqXTW+~¥ÎªfÙÞ›Êím¹ÆÇ¬¨ñç/#…¦[vÜ!Æ$@ô|a §$Ø.Ý »¨äöMÆÞÄ‹õü§)öãäü3“Q`™pX¦?Ä<ÛwùØ rÿ9ßkÄ”RôÛ’m\sßtO—_ a š›¹6Öf*>0tvÍE½‹ì)$5¤a›nNÃÐtw”â@<„Ÿ G«ˆ_ÏÑû>.ÇÏì«:‰®Á”_Ü-¸Qmª°[¾mŒ –Þ‰â7I3íuæüΧÀG°*} Ÿ^ž&îŲVB Âò ñ‡u”QZ¾Ã¥‡ú©kÝÔè 3YÆIAŽí ½jV „oßB´ŽsúÂÏçiêÐ믳|{Æ´“Ïã*|¥ÏãÄë'>Ì)¬[‡Gz /Ø)wÉå÷:ÆEÇø^ÕMÑ¿k»–¸JÔ<;ÿe "àˆ†²Ñ«¤yÉTÃÿBW¤Cúù§LQáUºÜdWoÚ=Ä'ȋҢ#²ÿçû›¿ÁïÚdc=endstream endobj 1052 0 obj 3790 endobj 1056 0 obj <> stream xœ¥Ùnä¸ñÝ_¡·•[+‰:gƒ$&H^ìÃÌ>Èݲ[Ùn©GRÇûóù‰ü^ê$)µ{Ž Ú€Yd±Hë¦Þq”1þäÿæpõí¿Š² §«8x¼zw•Ðp ÿ6‡àwˆRåA’wWݯ3rÄ‘£L2 §ÝpÚo êáïuí*ÝÔ5ì.«GÖÁ^lG×O¬ƒáÇ};E×ß|½»$ET¦Fpš~{6¿‚3' ÏŸ–±W¸ã4Ê2tôíÔ Bî«Á$Ý%˜ñQqÀPŒ`ÈpéHm/™‡ƒ ~KÇ2¸oMôTvD‘[»Ó}ExlƹÛt(Õý#KdUGÆÄ‰“Hr[¦ž‘×–)ÂíØ°Î°M˜éP‰,¸NP²"|vÝâ#´#'1KV«à°|¡ØÜOÃþ§Yq¬€gƒ–NÔÁ“ãÅÚ¥ž_D¡°…N¦¾žêp?@0åïÜÎe['ÀÉÊSÚçinÿ¹ÎÉšAscÀ{Âòsã:Æv:¶ôd ß*€è=`Ǒ̉28¿Ÿ­®¶ÞBݬ3(ú˜:Ž-eEƒÒÞ·B¥õ*„¢é™c»%¾àõçÔu`‡èze䑸…ÑÌJŒÉ£:)(TÃvU§ì¤±B+Ž©FO¸ùYÇ œ¥í£gÄûÖù]]C»Ã Ô~Á·¤ ³6 ߀€?ýt¦öI„ÉçZdÁïí>¦Óý® =Ùz…2ŽŠ"®?½BŒLm ®éqlzš Ñ;€"J“ƒI2™Ê™-Qqw‘¥Ëë’>’ l£Cœuz²Ã½Ž¦N#ǶÔ&œ“‰èÞ?+~þIâ†m’Ç[óÍ$ ï•ùŒUÇ !wVý[­•a‡ª"û*˹3|ß3£³BxãiË:úCs8îÛ`x€x‚tø{d=_(ZïÅg ÄOê‘ÓÔÚÁ"P=òo×›„pФ•JRPF©Á(°n“¯ òŽÍc a×#„0«5òA™øÉ,tÕ±MfZ%³ÔëgÜ£‰!áæ4Žê˜Ú…ByÈû¹QìÆ#2µ: D…$ŒæTž3ñ4ºÎ£<Í?Ò"2q)jb’‡Þ™™Å‚/îïFk»k ð–iF°—{›À¼žfé{¨ :Á /¨|:&†¬ ge¹ÃôÎóéþ3/nÔŒB/úî­Do¾Ä©´JÉfñœ¾öÖbC™h꺛~ëå:šømû€Ž©ªK@:íç0ÇQ%Ê4¾¡<é=³<g³ýy.Ù˜Êúëd4D…3EÌz‚A€L[ô 1_ ýépߎgkÔ ‰•+ê(þz,N°è*ñtF¹CæÐ¥è.[²±2aº_¦¨~BX}mBˆñiQcl"º«ÐRwÓ¢B;æé.õˆêòœ"Ô4÷\¿XI”ör ûI+ñ<˜]ÎÌm‚PÂpªûH)… ¢]ÐöKváVÙã¸_ÏÛ@ìE`mƒ&nãrãyªËþ7Ž£ómÕQ›Eí1§²…5× ­Í5öÖ s =¶hHÃærÕ+ªa¡ÍäŽºä«æÙKJžé—©—®šIi}Ž.Ïa›2 ®Ÿ[CJÁ ;káŠgÁaÁ~Ó‚žŸZðÅ䩵ª/)`ìH{Îhb°ªsÉÖ×–Þ.ßå Øù]Bˆ9˜_G.¨¡ud†Öu䂊,~{lMu¶„y!Üsì}û0ßî8—ÔÖeuqž»fB4ÞÈ­Èùì­\¶)Á<, *Gm_]úÄÅï‡ygæb„:[ðÚ@œn”Õ ¬8MÆç4õ¨¬#ÞuÆ'sÖ¹F‡T]ö'ƒÉÄ´5Îæ¡‹h\PhÅÉy-ï7;Øc¼Æ µ©ºÜÝp;訟àà8tý<§ãIp ±{3n§îfs°>xD>¾™Î}¼ÉKŒÚ‹º.\P¥i¢>ž{F–]{ó9>s÷/=Ö@Ôìr9,dV ]2Ê×:Æ8¾ŽQÑ\”€juóLŠoþ=5ü˜B@–\Æâkס—Ñ`>_»N¢ÐPÐø¦Ý!^?HêÈœð3Ç/’ƒí`où©÷*ˆ¿^$R aKs(/ß[eÙD@Ž¢*Á#TŸ²CÛöøB0YAÌ™úÔd™4)´’ˆÌ ©ò%{ÄòœÂºÅ9¢®3n±DVCÀ¨†¯ú¢,6؇±¸\úhžY_¤¢¦š­ƒð`UÚR+Ì;ã×BêÁëåÊ ý™[“ §9»j µ7Ö\Š}l(¨Ô´~l€ÞÅ…P‡ P1_T1T÷ΰ˜+£òšR†’ѧ]·Ù9ÒT¨W2äá'wì¨Øj,ÑkU¬rn{ ˜F`&éh\}:g®øq[ïsÙØsÍ<š‡êR¥Cƒ ‚ðÙÒk÷ÃxhöøÖ =Tyæ‰X®'6´µ…^ÚʼŒ{»*E– kÍ,°ŽÍ©,oÜá08Ñ´ë·p4ʲãŠ^šÍ†îùQºÊT8SÑûŠPG_0ÚvV¼ òå-%Ì4*e&›Ë+2C•,"‡«dh%žØ[K!OÈÝ{Ääé’°2NÚÏìd•EÖÎcÓOT\WÉA( ´*&ž³Ž2ÿÁé0ph»Šº@½Y.Põ›àã7¸eûq0¡QŠ xÀævDìÅÓ@06;týã„63ÇàÐŒ?O‘†½e`zþÀ¶"­y_eÐ|Ï¡9X^â!Ï Æ¦ÓY䌖†ßÏ@yJ 9^ºqlßÓXÚ¥R‰Z°Ò³5uË[ ©Ñ1M£øAÌ-ÄÏ…BÊš<±¤Ê¸naývâFNýÍÌ9šò¢Ä{Î^ÞeF»\?¦˜ªÆêšÀã~¸‡´è¼¢¶Üéï’/×S|ï¨ ˜L¬Á¥ø”ÇŒ¢v ÁÊÀ­ÀJ8¥[ÒQ`ígogž3D|~0å2üqçÈ@¤5œ,¶‚PêAKËÛ‡´Í49hQ'µØ(¡HÖÍßdÎû[~ª¡»Äw5þˆŸÂïiƒÑkzú°ãÚÔ|ÜECŧ£©U£#źLC‹”ò‡Èh1çV×/sûTÈxBZoõQEßqÍEÑEÜg±|$rû‚‘m37²§vïÎ<@¯6‘ƒï¼Rañ Jžñ í*×Ф¢S­eºsÑHš@Aí„Gg8£âöhåò•QÖR‘û`œU­–Và“HÕ‘;œ&E©j~ÞVü{o¡Åªù*®Zñ|{n ljÒçÄ¢¤ÜíçÛ®¿ø²–óÓ·Àï+8ÍfF²*4ž‡ç`T°i¦kYcá®QÒ`jîIÛ~ìÛíëèfÅM_­ñZF¾¼H)_ÛyìZ.Œ‹èq«4*¾Qi¿; =q‡[ LÊÕw–33'ðeF_l…Ë\?îB ô·©]d5°Í·KMž†cÇßt!Š¿Å+kŸfm€gBq]â‚Èê ù=Cf4ºÛú|Cø¡„]Š"EKÿ±éÎÊåf†=>9Q «v6 MÃ4'2_˜­aðñêúŒ6ŒqQºFðßž}6‰ï'CÖû@Úû^ÍÙ§D?1Ôà÷Á ð1InfÞ?>CCR »ù*ªs· |£X¸­ ð€6u|C†êÖÔ9œÍñØ6£dnЇ©{¡t«TQi_ëΘKíUŒ!Hí6’wÐ2…9i›žP2ã*%‰£‘ÄC«ÒµÚR¯Äî4Õ€®½;u#«*QÈC° ;Š€f Û`ՒŬ@FnÍ?[uÕâRMßO$—ßFo0@<žfï!¨‚ †*I ŒC´é&@_ 1çÏSˆJL¥â×ÜoÎØ^G*:¯Öbq›B €“l €;xIBœX逭XZ7ì2™½I€ô+3lƒ¥"U癆-šÂ/q„¿.3R/„X‡æY± v5„޾¯éÉTRûš”kD [õ‡úvÓNS3>_ò€¹-ï–òw#·¡OGD“±É=ªíe½AÿU’3£óR;£óbü :Í«i´ßât›–¿ÂÃ>öé%…)v6ĘûfÚá·½ÚKî»V—uqËõ§ ð‡eÞXãa²à#–øã8ÍnuŽéi¨w.m‡3¶-dØRé£oS-*™ÞÌl 2šÕ6²óêÌšŸúÕvüqäO«R`#Zñà¡Ùàçˆ];oØ´ÿtwõOøýŒÞendstream endobj 1057 0 obj 3966 endobj 1061 0 obj <> stream xœÅÙrä¶ñ]_øÁÁ8—/0vÙqœ¤²©¤*qTåi8CŒ†öœå±Z¹ü þûKÓÝ8çXíº’”¥‡ÁÑh4º}¯Y%,Æó»é®^|]”%{˜®böpõú*¡if~6ûã-‚Èœ% »Ý^éu ++ Én»«;þf%r^m½Þ«ÕeWo'Ó–ŸÔl'RÞö¾=ôfEKÞŒõ*É¢ª**þØö¬Ìøvé7s;˜… ¯ûÆ.+ù2)Û p æWYÅIVðkÆ=\£~ì[=®2>l-Â#È€ÚÊoøwífLÍ~ʳ!%6¼ºýÛU"Øí߯n?¹ãÝ2l*ªHT|3tÊtÊ’ÿ8º©BŒÚR“¤¡$ÿç?¾±€‹[“ñ÷*²¿Ý!)¶çÛØäÇëýªB d9t­úiò›†ij×G¨ÿBb“iÁ‡Ñ*=*ùÛº;ìÕµ?ÌãNõ¾œ§ÒÂÑ#›A^òY‘ßÔûýä»´š:%¨ ÜÌ%nñµJCðœP¡îP¿:Ý ®Å£×F>ØCmEùDôeï7™ÔÛ«=Цž”%™ígš¥ëžÜ©ÏoB ZœT!4"+8Q=ÛžÐrÅ6py‰ÇÓkK¾^%(QдŭH8è´b!à"“ÄrÝh$ÖN’O!ºMݸ•oë ©{|;XTeeDm6ž†½í•‚–4+˜Æ;hpX¥ps°Ã蘚Öך"šCË&Y’¢ÙíÊò´²×®) ¯Š•4GóPò·3›æ¶™XÛ3’ÎÄZ“Eé-¡Œr´€# ÞJ03†Y ^oÉ dÀ[P Ú $‰æžîhî ™â✵EÃI¾‡Îâ@˼Ӗ¡KkŸôä%Š`ïÔfW÷íÔEf¬JÀ (ß©Uu¿ Ði+¨É­=.}Öö¾ýzf5¹¶ŸÚ%›Æ°]ˆ4M.)yš–$´È´FÃb×OA»×Èêq‰“<ãK§úÙc›‹&{ÿÖÁý2;ljжÉ@€2š ºUç‘ê0ª ö0$!«ª–ui•FI‘kÒL›n¶A¿Ë´£;D}t0õ8,½íÒS)4–dãË !wúaìÀÿÜ€_‹D^Tæ8 U[‚¸®Í|qjÏh­4],ÉôÅ¢vkبI 8T‚é÷Ov%HàÉãžjÓzb ¯õx8¨±ž‡qŠìXená†+7L–*àTÛ†q®û`ˆ®—i&·ÖÄN¦m9ôâë2ÉŒí!]Ú È™GϬ“H£R”)Äj· „hÌ’»J‘epS¯-L«7ƒ]ŒùcóÀÖŠ3Äê™æ6Ë8‚f³Ãÿ·¥©Ùî&Iô~7 ’¸ÄÁæ ¯Ù£ÁººýöŠ3 çìB7¼Q°ËG³z;Äà «ß^qÕ7¸šáA>Dz§¹œ¦i”æ¼m‰ ºÓe?›tþCo{…ÃôšœƒA­1&°8Nü"­0‘‚í¸‹kúh¤ël`§š” ( ¶{„–÷AÙýA·(zµ°&d±ÀjÚÔåa'õzQ`•'G¯äßbTb/;ýn•`„ NP1Ð}íª þĵáÄ^Î ¨FÑn‡ý~X ´iÊAÈkîFÍ¿[’yí$¨Çé\œ”â’Dÿb=¼E™‡¢,r­Ž éÍ|}¨tàrk6ª \‘‡e_Ì­”  :þÍ;±o@OÇ#ä—tøYäÍ)ò̘Aÿ™™«ìÊ"qZ%fº?]šG¹½…Ÿƒ !.…´ÂZS‘…Ö4¤¹\XöØ£€>³wÜmœäe$EõÞùçúÈÓÙ™ÁaD"MýÁÕ;¹ZïÛ‡ž„{j5ÄЊAÉ/äðþ×çð^mçw06“Q*òÿ†±`¼K;ïøëŸwlvï:pžEYöþ ŸÓ¤,’Y `kô™ÀÖ=ߴㆌ@»…Að£ÍïWÏjÕ8̧{Š"Êþ'|†»‚|†-êùˆòË…h´ÈÊAÍ2T„<Œ œñ=·öU³4²¬ Kêïδ)…•Ö0pg8%D.§ðìšþßJIAĉ%žÚïÕÅ;—q ‚À}4ÇDDÄœÈmB^àd¯pm-¿þµ]ï2RYTâ—ÝYÐâ2Š <¡Ä\=%Œ¨NX!„ç¥Åþ,®OׂWJDbùð¬3}ßÚgÜħJ …T§!‰€+“Kw„s Œ‘¾H,6ÚœK Êt L£"™îdüPsK Ó=Š5‰í²·$q]FÒÔ¹äß"Ð5G|¸âÖ=ë"ˆ¦'ÕIk®óU<+()Xm ¼„>‚Ë›1ZyJ5›µ¢t)âiXL'IM¶D3–öl!Ô,Ö•, œE š.¨q–œˆ ncVY¾v:M)!¡{£#ÕLpÿÏR–´ˆJimõ`ÄåÑB†Qå¥Å:´÷¿­Œd™J»0ògÿ«n%†XÊ5Š`YL §Y ë–tø*§’ˆ™pÉ!1’² ’V õ¢¬»—¡þ¥’Mº.€í”Š„z8¿T¶0 Z·¸Ô©¶ÁŸLC§æ¶Sv(•|§öRT ã73¥K•ó©W&GPÝдۧÃNùI¯D4R¸ ¥%ÕÒRä¶BisWÜ*L©È ³ƒ£ }ʹI¹©›ÙS-BQøë­!Í­£Üuˆm!ñi xœ[QÓbû^@ ƒJ€ÁLÉ:-so©ë †Ì‰jÇÌeãf>3i 2ÙÕ3Ê‚ƒ;•DE%œås¹š@îEXf*ÀASgg7·È¢¼J¬Õç|l¸ã§Î|ue¯8¿_EÚ·Àú,&ߢwþÆ0ÓÇDèÄ2`"Z|ÃCœJLþÖ˜4ášOWb‘à†RÕ\ÛÑ4@ ûPÐá‘ë: ʆꘆ´àÍ &Jß‚êÞî! Kn²?KþöS§ÖTÈ…g‚î¤gÅ‹k3ú‡É‰=¨]`ŸtOãrDh ©&Âv¥¾vØN²gjyf-]vƒøhÕPT¡Çv*Ž¡LÉÁ|雇zÞùž®£˜ÎÚ—×¾Šþ°˜r·Œ±PªlÊÖÀ@Ô mZÆÁ=%ØÂ>¦Ä_¬Ù´ý¢»ÞÎj|_¦¡™"»Pð/'ÓN ^Äœõ~ ¢—t™—ñÉ?4Ló“eî vvT×¶¯ªÓ¬êÆ>BÀQÜ£Ð3·*xP!/ãø0ÓÄÖBîÛ^M׬^ÐÅÖèX3Ì-†ef=¾X0ð®ä9è:ñ»Ê@1 rÕV=ÚèrLúâg£Rª|îà\ëaž‡Ž Zo:Ó²fuÓ¸ªèý}·½¿ÿâRa”&V²usf—Ýiâ‡í–Ùí^±?Nn>uSý+\‡1/2lßMsýF±„•Å'³„ ÆšýÀ>F¼5 ^ß<°´ªrH˜rR@$#ôé~„g|¥&B‹sVDB DA!J| âÙ)>ÌÚŠL2é5úŒ›Õ„¨+'ÖBòžBzŸÂƈòˆ2f¾ÀØ¢`pM‘.=–á [›Óh¡{2€„îFVQ.+~åþVx£uæao’’xa¢:|ûMѵWø8C––zî Ü;]3% c1M§«AcÏüq燰ָÙõy"gÜóŸ@5íæø³ùgHrMßD^؆4CG^†œ$Ö_eè6د‘Lˆ&Îxj—œŠ1ª÷ë‚c”îƒG¿ýš9UÓÃM%H[äç^Î&`†ÓBÌ‚ä‚jiJúØÎíÃ2v ªDÍ÷½C;ÓÆf•¦‰æÜwzNP¨mšÍ`w*Š`§’êõÒBxYXóAÓ9ÿ ŒRó³é—Ç´ˆôŒŸ¨7óRï1›´#ÎP[x›Ç¿­’y¬Jz¢Òö; 4íjÌ @êVj2²º£Í…YQâÛïöÕ™ÚçI”¤™]ròüFû‚Tf‡ÅñžºæøvªÖ«óļ߷{óù¡•εÃ]xä6èƒÏ=ôÁK÷aŽÐ/¹S;û·e½ÇQûÔ ­§`_ _î¼Ãq!jÏ[E¸Eûp=çà+, zŸŒ]óZd:µkÊpÄúqÊêÙ /e­{¿HÓ„$ÇØÀÿåQÙÉ"–`Jjßy½¨É~¥ÖÕãwŽä¶¿D2ìùçô „«Óaèú´(ŽRü;×ö›ýÒ„Ÿ3aøpµØª p¶Ã2Q º:Š.˜þl‚ÆÈ=0S&RÞj˜z€ø/Q8æ›Uþí!¯N •IšcAÔ^ä?:5„ô¤¦W¾­0[*E—àBp—?ß^ý þÿZ‡-Åendstream endobj 1062 0 obj 3549 endobj 1067 0 obj <> stream xœ•Ë’ã¶ñ®¯@|Y(Ñ$Hðá\ÛIÊ)W\ŽU•ƒ×J‚FÌJ¤LR+Ï&ùD~"¿—ٰݘ@t†f³K“5êAyºLsÀm¬æVpÒTe ¨XY…Ì×e–&iV( ò¨ºHJUÈ,¨†Y]ÈçËÉô¨ Âi êòdp±(àÈíöÝgž,B¥l•ƨ “ÁñüUÔ·7avO~mÛï‚¶cs:Ï/A4{¼L9 3ö<ö‰•|ßíÌÛˆêØn­ÞP[_/Ö¿} `³Ù¶^à&»—X¸3k-7ã,]œÚ±1b?ÃRé$M•’W ß¼8óxÞ¶¸L—öÈ‹‡óÜ ý”ˆ¿LÿðÈüßÜ[®uÃÖß¡Mç ·hžv»! ,‹®Ž¸Ÿ[û°$¯Ûá²p¼<ËähN i ÊXE»Àk?'†T¼¹²6Å"göî™° C¾k^×2·]3׆ GsÍdú•}¬£ð$ZÔ2ЗeR”™ö<®œxÀ)¼/ diÕK8%Ï—é@§$\-7p’Ä…ü½ÕD^Êa 4îBjùS{:Í“''/CDöÙ‡%AžRn/ãh<2¯`ÏñFD˜jýZ9º˜„ø)ÌNÝÂLª'Ò‘Üߌ7Ù½ÝIœ‡©C]}fÃGž³Ù©Ø‡9Ä'Ÿ|ºýtR,U@P¹Þ{ë•*þ_ï_ÂãsîßÚÁµÛ͇{ƺJšªn^ :©3…F¯}âëÍq¤ƒ}!œ[hqlÁöŠ <¤k‚8Êæ–ò0ŒÝ4Ó#“—μßw‚¡ƒé2¹ë`Ÿe%û­ê¤,ë`¾ô‚Už¤58–C·=0˜9§Œ@ÓsÁ‰,ÍäyèLkC~SpÞËqçȤ{Îh5‘ˆ¼Jv{Þ Ú- Þ˜ +Å)»­Ž™i䟆9ptŽÛ(œ€ÉÀKßNïÁ¡ÊöxñÛv>ýiØ4 ÈVš¼rÓóƒ 2Eð´'¼ˆ”0Ýóavpš“sÀqÝäaªB `W*¹ ’õåi˜æmۉ‚`+ùÁŒC”%Ç{Ï2¢lû0çU"ˆ®oÏx™LÀÕëƒD-Ëþ·W—çggpfÌò HIŠBÝèWÀU¢#Á”ð8 ç8— ^b¬¤XUÉ«x+Y"¥ØáT(yá6úÕC˜&¹â×/dÌõÛ¥Í9³¦I”Î×\ü·#5%µÖ»“=ErÐ(BôŸ÷2È5y>™`§#Zá{r°äHú÷ÀX gHÕ§aÛµ˜`¶›wX_#¬Ê ²°_ÐsžçNÉpf-¾[ûzÁ\q»é²HŽïãûeîzóŸ*L€¾éÑe˜½•r‡ 1‚$âj}$brÎ[ °i«bLaAñhâ±õ¸4¬%ÊeÅá9Åy‚£ÀÓw~ Ì ©Ìà‰ŠÜ s2m?tÇu~-ª”XT¸Û‚#>„)UáÛÏ¢‰F+€€‘„­9jA梠Áìu§jQ·â0B dÖ.åµ8—WÇ.œ°¹|Û3¸ü‰g($Í&€oïÖ@rÁAœ7¬ã õýà¯ÛùðvÉÔ.ßóÌÀ@ ¯†$Ó‡ˆ8žr[ )_DHµ­­Ò“&%Â%N¶Ãó1^.aïœcÂysÅÄv@:ö'HSÕHc½ƒºT±¨øMGõëe&å­K3ÿ´w ùR”9;úX„–de@{’B¬ &4ž†÷Çu<‚ɃRÞ84ü2:‚4xŒáÁ±éwd¥oâ=ÌdɈM)—H‹ÍÒb#¶ßƒ~Þ‘ È7Gü ¾·úA<·›íñw›6ZÔ‰&$°»*­üÂ>%zkPVئF–¤Z@´!Š)ʤç^Q—¢ž¿[/¾]à¨Åu‘Š?€CÇç¥E^@œW8Á ˜Q4s„™¢¶3P¢97£ÓÊÒ|›çù'•fwœ2t©7œx&âô±îM¬ ×¾aEË‹$ƒåëÓBj¸W¬iºžÒ,Ónö³qJ«LþP‰/‚IFŸAô«_@xáÚª£†B· Âß—`Þ¥/ºý}1€X߃r^XbÀ½&„ àÚëÃqvÛ}eló)”ŽÜ-i\¹nÇ3 Þ<ú‘À-z¥Q¨IyËåâºÄìçáÆ· —n6'èL²Ìˆâ¤~UB-ª£šŸŒˤ$Ok{¨äÏ#}º ÈȨn jiL¯…‡®ÏY¤6ñ Ëm|#2n—"îƒÛGcç(ÐEÏ/Âʈ’ÜSPŸÔó#¬r½pâŸG½pUÜ÷°®ÆuÐcIÄo;0ªr_C€À½7‹pýj÷Åì”ëiãžâ ­o#e{ÚŽ)öŸxsÈİ⶙ € Ídõ¡=ŸMžfù >èk7€&Þ;\°­ŠÄ¬¼6Èc Öé£HpDðžBÅ~¬B¤†#U}›vtßiD·w ÇóhÀaø•²úcEÝ]_[‹çYüMÄnßãÿNcØ87”×)(1G¦ˆ>0ε ð׆@¥(u ³6Htuø,A(ìX ŒÍc–¹µµ_Òäv8Û±›¨îæ>ê@‹4MJn>?t\¡êÈ ÷xê®ÑåM¯Þ.ñV]ƒŒ?EÉ, ¨ Ó)·6 ¡ãO"vŠÓKë.ß!k´Oj¥i!õSØbðT•L£i6ò$Ì­mjC{XïøÅ1ÞÑR ù”Ëœ90–Ú]*¹Šðu¿é+H‰‹ÆÛ’eê”2à\co”£×—£÷P-åæûvÛ!ˆ˜I¼•ÕÛ%íBåø·‹ÑÔa%endstream endobj 1068 0 obj 3141 endobj 1072 0 obj <> stream xœ½YK“Û¸¾Ï¯@íe!Gb¾™S²Tmj/IMU¶”i¸¦H™¤<3»ñ_Øßœ¯A=ìÚC*žƒðh4ýüšþ(Â@‰þìïîøðçey.ãC(o û³;Šï‰¤H…Râqÿ`Î)‘G"Ï ñx|x+ûnêW›(ƒ\)9=i7‘ãTí>¬í4NeÕÕv•Løþñ`Ÿ«Ä±UÅ®x¬d³_=þrq}¤*RÊìãæ“ª©ÓDîªó¨G;O"ÙLîvH¶r넌2Ùc¢’ , ùªk¿ŽëíÙbù*%»óq«ÿ¬fô„]ßm~ÕCxï<4ÊÓ ÍçwêvÔ×o² Sб¡™Ÿ ªM¢â ޱQ‘QI«Ò•rlŽM[ v!*èÝ××§y†qùE=g8¨ÂÒéym™%‰´ªÊJù²Ó§ÉÝ’@CÕäÉšÉß?èçfÐND²ÄóJ…A¨ œÞŸÙ¶ýîÃL•¯üëß0Ì[îÅ)+xžü>ŒK9fÅÞΩ5ôL´÷Díú®n¦fK`HÊÜdä#©·À4œõZà´5Í^4“hF±_•AYF¡’¬X[dy!TÌv.ƒ¨HK??<¾y+ó@âç¾?5ÝAÌVW) ÛºÓ> ‹ Nó„N³¾½t³0ˆ£bŽð)À'-¥>i˜ëšYeš–w«Œ—–?éÝ4ò*ŒˆwÙaùÐp[ñvsAǶ¦)n,r6µÙ²¦vÎÔŽßO“Çð«cÏŠQI&?ͦåð§ãeJ¼ŽkÏz! ßÓ-$X:Ç%cp3Ìä n_‡°n”:÷§YXÌjà¹Jd¿7㢄‡5G=n¯?í—ØzŸe¹dR”¥|ªF?©Üe©ÜÕŽœ´jÝZ,OÕ0­Ý¹ G›ˆpˇ®tø•¿ÏJè7{Õ¼TÇS«×þ¥”TÀ§¡é¦¥ˆ¤8Ò—ñì¡_Ed-ù š¢Ò$7Š¡qŠê0NzhFN´„±ú£ŸíðÉŒ[N…¼“ií‰_Σ;€Øê=Távãå]…܇AwŽ:Cè§Åv?ø»×E²m:ÖM¯Xîû¶5ú‹R>#ØY[¤§ý¹c{Š]nk±Õ5­ïdU×” ºÏH©‚ÜŽ³h;N75ȧž×;];Ýd¬XBë=¼[ýÅU…8v¹$‚{AVä%×…z¨ž¬BÏ  !…hõ~Â_@˜ŠcÿIC£ß^ltú ¾yó'xÃṩ§'qêO¢n>J/¿²§þY|ƒIH Ð]M÷Òð-lüIml«qá{q¨ëƒø¨µx»”í½ØcÙ¤¾2P0½& Ê :âÉïùÆ”9N(?œ}¡’y< &Iˆ…7¢œsjrÍV© PH×Ä!b>•Ñ)ÔäLlR@+ÎÙj“g!~HËQDÂn-©Á„Ó‰ü+­Á-‘ r¿b²µ…Œ•ƒ PQÊ$oì?ûN/4{,"Déטߓi£â2ˆal[¾¿ú·Ê¸’òû›j‚£&pLŒ”À,©ByÌ%J%¶DÉ…ïìQq¯*)Â)w+vâu¥}µ3ÔùÊI|ý1;¦þ(†}¶þ˜ÁZ†¶‚J—<..@¤À&^Gb|\׳HAÛ´vw1qœÀ±ÃŠú,¯t¡Â[¤o½@Š@AXD5ÎÚ”^Í3ù¸Ê °ŒÍhQA°Ã¹jKSæ²:¬8sáUÓQ5;Hú»]S#WŽëÅšã“!#›™:å¬í¨Ô: C#—I'«’œÖ<±1OŒÏ¸Éü>5ÇS?ú·aåoHÜO¨©—…é™^õ*ú½à*Fy–Òç\“Zÿ· s‘þly9õ¸˜s%z1-~#S&ùYð/’ãe 99Šø+a:d÷%' ïB¿ŒŠWŒÎªs“„log(ÅÜLñN&©TÙYfê-QÞljÍdÏT·½_Š–¨,¯°j–~«Bï3´µN`ï:V*$b-£¢È8!s†\†ô"œtJöçi„ÛÄnåÓMkUcDÛD(4I¸ˆ¦U'´A©z„iLÉ6f°¨IPáÀéJñçhTæxÓ‰']T Ûk4 Šü;F@÷äØ_j"WÇPï10Ù$q† œÉhWÊÌxOrãf\Ü4Õf ±›Ù9!ÝBf²«£Ü[iwÛŒN¡'òLZ¥œ2_4ƒS{Án Ÿ0d‘Ç&€ß€¢Ü¬"z#É¢S¦u\£ÈOp\E®˜ýé:M)îh]"¾QAR¼[–nŽ”M™ÁÔV#ø†·ÁøŒo‘±Ú¤¾ÑM Ͼ+_Ž“8SA–\ /¡w1æçýĘŸÇùM ˜uÄÂdÇ®q0c×ö˜›ˆ‡¦#´géEü‚0_ª{½à>úƒÏºmgŽÕ¸ö;ìMvLeö^l.îv5Ó«`2I/„O¾LÁÌþ¢¿ôaç|UÀE97.’j2-]}ÚPI‚ì7—‹·üfïböó’~[8 ϲÿ“˜FŸ|ÏA#T°4Ì/,Vhа‘oúÌ` M^­¿âÿæ/ÈJÊŒ?ÐÂ{™bŒ™h§ÄNÏ)Šg9µµ~ åÓq+¸"º-ëfl°S– }uÊ×þìÆÑ"=8wí7 ¦!œ°ž9.×MÔ¦c¼g@¡¥ÜjKÝìßÛɯp¯o€â¯²|MÝ·I¸ -Ûˆj7JçÀÆgóqÇÎ8Ó8Çù¡ï›+ù6êMŒ«-¾ 6Ùñ²hZ´GÜHKµC}"0í9rÔÙñ)w*NDÎæcPåð§ >›I› ¾ö»&if¡hêKR‡'Ýžöç6p+…ùæÊ` -Þ`:DKšºïù'#ãUÄÄ1â1™ãqþ‚O¼må1¤-¯#‡ÉBnìIcåôáN2µ[Û™#âjh¦Iw & Âk†]M]Ã=Ä]9¸'õ0ô}ôÐÕñ&Ö)ÂbC"ùÑJlx+ýŒ¯H®Gñ‰‘Zê\ MµåТ¶xä+aÿhÀAÄÀ9|ÓÜbwÈoÛö Ñ‚2¹ù¢l|ˆ¿ËåÞ¹õ4;¶T4) 8,`;sR±ûŠ=²RE@/ŽÒå¢ô¨»ÑVÆ(½wGê>®Ù#žíÕ'³qY?îrlhÛø0zã{h»ÿX)¸mþ6q”YÈ­—ïþ¶ý‹íü6ÃpjÅxÞ tÆó˜¬½í§ ܈—–½!m£[Z’ :þrVŸ©EÔ/»'1P«éŽÍ×Ñ`hO“»‹iœ,سÌè %»ù%èQ¼3AÉu>Ÿ)«Ïrnˆ¡“تùÁüÇ…ŠLgSíš¶™ôEïdþnÅJýññáŸøû/O¾Bûendstream endobj 1073 0 obj 2750 endobj 1079 0 obj <> stream xœ•]“ã¶íÝ¿B´stgWEQ¢úÔ6ít’f¦“vgú°wZ[k«+[Ž$ßÞ¦Ó¿pÿ¡ù¥@ðCönÚKNñIïI–Ê$ÃÿùßÍaõ›¿•U•ì¦U–ìV?¬$-'üÏæüáH*¥)“»Ç•哉)’ª4ÉÝa%@´Ÿ6ûäØî’±ïŽí<¬ïþ¹’yr÷.#>ó+ï5ÍãðÔâw{ÜnÇæ>ó‚èJÆfóÔ΀õRnódß6Û¾}œ“éü4›ÿÆ…‡až‡C‚»ðg³Ý&‡á£ß$\¨q[ü¼Ìy8%–þD¸˜7¹’ös§ºŸææc †›Çö¡‡ál÷öÈçÉ/›$‚ßÅÐ{ñ¸{¿Fé÷Ó©Ù€ŒìÃÅú»Ý»Eé ¬=‘è«Ç ]ãw_m3hOꢎpùµNLªéöÓ"¹UYjLU'wÛ•ø^ôŸîV߯Š4×É3xÑŸÁ‡ò,-­t‘fUrð-óTVI¿’²P©Ñ¯a˜©¿”Ò¯þþ¶{F²ÊL¥r—©F3V÷âÝZgB¯?Ü}kU–y%S…{ªŠu˜¢Ö¬—Òåæê¯ä|©ª¹I m¡ÓÌê*JoWY”¥5 ˜Ã*é0A¥2ËßÀ0W%çK•,Lªˆ½H +ùí¿¿£8O+rc ÞbU®¤º°«Ã„û6Eý&ØõBΗª\™T^Øõ/ÿzy!¥ÕÞ.L]—Æî‡лÖ2ÆôSÈÒa˜Ëc¾HË.ª"ÃÖiÍZjTé–"ê. Õ¼¿ZËlá¾¹¬ò¥º¹Ôz©®Ç:sæò˜/SWš´¶§MKX±j ­íIÀá m8{ÿŽ'5hÇÎìá¾¾úo­ Ääâk e ¨m º·6•BPÀݾ]ßæ¤ SˆmûùØÍÝpœ,’è‡á‰)êR4üY•â¡›`Ķ9çî¸s˜J4nµ.ÄçqšÃÊÔíöóMX}XKиÎkqŽxšÑ)V×â8D+ÛîñóæÜG¡øÕóqÛÂvÍqÖŸ÷í1ÚŠÍmTéJø Ûë\‹ç#ÎÖ˜»_ß‹îˆòUö€“Îû¶,K±cÍÝ|n³CVâÔŒó”:-¾yäï:/ÃÙ-”â3j逯’¢]ËT4âÓ©oŽ ^JXÜ7£ã+µðÚÁÊãÐ÷xŠ4ËL-ž×%~)-n¢mÆŒç‰.ͧö¸éú@ÛÄúšSëN^Üí„z?†TQä¢mO`OSëÀµ`‘´`VÕbxäo¸P:«¥3â#š½éÏíÄFŠfZK:H)^œ<ç!Dʧ}»e™b +³k¹=…ã: §“'%A+g®GÇîµCnð¥ÍS4»ÛwSXõßFÁ¦!‚ÜµØ C¤Á3:_]pæ—@z8sn[«’¬À4äÚˆ¶NpW øÏ˜Ø+–à« ´#DS—pß@~Gî[Cš1•óá¬M†‡9¸¥J5ø>ún·Å;µí• ãÌ€ªÅ Wú‰ÁˆËmoÛó¾Ûì%ئ&{µ¸^Fb¯üÕf»1è§dQ‹Í~·Ôžžª JŒírÀîÜ7ŽœŽ^7ä¿OM-jÒÂe?ô¸Ò”€šÐ˜B$'Ã#td4{–“¦É©™÷I3Ӣ뢡 ¾ÝƒÃ%›a<¶£ã…Ëù8š rÈîxOµ¤ ÿsú4·Þê(¡¸E‡ª°LòK©÷â¸Ò"«S^Fš–âáÅ-IŠ ²¿]ã(°@£Uºü8»RÇœµŸ·yÕ1Z=?`š˜ÃÎ@ò8†T!:¯¿"ÉlFYð‰±¯ÄYŒJ¢p¼´KÕ»Îs¦Â”@A TÛ˜ÀÚþʺ˜¶(ÑÄ\@­aÆü¦(M@ Õʧ „*±ëlÄBňBš dÆ®›QŠLmÙ5„Éè€ÂÅOFyïÓíf€pè Dx,^•_¦ñŠÈÉÏ>WnKIŠœ×† *s/¶#›0™æŒn¿ÈC²Ã0E:€=!Õo}’››‹L˜xææÉ"†¹æT!óp¦‹(gÍÑ’ÏK`ÂŒ×ïèÛÁB†ì@ßÐjœ†‰:vp~KÅ¹Ï V|j‚ ªþ;ÆhÖîüZYˆ—Å=9ý@#gÍp8gR4ˆ),ôí"ʱ¦(¬JéeˆHCb!Ù·C.¹to]§9¤7×]ƾí6Ð`ÉiFƒlëG©Cädƒke²4W¥Ûä0øfìcè#¸»ˆ•ƒa¦ÌtíøèFšÃnVpf±jJA¹ÜúÛ­*aö®UˆZ›ãÑ=aö(}?RRûFI2€ÖËËУ¹…ËÈ+[¥yã벬u,Ä\¤° ê’ºÈe›„¢”tËÅ‘%Žaa±£KÈNn,eß6kt1 |D­}¼Úr¸yJÚÃi~Y—|ðô­²¦se¼»ÑCP(aX¾ò´¤—¦íùä¢G°ë’fâÅä°;ÜT = ÷`Bün•ï ¢ž#Ë^¿7âè —Ï7oå"3ÂDÒ0×wóþ•]/袼?Îݦ鋨…EâßÁMMߦþZ¾¡1HÂ+˜_H BèÑ *ôô ó¢äZ^×ò"`Æ¢\wºc˜‡K£þwNIØUç{.íV-íZ›ÿo× Êo•Ç»‚k]ÕzH0:3nOžešsаâ¡Eßnƒ†3qºU0ï×&ÊViH•š“±`M‚ë>A\zñ»T¶¨2¾±m/Ìž‘)Pq|AF¸(­KÐw! 1¡¦–H!ðÅÒ‰©íÜMß:ÖÏs €5 IXRÙ;Lâ÷þÒùëß«ÝEÄ»ÁÚÖoï}ö‹ $=ãØ¶[*zcÒmÚ†%NrOmlä–ÚÇ Çˆ1äø²âõ*a$½ï@Þ¹ô›\¦UYå¯TÞ„:Þ"¸šs÷@ª)”ÝCˆÏm@uè$(˜!×΀†r¾CÚù]Âñتπ-¬[æY%-îC/Ò ¶ÜPö5vü Þ2¶}3C3Šéˆ+Ð,{JÂ*ë‚ô #Øí88H“U,UîçpG‰UÈÊåh·@ÆÒ±¶é)L¯úüB‚!øéK`Á¸º?¨aZIw±^ç)ÖjöÚ‹];ûoç4Ð/Ti]š`Ý`ôðRQsC“'}»C¸Æ0bªfÜ0Ó˜MëÒ–fü.T̨­QÜŒg-8|øÐå\M^Œ.ÐÞÀ±Ø2oTQ…i-÷íST¸ó*@ ÝœA÷£Ó]ñlˆ;g…#ºËa¬3‡ïÅÁ0ùX·­!Æd4?·¾UÆàƒ³°£³ƒmsk*ì9"€™Â—ÃGPð‹hGR¼m-¨ðñcn:¬ó–Õ,©}oKÜx3YÐí‚ÿ•jOKYn«ýOdnRû{Ѳƒ2‹q–^F|9¥¦É= àwµQ|÷ÉkÑqÝF)p{Iɲ£Eñ‰ÈvQÕwv­ÂTb4÷Eîi’©m†F r·E+E¸­ŸÖšFa1…-Ÿ»-uÌ–¸voHŽ·›œ²:ZáóÁ!t,pA…wÝR=uË—¤—žÞ]Î Æh7—O%ܯï;„¿±«öDC¾¯|šÂV¼Öi-í{ëUpëT~v{ã]ŽRÕòµ¹mbñÌxêÏo–ã£Âytk¥xÏ= †Ê¸¾˜õºR뛂}_Bâ9É1eÛ‘ÝZ¦(Þ¯Ó@ðW,ó” ð³²”!A4»5=âo ÝñæÚ>Øn¸¼öFUW¦6qUÈ«ªBÅU Í ~Ñ¥iQ$‰Ú›&|n ¹‘ypÎwhe{6íÞlH¶^6ºˆRÖXÌ· õÃr/‹”¾Å/mÍìŸWkµÅ׋ú/åkGSË· ºlu^…K¡€Ìåd4"†.4$Ü-VEZ§âºgÁܶHH†-R<„9z³¹Øc÷#féÞíe¼4±YŒ×–NêHÆö“I;R"‡\g3îäô-Ü“Óméè͇d—t?Ždö›Ö¡ª0²»6—«cÂ?^€!)Ck%Óà¾ô6üѾ*ƒ¸T$VÇä¦Û¿DCÅ5 ¦«Ó%9Ð÷-¯ÿu‰¸ú«ÿ×o ‘БøðYû†S”9ÇYí·V:U¹³?Žö\Ð5ô\þØlº¾›;8Ñ{Q½_‡_d¿_ýÖÜâendstream endobj 1080 0 obj 3213 endobj 1083 0 obj <> stream xœ•Ëvë¶q¯¯@W¡Z‹!Àw»iš¦=ÍÉ&©»º¾ Z¤%&©ÔÕuN¿!ÿpó¥†eû¶µÆ3ƒÁ`ž VQ¨U„¿öïþ´ùò‡,ÏÕaÚDê°ùy£iYÙ?û“úË=¢©ÒZÝ?m˜N«Ü¨<+Ôýió.¸?6Û]aY–ÁØœª¶oûƒLA×öÍdÁ".¡—a¤ó`>6SãP§¹Úÿ´ÕQEy4µP•Á‡­Iƒª»,œ{,£¨ öÃéÜ5³°Žˆµ[›ý\õ‡® eïDä.ƒ_ÇiæŠ*üup¾LGÞ™Tné—f¶ïï¿Ýh£î¿ÛÜÿþlÑUs»5 ˜Ö0*Ò"@ŽYfq|Üí‡a¬Û¾š›;7ÝôÓe¤ìÄ|¬fòXy3z`ÿ«r[û~QnâñÙOMÕ{¸ÃóËrXˆ³,4&;¸¯7AóqÜÞÿ¸²“†q‘0»à!xÁ Ø&¼ÕH ÁÍóE)] #°SÓ¹Ú7S(ÇR*°¹EH;£/*YM—GbãÂã0ÏÉXÛaU×ê4|hÀ) Á ƒH¸_œ|ž!D~ÅØgšs”ꆜs~j`è{Ân9A‘³a“š­Ýت ¸9ëÆ®°¹p˜Å™%Øeѹ0³QŽPcg¾‰‡Nuç@ ¶„Zp°¥­’5ÙØŽbó·Y8×›ò-öÓÃá7,®L6š[‡E OVee™!Œ#<`¢²”qG©u àU[L’<ÅŽ_ íNÃ$¸àÓ`'PH`¾[„a§·"¬<^vWÊ ¬Rvâr–ZíáØˆ äA‡)ƒ 仆ìÈb‰û j´Â¯Ž.’PߊhÙËj‚|d\ N¬)‚ª¶Ù»“›h×­M[‡ íK10»¸¯¦æ•‡©Él¡èû¶\L±&4’q¼C`Ö~Ør’I {A*qY†‚¨1!šôuIhƒL=CBœ8¨‡åëâœJR4ÓÂx–±BAÒb׸’-µÁ®}àý%á@VºNŽó¼0ˆÍbà¢×ftŒýBAæÈÜ óàØ¬yZÇ`´jòÆ‹l~¤õJbÊx,8Š2„ÍmäƒqŒ–ÜŽµSúJ:ŸúpF¢ŒázªÇiè.sã¨w Ibƒ¯¯È!”;ÀK׌œbgÓƒl ±(ñ! rË &AO&ΆËɯÇ69Ôe©»³$bòÏ[qÆdK¤ÍÀ$Àg†Ò7s/Uà ä ï<øªw㪛›±§+Cs¹¹²…3ŸŠIl¬ ÈK+1\ºÚa9”é«Ëë2Òÿ©ÚT³.^§ô”–ƒÂ!R1‹Š?Þ´RI¨¡ }á¸Vˆ¶—eÜJÇÔo—a =´-þòšóo>Vø ‚UX;X3^–£Ü¡Í*œ®“oÛ¨{"h]ý ‚4TÏGI,ó¶ë ´ÑwIbh¤Œ|‘ tV†öIl¾=´ýÇÛ<ƒ±èLò€âfsl«GØ jfÁ¶‡¦ÄU—³’ ö1¨‚·D³§f„ìN…ìôÇeéN—©°´#a@W5U‡Kè@ù©H …"”FˆC“"[¹`v!·4TwÆTÈÖ 2 HûÊN˜ÐjºNá+ , º­xi“W¦¾'—¹­j]ûRÐwàCØnÔ§~ïÄ}Tï%¼WÚ±;ìªÝãÎÎÛó½W•:¨#ûwÀŸ¾§š9/SU„)]3\ò.ækþi4á‚Ó›€”¦àžÕ. 7õÍýæ{˜O´]èq0a©8».ÁÈS0ï¨Pc³yzóÒ—Á>Rê8 “T™Tƒ«%üX™âT|Ë ôOj'²}û ‡sËÎÄ!«Ö¿àeš‘eæn™Î‡HÕu©¿o´.e8pÚè$Ë”‰`º‰ XÍ"ÿùß‚àpIæ|8_¹$TýêÔŸqj§a2JÅ×¾ö¶y_¿ˆ;džî÷By>|’d`J?PD,(¿ìˉ`=ðƒãqÙJ&æùB±ØîC/c aÕ/;={ìÞ܈Ÿæ ÔïºPfÓà³p7öévwmÞHp"«¶ÙŠyÛÌP¸LÅ—ùU±îÕ)y•z3©•€¤¹4´ø^æ¿ñ}œešk“;Ç;\ÝìãÕdÄ>»MÏ8›žPæÌ“Ū³¸M} ê‘öÓÁ¿&¾ K½Ú^TF”ô&ùð\M6‘bý[Ws%P…É|åÚ'âÛ€g_·;^yºô{ìž¼$m§¶^#L¨ò[LvOPµã$¯¾ y•Öø“ÇüÚtÙ‚›>:èɪÑU {0à†¶‡ã–9we8vvˆÔ6ÕÉB:‚=ªQ–lCHôåçh°A¤º!Ê}Ýæ_-››ÿZ¤Z§>ÞŸµã<¶•ÏÓw"4£Ûɯ &‡ôH¶‡ÂÅ–ì‹´´uÇn+i±Ä@h/ÍÃöOrú‚+hî=#HÀeé=O)J )ÀQí;­.éëV-+)÷î8Îä[yöš]ƒtuû„ z>7t{ÄÕF‹JBmGÅ*òŽòÂŒ /k#!ã@¶.2÷Þ{y'ȹ…tgÕ//Öf áH±éâ£!–ˆhk Í2%Eòð»zó5…¶åµ-¥Owp5ÜÎ%ü!pÁ)?Ùrå7‹%¯iÛ2:Ãa¬N2a$aj»9nâ¹ùaQñCƒ$ÈR*K“g¡)rkk!_Z[GËÓúÇW‰ŽíÐû›ØS± Ë×+m{íâåªð=·°Ô×Úû¤FIBtåX^ÊpénÂk‡¼|û íœ.ík`Ó¥“ø¥Ò¹e@ÞF+~¹âIû`.Ø‹PúöåvÊÖ¼ÇÅ~ȵ&@ÇéaÍxèoóp{:5u û`Á‘@éYæ jóaq0¯Qòúš( Ë|éZ¨búŒ´êÜS>º¼Q\¥h:®÷¡/–Ä#ÖŸýZÅ8lœ4–÷OYØ_FöxžHƒn oªËº§^šËÀž¡¿>yØÇ>«”v’¥¤”ïÃ;ÅPŽzF·.ã„H9¬€zé±¢ÐH æ FccË$´½6¦úßn Ѱno€Øá{7//TTQ\,á?tâ|%Û§þOžâ2|ˆ$ˆZ0ñµ®—£âñÇ}áÎ18´Ëà L¾JØ›“,Ìsí»úˆXÐW°ÕœÉm±†ç=¡aÁ{j뚪\ŒQÊU» —>ÿЭ„nQ¾@û÷`zö²ñúÝÿ ÁšòR4>œ!OÍôþEû¿õ¦49+({=/õìä\§õhýo×röÞ:…g)&8úôƒÿÅ€‡Qx™2)—* Èb{À%@ÆÐ Ùþuä & *´\õTíÛ.ª™ÔCÛ—mj¿ßüŒ,zendstream endobj 1084 0 obj 3319 endobj 1089 0 obj <> stream xœ¥WÍrã6 ¾û)x+݉U“”Djoí´—N§3íø–íA¶i[]Yr$¥‰ûyæ‚ AÊIöíx&!HÀ?z`ëL°µû…ÿ»óâ‡?K­Ùq\¬Ùqñ°xÌ¿ݙý´q,¦`B°ÍaáåÓ’éÒ°ÍyqÏÇ©Þ}Y®TQe¢¬ø¡¡5oëÉiJþ8Ú;¢4¯»} ªˆ~:E^УèLóf$‚×û½bŸzÒÇA<­ûK\ÿ³”¯ÛÇx5Øul`3[ ÇMw|WÇ®ï‡}Ó´•óþ@ëê†whާiurýµùu!$Ûü¶àv´¬?0àd/Ã81ðÑfËïR¹óÍ÷÷|ƒJŒÊ¤¼³K‘g•°]¾mˆÐ…·À­Ë,<_§zjúŽrþÒíGb)‚‘x$ù¹Ù¯.}Ó‘ºR󭞬â3þ¢äÓӲʪªÌáÚtsbÌÈj5wAñÖB"¿‹BÔŸÌ÷¶¥h¹hŒv×£èZe…¿)JòS=Ò À  ë‚?¯n^ÊmÊÊ_„Ì’ÿk‡žôÞ¨RÁ]d«xÛïê6‘o´‚ìx'{¾K FR\¾ŸƒjïaŽÒ= óF10€¹..žWДÏöTix›I·6úVÔ!ŽØ4ÅÏ ¾½¦™–ó´ðPøÙ‘.0Ài=»¬HÐÊH›pÀ¢¡Š×‘0îi]V>%Ói°¤o-SÒŽ´WrDy°”°ã«Ï'È)@ÑÊåÕ~!dsXPžêö€˜6º€úse>PÑ×d¢go2.E©ë;RÛ~šúó{"«d¨‹ë/vÀfËÍßPlµÈC±-óLê-ú¤ ìKáB©Ñ·-š=/ÎJffø9ÛhŽv„ûøÓrÚWÞ´PU4àœ5ßàuöG_åu°ÆÇíh-ö:ZZd¹©Dpß>ïNž#ÅGŠL™üu|š)Eg­n‚ó/)2FÑÿÎ=ÿq¹‚b %V¤Ü¡-¬¸4.ÛqUaWÅ%tˆë4ԻɵV¿|èÏ$²Ý«“üzSr½€™Ý"nÙ}% ×:ŸïÒV¶ù%Õé]T$! ¥Á¹Á€µv•Nr cÀ›lÐ)šÄ|–¹ÑÄßUÌ܇Š\·mtÝàTV¥Ì„,˜‹4ªj3¸¢*a_—¡b?ÔX3+ˆÝ“¯þK=îãÓ©p†SìAƒ…©)ªª +ûêk "wc؇CC&—û™z‡â™­m¡º:y)±Ä¢V=·VSwŠÃ£Ð¡o7A}D`%×Ðx¯é¤nûè&H5`51§ðdë=´ƒ\qåû÷`”ÊQ~@Óµ×@ÔÐÉm_÷»~þñÜfÎ^%3M¬Q©r#’Ð0ãÈãÏõ­šÛ{ágdâƒ=×ø(dEß%>03®3¹vX•™*˜äÖ0[Ä¢ÿîÀÖ”·€¼ ¯Ô6Ý{HÏ«¬,¥ ‘Žt?¼\X"¢LHt:›¢%ŒJÍÔàL„´„PŽM7Q«ò¸çžK¾šp¾Æ]¢á1ZÈd;Ö gCeËËLçUJ<¸42[ôÆ=œpß„Ž_¨‰eÈ9cážj)*LfsOæ„:äÕŠ>wˆlÈ(]jH¯=_¦ë² IŒ77_:b’qoU3›gÎ9øÌE¨4´yúãPŸ#aœžšî?TT–ç4ñ:¢X˜å¿¥ÜZ!X‚ÄìÍÝŽÿ.˜—!䛕!G«wʪ–s  rûo@§AÒŒŽêé+2óϼ« ße°†ö×$#ÊX‡îÈzÃé#-tÝŽíjø.õsÛÂŒ1 ý—] %Ìq«¿Ù8sŸo€•¼ŠèäeFJÑw²*2%cÓúy@€ ™óÚ=;Ô»¦…¨Âüñ™ëÏK¼â—ÍâøýLñÑendstream endobj 1090 0 obj 1461 endobj 1093 0 obj <> stream xœÉ’ë¶ñ>_[ DÃÜ_bW9§âT’š*òr $hD["e.o<ùˆ÷Íé• ¿—JÍaÐèF£ôNýl6‘3ü“ÿ»óÓïÿ™…yž6æõéç'Gh#ÿvgóÍ ‘”ÆåæåðÄ뜉]UyiŠ<5/ç'[FæÏ¾Þ7í«Ù7½ßÍG?¬^~ÄÅefœÃÅÏ.MiÕs\˜—ýÓ¿ì׫ç´È£2.í‘—ëDaäÒµ2±q¶Ñ±s¶Ö¡ýû÷?(Il?¼2¨ì®kǺi‡Õ¿_þ‚rT‰Èoò(Ib8 q³seá«ÎW¥VO",棔I´IKåÁ¾­wG…J;Œu?ÊÙ¾5ã1lS‡U?­Ü&Ú¸4¶~åàŽÊ¬´ïo« dÈÓÌvý~Y·{’ç9.«(Ût1‹1tg?6gP%ðËíxô ¤÷»ä•îRd9î‚´ Û(“MaÝéÔ­â €²²o~¯,»}—%UaÛéìûfWŸte ,•ci;¥¨}=ÖQ`ôݨ¨|±wn§a á<]Ø.W9dx³$¤µowjZ C×Àãƒáuâ-þõéå· …ˆáÆ\†¨ô*†K«’Ä~œɯ…ªpv»rx•ð²Ó(³•ƒ ã ”gvƒ6´ÝLFÂÛûŸ'ØîìÛ1ÒuŠPÞ 7Û T‹=`wߟ›¶éÍŸò›Ñf¨KaÜ]|8Wvøyª{Owƒ·²íëÝO¤,.Í­Ù8o„»c ¸_—¦àÆc­±#‰hœ–|êÑêo€F <²¨gi™iáµ{NÀn±Ùc.»îŒ—8£>¨#ëqf—”tºòV‘@™³ëPw#9,é}½®¦5;×ü4Iî¢"áç§1¬>ƒ×c׿ËT Öäwõ4x@åñ½‚ Ñu¿Àíý_£¬ PŸé4*™õDÚÓ䇰”tžÅHwÀé)SØ ¼$8ß_…ê@w+‡³ K ‘Xue½ðÍãƒÌ".0ÿxHwíКö2_¡ao¢,åà0·–ßA zS|,7Æ]{R MÃõ\°|4ND>çîu}6K-D$5aâÅê¬Â8¾^2ž·ÉÑ™¬Ãª¥t 9‚‡Ò|ꇇÏ>Ð|°ó‹8–˜ŸnÊ(†|‡‚¾ýÝmvã’(ÙdNÐàA£ýP=§±‹²"êïPÎÒáõ¾úÖ÷õi-ÉÒÁãDö%%g6üb´ DpÎ×¢¸V}«.H0LïÁy§ ðvæo"š°§D z‡€‡ÃDQ‰eUd 'MÒ áv»í|ˆM7 aÉ®æc~½Ñ^ê\ØU% ¤O*´€ð¨õˆn+’ÈþÄ{ u(]²L}~©ÑG­ue:<ƒCm.'ÈfðæÑBà%7(!øµ¯3S†Âãb)o†o —zÇŽ' S;O¨¢ ݤ\a]¸~¯X€9éMÕÛ¡;M#½f²É"(¬9QÚl*Mˆ! |jI%pQ)n¥äT˜ó+»ïkº† nðMô×'’ì1ñ¹Þõ]؇G‹íÚï}ئ]ŠÙ¾îÚîÃu‚'!å,Óëg™ñþ4çE´KÆBè‰ íxjßÍè‡q0[PÁ½éZóvlvGƒ;Ř7gîÊö (¾ámü>Ò +¥„Š qEJ.ª#g¾>]ŽõòsHÍ©FÓÌñ¾fú͵S)¡`‚ŠIù ‡ð4ÙÒQàD^~1UQн‚Rj¦L îo¶”.â $lä=[/ÎØ3Ú´ÄZˆŒ)iå…Pl)ùÑ9\!êö7ɶsOš[ÿ4—G>lYßD>¼htêŽr4Ž70Ji ´! µ8Aâ!ùkAQîÄkröVk%´Ã„Å#ÓÛR n°õa ûežQ‹Ç1ùtrÆú<¾_|˜‚ܨ!g#ÔØ¶£±Ýw¤8…â.±‡[>ÌEæÁïQê[(UȈKÚ&ü®(UÛh_Àœ! ûHžÃ§ñÔº \3ïåììÌ…ßcO3\o8ÇÍ¥=ÆeBä¶o^#ƒe¥É/Žc2šH)+IÚø‚Bd‘ôïp„÷õ¨õЍRZ¯È5¶Ó%ŒYM` µN1’¬u#1M!hÉ¥Vª²’J½¼$Ù Jà(Îr­v‚ŽJ4¬Î¥À-3ÜgzˆJ}èK,ß'’2Ö0‡«Éc+6)¶>ŒÙ0¸ àuI'4T=\œ>¦à Î²Ž³ V¬ƒ”ÐÛ,ï …”EmkðÒ>¬L×HCH?KûºÂÿvª°]Êc‚ é•›±3ÈqmP[›ÃÔc¢e0H›°ŸÖ.E¢HÀK<Ï-º+og\TÞÖ¹&Ç2¥Œœ2.´Í±hWÏî`ƒi ØÖAx ©)?b=¤U˜ç» æÇG‘Ò 0Czr_' ”†cœ^=ÌU•ö0HǤÕÝé¤È(H“òýæ:<@€Oã8„erҨȊÿ->$ù²zf(am¦qùÈ=$9Μ×!•³Ÿ0-Õd¢0‡¯Òø(ÊGR•Ú7ÆÝbN?¤1ŒÕv½C€É›ÓR7ûçLJá¡9U/0}Öo ƒÎiEÊã¹(œV¢óÚ}7mOІÊr^—µÂ©=œêQAWÝ‘/ÑPù@º?I§NÚõs=Epd…Õ/³`¸ª,éCÚçã(•NÛNAÚ¸]`ÅUDAÚAq•Èb.pq(æò•rK(·`&pw-‰E¦J¹X( ^ÊÝoë^JÌ¥óQ¨ze}çy.°îä›ëÝk%’Â:)6ðk …E„2¬Â}$P‘Ëõ2e!Û2ǹ95ã»ò—a&£^Ýa:)ËJ¾2P,}‚úú«¹!ˆDnǰեñÜ’˜‘}@J!ðËè«©Jµ­gÚtyx Ø‘‡ ô¶ï¦×£ü£ž.·ùõŠux<ôžQ{SÒ^j˜cÓcjÇ»_ eþ• b©ò͇¼µ *þmKì;uØ+›K۔ЩÅò¯ç¡!…­Á &5Â1¨´qh-}àãaiÃê÷YŽz´¤¤Âå|Ó„}G:*Düµ]€l³™¹Šê †ŒBö çÀË^‡îo~cù~ši ii%» ¯ wm]ñÝAƉ¶Åiu¿ÿÊ"ÂÝ|J!6égöRþÎ[A­ÐCUY±PÝkºµîÏas™w$qmb§ùš£X$¿¢ƒi¥Iá& ×YÔâPìGù ¶»“"Òlñó®V°Ÿ"–>ŽÞÚ®÷5%„Õ& ‹Íf ”ìÂC2A±BGŠÇ Š_È'wYj_'ýòϨFÉÒÅÆ¿RüÒœ§³ÎŽC‰ƒ,ê¨u%ÿä€ÇW,wSßûv\ö\Í0mÙ³¹Wñ/8·aE·baì°í0'I6Ï$€Î¿fr‰ƒ*­Ò]ü ëæGLP.”V´Ë·/Oÿ€¿ÿßø²Dendstream endobj 1094 0 obj 3477 endobj 1098 0 obj <> stream xœµ˒ܶñ¾_äbL²ÃŸöÅR*+å¤âx«|tàÌpw(qÈõ£Õº\¹ûàüCòÉ)¿—~ ÎììZr©JBF£ßhη*ŽŒŠñ¯û½»øÍ_ò¢P7ãE¬n.¾½0´¬Üëz~E(¥2F]]_ð>£ŠDy¥®v/u™(SÏë}×öÍØ~·Xš8Šã²ÐÍâõÕp™Éþ2*Ó6~yqõ«—ú›mÓ/–6™Õµ S=ÞS³s°­ôz觺íG7“zœê…©¢ªLõ»…Ia•º™! ×a¼i¯ àTÆèëfßö7áTàØoð•®²™›ÉI¥W÷î>…IÝ}’¼Œ²²™\m@ÈžS& rb0i¢>âTi•I&[_-»­ WjÇÀÀa<Ô]w§m#¼–z]Á¡Ó¶öT2½ª÷tþҥƪ¥Iø\R VI”æ ƒ}ã8{¼íˆá´»m3_åà °¨CèV$eÁNôz[÷7Íx9;j<̧pç&¬NÝxå .P¯žÕ8­¡ÔÚõ[Ø9úÍi¦¯‡}89@q¡ØR½é5=È%µI”Ùã¦Èº†·UzßÔãÐ׫®‰Ãê«EÀnôà&AŸÃm#¥¾k§­ƒò„E$Àž”ÆPáÌ@ ;ò0†f"“­»Ã()ÑË<û³‹ìµŸ¸©A Ü“˜M ¸„aŸ»8óòž»V™G)ˆ†ýóŽftõæÈ²4J S‰#mÚ}³žZ>ÛÚs¤- i²ÔïÛqrœèU³®ÙÜ+NôŸÿø(×¾è1Îõ¦Y·›F`ë ˆðÚilºëß±7Òé¹3p·DW"ß40SVUðÍq;ºÍb™ET‚˜VÇ©þQ†,= ìlšëj¨**]º) ÑÕ°¤(?>ñÒo2´ºkê€à¨ƒœkõ›úæ¦^£ß ®£‡³ÊÁPœRŸ?©TŽè”Í”OMfb@·íºa‘dú.n1R{ŒÚ¾Ì€ —3áBLèP€‡J黨zJA;×hEŽ‚åµë­C‚ã-hþo;h«S/çàß]íÌÏ¥™ùÅ\¢!BUÆqË‘Â@íK±9°Ò–CV3b ×Íœ—ýp¸Ù¢0ù,ì|‡Âª»ÃŒãùùß5ûÁ»ð¾ùöЀ(¸ ÃJ“” KÕàeC¯†ku@Yª‡f¤Èz¼X+U@j¨0ƒÙSçVæÔ– ÔÜÕ–’bœE1ø¡seˆÃïëÝ-iWŠÂ³f\R$¨Ôׇ®cÈ ZY'¸VfóìBç¤,rÚéEîv‘&85»s޼kåȸ¤¼î1»ÆËïî˜Q|‘Úφ¡uïÍìÞ«/Dëü(\«»í06¤ÕŽªƒL®{e.UÝo`Ü‚Z{…D34y z²ç²ØÔìÝ6Ñp¨“"²¶ :êÃÜׇ·õºY|òTQèÔ[À.ÈËO‡sD{¾õ ½8?- ¨÷C&Ët¼nÄ¥‘0÷Ýp ôEljà ">t!‡ZA€¼žÂb}=y¢ œsóI# ð Ùe'Ç;‚L霖x‡vÅAO¸Ä 'hõIù"Áó4fM»kúÜ÷ÒÍw.Ì&¸«ï ÜðÔÑlð\šÀpìñ¨„¼î0 mH7ûpvÀÙµ½GŠ1*Þx~¬nûM»†HŠ•ÛòÖ•²¹¤è(kRNàÍgáR=Qƒª‚Šb #7B|qíÆ(¹P}[ër&Ž©BätФ Ué<¶(¡‚ߥM$A#ÕDòŒßÒ ÓÎЙýÖz5ÝajÂê®æ•?ÎwºJ }KÀ— ±_¤³Æ³Ò<‰lÆå1vÒÓG–ZAƒ Z¬ñ°1Èö5×»£†=òÅÝ §d“qã‹f}»5.sá'# ¹2™XÍu¸„HxQîÛñ­›j ” ê7΋ –qíeäR ‰ÇhM"q,áÒ³5£±] VÁ…W)XQV®|2TTLž^™IL¼s’ê° ¼©Ý] \9Qȧˆ‡]8€ kÓTÛ@ûJ¸iŒÂÚƒ/kî´¥£Ø™ÆP4‰ÐZ$™ákªb{Æ1ˆuæŽð¸\ãó’ÑŒ¿5‚Ö‰ǹ¸ÈæR蔺dãì:IØ g7=Ôå°¢@ø™Ð-çÅOqlçC C~DÙ¹jüù’|Š£\ÒûõýhÚzÖR£çc(( ñÒãW›µ%¸môÀ/Xš¡F Žà5yÛ6”~ÌÓ9£U$$[—zp û)õ\ú5y×”꿃³cLÜŽíªó‹Õ:ÿ8çh¬XÎZÄe)õ’C›„-ÐãÔPAä ~p94fKDBg)8A­µÚCådbò¥ZQ^x˜T?(²"… ÁÅ›ý„ê?[¡”ÖW(…¯P¦ûîƒ*”¤Ì YÿD\"$¨7fQgR×å`ðz¡ˆ]À­ÉÈh“¡¨+§¸ì,K¤&•H‡À¤à¯qŒq$VMØO6EÁˆ&,U“2®Q'<òæäˆŒ*9{ªßÒUp>Ü–Ã#ññºîNj¸È!©¾9ì8ƒÚÜDØyb³FÀ™?óêè5C«$3Aä"Žì’P½À;Kÿ˜Ežþ•óZ˹çFcÈ µ¦ÂJðLbcáºúåjfD¯OŸ2yÙ8™7 ϶̘§#³‚zìŽ{Ï0 {œ­¸¦‚EC/ÍìÝ‹¬©±¹­÷Žº{J}…õ2,ÚÍ¡îõ3ñAóó#SDhT`mªÕ,IaÛiü”µ+ï6Vñ¿ËÛs¾&6b|Làë²ö;:f/݃*Ÿv£@¢ÊÕÊ 1JüKmêqÛ<؆2´ñ†šÛ¨'IÜ<ÞB°aèºD¼C—a?Vº<†º€xØÕÿˆÓ:ÜWXrݲÆkw­aB3Οqœ¸vñdôf_Ó– œâ®—hWÉ‹ÛZŹôÒšé®sbv«´|Ú:g }wÿY %|b2Ÿ_N_‚ñqú´¸òí € < Øé,=g)¾ãáeΩ”‘,¿©Ì8 ðô㮄ëÆg8aÅö½çhœIa/K£3>Âó-”-œ<݆~À÷òM¸Hà1çHúð†…Äß(й¢ƒOžmìbwþS°«Pð +rï¢ÙQˆ <ˆNþeÅ¥œO——û+Î(¸Î¾D‘¶_-"בÄÖKɪ;õLÔ1ÔÑV§2LØ5Fc_B–ŒÞÖÝõrÛ´7ÛI&¥š€1pïÌ¡ÒÕ4\ù£BÖâ=–£½Û± »wífÓôëvÌÑ oá>/„ײñŽTHÕ/\{x§È`ù ÷·ªž”´jÀïÕyÃUd¯ªP;X;} :r :s#SÍ´‘“ËN3C Xó"þÞMƒCÛa? U”Õa é §,<£pÚÂéâ$(]¤z5HsìØ_ÝFм¬šnöîDœ&xJ•|ͳËÌTI¨š|)›ëo«þ× ü3Öõ=‡Ž 4Éý b8pá0¶0‡G­BD¸=LôÙüÙ%¸Kr]¨IKÞq‚pYDi9û„Âå[RæPWÿ?vÝ ½Ý‹›j<.g’æ)WÕâ"¾nè1‹ d÷v·k6-X€k2è_¸áˆ‡‰ŠcwF*¥>¢ØöÚ×k$céÕSà‡ ¡? ž½zåây`´ÔP÷Á‡exYA©Dòå²nVÈÁc» Ê=ÚÁ‹¹Å® 6„~pcû^±+T”‰°.o;üÌé ÅOÅ>«LÁjg ªà Löù 4Ï%Zl¦–ÔH³¿ÄYžôsŸãœ±QN·Ïá­Fÿ@hKüÌ2‰à9öü“ö$Ì!ÊsÜ„ÿq—ú_`<-²Råù¨þ5nJ „Ñqe–Ž_ÊtšFI@æš«½Q½9:ؼ„Ù]Õ«y. àÍf‰â{½åÑAü…‰«À¨4qf_³2ý³ðô*2xŸ2k˜Ùß]]|uñR‘¼èŸ×pÍ…Uw±ú=°Üa¹Ysµó‰ÛÉUwñõ£?/™IA~_’¤hÅðÆŽéw&Ìr4úWHžw<öCùf'òýyçÛ™-~¶E”L$¦(?^P6«"üÏ© Xã3óø+³ß»Û8>¸§?§³3ã©à(·÷‘›ç¦xpóô1ÉÃCÃ[úÏfÍûÄBó„Pæ#ò_Îè}2#wBý£ÀŽ\,)£êcí#û)Ñ%þOÜ'yd«$WË4›s1® iä3 }4}MÎ#ûölÀX¦q%páÄF®$úíÇýYÄQV)¤·ßRna×ä—ÓIêè4§)Hm9³ù§¾ÇäYd*éÁ0Tý% >‚ ù% ¾¨ÏC¥ÿÐ|zl^FƤæƒ~Ö"¼PV€Õl° ¹ó;r:Û…eîèà¢à$ŽKãú‚ä¹43p%Í :À ¿r¹Ñyì¼|´·àjd¸x5kXÑSW'¼`ÕüµzÞºŠñ#·®¤tÒ2Æo! w˜ºw]¦êÂ^Ié—÷Ò©ËX3S×ësêJRëÚ':rÎïÛÍ`í þŒ|¿`ÂØt.±éÜ3[E¦éCý&ÓïšîÌ'OÐU ¯™â'L‘°™µys ßBð.÷^f Óÿô ´GéÂôYÇ6›õŽÝ›Ö}.£þ0íM¹?ŒcSÊ/y×}E!“s_¶…á„FÍ_ò'f¡<ìC3$÷YVðó¬É¢É‚”ÿa”G/+’µVX ÀD~–¥ó> stream xœ•ÙŽã6ò½¿‚oQoºSÔ™,È lÙÛÀ>ÌäAm˶YòHòL:1ÿ|éÖIÊvO#‹~hRu¬*ÖE¿7«ØšþÉÿÍñî«çEaöÓÝÊìïÞßYù·9š7k@)œ3ÖšõîŽé¬)SSä¥YzìÏǧfìšMg¾Lï×?"Û2šG›˜G[Å«|U™õöîm´>´Óý£sIœg.jîmWe‘E?×ÇS×Ä¥ÑilûÙc¦QÝu Ìp]™$iÄ;PTç¢Ýpöà<: FIÚý¡QxšDçSà;šÀæTï³ùP÷a߈h³xµryôè?ÞWqUåi çnÐÀ?¶“çê{‹¸I}`d%Hã‡õ_ï@dëïA¶MÓÇ÷_–JgRÄI’!xý‡·QÛ¸2o@÷v{)’(˜_ZDñ[êÖq–'V9ˆ2²U\ÀF¶íØlæö>ò ޼Ü#ÁÁ¦S³i?5JçÉÌ2³¨Ï1êQ)]̓J8œrÍžçáXÏíTüPX­Í6–C6•C¸U—U Æý}˜›k³K@0eeãmôuàúmï·Úö›mnö{ÉŰdÃþX@‡ Ç}<º¤ŠËÒ´lb>ÍõˆˆyEGv2®e˜ºè8°½€½.Äzlú9à.pl«h3œû¹Ù*ߌz ¶SšÑé<ž†© а½)4q"Ò¶ß?„sß5“. ÚhuC+ÜD?×m?lÃRé*‹"u¼íÚû7®@ñ–’£KP‚à/m­(h¿Þ QrÖ¾Œô.šZ zýPFYœÄ‰¢«  R<ж¸¢R<Ñ»ûX`‰‹¾UUÒB+p/Xý”E›À›­]Öü§Çv»mn2¸¼©m¿•‹YÂÅl·çÜaR¬à:륣Y ³ç96u¯ 8#Z3Ë6Ä4n¡ŠK!3òë®áÚ’U§Y¦—ï-J ±+ðH,¨nüRîâÊæbBï"¶"IôÆÇ9¸îJà_^›–u±[eþºƒ3Lâ‚ÈûO¢ÿ4`D÷òC3ÛñÁÀÄvàrðN2a±Ð,Ý~ØDì\lx8¡µM<©ïpÃE‹ÕmW?u̓A›}Óã’{4ÃÎÜÍ–.NWN 2ýj|»–Y†^ÐS˜§viê ÖèºwðqúZ×ñAü1ÿ•TùETq|ºm®J1P¥¬Ê¸Ê\p²M¿é† "¯+ඦÞ0¯4‰®È ÿtË<¤Í Ø1„ífüzºÚ’K!Zû{ÙìÀ‰Mí/71ÂQÙ,ÿØôõñ†MºŠ« UØ ¬ÄÁí+n2 4.NŠ4ú4N³Ìò"Bm—`:çìÏìã¡Ýtšs &…_Ý)v™EÇsà+Q‡ôËÉNÆY)±DÈ ̸Â÷_Ÿ†ŸÃåÙþÈÉÊøW¼(ÃîáÐS0({Ø=“i [ãÜ!M\\bVٌ̿S` ¡È” b„d`ö2µÛ&ÌÑcÕýþÜ¡§¦`•ç˜ö0.(‡óþ€¹SÙhÓŽ›%Ÿ<“zrØÍØàÑÄC–pð…¯N9åŠYŠïv^ }ÓΜ“f䤥¨¡ÈrTƒ~®D÷åÇ{‹6¿ˆýƒ`$‰*I92­ff̃(éXlg8ÏŠcœÔ%žõkÊÊD?ªÛñ÷sûiS£YÆqíw1ôÐoÃâjûE¶ÿèe"©Q™QJ#f3+Ù#A KÉË…Á/Ëjâ.`ŽAd^ÊÄÆ‰€ˆ*¹´|ÅÉ£_»¶o~ óa ãZ—ID¾÷iX7ýÝNÙß° Ûr^“Ey£IaÔ.$±©ÏSã©Ë°‰”‚†7)ÞÐc’1 o»Û…êùCñ™üDà©XsR/¦¤”)¥4ÆP@ÈiÉó9 £t[X‚â1ëâcä‹$mÓœti疻ʮvõyÞMŽ•!!Cwùu†òÅ¥­ ËØ´“Ù¿˜£ö¦L”pLó‌ਖ਼?B¥g@xÂpŠo¢öU½p”Z³…¢ý÷VÞI^Ò•¾­¼ ÊP cLªbÄƉó6ŸRΓGŠæ$ «Â/¸æ°°ggÑ/¨ÈDeüÔ¬`¢´pöŠ9 H#pªQ ~urE¼+´åv\ð½ðDäT×t]!}Iáœt¿‘O®àû)ãE}Œ_rõÃ8\“2áå8š[¢¥”m(‹O!šUuI¼¼@ÙËÔÌ8,¹öİȶّ L ÞÕçN—/’‹=gAÀ"’ w+^°Zë®­/¥)ãìw÷‹@ã¶zÉj  g—,¢Kµ-A3Ç…=³0ÕZ^`¤ƒ(ÙY0"¨ñyš›ãC@7EÕNK ÂST)€%K‘«@PBTzzÜõaú Ì/ø¡rǤ¢:M…§ ©ŽÆPæ-rǤÂð“,LW‘Ø­ØÊAh¶J H›ŸO`2Øy²aÔ(™9ã2›qÅòH>J}Á˜½Šzè±ö¸@xk¥ŠÖr…ÉÛ±î_4ÅêW^›bfª¯llÁU×„š ² ¶h¤ñމMÐp§réÀx¨²ºôP°"DS›ê‘”,ë”îƒ9 cû v]ºîÙLóØÌ›¸÷§g[Ô¸°ìR«veÞ4PŸô[Hˆæ‰‡‹¾ßUËÏYª‹_©ëËŸCSì]*¸vC@»±ÄIyää÷gÚ˜¬]EÿüÛx¦Zçm£¢qA¨t{U¶<³/Ðè¦Éø $£ p»˜ß‚O]4[16’y±éøÞ5 WÉg{«Ø…Ö„©â"vØz`4¯©ÇÜÆ+¬–QghL¤4KJÛu5wpö]Óïçà ۠A,rà(%8DÁ¦y•°Ë¢1\¥ ¬ ½ãBñ5u»?Ì»ÇÞ)ÏVEÛØO L´6 ×aÄÙ‚·£Â‹f9‰3 ЬuÑwì t¿W]¶‡°Vqj­ß§æØ¾?soee¯ÒÒË&.MeL™Bxb›¢aÆirÊn˜ghÈœzñ½¯½™0â^¡§R|ðxjf™€™bßMyÎ|Ëpæ^ížÅ»xbæÔÏ•UQi4&´2òŒaÉ,¬Èã…UR40pÚÔ]£tXìÆøt©oê¢Ǧ«u§É…°ï扗9Öû>}/»(}®]¡Áƒx6¬P2?õØ€~ÍÞ¹1žQËöõG D‚TªþÉÐÒbºí10ZwJ` üÕÄ}ãœ*¶z Ðvö“ìÖË}6ÇÍs®À6”Ê©£4<>ŸÚùgÏË]àb¦´ØÊv%@…ÞŒÛf1ÞNGRð:eN÷|’i…cßP)œ¡è’‚ŠVB-4'DÄ­PЖGH1ú¤’ò pÙnHfèCô>Mñ 3NQÇ#.æ…Q=Žm0tØ1“ÉJ²øZ†¸ÿ£‚lg¤ú;Úa)ZÁ—žqJ)™™~xÂG®™ZqÇ P=ê~Ϲ~É ­MKÉ׽ܔú¨g<òã×KõO†Ç9Œ'¤C_Ë7W’)òkˆçnkÀ ʰL³›¤`ðYÓ$qfXIØ@ö¯•?¶]§´›aÄûÙ‰/'®Ÿ(/î»3oÀÝÇ#^̉à¢î1ÿé·fNÇÅÛÀ^Bò­ #}qõÈW…cxòk µ:ë^dV@ô/s阓eñ3ChÂCôÎ\¥\eèI°£÷Kêrjrðö5çD½7¸+R¨o65úY6Žaû§ašÚ§N¡I%¯§<Æ–×øäI¥Ià™Ú¼ šN–ËÔIÝ£üÌOº¶Ä¨žÙ•”¬¸äí¶åÚ1l_ŠÇ¡ ,?ÛF$¸»<Ã…~àýøçÉ7”ÁBmù;ÄÍr^B˜š6cûDI}J¹e‚cH©Ã“0}¨È3eÉC`0ôtMh¦!ù¶ýr}'¥…ðªÝ©m<›œ«mƒñl0—#FX?ºè»Å–¨½@^{SO ¸aÃ)Šñ™ ö±ˆjGvº6ñ?åˆ Ì°®´òO“Q^Ü> stream xœ¥ËŽã6òÞ_¡[è…[Ñ[rJ€›Eûj`I²-wkÆ–IžžÎ?dþ!óû{[OR²Ý½,úÐ,U±X,ëEÿDaDø'ÿ·Ç»¯ÿY”eð8ÞEÁãݯw1¡ù·=ß=I™¦Aû;ž6 ÊÂÇ;3õ§c=<¶]D«‡wwq<üxg6ý4õGÁ䫯p%› ›{ ºOÒàaw÷“yxjV÷I™†IQš«$7õáÜŒþÛ¶îÈK³Qâ¼2Û§º{lvú!7û~ .n–5m·ksÅ¥5Úݹ>(sªO¹yqˆcSw*†ÍL¿×qi&ù—‡¿ nâL6•TE˜f9臶õ+fGa8 ‡_dŽWD^…eW<$Þ¡çLcZ[YÇÔ©uU…U•Dñm¾÷i™…U^¨iš¹k‡f;2œJXÅ0²°ãf ac… ³¼Ã@ ÈÍ®Ùã2¶*+SŸ“bŠå1á·´å#¤ ¬!5”°nY ¸np” Nï·fèJß`Ç:x•½G >Èqäǧ¾í&#_ˆn—kÁ!’rþôÓl\•Væ!(Z-€"1çQÔBy"ÄXeœÍZÚ=Û5§¦ÛékúNYå"$­Ÿšwçqj?më©õ$©9ö»\ âÙl`…ö¯›Éãùf2szj/¦5¨á£>¶}75¤Ç4KCÇ´AÓD ­ñÙã6Í¡'K´ifž=YÃFiÍÇíá¼k”s‚G©¨ýK=Üé(-ÌÇI¹¤°r=y¢V¹¤ ÐOº EÕNôÄÔ:¬@UýÔv‡ªst7æ+v"Œ(ÍSSï€ÃÚË´YÅta+sžHà’xÁ8ÕÃtßïïOm³m™ —ò«;t‘?’®ÿ³º/³(¬¢ÊüJÎâ²b%`Ù ö/ÃÁ²ÕÀ³28ÅþôÙÓõÝáeU"s³–ïpøžyÏÛMÛûñLÕ…N¤+Ît ‘;°™ÿÙyâ]÷à¹óÌ6/· 7“ðt5-ºwrkR1u'p-¸`•“ÿ'+Hó0.Ñ\‘@¸Úd/8?ÑtýùñIq±zô;ŒÍé>2&k'Ž™¡@NØõó-:^mN§Êd‰éúií'-XÏîMLùÎÉØ“VÉ\ ˆXµÛ#DÀ×ÎA´&6§‡Ôc°§8cX>õãØnM€¿Ø#îR KÁrѳí´]?4»VZdžF(U);Šøê; §• W4\D+š?X¤ÏžöÒʉ2r+ ÏÕ«Óö~<¦RõÊDV/Ñe¯›¹RŸO~ýÍË•,¼€†9…]øÉ³/¶qc¥Ú8%ûDF9טÏ&®ñ¹ï|Ð\ÄEIš•‘+f×ϧ´>¹àƒÕˆÎ6~3æúCÐøÜïýØ“ÅBŒxžM¤¯‚Î=ûÈNŽþÙåMgã­Lôÿ´î,JCtUìÐ(gþ?€í‹ÿ49pÇhO YçÎee=€)ê=Xë§Å¢ ú±?w“"ÙÜ•Ñxª·J Î¥æ)'+í¡ýxV”a(0žŽcÊ:q9óÜdÇ—qjޏ³Ô’œÕ0µÛúpxdU± „p×la…‘‚}Ê8Tà¸Ô€Dó3žžŠvˆc5i¥â€"ÀUN©Öî­Uô¾^±Ðûú:ëŒ Š òdù2fË·h‚cÇÌ–Oto¸¦ÎgQ–¹å\õXÎmgËä¬Ü p;RŒs=àkÔõ(q="¹DE>¼êÊ3£áO©Ø »§l‚Y±0Aô06 m%FÆnáî]! # „èÆóþÓ¶mÐô‰ ¾X]?Áêë%—¼’ùA¦¾(.%B=ViÝÌùsªeÜiXexB1\8]­2ƒSa=ÕW%]ZùF±²Ø4ÓsÓt:[+4ÖccàÂ=í\U çYêï¥0+ÉU»z‹àêòn¬c—ÓÜݦ‚:#ÍÀ‡€ÿWRU½GÖ3¸]" —t$óåÊ‹»ƒµ¬Þ/HýÝ1R½yup}wuÔ$7/ðêºïf·ˆ+è"Rü¯ð@ü$0´tM‹ö¯ Ìγcöõt±ÆÀ¶–ñÈ×Tá¥yFJ|šUÙ¾ÙNŠ`íÑØBIËåBE®¥+–ËÎBš.: ÊBÊ0bÀé!û†ãe•úOÇ~PöPâx9´¦2IÀe<7³ïg Êàù ¯ŒÒuPoc=@^ˆƒW]ë¶–››«,sä÷œgP»6':91{818‚>mÁ.á8z>Z”;@AòPxºupè'ēà Í öQ²ˆ‰««0¡ú‡Òºö“Êq%Œ³à»yÁ…¡‘xNó¾™®\ËÂ4¨Ü·)Š Ôg·½^¾‚‰éòÀyn wºÙR:ÃJÐ}»}ò¼¡ì%™ &ÜböT)úM½¾2“4ì‘rƒ(9Äf6é]ßv|‘SWWº1èç½k¨5“ ‘“¿ùš:'#)7Ìèƒ5ß^„çƒsi&ô$¤š½ØÏ Ò`»Æ'8EZб”’PÑìÄ<ýù¤rŸÆI‰ÝMjQ8c^ã¦á|”šÖÍã˜`«U-¼oaOkOõŒvYë´”<,XÊ„6¥žpÓ>ÿŒ‹ŠëôØS¢P`éУÇÑýÆñ[6¡ÒÚ!ÈÔ§*O r‚Pî樌¨fJY;êýÐüz†/Ž$†ŽC2¿áN¤—M_»PYdægó¯¦ñ`}Uš"¾Ù,F…AuÔ±¹P8EÓ»Õ!.¢´Ò°ÿ†³ÅLl˜çzÓ¢‹ø µH2Ì?{t=JaÍû–2R„Rî((éåÕ^ùiß×~»˜&!‚9Ú¥Ôq|q¸:é1O ï.…IÝ¿KMö=G Ð%Ïìݪ¸ 1FA–æÐŽCqTJ<ÁqæLQç¨Û¦¨´P¿ž›f×þ‹'ßí±žwnÒcX ®Ù4k™Ï؜ꡞt—X{ÞÜ¥5Ƕ;ûË8Bì_Ï4HÌâè86¾£$BØ}ÔÈd(üŒ;½`‹ £FšÙ#Ë\Ø<š)ˆï³u~_âë{ˆÀÞWo?úhþŒ=V0Cëãé y,¦mÞv™´Àøò­ ’P®ÿžyjIzmÈ/g­²Lº,Ù¦ñ|á9Ad|A¤hÀ>ÃlÕ/ØÞ·4ÕëºTí2™ÔG;3i2ɸV*|X> ®ù‡NÆ~ëG(ÅJÚ¦cɉ˜JŒ÷txy¾ B ®µf´¾æ¸Hã<_È)¯O¤Q~}RÌí.Qç¯ê¹j-`k­ -$¸à§PJÕ“J;r%=[`^vÿDÇÂx8O(÷BcŒn{þ¸‚D¿(äÉ·Âo~³t,Ë$}ãM° “¢ªfvP 4»K>yEf¿ tŒ*r&¡p®¤Ìê— ·DyLO°ì±xµü HóÆ$ ²ï¼¹ôHø]÷úy‘1¦ÞŠá%üÎK âüãßÿúo¤WOs¤ÏŽcIö<9–c=9ÞL7„?úÏ•Èú¼B¯Â¤ŸõÃÞ»Þ r#çÔøí–îÝ+ç‡/žKáš‘°ÊÃôŽv·Ú‰KE©j  Æó jë}? ÀÅó³ˆE9èÙ6ÄÚ¨L\‡Á¥&”ü\§&iVr+}ð†q$êú@¢·äÏ(†g©‰“ SåÃ?TܼÇæIt‘Å×CˆŽx¤ ŠÛ‹¸-ø‘ÀR-±æÆ|E x±þÊœ†¶›ä ¨S󯔭”<Ž”—@Sû_'åÏÖO]¬§ÅçùåG¨.ø)À’µÖ~¸?ƒu»¨¿…ÒäÉ3ìoZõÒB2ñ¶ ªRÞä(Œ´¾‘/lÂ<¬Øëëj¨3°¼›,U±Ù‚÷ô¢àõV6µKwœ²ØkI˜Îl;Ï¢ŒB&nëQú,¨–¿mvÅþNAjâ/ ..£` ~S¢1¸!½h:Oœ%“fžŸßïnCÉñrPµKœª' –ߨºMFcY7©Ã¦ñcIœv3ìŒòqÞ¯TE½“ <O%×wîµ=(žóáÄðP?Ê#€«yÕi"DÂ?ïá‰TN<*‘íö<(!ãޣȩó¬â¢YÃä ù©Npctòúùòä©þ–ùTrûYsÎÍDåU1óÂxûѱÀ²ÿ¼}rK•ù’Ïkç:æßvžº>LÍÐA1ä—Å=DÅÇå#9ÿL¥¤"ŒºÚà‚Km:¹^ÇPµ©¤9gž2–ßÏ  úàU*¾1Ì¡à¬_Ƴ€F¤’PËZÒ‘Ó ?ýi9§ÿ™ÙÆÛ‹ÌÎL|Ýš( ‘­\k"ô+=¨ìQu3²Ù>2Wð§¹ ñ·….gľ$6Ü—ñ¼¹YoöG±³ƒYÎuÖ Â–‘fÝ~At•5CVI{ì}'aH  ðk.'«\cÂV8¹GŸ8CðIªŸ?óë¦I«´ £ñ(¸6VRæïîþÿž›žendstream endobj 1111 0 obj 3654 endobj 1114 0 obj <> stream xœ¥YQ㸠~Ÿ_¡·s¯%˶Ծí¢@·hÑk »÷àq”‰»‰³û÷Ú?Ñ¿WR%;ÉÌlQ,‘,’¢HŠü¨ù…e)gþó¿ÍñîÝß˪bã]Æï~¹ãv™ùŸæÈÞo,‰bœ³ÍîÎñqV V•šmŽw‰JyÊKö~0õ—‡z8´W›"›*ˆM¥ªà‚mþ|·ùñSòþyµ.´H3Í“­Ù­tª•®tRŸÓ½_R<ùé/ÿpžUÉv¨W\¦Z—:y‰?‰¦HÜÞ~ª’i?ôçÇ} ­‡(|ÚZÐÉ8pÔB&_í.ªPÉ\T¿‹ãÚóÂãó8™c”óÔNûþ<ÅuÜð ”’˜<Ù€?oþvª¸$;= +0Z–É<™ÛÕ1DÖ:å"—l¶wŸ’m;˜fjWí”çó³¬ÖyQ¦ZÈd<™¦ý g¿ðÒ™ÂNÀÎ/š‚¨ëÝd—<íÛfO3¢/Lé2iGƒ7z"+’Yê8´&¢xÒvQ­¨#²×C¤²†I£~§¸gë,¶öfZ£}ÑP»þpèW¢«ªŒÃºÛƉJãx³ª@šV“˜Pt)‹¤·®Âûä}ÇFsª‡z"Ûî ÛÇŽ5uÇ ;°6õÌÚy÷ÌìÁG¶ë Í/gÓ5†‚ä†þ¿{9:ªÁÁ×Ò…FLW¡ñrA'*ô[¹@jN¹Ž¶“äe™oìý¬‚Ùéd¬›p^6kÑ,鈰Td4úî¾›æI;‘Фž‚H³¿“¶ ÃÉE¸åå ßh¢ µ~QÛ¨¡§ºÐÆÀ…^Dðs¸üh—pù£ãÊ99†RU¥à·äãî*3ç*•Y2í÷¦g•ŠB“;l!CÞÒ¦Â[ÆÜg;š€¾­Á ±ѸŽìqùL`üÞc8;êÑtXg‰µ%éàÇãy {á3.\ýt„òJÅî2):;œ+Ö5<+Ó²PÑ7p ™ËT@ÌzgÛ© ;†¼2À5„R·M‰Z¡ËÜTÀó8ÒW×ÓwU&­5¯†éîI¢ÏxÄY¥©ˆ¨°áMäo•ì†þ…YkÑä48_q¨^_ÛþttþB/æå¥¿fgÝaÕK¦yo „Zºç2È%xC—!…|òQÎ¥˜EùÏWQ^‰´ä¼rl6A_d4¨¥³kðéÜ‘àL¿*XÉTÉ\-RZ®+€S¥ƒ~Œ9Ûϰön Áõ‚—†v;ãvÐÂ3ŒfšÚîѯjðc?ÄÕ¶ÛÎâ¦Ýž¡BÚ@`_™ÉÈ!Á÷Ô mÙ“u±†”b™Š¼%îÔÌÌ¢C¸«%àþ¶úápgÊÒc¸ü°ôO¥àüõdöíÚÏxp¡¿mÊŤ\7Óèg•$X£Õ4ÓáyFvŒœç)Wò͸EÊ¡E ®{Ú¢˜íݘÓä¿ËÊÃ'¢òÁà–~ëÑÌ¡NœÂB›È…9Ù­” e7QAüò‚‚Âw ¬™Gƒš ‚ÌÓ\K¯µMT— ”L³¢ 7PIÿŶMª´i‹=Ø8ÒB'ç w°í’Ï$Ohý¡Ý²¡}ÜOÌ·Eðk˜Sé:ÞÖE•ÊBTl‘—kåöµ¡§0ôâ½2³…û‚Êäœã×4Œ¿M Å¥‡0+y°«J ý×I¨ «Ú÷"›Î}²2¤‡*D®]•´„29õm7Ær±£u ìÓ=ZPdç9al?ÃÏ7#œëeÚ”á+°Œ¸Œ±<ØŒ|_ßÝ8yîj§—fZDJÖ¦±W4Ý6epËõÒÚ<ì¥ÙW„Dõál0$ ð7.q™4ûº{4$&C8&Ê$…WáÀÆà×ð% 'º’ÜÊôYÐi‘c:ª§¶ïhYùzK¬.ܽÊ5QA[½ï&Êt¡×ÑùŽ–¶æ1<;lF³”»ÜØt5C?5{3¬ílC©‚·®ïœœ…ÿ³ZW2K5˜âãŽÙ6ƒÕð_ÍD}Nä;Á Áï¸ýùñ3S“~^ÝCí¸XÄ!Ã#¸ÎîZ$l/ +kˆ¹¥S€‹wÒiǨöŸlËêUÉ”þ.UÔ[Z” %roØ\^o¾¸“ß§ÀÅÖÅŸÚÑØNÚKÃãÚ¿’¶´ÌX‰Œ}¨Íxêqz>˜+ ¯^Ƽ€ØÊ¯²“_ɱ%µ²ˆT'ÿ‚»5R1"ÜGè®ì›–%€&èiÅ3û(g<Ô‘žÎ&ƒœ  ÇwšSœxœá%[œ„Ìxnwiät™†È‰…ó«Î!f¨yÙåi‰7¼óc¨10 d6‰çbîÑ–°yÀò;äD«5ž¯¶;?.\[jeä®uvŸçowßîHOž‰ƒ^¥ü&àb•ð4naA±¡ÆÅQ5áØ¹ë=h‚ÕLq©™ ‚üüà^Œ&FÝu#ŽQþ± ,Ų—"žÊ³àìÃÞ4î Ø—•yY_¤”¶¾¼RNî=$cÿ¢ë¦ˆNHB懈®ö=\!“Ç3d$!P¬¹enÍEcW:ˆlšÉ{­Us4.öHRß4çaÀ×8ÿ *ZëáFAŸÌ´†d×|¹„ׇǖv9ü Ý6¸·œõwW=<óO-zùåZ÷7<*.<ºíÏ!± Ö8} ‡] ‰ß+Þp¶%*99ÛM¯å=ÙM_;Bå¯N í®†{˜àɦ™¼×|í¸«d.uîkû­ºéêB¥Z¨¥«Ñ–Ö„W”Z}pj‹½úÉ×8¸óÿõlÎ>Ìnl]­­?‹<1¯xA´(2ÛSÞ@Ñv `½õAì=ù¯•H܉ˆ!:ÏÞ|q®„{—µŒÔHùɱÝn³¹m–<õ98•åbéxÛ&.ÕCQ9 ïBÁÅ.7ë#Ílåø•føgŠ1 X•£¼eÕBd$Ó°1 ˆ+l°-¦[asñÐyÄ1üð‰Ú·À&È׃9Ôt±–χ 5¶*ÏÍžY-=“Jsn‘ œ"8>Jëð4PêË'GÇÇ–?ºÞ°Ê}ë ùj¸©Ï+»Ë6wƒÿþ”tendstream endobj 1115 0 obj 2629 endobj 1118 0 obj <> stream xœµË’ã¶ñ>_Ê%ÐfÄ|‚Î%åI6v*©8ɤ|ØÍ’0#Ú©%©Õj]•Oð?Äübú&)iv™v¥”vöý3y×פyÐzCÈ%S¡±e¿‰céº<ñÅÓZ®Ûƒ FF—2zê·»•𝠢ÀÄsè§e~!ðiÓJuû0í„à;1?Û„Fkð)$óËèog{éqù½¡H.ISItNîÛÑ1Nâtñâûê±)‡C‡÷æà Æì|þŒi+Mæ1û â$i!Ò]õ¸<Åñ«0«úa‚Q=°ô÷ÆÍùF¯G!¿Þb\¸{ŽnÜ |iôlˆvDf0R+›ñUo1ÀÎÈBvÇñsðPá…ˆlÙ×µ"ÑiÂuØË8µvZoÚAh|û¼’Ï™ðûi<»ÿnÀ\‘jO£mž´Ð{H=oåH[‹=%0Ú»v_ÏvÇ\¸lf’ŠB<Ô^h“÷Ü‚U¦úo ¼åáаÍd˜²‚†nÁçÕ8†ç‡O‘ÆàY3´€…RÈ’ÁÉŠOü\$ü,™ÓÙ®M; 0lG¶QQfhw¥¨5óŠžÉ»rëË2O+ajáú‰¡wÊ=Ëù’8Oƒ$‹8IÀ1jV¦Ñ\° ð0Ì}Ù÷‚mÛµ‡Ç­ŸŸ­b®²? ·B‹Ë³‘æHB”…ˆô,4¾m°¬€[gŽœ‡r!¹ÍD÷XœôÓl]¹‰o¹uå&ÕðEK!Å‚»::‚潈ÉàÈDÒ('oýTt˲ ÈÀùO q-Aûd\‹ãó¸ÆìØ i *‡òP ˆ¿ïÁQmüfhí4vMIå Ñ·)‚";aÂYV3F›¶qÓÊ®lltøH 0×! Ë&R_Ü}òÐ˸(‚Âù˜ØJ'+ÖØÅÞ9 Q½€dög㵌$¦qq`÷$©Ûpåz+ù´Ésˆ<6!f”ø„ˆñ ­iw`Ãeë“(Áf‚¥z&à逿g~8˜„¼Ÿ=Ð3Ë€;;ÏxÀDPVQºŽcÈ–} ŽèXƒS¢†K|®N²%#Ç-c ”„cõ÷O0€ÇxØ­\G!ÊÏ¡ÆÛN ÝãÃiš`à‰Ê5²Œ>ââ8ËÏGMaò¿>›×rç'Æ—Ë0•ÄM«uîYkÔw;KM憬@ÓJrùØÄ”Ë+Iá© çÞæÏn´¬Á¯¨¡ý±VÆôö•ŒL™ÿ^u8®[†¨8¢zÇsš‹ähg|³§ø‚ʲ3~åÇटe\éL¥ù5g"m~gŸq`qþ9Þ9]×ÈÜþŽí—ÃâÝxÏÞlÁßçÙs·1>›Xq-çÜ»àfäaÕCÍt‘øìZþ_ gŒ±Å¢V'åË?̦¯š¢ŠÅäšöÒV³ô¶Z6)¤«pÕl_BÕ„1¸vL‹‘4%Å9$Å{Ž‘˜W\,å*Xeêö™äX>|ÁËÆôøY…#aù,öáÆÍ–[¸„SÌ>Ë iþ¤…«jJk‹ôês®cêõPN¹iÁt>Õ}Ÿö~tp‚zwL3eû“É]'ë`Í<)%ŸbòÄ_ŸãËaÚYõF6÷117/üòZj^à8,"úâACüFuBðr難OêFvN= žñ"Þng¤Æf‡ÇÛ•£(ôÄü°Ý£Oã®7O¥—>S΃gxò< u]öÛÙJ³™£Q¼©àÙõè?ÕoÜPV5}¢Â¢rHr%;=ÀŠ™y¨ØŸÀ.èq„ðø¯D®J6PäñÉw@iiï¨Q ²ädll¢cÄAUQv·‘ÅøÍ-—VH1ÖÜèË£‘ñ £K‡¸€h‹AY½‡ù­¶oÄë·÷7†Ÿÿ;~ïendstream endobj 1119 0 obj 3449 endobj 1123 0 obj <> stream xœíYË’ë¶ÝÏWpÈ5ÃKðÍdåØ7§\q%žª,îõ‚’ ŠTrÆãðïø÷Ò4@I¾cg‘¬RZF£ÑèÇið_Që(ÁŸûßîÞý½¬ªèÉÞ%ÑÓÝ¿î4MGîowŠþøH$u¤uôx¸ãu:ªÒ¨*›èñt÷AÕ±ŽÓ:úb1OS»3¶ûqóÐÄM§¹2›ïÿ‚êB8ÔqZ6°ôë»ÇÏ>¨Çcg7YVÄeVª}7™ÝÜmÒè±ãÒïIçx=ka!fmÒ:…m3 0ÔÎÕ2ˆ´< ´BŠš¡v¦Y"žÈ•mOÒÓ ìëÙÄBÙ¨ê›CèíÆe²xLÝp\qœÀŠWèʳ&4taoçv£ ¬I¬l'š¼hµê†MÑ?ØöLËš´Qcí‚GÍþ>œ÷âTÞ€ÃP'Ûh¼dÑí 2äi9Ÿ¼Hc]WFw-„Ï0@Œ¹“‘V­ëVpOƒk—åš.W#†8¡{ãàDÐdêÔ¾†Å@¤ÙﻹÔ$oV“uC?n„G¥þA×!½6HƦ ÜArúý¸l{óÀ¦ƒ:Èš¸ýÛþz˜Ó¨ |Z0²Q/©ÄÇxRµO¼˜&K7œ–¤yæUáY(1‡‚Ñ"³ ݸ_Åêtë–ìZ»’ Œ_M V_»Ýrî Æ·,"Ÿ¥üGGŠÆCÔ‘8åȘ2cÈR´p ¥ô¤!=-Û a°ŽÞ°¹ü&ä’kÖðÛÈ…¨t!)†»WÎç¾3Â%)0G˜2S»eš † Ðê4zZmu 4Àaú×MIT…ZIA†*»‚s†`œþi>b A,xn¤—PåÅÚíMª¢kÝÇÑWsÔövŒÚE  7KWÙîihçe‚Kmm´  i Ñþ÷̔ҢŸõ¬³ž/nF×MÞ¸évØ3AXšB)UÕBðù›ë?p¼Ëšp°qJ7Ø…Äm¼É»¤š¬ÒŽ}úÙ€`6É `úÙ­ˆ z‘ïÞ‰ƒâqªr½ÎÊTÁ®J–S«×@²>!N8È%„“]{ká kë£ý"[–’ù]JÏ\ -ÈFj{ÐUu„Àƒ! ›žWÀ׆Oúóæ¡‚lÓ$úÆÅ ‡%=,IJÜfõÉ€OÛá‰B€o"2ävõÂv`!>å†R‹À3ŸÎKò6G» ½±ö7¬åÁ´âÈëÚzÅ©óå€SÎ (iSƒJXÅ^“JnÅ ¨_&Þ‡©9ÂÓ´¼{¡!;›ƒ>³+ÕŸØZ@ja‚£Þ†<æcö•Êßåäç‘oXÂlz¿š¾°ÍßéOrÈUýNÇëúk! .WÅäZœ/“[롘¥„“ØùÚªÔIÀf›KPþfiôåÔú`üò „äD$UÇãÃKãÜWí§öå&>ÔX8Ê|²Á ‘ø²$ªÑ×jFºØÎ}a‰½¢d:ÉTøÓ@¶Í³;¼ÇÐß»35€ë_†ݱ=¹Hãf9ŒP‡ÓšLl½ˆÍ*¾Ð€zé( 8ÊÓb»ŸÙøàjÀœëà¤]¤B(Ž?‡¢µï¡bµ»©;#C„€5Kt lŸ@Í€¬ïæW,™žX£IY­ ø6áá å]TÝÖ½h_»B7‹Þû¾Œí—©Ý¿XÈwÃ>2<:w†”\&JƒYb0ä& G`(½†Ú€ÚWDÀ?Ðp¥m¨3ðU©.‹˜÷8Э)v]g>=‡Q<Àý'Vü4Ù9ì|n'×ÓI¹’qøtjûþUfk¶®‚ Ë-Ÿº§£ç¦ÕrS×"_¢ Ð2Ë*!]nÁv-‡:ÚÉÊd *ÝoÇ“'…è~œ¬ ¤`°æ@IúÒJ7‡6 Ggçñìzã[âI¯›çÞïuÜqœVÒx¡®­ÿ H"³¼Š°3æÚÚ®ãF ÔUu+<;@Øy Mɶ7†zÍΚ5hгËj >ËG¥fA Шí¸ÖÒ `ˆ`W`¸*0d*g]b;“|é:dÇvâJ»kwLIƒØDa¹ê‘(Ɇn»^çdDñENèã `†³‡öuqd_?L”? ýÕ[9ø*;Pe­«Ü‚ߎ\ä„wy„;3µKT±ŒZÜF¸d+¿å’tÓR–¸L²Ú_Pìy?z9‹úVÎŒ3‡tf*]˜ÔŽyƒŒRØÈ¬ÃÄê©ï¬Õö¶0»¨Éòu$åR‚àüÚ›«€JcŸHµÈí=Õ,a†BB“à ôðD8†_E­¢¥rá—z.ü:üÃ1×MP¬sˆjëc]gR‡lZØy1*ñl„°`)²†oò>l+ _„¸{º”*j\÷@‰ö*„ÎÓ'u””üVÍ피›”cG¯áܯ}eë¦Â"¬ñ€Y`ÝJÑ—ÈR<≪T?rL"à }×EgGê¢ó}9b¹¨^ »jš^¼h6W+}(')3®må…å Q™"WVÕb¿Ü†ºáÈx£É¯pNK½C¤)úi§vØù1~Ó¶übÃ+kº{šhœñBºùÂ9u|“Ò¼ŒÓTªÃ•ç°wÜñ2>™ ØLòú2ÇxW»b¥mVûO ’°X˱RËVÅ !¯­ýá €ýçn\¦$#öm8Ìš.>@<Šä)Ó?s#'Ÿc>ŠÑ{~IŸ@pp gÓ¿*\ô« $¯MgîvôJSX¹2N¼DÞBP2ö 6ÜÜêQœ%YñÁKºRÿ]‹»{UÅNv;x+ÿ˜K½Jò Oõ-ºš0·¯}ßn{?¯WRº7i+ÅGiÐWÛíÃîãHG䵊ˆþ2–ð»8 ͉8ÁuT…¨Z¤ëf€Ç/ó••¹> stream xœ•Ë’ã¶ñ>_ò%T2b€ÏcœÊÆ›J¥*ñÜv| $j†EÊ$åY¥ò ÙoN?Ðõð¬]s4Ñh4ý†~RI¬U‚îÿöððÇåE¡^¦‡D½<üô iZ¹Ûƒúö P k•ÖêiÿÀë´*SUä¥z:ׇc׸žÉÊèg?jd¥Ö²2¯"·¹,-£®í¦‰NG™ÒÑ<ÈÞ6ê›Z%e4¿Ê溊6õÔ •GùÕý.Lw°PqUyôâwÖÀ©É¢º;ùÝm´­{™.¢M89MÍ.ð¸äëØÕÛfõÃÓß@nOxúý'äî áfT0V‡v·ë5ì š/¢Ï³Ú¾Öc½›qЉ Þoé®ÂB±Œulsõa3µÿY­u'If£FVøËÃ{ãßžÇ,óLG»f¿ª`Ǫ¨¢úÔÍn*3PK `Æ}6)œ ž連5›mû…¤_lÕ2k Ȭí_„ §=™"ö±뿼œÆ@os ÂÖÑqlû9 9à±B8`ª_ À’×ÖŒ×7'âÐ ŽSÝ­Ö&ÏãDçQ;7‡ Á 4)zŽtâæ’<:ÀÙô¼Še¾r†ÃPíÚ±ÙÎíÊÀ½WÖ.Dv€ÛìëM×Ȫ²@ÉÜ®Ýób°¥}36ýÐhwA-ÝyeUU¸Ø,6Û¾SÓËL´Æ€HÂ@®G0é~Pj7ò^xïJ¢=ªn£ÊØü ‡“Z·eï8𱩍¡à¢%/&¸×©²Pœuס`\ ïqÓ4úØïZ¿ôçvG:À¸™o™:UÒv½Øq½}™Âäd˜dôZ¯4XfeªKUD½Å±k·í¬H bê9ñ#âO’¸ÊJx¸<¸kÊÊM+àU˜‘¼Zk­cSjÞðÈêÃ0Ìhë×4½r¡#ÍÁš÷-€”†_Q9‹&@‹E#÷‚½5ÎÒèåtceV£…;1èÔóTÁ2ëÎùÚÔ»;ŒÛNY9Y}Š…«Ô W¤ñ6Îá³Üc¦ïÌ,c.c£CS÷ì4­ÿ…áÔ4wN“Åy’¿šuªM\$•Bã¢mšn écÌ}s.Mœ”©3|È+ãP'àeN]ç&*ð?Í´ÛãÜ}p¾o0„.<ÖÌV@™5Äq‘^ÀC}–3öM¸Ð˜øæä6Ñ`Q©\Ño§n£ë`h!B—Y%øS3OÂç2žÃ¢å Oä;¯ùt D¸\UO^Îältk0TºuPÊ9Ò¸´ ´ÊD_ÆIÐ*  /~.úî¼Ê‰Ñ THAÐxJ–ºì.„î§D}•%þn˜‡”îf9= ã–«#Þã…c0¨Br2Ìþœøºp  åy<ÍážÛ-¸ßóUЇ¸mºIÁ%H޹Ia¢Þ Ü©¶‡¯ãç8¥:ŽÌŠ&7=œ&årÐêR#‘‹÷ão¦¾ùóp<íË묞Ÿ·Ï+¥”ú[ü}¬¾­·¯ß¼µþ1̤Uœe>H)s”ºt7¼À㪆”¥ùéÔôÛæ–ï<…#‹Ç&>¯ù2OnDéÛ^È¢¢œ„ð±µô¡•'\Êà– ›¹ö$röŒµŽ+ÌC¥ˆå&s ƒçÃfèâðáã>¬=µùìsÚB¥Ë3Š…I]»{Ìá*ŠÀœVõûA&`——–Õ#¿ÐÉþQ–š¨\»Ä‰>dŽžÕ †’ÿØãýi1³Är(/ßÖ“@i½µó«@Z\ö$¼@’»\x*€Ù5ûyýÊñ‡0 ŸQóžCXXûDÁÛ¶MR c!Yeª{“òãg‹lKÐìb DkrJ7ʘڸ‚Z”•ñ¿×Šá0ÓºEôu¨¬£ë®ØÊ¢nè¹:#®5– }À\°#Ί Ì€”ú—ùõqAu“Ë&È›ü¹Ð¬žJ:ÕSÝݧ÷¬ŸœÛ”A?)®©z‚’oÛLS=:/ ÁýQÁí‘cÛp‚F§™XWO³‚ Qa =«OÓ¢^È¢>°ò¦>È­-Dv¸<_7Cz†dkº;•ÁvüAeAêãYÈ]šT`?«ò1ÁsùÅÜõSšÌ¸—*C™ÊgãjO.ãÐʳw#«ILŒÓO{Ÿr»CýpOUASî×H7½vÞ™³b—šä3u} ¨ªe×7ˆÊB‡àåì21ÙVVŒo}ûª¦×áÔí b²ú=f^ »"¾×w£ðWoŸUÐtyÕV¿ûŠº¯¼,ÈÔ’PØæ÷Øó±á·b ;Œ>°+è+Pån¿*±¯ ·ÏË`›JÉ=¿ÿ†›&ê¯#¨~xÆýê!¨”ÑÛÆåÓúGN„¬k ÁXKåŽ@Qå4µ[™Ë¨`êVÒa?7ʺ4yä—‘ ˜±uäŒMfÛŸ\[p›¸7"‡ùNmhÔÖÞPr,ÖWæ^K ÷ZÊ5¤€ôô«³yNî¦Êú ´ÒãZõ§Ã¦ù‰mF}¨ùž™œô¢ù ñþÅó­kwëàõPŠ¿{ïÍÞZê¦Ü{³Ç©2%s¥a¸›â/èr=LG.´„p„›zÒÞà)öÆLCªI`?RHrš,Ô.Ж\ù)ÛëJÒžCÐÌsíãþ‚…ÑÓ+\£Ëó7¡±UV×ÏúîlZ~‹ðBc‡æ˜›–¦˜åדн`ô,„úPr't¦TwÓ < ‰sT¡f™›»¾ø8L9s!Öʯ˜‹[ra.á€SãËõ‹ŸÁ@$±@š4Çü£þì:MÔ Ç |œÝ¸@×"@–†UY%WŽ\%—¬ÉùÜD¼`Ë/“–I þ»¹¾r·úöI8K8ËÆ-+Ÿ( ÔÜÒOëßÜT~ò /  9×/ IîòrîB!¤ë¾h×Ú¡±oA d$(;´Í@aê Mˆé\øjH:—C¿ aüÂK9íV:C"À†S•÷Oå;ðÌŽëvÉ..•ÆŸS€JúÓ›ËEÞ–P”‘7h eO+ÿJòãÊ?2XCN/©ÍwÜýÁ°¾mFφ6ð3$áÏQù¼"Òyzø'üý¿ˆñÍendstream endobj 1129 0 obj 3458 endobj 1133 0 obj <> stream xœÍÉrì¶ñ®¯ÀÍG¢ ÜrKR©X©¸*q©Ê= Œ†6‡“œ·ä#ü;ù½4z!@é=Å9¤*¥ƒÐì½£ùEe©V™ÿãÿûóÍ7ßWu­žç›L=ßür£­øßþ¬þøàIšRi­Ž7ħU«ºjÔÃùæ1yrËç†Ý]Þê´¨ªd99Ê<éí¼*Ož'»_‘U2ŒKDj‡ƒP¶±"9Ž}?îò2ÍtÝ$ºá™qµNζä%ÞÆ p‘³Ûa¿ÄI¼ÖÉÑ헙͖éÐÍ‹‚õjü½Ñ¹zøÛÍÃ×ÉùÚ/Ý¥÷tU‘6…Y G°D5ç”á¼Hî¼Î :yj%¶¿Ê§¼MÆ•¶L\ÔS€í´Ó ˜QŽ׳Fi“tsØî2¹½;¸CÐïéS ´²Ì“KØÆx§@ 0s÷<ܦ.Öa8t{ ¦£¿¼§¬ÚŸìðìÔ2*0E¹6iÛ‚ÑÁ×h€/MÓ¢RuTèü&ª›X2ƒ™·È<\ÏOnRóÅí»_ݬì ìÓ<ö×ʼn˜ª&1¨À7ß×E!™«;p]­z8ÜPÀæ‹Ý{~—ï~ÚÂÝ úÇäáê€úE™ÑÉG{†PݰŸœA™§q9©CA™»qø“ÊÕeì†e~CS¼ÖæN«æ·é³»+t V× ùµ©KVÌc Q²"™Üá ²™´å2!>æóVpö¸øt^!óB¤Ê‰ª”d&ªrÑÄg±™d"è‹[+ª]AÎn™_´·‰ŠR6Œ‹r­E…Z)¬<ŸmÍêü¯° 6ìɼNµ©´/å¤Iujrõôþò ÜöÕ¶6Ð;L#eÿà Û`åõ?~Øé jÑäÉ(_ ×× gœc ï€;Ý‚ T=F«l7rKÔ(ÀFê‚yõ2-îp+%·¾ŠÜgÃ’{.óC¤ÚàÙçµ xj'^óm; AþŒØØürc~ÁI³í£,ŸY‘V‡×-áÔh®ó|K7R‡$\ûe/#ñ]‚¨ã®Å²ñm£ŸWmN³g¶ÂüÐ7¿Ïð@çµ¢©)ĉiPíУ—þS°Ú>«›0‰¢àoiµOΟ¡ž$‡3H “êL ™:M=”µëi*ÈÞÙ]îSŒ{釄µ‰e´kù#®Yå±àþnÿóÊ a».B ñÃÖ‰½;.)ãš\Zsuóí*íˆöãušƒö/t„ÃW´¯7Ü­îZ K[ ¹IMé+ÌîAyÇ_*ާG‚ÛÆƒ›†L=_çnŸ \ÆNz¼6Ò< ñóÊÀ<:<ö˜­½Ì`)s¢{ä$è0’mQÄÚßò†E|8uûSPôYD›2!†Ñ*ƒ#ö¥›GµÔ©y…å8»ômø¾·CÄKöÞåÐ"!u•?ŸPýëì¾ýžíÏXZ èãÔß¿ûA=¹¥W•Y‡æ‘¬Åál‚ãJ B::׃/îÃE þ•±Î3ô0U‰] ×Ðàˆ€Sy2…™XXµf¶ðPç`J*eÜ )°…vI´ähf“â Œñ¡¶‡!(ˆ10/§°ÍFÕ_'H€ms•ê"­M!§´‡`ìÅvê×¾‡põ þÒÉà§Y¡¸fhëöpè|)ÝÊNpteŸä:@Ýô¶;C²ð3ùÇEèZ ñÈÈ',-Ž˜¤¬‰ ƒØ * +¦H¾Öä8æY» ÌÏ¢Á Æ÷ƒyqö è’º¯ù¸Ú=09¡­ ùÖhžn7èXGÒ;t·Î¦¾“âpZ¨om7]º¡ï¾;AÑ}è¦7¦UNž<Çî÷ƱÂD•¿ ÐÍŠ¿¬Meä¼-S7”ÿHW'¨c*̺€Ã²DpÞ,YQµ8£ðg¸DÍP3¡¬k¾ @`s¯(ÊäDžÁÎÄrî—9h!—årõz÷ò —gc †Þ{ צñ³4}®Å`sÕ#k¹\0­Æ€e€·k[Cë Š`¶у´lÅšðÁ»tU«ŽT¬“,̓î[M€1hâ‹ïÌõl?­Ûó!îÝŸY_kèЂu….¡eÍ/Á쇳2lˆøÅ€@-/ÄTË+5Ld¼Ð:ñ½@`9©‘ŠO<¢ão# "¿ o*i°À?À°”AUæ>Žkìp³‹Tcñ±dÊ6- wC üìaJ‰Èa`›È«E@Æ:“È"ùÎÒ$0¸1d3I†0¸ÀLøóz']•¾MAGÊÆõ—ÁµÇù½ßwv éð“}~†9Îñ`_ÍÔ8¨Þ÷1)=Åw8uÏ'Nò–Á™Â¨i}ýxã n¤ËQy¼º„çºÎ_¶5jßOÞnk@Ô¶›¶æ¿HWó"tÌ2ÁïÃÊÚðh3jx^‚ŽEâ‚)¢ü-〘gÓ°ˆ“U¹mXÔ µÚ¼Î¨äkÖ v m.‰@^¾=á™uм®Ê´ú«“<8ñµÂ_v×.(Ã(ŠõþQ•:n,ˆ­ÖkGUâ»-¥¯ ¸r½ƒT0¸i+ˆX"…gÓVp/ñ®m%£.m…©–Õ2PÉ­é Òmû Sßך }¥­é9õ(k³öfND•ñ¼ë¿È3ˆ_ë*8š9£\f~ý3‹`7J£LÑd|Tµy¦ù¨"a&~›mŽã€å´1ÃNtÆ&öì îýëmýÅ7¸Pû%Ô~<övùü ܶîѰwùvÝ#ɳëé­Ÿ¸r¹5 rÂ_úéxÔ§1ì , Ðv‘dE ÔPd "°# "î…?«øŽNÒ*¬–ð™+:aè–5¾³­À1Òùôê] “f†ÉôÇ*G Pû¿Û©qR:U “󑲃êz(Áe ŸZ‘ñÕÕ\a”fÕ jöÚ6­Òüs]>¹Â ÏàïËo‰rÑ–x¢½ÝÝ=Q‚LLz}!tcüRò5±Zb,(Îodå{ËAFœv¤ð^$@ÑðK òꄼ•„™a· nÈô\.À1Òøÿ?µð{Gw¯ÿPÃp×ôýåí—.¤‚’šEŒ»\úΉ”Œn“$‘;'QÂâ:M4äãœÇõé!Úêh@Â8ÈÛÌF‘{ wÙ5o£€©wÃór ÄXœ¨Œ©6h// «ºcàyzaH¹÷ë¯MîªûEÙ~•}9”-\6ýah—ëä›ç;öÃü{~FÃxýëõ@@WØ?½<ÿa–la~d´¿‘!A`Íá&#7üáMþGÿJAeÖþÈêh²66·öæ ¦–ÓªÄ3'˜ùú7µ²Lu¦Y—üëWÖ€;ôaMþõ+{6ùÕ…Õ ÆÔ‘1þõ`P¾ÔÒ¬vÿÆ5@6¼2©0©ÉêÿUxîL¡Ó¢ÕáõüzYk²)7…"…ñ¡V@Óa‘f­¡ßT•ß ‡„6íú"œÔoÛ«tÚæ«¿uöàö„v°+*ü%Ì«ð2ù]Ò¼Ûá^~¸ùüýUnuendstream endobj 1134 0 obj 2880 endobj 1139 0 obj <> stream xœ;íŽä6rÿç)„ýcu2#‹¢>½Á¾ ÁÙÈå.¹Án~¨»ÕÓ²»¥^IíÝ1ü ñCÜKäõRŸ$Õ3Þ=ƒÙa‘UE²X¬/j?Dib¢äïî|÷õ–U=Íwiôt÷áÎÐp$vçè÷ˆR‘1ÑãáŽéLTeQUÖÑãùî]ü¿›‡*O“&mâ?-ÇnÚ<ØÊ$imã¥?wUU<÷OC»\§nÖ¾T?„V€i,Ù=êÎôrå¤ce|ðö ˜€®ÆeéÇ¡=%Òe ¶iØss— 3ßÄn…·ù‚½¸½Ô?鉃dhUðµ¼÷ŒàRëE`0ý =l±21VIñe„±9ÑŽ*þVÓJ'À€Ñ8°¹[&•n™HU4ß+n†&Í·Ñà”S ‚ô«íæDVG²SŒœžN'&›¦À¶ó«Sçà{Ú`Ë;؉Êln[±ì€Ú¶s¿b±ŸÉ´ ˆ§Í˜FN‚™äNÿÀ©þ1k£ûea÷E£ ФÕMÕÄíõБ@ýÜìiò*¾ÎÝ>ñlo‚7é |)öÔìõˆƒ w þhi§`laÖ`73m¸T×Å÷ò8µóâYË~…»aŠ×ÓÉ-¯Œ/ 5ÁÞ«÷Éþ§ œ"J™qU&ñ¢kw”XÕ™»¨T¨Û²Ÿhû!‘ð€œMU&›!Â,©Â iï¸c>4Ò½(.Ø×ƒçÒ+G[­x ÞœžýÜíÌRÐ>š8qZü­Ú²ÓZ<¯hôïÆ½Ÿµ ^UÀêï@Éžýïc-Ff™–;u%´|ñ†a“,­j-ô•‰ÉßoÞ G©\«¦ã¤eäte }¾ëp,?õ¸r*ÕÛ¬J²¦öµúöºŒç–â’“8”OŠaQäQ%JEr¹£ÚS@ŒOYý|vHóq¼žö Z¿,›—N ¨¨Xÿ¨}ï—£Ç{ñN"ݬé²4ñ³gòÞœvê[²:Š·o—V Èbçë!•)EX’ÝqÙ¿›wí…^ Ò˜35~”H)‘¤°¡‡ŸÝî:qQÉÞ(ðZ½’Gr|}kA <áŠ#E »Pã H¨~]„£8â#Áàã’q × Zo $w”û"ǃ>C3™™†Š m–ÑϾ‹1•$žØ® ¸¬í^É!d½þy.ËÛr/о¨,ŒÒ\ ü¿“ëãä6˜?êºJÖC%ºN¹é2ú‘mçIúár]<8¾Ýò}Êr°|uîÞGç뜔˿¥£-ÈàGçy…ä!¼o!¶ŽÚY¼4=†‚?¶™1ëäŸJª%¢$=™üSEµR âΤùÂ+¨IʲTAÓ9J5¹•¦/¹Ëä>:Ò…v+…^Š÷¥&í íŽX7àËÀ³ßíâ$ŒÖ‹pû}0yytéÍ›VsòÌoJÎ[ÚöµÄ,O-]iyƒÌS~Iånˆëº–`²f­ûÄÒ˜¸=P1g\‚‰‹ fÁ=–Ê#Ô®¥ ®¨Û€åÏÝ4¾U<};ÐíЃ$cڀʢmía2XÊž"/<ÿ×"7ôØ[7’:C»|çµwDÆså;BÍøžðPö²†kJV³iå€ “öphÀºò3£IP/#úŠŽƒóÕOJ­Ø*²zëÉ󌬄DÌœlÀµvî‹ÑÈ}9¯‚†¢.a“{Š› ôŽ Ü2E¬Ðݘ—åæl‘Û«P[9åçNæ‹ÿD’û渦GHÐéÆ,å$]Ó± HÙaÉ$’ËX¿x¢aœÎ­ä„<Æš‰_]v! ë.¯™-KÁ›h8Àà•…z43 =×”rlC²¯_XêW2(WT¦MàP¤CòáÛåÅP1PÐè´iÅÌãÇ6f.8SC9ÚCÖXTJ©ðC/Wø-]J©á[ºv’ýÒP¾@GêjÞÖêé™´P‰1íúŽÞûiÕm!¿Û¿ß(u)¯­–®áçfñÕ5·²Á7¼U2eYºX{y¨qt•įŸª²SÎ;^¢ñ@M,Øæø¿^edˆr¾ÎýN³b5Š=rý\cÆßøP3ލ#÷•u†¥à€m[jeˆÁš.ó)©l¢mIÝ gÒ'b†r鹓Ï!ÖÕm®&ªZPÉèÞ3RŸ¡rÊÞ/b7 !N×ç©ßpnU´üúD „¿hA“ᛘ×bÖh]Ì»¶—,%°åZ#hœ–0báî+‚Ëw-~£Ö«ª¹O\Ê€%dä.oI!~ÜT¸öš¾•Q¿éß•ÑÍÚœëz|ã^:+ú^A'P¥quzÎ`ØædˆnØy`ŽZ‚w4jäs$jŽ[¥­/Ë‚÷‡nÒÁJrF`CãY¡ÒÞ~)8{ZoŶ¼oÄ_ÿ¸®ÑºA¨­m’WÕ?Æ« Å¡”ã>'É1XLÜi&R¯b¹·ÁSÛ8ùBª™ñ3‹hËG s]"<ñWªs”¥‘<Þe cw¹ËÍF´Lù41zóËŸÁ÷KKß׸nÀóÇq÷uùåûä/Iô{Pä7‘É7_Ôo`^ú~ÑKãÁÏ"é@n1ŒËÜCCŽ^$mä$h´æâ¼~Lea¾ôYd–¤î‹¢›Ï"×FBçÍbJcg]%½=êÐ~j¹&Qb¼„šÌ#9>zOãu¡ÛÌÛá¤LÛÛÎãŽÛàS²nï°4àˆ§!(G/’((TÅ‹oáÐçó–è=È·‹vKƒý‰*zÃÅïà¢}WöDzAB‹ ®74¿ß$Ñ#¦yÏp¯?Eýo~•JÙ|¼=X§¿ó«4Ѝl…ÉB%¬Lñí÷a…Ml™6î3µla+ )BÅC{~™‹[ü€!û{Yh ÈèÅg9سú^ ¼G–˜¬öÿ-D‹øyªn’{0C@â³M삈sgÃ_kãós/e"ÉØX ¯Åᾦ¦Ì$Ó·oâOïÝ»nßy†TYòË“°LÁlÄk Ô»%­VÁµu¿žèݬiÈEpmþr›sN4PJ.Þ_RÏ^®>íîmÀæµÇsbc>ó…°à€ëðÓZÈ\önAúM§Ø,O)¹=¢‰ø BH|ï£CÁ‡©"±Ñœâ¤ÆÒ»qœöø¥<•ÓJ.{?ÏKwV˜Ã4j——ÄyÀò{€´¥ ‡@¾zœ¤.ˆë÷ü9 ²)Êü–’kú +üN6‚í¼^S«R¶öߵȜ*XTš4À$\¯dÆ5tÿ!@–Ñ?4…· j¹˜EϼQ»›Æy&7‹Ù"˜Ê6:™üŒÑÌ)š®§îý&¢À e‘ßH8è¿ÕÀÓeà|ó¦qõ³*aQ¬ëà>ÍWW ¾hcK*Ö Oú \öû¸«÷/wÿ?ÿµð³Yendstream endobj 1140 0 obj 4484 endobj 1145 0 obj <> stream xœYÍ’ã¶¾ÏS ö*¥¡ð?¹¹Ê){+©râ©òÁ›%a$îR¤LR3£Tžaßaý¤é4@ý¬šÃèFw£ÑýuúU­b­Vøçþoßü+/ µVj÷ðëƒ&²rÿ6õí°I¢´VOϼN«2UE^ª§ÃC´êW5œZ»xúø zúûC¤ˆíпة_ü‰ÇmÓÙÖv»i¯üŠV£pâµÙmœ†þ“E’í¶(?÷¶Þ6ÝN½ûïOýÁª'û6½S«9Å[¡ ÎöÊÌÙüF=ê2.ÊÆÛ‡_¢§½]<&FÇE}ÆÉ ’DĹ Dýà¾M=÷ýˆ&Ðê°¶ïÂw-Ÿ::Ö;FÍ(šMT·‹*®ª<Í¢WÿUŸÇ  ÓtMÞhŒõa¶…·…NãªÌÊÈnƒª—0;LÍ´ùåÇ~l¦¦ï–"#Æ>¨mfÙÔ³m­íâßOïžþüKtQ—)ª8K2pÍà¹Æˆ ÕU^E¯ä0¢Àæ®,åé4:Ôç1 Ñ‘²‚vÍ‚re,´$ú KòÈkOŠÈòl½Õ‡ck—3ôGá»R 'ÖmÃ`Ý[;5»´¨™Z†h“0&†ÝÅ4=w×…OÈ£Iœ‚äõÙ}'%ì•£Fyì´ï·q »¨…øès˲!Ð+Ÿœ©‰ÓR‚|3,Ò,^­tõGÞ¬[à3# Ð+#+š™]è÷kù¦öœ¹£MßMC³Æ¤Ÿ‹L²8I -"·Í`7S?È.3´ÐŽmPùã?~–ݧ°p$ñóÂTÑ Ã5,DíuÓñ–MVÄ«4Q˜é¤–¡Lc]åEæ"Púg÷]äûXH:úÉÎø‚/ НÁ¤pΦ è¸rHg"N4 ƒ¡ 5ËQÑ'ÉD†Uˆ$2°u7º!„Q0¿ŠBšh¢ÐÑé(ë µ1Pg|Ó’v;°[u™ÅE•Š[Áu§€¬3c·Qð‹Ž¬J Âÿ2ÖqZ©ïÏǽíð Á´KP{}@­gÔ:L»Ðð¦`\ bîlg‡ºm¦ó"ÏPga¹*JdØÚ Ü,È §A3â î3­äpÜxæÿ0jrj·"…Š ƒ^Ã’ËŠ$³·IvÑöàùÁ[‹ýÄÖa¾µ‚BTMì3WVÄ©Ed:.µ;P| !ê׈—Ôð·ˆa†¶$ ¥‘|Ûîq[{á,f1V&O7÷%\%b(dAmq&Øxˆ&±Jˆx‚#hT볪պÞ|[°QÙqS­‚¢®&:GÀÿ"êÕxÚlì86Z_4IêÐt§QÍ®ÿ"€:ßË&2ÚϰM½ûðáññÝ5ôß6žTVÒUE%|ÄlÆ¢FP^Mœ CÎ(MƒÜ8\æa½¨ßT½i IB"b1ÃÆQÄPHˆÒõ̆Öž$°²”‹{ßâ,„7¡É(£× U7#ðÌ4W h‹ž H«<ÀÆ\"¾ZP²•+(Ó~°ã¾‡œüÝšÂý„ÆŽ’dê5uÁ4[b´Bo<ÊDu[*ˆàKs¦¡.¸)Sr¨;þY%á)p08¥:¼M±›‡†•kŸÈå\t$ì‚ên#3ÔR'†ªB‹Rˆé2¹°Œ¦tÁç‚ßµ@¡ E‡Ù0ør]«Xö†Îÿ¿-ƒŠ:Ð[i|SŸ· x\´,ÃÌz ø!ùqdÛ²™¡ z<Ö›€À÷¼G“¡Ý¿AÈÌ94•2Ö0¹¢[/»¼?˦íGYØÙï,§¦0pö9éHšq7¢š®÷\Cß»3’‰GÍ1ss:1b®³^Ê¥Ÿ?,b‘RD?<‡}Íüa®|G÷@™Ý`k®‡0QéJÊŽV¹‹S˜4DÄ20ÔB†&étX‹¤Ò5Þ,5¿“qŽÀ5€z"3è_]ä‰[ò•ø‘ýø×–ïñn8/­\ +Ññ î / ìZÚ“•)쟂À=í¥ÙÚ3ÖUú®Ø-|aÕ±–F IæN—Ew´¹Û5&/¦¸ö^½ ˜â Y%Q¶ úŽ=¸vtV® ¡žÙ™Êщwžû¶•~;‘Ë}¾Š“¼r×W%ЭS wð³dܬÒ|Çm7–ÝJÄ”ÝêÕ3Æö$:‹’Ÿˆ2硲 Ãú¾ kšn UaºØI>}sLc×8“M.e`ýþÞ QœøÌh¬~xVmTÿŒW©ÑªfT°ÝÐnI—+ö¸r]Ï=Œª×cßž&«^È%lŠäÉ ý²d¦:”L­ÞÃñRô>¶ý„%ù¶l®ªRj ?3@͆9€K¸g¿ñXsÞ"¥$=ãïö(k8YÒä•à啳œÊz¶@îó›·ÆßT™Ü¨×Ђ~Zè^ᦛGޤŠwSÇgjÓfWyW¦ŽŽâìu#gòØäþa%[9¥]ct³¾{’møÝjpž£R¡>¹WD·¸æÀ˜îãáMƒ£­Ì©Aníóô¸ç7+šJ#»Ý ƒ1îq çz|†žüÀÏ9µßžÃ÷$"‰%?= 8Hš¾mD”6™‰\ǽ´«w.‘€ÔŸvûÀXèíïsóÐùkàwñæõHÀ! C_ÛÉ­oè”bö¼jêÕ¦†/µ†÷iT ?kà®0U¾éd¡š· N¢r‹zs)ÈåR€g«ô£Yªä1ýÊu@ž ©ûI  sçŠ(С’Ž«²;&¹1ò[xÉwž.nEx|(òDêÏ¡L¯êhùªø½T˜å]B%_™Og ZëráefަžÒ1í¤ÐÕG¬®Æ+ou™]˜­ _å27;²¥Y&ËÿçÄð™ ,½ûª˜Ñ’œs¦!u¨hʉñÐÕâ̹’s'˜‡ZK÷í¶ÛÎÄrúó·­7{ü•^ =½zXé3÷ßïÖÙðè¸|+æL˜w[ÁœüâèbuƒûØ«]‚Âï=wïž.êÁªr˜NQpúFljGýYm¼ ´ŒMQV¢p£SF\ë·ÝÛ{°s†y¤9,ˆ@E>øîÿbuwE‰pw F‡°ÃqÂàíHngnl½ÝˆŸù{íçý{!ª­SJ6 #:[CQºÂ`·Tñî7’o–÷ç%]ÜjI—[;z¯m~Q#Ðö<ÓÌw•”VwaV˜1؆a~x AÌ'†òè”8Q¡˜U% „Œ{ ™´UÔŽõž¼…?Êœ K|>ßþ°à±á¬³ÎÈÐÑJlŽ–^2Vø0]IÏ¡©9Ù÷CóüɤusUÆNg†üîo…Žï#jÿŒ-2ýãëº6÷^ͬ:úa’ïÒ=D:îµ ßr…ˆ^éIoÅÏìôéLï;; Ž ™C?Ø 0Ž;%ç†ËN)]A[‹àI¯¸ÈÙŽ2[F_¢èù' }ÿ24»ýåÌÔ/Æk8õþ0Ÿâ÷9øN“è 44¿Åö¡.ÀÖÍæ4 –®¨lwÓ²úÞOLI1SÊOL]\ÿÞ–Æ)\?$üï×bÆEc~ùÞé¼WH;ô^p-#&ªÁF;­*ÿóO‘9åáGº[{pü^~‹o†E’SÊ î¨Ä¢òÂ~÷ôðOøû»O6endstream endobj 1146 0 obj 2990 endobj 1150 0 obj <> stream xœ¥ZÉ’ó¶¾ÏSð*Ñ0Ü—Ü’ªTÙÙʉ'åƒ( 3¢-‘2Iýcå!þwøýy½ô €’fœJJ¡±4€F/ü1ˆ£$ˆñ'ÿÛãÃoÿQVUð2=ÄÁËà 5ò·=xÂ.u$IðôüÀã’ Jƒª¬ƒ§ã÷áv8žf6‡Ëê1Oã(/²p4ÓÉl»Of’ʼç½¢JÂïÏÓÜ}Ú¶s7ô:. OíØ×8­µ² ;íU0Y?í4+£p´ãb‚4œæv•4QSçáÇU’C¡¨Cã:ïºÑlçn•BS“$‹Nß=ý ¶]%¹l;k’¨‰ØúÓî!ü–Öþ|ùnõôýB:Y¥ êõm¹¹~ßK ›(y?&)÷iO'[î·°°,)£2+Ãáùfþ²ˆŠ¦Ld~™þfö,ÊÓBgŸ÷í,<“&ì&)§MØÚò|‡a•Q×MøjvÒg¸¹¸ñCo\,ËyÉ"Wfíf°B\È\G¾®à@štaw“8šÏfšµ$Önò¥ªè˜Î+·½íÂ’nš(NA.VÒrÜCÇ’iT¤uøD‹bgžquuS5a{>ÌÒ‚Ú“a{8k_’Ú舫åa-l€$N=ÂÏíáðóZ›*=¡ºim{ª)9æžǹ۶i*ØôÎqÙc÷/° Û!“u=’

÷-Ÿ«@e™HØ`¦ ´ZÄÀ:¥ýü^Þ:Ò…NqªO—…ç,NYãé&àc²ÌÕÂÀÀG>Lóèv>\¨íp0‡‰{‹ñÛËŠlü|Æ¥ R`&ópú™ÉºiDy¡ °ºsäܹvñ“»$ágˆópüy­}ÔG[65æ_†$mË’aÞ*÷Ôš‚ÃIÙ$잉âzgâU€Ê#ëkóA‘ñ"ƒ—AOð³§ÉºtaاëOçù¿÷C5¬,u‘š$g‘b\§'RêŸy"¥ w 4ZpXN¶Ä/ÙRWØo§ón»Þr2ž8§N˜/gð%âøQF-Ë­ˆ9æQR¶íŽF¨Š§#ý‡x‘êF6B]4Râ`XÇWꎣPS–6vÒ8 ŠØ·?õˆu™KöfÒ@{“Ó½æãØmj/·‘${Tstì‚ÉßãUð9Íûȵ>91…X܃աsE«_LoFÖ_ ÓüõvìNsðéXíuóö¯D›kÐo‚Â~¦ )G¢šDâ‹0!õ,<½çf…Dd¾ñÑ;f‡ŸFÌqSépž´Æ2†'Õf;Ïì:.x’ÇP‚®y2bÑ‹c¬L„_>ßs´€?$e¸- ®¡”ÄM•¤Y´¢FÖ=nÓ´‹4ˆÓ6É øòYçjÞ™¹f|æµ]±W† ë£?Nw6¸1¦w=<¬-ækw»cY[€Lõ·[#d¦N/¡1 sˆt쀒ù¿a¯‰j4Ôß T‘°?yÄú-åûä”6o›?¶Ç·BkØ…gÙ2,m–“‰eËúI’N@¯*Ÿ¶ÐÂɆ*Ë4]„ëá(™46Í àݼÕ^ díOÝñ|Ô¶°=çÞã Œ‚+§ÀäÕl_ýõ×ÑÍ…ñÁ°ÐlM•Ö”˜à%rz޶g§| ;··×UGq‚w)’‹«çÞ¼ÜWYR¤ ;×wæ®Be À¶L½w]ÌÓÞ›ô6á­Ý¼Œ7U%•x>,'a»®§Ô|ZK¸ºÈ»ö£i{¹V¥9\³êÄWXò”'ˆ0RQ9•ô (ÁÛuÒÊ]¢+N@yv¤8ˆS°cž»ùxåÚ&¾½âT!ኳ?”¶tA¨8Uå­ Ï#Г®©O ë“ Ô¹—*¨µ.†É2è­­ãÉÊë”ĹUTÞ"“,…{\pWªwͪN•àúéÌ®*…‹Q­Æˆ­ê—°ÈÎQ¨8382[IæKØöÁ¾ô¸7Ÿö2iïÐÎ'Þœ@\ÏJ¾…Ǹ~I¥¨„(¸µõ;vú)]PÁœÜv·Ý@VßoÍäâ-¹×çKЇv\ÁóoÙt÷Æ{h?aä[£Œë¨¨þ/› %ÏZUQÞ”Îã~‰¾+O£¶ÐÑK1å®G ¯/LX Ç7Àe~qDø!Ô•¦©®ðz–é«áo®3&p„q“Z7‘E'Uià<Ÿg)-¡¢T •ÁÇ3è“~‡Ž:Jó)Ñ›ðÐ^†³Éwpí¸iGÝ"\òíÎðþ把me)„ ÀŠÉå8ú<ͼ ŽD¬¼ˆ [SÊ Ë•Å?L&!çÁm+à —Ü‹nÔÔÜÿp³^ö…üR—’ŸÂ^;ˆ…ãpRoݹ{ŽN9ÝÑõþ ÔW¥ÂŽÝnw°4›•^ËBbÅJ"1Ú$ý€åªô_™˜ã­ªÀe¶D¸ š·vLü¼Ö)¬§Y+oßTy´ågÎ@ð´n“ÈH4@ºº=fÖ|Q0V¬×R]k*~ð4Ð@5#øêkâ4¼@¨ 6+ºTÀRÎ3=$©X ¥ì=T`¶)¸${n½Ä“~“ç÷¾^ÁG—±×ºßÖ§n’sòÌ{$$DÍî(ï¾Å‰vq—Y> ñ¿Ñrïò‘óÚÖ^=%så±½(·”Ч–G×L!Ÿo¼nþTümÓõ÷'ò­SÆÊxç[§ Í,­ñ[§²H,va4É:((‘ U+!LâÔd9;_2^ô1)YpÆô¶GÒ‰? ¢k5l÷bk ¶+óö0 ÚÒ°¥e»—$µ cãXx›¨—‰IÛ‰{ª8ÊêÜ{ž¶ÚZ^}‹Fy¼w9½ù­‰ò8û¾£¹šðŸý¡ûÁÞ¼Eðg,HÀ²÷gª€8ùÎ׎Á(,—6o3)o2¼M…ß“éÚ¶j xö>æÆÙ-å Ö¬It}Ž(Ë]¬ý Òr0/605Ê(6ø1Ľ=¯„»µÔ§’Ñe¢à‹¡YB©ÏRÀÝ“íF¾ƒ_Ž™øÓ”Ôo¤Í¸©äêÜð§{‹^Ûó8’³ážï…»Èmãkc¼=‘]ðzDó.cüêÑ~Ð8œŽpQSz‘péÔ£ѯ]Ðw³‚z÷·fÌ•+_7…qA¾Ç¸¬0«ªc‚wt’V8-0úﲞ$‘ÄßÛÐÕˆ^“!rË ,~Ž[ënê2ÊŠ.úÁã0A¸tG ྕÂìyÓX3®J‰2ΕgIpE-ò Žh˜+À˜£F-ÿhùÕVÄúO‡ßYÿ:óendstream endobj 1151 0 obj 4071 endobj 1155 0 obj <> stream xœ•ÙnäÆñ]_Á‡¡‚ÍfóÄ>Ń8±Çà‡µ¨™–D{†“œÕʱÿiêìæÒʰÛÕGUuuݜߢ41QŠòÿzwõÅ÷eUEÓU=\ýveh9’ÿÖ»èË[ÜR‘1ÑíýŸ3Q•EUYG·»«÷ñp}cË2)ó"ž¶Šw‡©['ºXÆ?¸yîúÝÐ,w—ñ¯×&MR“g±»6yÒÔe?˲iâ®ã#*®Ý,°q7É8«ãV†…×CmÀ[ǘ@QÇ®ï\?‡MÓã0Îm¿IÂÜ­§' µuáNíxmj`»*ã‡Ã.àB.‡À$rüóí¿¯LÝ~suû·÷ñ¦Ýzî®3à¤ÉŽxŠº)j#–GZKyDS÷зóa„M}X£ûaܵs´qÓzìîÜç'Ä<ôQ™4 ‘ýâûÊZ}Â,º1M·¹ŠuÏÑßÿr}û ¿üöú¯Gï}³Üý>þú>êà ÄüT/q6Er±#Q#¯p±Ý@sMš-WQv+ºÑÆÝû«·‡íŒøþíÚ_†ñºÀƒuëµÊªN³*ÉU¶ub’"þsm Ô¨RùÌ«ø™ð®NúMô«¬€þ=o†Ã×AÚ¢D‚ú7Jâ»o„×…§¯`ó~ìúyØZÒ:#RÒZ21b ‰·]¯K&ïÈGaÑ]ZÊâ5¨äƒßÊG´Í¹ÙÔd5Šs1F¹¢þ7UCrMÂÒ­¨'è‰É宄ØÀÜéé… "<“Oi“¬1zäHÅY¾v ½n{¯;æâÆVM’UM„ÚG˜“ÛÀ®*O@.dW8¬l<ºßnšu­$¡Ñ° ¦Šp#’§s^ò¼ÒõÓ NäÝ™LÝ$¶¨.ˆ€Ÿõ¢à&MÙè¾qTãýüxy%³¸Swšœ¿‘ºTY“7l²ÔÐú;€ê„]­Ÿ†[fEüÄbÍ 0 ° /V´D°ÔžâÌ«¸l^OíØ¿b6·ä­çY+ˆµ' ‚›à¹Y‚”,AY "Þ¶o)"# Š§¹ç’í*–H"Ë@X~¯—Oy* p’^Nö«k·UØó/‡$ Â=ÜZlŽÙh„U¢~`Ðy1³UÇç¢.Àh‹Ì«lçe×øt“ƒ¼­Y˜×~tž·Ýp˜¼åy³j°^”Ñ7àX§u»w'±äL Jˆ+pÿ×µ7›ð€£½wÝ<ÓëãTZÄC¿}VŒVrK®€Xlüi$_APñÊó&áÈ×z C_:çÛn¶@¨‡yXâ\€×î\˜÷œÂø[Ü'¹ÇøÕõM[M“-Tw‚ ñè&]øÔͺÄy‡œ²ñvÀ4‰¡ÜãF×ÀË Yи<:”ÇûöA¡*!=ê~ú¹Ý&zV$> Ãi·¸½¤à ÎMnYMÉo]ÿœC&²Ô™¼Ircƒ:Oc¹näÀ¸QZ5_ŸƒH™’óöZN×Êsð‹e¾d“§ì%6EmJ‰$ŠËl&±¶òo%HAð¤ À5C ”ï‚Çâ< ÷”xù«sóS·¹Àb‘”iU/%IH‹òD’JÝKrI¬¿T¥Õ’ÚÆí/PK!…1"ÈÖ`WIoîä‡ÃÝ„ñÝiÖTIc^u愈ò§¾”‹æâ8³'>]g½P§D™‹ùOio£ž4ö¶yAC+@s1ç9ufD.¥*ã°ÝžÚýÞavÂp׃4È£xVEÌŽHˆZ”AçQ3¼Ð—2û“O¸:ÃS$ÅŸÆùÿ;=Lv¤¿S÷û¹˜Á_ØÔ§UÑkzr¢nLm’ÀVˆ‚¢UÑjšA›Ð,MU¨ŸO`Ò$/²Ï%0°©„’qïÖÝ'ça²6H!L[bpînìÚ­Lä’ÍÑX«]:j@)‚ñ9öÍ hfñò^yptûm»‹âD«xr>"~œQ¹Á&l¼è‹Íó%qZTAÕ ¸ê©Jd˜ßù·Æ[~!&¶¡î`éÁE ¤H*Âzq%6RÙÓ¸ñ•|‘K%?)HµGݵƒ¯³>¶ë™ÒÆÖÊÜ>²pîP,”¹\[Ûçz^EóVÙ°\R¨v^uX,3›ÅPêR!Ñć…|(Eà$1-Á5Á[O3T¹”ýd T(@àê‡Y(LæTº[C~ô¬ûѶn‚PvØË¸®0 5 ½Û¹Ûo]˜ÁÁ›õB¢dN¹÷½bÊø8àó_RpuЮ.ˆ †…IÙRCø“Rƒ®'(mjØ4îõ–ð%û¿fm¹nDG¦+³p4‘V[^•@F ؼn“„Œ šó6YÁ«è|×oÄ-úÍÁ“¶¯–5²¥ST†Ê$źïÜZ‰S}Ó†#¨ÿÊÊä¼b.HŒ ξeá„ ŠÌ‚èŸ~I, Jà¹í¶Ó*šœãÕA+*Py“fúÂï{÷„´ÐÃWTÎh¿iý|¦ P8Cy]½%Ò\ 4ä”Öœš·¸gF†V Æwlj©§Ð=_ ÂTe5tãÅÐ0~>ó!\Pc%e §N¤Iаñ Rᬶnòæ ©  6k¨¡3^eÔ™ì…`a°XToîÃM{ŽQWS.=¢Å¬‰üÑ@½?lÇáhX¯Û©úvë÷_Ô½ñFl\ì ¶;vÜaΠ¨L)ÅRJÈ¿ûöÇ?® N€v {N»m²Uä¶}Æg÷ðúqèÖœŽâŒ5ñ¿ïÅžó£B|¤NvþgðtÊw y:1‚+>l)Á¤¹cÀØóÀND0‚}t£Ó;oþD¤–jŒ b#önV'¥k»~ìä Pi|1FÝ¡FDg*Q• VŸWo›Ø:C^ú¢bç5$ÙE}àS$™YÐx£rÆÜ·¿ƒûÍnƒm®{2È‚‹Õ‰{îhÖÈU¥wYð>œï”åEaA6«ßTsغÆÚs×r×¾‚W T§Ac)"Óï‡iê¸[3£)ÒÉ8D::z)’…Ç›ŽþèN³MN6‰µÂ•ŸMPѽsᦱ‰.ä£ìs jl¿EžTéÂ|§çiv;²›yÃE9Ù‚[^-·üЦ­ ™n˜a @†ù|šÃxè=âÒh"Ê •²BO½^Dß5ÛÎé)xVî)Ž%GÒÐaàå¸ëYí¸¯ˆöûôØ!Û9Ö_iEêBc#E+º-šOóõ½Ž t@|ò¾E™¯x^KAtÏûL]?É ˜áyXVI]Ú3»œç»jÿ-µúJÙhøKsði»õÜt³ªjHð0IU-òæv½FŽyc¡ ¥§¡¡w T17nü†år_M–“(X²Üe Ž]€²de oO!^¦Ð9ö]Þ*Aˆži$¸ ´H3hÌÆ¶áÂ@?L® ˜)ì»Cä›Úñù‚p¨ÃÆð xª¤ ~»wn§èÉm·ì”eI|ò{nó¦xó‚Ÿ€xêvP†PÁR7œ:±«ó®¸ï<7ovßĹò¨Ǥ+À¿Ý>o"_‡¤¡¡Oy¸ L£Õ!Tl篶Ü ^ë¸?ìîÜH©™ì$-7Î\b\»°r˜ò'ƒ˜ÒÀ’œp¢Ë9ªi¾É ¾-ÍIÃÊ7êK3Ÿ qæ€Cü%çJWjÒ#SqF@Éõ})©Ø¨zd|¯—57Ì©œ°‘tNÆ]¿?`û_±}Å^[²HÜyþšåm«£Ûf‹’9Ú,XÕå÷8~Èo#ö-Iôõ=–:£‹À¦£Ýÿˆ×‰ðç ‘¾5ÕCHs‘ÑÑ·/·‰îÇaGKw¡ÁóÐõ=ØÌ ?¨¥ë‰‰b”ŸÖMØ£-± Ê®œ¨dPi}lwTÄÓJÞ,¥@3Z>"PhGüø31úF¬^Vá,þIHaüqíöŠÊç1þ¬´Õõ ”ÓÄT½ûé:PñW)øzH‚Ñ‚]eR³Y¸c8ÆžZ_ã~t7ºö׉žR󿍣©GûQ@Ïé3'Ú¯­¸èîµÃíºõ¤¿‘C xÓî"û.*V8Èß½á•-<ü yöÊ67ä<ÝNœIAן|É=è>î]’o¢]úùLÐËw:Ù*²çþ¥ì¸ŒÔ'i´­–LOWHLÐêbŠŸÔF§Ëu¡˜’p@ܾã< M(`¡ÒçtU?Ë4Ä®À N@v$=DC¿ZtTi©MKã¶$ó(§Uåw'†~?É‘gOÜž iœÌå$‚Ä#€sá>ÑÊ-dÈâã±d*-ÑéWf”“fø)}»_ÜgòBå_nȼš:/q€$$ñ܃¾ð~«¤­j«\€ðUq¥¨Y–¥H*¿âÒs(¶Ûƒëœ<§0w€Jx{LGýèͧù]؃å¸pú¢2 êb¨º¨3úÑWdÙBR¼¬ ‚~  w­"*¬„ÉŒ¸>õ¤„>×#جÛ$º±¡WæÕrI ªžv§XZÇXÖ¨i ‡8Á_/î0,PvR9š\¢?G·w”‘PÛ ¢¾6ôðë[Þø".®*ñN÷fÖ@¥á»Sÿâ~:¶ë®mI‰ &÷Üý×àâ‘ÀW·Wÿ…¿ÿÙNùendstream endobj 1156 0 obj 3585 endobj 1160 0 obj <> stream xœ•YKã6¾÷¯àmé…[%ê•9Í ì,f‚lÐÀ¦seÚV"KŽ%Mó#ú7§|ÈÝžGЇɪb±ªøUý‡ˆ#%bü³ÿ›ãÝ¿äE!öã],öwÜ)Zö_sÿz@’2J‰‡Ýó)Q$¢ÈKñp¼û(Û~uŸÆ**“JÖö3®dW_†y²c¥d׎ÓÚQ&²õK‰lj'".寏iú¦F³ueØ žê³é§ƒÍh'ÓTÖý6¨p:›Æl=ªäæøºžÍÉÔ^¡\6ÃÜOQ8ÖÏ+¥£ªÌJykÏ…úªÿëÃïT"ÞßÉÞŒ“ÙF«€‹4uVLÄ}¢¢,Õ`Âí5•H¥^‹ìQæ«7«ÕÃoW¶¿÷lY‚låá5’,‡ÁZ¬d‘ÉÏõñÔ»¢ ¹5Ͻñ”¥œgã– †Ü›qí– iêæà˜5Ø¢Áum¿wrØ9âJ½ß(—ãŽ{´ã+²Ý0Ÿí(ÕrSŸ:ik]7¬’L>¡«Ü,ºŠå–òù“w€ ³¼ÛHö~øçGØOŒígÂ#ñÓ0žÛv·J€¹Ê`'îkŒØ˜éɘžÖíîH¾|‚sŠéi¥â(VŽ*¬YKkÕñGÚï¦;Ù/Î º3µŽ¼žÿRHÜr.Ç:׈çó8‰ñdšöÙŒ¨V…šä`ZAN{C' øhèÀ%´,`zªÛ„öÖ`‘=A^”v÷¤ˆ*UPÈ¢!Ë©Ä{³ŸWh:ð™9“!*ðÓ8]:ã„ø#$q”TZQ܃òóJ‡U]¨ ЃL¢Í™å¼óLG1@RÌVضp‡§Öûg&y¤ bŸ-†,syœÇ‰G1  ¯¸P‹â¸¬8Þ˜¬´Ð€d¥ŒÃçp¶$U%Õ:ÌÛKÏb—[Ì£— ,Óà¾esÌÜ0“6§†kÙö=˜ {_è(Óe)00ȤˆÍK†Yü¬ð.·Íï>\'*­Ý8ˆ§"ѵޚWU€ô¹›Ü õhYŠTÆkÇ^y›Ó°£éÀQ Úɉ1ÜÑüæ¨Ì›°>ôAð8½b%`xÛOæ<†™éàUAÇú²\ŒÞn~Ó0ˆ€kß·Ïàªi-H_ÑŽð±V•ñ.tØ„ç¹ÎÀ„‚âIOça¥0X Þ>µ[Dò›WSa¸:y Wg7ë³Ö=$®¯Üäüi8ë®»¬r«R‚­u\E`ÊŸ?üß~'J6€ÎˆæW:[,|n˼ r½†äS3dT+â|Zr! *Ü𤋮¤1ÖÂ+U"’j¹ŸaÉ&æ”CX`BÒikl‡ÞNA8´îŠõÓÐ?Fa‘Pˆ™ìçã±Æ1xÖÍBÍÐøÕËâ Ân~‰I”tÓ,J3Nºø å×±íçÑ S‰ifm‡?Û~Û65WÌLrÅÜÀ=#—Ò˜/1ï‘XÏÛA¨<]ýM+аX®»ÙDøÝÎ~n÷¦A^u®Äy;IÍ‹[aϰÞd¨¼¸^¨¶TÇÜUÛ®ÜäTœeÐPÙ$bëÍ8tódÜbr­3ÎéE’ØÜ®@²œk…ňï§·cØD—qXàðq‹Ú¶†4¨Bu’éÔmM~½µ½|ÄT|uë"‰½i|à¦/yJ%£ÓP[ŒvN£ìz•`íæUJ`¦Bî PÃìX€ÌAuèP½ÉÞ1–˜èä–‹J-»ôV»ù×™ßÑ,u‡jcÙ"“±t“Ó°7‡h¨Àt/P\GZÅÕ·S4˜¸HË/£8®H µ´5§oæz¬°´ŠT•b_o¥­ˆh+%ª›põ@}4Ói ¾·DôØêuJ)h@›‰J"âá¦Ãñ²S±:£0—kPúÅBy¦"­ÓåÔà TG`ªÇd…-5CoK_ª¤±„ÂvÄÐ4Ð’§TöVr ‰^¸[+ àþb›ø"Í'âýÐï9¦ÝJ¡0 Fš¾Uì2’C¢‚hƒÂR|…ƒm`l‹F7˜<ìâñßJag©J9ãX‰ÜBx¡€›ÁA닇d¦—!÷y8hï7µÛú6¶ƒ­:¢e~uß¶uCªRâ[‘A1dûVHø‹ 1¢ÀñÎÓW¸óh¼š3ˆ¶Á—§y:Ía#,^ÜÒÆ„ý Ëü!2,¤®ƒ÷l°8% µkÆPˆß)Þ?ú‚˜­ž›ÙùG°º™@¬¦l”s»Lì¶ød†‚擄Žü [OÜ®âD*ÿeÆ8z‰€-Nt/*Š#¿ô– Å+! úõvÁh ɬÕ}-eßM¡Vƒ¾¬äTB¨2Æyó„›Ð\0âw¡]«PR¼Ì Ž$±Ã^ë¥Ál WîV'*bßãÆs(ì>7L_E|ŠoåYâÈšä®d³JrÝ´®§ÁÑëUÊßvˆîÄ’`dcþç.VC`ÇYHƒÄ((ó»÷Â;—ÖBݵ¦Ž4`™b ×ÂÚ¾CMÌ ñð:=ßDF5ö®eJ­Å7 SUE×îÖ>¬Àr”)—púKÉÄ%¿ X‘/D»ÇzP=ìáóPw;;Ê ô!¤Ý¶P…Öî»He·¬?—‚4 5õŸYrê…#·i&ßž«˜^¼ô×TÖ‚yDþý0lÏÏ‹"š0òb ÆûÔngHvø–q¦D,”Æ¿áÈø»™á‹œÛ:€s$­@ÂÀçI 6ïI¦.È“N&;†FÖdnø Šå‹ÏSZz}àû`ºÓnîìD™Hš>ˆvf @ì¨Ñ? Ü k-tÀ‡k¤)ã(gçoH;ç OeöÉœh5½òÚØ¢)èLèÝ.{}™™áódÛaZã_ò,ß©…fßQR):>†(¢ÌmãcLnn: óþèGJ»Ö†šŽóˆ!…4ÜK1 €\—'ÅUA6ŠqF¬Åë‡Êúë8·Í àOuƒ|ÝåÊÑ!€ýÿ²JÓ(3ßâtõ…›‚R÷뺼Šâ\¹WRºBTiÙÇØÅß§qeeE?P)|-#Z\J Eèªr,‹Ò*ísŠ‚4Q%>©üÇÔ[¼ž`ªUšS!&ûz”åãŠü÷ÃÝÿàï/¾ø,endstream endobj 1161 0 obj 2935 endobj 1164 0 obj <> stream xœZÛŽãHr}¯¯Hô>˜Z¨8LÞ’ô>yaÃÛ†ð® 0Œéy`I¬*îH¤š¤ºº>Âó;_ê¸fR”ºzÐ@W^"#’‘‘'"õÙ$±5 þ“¿»ãÝ+3ÏÓ]bžï>ßYš6ògw4~ ’ÊXkžîx5.5®¬ÍÃñ.ªb—¹ù±ùúØ6Çé0œÚÍÃßqUUèª*Nœòÿ¼{øãOÑÃK7mîÓ:‹‹¢ˆöÝØîæn“æq]gYôec¡UUÔ QVF»¦×N=.&ÎS»—^™Fó |ËèлY ëh~iƒÌcóµ;ža–·ÍݼŒ†'å‰Òà«bË£s ››_65l»Ì‹¨Âšùuc“8±yéŽ2õçãc;Na Y,iÆ ªÉf6z>Û~™??üÇMƒÚÚ ö˜¥6ÎAv3jÇYþ:ê”eø:(øã&]YÓ×q›?N AÍC?7]ßõÏÊÍ­¾EyôÃìYÂQ5ý>Ìý¦ÇÁïVÏ/x¼ºüB ª?žämÍØN'¶–uua-‡·M £Iî¢Ø€²Ì¾}ÂÓ©2›EÍù0›©g؆é&Ó~>‹É¹ ˜¤EÔ@éfþ™dþð7—ej¾©¹‡³±yföw¨^oép•2‹ÿek›¿_­‚ 1‰³¹À÷9Þ(œÿÉóüyͪ´qZ¦BøÓ{f»¹Ï“ ¨Ëèõ¥Û½hl 'é9°>Ì´¼¼Š¾žÝ¯ ÏøK¡„OÃ( ôÆŸå4H‘~+^‚#{ÐUEÔ-6Ç&èÆâuö ßB{&ëÇ£¹¯Ò¸J@í¨bÒ|C‡N¨aóo¦9ofèá¿×—¶7ÿõãÿàÉï^†a"+˜'3xxí }o,Ç|^êâ$­¬^Còwú»/-($SMÐõüý<ÍÝÓ›.ßùeeN÷ö]çGDEùeÚ”DZ¢¡<‹ð Ç®mö ÄÅF¿ŽÓ¬½ .àÆâeº‰~'K>êø>¼Åãp˜nq‡Nð9" 9ç~!œí8_Jçn×Vžn:5;ôÆeîa–ž-"8F*I5Ô† |Û8Žޔ° šíú „…þc;¿¶h¥Ì7Ã;!á-[9rÞ¦¹=NÚ—öìõç”c’Fb&ä •_š§æ¹µkÉk¨ TwV»šÜPel¡'þëÜÊPÍ—ŒÚU•I = „–­¤ê'¸ ޹mz]ZVªzYÜ=)ÓJâ)IsïlU(Ÿ7hu`0Í)õ›ud¾J g×êVëôRäÓyD—0‡5pú¾γÀU®Î³Êc—-Žû¹€ l§ŽÁµkÞ'ÓØ$÷ëY§±ÒeÑÃÆ!*¨–BÚ~:Ê+÷FÍ“üeضiô8ÌópÔ>XÛÜl,j7_a#’V…]Ž«¤xäÕ·š7¥HAïsôŽØ”1,º Dõ =÷ûv4`âf×»ó6Ûï0Rcœ;79 ´q°—¤Žž[ó…¢E’¦d±ÙhÄ]DF ÏRxà\¾}¹Âáú–«-«¸†H)5–8ê9|Aƒò̽wéÈzi~ìöÝÎKDÒ·‡ßçÌÓº"ôù$ Dpî ªa×Ì­®ãÛ/“?~ü×Òãõx„`xC·S¼÷?`(æåü¿g§¦Y! KgØoÊÔm›š#éŠo˜,7h£ki«{qŒucŽÀåÒÉí¡Qe¥ÕÚ´qoÅRÅ:Q2IkŒ½jÔIuOØ@xç!ö°îR‡^är}PLá³ &çÀª"ÅÇ‹LÑ&¾Ž¨6¡) £Õy>ç0ûëAð†à{‘I ü.}Ò± õ)‹Ðh}i*0ã4ÉÄúhÎbÅ×x2Ï »8‘H Š}»f;B8~vðç² k:=è3`Sl†Øø6´ày4-þ$Å$;úÖ“·aüÑ[Áy£ÝØÇÖîk›1|„‚€Äã¤(lÔá ùYQ@Ü(üöÓüÆö…†>Û"›ÃLúÀ.þ"š+#I806ð|…§<*E%§vJ¡FÛçÓ-iÏ*  ·&E®Iã6,#ÄER}6à§2 ÏÅ–ÁÄ“y@Ôœ(Ä"ìá„v“SD-# Õ•­|D¯À”àšy!=lBQws¶E^y˜†ëÐù€MÕÊZ˜ùuÞTÅ©­k!E×´JÀ@w.©õ/4¿ Î÷ç«H€ú wè›1Z>ó"4X»vº¢©€¶*± 2Ü,/â4Ƀá>¶=$«¿‚*“f·“At€NóÓãp~~`|äû\C’|…ûÉ?KÆ*ñM€LE©?8ò¤J}“¼q:i#”Ýíκ€8&Ï>{6qWQ™TÑ'>oéÛè—~@øÚËRª–0“:HŒþq‡ç±9þ&‡ñ6a3ï^d]¾ ·x¥ùåÓF7žóÅcÙ«à¥n,Ì-à ” —°^Gq·zy¸†ôe×î)þEIé/ÏZ)( õK3ž>6;ôAYÍ» ËàÒå®n` ï›c» ]ŽÐ.ÞÉóUX·h>SH]GóDNÒU@h‚w©çàÝ ”ªó`àÿã“TT| N….þ ¨akàqeÊÖWŸ¨«» ¡Ô_©æ 4±ÔZ*S:7ô”\… ¦"—lwŒ4T·#éØíÛ‰î/­C`é¿S„Ê×ñÝXóá…û€îíb<5v/çq÷b†ñ¹é?lþéf‰*±Ö±cÑàd±&i`§H£©û:SÂÌ…^kË¥W‘IÈrm–Ï‘À„ŒØÿ³¥öàÂ?n¨z¾Ž;çs¼T §ØŒØ‡ZÕýޝp¨³’â¹@Žä? œÇ “ô…©ru´ Ê‹7MÈ-¤}Ÿ6q˜W}a×ë‹H«È¦•΀œašºÇƒŸÎU{ÄÈ®luú“ÎdZÙåERæf•°^ì{µèس Ì^—ŸR^r˜æëª!v#!ûË9.zíæéÓ?l¥ù르e®9|N•á+'Dã9;>aÑhÓIrK©à·äë¢c¢Ê´huxÊqmwº KÌK†ÍÖt‹öñ.ÉâðÌC¼‹(ûsA” ™ZP[X¹o=ø‘XJü’:ªxqŒ*Õµ…nì×zÓˆ²ô‹eÄq.ɤåB·¼”u먀·*‹²àoC!*ó¹T˹dA´Eth§ÉSqÀõÖ·Ávññgè÷÷¤’KøмµZÊnY+>QÌm+…¬°L½•š%ú S\¹Äa¨ôQrCïvˆ!ú ½£aZ*2RyŤô« EˆÊ»¼’Ÿäˆ%ÁDëúÂwv•ˆQ¡7±X…TÑÿ‚×¢Œ3ÎaTªœ·{ªthb½hs]@–¼pÌÓUàØ‚¥¤Uº(zìé%>'— ¤³D©,Yæ#Ó‚!ÈïF®Ò<!‘AÈÅ ºŠÐªÑ”7S–f~o\õ’ªà"¯øFdªÐeŠ£¸LT4†¤ÏÆe¶È¸ÿÜîòø™sqÉØÔnÆy·dR(¡Õ°7vr¿™(g;'’òbÿö€ÚýÊinX¼‘ÉÐ~Ôd¨SF/\Œ¨ {YÐyy}'!úø®Òû60eß S «¥sóuŇ…ô",±…œLÁ¬«F®!}еaög|ŒÆ2¹éz®nˆÍ_3EwÌÙø¿s_b¥˜r]fA |é£"u0¸ws'¡Ñ%ˆ}cOT쉹HX‹‚ÙX'œb4Y´$C·­Øá+¯Æw2†‘‹oö~1ù&—X!z¨R4æÐM³žÌ7êýXABå^UÙê4Îáò~¿–\@úXÖþ· æ½'„›ŠÒßá<›F,£RË{»Î|ïm†ï•àUŠk·Ù6¿wWÉon>œº¦>˜êÞÚÛ©/oú#eNUä{úKN–t唆¯…ôèêã ˆzå…éõÛÀsUË&” 0Á ¿)bÏy“ŒÖãXºÄÎkŽ'0wÚæ~ÝpžÂŠo—ê[æLè}¥T 5Ë ÄÓòBî_a @¹<Æ{³;°#œˆß)À3ä8؆”òthÞÚ}¬é8¥ÙÒ¼® E`”½ƒjIjÅÙ­K—ßJ^.’ÞUª²úîÎÒ•— RMT‘\žCGêæéoCh0q­•¶ì¸æwžP³tú¾ÅyQóRýÕ‹ðuM&¸Ø6g0*hP®µ<Ÿó Î9db‘‘ÈÈ7öZ_&Bð‰Œ ½n1óÒL C£$¾Æp~ý±;tó›dÓÇ\ô—†jÏA²hœ½b[€0²¸ƒ‘@*"Ežc¡c¿g BD\—Ë/9þíç3ÿÆAþAv#¤·wS©•ü¾Òï/«Â× Ž{œP(Ög™ºáõ~Í㛾écæÕô¦=žæ7Cнá"Æ:0$Óu±ƒ»Ì(‡zᥛæ²èx>ÌÝýÜG**Ðp±L¼·a©ØtÀê÷`ZØzjÕ‘¸Ø­=é¤ ¬ÆG?m _ )·Çæ€õ‘½Žø ‰Ì˜y-~Ã2î#¶z¦[½[o׿o¢Ÿ…`R¬8£çt¹^ò‹TÎ˰—^>ëvrÿr]q“+ñØ^€çÅ»W ~:÷A[ß½*|ø_¼{Ñ“ûÕ»Äb›+tH¸~SK)ßøÞ›ò¾~T+‹¸ÊÏU y-EþØ›ÖPq%ye[Uu(|ÝgI—\tŠmžÓïC"ƒ_˜ÂZDšD® ´ÈE!É e„¿´Íï |¥¤~ñ[¾æúUŸ6$ðßîþ ÿþfžŽ endstream endobj 1165 0 obj 4054 endobj 1168 0 obj <> stream xœ•Ùrä¶ñ]_ÁÚ<˜J$šà’É“8‰Sq®R•+µëÎ FCg†“œUäÊ/ÄÿàýÒô pŽu’RIB£F£Ñü.J¥ø#ÿׇ»Oÿf«*zžîÒèùî»;CèHþ­ÑçO8¤.#c¢§íÏ3Q•E•­£§ÃÝÛxtÓi?wýóýcnÒ¤,ªøý½i’¦ÉšxØŸnL^Ç›!Œê‡YñzÎqè7‰ô•&~º¯LÅ‹Y;·? ôWí¾í×N:ìråní¦%VÄ­’(/Ù[ò•q»?¹°@ׇö¼[ ƶV0/âôߦ „íëý7O¸3YôôÇ»§Ÿ¿W.zîî³"íÔȶÊ:v}Ông7F@<‚õÓ$5UNÜG}{pÑqtk·q›hõµÑ´o§]BÄ?ý[•çz0Yôhê¤4M=mîâC·éÖ»¶ïÝŽëÍ<žG7¿ùÆ5÷OßžêãÅä·ñÓ®Ã3k²$«ªØ1³Uÿ³=÷N0%œE«ÃêB¤CsÊØmA”°câ­[Ï‚°E3I¦±qÓzìVl.Ø»cs! ‰èñ@jaÁÅTÄϰí~TU³ùUviâKL¡Œ4UR”ý…'¹tÄ‘æ |o:ðT3‹¶Éóå)<èê6:&'#Œôà䦩_›‘a1HO(¶0õåÃ}‰.ô˜¶ð¦›¤6BwFüÓ›=É«€Ydˆ;§vËÉ æG$'“hg¦M°f „¾ç›øÇóPó!`Ö ÙÔÌ„N«1 )fGTʳ ýýé°uñäÓä°eñ’_éXgýŽÎãNØŒ´M!<Ç„fc€¤^ÃÚEVËr#”èYÿxìæõ©JÛµë’!ßæáqj{ã äº^ѦŒ_v]˜Z,x }Ón8í7ÞLÉÒt.)ĩ߲¾Aø/#½¥:CЙ3o˜‚Óûµ4›´üy'žÑ¤%“V6nuN Ç4é¸<Þ‹JR ?þ&ŒZLŸúvt:£¡ùI ðÅ hzp/~È?î º»"Ó€=½®†vÜ,ø …è]ëus騽ç;ªÊ¤©ÿxEÝ1‘—A©]èÐí„gØ8àÜ)M’¶œ¤.ÁNJpWËÁf&%Z/Ò@éË »™¾ÔfÆ[>«é6+•ú :íÆBé™±$Ê©W è\„©i Ô£(PCHYÚiè¤#ot„ÀÕJÔòÌ™SlÓ&šb$ ÌÊá12 ’e÷¹(…—Ó†ÞytA°¸…žÉj3¦Šy™ƒ#ö^ûw®Çà„yo˜‡îõ*@Ù*©#a÷õˆ!<„lïxɳ ZWybÚ—0Öµ›í©a'ðU[P ¥øÂVs4RíÛÌÙ$ϳZgOG·î~X·3© /[cÂCÙ"SÊv$Gt‚Ä d\ÔQÇ& C;%’œÿ Á• c$ólÉ'ùu=@ý£ëÙ©=š2ƒàIâÁB¦Ò½PÜÿ¹—¦Í”}BÔK/e©ûE"^‡î5“i0cJ¤¤XÍ£sÞ²Ð!Õ9ǘZ¡Î{*ChCF<À1(3“>ø±ÀÌ*1 Ø\\ãH8@Õ§€àCî?¹óWŽtœŸbA”“!„ þdˆrt¥¶dÜWÉðZCÒ÷ß“¡4iL]ÿÉ.ذL©©ºD"Ä6Ü'·§+ãP~ž€Ïbx§Í™ƒäùKUHÑ/gQ9ð}U½ÈštEÈ!ó-ŠÔήr¸Ü‹ à¢Õê˜&Þw~†5’]"æã ƸÄ̯Çn :ò:¿]0PˆŸ#€ì—“ÿ´ZR|w/Cò†c°Ž_ýÌ-V Ü™°$îêpp›œ ©®±º"`Yi6‚šEA@(,å®ý!yÑ@ì÷{DO±„"L ö‚‰Ö4LѾæÿ³T“Feôæg6}ƒîåe±ÓµxyþïV \¿¯á¸ ·šÐâ«,xL™³ o_u¨–¹ ›€¥o¤-ŠË“LlSmçr¼DàcU0± óØv¥ÁEy¾Ø²ZÈVK,q¢(Ú0XE&=UvV…ìÙKþ €}жW`!ám²˜ I„Œ1Byäg“´!tŠlp†l‚ª[¥Kš¡w«ƒr Î/‚Ûòp;΋Å^:Ï/8¹Ÿ-vB·pi{v{/{‘Á«—[˯À ç&còÒ¡Êp—(pMùaö.EZiÜD‘`µ$·pp1[_ezE ×Ý4Ó àlº_0_.XÄùêë«Á ëÒ¯7íZY R6wµXVC.WäçQ}À*-AÞ[ÈêäÚq½£š-ßð•WX™Ç¶Ÿö” 1«! †¬'Ãè‚°¸K¹©*Qì‚Ê­4áÂ/Î Î9ÑΊ³ À’§+7:½¡£ãÜ‚øÖŸ»©/X4®SÇ¥$ Ô°%VÉ=ŒiÝJ÷sÌ÷Ó«kt¾‹ðÜ›Ùþ£Îö[&ü(Ð*C¥[€ë¢4"ê\²hC¸'™½J6]¿Es»²†(-h•${®^10úµò9'U‰uް‰ËNEP³gµëc~T/Ö[-ú}E\pí¼ˆa˜‹6\M<ÑydÙæ,±³qG(u¦1|ë¤v}NI†Î•K‡ )å%,;>êüAD§¹4ñGpuüʤӧîŽnšÌög &–‰0õýD½[8]ûònh¤l´rXÛNÇhÞ¦_Rܽ æ·âx½Y/+·ßs, «¿wØýkéŽvë½ÛF&"̾ë!e0ßÀñ*#üýW”$ÉíHïƒ<œlš‚ê„§mL…&02°ßHÖ´t(œäçÚ†œh´]«…{È‘¦ é×ÐM£´VàÅ ~Jip£ÂÜ•‡§9ùg{õ/sÚ‹ùÐȶܭ¯‘Ñå W2ú.HÒ-ªuŽ2ØÎ@md d‰x°A•©A_ÇöÝ`°Çg¸xÞaò–Š pœB Ûûæj¥ÁB Ï Îö±ddñœ\D ›=í—[ߣãEâáÐÍsØ7D•q8ˆ®¦X5 º*ù8\ÿêF…p„mv¶Ô¶ñεrù ÑÙO|®ŠJ¶HlÈ*|ò Á¦¤2þQ ¨ì¹„ÐÄ&á ,²ÞÅÛwCN ¯XßwÃiÔÍÔìói”÷gì‚yeÅåêäÛgˆ¢/ÔZúëÄyÏ]AÞû¡vcÔòæS¸ma^6ñk°ŠÿúMöì=¶!ÃÁ›œ0¾¼â‡±:ÂOÎÔ$Yi²E}.Q—æ Ö_æ©ùŸª{jPzÏ• KÚ¡u´ø… –4Œ>: Ñ5—A°YjAIrŠÐeNù§0”;l¢¹;5õÓ“þ­0¬ôõÎé,“‡ukUZ««”ÏmTµYÌÊq…(g·îõè JRÈÞ\㤠¥ò…HbÓέârÿÖÁX˯‘Ô¦4bR2y„ c;mçUü2¢µ÷JØòLÛËûS@ªDL1¿´ ê†Ë,×§.j}]ßÍ]»ï¾÷wƒ ø z eÀW–¶¼ßIàÆòçIxk«`ë³¼4¿ ’"('>èÀRª'BC>Ubàe7ìàä¾;9ùhª  ‰<¬ s¾nz›‰6ÔN![Óç64Îò „0K~D¤9Ò2Õ§b…å÷ I6ª5£³üAwA¬´/K«ðŠHv%ýžfjÝÁ…Ùß»qt_؈ÍVek¿Ý‚MÎ.“€üû=\Ýñ]FXHÊè4¦¡ŸY‚~Žò€bsëŸK€8_>Dµ¼z+¡ ´%™Òõ[ÔÊ9¼ Ù’ 2R«Ó<à)´3™DLŽbÒžFî[DB¿eÒ%Ù™¯rñÖ„Ö‚g{u¬:Ôï?15âÅ…Ää =>3 ‘B"!gF£g†8S°ÏL×OnÔO¹«•fÝ\ÍS«JSäD¾®!¸ô‚&9+­³Ïqœ¯yèúlÀñ3ù½Q—¦a}XÌdU&ÉÇu‚ÛÂÌÓäB@¤¡kÒuj7ò>Äa)`›jøÃ䊒¢º…nݾø¨(©"ä?g@¬¡ù ÉB{3,—ÆožKÞ÷³xÁ9^ žÏÉ-Wž@rNi‚ˆáNßI¡‰FšWÆ‹¯À&zÌüSqpéMÑø¢P\§ÆC±17!ùÄé÷œÄáU€j€McXñwqýîž–ýâéî¯ðó6JPendstream endobj 1169 0 obj 4004 endobj 1173 0 obj <> stream xœ•ËrãÆñ®¯ÀÍ`"b1øþH kc‚‡Ýï3A™E^û»pßnÛi®Ç90EÎ;aUà*¥e‰Ë’–.M¯þ'—™°]›$X›*ŽÛ»ÏáÃK;ÍÊdQ§&üZï]ê~ 6/uß7ݘÿ¦@’ I’„_V&ª2+æïÞ‚Ý8ìƒÝ±ë‚®ÙÍÁc?®‚yú¦˜±}~Aˆó¸ŠV??ü•”QŠHI¥ÁÃßîÂ22Q?Â5çfV߈n*¤zøK½Z'y‚á¶›ÍÜ®«²Ö—‰JÛ†¼Ö& S³•íU΃²*ÃéÐlÚÝ›nKÂù¥ñJ@ØøRÏrØ“²ðõ¥éõˆ4üû?9Ôflê¹Ñ»TeX»Ó~üôçO…Ãq>½£~ëšÈ]ÿÓìÖûã4“~á•EW/õ ž.šŸ)¦,£žœî€ë$ »¦ž= ýB—„õ¸2x», Ÿû¦Ÿïgá†íæEÙd¬ â‘‹¡ ”móàPOžH¢>„lê ˜r#WptÃέOèöÛ·=Ñ^!r²<,;PèS9á>¨SÔfÝ­P™Eø*ÿ×opY›Ø(ƒcÉ|~Cáé níe[xìaÞ¼4³n)ͨ»Aζ?ÎͽnH@­`×ÏÛD7Õ s»÷ ©}îëù8¢±ð7¾%Ë–€líÜÂ…øC’‡S3Ïmÿ¬âĵŠê=ÌíЯ=Mtà'ÖtO|>^›p7tÝÀb—UøJê@Hþäm9Ôí8)˜ÐóÑ<¸?ÁõºPNivÂiêê饙î•û4­sçÒL]…מežTÞÉ©¾¼rFÛ> ÁÜnŽøª |ªÇ)¢åÅl/¶R´&v‰ã I?@ø òøCõ-1Œ¯*)$5üìE&Á1¨6SkSÚ*׈Dxu=a³<6cËÅÆ…˜¬ÐÁÙ/eßÓr  á÷nÇÇP Å&¡¯½µÀ›Õ[GÞJb¨J’0I=¡¼Û,Ϧ„¾” Ú{g™=E~PŽ™³D=äè/mD‘먛¸‘ €nljšÌ6àf1c’È$V­`æ‚âÅXsÄh䉈'ÍÜbD…… :®t{°ö{ÈMA×öM =x9÷AÛcŸy˜›1°×zõ)³¨´i°æ.q+]¢á.q„Fõ0LÍEh_ZÅï±™ËRzp ¨e‰ê½ l%éPé¡£ªž·•ØTµ‡ç.¡Û̲‡÷­'G„†07ýýµm›æ0Ëw¨mwÃèˆÀã†ç¾ýUáüÑ„zK÷„Ú@»=En'E}bYH0àÐ6›æ¬'ôâ¦'n;iUQ+PnD:Êa>Ñ©HD‹ÕÉ4G‰g´%Y*8\¿¶ÔŸIF¾èP¨qm†Cè6WˆYQs‘¬øfýøvË0rxÿ¬ë›’Ÿ(Ýß:Md˘#ô z»Å|–&9»ú ë*|iºƒÃ`4ˆ^ªÅG$ [yZçÜDëš‹#¦ò™{ æ¨C †NšÙNm3åò$hNŽ?Õ€ XwXÆõÚÂ^lªà:[…ª=²ZÞ¥ºÜBáɪ.B¨ê8¼år­¡xåK0¦ —5<†LŖγ«"|óvPØ%fàc‹5lta6¦‚.ÑòðÝxR°ðt1›vR‰nt»ˆÒn—EZº]¹çD+¿Ûe¤kw9#æ˜gxÈ**À)¥÷ý(_¬”b@¥ÿÛˆ%æ“””G&´6`5*–)¹9wtd‹Â¾V¢[–äðçÇQc¦HOLàqoAš.ì`Wá(Z.y€Ë¾!¯~C_®˜k{«Oü~ÜZ(ÿ í¼ìǃˆëÇ™¶R;F\ä–ºxGºXŠcÈáO¹z ÓUTjßö· Ä3nè¸FlFÝg´,‘$qEºá;Fç'‚ÕÝ4xÐ……ŸOTýóÙ8·È£r‰úÔ-í õ§]~gÊ‹DÉ2’M(Q³©¨'Lç³ Å(Ë*E•RÇ¿Œ;³>úlKбëW(‹BÊa´ãð8Ÿ_YípzU,‹½k\©~TGPý°–¨øI¨øù²²1õCI÷¢3ÔR¾<+ðàä"SµãQQ„ÃDWÜ]癕óohð®1dZ#cñ8*+7gˆÕT e 9Ø% ³$ æ†Ã€®~÷Dü$š¥+x§s)C‡”7)«’ž'A=€'ù2r¼xZ,A—ª»c³ÜÇ•ˆ_¬ P]êþMN§°³àáñÙ]‘†÷¬€Ÿšùµ¡1¡ÃØB•ßvp¹Ç•ûÆã±‚gÀ&ó‰÷õ×vÜ;ÖgÐ|DqTY<(¾VYëqTô p³öP¦<#ÀˆYȵ®yfuVÑ.’ÛÚ—òÂ"Å”áŸd mÖ¯Á¥ ‹à çÎ4¬,Ú(.ŸF‰èé™ÉwWÌ»Ôãrª•ÞȨŒ™¯/GtÆ·‹@TkÖB–×LJ`©0‚§·@Ççø³Ô“ÁmG äê™ àÊÐÇm½*ºÝë.¸qá¥;MÏ.9!¾A$À<¯ææ“I¹ù§˜+™™Â™õ33õ±éRaR¸»™ Ÿ„‰#],¥Ù¦Ãe–)äKf&ׯJç Õpô>³¤{wÔ+¦ÞZ…6bM‚p´çD¹éX|av,µxç§&`)ƒz†M„)+> þÕ@³é…3tQ±-4|ÖRåéEùù"‰@,ã&×EÞÉ.We-`‘'J‹‰òn ØÁÛt¨7س^O–¨›Ÿh¤f18UFµ'-s´Ì51ä Dú™€œN˜.síóª<>Yø‹ èDàM±¥ûÍî^7Û%ÚŒô2¸^) ŽÂéýÎÛ—*ÊLìF£õ\;ÙZOji4å‚Ë–+ôËxòÒô‰Ç£ðIUº ·\¨Ë4²Y¦Í)B ‰³Î ¿#T~þÛo/ydÀ@!Â-Œõ”ÂÞÒ°œzE¬vžšn9šOý47õöþrÒŽ’¹W<áaasÓ°Š,ʼy^Æ¡›Ü5ôq×¶ÊàESo¼à*ÍÌR¡J³V\CÛw¤Ü¸¸0¼Ý›`SïÆ .Oܙܗç°yqV _j ‡ë£SO–ËbaQH°;ŽGƒšw¦Ëïú íZþ¸CàbQ³àô4˼ög,îXR <èjß½nŠ˜ûÅš—‚½ 7Œ´n0K¸!¸ÐpCP™-|d8¬ŸýàÂß~)æš{&Ç|K.BX&n¡t-–Üa¼P!°Qüµ %£èý{ª:9õºÂ÷„°q–¤S!³ {¦ï1wÈB²T~‚òì?• âÚÛIZâ½æÒž#Åqq‰Ëw­Y‰=kæM·lY;ÒŒûý óª)ËO"ÿŸ)þ,ü9²s”VËIai$¡TKÅÁ¢³¾Ò,‘#¼ÖÊæTóà«}âð1,¡ùÀþòp÷ø÷?Æßœendstream endobj 1174 0 obj 3403 endobj 1179 0 obj <> stream xœ­YKܸ¾Ï¯ÐÍìÄ£•H=¨ìmq]$›r°÷ iq¦µ£–ÚzxÜùþÍ©b±Hõ´fœÁ°Š¬*’õüÈþ%q%øçþßo~øµ(ËèqºI¢Ç›Ï7©ŽÜûcôÓeÑQšFw7$—F¥ŒÊ¢ŠîŽ7…ŽÓ¸Ì£Ÿ—©Ý?ìÒ*®*Y‰¡Ÿw¿Ýý¥uÎÒUœTˆýíæîÅÝ¡v·*Íc©µhÚÑìçv'3P ”ø²KáKçZÇTT"ˆ“í<›†gaÉîôµ}øž^‡߯ivT)ŽÃ>’D릟ã ñÁóWb:™}ûÍLïy:õ´úRÓ<¶ýãö†>/Ãt€Ú°C˜íë㊬!SÉv³¼²”h'qD³#©àR< ÝiRçb˜1÷Æq¥b™Ðj$’Šû3O¤âï?ÿk§Jü,Å,›‰vž˜?õ¸K5°ä™x\ÐRA¼ÂÚ5KÀáŒ7ò×9h%ÅaàÎL+ñ°ƒHÒe^Šzßví|Þ^¦ígÓ7þ<0û0ŒAe½ß›iB?  Ñz½ÙIÜ œð9ƨîf3ö5FgÙ:¢Õ÷8µC?EÃCˆÐÐq;ŽQŸÀÒRÔK7GÖ#v>j§-Z`Hg¥¸µ9s^ø¬’eœ©ÒæeSý2܈‚¾ÍÆwG¹ºÌ£,¯â¬ÈÞÊ£÷Ž++Äó¡Ý˜ÌÅ¡f ¥ýø®œ=±UŠ}Ý3gfã‹¿)ÀHŸ²QÈú@do:Gç.îyë`HôAŠN„30gÀ¿–iæL Š4Ö%–£»j‹6«Ra­ö²þU\H¥Y¨íÃÒµe¾ÍTgUÝb¶!Ïi4~O_Úa™"¬hZ™_WŒ7‹Ž²¾-Á·{ŒíªÌ q0ûÄà;=ý—3ÉáÕwm¹‚£‰t޶$#:šù6MŒ%X ruÙÏS¸öD?Ìa_óJëÎ÷Ĥo×s˜¤šç¤z,ˆëÔ©Ã ¤¸‡:6%êÇјåñ¹6Eçöh¢©}„ä^FGlBÖÝ4D§ŠÂ}Ó” {úÎï´Lݬ¯ uC^,yU53èè‰ö寜uáúc0œ)¶á {×y—Yêa)ã¬à•§hHL}K‚Žg ÏÕ.Ýyf;tiVŸNqùàqŽu â7 wÏý~G d ZöÛi‚ý¬~9Ýކn*=Štœ&º?Gu 'tWÿ°#QuXu© ñs·¯J¯m²s QÅ#ÙO¼´£EY8ê¸Üý+±*ǶoËÑ €Šã°Ø§B$ó•´ÝalÿkvÖ S‚úäƒs™‘hÂÕ ],IŽÅzýÞ × .ÚΑ¥ 6šÉé­ÇZÔ„n‘`8˜oX°òošNøE™ql9lüÉϘÀNXU¯±v »ðÁÖ‡€ìY”ŸOï~@ûÂE§ÓàûSZt¦œ±ÈrB –PÙF¦©Ò½Z» »óžg ¼Ì™yð;€a;¶[ÿ[×±N×®Üz›…m¼ò:?yì÷ešÛoûMPÞR÷`•hð݃jŒ=廋ž/M¨„ßÄúU‘zqµÌ«XeÒ#ë·+·Ò€¥¡ÅS…°ÅÁŽ¥þFL¸2FüÎBnê~5nÀƒÐˆ’ô[Ó— ¦àF½–s% ·XjñlÁêÏ̦„is ûåxoÆiµK¬{¬èz‡ X¥1߬»JDr®ôÁu“Æ3¸È[ÜS"–’â4àñÓÎÍ'þAçµâó8îe–ô¿Rô,„´k¾UÃV\¶"]Újöã€Q;‡±B|^jŸ/~ˆyï Kݾ(Ý^&+®e²ÌZ¥A9~uÀK¥2SvC¼’Ö…|M.>'­øê¶âëλÂ>ÆL±KT® x‚¶ƒ ¨»Å°ÊĽŒ[õÒŽpx±’ˆ/ì\¡ tÀEg˜Lø)Ë;Ë&¤`äî>p;üZOùYYÇyQÑïT¤³„Óg@ó=OK—»•b„ˆŒË¹ûº`ã…l§ ëw´ÎƒêWùóÝÍ?àï?¸éÇÖendstream endobj 1180 0 obj 2729 endobj 1185 0 obj <> stream xœÙ’ã¶ñ}¾‚o¡ -<×.§²©$Î1U©Ô®( ša,‘c+áH¾4}”F;ãÚ©Z4ºÑh4úõc´IL´Áòÿît÷Õß‹²ŒÇ»Môx÷ã!t$ÿíNÑ×@RZ=îx‰ª,*‹*z8ÝÅ]?¹ñ¹ÙµÝcd7ø—¦‘)"“"ú[=ü7ªrár¸ûÔ$uU¼¿ûì&7tÍñx^Ì×&^¯îÓªLª”v`cbÙkTt7ƒGñ“;îJã©ã¦ó›ÝnšÝÊäÉfc‹øì1ýA†ÆÄ@yîÛnEÛøC·à}$ù§v•KcmüÓÊàAò*vžÅ¡N7wšžÚ1@ûvp;d j€—¬¾øãhïáOw¿ýºp»ö‡ks“”6ntTǧù8µÏÇvç¥Êó+©„ò°ªa®**ÐËÔ‚€Hc×ìžtI|Ò=;o;‚ÖŸÜh¶G—èÒ*~à³ Ö­‰÷ãìÆÉíÃ>Û³Œ3æxìé ›ªŽ_À¾°á{êCÅmÏQÓE l6´ã0ÞGM4Ï£‹ºù´uÃÊ¢R@„uÔÐO/¤¦2/ã^hÆhtÏÍЀÈHŽÍø”Ð.^£æ^”hî.ó[“äè—“ö«tõ›w|æ[¾‘Ú¢úÉšp˜¡2F§‡¦ãuüssz>’±0áÂzhí°™²ªUü5Ýù-bñXäTa™„€&ÿ%â’=Vn=QæÍ™¬ƒæj¶Áƒ½Å·Ò¢ŒO½†‡LNØ)®ŠûNQUñ¾ÃȵšL¯53I —¼¹¾Ôëx—WIY)~ŠÕ×!t=pWÝ´V)rÔc;X®oò°êp“Ý ¢³ÐKy=Ó2Þ® ØnÖñ¬,Àš@puö7}Ÿn02Öšäû'ϳªº8yQ$HÒû-› C»ß»N¨ò¸=è8ñ¤ã40ÊŠëÀ@‚(›³àŒ¥ñ\!LnÇþ8“ “ÑMÈŸ„í>La-71-ãqj†)€ý!pit‹<Ë=¾ºSïÓÍâÀ'¹}Y…¡¾ïUq¢ãO ‘mn“ª..<çjÈIìÀ¥t18Å0“a€Ýd“–'Íø„ŒÈô„ŠÃò¦å‚`½ì(eÛ~ö‚äoŸV÷ÙºCï%¤­”g%ºt˾פŒÑàîÛd…ð›@´ôÁ‘sã7àév ¾¤! ‡(Bˆ¢ #ã¼(ALÀ¾0 ÔEª?‡Y6Þf×wÓ6ù¥½ÁüƱ}ìNt4W™ Ûfƒ(eåx†”uR$õ>°¸D¢5õWõÂsó訄É7˜Üâß³Â3°âAg³Wc-¨Ú²?Bž…‹õCvç€úÅqEQƒb¸=]N†EZ§òåª4†Ô9JªëX¥ ÜuÀ÷ÝñÖBn6“L‰0ì†j\¢f!Ç JÍp’ÁíçZ—ò7‹Ã¥Þ)Qƒl66÷,L0šÈM|B£P¬ë8Ï1,®#¸—§Þ£@êçÖíÌ9 2*‹™t®ó˜"]2Loú"q³¤ËÏñøy•(×*þ®ûŸ !¬'Ú¯ƒ0xÿŠZªå¨ÝS€ò \òå!TÕ5¹cÈë€2`ëXw²ê0cù/Ël<Žv°ívƒkF¿¢ª+œ¸]$!™ãò‘ƺ~êåó¶&nNýÜMn‡‰BwØ5óè÷È(É~t<Ü.ôpd;†LE5  åŸr!Ç ÁÊ.ˆ´a‡ŒK/åˆÑ-$Vz®ˆ7Ö÷À¹OXR£v Â;Ë4°"½½¤?„âEgsðúÑÝè~mžØÒ{ ©äÚ¦³ ÓñíßA˜ÂΘU EQMwKRñxœŸ±Yu?ša¸%Xæ"Ùmg³%Ö§¾/› •äb²osðOzÜ€¶£»—8 •b^ä¡[ûqŒN7{\òº$ú‡s¦ûèõÒ41Ú4s3Öݵûý1€X%è’%Ü,½ËT¡+¼Í´=ƒ=–YäÚžU¡;cz³ÇÄö«,xÚuù<Ò‹,lØ=8e?㛺Òo] $Aº¯¡ô Ý?“‚R«:ÛLBPù¢©€IíÍ­. N²ì±õÉ¡©N €<-!Êc‡3‡OœÃî‹/œ jqák™+xêéÉÆ‘WÙÅ+ذÊi²Ž“ ¢¸‡ð|«šòK8-“0AzMÉ;F^ 3”^øÖÜéØ-B ¬ £Å9à(|/3 n£X³ß(¡á Ó¯cˆJ‹µÔè’[)h;ä"!ˆ¬áV ‚ޱJ}ÙúŽ¢ø¬/!¾Tú‚'luõ £kÀÑ8C7P•¾jÝÍØOí°ÌD颠¹WA3-ÕÝ)V–Z¬i}i†îUñi|Àü¥1%„åüÕ3ÈZPàùb®e’Íe?=)fAÅ—Èá S•‘P~Þr)Od­<ï HM Žó"ìgù «”j]K½Ì:LH•ÄËÉÆ/l«/¢—Q•®A}ìâX4Uò1-ü€ÉÑÛ—Ô|â8+T`)7ÞE·Í½m‹‚<…Yp‡¦dÐòÇ ËàƒïEøè¡Qc,ãS?ªÔYÍýo>xùðMŸ7{·)[ºŸ¼H _°°Çëoym Ø‰ä¹oµ–rrUX¬ËW#6h*„ÞËeâLÅÇn¿¿ÝÏô6Ä úWð»°·¼¸àØHØæ*æ^¦@³Û3»¸žH}¼é¢þ¯$‚?8Ë«îU¥ò &þ„§øþUõQùr5º £7ê ‹•H^cHŽË€£Õê²JÛ¤ÉÆP¥•¼-ž ÏÜíÝplV)}nÉ¡‚§GNë¿é¡þ<9¤ò…ÂøFpât•ØøÆøf5GDø­ca)4WX­2z¥ 'û  '4NëE©"b ûÞÑÉ™e±àçe ²%oÑÎYy.»ˆ~ð«€áËS?º =4_}G?òðUú¸¿xŸXÅÜþn%ø´ÒïDmô{#áRù’€À†_,“€û¨tp¿M ¢6ƒÚ‰0÷å+¯_Œ6ÐéØLMÚ+MŸËÜÌk»©7øÅÁ?Àìü9ø³,‰’Ñ+­$Ý ·ö_¬ –‹Àr ˜G§p§÷2m}÷S°v¨Ï{÷,¥ämsƼ˜ùúꀭÒ[ )6VøVÊ0UÍnrž“‿*Yëj¬~ŽžÕÞ± ke…L´²ÂÕ·]ÐEå±g¬5°åÓÔ@ë¼l%M/Srú¤#BÉÚpñÇ¡ñ¬)?fYìtièÍ •P3µ;ú©Í=”­ô£ÿ CV U°Íöæñ”ÀÇÁ"/—%(%ã!`ð5 âj·Ó‹Åôâè«/ѧ— ±O•pá÷8èb{I+·&äuÙn]itÓâ× Š J˜Z~ŠÃЛ/o‰RU|<ŠâÆ×/eÍÍ`É5/ªbc™ÿ¡‘ ØçoYÚB‚‹}èi)ÏÌ"„ÒÒìÕR1 Xçá'ž3â'WHÊôdGôýµN²:¤äÊŠË×þw0Ö$uêË?péƒùte ú0‡Êþ 2ç縂ηþöáîoðïÿ=‰Ó7endstream endobj 1186 0 obj 3469 endobj 1191 0 obj <> stream xœµZKsܸ¾ëW඘”Å%@q%Uqj7ë$ªÊÁöš$fgÈ1ɱWùñoN?‚óÆ9lù 4ˆn4úñuãÏ"Ï”Èñ_ø»ÞÝüøÊZñ8Þäâñæó¢Ï"üYïÄÛ;Zâ„Râîá†ù”°Zتw»›Òe*«sñË?l›•γ<¯´|Ûÿ¬nU.ýêÓÝ_Qˆ+ƒXbs-î~º¹ûÃùöyu«mÖÉXÕYíj[Ëæ°Þ„O•““_)ŸªZþ6…éRÉé©™Ò¢vL²Æ½_·ßü&~­d¿–µ¼÷m÷Iùe¥`ÛZײ_7Û0mœìyÏÒáŠ0ÂSÎ*—iKºÚnšw„‰Ã˜v±V6I•ßî{Xtè»)Kkïž’d¹i¿žÚ•j¥–ÚuÕlMß5÷[?ŠFlÚZï*+üà»IÐŽãÅÔ‹{/ÖOýè;ñÐŽZf¹óµÝ4=~3˜> î´EcB‹[ !` ›ÙS <Ó6ufWwÿ>òþí¼¾p¸þƒ|×mâѬüÒnè‚¢„(Q²ün ”–ýCÕk¾aÞJÅ󢢘a!N®›.Æ@ ¤ñì?Þ¶àŠöDû³=#£’xÖq!sÖ!FS5„«?³_Qꬶ˜Yh½ÇSƒ)›å%d`ÎÖzáPŸÁjîêD[˜Zf³waÓÛÂBrêZ  HÖ‹6ä i:pþ“‡n³œ¼ý¾šÉ ü³ó“Æ ,´Ër—B“pB‰÷«!ôjV FªP,„ioK{.8/ àÔN'FQ%/(šl!÷~ص;™d@’wÛç$±íÒ½¤(ùm§Hr×Ï^Xì¹ó”Ñåm” ¡{Ú¢¬}󏨧;ìîÁœéó85Ô”zú]úØw>KÔ] /eRz‚éx“Ž [fZiëU[êZÃikÎ&,åNüp øj-§>Ì*Æà‡ç¸ÊE¸æ¯hÞhÄçÄóÔ¶$ ÂÅÍÇ'¤7Ëq|);ù[,J‰Q;‰¶z·55¿¢êÊ”s™™C ÄEA%S´^J&'xmUÁ\D˜8Lèàl¢4U¤ÈÒN3Q-yt!›a¥ —Tiäã!ÄXü.¢@˜vbd³û@d,æûußmÞÄ•€«û©í;„]VSÍ[Ú*l™vdFꋃ=Â…ò0yÛn=P’ˆûgñõ©]? ´‡1OÐÒl¾°DÁ¦[ûÍ+‡+ÙTB¿\j¸4EôЮΠPh) ŠÿÖìö[¾”ZîÚǧ)’\$â§èH™‚à"Škâ"‹Ỹ±§¦í¸s©Tu<–.t¦r #™“ià®ÁCÊî95PfEñÇj™¥*û¶éú´ñæà©Íä»™_CnÃÙ¢y GáÐ'1 Rñ›Áç$¨TVÚ”d¨J{’…Œ…3VoâG#ËÅØ.Æ~Zg‚Düe½nFŠL„hš¥žBžÉ‚;0ŽÎM’´üçCËÑ'šÂNã¯íþ"#gh¤Bʇ3‡“z6(»v³Ù.hr©çœûÖ¯ ìM¦Üþ†Ðv¡n< }l7zÆ|¤‘?,ƒæ¥ßᑚá9ÌA†Æ‚+l¨`Èh£•ë¡Zêni¦.¤ß´˜öoÒrh#QÆìp!9²$êŸ~±Ýt¡æe‘™Z‡Hþ€ú}: evëtŒd@yêÁ9­álkðmá*¨³&†"šàoºQôb­ï#43-ô)¬Èq›’×GmŠ¾Ú¦<ðM¯ ý„©}¹m)¨øb]þáÈB€J¥Ó.%ò#JDØ{I^Yg:/¾¯Z›Ü’@²ûoa1Ð9xü¤w¤ið4†³hÊ`§n8r7K–'ŸˆP9P–q(²jd‘¸yH\ÍYØhhæ#²Ar÷¢‰ &Ñö¢INbd> Å‹Éá\$äÚ®BØ–ð°h§0._蓇vãdzCÔ%œ¡0ÿŸg‹*ŸA’6®L°36v¤_; ¢,w±9·Ä'®ºØBhWU7Ü6ãtÕÖÑn¡äë¶{S³È×Ðøk(Ss-)Š:ÿr;A«.¸ºENâqD/$T(^L€á¨·‰T€Kâ wJk†Kš6 ÔYd2dG& ‰;kÈÆ$µ8 l Íby!$ÔËAá m)çØn†¸½Ö˳99Âý+QÍB“ o÷Qéò¢b`t¬U2ú•XEÔN'ÁÂ]£!”¼ŸŸPÔU[ J¹í©é Ô8¤<ŽaëÕqúêd×ÏŒÐÀ¦~×PÁ¢Ò»À-cÜoÛ¸ êÕaŸ°êÿ®X-·t4SÉmÛ±(-ÿÖO>q‡6Ÿ‰ÃèÓ:ªãaVñ~\7ûX}Ø,±øŒÐ{xè]GÁÅ&µ®Æf…‰'?~Üüxv߯³Pä›3þ2+oά«ÌÌÌx? «":¡ ÿª |'‚¦}{ØøãN½ÅW#  {RUo•©3|¶¸ëë&>W«ë“o6—Âï…JZå±×@%#óɱ*LsÁÎ (¢aµ( tyÁšøg¬‰kf¬‰z…°&2ž`Í,±†Wišø‰°†/@9ï|ñ¤¶0´†¢ë8‚ƒî­ŸÎð%[W~†E¥¨-ÒøëJ;®#ާǤ?EŸ;Ø%˜B0+s—LøõÉw‚îޢه¿ˆ>¢ï¼Ø…^íü9+E#¾áýñì}ØݹÌÕª°õÝãôtf厇uGƒƒ¿nXäj+gpíâq˜¦t‡Yb.ÿ<—”ßë˜r¯?G޲@¤(£} Y¤RIäGyö\T@aÕjî‚ šuäà "öÍ])Î^²)T¥ª˜«+ÌÓ[¸eE¡•㾟ŸÐ'½êêR¼?Â…ÿyò»}Õ­…ª2§Êkoþ°ï‘! <=>w`eE¥ÔÊç]”Z].SïÑ»vÓ²¦'˜E¿À¨ùÚšÅí4½®±Íäg¥ÌüŒ ã |>ß üƒ/Ü4Ï‘ â‚n+aüþç%b8tüÂ÷뻤Ç×ýÐqZ«JÂòÉî©6_)r|0üA™¾ß6ÏØÞ}¥gqƒÏУØ÷€÷[/¾¶Pæ“ ß·ÄÏïþôîªÓ«§M7î±U¸æx“ãS\}­cÓtµL ôâfÏý…^ö;uç–~Ÿ•=m*+HÓjáz’[’çyXGÏ3iƒçY3[6TÆE×Ç•ìz^©BSÈcr}$f×Ç ûàk îÏóE¤8 ê÷ô¸=öø†÷Z›-ô™×q¼Vמ…„§1'|œ>w> stream xœµínä¶ñ¿ŸB5ZDÛØ:‘ÔgSMÓôš¢ÒÖ@PØ÷CÞ•½Jv¥=Ië=Aá¢/’WëÌp†”Ök×)Ú“œ‡ÃùÒ¾âH1þã¿ËíÙ›¿eyÜgqpöþL8à?Ëmð»+B)¥‚«»3K§‚\yVW۳밈TTÁ×ùæ¡î*âX'áÐtíâÝÕŸ¼H…¼ˆòéþ|võËëðjÝ ‹K‘ÉL¸júz96 DeiLø°P0*Ò"¬©—ëzù£ÉÃq]Taåðî ¢²lʦex^LW{ÕAº;ëÎä'NÖ4 ›Ö˽êÈc}5z¬í~˜Ìnk¿É]·Ùt$b\”á¡^yv·'¤ž í~{[÷¿beçÆˆ²up©Ê(ÉಮVgán{x°´Aéxqõíìn.~V þuøÕ]0®ëàÐwí}ð@7«²’÷š!€“¯.‚*ØÖÃPÝ׸ÔíÇÝ~ ªv… c·"±gF:Œ*Ä È€Êàë¾iÇïj»O¬ÃÇÓæ“¡û{·•š"‹Ò,ì6+7½7Kž4ð Ô÷ÝBŰA¢Á¬H¥p¤G' ìö¾­Æ}ïH’‚nÛ’Ã]­›åZx—`€µ‡UËe³ªÛ±Ú8â,¬zÁÐE¸ÛTËZMS°ù;kïJ…wu´›G;Ï{¶Ñ¶[Õ½}^pk¬Ž%…)á@y:3ún ÔÄy„jýƒ%yØõv5.§ºøPmw›úB@.‡Wh´HZǾ¾ÝÔÂ@…ËM}'4eøV(Òp[}ë72^¿žÖžñ‡uÕïü†øêhœÃ·þ3šÛn»í„ÇÔ,Ó’ž´ìt¨7ÔØ0V …K²¹·1ÆÀ3-á⇱®V² ,'·<.ä8É@´n'“$Ü4-º;5àòjy¨*³Î²(78Vzv;zd¥±Qaýô$&*ÊD Á‹ŽÓJ ž³jýävÀG,3mMŽeíë]ß­öKA†ÃžŒŸO½ÇWï—“ﳘ í‡r_j8Hfзh+.¼ØDç%yE†E¡Yž(8V1XÍ®^6w‚ÊÏ aµÛÕU_µKYë 'N|Òp]mdVZëÜü”ðÔsÄ»M5ž!9|?ñ Eè$K&$ò$W".=Gpü¼ü¸œuNc„ à Þzl¶œú18öí) Yk ͰR˜d L錉—8œA,Nzbˆ JåÌó7–§lÆ3|"Ne¯’Æ:•#bE‘¼rçó'Ô&Ò¯Û{A›÷Çôp™{«ÿiû'»_ª"‰l8 ̘Õ$â5ó‘'à}驯X™@; Y´œ„Ýr¹ï!v,)fÉâÝ ?£"còŸàgâHk‡á™sH(müâ,ÆÆ/Œe·½mà)@ød•=(Ÿ<¤´˜žkŠq ß>XA@ó.ØÍÄ BâÝ mc*(jábù—Jq çSšòž¦*ü¸!‡Ft™}¶”¡w²ô¤zÊnšW™óû•U¥¢T`‰ÎGvîZÊ H¨2J† Þ8¼ÂnIÞœgï‰èRŽQÌDäy*,*KÊÓwó†£<±×ö†/­þU©£L¯{óä $B‰ÍŒq ¾e] <1IØv©){Á­Íu"нByæ¿)%§¡ã 9A½¶Ñ½>M·ïi*Ó3TO_û+7ËNSY§ïÎ->5 °¤()žÆ÷glB›´\®o˜w_óêNà åzbîcGÉúPm뀭Ìt’âRNŽ÷wAˆÞê>èÚZy›¥»p"-œ[hç)Ç-‚áöÛj³yä¸ÕJ†ðê÷ûÚÆg"͸ÈÂd2GÉÕ¤v®¾Â1gz2áÔ^hïºvŒE]†èmu¦)ù³WKw_8ƒÜN×v£‡Þ2LÅè±t ´A£µ«_­FŽ:ïGk¬ž© K_¶ÚuC3Ú’šVRk,46Sµ+4ìÜf÷JV̉NÀgá¯U¥kµçH)æˆ í ”˜§çá~Ç㔓X;)¦Œá¡õàmçš2¤Ë£˜=<áÛLgJMM0²!ž@x%cc<¯L»rT—¶*º±Å'Óˆ2;/×ÍÂþ€î9M‡Z’QPŒ¶#ú²mt:3†$!Í eb˜¿ÅlÌçÈo[ÂÁùÍÉonΟLÀ_þ\àç~„òæÿªRÝÜ” i` ·ü·ŒF?ù€ó—0~<8ŒKA¡%š€Ì?‚Ìy”¥æBâ’çSðùâ2§‚RÒýƒõípØê Ÿ ´Ï;aÁÑ\œÅhµŒÒ!±‰HÌùÀ§þƒ‡_÷øÌUéXˆèò‰+Mâ² )õ?<[Ë_‡à­à\§aºÃ™d­y¤€g­¸ÝQm¢,Óç¿ö}½°›†ˆ¡!’Ùd&©t‘D]$ëY$œ}\@xaƒªc‡~ßó,ããXPv\ 0ÏiAC¶Ž]+îËPsMö„D9CI ”^xƒ“µ”ÌŸ!6Ÿ ­âÌüe‚ÏÂÏȄπR g[ÀãÉté+Šm³Z‘y¥”ö#u³™ž¿Û2ÁËßmi‡Â6ð?:9aϵ5LϧrÇz¶9ÅpÒÔ> stream xœíÛnä¶õÝ_¡·rZ[+Š’H‹)P [¤@š¸ÈúšG‰Fš•4±ÝØØ|iÏ…iÆÞ8/m~0ynä¹’šQË(Á?ûs¸zó}¡ut?^%ÑýÕ‡+IË‘ý·9D¹E“GRF·»+¦“‘N#]˜èöpõ^ÜîëÕMšË85…h«q²õJfqiŠRU&±‘F¼»Ô73±Éµy½¾p …Ê>¹q—¢ë' ¤â4ÖÛk•öyé_Æ…D9w²ìæ¬çôë¾ÝzIâ€÷MÏΦâ¡öÙ‘‡U–ˆë r³¯ºûÚIJsgÒ™0é¬òÞ)WäÀɈj@… pÆ$Çz84pÖ[7Uˆ‡fÚ“û#~é€mã‹ CìJìèç¹JHGÍ¿gxÄ$OÏù1A> &ªS˜&¿ Jj±~ºp¥T\èìž–«¤\xÝÊ´¯æ»œ@‡ ±§Iî]8÷t8ß×»£*ãLežM[(PŽ,`¬•Æ/{ØÖhÁÙ w¤FÀá7En&3¶‰=St½Ü{]–/½Ô,K¨/A¿f \§€*A¹qlÖíLæÔ‡ñ®o[æ(ƒ3„iÿÜøŒds:™!‡ì¥TáÍ@GņPÊ%Ú46…Ë8oÆsEœËÄçaÌY7*Iâ­ ÃîtXS̳wÏ+Š6EcðCr’Ý“[”ƒG¨[ÍæÔVƒ“¥ „L™qÁeVjNyß°ã@‘œ™¢ |$±#.8 [«º…5T©$Ó DØ€u´ 7FË|>PÚÈOœ2 vŠpKcä¢%Z?EÀ3z¦ºàŽ k–©~œˆðÜ: ,)3é¬}¦êÅ.¢ Ø‚$ó,†áMªã {'dabËDFßމèû)Tç™W”±Ô8ä>âvÏC':û\éµH%”¬Ÿ1¼J ‘X;Z(È,„’΄8³/ñ*`v›ö´u‹†Šä`ð=ð¬AßAòÃfhŽŽ1ÔnW˜åwÿ1,ô§éxò(ì}¸ÖÝ6hBéÙrX`}Æ) «{k„Ѐý³k¡é'‚b«•OýÉ)Wgj8”Ë1ªt}­P¢¦k·€å¢qìÁG9¥ézÛMÓ6Ó“æ± †SygŒ : T/ö$DVÎgmn §Ñ1† ¾ .×A€°r9ñë bEg·h[KM)†ìIcp¾þÄ.C°NýTsk¤)NßíÜ¢k6Ñ ¡$Çva¨6õ€0eÊ‚ÍlÇ3JµP¹ŸaiŸÞþúÜ6¼<õ:æ´×óÉQE¨î‚òÕ˜Uaú#œ‹;®Âk‰‚›A¦¥Ø ýÁBÐù?ì¬3¤ü‡c¨Y›þ¸’˜ã¡®=9”bé’4‡wO'Nâb8æÈ´9‡YM1På˜þ9yJªîqÐ⇺ÀˆîØwaªcЫÝQlë©jZôUÄFQ&ç±ÌÅÞÕ`š€¤oÓÎÖ΀Ç-6OszÆ#™8BVú ^4·±C?î©Z­M4¸`Îà87ÝñN8+hæääØ`þÒ }wãw}¨±ËUúSmyâøWn\(ý´à8s³qˆ™m»}à‘‰Ÿ8ì * ìi¯„(]§z°¹›#È]B (áJÖÜ7]ÀôËZ[鍊=÷)¤8È짉ÜrÝôCWaÝ–n<{—†Þ;4ÊØ Bâýº³…\£ïÓ,t>‡ê¾k>n*ö6žµwbƒíGÃ/ æ’³Ž©£Ùx Ê? ‹2D>ãG[…KߺaýÖÚ6 ˜¶/›7ZfïyN†æLAüKÊ4 œ†CÕ†®‘ð͔Ջj?u>`Ð8IóÐùꪣÚÎWô‘k BulvnIÛ²cûW jò[C³ɘ”2|Ñ oKîLïuµùyl«q_;nen¯rê'¨Yž&³]ÓÛ2Μ—-*©lÖº^R¸’÷¦©æÛ-SÀX½l¶‹àoOuÄem5õ‹MÒcKç:×Ç}{eÛ¸Ú¸}]ÑË^ÓÀi0þ[  A/{ÙÁÁ¼J­)G-:8dÙWÓy‡ S„Ó¿vBlÅw,÷3þ#Õ5fXb|ª)Uc»°¸ë"ÎÿæqwþfñB#œ)è Ër~+µ»ór­Š"œ;>R9Ë¢q¢~G6Å$â”ó¢]ÑVlZ¦Å§ÍÝJb‚7ùg[õD±ôÿÖÒpcð†îªös†Î––ÎÀÒG8°D@¶sý;>–@–Èõýb÷ÿ»hx´7 o'¨:ò¯ŠöüYp©ý•·ó/¦ÿï'÷ßmûYõ.Àèc=ŽçµÛ,-«  ýüý;M©cd ‹§lZNð« ~šAnÜf§®¯FêÜ^ÒâÐû×Ç™,¼UÄäÝäÎdÓ''•=Sï4ŽÜxKR‚ð^z£EÕžCŒM±ÐûìK»Ž6pqVÁuƇ̑Çxa~Îu ™“€wá:pŸy½ë ,¸@¹Î»i!³oJ ÷ÒHϰ€šø¶¿?Íèì;¼eߌn›yx΢5~LqxÜÓ[ ëví…,κ_þ^’–±‚ƒu^”¿Ù¾,“™Ž¾ÇÔ5°°M{¨†ŸÇË<¶pôð¸‰G?÷ºhÓwœËHŠ<øÌU=EI ‰ˆàÙKg½›"¸©FøFOÝT=þÙ™Þ?ÓNémTx^¬íYÓ^¦±û𽵋¾ã‡£ÌUißiáêòÔ^|ir.áÚgQ¾ºä§%ý<~æ­þµôø•‹Î?ø$q™9W_áòMšâäÜÄ{ñ5Ýgu›ïèC][0Åf+i0x3qÂ|0Ú5eŸ4™îóG¼2Wíu`ž175ݶh>õ.ŽR¾8G)Þ^^Šá’âwmó=ì“9ÊÌsÇŸÀœ†)¤È:Œw¨n0¹‡½]ª%!£eeþjXèÔaüÌŽ¡ÉⵎAÍ ?i3»ªß±ŒRÑSõjÕÝÊÂ&³/·A;j?Ú×=‡® ¶€¶ßV˜0µû´”éŒr];D­ìÁ:`H&Ï®TâÁ?wöÃv óŸÖýcHÛ_ù¤ÕMÛ^‰Â¾3aå„âƒÀfªº{þÅ*–pw«ë³Zò HŠÒ õ™KQ`¦$áWZ6ô²ÂÓ H‘£Ÿ 6b£Å§c[5ݯaâNlûñ»<ñ4NàÝ*2ñi›× @vóÅòØ?*Ɉ¥â…oh× :¸ÛŸ\ÐÎEñgö Òìi|!ŽÀ?è#XÔpºÆ¥‰ë¨‚;NAB¶ÑE"q_ÍftS­ëŠèN¸Ü am;¾ê¶t-ºˆŠ$V©q7Üóìûè*²8Ë^*¸H— éÎרQ¢fªÚf]Üù:HÀ9øõÅ#WÌ‹’D )ô˜Yé­ Lq‘æôB!‹|Ãw,ž+U€Ý!YAýNñNr<´¿Þ^ýþþÿ!wendstream endobj 1203 0 obj 3003 endobj 1208 0 obj <> stream xœ½ËrãÆñ®¯˜Ú ºH¼íJUlW*Þ$v9kUù°ò$G"¼$@àJLùüö—¦ŸHÚ‡µN¢=,z¦§§§ßÓßLÆ&ÂòÿæpñÉ‹¼(ÌÍp™›‹Ÿ.bš6òßæ`¾¸D”23ql.¯/x]l kм4—‡‹—Ág³u׋8 £8«‚ú´—¦w;W÷C½7‡º5˜ºwæØ7íè¶Æµ›}7ÀGÓšÚ¬»»%ÅvuìÅôÝ¡nÍu׎áâ‡Ë¿“¥p`ËØ©Ìå?/.?~”aÆQi^¸£«ÇuÝ#UX•UÀr]=ñomhã´ÔÕ—;·X%6 ó¤ p?Ò88ƒY s½èM{£È6':YОk×JØÐOüÒ£‡êv;a nÓÍÀ±9xŠp*%—–Á¦žkç© nÆýúì'Æ]£Ëml›ÞmÆfaÓ°ªâ8x½ˆá«ÌÊÀ…~Íóq ÙÅVEU÷‹¸D §ÁÍéàÚ‘u zêŽcÓµ é¡ù·­í÷ÝÂfaåEp Z^ŸA·WAÛµ+E½ZvM[œª¸H52kV ¨²Èa÷íEÐOºÅ5¥qwc_›tqùã=Ý®¬CõâÉm–„)ËñI‹,¸«ǽ“™„t›æ§¸ë“ב%èDt×þ{†…rêÇÒ´º[ ³2œÅddK“ =Ô«®.Ùü^(ÛPqÙn•:˜|e£˜œO©d´ÈC“,`MùqÚiX’HÓíÖÀÑ&§Žª’è²ÊšÝóž)nY‰[ãÄýÑ»=‘Œ4Oø,îi’ÌTòr¦5©²`‡†Ü*\,Gà" ()…lZÉU ÍÎï¿vI¢V¨˜"}&™«ô˪¨Dú<ÓŠR„PO_$Ÿgv²–}cŽwX7«~ØÖˆÚ«@²lø]€§ßrê<ƶ*Ü6d¥Ah© ­¹™È&›ðHˆ³yå)ϘïÇfƒ¼óTì›–ì@«~H{¦ïV®lt8a äse¤Ýs_Ê ã‹n‚!oJëÞ$¡„ô v>§”€\Ú#±ûÓ÷†¤èað‰ È‹8Óvýc!™ŽˆEi"ÄÖŽ€afD¡µãb ‘!°)µ¹K–5UÁ¬¯õÓŠw \È陋)fé²ïØÌÁ§Šì´Q2?¨¼>8?U~£aN,…ø1}^y¸èa6'Q‘Í ˜;b¦Éâ0ƒúåvçZ19R¶4r.^è+?ÌYÒ)"8Ô€ºSšlýô ÔnÛþþ¬óÉ›¢²,]ϰfœeê zÞ@am¨½î9ãPE11hË8,Aw Åócr¥ƒ›nKžŠ øG=¼!®C’iÔúôjñóUðéÃÀ“ät_¢hÑèžâëø‰Bi§Qg~ÙCh ‚‚äùÄg5Eb)¢¥~sš•aÉÅ´žÌr†¦9XÀ³œ·ÐKož1YŠ‚pæÐfS°}©–ƒ¼¹0B,ÅûX¸\¸ñÖ‘ÅÑ@.zEjgŒú¡‚Z×PN^ Ûø)Ð0T;p­ØNÁÎMë—þ­î·-Ù ¤Á Wo[ddò@5›Wɤ´8,½}}šßù›nä:êá±°aÅ¥JŒa•&P‘Å^Zõ~À`WÄ@ ,y73ýVÆSfŸ¿³à‹1@>'J ²ô»J9VùŽC®Š²òÁ1h¹Mý1dd¶e**˜—‹"Å å1šŽŠ@œ1 #§þüHq…‰ß;TjyðUGÕ[ —á[ÇŸpÆy@†„CYK ÝÁùSCü;¼Ó*«.®Q·Œ@µ8™iÙ0s/ø]M×û î@³ÝÌÍHy Âch¥ƒV=±W¾Ô€uN•΀·™Û%d˜&57 §­ûãaº£V™)ÃŒ % ±’(Ck3²•L¨NPª0µÖ¢“E!×4¼3b€e€I žó‹E•âaâà/‹2‹‚;‘GX$ j7¢÷)éàJF_š<Š€FGðÒ]à 4L ªæ÷Iä!äv$>ã÷ýË$}[Me ÐÑ2Ê…jO_ÒßÈ|93=‘H43ïü{$Ê¢›}pߥ•øýZ¹whÆ ù{G桹Ò ?mñ½zÌ)w‘Í$þ´-Ÿ.çU^†eö;…ý¾¿ÇL³Ô†}¿6^>Q/ÿ¸6Þ·å*ËÃj¾ç»eCeñ_þ“•cãä•“<¢UfQ$ªœàù†= x¯>Ó X$ž¼2 QÁˆëUV D§3=‰ËÚVNžîK6Jÿú|º¾¡ ü0}§hUØK‚Ò`–°âóLî½n4yõ('”iQÌ“zY*ëlXV‘MþXzJþGéiju® ‡’íY^‚4¨åGæEs³Çnï®ÇG jwRÿ›¡Eœj3 ­*—KFпBUG:µïé¤UÔþÚÔ§ZÛÃÍøÛ¯¿ Ð;{E½@ªóýÔAJM¯ûîàq‰Å7“!¶§™¦F(Ô•Dº:é—Ië„÷tHI«P*&I5+ÊqãÕØ­”·¼€„Q‡ºÅ{–ØxSeêsiK^òaÒí· õ.¥½€pi¦Óð†¿ùÍG÷zÌf¾ oÇ÷ÄÀÈwKs¸fª8óÝÑõ Ú?!ätg”'Æå„œ®ûæKÐÔ„Ò…rºQêE®(FÅœîÃpÔº½ÑpwVåljÊ·\_êt&K4lñ¦‡®Ÿ¡mº8ã†;k¼¯ ®] wmçÍ„ú^yõh"ÆH@ªS€€°åzÄoÞ|éf°Ë¾ÔÛê”_â ^û{ò äÒ8º]‡úÕdUüÐÆ¼5£|—ø|8HK™™Íä%M¾ÏGÇ/Ó²TÒÊD©UJÜ’”O Úxd¶¤Æˆ dKfíÔ>S».6îä *’Ž’ÌlºS ï‘Á‡vÝàÛ{°S}ãt^V4iƒÛ¾G×úÎűfHÞ˜ã0SÉ)Q…Ó.ŸïÇ]wºÙùyi“2 ò:ý©åÃÓv†v1cgæ’:¶6<6›fKþ%Ý ,à|Àà×´°¤FAˤB*gô¤ÊÐég?~À’e"Ÿø¬ŽnL"§±’À¼}nÀ§˜Ùz=.¾í†ñ»Mß§PT×o|Ü‘±* †3Ô¿ öãxn2ÙóQ¢»[ÕwüžC=œ±HÂÂN¿µ&‘ ©k‚ÇÁI(ÜÃë@'T fL[Áw­Št¾(ekÙy¢Ø+… ”KÌ‘™{+d Ì ¸ÓÀPá"ø~*£é)¿i÷I/³û\è6‡T ®ÎB_êÿša%ÐOÈ$øÃàö¯©ªˆ!ä:ŤĹšoJãqT‡Õ¨´\ÓûÉ){MDgõs[ÏöãwŸÐPí§g=¸M …HŠBä MÏw¢±\²ªÌƒ€´µ{7zŸK‰*4X€ñ|ªÕ6`5<*ÅÔt -RW‘|æ‰Ê/ÞÒƒ¥çCàk9ã–Jå¡,©Éy»’,mÚÚMÕ꺛• )¤ +ÉŸ¿ë-6cQ§4bY§ô¨kzÈÓ?ûaz³b¼³æ§ ‚©«]·º[¥H Ö³o1]§/ÌU9=Ô«\ïàΉ?•¥šO¹»ÆßùGÞQ$ÍËÏ2ry9U1¢eAUÊNlUà¤ä7g‚–%É ³)ýV£Q¢üISÀë}Íà°¨%dàr7m ¡ä´-=WóÔÞ*áBîd„±-uä ;›†¥Þ)äÅK…ào'ø@,q À¢Ï?ñÀt“ÌKºlÌnk¸ÞWmÊi‚ uÍ­zïW¤Âˈè嫱ȵùìÔÄ_ÌpéýÂc ”Ö}NSM-ø ¡Çü’îü¡ÛÜú_Gž úgjÖ þø‘#Üä»ü5JÏ=¾‰An~óoRbnU½?xíLlÆÞ­±—ývÁ³««7Wð·¾¾ºŠ£ÔüÙ<û¤þd>9YHõÁ³L5WW×ÏÌçæO7¡©Wægó¬^ož™ÍG«õª^ݬ>33??øñýÔ.ÁסŒ{oÔm² Ÿ´ª¦_p”…ï0 ËI %O¥ååW®ÞâÏnàê½Hr2¼‚¿†òå*(ååû¯—ÿ‚ÿ šendstream endobj 1209 0 obj 3734 endobj 1212 0 obj <> stream xœ}ÛŽãDö½¿Â;Ò u<®›«ŠZfЮ4+-KK<ÐûàNœŽ!‰ƒíÐ4Á?À—î¹T¹ìNƒP×í\êÔ¹;?ee!²ÿ 7Ç›·ÿ­¬Í‡›2{¼ùéFÐvþlŽÙû;8b½É\a²»Ý ŠLвÂdVWÙÝñ&ÿËêî<)4¥Â³k]¸Ê•U…Ëî¶7¹ÆCUQY)mv÷> èmQþuYè²T(+š„=ð±–¢0¥Avð€(uöyƧ*¯â)Wxã¼ËÖFtðÈgœP P4ÚL»@*]YF — P(<±²ÚjQX\þ>ÿëJ(t*`÷w_߬]ÒÑÉ'ò¿3 .D <19Kk (­½Ì֪дü.ÿãîæ›¡­(J™ÙªÒÙñFˆJ•‚©P ŸìVŒ·…­peÑx…ÃÍî£/;“U|Y¸D¡Í¬²¸o[?l®„RZXw3Åì‰Ö¨(x⪢õ¯iTBKcÈp(­ÒŠUâëN« ‰ Òhé+ÿ1HáÔlj:Qé²z ´œ?«‚“~þ¬_¬ÖÎÀó/—ÿè•ËB)¯°|tÐPR/QJxZP˜Ê1λ}³ZKSÂUùoý0†™õù0öíéñ–pƒÄ• x,†“Am¾ÏßÜߺ¹‡»û{ÐþÕº*Áçiø&`I܈ÞÏ舥".·6òáóö4vqOäãÓ ­Zh™w3V/Ìíp;;:]ÍÛW{hàlÚ¬ÓΦïÆÍ¾‰g«*ßìë¾ÞŒMϦ‡À©XxÉœïú 0¦Ic¸Çñ2´›0­d¾ëNãm˜ú¼>m_‡šM7íU‘U>)æG}>6+ÐzpRUþËxõNRí•~z'~Ëx>OÃë·1¶ð`µåÕ+?c&Ýa›ØÁ qJšõ’%p7è XAߎÃK• t8*pwÛîÄ^ P:k’Їs³ik@i48m4ðUaViæ’'*(r˜kGºFcåós7´H¦ÙÆ5—Oˆ´!ÂI{œÍ†öñT—¾¹k&º9!3'êò§}ÓOüù% VÔˆcRì ˆP¬(‰7wŸ~ŸŸal¶ƒ#¥}Ž·Ç èoÔ'š[¤AóŠ#@ƒ€§ióó¡Þ4Ò»íÆÎäíÁ¬ËÍ>b¼›È{±$€ó* c)£n¼9‚?iïïwo^ªˆ‘ÅäznÚú0tI—¡Ò=>ƒŒX¹²p@,1¨.ùØÃg뤉§7¥¡“Á§8J@õ ŒC”å WõLY-òôDõØ„ö r+ɺ£ÿ$ô †@Õ7Mš’G€Æ'ºÁq_Ì3…‚·Æ„DJhÇS4 3,W޳© -žùü?ÿþ.NòMß`*X\Y”3Ø¥ V—^ú*ŸìÛ«|}`jê³Ú@2u †IK®ð€pŸï¦>E9ØDæ9ôî)?Sä‹PS¤ U–b–Ô.RÙvSC9‡}«X#ÒØûYáÖäñ-<þ5„5PlÌX91,µÛ Wj¤7†ZtîA.ÒC»Œ¥â¢'èFOÛºLX~ñHË;.U"ݸn±ÂTÃA„CßÖ'âÔ $AˆW2>T°¥k‚ü߫ԤÞKU8pOûv³S]Ô1ÌTÈÂÎ+Œ¶JC!,âëNŒ }‹©¿‚.šIȈ‡´þûÊ¡¬òwê“iY¿¾lËïS|šÈÄïEŽMÿG‘¶¿‡4ivœ›€‡ÚQfÊ’ˆmÀu”㤆ÜAª@±÷Gv*ÃŽæg {P±N»¡ýe©Œcà {˜úöõ±Á^LZK4!Å¿´cMù6–9Öm\²…S^³z2ˆšsfþ$#~0pn"°'M¾M´fœ«ÐŒ³“ ÷ËsÊ ^$søQ@Æ¢ ãý¡9=^û]œp8GáéÊK‰B¹Xn£/}ToJY1åI`”b$=ÇÚèiøìªå¸ (+)·`ß’K ĺFaMKÊòfÎÖ6Nóé²kð!__YÏ-¶zª|§Q<þ2ËBàǨ¤–ïøPã)ô:-1ù«:'!|™fVáû`‰¢¬JÂŒëNŒ7ØÂØÂD;„7šà­œ›+A,pA”Kàˆ+|X+~=ž.ó‘Uèörí}·ål¢åŒãË`¯…sÊÏJg¶À' Øy%f·±~61å _e>ÜÃH9½ü»íà11™ s3E%b[ÆÊFkÉ!õžÍÂÛÓܨਠ~ ©ïˆåIˆ™ÑKãY¼4Ÿ<ÖÛ‰˜änl&¤rªÐ¸@ T¹Å[Cj“ð‡an\«@)¨ç9Å™—fúJ a:høU ‚äÊcß]¨‘Ž ‹¶Ñ•àÌamÚlº.`cvYiâ*×Ýfséû†/@)á¸R¯¶èÀÀ’ã­àU† 8¼«[Qæ^íÓ-“Ù"òC]/fX’9ðXó+–Þ›Ä>õèþUüà¶M»ìiÄu*à#Má> ßY㪾 HÙXà‡1—Á ­Æ6:|]ò÷Þ§Œ…Æ.}Da€P¿ò¹mÃÝso}^_cÚ©ãØNÌxòÐ#~ñäyÅ]î}¨Ã‰À¦ƒœ;|zP./RîÀDLñãb¬§+J4’èœj²Y’…Dgî °GjC›§Â¾®5¥*\ìÿåk-#}©8•€ÂÀNÂÔb bÑ!DÒ¡Ð >笒é @ÞªÂE’‡ÂôèÉU?5n„žË¿UÁZÔ¡YIsnñG&6I¡6Ý©ÖWŸ·°¥?oÁÛñöT®Á98cD¶–ág\—*¨=ÉPð¿½c£ù8üIùùm‡Ÿ‹Á" }Øm;v¨¥´rþ‘/®ðÓ-–Ž“†Pèƒú‘>`…ÍS7Îá{N˜†jŒŽÆ2‘¶*Ðé“K+Aá#äïO}wzü#[3Ë…ëçˆRæ÷ùåÌU¢“Ær"xÁ 0 Èé—Ÿ¬ë‡njº/Û’>«J¤Oš ìöØn·‡i3}ûD#Z|½•°r8C@•o1£ÊŸNAý*Í7ŠÛáF4u1[E*.\(LhwLÎ,V$1æ–p3þÕâØëì߯ÂX¥C‘aÑÈX®¨Ñ‚z“˜ÌBUZ@Z2YŒséçhAG•( `ŒNà_ü={6+Åù9Fì@Ýç.ôé7`ßÜü2žÒKendstream endobj 1213 0 obj 3825 endobj 1216 0 obj <> stream xœ¥ÙnäÆñ]_Á7s‰fófpq Ç ðÃ*§G¢wf8fs¬•?Âÿ`iêìæZ¯‹í£®®®®‹óC”&&JñOþïw7_þ§ªëèÉݤÑÓÍ7†¶#ù¯ßE¹G¦ŒŒ‰î77Œg¢:‹êª‰îw7ïãG»ºËM–”yﺵÎJÏ£Ž‹x­ã¼ŠççÁÉ,kc÷1]{ˆÇ)`míþ lAV² òöÝ^ÙådÃ*;Ø~øMWWä^Ë&þxØý0“Æ…ÙxáQñ@R-­½jÓdñÓ@/ÂÔèM)áÕ*À~œí­LÛ¨¬uÏècÇPõã6‹»õÚz@v8¬ /F³”b¡dA9ñ°”³nðztƒÞ¸,;;'ºNæËÂåÆÿ\XIT7£?úB X/B—IV¶ñnØãkÖ…’l^f•‘‹”y2é)GÖ-³ÓàìɳÑ)Ü:h[ç¥ é{}Øõ­ó2ŒÍ«è‹éužï¶›V¦Ák®â'–‡Ý0{%¸#Ép5\“óö•!¼ŒƒÅ……Sky†ñ^àË>¬p´±D˜ó j¥íZ™_/lCH\c:Ùõ±·ž2Ÿ^…=ÿº*ÑΫØùëe}UìŸdœ&e˜°'’yÍÏŠ'UÛ®÷4 =ÝkÑ‘S+~Ü`¬\€º¹[phM±´ÁÛíÆÛ·$P[cÏîqrÔO{SŒy<„í°·aöÜ-T€F z<^È×q7­ïHYp5å¼ÝbüË"ÖdôÀ ›’£ê8 ™—Y@ /9Í% pŸJ \uêÓ€ˆl;ê4äp¤/—÷°Òl£ªž9êÞäB뤨 ñ *à(¼Û§×®gô÷d§—nB3tJ0dSmbʬÖóݳ†Ël¼Óa«*ÆY~wítËÄ/'ÎÀÿ,pDÛ%ÚI‚ áÃU;¥ÖC6"Ä>¬ æ0E¬åÕóuÃÓ¾›™!—ìè»A™l`£yEY,äF-)Í%óygd7®".)õ#ÚÍÑ®=ìfwg¡Z¼$dmš‰öxÖ²—qÓflÔ´Qv/g®Úøã|€8B ø,«tcvÂc85’s4mÝJÎáw¦ŽX´^0®R`ÖDêQŒQǬ¿|5©8Íò\µBU”b‰lAü¼z‚Ùz˜l?œå³¤MúïùÃÑ:x™ðfæ1Z‘“Õ'o„^<¹ ~eôn¬ïnøiu‡F–BBm?ïAä_­¸ š`F〚ÎÁ8Q´}¯—ùqž¤e%¾ááÁõç^!k!ÍjZõ y ÅHùÖÊ’•†Ÿ' w6Oex‹ûçnÿ¤ršâdÏí8y^¨ž[efÀy*”Hv Wã®poÑn1†½ <‘@²Zª?@¯IÓøúã½xô:K*|•ÝNgh‘¯0bº&HÙº^·ÊŒB>á…?Zˆ0äˆJ?’Ók¡¤:Îv·Ëäžì¶Sk¿»´6æâ…¬Ô+FÓ_«ôW¬gÈÑZØ+0ƧŒ= (÷AG×j ZÖrÎÁ-\ä õg½“*z7wè©’„Gÿ8u=„”øƒ»é·ž ?ç"…´¾­NOx®`j \çê+XmšCÌÇÒ€i°%+=²쮺 EËcÚ†^‹ÂKNë·Áµî‹Æ QØàð²–*LRÔ¾B‚‚sš½Ã!Í\Eu‘Y%x±´)OJ§SÓ«¥S}öȸ]%æAòhNc^Öf->óƒ–Ó¸õh…Z O”1/Hô 1T¡=x>LÒ˜VõVÅD»M(™ƒ;1Á—ZŒ¶Ê¼rWãæý…œ%_M˜.¥Tç $$\D¼£zê™ð9E7g’UÑzÃÞÇFûâÚæúËãŽ-BéØò˜;¶Ó:W}H7ƒk‚ðêÀR zù'”âs ÛŠctŠ¦Ï 'pµs÷Á6v¸v.ðÁ.n¶¤5Lçt¯û¹û觃ûã•Òü”tÕQ×K«µÿ@tqÏ¿›Å5çyóIæFò»™£gûLfõ»™aúQó’¿µµzQ﵄«Š×Üà†‚ñ鈾|ÎI}5 `Mø˜’Bq¯ß> 8ýö¡{¯Ü§FÚ|† ò¼¤m¨³ì‹EçÅšùKR(Dªë¨’Bš I.¡ƒÏÞŽÎN ¸ñÉbb¡Íì$œŒS[üB£àLMè}tŽ3ká1†ï Xí¤ åE¡]5¤B›[2éœû“7Zk¼iR×mRÒ5‡aEQS†¶ ,ÙÒG ™7]Ñ®ñ,ƒ´e¼ÖwÒ $ªgV<ÉØÉ/Øpk•‘›@§¡$@Á2Hõ& L:”ySúl›>MëaßM,AQˆ'G!)£ò“?@fødcËß O;`°·‚ÙÅY·…ˆ4!€ƒNã±ïXZÄŠÖ´òU€ ‹k_µÛÌvÒi/©û~8 uÞª¼åõº"k’*Óàð[1 -ÏS£/ÿäȉ;q$PG”SÍ,îÓiÆG¼¬à*¹:®…´}MERë¿9‚%†ré$#£¥Ð†âòíìac˜})—-õÜËÇW.Í–…Û’ìI‰¨©žÀ›N …ºM¼äP\^HÝâ§kÿ+ˆa!"¶¯o%ÛwŠ¡®úZñ×&™ÿ¦‚4Ñó¿}ÇMãùÓ5åi‘õä{Å«“åšÛ'<ÄvÖ!¸Ð¼õ¹‚Á¥YÀ“ZòlÝZÞ*ó×Έð»áiÅÃcýf ¹.¤õ¾†ìµ­±¯c¼±tQ#…F—EÍyYqQ5§ÅPå:€¢º UÚy¢)½£qeè v9•Fµh"ê7iÖÈ“ö¬}#ÞqQaÈ› ò‰¬Ò Wù¸å’(°tìh¬¿Ü8­ètuF¿ÕëÀ¶ó}Ò"KÒµàG]¦; ´€kV$ý^!µ™’¥Î ÜÛ:¹U¶Ù™çWTù:%Tùû”r?°UàG^2¥cðÓ•P2òÿÐgË‹’"€(¬¨@ÒêDa´”ËgºZiý·&œÉÏ@ÔÀp9›ãV‰‹÷VB Ñü QZ I“Œ?<l/LKÊZî¯E%(,j-ÖäIWD¶|9ñ[Æî ñ)ü´KµeÎv{– »hØc}‚¢’ 0UR™Œq´úâ&ƒ»-Zß#‹›ö¢4Ê]æK£¿ÚnŸÒAL_ ¸?Zü„Þ<¬HÆoîoþ ÿ¼*tendstream endobj 1217 0 obj 3535 endobj 1221 0 obj <> stream xœËrã¸ñî¯àm Dæðý8ÚIå’Œ«ö0³Z‚,îJ¤–¤Æãý‡Ì7§Ÿ)KÞ©”«d4ºÑš~¿QþÉÿÍñîýв žÆ»(xºûý.&t ÿ6ÇàÇ"©‚8vw<.Ê$(‹:x8Þ}2U‡q\§fga]'¹ùbÇöÕ}ûÙŒŸW«_þ‰Œª\%qXFÀà_wùdöí¸ºOê(¬’ØlÛÁn¦v• ³45_ˆm•WÆ Q›ñd7í7ë†UfÚ7“âS³±ÃÔ´¢K3âòjà“ͺñµie˜zm›Gí6§¡í&» ™Õ¶Ýñ‚ãØìì`;E¥™Y¸‰æœ§½õ ì8…ü ãŸòî‡~•äaUµy†Õ hãDEùø²ºO£$Œ‹ÂœšvÌM¿“v˜î||´Ã¸ÖžÔŒöÔ m»ò¯ñÐŒ{;†~À®žÑ™ù6Œ“'ö3¥Æ6›½§Ã% T¦´1nç¦ñD×?•ÇóâWYFq’™µŸ¸é¶˜üaývÓ;dUáÔ(8Ðø‰‚~P[§¯òùüÁ` ªå²wêuP·m†íÍÑ8C(ç LS=PIpŸ$aQÁÃöwNGÇñ{øÞ«‡_g}c½Ã$Èé·Àßջũº_²û$ß(ÃÔ#„òäIk+jóµ9žJ—ç³£E=Y)G‹ òÏCã3ûIZÇ„_Y<ÎÈÝ©RÂù\(ÇmjnU Ï“Ûvýplž líѬÊg>PC•afWŠ ¶V«]A¨®ió *^\]Ú¡Ïþ[xr6*„£RÔ0¸`«BDÅÌ®P›¡Ã츉É>”P c <63Œx9 Ú08Q v¢b›Q„±96ÃoüµŠ0Aü M8 ¬å å@øâQŠ(Kµ[ß³ë?î¶Ýdâ?ìÐËb¢Ä´;ÁÀ²ûû‚¢­[èÑ£»^Û^KâŽöÂu Š*æ6˜;àØx÷Ènº ëvûÔ ì²ï6”ð-s§´àDHi¥›N†€0/“fH^+Å¥ù‘¾,Í’™CÛY·ªrÉÀoF°°ƒÍo«­v–ð¾ “›~XPu á\Á ¥q{‚õͦêìÆŽc3¼¬ÀÍhÎÝúgcœ¿}õ‚¢Uåd’E©*Ìžç@[[‚RÙNQÙ\­„øN€†q¦¡Džbtñ9FpHF8 Dó(!Â2‰c&üdBå[šŸió‘å£Þ¾s‚‡ì…­.vÆ™ò×5,d˜p´UæäCÚÉsg5â~ð¹ü*–uÄàŽbt‰œ9F8®‚N¼zIéj„÷}» ÎO‡—à×L›o>Jª0ƒÌCCoJ„’è2:5”Ü÷d@YVÒé{3B¢D8 ýÁ “€HæØŸÑ3yE6žÚe½0S»A ŽïóΦ_ ®^çDëÊRV®·bA4£:×ÃÞúEl[Œ“¯q\f17BŒ}Ê®’¡áEma>OŽòÏ:©}@ÕÉ1— 9Ë1«HÁ¨VQœÔ*™Ó¤„Tˆ„»|-Ùh©ç¯ûS”Ãõè+½šh¶ø‚üF˜ÁÄrh'.[¢‡À4¤‚¾£úã©y‡òî» bü>-‚ì}þ½ÖNNX¦ñkH˜â„ƒ0%M´nFØ[ÛTj**)í˜Ø$³þAgKá£@òNZH“¡[z²ìð˜‚\pç×Í—TU5, ªÖ³I&O–¾ßÛ+«¼½;UÙ,ò `Íxæ ƒ9Í„¾‰¹Ÿ!ÓÏGü>(½l~Ü‘kÒtX–&v$Ž£=P¢€1 (ûŸW|bôSr`ý±?Z-£žâ!ÊžL8@£fF6ãT+RÛ¡NöKØLåLì^§Å&4a8ãzMK†!±e­ª›Fq˜¤™Æ–ÍcïâÑ/öU$šFa§¥£ö3_ÿ0¡_Ê?\/9IY”u½¬åk?Ë¥ºkÎñ©” q¦ñN­ÝÐÕN PºÎPο“6èh³ÙôÇSÓµG¹0ÂîJt‹ “σòZd§”·i?eÁkEjk p¸¡¼É[‘¸qInÀ‡eyÐ;¿(Ô“¡??íû³g,XÔ¦=¯/ò8Lÿ°]+7Ùí`3Æ,öxÄ-ÃÕRј>SS"$¢°ŒÌ¹’N¨Â{‡‰JM^œ%¯L­y!°ypnÆòµ˜‰êö݇®í3Ë”+×ñ2 üRÚÙvZ¼uËhfwb³ *’‹F(­8Ø}³:ê¸Üü ‹ÿä˜o>Ÿäv‰R‡;ßFE¦%ú‹2ö‹®(¡+ ¿ìÅd"q"Ì^K\©¨Ê¤ ØTÛÏ`uº­õ㜢"µõ…Pm+pX%åa€SžŠ¾©¯Ù²òã†âeÍ‹Rçæ*ÎÀìÇR=1àµÛãùxNe)j”±EbÇ')ìò_òO|]R‡IT:éÌ7u+w§O—Eu˜G¹ÿv7ë5…*RB:ƒ÷Ù" ¾åÆõö 7YX· Úéz.cQÅ×bϬˆ=!Ï£÷Yu5 ˜ÅŸYš‡Y^_‰? “Öó°{ ½ï#è¶åæá•Iåí$†—\¬WÀÍü–lš¢0[¦á)XóWælýêrZ JeìåÅMç0Ï{ܼÑtĉkÍ?8#JoOŠ0…!Åo"Xæ³ûî)o.žñ…Æô'ŠÛþEhù¥ ’‚ù|êÀ›o×Òƒ2ë„´;]qÌþÛÕ‚ÅÖŽíà.5[YŠF¬Šç»®ü—u†¥sΠ?ªÄ“1ðÆÔðú£ŒÅÜw{>_‰Wðpê<3—|unŽg7UÍ•;n¿Q¹Sܼ,xw>|;8h¾•ñ¥›š¯~u‹xŒ9qü® dw¡RoAwJXPõ™Õ¬,&.&£ŽügZLŠ' f7.m¹¦jù¢ŒÙ·JëêsB|l·ÛƒõH~±Ä34žŒ‚ZÝ Ø˜Öm&™1|ü(ñå ñ•DI~GLgã’ní/¯“žW+nÃÕf;:‹0b8z# ;ûuúåÒØâUqV8>Ÿp§%‘z¹J þz9|UêÑ€ x`L?ð>¸HJoÎñZ=Š$õ•píŠù;`Òo¹'H.݉J¢7lC|¢j_jϹT?…?3™_´1”H¥òKPªv­ƒAÕŸcî=)ÅÜx(ÃToÔ?xRå•…QïQýl7dM•nöÞFŸÙåaË£RÈüZ€î¹%R9JŒ€mƒ…ð0‹DÞ ¸»`<K±ÈLî†>§L—·Á†µ›ªó£äL唞ŽÍQ!¹»R/ ýà“[Ólk˜ÿŽ½Ãø}ºO•¡ÔÉkÒ¾Ù6±'áŠØÍøöÄ÷GxNWÿ44¡­¯•Øg Ć øaðÏ—vlùFqú|C@®ü3¾kQÄ^AP¿ï‡öÌöA ïÇËÜ~æ8žï/]² ýŒ¾Äê^*Uî¥Rvñv„žI€¥çJhãjy²‚ö0Ñg )ßÔ5J®ÇºçÏJ€¯ FËUp&÷K-ª0‘sLÚqãV@¿âÚ󹚊U ‡Ê…àŸ|¾bAîWlo aGQÌS”ë/{X0oÝ8"yV„ò+9E`Qƒ MI&Ù,†wÏ(Êe€ØâÛ,€RÔjŽÏšk;įr®ÈÊn]­1Z>¡`í€qòlÁ«wàaê0ƒVVdêè2»‰!Ë…”ZEõ“m¶˜€HV)ßQ4€ç©ä¥øßîþ ÿ§³Éendstream endobj 1222 0 obj 3965 endobj 1226 0 obj <> stream xœËrãÆñ®¯˜[†‰„åàääT¥*N%›Ä–Ë+аA€ €«•?b¿9ýš€"×›”ª¤yt÷ôôôú Ö‘Qkü‘¿ÛãÝ»ïò¢PÏãÝZ=ß}¸3´­äÏö¨þüH ¥2F=îïϨ"VE^©Çã.#™Ø¨ï'{lm÷<ÆÕãψUf«Œ²´,Õãßïÿ“~<4ãê![¯£8/ô®ìvjVqUU’è+£2+µ 2Ñ!«ô¾oÛ~gÑz]VúÅî­To^JªÏ§0žz“ë±ùähº;7vïh¬_Íö¦ãÉn›ýkX¨w?ŸÇéh»i 4ôgràÅ"ž‡Õÿvgb'„s·±õ™Oó2ZWúØtÍ9Á¹Ygz;ôÓö`'·†·ýp®W¦Aef.¨ÁÃTFöØ \¼ ™ò&Üྠø¯»]˜é+ñ¾xÓÁ¢å…Ë,ŸÃµ¯«2-t´zHLNÏøx°2)ðš1œßžíÖŽõ«LJ£WEâ¨Åz?Ôpzßá}ºè,£•úy…Ìà>²›]§w¡'Ýt»f hݳ¬âK€*8>A•ý0Ù žV3ÑÛºs¤õÆz¡G»‰€4¢2Iõ^[heꮟššBO‡z’r7X‡+Çnž hç@s];’ù' w6°ÁšÏãòæCx؃m<¡Œ¤3†)ÛŒíæ—lfŒöÃÎ^>S¯>Oªé (x?Q¢OÓP«©nÚ1R Ejg÷+³Öõ¹Ôh'|¶Xͨ¼çW2cZ5ãé¬wßIâÜX¬à‚ë¤LÔãînnéìVá'Vé¥÷{ðxE…xÎ&å:J3q1Ÿ­[ÉÚðĉ…‹P ¹ž¤ÕoÛqeµ'ÂÅ×™q8³ß{žb7ZP¬t†§¾é¦ÿÇ °ÐCĉ‹(6•qn“£MLÑf„g×/õÉá|9Þ$ë*ÊÓøËñ†€âX{°=4E‡^‘Â;RuK†ÅÓõÛQ0úe…¦§`Œ¯ašÁ‹4në_ÿøQ&àú}?ZÏCåT‚wåàÑv*Áûâ7Öí+ëŽ@ö]#Ç˰$Å xúT/`=ð2Y¢A̼ ·µüŒ œù3 @U 74qb‘qb'Q.P#G[Ïñ–9†%‘qâ÷#žòð~—î™ êqŽ)Fƒ#pv¾|_±^ <=¨?ƒäpní¦ï3GŸhÄú}î—G(帚ݡù¹T•êI¯~‡ÊZy¯b0±ÈÁwo@ÅFÏ´JrПT»—¾Ôñ¼ˆŠ¸`,ý´ŠÔ{xu…a@!Ïê}>L‰/ò‡Ue”—ëJÐ@QÞ¤ji´ÎÀø„U³ØŒ1$6 J—nñ!.ʨȖN޽;§‚<ì¦CdGú“þ¦EåYç$c¯¾9)Æ5»÷„‰YÞ&rV¬ U ÛªJx7ºä¸É;dF¬‡“‡p•6×[xˆ6MÇÞÌoç"‚$1ïêáÏ}ŸO3ÿ1ìÆÈã3s^’µ± <Ôþܪ _ê#;ô˜ßÖ­:w>Ûš]­'þö!Í­'Üõ/Ý×E5õ,ŽuNG ÓýéÔ h)Ú"nÁåP©î“‚œnv ÒßÁñЧó¦mF¸Øø?0ÝÚýíf¦Ë¨ÌKÇ3æ'Y ܪ¬ìhœ'¬{¼‹îñVº«*²Ì*ÈÎIU”.´˜Øá¢óŠã -";{²Ýnttâ¯<íòÆàÉÂUÒââ.6X%YIQE~/S Ðã{a¯J€ÎŽqŠxª‡IfI®ë1è;ƒ%÷s ×ãH€~âPKDK6ßpF°-H*GÇ1¤gÄ™2IŽ›où/ôià×1˜L4ýy ç¢ÔÀ7‡…o÷Ï_£§~ÖÓH£,ËDò4Ë%1‘Z†)¾sü¥<€2Ž1ñ†„Äg÷# Ôd”¤nelE|/1•Ìõˆy›ó™‚§<žÎ¹I"˜É##7 ó}€dù3Ì‹ÿ³«f¾ž¡0‹Â‰( ^x„ré †æùpË,rrŒX_þB*R@¢jýr!ïn’¨ò)NÊ¥h¿r ìxÏ8B@\z¨??M³U~w™QÚy ™oæù"r% e‚Q·cÏË79šÝ ËØ…Sr*ë"k¼¨ZQv¨¢õ_û`þâÀ–ê Ib¥Iï «7-¤0Úz çÆÕ=´™Ï!ËKºU±žíz;:Z…ÈD¶fØüf²¾ñ¯=¯_2 ¸³~Xmêa•‘½UÔé`ðooFks’&/¢Ç§•ê÷ªV@JA¢¢z.~ñ­”{"lÕ`è“§Y†‹{E8cx…Å\a}G|^rˆýЉ6¸¥­ÝaÑ̆ö¶8[ÖeÉ¢.k¥.±í•"mYŸaŸ„êæz}F@ºšù^– Ú’n0‘XÛÕ†¡oÄŠ{¿ÏqŽ0Ó/„Zp}K çÏñ ¤@¯9ëŠ[^/vÝ Tý1QåLÑÒ²Ãn§~éŠàP¶ÍÊ9f‘LòRÒœ€‚`O¥QA‚ƒ‘æ;[ŽLJ„ ý«ú{™£îò„œÏÚ¼"b%:¹>6»];›·MgÃÁ”u\ÁºY-:Äva¼Ä¼µÀܰŒy:cÛ=5 5ˆÅ-ÂËaq‹†D#MH„Ë9yÛHºA€1u¢Ý^?î]Ýqô63¤‰h(}c'}É jÓyúóºômAšÂ£HŸó 60rrÑŠç£ÚæÕåÙ&sõ±”ËWoÆ)Ô~ëØÕ‹lƒ›D—j6+=Qðvi™'óÚw Ž«”ì—ÒX_q!…ÁDªpè[îkâéä¹ýøÊö*ã‚;¡¼:‚L[OÀÈg‚Uºf¦î=NãNÌâà hg[Ž@Ɖ¥ƒìžkL }e•i†D˜>¤iæÞ›ÈÛCÝ=[jäPåP¦q:³Ëºu•,»Ç–y‚â–ìK¸*‡¥;þÆÖ-tûîV1¼L}[ ÁW™wFÅïÌפÀkàžN2pJŸê#š$픵 öÃÙŽÓV\#@Y¸ÃÈã›ua–ÚÜXéîàñåÛ~ÃÜràÏ_?©õd¼ §s3—§O‡fØB¨An7NÀêAºµÛ‡j“Ò>:t%¤ãSfzü¬.w³[H+é-jë²məܢZªÇNízŸ©¼¹~Aþí|-…|m°Ó–E Eï{‡_HÕ¾¥V˜f•ƒ´–,àe!ÄÆn–K'A©·ÍÐà°Àâg®1ÕŽ”d~nó''ǾEÁ( ›_ûnª[G=ÑÎöýBÝ>Øt8ÞÏÛûûQ;v¯.­#ëú2ûr]¿4¿PrpOèÔHÍp lüzB…ñ`Gþ¾€k¨13ØÏS“QžÜš7bRª(ì¹oK¼éÇ µÇ~tô ´‚³}‡Ù©ƒÝÖç'›×'žG7YgòYˆÇ®£1wÑ)(v•ø;$ë²¾óôFÕ¼÷À‹z`Yl®:‹2`éI»ƒãØœGI%©…þÛ>7òò4‡¬¤V ‘ê?l'³¸Âúm”Y*}bÌôçåÊœ$X†ë "Þ½[s9#Çœ722iƒ@¡™£9'ù…³r”kn”ñ”S¡ÂŸFåþ&+;¢˜1uceÔ7ì‘0ÿ£¢ö=bƒ9ú~1Nlƒ`§LÖÁqnÜd'¼ÜЩ„–Jù…±ŒŠ»o’9TƒNíçø¤` öÆã`Эç ¾¦¯nL ›÷î(Ä ”újÀüM‡/’ÛþÜ¢ëmÚV‘ê+º”•/Çõ‘ûEy§¡°‡ ÆþhÕ`Ĺpã]Åé`ØìƒƒýaäüR×u™°.Ðÿ¯Â¹‘‹š·+c»s°…þLŸ¥pfÖ §¡²ãÒPšr=åôÊ'ÜüVOû¨¤ÝYŠW!tS?JÐb ^²mëçO |ºïùr…‚½º€] Ûõòk%»ÿb þ û°=œv”…$“Óp³šCæN’¼ãß6’5p}W™ÉñãjH5‡•)°3õÞ´½7³®“‡óåÎ ±ˆspý2ʤb¯ýÙMDN<<]êg8 ò¥„P§rXØÛˆPÉ@LJTzˆã$*RªFäc:¸Qúžƒâ¤Uå܆®ÌåWF“È•»÷_!WB3¹øªù,éIƒÓ¥ÿòx÷oøù/lѨendstream endobj 1227 0 obj 3388 endobj 1232 0 obj <> stream xœ•Z[ë¶~ß_Aœ—J­­˜Ô=- $@¦ÈCÚ¸íÃÙzjv?¼Är5Skâµ*ªdSËh7OÍÜ=u}7¿ÆEžl62GPæÑW³ fŠ%´džE‡óQs˜ê™Ü¨¨x<ºaֱ̒ºÊ«è §8Ƕ*—{lŸõ¤Y¦vYtæçIs·RÑi4¦{ê=Aý+¬?k³b²,zn¦ºáðø,`ÍcXßÄßmÿö •Ø~ý™îØõÍ$vÏÍpТÄü¬EÛ™¹fqjÌüyü;$^«MR›Zl[¸ÜM¼–›,O²<ú§Ñ´¦éãÔÍÏGqšºqó(&Ýë¦Ó$ÍiÓíïßGòÿZš%Jù¥êvißÌÚÌ Q«÷ðìðhð.ç~FÏ3\ÍcL|ÖxY'Õ¦´GùW,ºÕ ;‡IOnD(o#fjEc„JÄö¹3pC“ÞÍ<(PUãð“Ã%qÒÓ±›qÍ8ô¯|­'õ8Æ¥ÅrêVB¢êWN¯U™”JÖôRð‰T¹øölNzháU.,Àèkº(1^§EÈ:‹¼¬°Y¦ËmjúžÎ"¥Œö@ÍËA¡ñÌ,õÔ3žÅ±º: /ÏÀýËs·{^Ly²*jN'ÝL&q#p¥_ñl•Gpä]÷Q³TEy)‡¡;1Ý8‚qÚ;=Í o t<†{««ìâ)È®7d§ûi<º˜mÉ'gäEºap¶‡smÍ,ü"¹I£O½½[Ò¹©|6‹Þ“Tû±ïG¯~/ºå]dôôÊdð¬aEß^K‹ÅE\ÜÃ*PtC8ÄʼnLsÔAÀý8›™®9cA'=-eÆþ(GMÆ÷4¡›"kÍT¤g¶¯×ižÔiQZúH4C+âí÷—,e’V™£@†ÚR&ªHÀùñžâö`ØË4u‹×uuZ^x@§q­«t•¯ëë×ÞcÊÔîúh#£E«A{|1;"aÄì¦î4[†AÔ0R`l³ñú m'‚":jôà9òPMŠÚð0ë©ÐЧõ›¥ÖJ©}±<0^Õr§ñMÊ»Zˆ/®ÜÌ]"84iªê–ð×cdÕH)w¿¥LÊ*¯Ý£ÿáúúA¡RUñ4à†DÁS<Ɖ#ôv]©Dʬ‚ÇbWÛ²«-Ä·¯fÖÇCsºáåmÑSuqªiîvMï¦àAlTÝ1q]AÏ/ŸÀ•ÚÑ0;eQ†k!"ž'²t)Ù?é “XƒçÙOBÔ'{‡¶º$ër ´}öæÚ–LÆa1l¥Lm\zZ«'u ³µ—Œú…õDÔ.Õ’°Š0\ºœþMõ¢y¹`“6*œŸ®¢Ì J¯Â p,Ì V“éÐL¾x5;ឣ}òpŒjƒÈàˆ7ñÎ*­+C¹ÓLó–‚eURyŸ¶ÂÙu–•‰Jk®…<Š ¦Ùtî¼ù!†Û©Ë¼ FÃM™BÖ$müPwd7BC _ .aö„Sé€pøþÛNMè _©…GøÅ3©2ï“eaùiÈŒÁ†7ž™_…¡Ì=ù.ÈܶµoJÛ2f4§fgƒsU%9Þ…ÍÁ@!ߊ~Ž ÏmðÃvVS<Ŧb[Mx®‚{8S̤e… ôéÍ¥¬üŒ3FË®µ›¸)ÇxžOç™i¹^·ÎËQE§æ Ãi:<­—ô“†¥ëï_þxG ·þÊÞÄEé+ØÚË3ÅìY¿ƒRÛniã¶‹<F×Îó{žÑ’©è{€9ÝÇ]ƒ‘&áiôï°MžþÖõaAó#À—¥Y9Ó‚гNVÒ*‡X_½VÒ¤€¸Â@ÃD®ã_Œõ_”e¤€Bxcõ.²¬(bDnpy`ûv°v)%Hz`7|ì†îxæÅ•ZÉJMk’?º‘•Á/¨ËÒ^^ƒÜT߼ޤunÖKU uϘ٠º]ñ`~Ékq0^WÙ —ÕË9dp­NàvÉanJX™Ñ5 °™y‚:vj²˜îͰ@+]X€¶Zò×LÜëð¬Õ"»uxÙ{âžU¯’^$™f7Sºäˆü!jy)€‚¼å}9qË„­ÉÕÞz6¸dUf—J Št&ˆ¢´‘ËÎ6› vîj SGà±똶Z<1»¶íu˜$T€m¸ù&:½CÙ-Yô­^°ü0¹{ uqù)àhîØ¬;g}oà(vm2pƒßÝdÙ&)S%\åë,Í$J6fä9èów×î!-CšaÎﰳşev‹>ÝŠ%ø|ïÐ' Ë¸à¼È8+Ã@šŽ£€7Æá6]ºWPU–T™?U "ˆŽaè1Ü*]-€9ÚÀhÛ.!—Ì!7êA<þtÖë–|éùÞ––UÓ÷ܧ =ßs!HÁO™¥tÍ‚ÓTÞ¹›ü红ù×%AhgþÔSo–ä~!MïvÜ-l=Ïvà'¬¶øllÂnQùÏXsÎ)ËÁ+ñ6Îñœ?±™Û"K™Øh0cÃÛe 9 88 ­„Ïs{eù?êDn‰¿ä‰ŸãgÎhëaÜ]ÿ{^-š¶íÐÞšÞ®KÄW³p¸ÂM î‚J\:‰^à!*Ãç7YÿUÅt L-îÊæs€Ÿlñr“þ«¤æ‹¸þeœbйöö/(Î þ,ÞÝ0Ó.²Â1‹öçÞž’äk© ð ²`fï( NªL^rmîZbÂU°Ùb¯ª=ääkßnÊ•¥J—æ0‹ªry!uJ\NÅã_ª„[›wã¿@:Û ¿®ÂF¿tsÓw»‹¡§±ooîЙ×#Ì,‡àîYž_BþÃ<5¿ú¨º¬«¥¶®–ÖŠ‚z /`‰Ö-`3†óñ BŒíƒþR)…–Tœˆb'&,±».„vù©V£3çìŽ\/%uíð,UIzÅÛ;ÔëÚOzÁ´m§Mž[Γ‘¢Õ8„,àæÓÖµÉ|Põ¨,3î= ó ã];žŸz-~<ó½JUÞ!ýG~aSP¼û¦éÁ ãúKè¾»[Q“k­¥%¥l (›ãÉ"˜óÙ¯LÊÙ-µ…m¸—F{ï%šç ÝÝRRXWo¡¹ n·)“Ug¸gtBtæÆßcú¡è¾¿§û¸ñùL8½ î»h þ›P`KG»¾AurJo ÕE„ÎÜwÙVA‚fiZ#Å»¿ÂV³Æß¢Xi–æÇ§^aKq¶ IÁn§x4b+äv]°SlaØÌ&p$‡‚mï)ÜÆÚìš“ïCÕ?ž5æo×g¶IÍï=>~wªßÙâ yCÂã¶S,ª¼n¶Hà]ÊÐߣïdñl{q‡šÖв^Ýé×d„ií©Æà§4-`Œœ÷Ï”½£nø°†ï,ºãiœðkä |VèZÈ\½™M÷s¼fÛ¼ƒŸðñ`Ž W÷X(2ep¨¤>'¥ ×åTU_Öþh¶l1?s¯ò‘øT.¿´ln¾ñ¼Å^®ó´˜“eÜfõœ™¹À±XÕv{ŸSíõd¿Úуîgmîóc˜f íñnÎ}Ç3jÚ 2´›ØnfuŒ:píç¡ÕSߨOôîaÖÝýêˆáùÄTÙµ4úxptìÓWrþˆ¯Ißzˆ¾øêšR–\¢E‡cOs]È•IU”Þñ~òˆ¿ÿ±ÓŠY¸HsïÖr«”¶æ$%@D¹ÀÖTLW/á‘&0;ؽMì~!¢/Ø®SWå©ÝCÜ~[¤©Ú5± —w>…6ýƒ·¯ÎN(LíŽtŽU˜õQÒvÍ+ ¾wØõçvÁ |©žwÏ®þa÷]†ðyœL8¨ÕGfž5`s°&®BG¢WqØ IIÿ`ôŒI‡Ü[±~ à\*&ÿ¤ eRˆú3ðS÷P™dJZ\D_88‚¬öåþ¨V7 A*“Zù$ñ¯ºiÑË‚ŠÅi'`ªöˆðUî¿þ²}ø;üüÓqendstream endobj 1233 0 obj 3303 endobj 1240 0 obj <> stream xœ¥ËnÜFò®¯ | ';¢Ù²ÉÅ"@,° rÙì{°r f8ãR&9–µÿüCò¥[.69#i,ÄݬêêêzW?Fi¢¢ÿø¿·Ç«·?åÎEwÃUÝ]}¼RŽü_Ûcônƒ(E)möW|NENG./¢Íñê}üîium\‘hçâ]½_•IY”®Œ«Óa\{Pîâ®ß5mÕOÈ6ë•Ê’4µ.þ<úÏE7C ÷Ð7íXï„JŸ†¦½x÷µÌâßúa ÷ Íêp×ðPo›ßêÝ:º])`µÔe|‘S»«ûCõ´Ê5•—ñü +eáqYšV/"Wí.l~»;õðŒŸ7?\)m~¼Ú|ý>¾­xªÍÓ$&ΤAŸ ƒ–ÙL s" “0„?ŸAáùþ‹…×?Éš"korÊzMk«*N£Íîj’ QÝü²°‰¬ ¥Ç\38rI¡òT3ø=Ê0YY2ô«@š¹˜ÑV‰Si&‡×箿dY'©µÂÈþö9fJJO.¾¯« P®-È^Ás¯Q=xÕ®éëíØ¬´EYh|XG}p–ÏÁ6TdmV¬Ðq‘þ"¯g¥-è9ªà¿–gŸ¢n6¢þ×Gø¸ ?Èc‘Ç.qÚù§¼ÎªLâeGOÕ´ßGÇÓ0F·utê]t{Ui-gÒÿå‚dš=):‚wݬä ’tèqѵ.’Ô™‚ÅY$*QºŒ6÷M{ÛW[ò½¢Ìãõx¡u&y‘ñ8ƒ!Ádà j©cæ’_{¬ÜÄ÷Íö^¶:¾¯& …¸(5TGÙÿOíX}¨ŽáØ…•¥YbL)&‰ù,ùò1¦Lr-&‡AáÌ?@™S"U$wa´:抙È+·hr&›J@ Ù´qè§Wçs®!âÖc 1va}Ëy­Ë4)R;s޾"©— ²G¼FPãô.ã_:bÔ”¦yļP:p•N¾æèÄŒ†pìˆA„(cÅ&bž—¾‹l>Pªqù.ׂÀ[º?'TÏTÛ¡ìîäCÁ ‰øÊžy9jö§ÃÙ­ÏË”1ˆ˜Š¸kOó]h>/ƒ§œb„ƒq¶¼âÀVµ)^Q\QÂ2îNãÐìðîäVï#E‡iæ6Þ{ˆ;¢4š*°£u I!4$Pžv©Xž`!EëvLäÖR<½ÀôuÇìMØCw¬ÇæXá cá’föža Ö4È•9¦‡‘a.3qô"’Ѷƒxд`;cóp¨£‡ª‡hßõ˜1~DM;ŒýéHñþ?Ä) þxÅQЀÉÁ;V_]Ƽ¬<‹yYé»x-æy$õÖÃá©å”Ë"%K@Ö÷u }|¶ªÁ·%/Z/‘U@‚–ÔUONJÈ&þ~‚‚NêQ˜³©<Tj НÆS?û´§0á7Õá0‘ºå+Ž@=S(¨öaÍrÀÎI˜†µ=—C¾»¯Ú»@ü»jj1^Nëcµ“„¿Ý©çBÐùÍ`•›m I¯õëý´"M»ÈâOÍz öB¬\2¢3SÊ %öP÷Çfä²Ò ¬d*¼V8¹J¶K›#p†ÉxÏF©T¼¯{2‚YÑ+ jEë oyÿ«žH½Pƒš$SÅß#ÁŸ/ :”*—0þª£ø›H¦Â®ÿ>¦x^6¾Ÿ¡è†ýŒÑü:².O,Ôe>Ȇ§FÍÙ·ö¢D¢ˆ`õ,"(ŠÐ|YTÐeb!ë½ɈâÆ)6PðÁw9øã(t¥©"42®~ w’ûЙœ|ØcAÚÒä<:~ ÈâR&&´ø“\20>𺭲×3F0Çïé E–¶ Ö Kç†cr—d…õ† ]¤{Þºä‰+œëiÚpØãµñ‚'„ ikâäSӆȇÐ}óÝv‡ÝüçCG /ÏÌQ^ædF¦žÈ籯þ˜Ê}w8tœ+ Ëx¤Á:×%M¤hÍfÆËBÌÌ£qŒÆ¥‘&…6q…™ì@q¿*zT‡lš[ȳ{åN•Øhä$T8ÿ¾¯Û9ÓN/£&fƒEöWOàêp¯Qd3kÁƒ€7ÉH©¤¸&kË‹$ÓEŒjñ»lr܉z<—qÂâPI‡ô<:úƒ>"âî¼DcëÂß@çfû‹tmnÊL]àÄÇÏÉâ*¡z€‚¸)m¢3’5«vÔ Xèþ˲dC¨²‚š³‘sñJçÉBŽfñw²,8YñÉ2þ6Ü÷køŠÄ¥z Ÿ«ó¢F¨só&„Àê{æÕ,ØËgì­S䲄ŽÅu7ÌJþi¨nmÂAºò›Ò<[ˆçP¥™$*:Oœe ¥q©¾ ¦HüuE¨£ò½r3õFÈ•)>î ã›·s4'¹= =¤ÿÄÃt  鸇cJì•ñܬü B¥\âÊ|*º¡›Ž†~|»½OÙ¢£PñÅæéybÀ™Z—Cà!qµmÍøäAÐÞr½•’_£ÆÚ×\)µÖ¾ Â_àÅõeÍ¥®UÇà "úíaºÕL£>RŒZ³ƒR“!ҥéñÞǬyIb 8 5b›U†F)'7×ï0Š]ÌøMb”š>¼Úù´Ê[H1ßáþîk¨zQXÁã}æ„ý¹:>È„rë­Ö6ëQ”,àšy¦P)Ä$}y 3ØÛØÅp©«2Þv-ÚzáÊÌ9q³E_t1c‹âp¬ëp0¦øSZø€¢tÕ´¼¸Lé(”³åÞäaëBmü>Þ6ýö@£È̾(§MF…-„ܦÞÖaë´s~*O£¾ÌÂÆÇ¦mŽ.üèËüÊon«~•¡ÆÁ^’@KD&]HÖ&HÜ̉Πùy™ÜÁÒô»¹4'&æOi^`õö|Båƒï:jÆ*ü5F~œ‹*+R}Dï^ó~°óPÅ¢éÀßk©@€X¢sdÞêèÍÍÍ×_+ënnÞDoÞ@Ó èlÒpè¾Ç¦K´o(€§J¤´4b’˜@í¾÷V†H¡¾–O…o )ÃÅÇjÄ!Ê©-ä=Çc3Þ2~–%[OÆ_±$ÓŒ÷r‹Y0ëõ„/›‰Þ¹¨k%sr鼢߸²ii¦· ,çXqíçŒè¦Ÿ˜xÏÎgÔ³¹ò^bÿDùd“T—î ’ðZîÅrU¦73xàP?œîîϳIi*;V?¼ ‚5¥YAóªáT)Ö„à™óTе+É»$àz¡ï$½úOyƒ‰ËFQ ã£>VÈFìƒèL#Æ7¤Ãz Êˆ1,)Q¨.(U€×7Çáfè‘}1µ*œãXhRéO,hBD¿ sô3ó#·þ1~RF»­úöÂ&Tq6@„ÞÈ™WJõHJû"m¸UòßýüH•> stream xœµÛnäHõ=_QZ@[ ‰q¹ì²+±Ë ¸´´œîêÄL·µÝÉôñÌÓþÃÌ—r.u±»3›A¢q]ΩSç~Nõ÷"M”HñŸûs¸úå_MYŠûñ*÷Wß_)Zî¿ÍA|µ¦-•PJ¬wW §D™‰ÒÔb}¸úNV‰J”.ÄzU¥Iš–JM7>ö£]ý}ý¯ žÁÉìüãÕúçßÉõC;®ntZ&•VrÛv3µ«,OêZkù´RðU•´n“R²y|Ü·ÖC¥ZöÝþqLýìûÁÃiyè²Úƒí&Z¶]ØýüÐnâBØSàñ¶ÆÄÍdF¾ñ«™’£[d”¼;ùm‘OŸZ2é$˜ @–‚q{è.tZ);Ë;*y¿*X#„/^펇;ëÁ‹LŽvÓîNmwï)óüqƒ%@.û]<{´‡ö†˜‡l›ú•%«* £ YUå¹PxK)nK]Òüö-²L>w×n+(Ã`‘RÏSÎoJiH^…L"Â7;MêÁÓÅˤÙŽñ»Ù}‡~@ÉyÌ»¡?ÄqË“¹éT Ï“}ÛÙk[Äô¼ªqad/žð~ÍþhGÑ V4Û­ÝŠ©¿·°sXx±¼–‰ø^¹ï„IÀIÜ·¤Hª\ØÕ(= ØÚ©i÷€î®?NbqÉÄ{†àX2PýàØ£˜<ʶÙl^ñ*_¡ ª%·v‡7¬ê²–ÍqOÆ‚+ZþùOߺïoø9ҜƸãqh»Éó LÍ}gð½Ù´[°DÀâÖÑ+…“š¸s ·ð«Fvýd#ÞvçWêWÏ`R šj Ô¥vd·†`Ó@ÊÒ•räªL”©AÅÛû¶kö×nª6¸>Xô<¡åðDöHse.7ÍåØ §8‰DÉÐê<Ë«T¹——) âMÅz{5ã Êvý…hKP„:W¼õ;2 O§÷cì˜èç/ZΘÕl 7ZWÀgqƒœAܺ<òÆ~D}W5¹~þTróÐt÷äLp¢D#ký¨ÊÁÃ>4+…‡J>µýqð µNx'Æ¥& óÌÏ<ë©YõÈÔ®‹¶Ûº}^»=6{6<Š[é=˼¢çY’BzÅŠþ‹såVi¢³ªv˨KÊÛUâ¶×âÊ’<5âÆ9ÉmHºÊ—\ä[~Á¼O¯øÊoY{ŒIRÐa²|7Ë%õ¦ï’¢í2`}»qÛTª8¨âØÄÛÜ)Uy&ç48PÎí}×LÇ!@g²ÙMÊyG¶ …×þ|ÃþšO©äq´£ÇGÒrùû¨>Ûx¬ uÔbHâÒ× â6̾k{{À%,Ý)£µN²Â¸<…ŧ¸AË¥K[ðÛäò¯;u!jr|uRåUçýû¡V¨tþpê 'Ò¤F:ä—O«/bõ0&ÍÄ í@… äîtôB]$ûëÙñÂ;äª:?ÞüÃ)šHÃÐQS5?û'P“Ãàf±<§9—DV¬Yó˜Š4¾+ŽŸ´+ÃL„1ù5¤2”云ŸÅ\œäÓ±¬À<§›âò…˜@î31¥ÕÎx7rBÄAE‘#ŽAUÕ­®‘^.xhΚ©§‘)|†G#ëš?îü<^RL»CH‘Ø*ºt«e×NÃ%/e9ºû1Np¢O¾Ö¯ÅÄ=ëé?7¹@FŽ¥ÝY᪳rQ C 9h'îN"úû_yEÕÚ;QPòL%:7ê,xkOçjW‰×iñk·Xë`35ä]!×pL†˜eW},¸§“ºp¨"J õ7‚±FúXÑ[\Dú¿¦ †£ Ò³SöMˆôFU:©`3«(!j¤8X`™øÐîb’ÞÝ‹FÌOój&‚9ˆSk÷ÛhvÇ¢3°µ´üQš_åãµV]òC2ÕÿÈ9Šm¶“saAÑd bÏD¥Ä7?%Ò¾þɹ oÎT148´)<á‹£Š[b»ÑûCáà¼c@ÓPvÔà ¨úÒiCÒ›d@üÿËiëÄ€h *•ËÇ™‘ަÊÇ4þ¾ˆiE‘c.èûܘþ,ž%ž¥ümäñ'7'ë½<Á%Á®-”_&”’;H$ª’ñpHÇé#ä)âˆÞþüt7(”Ä|Ÿ¾ L>±Ö¢øLnÙ¸’sÓ‰æ9wõó¾ò84Ö‰1x\£&öç‹#HW9í QÜš#ØHèjWÞzˆvŒ+P&qaÈ‹µ@Ä"¤ÍRU$ lÀØià¤g+]_ôs;gvîlµ;{g¹Q à3Üv™,‹pˆ¦È89ÂoßJ¦d0Ÿªqp9¯5AT.×fdo^ÍðjlU6ûvru:hq÷a%ËÈÔ…1¸ëUí¡¦áŽ¸œÙx° ³þOåNº¾Zvµ1šä‡~k‡N°šF^ÄáZ@ÅLR¦~#Ú¥²[VûÝg·«yÍÛî÷œ¹~V¡›çèj´`ú,±7(ü ÷\ù%µm7®•S ÜÊpƒ€…šx×aÄ}'Ú”Ëûýéñáè…Ÿ  •® Š ž­Ý$qqˆ7éDìˆËÀÁœ"蟑tÁÕÙ›øéÞgrt“Ydri\ÒW!´ÏšxìÚ÷Pîê)6ã ,wIÔ7dié4ˆGî¾Ó’ÛœøYWáýÓoó¯p¿ž\Ÿ†þU™™S!?ZtëÒ_óûŸVÊþ‘^zö~¦Fa§ÍC<  é¡­Ä g3õ3âHkäƒm†*ÕýÞbÓÛäüHê¨tejw£éY¯?´à?·×nB+îãSYí/æž×¸9Íx*õó!ñ{/Õ¹fãJü’okù×:ª,˜ŒÂ½±{w~âGßÍ»ˆm Ø0U o.™{¬s2rëóÓªåÖ8ïKî€f ûp×ï·ìû?r¥•çZ¾ðLQ|÷Qíò™B'eU†¨ꛑÀ<Æ7®Vͱl:°e?v?<ÀïBy±yHge~} •bž›¥?^¾/GGÇs! ¯=²œƒ‚hЂ’~\„ ªé"çj¢–ùyc꤬u¢@I y\ b쌼û{-påéEà—yò™TyµÛéáõè…¿2€üåÇ£nªÃïSh”¹Ø@ðÚæ†.<v"H•Ãç{Ü"ÿ†Å°×˜a,äC?´ï{ÿdÍswÙ½ }á@EòH]lÀ–+LJ¸Í?—3>1â„ÏjcP:ÿ € ›B`i¢ûN4U)4 R¬¾¼ÊTäuhîÈ:¿ðÿÊê,ØÅïm³E=Q¬´;B~ "y¢§ÁêvE‡ün}õø÷ÓG„Xendstream endobj 1247 0 obj 3389 endobj 1254 0 obj <> stream xœ…Ùrã¸ñÝ_Á·…›+ð“§l*U;I6•CÉ>ìd«`²˜P¤†¤Æã|ÄþCò¥éMP²­-WÍ@w£Ñw·>EÛXG[üóÿ×Ç»¯ÿZ”eô4Ým£§»OwšŽ#ÿ_}Œ¾Ùˆ‰´Žvû;ÆÓQ™DeQE»ãÝÊÄ:Ö™ŽþÞ7nììFWqeªB½4î46ÿÜýI˜Ü“HÒh÷Ç»Ý/~Pö›‡4×±IJ5?oô6Þê,QƒßÕZ £ÿÞjuFçWi®êƒm=» QÓ<¶ýÓt/D•íº@ªqSûÔÛÙ5ˆö™¹Ù9²Q¨û€k×7Ûy¶õa!³Þ…ã¤RóÁ…ÅdËJõÃìî/5\µMAR—W¡Ät"R²çy8Ú¹­á9˜äˆT¨<–“äY\U¥zN]7l80I¢ž=ñìÉb€Õ¸És b©v¡¢3Õ´ÓlûZP*¤;?;× |zIðÑN®k{7­îØ ²¹„õÚ’Ë UÛÙGXšÜL"Aa<’*2ˆùÐN~òlÚÑÕsK®ÒT}Þh¼(7ÊÅÇ?Lb¿![-+r70¶\^êJ-÷h¥u€:  ‚I¨§ê7tA×õ´¡W€f‘¹|Í— f õ6 …T«§óÑõ+V¼Xîq…ó„ä§4kš 0›¥ð³–•¹”Ý<•jÎ'bŸN®n-zS–Ä <$G—òH‘ÓáÓt®²ªØÅ)c“¥û¢îY2Lí‚&R€Wh}Y¡‚e¡ìã b~φO0dLÙ•eÀ·+qü™]hkܤÄE¥îÃóX®üÀ\-ßð´Ó8<ÚGôXÙqvj)^áºBõˆx!ž´þNàäRÕ6®ÀVÏ Ž–ZüØŸ š]Œe>Wlè¦0pWÛµsëÈnéÔx¯ E±Ø>.!0Ÿ ΨiM¦Á ›mÃÜÜöðV¾Ë› ÀSBü2 syÚsÈÆÌ¡/ˆZ¸÷äàŸ~Ž7_]䨤’ÐÉ™)y™8×€·y7ÍJ¸©Ëzº‘¸vìMeç`#7"*´Ý4C[дW!-Ö®A; œøgj &¤‡Ê”D[hçÀV _@XhVPkÒKÚ[H^;›Ð{> “ üuvš™é¥ëÀÚ¯s—g¼Ì™s –ç%P¯Þ± <7” 8Û34„²FA:ÛúLGG L«rdT»W´³|'«GÙI.ŸO'ÐÉ„iT®‚ Ê/u&Š7y\d Ÿ]õN?,BC¢ içóÚhôl;YpÛ>ðÊOÂ[!4ŒÆÄ~HÁè±({@9"Òqð²–Õ‘,ß_÷®í§¯mjÿ³yÐ[ånø7`YY‘³_gÉ{„Ø».¹``p²sBWZ”G~Bqã 9…PóèȘ ƒä ÆRcîáýbe²|E®ØV¡.ª>rʹ œéí¥pá&À†B]`ÉÏ/-úÂÙ“ ë\.0E6jÀ)œC¡³w#¨*±»h¢GÕèI}Q4ZÂgäe©!¿|Y[¦©ØQ= ~š»åýD±ŠóÍî_j|°Pc÷äùR}n›3eqlѯÝqòKˆHè;/WBfàò:N3RÅõ -@QXŸÈ÷¢&i(8 –ˆ² H.2 ß5­h¾†½.™ E¸k9¥yŠnÌþ¦¾ž®…£‹{ñÇwõ Äv Å1eƒ +dáaço}HË-ÐJ‚Ÿ’BB¾¼R0f-ïȯ“á¢þ ‰ ùE’ó¢Wéîçœ>{Ãéç—îç>©²8-²·žŽ@âþî{¿0ª^8¡á:«Ö©„(I!€¨úv‘Bà’C¦pßÙg;¾qX}¾“>è*bgëCàÌ·^|H¹ø´8±ÊlE£ãp›rWäù¿ê˸Øã¸L…&™³šGÛ@}5ô÷~*Îÿö–þÏL~tŸÎ ?.¹eƒîr^ó¿€öQýa1Šó8 h¢þ6C ¼uVé¢NSŠmÞRÆþ4Ìùú%#fÈW# šªÝ¦Ìà"ÏÀdëæC`ê·°s_^':¢Vüå7÷%ò™,I¡r¯‚Ï`WK 7T|øÊÒ`ÑrÛk9½Ó6Ôk­<å.‡nð;ÃæJý±ßØwçéð:·Ÿå^PM;_]ó¢íA5™PAÖ‡ó]ˆBKÅ@R­*…–€MNxŠ"6Y’ˆÜnµf,A­ã*ÓA‚d‡²†¹ŽnáŸ1øo&Vl´‘zW~ ’'p‰€.ÉØ­åø†[ |+Ôò\ú¥‚%¹ø %%¿y´}Oc 4õ’"¯¿ëü•–Ú@i™n}…]š¬þ||tã¯àJ2£¡f%uøe®¶þ3ɘ~§™w :Hß ‚ÃR¡ErA–:€MnžÂjeâ´™aeâÌB*–+Hh¹qàûû6ý¼‚Réä ip–¤-Íò'ê… yE¢)(æX¡” ÐÞK¡ ‡®X`ÅwéŠ Å£ ZäÞù›SEã7ªŒÇ8BÛþÛ·¶¼>Or‹ö­Šÿö^‰×çêÇõ0 ÐJ\<Ë»dQbî]ò—¯ê‚4ÎM¾¸a§qJ1LH>ZN)^\“/ t¨ùº˜[;n1ÐßÕÃS…Aã÷HÔþ»(Å!p•W¬žX°s¨ÞÂ÷ÕÈå^èCö€:œÔ¤)ô%°ñ¢ƒEÇX7¹Ñ' O‚ŠBOÙ†íW—¬G±p×H•Fs¤ÙŽs4졦áÌÑâ%Z¬+£Š0cDÍÅ4ìG¶m^¢ÊsÛöd¿÷ª _åPýÔ·Îi¿ºÝÅI¬«›óÃ{e#À(÷`…@ Ya’Ð…‡¦I(”—N'hõ¦°1ô4Ö%6 §3ù&ƒ'0šÀ⺠0hX‚¼fÕP/,ÜNÐnÒø‡@3ˆ«rXQ¨¡ê¼î{¸§ÃyLžgaü„¹óÈu-qbg+‡µØðÞ&œ·~”'(4!šÒ´Žé'ªާÎÍ.¾ÿü8 yzâ¬ëŠãâÚ•„€ñá†1d8°ÌÝó‚Ì4tmFÓ`k Ä¤±Œ_Íހߋúôqû `¹d üÎYHŒ’©ÞÕÀ“_ä.Ÿ¼é8å{ÿÆ:mY.‰øÆUÌ“8ÝV˰bZñÞ´Ey {„G®¯ß°f8?v+Ò(E ¬I© ÀJ"=¿ïv>EôM†C°dŒGÔÿ Ôm]ÓÜÏRÜ~Ð4€8"Cè–•ñ2ŸK$[ìÇl7…MvZA çßè([÷øaÂô:¿_k'Ó¯_øúÚ/¸µ‘û‹·ò$¡¸Ln¤½²È´h¼Š‹¸ø¸ ×¶6ßqèºå …oÍù­>‘y¼ÄktVe•Æ™ÉB޼1Dù5„~ù:‹fkXgñô¤ð‡IþÕå>¢q†C¤£Ÿ® >þðÆ83Èx´]´Ò×ÍñÊgÈ€l..ªnÎV0ÜD2Óê‹Å õG^óÑ•õz¾h~:7b–ë—÷ÒH<ßË о*‚ †þ›UKߤ*™ú,ÍŸN¡/Hßý–¨7iAEŠü3pöQP1^ð»ÝÝ_àïÿØ ¶endstream endobj 1255 0 obj 2780 endobj 1260 0 obj <> stream xœZÍ’Û¸¾û)x3•hþÜœ¼U98µ?Iv¶ö`ש!)'ï°ûy‰¼^ú¥™”Ëå4Ðh4F÷× =q”1þ“¿ÛÓ›¿ü«¬ªàazoß$4ÈŸí)øöžXL”Áýþ ÏK‚47Q› *óàþôæCXGÁOs³Jò¨®Ë,üÜ»è_ïÿŽóM$ οKª’&Þ¥Up¿ƒ‰÷‡nZÝ¥uåEh›y·V þ1N³Pe{Q…óÓ*‰£8ƒãØšóÜŽ*®ѽ]åéÐmnäÉ®S…»vÚŽÝF{àKœE¸ÆS3;n§‡ñø@$}»7˶§âÔõÇÖ ˜pûê¨6yø™öÑ@g»vXmÜÑ$ î¿{sÿ§ávè§nšñ;Ë"JªŒu¶©i5lÖ ½}¼´ý¶ÕÁ|ÁØske¤aÓïtfŽ-È_+ ûˆûz†ÿ­2U [7T\°£†ÝÜž<áÓe{°ÒšÉ67N1exìúÖ[ô“=ãÖnͳŽÖ¾¾u8w§–v ÷gêúf¾À7¬ƒí±ÝßDá—9˜æŽzÚy÷‡6 MƒùÐÌA3¶ìJ@; c@Û@ÝÍì‡ãqX¥hìI>Mßð±=–ÿ®îª<Žê¸ß­îò´€&B»‚VœàíÍáO§¡:Ít»45ÚZœnË™àá¯2´ã[Lßµý||ÖÊ­Y§Œí>ðð¨¨wÌdÆJ€jç ÷Vê]†“NÊñ†ÍvÆsÖ®©Uï*„R[½C{Å»¾X=­ª¨„«½y–vj¡o•€Û5J»ÈÂÓ0êH Ûm×u8uÊL‘ .Ãw½,fcÂ/Íé|´‹”ìqHl%WXf_&% ¹+Ò^pyû>ÎÝÖêÒØžiR8nJ×ï€qn¯nrÀ„ížlqRkD‹S¯´ ºÌ,mN$NÑѮг,| ¦v;wà"’GÛoxû=«¼_•äjJÝ™ ¯ÄõÏŠ}8Ûáé*ŠÁøÞÒ(\P¸¸ìÛM’‰oOpí5FX-ܯî[¸þ,*á$j^Ëp­³Ë¨¬ÊºàáèºTÐã<ÜD’¬Œ²$®•íøñ:«ÞIF†(jƒ¡ ;´=fÍÉýðøcvúÁܤíq˜˜{Rº(*v7\6Çöîñ“o q-û_À†çö «º=R9³Ž$Â}yíÔ~d¿š§|‹¼v×ÓòÔSåÎw øŽæÓ dÖUçÌÝ¥½ã@Ži:T ¡ËFÛƒIjôۺϥ>{ îºq•ñ^â7|n§›ƒCCˆáΉת¼ýµê÷N¯éñB'§ÜØWþš4NàŒñ¦ó¼0DëX3ëzîÒ"L^94‰^Ü[2ú*%w°ëöÖ­ïAh?»1Žþ“vT؉ÈÊW·ŒCƒÂ²7ÕcÂO!6€ð)ꪞu¥Dl˜X2‹QvÒUˆa*ïñ|h6­x#åÆ]kµÍÝ„ ¡YmYq6Vo—&øAB"@•’!#9ü"$±ÉÌ$óðÔ`»‘ݲ|ÿ ‹¨ÒÚ~y¡Iû+&m0“fF/?k‡±Q!Î9´põenïæÉf Q„§Ë$!;àHjL:ž\'™Àt£«!¨µ+׌D@3‘êÁ]íÜJ³§úÂÆ¼v’-ø2Gg«æƒ ùù³tË.d1\?ñǶ˜ä¨§9´½P°gvxLf¤2µ‹ZS…¬N˜9Á+ž”¾žo(í­NeJ¡‰àW>9ÅJö/¶”¬` GndGvÙ·[€‹¨ÿQEAÞ¥P'#\·‹q¸Ÿ\<ÃýåèhD5Ô.2†C:¤Eák\“Ã?Í1òÍÌš…“-)Û(¢ñè¨ †HßI<µ‡Ô­”yðX!¿Øå¡£ñä!¥Pn#H^[¤* )çSK U:•yÝ“›}¤²—_¿[VR!PÛð\C´Ö‰”¡"µcâk ™È‘«í_„Í_Êòy`Ìùùh—ƒPû‚?Lš¼Ž[²¨HªÔw‡"ù€‚R|Q¥€d~OF çÔ\Ž³Óžq³8 %Ýg®ºê—mžoB Í(±¡b#ûI¯‘`Vã¦ç?J#„XÚŒ ¡Ìþé0•„ØL×>3£c¾Ñ|nž©&|Un $$™ežÚ]\(’…œÔàÂ9A/>M ÃÝŽ‹˜4ÈU™ìÃ3=:âÜú½ gÑìØ§¯ï£í¡(;gA2µ÷ógÍÚ¨ØT+ðæUæ6™.ùÕKü"µõ‹øþÃvÏ#‰xc|8ª¹þû1îÙ<ÛYÞKlÏ!ßÊë¾èßøaj¡’WöçñDbœ j¬ü]÷@IØ­{o{JŒMÿ`É*Œ/¢+¤ù×XÁ:ð· $oB™BÞGx¬|+™2Êj O6ã*1XÀWÚ|R|©jY@úñUÐI£+ªÄÆàBQeæÁéKg·ö¦qíI>O‚!¶ë\‚¤dš´¨P» Àwnð/ÇfÔ4>þxXÇ%ÈåU†¼t¾÷ Î Z5§á¢@Ê$™…g&ÎÂÃ0vÿú­†Ù-|&2ÓcÒÉ M ˆ¬ŸÀäÚŽ‚Üó³I7 þYÐŒy_Ž—$nA•ìÞÊ„>¼Êû’‘du xòÊIÒ'Ü:Iâ´›¹0e’ENkŠ˜ðx¢@NÕBÀºk³õ,E&Œuûhcµ@»ÕIЄš€ëäÆendstream endobj 1261 0 obj 4286 endobj 1270 0 obj <> stream xœËnÜÈñ®¯èìÅ­DC›Í—,°»Ù  ñ*؃ìÅ¡4Œ8ä˜äX ß°ÿ|iêÑÕÍ™‘½ ÄbWUWW×›óQ­£X­ñÏý¯wW¯ßey®§«µz¼úxÓ²rÿêúþ–P 'êöáŠéb••g¹ºÝ]Ýé22ê]³oª¹Ù¨ûj¼ŽmT…ÕÓõ‡Û¿"y‘ª8&ò"Š× <þíêö÷wú»ë•)Ê(³…F:Œž·Õì€$Öí$ FnYµºíÝs dðËáýþ0ö}ã‰L¡‡¾;.¶nÂJ=lNë& à­ß!ÉuµYÆ 0«á!ÈZ…#ô‡Ý}#糺éën˜Â)R<ª*6¢™éã¡qbR8šÕ÷cU?]—QYšu¬›yrK°g]¦Fà¸5ï°ÜÎÍn=îÙĬ0à8cû¸¤ƒ¸ÇVÞÚ˜´ý"5^_‚âe¥¾‘×%à×ÝaÓö/’•|ë¼’é®í›íRÒû·ÔêŠÍ%±i”fA×'†O‚Ï)ìÝîš) ðí‹ kõê·(²BWuÛµó10õh`q»a’íàbêa·csb6‰>ÐÍòºÑƒÈꛚ¸üÆs+â¡uO‹ƒ€n¦›Àöþ:¦ë/õaoÛA]õÂ+G‰~P õÜÎ[q­c›é#yjŠžjr9OÍ“D<Õ¨x«YðòÍ•¾³éõîwê?êî©9ª>¨»xÍo®oÿ}âä+O‹ž¾ñK Hœ»ûGN?5õÐod1Ó Ç0¢ÏÕnß‘9àRš-é ýt¯ñF( }Ô\Oíc_͇Ñä|ô¬÷cÛSáM 6j'Љt¿ŒtŽ+Ûª”®<]®Á{£€ôöa±ç‚x[mð0tÝpmRýì¬x©x'QZeIí äsý&ëÈäEì0`X_Y›DEž)T>éü™¢E®‡C[ÛØ€#¥ ›‘ÕŸXqi*äe‹~Öô‚ó{Mñ CšNU× DlOfÉn#Á33GÙn/‚žÁý6Uÿˆ®Êk1ù?'àWýÃaj‡ßf~^ˆW,’ïE; `uÕ‡16[ˆÕS"›ÌD m½«Æ'”“àØèïêºÝ4ýìq " »vb+åO«.Ý·X< 3º5Ápê‡qبžš±­ý.æR¶˜d(ÕÓ¡Þú]«é‹YGI)ó5ß\˜ÌÊáxëàX‘¦Q’–ºkØ:Ê]†ÀçÖ°kd¥\šÌxr@šG¼H÷œøl¼NûÐÔ3\^q¶À„…sJä Gü xÿ¦êƒS½`P¤$ÊdqõL‘Kìt¸l | çßôèÜ›ž!ö̸ªRòÜÎÄÉëW¨¸Rt›¤Qž²jï´/r ×e\âÀ®\ò¸ptYòqTæ±\z¯ùnÀ,BÅ‚ð‡ó«Ã‹ Ë ê…(Nß_GŽMl}ÔMld3{z¾ÎÜIa–§º‡ŒüæBR[F65ÉùiÁ£Öù««©LÄÛ°`¤[hh ®A0-%#~†TÃé‘!Y) íÝÜ®¦c×U÷]ÞúM3vÕQ¸ƒï5”ÈÖ`SŸgÌ’²í}CåPoº’Óy}ð‰‰ j¨qÏ•wÈBâÒK®Iø9ÁÚ“ŸsÞTä;¾Ì~$ŸˆÃ“;+å%ÃJ¿ 0†µ—1ñ6´rEB¹Üï‡,lV(KĆï }SFë‚ÊQ¨ï“Pß;¯™ý´°ÇRËW*”Óµ«]CVl{´½É-rvÏ8ú¬€âÐßå9qKíåp8ù-ijëÒÉàÀO•^ !-°9A”Ù .É×p¡pÑÏTÎ b½… ž!…>ÔyoHM/TUìžú½~sîïF;TŽ ÄPÓ\³T¥Æ³[p1À³_±³oýæýõ¯²…™ñ*IHØØÇ¸Ur­²Œbi© wÇç̹;½£óï]ÆàÞWnÎ(„’ìèžsì•ü&®@p Ux}Ö|ðë¡ÃãVv„&K¨Ksᡎ EäKqS²@H\8°Î ,ÛÉ—Õ®ê¯É^ò!NUp^L£ô’®•w‡S?ä jh…Æ.h2ì@z:=hr‘ {k AÛU}Všr¹ê˜þÔ`ºÌëž²ì4f`¥¤L>O®àÚ;† 0)˜Ê†”¯ [òµ×«oòÔèâE|’¦i>µÜŒãh R§+}|î,ò(-ò/çÎ$Jb±ú; ¶ Ö\bòd¦e¬ÿÜR‘ÏÛ§x­ð݉ÀØ> ªä?†NÏPÃ}^r¸Ijæ §0“­É~ã)  0Q|rˆüýçl†f Äyh 3Ì>>ôÃVÚ) ©M (pª #DÕ«j–HAëTÜ«·!f¨¡®ã¤ÚžðvífÓ5TW¡>á8xéÇá‘Å‘Hº“Šl _bE=Ès†íÅÀƇ!wÃ;cÃþ‚„š@žòÀ€À0÷]+4ÐÜÞÚ—v/l(°¥ó@Ù òäÓìQžH+(9N:+aµŽ ¿]˜üœÜ®9*}j§–ª –;[œöFÉþ˜¼`T6Á¡Xú%£Zɺ¯‡Jô2«,ŽÌŠ |–çO9ôâìæŒÔîVo›úI@¹*·æbVB±rM»ö)€²—B Á‚ ”ƒË55ýԈХþyÛxžt•n{Y¶Â”*{ú$"³p•S}ÃY?ÎÉájÐf9 0Tž l È.ˆc]dR6o”ɱ+7<ÅB0áèï–ž·-6„ÌÓee¿yÄ,fô"ת,Á  NÙ¯ Z¡ý•Ï `çGÅÃP‰T³þ†™jRÙ×öƒz¡º#á¸N¹]mìFDŠçŸ´/ñó¢æAÝ7Êé@á4çFÕr8±>­ gx'_‘<Ôm*Hÿ%É×…-‚ä ËÂÒ´¤ñÁ­f¹ûq‘ë!ÜÂ%QÆäðB –c=Ç‹J¤LL¨Dܪ³{â/7‹ÁrßÅj‡ƒÊ8W"¼0´u{…#¹ØÐÂkl’ÐLï²ÊŽÜ"XØÛ‡Ø‚kJ¢*¥Â=U; jßm/ˆ®mIBáij.Å™„‡žË*[¹Àé’éKµsÉÙ•¦|)åŽ ë}J%EqR™M7K3Eý)ð†¥q«Òu׃Y$>Iq“˜õ²És žU?TÍt«Ë¾nñ­Æ®y¶\3®¼ˆÁöh¸Ðqð+ËßexYLZ3Ýצ)q†@SQOZ,ØK6E˜E ©9Á;SÑk¸ËÑ.™é=ûLS ¥ñ­<.„t¿ G¸4ó³Ÿ ç_t54„S¼*ˆ©¦®š¶á†ÎÅœúÕ÷êõk5®êW«/Ý9Üàwµ4ŠuîŠ^০Iž­¯åÍb8N/bš7ºçôôtü\~ê†=5Œ†Ùuú%ƒíÈ-™lÇ3T'ê<ì@ƒVO¶ÀëŽ!›-Tx:ýRâ¹»AÐrf–”8—É©Šú˜ õ ª/—6툽2{¯9±:HI=fúðIh¸Ÿ+ÈŒxmÿØ5+VA¨OÒ C”€’è+~šª¿Tíêþ²Ÿò7Ê<,tÃ~:q95Îò(·ò™áÛóóâgIˆÃnÙUñ'†YDele ðǯÒßI{BAøæ AÐdbÆ ¸$2•ß¼Tj ϾVÈ:&=fJßT‡_Ãzœõ”[W±Ðç/ÙМÊ•¥„‚eP˜‚¼§Ò{Éÿ¶ÄY¤gì>@¬b¥1Áv|íi0úÌÞ†F=4[TÕ½ë…O{t5Œ`]Ò=+_’)wnÌ \þlÀù¥N{î¿a eSߪZmT£.,â$Àp=¹,ÊÁá/ëZɦ}S·¿4‚kèzeqÓîÚþåèX9ñ?sM“Øðµïó솅¸€]{ªV™ÊÅá Q§ñ2•2·ÊnÂóŸnO&ݾ?FgÑü_%Gßý!Í(òˆÑ¹7‰«Æ ÀÒü0PaÿÂ1^C޾à‘~A<2  Pë@“HS’çË,¨QÖ–x'ü†ý~˜ Ì ËOm¿‰Hß3—t¬ÿ#ßK ø¨-ýÇ%]æÎvüW”8+"?¥ùi®>YVsUÉSÊo¯þ ÿœ Åkendstream endobj 1271 0 obj 3232 endobj 1278 0 obj <> stream xœ•ÛŽë¶ñ}¿BoѶ»:u%8-NR(Ú,š‡sú ÛòZ‰m9’œÍý†üCó¥+IÙÞí~0ɇäÜ©Ÿ¢E’F üÉÿjóîeUEãÍ"z¼ùé&%p$«}ôáQê"JÓèasÃóÒ¨2QUÖÑÃþæSÜÖ·÷Yj“:Íã~#íE7~xÛtñ;xX7JÛñcwkŠd‘–eüómš'¶.j êg7“´³<ž¶­v²xœšaò]¿xéÏâe3Üf6±¶´ññ²Ýôƒ3vNù·aœ<ꡟÚ;œaη~kÀm;ì»C3µzD ÿpr¤Ïc½=üå&5ÑÃ_oþð‰É›:M²*'æ¹S§ñ®; Ô-ªøtصãèûݤ횸 vY…ug:eFÏÚyçÇ8ùùªO[¼&g‚5m°f·|“uüË‚û×›[¸‹ºJáÚí¡?=ný*SœAëÇC‡¶ûC³Ü9¸‰Çî×6¡?ÇßµmÔìÆ>‚ˆn¿Q®²LD¹¨[. ˆóÃú&~‡ñðÃLØM™ä þGýqêúC´lw=KkUÇO·%´Y'ŸoiÍûº€ÝÕ{³HŠÔ¦<û=ðW°ë,qèö§½Tñ®=¬»øYöm¶Õꦪ¤°‹£‡Ø&ÄvßôC÷+Ìiv‘ˆV¢ÃéhY¾˜‡t6É«:Õàã*ä‚ýùºe_m+7§Ýt' Ü’®.Ø { €`¹éHF%S³Ãv)wÌt}›é~KrÄC ùëGEÈÙÙ3Õ³™ž 3íaµcÈK–.`t¿a¯GOÖ3WÍ— ¯ÂÜÍÃ3fÑTyR©˜a;¯D°¼»†ÄŒ@™2¤ÀåmJ6ÉÆ'E‚(æJÁ€žºÄ~ï à’)Š3¥âº®=9ÙüÄ#?lƒEÄ‹0 `ÜÏs°µ&²€ß4[övL`hPU_0pȲ"1`ÎÇv’N•R¤GíÚHèYv›'/Ïâí?b÷˜F Q!8ƒj{ý‚5¸þɃŕH%CØš‘!»å!’!Ýô;‰`3žF0é¡t– ˜‘ný¢’´\ÃBG’/â;º|æÀvß6‡QmÎëaíö<¨M³DÓ&ŒâIÜ— ž±ñ×ï¶ÑÇ÷"üÿpNõ>Uìºæ÷ã ¸‡¼£ºf$ÇŽ°ÎV`?×›”N!™úšH* Èânq¾b.â÷w×ÇÅ(È:3B»òKRñê’žwPȧÛt¾ÂÓÞOù0&N¾§œÏü@šÄ®ûkpžUénò I^%)æ“¶K â+0ˆÄÓx…çÈö'ãxiÆ/4eÅø.—8T_êTtîÒä&š&Ö`^ºÅ<ĆÒÎ鉥—Í}Hü¤‰úfgV˜Ä¼rd\‰U8‹?âÜç&M게PŽé@›!Ü<™[‹ù^¼‡@ µßÌ0@ÓYÓ;Ë]6±Œ'VÕRÄB)/!!‚]ÑÎÊ16"ãÑÂYHæeJèqéBˆøà`u~E¹˜±4^w°…ÃÊÑá Ÿç•r•Ê[ã÷#á+„_Ιr_Ã}^TˆÌQ8uꊷÁU’‹ý¤˜lO2È“ªø±=´RÏŠ`ÐZ øÜ`Sz% T]™“š¿  ¯ Áèi¿ÄóÕÕ$: éÐ1ëÔ dº©š.­<3V¹Í»sн`€8´?º¡]'gFý̺Æ_E?~Œ¾z·]$uôï—±Öăø—ƒ]±ÆÉkµ‚ÔÓ*Î ‹\ƒuµm¥ìv>' Jd6 #4›4PÌçpÔ$ÔÄU ˆÍ‰Pñ“rI¹­¤jUâaïȶ à"n*}ìÙó¬¤C³Fie@‚Nj£÷qaµN¨c«ËðMg³äXéq‰ìÜf™ r´|c!*ñÌ~«+UÀhf1þC$‰Nf+óƒÍY5RŠî¢áÒ–AÏÒÀFz¡°%Úm’1l‚di™~²ÅÌä{Q$UùÖZÜÐ*Uv°Sgçü¤>¸ ¦¤’"Èó™ÁÍ2rÜ,pÔ«¤Ýt6Ç)Äõ?wý)X“©¤ŒJG™fØ7þ(•\µG¼‡2£¢t£íLïK:z_Ò¥ûÂ6›`j¦Aù‡ñ o¥‚•C%‘úPŒ—ÎÔ)3ª VÛºG¢˜¢™ úÑ>.ƒV(vÍtPE•§o7¾ìÑrìêk“Úª¯…ŽMµ€#É<Ž[NæyØg)3Rç€&8Î+bË «bk@l3›½]l/X®mzÁT|¸Cií!ÏÒúH¡Æáêuœ)ÔUÜAÁNOcëƒ:ßÚ½ÉÒ¤‚½‰ˆ¾¡@~µ65tëvŒ.Èç à£ß’¥HzâëXc¯äã°òÁÙ >̵Â[ô}‹õÝóE°òQUš×óñ€F/”ä` lê(c`ü¥^SJaÛõU1¢9ÅUëW׉Ék=ŒÝŸe²Ès«Qëpž¯¥ëUnþÅ5% ÌäEPtƤCk´Yi”“~—!- 8irå‚㬜gŠ‹1¨ö8榔ñ¥·ú½ø—ëM¥X0SZz0`¥ÀN˜0Ò@Q]$@<SHðÔ:·y<¶ áÕ ,ºY^!E¹:5»î7–Zrƒ;ÆM»štj-õmF³!«V,•,A–ŠX«çXgâZšŸ¶Ýj{åíNüûsÔ m¤5øäRîÐYðéiÆQå»]5Ñ2ZEk.‡âj`™Î|ŒõÁ§_†”¦)Y WÚiµÕäÉH,ù† fd©<ë}ñîÙ’DÉ*.|Ó=ŠÕ >¢ ü4«­bQ–•h¯@ws‘6B–/ª×4f§¯i É³—0œþIëzœ€ëãwUŸ=~ë›ÑŸ=>‘RdU‰®Zçlì9O)øcßV.§çIYúéÿË·Q) b¬»Y° ¨˜Ñ¬NûÓvPs›¼,eß—=ÖhÚ™0Úõ,úçm‡þ #’”Äb®W¸…®ßk­úá}²…¥w3º ê@ä|@ž¸léëtXSò@] û™êÜTF©ÏË(D™D–›ÙõJ:ƒæ¥`¥­9"\Išëç58>wæŸpçl-€ nê_ÏmR©gùùæ×Âwa1Z½ÂõçX×5F‰IšV*,¼"HUæ¸~L’eŸoõÐryd\°‰^¶~ë”г8cn[sV^‹Â€µo~tV\Ê£ø® '´×^ŧSÀL.{÷|7ߥ̆ӚÚÍ‚Rø~«å"çoW¤)öûmA©Ä£_&ŒtHTäaú€#FÒ#‚Òû„‘Üq×­ºi÷ìj¾ï<§Ý´Ç3°nù±ŽJ%òVšÉ“6'i<©Ç~Õ5ÓåÉ`”a²WRó"±U¥Ûâ’¹RýÞWnÓxh¸ë¹ç¼Y眽°ýžHÞWU”Ööý™•Ý]u";1ºè ê—-/Lò–×Pt9Çûè.}Š–ÏÑå3Âee#[Ôÿ·hÑ[Âîצ/Ññ¬;0þãÕgÜ,Kñ¡LS¶øëwMºˆ–«/Úeôuôïr¼%œíã¦yŒ¾záá,Û+,}ôp%ÝCˆ‘:ÀIµäû'C#Ɖ÷¹¤ áÉÆm3ŒYÜïº~‰ˆÁ—‘–¿›xÉñ¼y§²£ï°Þñ+{ј ˜¿„â6xŠ]ˆ£•Kf2@¿e?Mý^óu! ‰É, ZDͣʙ“„pÑ}‡Ên Ä)øE~`°Òe&Ŷ–»¶NìJH-Tê¾›šŸÛhÝLMô9¶ÉòŸnþ¿ÿGZƒ8endstream endobj 1279 0 obj 3956 endobj 1283 0 obj <> stream xœ•ÉŽë¸ñÞ_Á[äÀÖ³¨=x ‚,$ÓÈ¥ßdKnkÆ–ü$yz:1ÿùÒÔJÊK;úÐ$ka‘U¬ÍújÖadÖø'ÿ·Ç§OÿÌòܼŽOkóúôõ)"°‘Û£ùý3¡&ŠÌóî‰é"“[“g¥y>>½e˜†‰ù×"]‡ëuͰXEeX™ ¦v[̾j‡SÛ™ªþþÔºnƒȆ·vtŒ‚êtjªa‘¢ÔÀ)T@üew£6»ŽÃ4K©-]§å#µ%Y}¬·9ýKÐŽzD¼¶¤¸(/æwÜùsLzÊÙÕ¤Á8Uƒ‡ô;–¨e=©\ßÒÛÉC·Õylœ$±g%e¸NÒ¹ŠúCãÞáÔ›McÐ6Ôm9—»6ç“éSÏ̱ oŸ‰5øÈ“$éÆ*³1ß|ª³5µùæúöV ô¼Ç+´eÛ¢EÒþyüTO4в$C< -z Á¤»Q÷ +ñøxÕ Îǿ̃Ä/ŸzeXòäPsoèµÞ0ê¼p¤4ÔÍ ¸(så|˜æŒÇvj{¸+áSÞ³Ó8ÍÂ$MÙiR8;¼o§©}d¦žü%¨½´ØJí¯®ŠL%YGaQÌLŽkš®6ýÎTj1Kƒ—€ž$ZÛàÝáż0§¢x`M¸æ·Î Í¡šàÕ õÏ𑲥ÇñÀêØŒ‚oLµÙ‚Ý£õÇ&Ǫ&GQ¸.ï™AÀÆS³mn7K«ybcÀ‹'`AÁ÷>×+\p”düz§=ˆÖïî ÍŽN G¥%8†Ý]mƒeÿÛ"¢¢^¤,Æ¥>UB)]Ńã9­ F³„¼34EøîÙú„ÊW”èÿ6ÊjÒ¾óøä½pèIMB2¾zpÏ.X±!j8Á€–€YR\ÊAÐ =Þóþ<.ý”4}qÄî®d •©ÛcÓÔ–¹âµ²q˜"³˜B–JCáÓ[b^«:Xż“¤%„ÙøN'  Ð’âÅT'*@ L9 ±0(ÂVˆo$Ió;(!s¢³üŠÙÒ3»¬vXL¸Û™Äd~LÀ ²0Íu¯ØLr°wÓ^\u”ø¶<3´pzö)X'˜:_ÄõÛ̲0N×jØ7uÀã?…~üyô\ÚÙâÃÕ3*Âí ô\î³èÇóØn—W!†{YD Q`›¡Á`A)-åvF Stˆ¨ðCraÂö÷K¿î[ ºRMóBš~ Ù ¥ÏH®ý$mŸÞ¾¬ûr”Ƕ®3N•&Ó–(ï½­FåÒÒ§q~ï^ÜcøœáÑ¹Ž¦ul°¸V'd‰úË=ß›#ˆb"X: ù!V:ší¨(D°gú%‚¶JgÜÁc«ÃÁã²”XhO¶î×Q(]qZdaé§?–®«Sˆ6³ŸË–^´ÇÎ)YÏq1ð3i鉤|Ñ|ˆÉµ¨m*—‹lD‚çvNú"[L£œ>3ùÂ?‚T`ñšåèIã,b›Çû£ØÎ=œÛwCe†âý¥']²ð-<æ—Èèç Jæ÷vŽÄ-ÐIeÌþG&.Ycþ±†:´µº·C»!w”­)šx«‡ Å«B(ƒý Ž Å}~Y¤Ôȉ‚Qà®ÔM2E«8èPµ£Û..ÄãéĽÉu~û©bèw`ÉÍ×bwH0ͪe"ïKèò9Ê$"¹|=³¾MãŸiuêÇièO{(!‹)~›t·Ó*˜ÊGîfTBì=·Có¿8‘d”‰á‚þ¤Á41+&~M† ®’}ÛÛC5@’É,K¬<ƒ™N³`ôÌD¥JÑŽ^€Ë/ˆ•†"v­ì.ÀlÞWeÄ5$Æ}V‚+ó: íYµÝÂÃ2^1©†~º?o·m XPºƒLþLÁ”ŒgјVbîQÓû‹˜iàóft{ñÅ%dîמK›ž9DòU ‘u›<;|›#lpòþp";ÅÖòÜÇÛ~ã?¨hû3ý†Q]~­‡ˆ#ŸFâ‡8Ô7 d霭$Ò»‘Ÿü#ª +Å-URžÂëyå"ú-áú#äHM±A…€Ú£Ò V]ïwùè Öu o3zÊ™ÐÕ4ú©AšÕUÓyCER¯‡•‡_LÑMÍ«Ø;w‹¾Î}k„UìÊ1„óWõ÷Õ–›P¶ò=£ûQ! í›mŠà}Óã÷QKehù±3=$Hñ'åcSѯŒ÷Ÿ8É”¦GÏ.äûc³ôˆ'ˆô6;üØ´ä.YüêÉâ‡f¥+|‚²”Øï’ÈvÂ\»êßNÕmVæKPBbÈ|~úüý²¤p_endstream endobj 1284 0 obj 4052 endobj 1287 0 obj <> stream xœ•írܶñ¿ž%c\GÇüf㙎£´µ;õ´MÔÉ;3åñxcy&yv”‡ÈõãѺ»Øx'KI­ ,v ì'õ^…Q!þðïzñÅ7Yž«Ûé"T·ï/ -+þUïÕW7ˆR¤Êu³»°ûŒÊ#•g…ºÙ_¼Ñó]³ZÇQDi©·C×U#ÃY®§ö¶g¨ÈõnX,íºjöPÕoȳS’‡f¬›~öKšÙ‚fšë¾šcÕB7Ó_ÇM· 6ÝUãa’íÉ’o ÒŸ"£ˆ‚›ºe-KtÛoÛºš›íêû›?_˜HÝüåâæ·oôæ^ÍW& B“DzPÄP¡Ì“FY Û ¬¶¦@½lÆFy5 ûF5+“J¡¬ö‡®};Õ³lÛÝ*‚eÇzÛúYÚ¹¾k¦ß‘$_|“DZ\W¤Ö¦ ®j{¡ëg«›Nî3Iá:qißn·]£®-‚§°Œ5p®Ÿ=ºŸ^ºVÕfX™$(Ë´ÐhTÀ¨QŽü¹„Kú—·“ÿëqÓtÃ*"º™þøëè~¶yBî¯^²¼ÈÊÿ_ðÏëÇé_+~“ Ñ“ô׊~yyûϧ”b¬ÕÍsÀ§“$ÀÁ^‰gEçl×i¬Š -¢Â’|…v–„AirÝN2#¦©VWvª(Ö]Ó3B”êéÐÔíî¾íoýœ5cr]wÍîJfš¬Ç`0< K}œ<SVIøøQ#{ÑÁ›¡ž+{>ð"œá5ßóÎ…â ‹L);·íØÔsK{K0¦Åµ‹œa®çANlôؼ?6“h(ÄV³¾ê:LÇÍÔ¬­–£2 R8ßê dÈ¡™mS“m ¨7 áücÕO úfë‘Y6V‰06€»Å«×{ÁdÅ2fÅüԷ­õù‰‰ö¡?î7Í({ =ì<«mÔqtb(SàqnîÚÉKáÇpÎqJºwGw2Ü÷±ïü>¹{ô©óØ_NÃ80EJo‰!pñä (á‚e(ÏIt»‰ƒŠ,\Ëö’ˆ¡ø–B¢¿ƒw}åAŠ/v[¦{bñÌ ´¡oÀ#ZZ`8ÁrwËíܽŸ¾«&l¸!Q¿Ãf{E6ŽÏGuÍ<7#ØûЫv†Haß5zÉ^Íal&xs“³ÿ@Ì#/İò ŠcŠcº ² R/«n§ªºn·°µê¦Õ³Ód@‡ |{ýÝj$†nˆ„·@ÌwBØè¦šÚZÀ åpÆ™'ÊØ*œ€<:ÝnËÁ[Véæí>s†J¡;ÔT߬òôQ€ßZá 'p!4IéF ž2Æ’ñÐ<*2ÃI®×¯¤-»ÉÐÏ_2ƒ n‘¹…ØW¢AÓrhœ·àB¦§¦·çÅȬŸ Ìò“7“ ˆ ñ›¨g¼çjÓ|ß5ÜmËEÎî–®ÊæŽ.d&I–ñ:R¥;#Zg!oƒËÈ{Ðç§®H½PHŽS†vB ÁLMU“z˜#eÈ)b\®Ïy›8à`£BU–¶Í€ÞY”ðž V–þì)rï-S–D焳RµŽ2°­Ø&¿ñ4/Š‚Ì„ Ž2ˆSÂùզ‡Hdu¦VqÿZ­Á¥ègCýŸU˜‚Xsœ!M䜺࿕‰KÌôõâ‚™x¨â ±šùÔ?” ·BäKQÍ/‹úoxa¡ˆúß…¨ÑšÐdg¢®HPH-®<ÅuZˆ¯# ÄœëüÃ&QÃÓO1DÒ^´u%¥Öé0%sí–øÏÖ3²ôÃqr$?wU‹1ÞN`òäC1ÒRkÛÞjà{ýêëWw;x:)¦"Zæ]©Å=•ý Dˆ6ADWÕM_zBí±r‘ƲŽ3Ð,8ÆŸ©6B Œm\§…Xß6}3¢…]ñœMþ&F/ÀÁ.Ããd예`‰A¾²~‰'ª‡Ý‘’+†\G˜‘̓“¿]Kô ?<´M- !¿­Á—Vmo3NF!Éé2«ºê!•V>#ƒt›Bi‘ ÛX}5VõÊ`h7ÿ£ù–üÍ¡ÂhÊlZ­%ráÚB¡çïý,2_WGL-ª}”Aêwr4‰Å0ÞN…Q{n÷¬—¹¼MÁÉ(„Éâ8û­ÐÒ8Î;Š´Qht3;.…~«Ý™šéíÊm!ËbÂÓû£&„çó€\àéQ¾ytñq&àJ xÙ.[â)ŽñìÌjðÁÅGz ²FQ™€p©1™‹9eu²3†¤r˜<)pJçð»0¬S†È@å`žã|À´ÓáL~3^†ÌÏ¢Ôg­¬Ø´õ—oW8ðϾßÀÿ—Iëž0âuÄÞp¢^õ«íò(Á{kpôO¿S¹°ïl1A’€+X4Px6e+'ŒHïr´Rà{¢> †Ý 1<ÄÆ8‚í.QX¤ £{Ø RÃÞóµ¹½ƒr=Až6 ¶sV>òIêfDãÅ9õƒÄ!;áF…„x0áf>‘\»¹!LAûv¶N˜&Ò_W” Òäw•`§ñɃ¶Ä aœ;.wÍèÈ[a˜0”P›Šr.á™$'$Hu,¼‡ÅÜcn»Ø¹F½æ_.š.ï^Ÿ¾ò§k~T'Ú74‚8žÁ«OŠg46îÍðÒIxí¥$ì„PÚƒÙˆC´@¢ ȱ"')kõ0b+™4Uˆ.h¼«î)F`c˜å`e@6æ ÏÍŒÎMv€‰]’²Á%l·2.8Sa8•#b¥)P.ÝB”:Ç,ö•`¦ä&‡£ C‰ƒ¯Òª˜&°†w7y¾Ë/E érîX†>Q’™?:ìÓÙËzÕ"´ÃrQ'ŽNz¦ÖNAÉ- „ÀL+摦B庠î«ñ¬—ãl_šÁ}ƒs äƒÔC—¿Ð /ã*0Œ™Â–ì{ò‡hgášZÍ‘ì)zªÂž}I…xë® d1Ò/&?ÆsØ.VžáUù̶sÐ=¥”0,žà• 1JÈ[¸w 56½z±ÝK%EÁ(ŒÄÙâ‰^~î<-ƒ®šfËLû¹í,ì±}C¶ÇÀ’éBHÕPÛ¦Ô§-u øÅ§mïT0ÛïÓ”0bö‚© õF¶õç"÷ûì,1\æ„©z=جàÃ/¦|²õ¯u]M˜îQ§-‚2<3%½ Ç6u§1ÒRâi²©!-ÛgCã¬õñxË6–EµÑ„‡Ë`B´SþPc!³$kÂwÍNDƒ¼ /EÆà GÇ+÷'H—-œc·uÓ¾¿(<ÉGáÕî,~² )å‘ÞþÏ­ÊǼ”šþù¹i–X|™\¬ó,¡œ„Á)3¯¯+™Løˆ)¹úÖoô3·:4pë¬1ªè8¥P·`W:-ÛýVËvÜúÝbв$=É…„S]uNd2XçåS%‹ ÷þó Í"M:{G„à'½ŸÈÿþƒ^]Ž)¯Â«:Öød¹‹ eé’âƒÄ6ƫ˻:È2“(–›s`Q²G-ÀJžk:Áä*ìRL:¿Ðð—FÞ6 ~aèGãEìûJ:[§§ƒ—‘,©¾r;*7â¾½íæ¤a€ß:Ü} ;â—É„í¢ƒ› ‹Ð<¦±,ÈD]ÊéK̓â@üñÒÀMÿkݽºcc ÏO;÷õ³*·ŠŽÏ>¢xÞL‚’®³8ÈPÔµá²åù‹âž| t Á=çBI¾ä¸µmîUªø2ò\|W|þ|ó4?jzvgU‡ggÂ_ÃïóçØ!»~š¥|m\p}„)µÛNØ.Ê»0Q›‚>3ŠN?ÚÏÕO©o)‰2[%5ÛvÆI&rݵïlÎCð2ŽL¼‡œ"ƒiÎ$Z[ËØ©³On>¥aÁí=Æ=ýt*¬ù{]À0U7«ÌÖ€>Í›=ö4ƒ¤·“G¯mfkºãñç0á¾s¢$¶ž¿:ÿK×.¢ÔŒ¬ m ¬ ÔÈý‚évðc[‘¾ÿúDU+ΙHþ(±ÿ4ÀÞŽ(Mb“~e¾¤*•‹gÉ…N'A ˆGÙ[y\¡±$¶Dc¢Kn®& <“Wý47Õ–õ©4ô5KAš™,ÈçÁos³<+]¬È øcv|ßμìm5Wê­.!ãä?Ü\ü~þ¤ñendstream endobj 1288 0 obj 3260 endobj 1291 0 obj <> stream xœZéŽãÆþ?OA`m˜J4\6o&¿ÖIlLà#ÞÀfc€’¨m‰ÔòØñä!ò»Oš:»)if½`ÔGuuuwuÕWÕ|ç…ñBü“ßõáêåë,Ͻûá*ôî¯Þ]êöäg}ð¾¾E’"õŒñn·W<ÎxyäåYáÝ®îüqW/®£2 аð÷õ8Öý°øÏí?a`Ç20Éz·›+¿[Üþz¶ ŠÈ„¥tWí† ÜpS&LLŸç»nÚoT(ã¯TÀ(ó§¡ÖSøc§T¥ß×ï¦z•4…U£ë®Z×S­×ͦnÇj¯ýél’Ä?öM;Úy¢Vl’ ,ÒÂoKu¯rÄ~×;™¦v3ïšmoé·Ý8«½¥NÜêë" R“FÞµ‰h‹ä¼óŒÊ ‹Ýèó}Ì‚Lº<8„ËÁ&ˆ ¼zvðï­«DõVµ‡û ¿ë ŠkÒ 4Iæ?zU_{¸ ¯­õðv\hÍu‘)`U,¯,iâ]å}1]L+ŸÓÝù·»f€ÍJaÉIä×¼ñyêÿ^ŽûZz¢ˆOkFY¹®aWõG©Æ +9È“sTr#gElŒž•Ô^-]\Æ$n6ão÷¤pXK­ИâS¬¿TÂÖ\ÚeÊ™¢–qµ]DxqìoëµNV™P…¾»ºýÓÜWM{$EäIì›q½sÕn+åXõ”:"k°Ä-©7Ubÿû›¿ßè¨Èï¦ñ8Kí†k´€»^–QéO£kÝt¢Yi•´±°Úž+„ɃHUýήÚ]5²6‰?L«o~«m²¿ƒ’d~Ó:IÜ2Qت_¤¨Ién[nUÍaí®y½«Ú{¹¯Q 4;bùš66ŽMep}ÕÇnhƦk—Úîÿ:¡}¢J‡;h L¿iÚª”–">=zj,a%ÈHJK=4ÿÕZšÓ¹*ç‘5J».ÙM£å´ô×];öÝ~æOÛVnZÕ2Ô¯]]mX¿Ê$ˆ3°éápšE›Z‚RÍo™“Èùæe§°}rÀ@¢e›Þ %­H”ÆêDjSÆ…Žù«ÌœëՕʦÞ.@ ‹wyÚÒ“&²O,.-›‹±oBGtìР,¥!Éý‡]C׆úOÆÐŽ¥->Ì$é\yU;®'`2Ýäs©bÔ Ò1‡Aš¤NÇÚ®?Ë*òÀœe EêߌZ.yD V²†fEv[JqžR>t¤ñ!ìÊ©e¤Ñ….‘øúÓÑÙ2ð pÉáN=´ŽëêÑnA¥:ºÂ!ö€Zsî-â( ’<~däiQZ Ò_`Œ(ˆ#S>1æÃ麞»Ç¬E. 鿼à`28Çò3ç¹ùÔð;ñ!¼7ŸwëóÙqO‡¸4õï­Óz[º"aG?.½‹ ÌÓ L-Êz¹¿ ¢ÏÆ/ûç‡B@çŠ×yÕ" Agàä«f_‚-&tÓýΛÚ}ó›»ÕûGoìRl§}ðvq‰À¼ƒ[)Da,€á唬¿ò¼/§—›hûÇÀáÝZYIû«¾Zÿ¶ —H²TÇ}§ÞÁÊ¿õU¬(Ò…ãѦª:~b_2ÝpÆA ‹cŽ „¾Ö T°‘*D6Ã$é9(A0Œ-™ÕªÆK„4nt%);¼¥."S[Ãç[àzÓ0ºAgWôât¢ºŠüA@æS÷fy6¸†ÍõËœþ£ŠjgÀ†€s:¾Ü°€&ËÀÐx‡'·îGê ÇzÝüo]¡V`šå….î\5IxbPY¨ªaâ‹óà;×s_*eD1“È8ïú>Ý>ØÔ"Œý}ÿ³TÀ‰+\庡À„ ÍI`Bm€^†æ^)ü :(«JŠoÓ¦Î\0×üfëFrôÚ²“PîN–øRhkZË‘TL¹·OÁ縛ðZQе{€!ý{F ذü(Ám;sj4Úÿq½®¤Äýµ¤#ÇX€íÊ¡I!‹í•SvàÀßLG”YºA†± ª´=E ßÖk ¾¶°‡Nâ,HOw‰š`ćsA€Ê‰F¨xHÜ›“‡ä^ó”‹–%ï¶Vžš“Ú…G !¬ÌÔ£þrý)‹8AÐ~2ßÜ·KIÌå¼Ð†Ûδè”&:!òf1ÜævîŒv‘1.Þ4u‚rnõ +gꌴÚªf½TPÛQÊ¥ÆûñÙ3À,9h:}jCrrúÊŽ ³”õÄg²>!SžÒ†8µp°âû²LXâ2&€_ÄW~Ý¢“Ü6¾ÑT_±ß+i¢a UMÌ(\º5H£]†¥§YS ÐçX;Jò ŽSQ·XÀ¹NäaPZ3~wŠèa¦™ œ8?ïjY*_J•¥™‰¿éÚzét#šëFÓnd ˆeÞ7›‰ŒNhØ(„,Ô˜ÉÞR…·—‹GŒ:© †n…~k¡1ÂR®Nà–¯šö±" ‹#HmÉ3W Á“:·_žÂó›¦sáM³S¹æ§@Ëñ^Æ @ŸÙV’ I×Ôô!2ÈJÊ{02À~Æ´Ñv. !—¸@¨4æB*¸ƒ'!¯ŠùÝQB`¦Km,%Ã(6§2èÎÔÏFÎ…HžBhä£cå’ºîÎÞSrÀ˜Ëš¹w`r7'Q«×õž]Ñ>Ð@¼™Œ*È¥:=öôYN‰ÖQªd¬¤TÆ`¨_Ó™bí]'e˜€¤SRQFê:C2”­UX…hÜ™¹¢ñ…"áÖ´3Înà±êÇf=í+å›À™‘.b©zÔVL_ºÉM¡ :Ø5NÐã΀}…`1¦´ ÌjL—R—±I;¬‚oÁcV%7Eã˜ÀÚ*ОjYHYjQfä”@N9fߌnŠÁ±<öŒ)KØ 0DõfÆ€8Uàh9 £Èþ)¡Ü1®Ø ]Hå`œÛ°7¦€ðnD?í9y…Ñ`!ÑTLˆ@«ßÕŽTc½Ô1±F“8"'ÏHeDfÊ ¶ °£âØ{žÒ%é2r’6—™%7ˆ•tF]æ6‡Èµ·A…ëüÎR¤DËËTEdŠ«›ÔméÞÍ$…«’zkÐ@uïq÷_.¬3‡ˆl›_œÛfëÙ0 ^å‘BÜýaµ+ù‘®ü@aóßèÿ7žU¹óHç:¶Iÿ—/>o:Ì?9Û×ôÿŸ9Û‹gWww:_:·J0Ëc­óº,ÿïëú8êŠŸŠØO–úìZŸž\×üɹeý4÷—Ÿ·Í²‹0+ -ïdfÞÙë$WU¹ó¿a5M8Ob PßùKÄRºÀK5[)—ô0 Í|°†—˜ß¥¸/œ!Ô£ •ãìµ¹À“0< L£óê^À‘{±ö<È —k²S€Ts¿ÀÓ&”ÏSq8 á2Ù ­ õ¡ ¹¶×ï|=ÞI–Såyƒ¸¯|ÉÏnT.R÷ìF °”!§r–³[ꀈc*#ˆ#è,µ–s‘Ò³y’óyò“y¾½fí¼¦«¸ÉnZGÄnYXW«ÍŽöò³Še=‡'Öäã9óãcH®ñ/ç*–Òˆù4-ž=r`[lßhˆƒ<å`94ûÚi ’èLAèKŸSá;‰••7š9Àú¦±;€äk‰Í…± •è|»0÷àrõœ=)2|޹ÌÙ ’ dMá½p7,¾:KÈ(Ô¸å GT„Ax®²T}­µ(ö?¨—‚jœè³ëG%õ™8å'œä%š*É ¦H¿­qÙ>»1}d—†T2ñ(Bʺ±}T1kK ³Û•?V®þÚ›Á•IÖ³ô bN 1Põ«µ…aR`, ø…{"'°½øÚ@=p}…%‡áR¡Ë‡BLAlM¸Š{3̈Ýy¬'Œ eÒðè«8>É ŸwSç–“ø$ ® ¸ªÞ÷˜Å¦Hö$'qÆçƒLC -pøñ*‰=­ÿ$Å4ᘚ1‘whVÇ%ÃË¥NŸ½šòà”ÍQ”ö͉ûèöï8l‚j6³›Zæ™-J¬ . ‚›Ñ ;¼ÛŽÞK¯:ï;2Bði7ò\ô„cÏ÷<7ÉÛ'êÍÇÙó径¦¥{$MÝN{%“·gîËœÝä‡ËįO_…í3f.ˆ\>ýýío"ÍVøÃXÑI'ŠpòNëÊÓàÆÒÃétt¯¦Ù³ÌÇávf íM. Ö7ZôwÕ åÄ‚°¿ƒB³É…÷¾•8³ödçÛ¤dìø˜3›¢·¡\ÁLÉS sh˜ã !q†ŒÖOt˜-?‡òtζ‰`•ã¶îKµ£¯óq‘R¶ßŸÉ)ˆÇ¥þ›i½³›C((á0§¹sÚ‘ô îÃóM³©8Çf8D–ôºŒ‡÷ 45%8ÁêP’2ä Yžü¥6L}ßM-¿‡S#›n­Ðz†¥°×Çsî/ù¢J§dC¹2ÓSiçb¯Ü¾£ˆÂòäkÆUŒ¨dC¨3Ãóë%€Í= ëè§¿À\ùó_ôÍ¿LJQ8‹PhngÈmŠ‹²;R[iÂÁ„’7$™f˜˜Å6öÞqÿ×a}°NM@Lʯ—vH3ÎÆèc{Ñü±Ì šä\€-Ü•G„Ñ TLé ¤6T³NÊ™C¹(£yf³´™MîŒyÍ<ª4M=àuköqpµN¿8³ÔV7sCªI–œzÁxü{aB‚ãÆÝtk'%jÛß\·ŠGãŽj«]U„ÖL”[;·âAýx û¬ûWÏ!¶Òû®nï!ƒ@ÞŶý¡8¸æ©¡¯ê`ÃüP„ ‚(ä§œ§rÈy!j¶_ZáùZh"Ñ>®¡â[ÅÄ'´Ö«eJFY ™™¿RSJFR'èêÑ‘ŽvIQI9$©ÅñL~Œkf,Å1¤¤C}§$Ü^µ®<uñx|£Ë .q]¥7F¹ƒ.X ûˆØx²Ï‰` ÜÃcn"}xÌa‡¦mKå A¡vÎèµáÇ$ógBF ã€FÚI_Hø¤`ž×} »&lJ½…ÿƒ¼Ÿ';0ŠT;ß &”æ òú[©%'æ rm´X¥“À‚*øUPæ§ŸÖ’­/(ØáG‡‚܉<,ä ªÍFò~ÚBÆŠHýã~t–‚€ÉqPÝøu…Á“¦óa’Z×ù8Ž1:€ïO`÷àGN¦Љ\‹ØócDžf~­í%.åꜲ+Ø ú6`ÊÌh-Õø`_:m--{†7Òœ9îàÅúÚ˜Ó(¥øA¿øË䓤LŽ˜ŠÃ®ë%Lbr>`^‡q3•V‹´3ôe±ùÙ—Q<âÃv_Ý×òJ®!€Àœî¢ï‹Lá›Í…ø&4âKí'‘&7°ÅÓ¾«÷µð¤òÞú%'§þq{õüýài²~endstream endobj 1292 0 obj 4127 endobj 1297 0 obj <> stream xœÙŽãÆñ}¾¢8X*;¢Å›Œ± ¬ÇÞ Îá ‡nI”D/EÎ’”'ãðGäKSg75‡ló0]]ÝÕÕÕuSŸÌ*ŒÌ ÿäÿæxõùwyQ˜ýxµ2û«OW¡üÛÍ—7¸¤ÌL™›Ýï‹L›"/ÍÍñêCplºÓ¸X¦qVUŒÍ¾C( WQÐŒnhuIKº}[+»Öîeݪvý ›r¿« >ì"ª`˜EÁO‹&ˬ êa‘àd^×´-°ßSæVyXUsæjf˜é~­àÈ4z¦ƒ\žÔS¶²`¬ ²ÃÎUTž³•®Î9Ê”›ïoþrÅææ¯W7øtÛ¶_eÜ×ÛÅ2.Ò0ËÒ`ý ã¤ÄyX¨À LK¹“BÍ 3†ºVÐ]ˆÉä|!=Êúù-\j9¿YWÏ<-ðz޽në)œËR—è[0;ñ=Î( ÊjÑŸsùãÀ 2Ž2DéßÉ é¥Áù>cµ¥,’sæ3|Á" BÝ™ïw2†“§C­@tý4ƒÚzš€ÃIJ¢¦1ÈoþŠ¿¢RÄWÔ“>€âl[ïÈÁ~EJç ëÞ$°›MÝMns`G¿÷ÎÓŒêÎcšivÜ]3m×NxpWC²5Â>Y0(¡ÌX‡¬©¥jêß;ä&JÂ$/™så£÷¦Ù,¶=Mëãàh¨KË#¬nWÑÓ ³Ãª`¨ÇÉ­²£G4?{Ów¤¥å™MvSÓw¶ud§±Ù\;pêݰæMeðŸ©FÍ–éfš×ÖÝ~:ø3×~|°íNo‘qœ=Yætt‘…¬ Ó<ÃÛÝÕ›©¡·(A÷gì·‹E§¤¼¸#̓›C–Ã`ÌJ‰cÔvì=4žîîzRÙI€Žƒ¯ŽGÛêVfÀj¾>€ÀþËö’J¤OcQ’º9Q‚}µã˜„¾Þ‰Ö¥ÚçäWUa®´Ç@Ãêt¬Š€PÎ.Ñmèj¿Ld©$ªà–•¡ µïNfI3¬-D4 ¾¶Ã¶ó{‹à»ÚnÏnNópzß$þ!&V‰ÄÄ$ŽÂ<ÆÈx³…pø-*•gòo*,ÙæBi^…E™Uºívúsnz³*þñí¿i3LDaº*Ìõ÷Ôݦgù¦«˜"+)¦¸U‚.œƒaÒtš_ÅOmìqÀÒÇÑ}ƒ…#«Ds´q™C+ÑYØÝ=Yzמ19ÿЃ7r^ˆQTƒ¢Œ{ޝft%šWd¬yôÚà˜¢•8atRe&zC@êô†bˆãÚ¯³ÝÖ¯k&lc8®À¥M7éI«"—Äc&IJ<Ùù0R=cŸ Ïðnu˜ˆ@•¨‚7e’ˆ/(f‘¦m¦Á™ø0ˆ4›Sk‡öÁœÆzwjÍ=<%Fƒ¡6 Í/3wdÖµFÓtÆšµ…ÀŠÑ#BÑô"Qu]bÙ^¦æX›ìóô{óîuøzqóã™M,ýÒz…¤ s°×ÙÛÚãf„@/ +c’`0Xƒs$_ Ñ÷<¬Ò¢ç#7¢Ô£Ó²Ü“MIð×Õ|ÜlœüÜÓÕòÌD2 îý¨`\x(ûÜSÉýNŠN²lþ îù6CѽžÆÐ|£ï5ö nÝN$7š~g«Ñ€†Œ§4µmv,©rp ÐM†ÙÿxéIß½~òŒy¦^¤n4:ËÙŸÐ[ÂqkÁï¾üáÅKoz‰ê×ϨÛo¢jž(ˆY?2¾Kçý9|é4tšà1 ¤ñÍ‘=Oâ»)ÐVz¹Kûëð§u[aEUçµÏ>Û¿Hí·ì–/róAEâJ¼ôsB^”zB©F\0*Ì!’˜? ÁPþ¶ã“¤Æ ˜µ,“4ƒT9 6XPÂUÉ«!ùgAÁº©‡É6º¶>‚o‚àE¢’N¶×¦¤”œ7ÑÊÙy ]H”Ú~d-ë­_ÙŽkÊþž9¦“zMPŽ·<Çp > ¥1|”ÞS:çIXDŽƒ9“@àÉ냫½ÚV¨øÖJ «.J9­ {öè „KÛúãØ…_{¢ýà ÍNË‚5[ <ìiòäÏÎúep¼§ÉÙMR,¹Æfœíœsü£_ÊÝ¥!ž5‚*ò¾öeýÆŽµ‘z›2³( ®1Õ¸?4›ƒ!4V¯|;ÓŒf²ÔÂÈÙ™ÝÐi²LÑîb^rì×· cnÑünÿjÉĶw¯^¿f`ÿf¹Þ¾Ú¿º]üJÚ"¹;>‡ª¸9G”þ ™Êá97¥k3Žý²t=›×"†Þ²ÓšõÁâS:‹¸ à—€Õ’¼u†ñ~§Ä)ïܹ)÷jWΘKgÌå³~Ý>è;›œPsДÝÓßã[íÔ“Ò”'ÕÓ&¼]èD„µM=ÖŠwšˆ@*fclŽA5ÝüBM5š)ˆ WªÜÀU¹Å*ãèø¶£¢UÙÉ£ÐT‰¾Ú…G^|ôÙ iõxè¹te\.ZãZ\(ì´Z…Y µ@ æ¾8IHx\HqD@œFÊ Ì¡z#ã(2x–™…÷6P£ˆc5Š´£¨Àþ$e‚LY# ¼ßíâ Šõ¤1Ôlú¶ïfØÝ’¯’ÍÙÍçŸë¼+Õ­D´ÄtÒ~TX½%#S×[XFy–iìëdÇhe$˜È=ê37Ð*ï¬ÇmúãQÀh•»3Nàbðø[;<ø)¤¯´ ê;íÔÀ;„J¸’6#nɴ͈@!ÀëŠRúŠH Œ«©·žÂ3ï•dI˜Uå‹ï•„yWþÁò0®È’˜ftÎÉ ªæa)íÐÆ8¼Û† ç2ƒé˜¶ƒÝp˧J4';ùR‘ÿ£I™°^Ì/eû%5ôî®¶Žl¦zÃèR&\äõFy˜éM¨Ø…™wÎ'å&2¦ûÓ=]$ò׌óuª!›!çM0xö7¨¶9˜û†¸Å.ˬŸ'‹W°Æö4x螺'ºkãPô4ì@w‹3Ñ„ú„âpúö'.ø0½pÌdÒS:;¿âôL—ÍxÎÜ—½:y&qÄÌíºÞX¸´“Wƒ^¢I ¸Gßp6©üÎ$˜ðcÂßúÅô DÆÄ%K~¨qÓõµRÒäIV³o'Lár0b¬$¯©ëj‹Ñ B4Ãè9÷Nãüœ¶$`BZ¢ë³$Î.;ár(¶À°s´ÃÇÐ@ú`¯ÐÄ£Ôw “4•cðµåûÇvIÔÜΡ˜\[úó‚­Í¬klñlÍÔ›~I·ÁÍXÃOnðf‰½AEç|šCù}œÔ@µ§©?Ú 3ÏöA¦!âßmbïsÔ)ì?mš-( ÂÉ’#2á“™r RÑ®­ÇÑã©wÇ€ÄPCе£ç» Îp£ä«HŽq» fÓQ£Ò´ÝsÅ»¶ÙP/0ŽÂîè/$sà°ôÞì˜p’:ûŸNüé‚&žuæQ‘‡Ùêåà›„å#gžqߘHÆÁûιû«§cÆ|-`†"ÒDþñ²àï¼8–Oå|ܸËzËßËß_2ž%ëÉà-9î™ ­€¶ÿÄCVRÆ!¤l¬G8†°€*!Ò™Éi«‹ùU* nl& 2?¼ë¥ Žp‰excG¿½õzd¥9øPÔz\}ÒFüÑÄÏ5»™xç÷jÓí›ÆþÀ-TH¶Û(%ôîœk1z]{æ}™¦3—*Cõ#üP ´ä7!óO¢T³á·Ozba.(ƒÊÑnÛ€– ‡Oz—YF´´G`߆Ƙ=$ÐoŸ6VÏZä†Ó’qÃåH@pÜ‹¿TË“ 9é)¹Ë‰F5_˜ÑSÈв}ÞËlõ4V‚¦8ÅIO„æÙYª‡t†|rg븷¼ôw€÷Òöž—Ù×(w…G7ˆËbNÏ cÕýP& Lã ð˜~x${´gÈW0žõ„²U˜V/éÔ»E´r=¯ ˆ¤ëDTиÒÊ@ÖõçžÝ  /Ò…:Åkä_ÙxœÇÌéi'(£VÎöè>Œ`š”Ë«ó:ÏîÜ7›$‘£ Ë…Îâñµ‘ô§ø¹ðPúô &ÿXÄ޻Μ} ?'þ~¨$e„ÅÍÎ5L€ã(‹ÔÛ}´Šå5܇wH¡‘·ú×dídÍmPqî«›«Âßÿ=Ãàåendstream endobj 1298 0 obj 3522 endobj 1304 0 obj <> stream xœ¥Z[wã8r~÷¯`žJl®@€·—\NrÒ{’ÍvOúä´ç–(‹‰ÔˆT{½?bþÃî/M]êb¿Ä~Š(€PõU¿&ËÔ&Kü—ßÕþîw_вL^Æ»eòr÷ë¥êD~Vû䟉¥J¬M7wÜÎ&e–”E<îï¾™:-R›%ÿ½È—¦=.lÖU‘™©[5»ä0ŒÝÔ }2l’æô²oû©!z=LãâçÇ? ü*WùUêò2yü»Ç¿ÿf·íâÁ-ó´Ìró}a=Î+è„Dk•3Ú‡~©Ì°‘²w†:’šÒl†£Ι~˜ÚPW˜ Á–f×õ¡Ê{³jB]nžÛX^ ýtv»v­r¼y~‹r&˜ϲ´^fé²,õU š|\ß™o8ÀŸÿ{¦ ·L3_Ï7³îŽíjêè ¶v®ØWÓ¯ovìœ-ËÔÞJÇOO¿zºì÷ÁcÏɬ(uŒ*B¡uj— ×ƒê¹N—ufžŒö‘e" /Ó<³ÚÇ?\Ê·(Ì‹6Oñ´HEfeaÕ»Q¨Ò_ôèL³Ydyº´ ƒ hD9k[¿{Óv³¥…ƒ.šI-,m‰(Ûšqj´{ý¥~qd5ï‰0ÒÌüq8î›öjÃNòì3T[mÆÓjKŠz(mšåçÚ…&Yž§'wl…(­9»~ÂmÅrÓõR®rZ]&ŠâÝq3³7ã¡YÒ4Ï3Usî{­ÏÌ3 «³Úœ&í¤4ÝFÇéç½—pvCI]0–íÆØîplG0³¾P’…õ\ºÂ¼Åé}¤ˆ1Nmsö´‹ZeËÁ,,N.LÉïn cT9o^vîK“"C†a³ÃDmÖífª­ËÚ4§ÝÙ¢Õ¡/VŒd ðwµmú9õ]‘eÐöû¶éÇØš,fó·†]â¢|h4²:-‹BÏÖ»ÛBðMù1jïuÛö‘Ò‘=8¿L˼Š[ùRQI7&¬kÔ0œž¨ëûÄ$´o’nj÷ɪ9íH_a^ œ¤I ÚùÓ®9&xL’iy‰l†$ìâül§W6Ï¢1«Ò¢*kÖÜtlŸwíÏ þµ)A*ÿ#õC~E½²Š™þ9yI#'3¾·‹ÎçEgêÂ@ÃKX9)DÂi¦ é²CDÁ>FÊ œ5S–- ÉÈ`ç¯eAÀ÷n}"¿HíÊ`©û¼vÓ¶ ]À*iF¶ŽëTû°æßåˆd™ym¹èÏ]ð¡ÀÅŒýýé?¿ÆaÞ\žã±[‡!Áaœ‚z`׃ViõðÏW•¥…#×NS׿臰1‘ƒ¡E‡vrjßþC0—ãC†eðö¶p Üø:ÒÃju:ŽÚUÅ–WDÌš©ÖTâ§>–'òbLáÒŽda‰ÌÄ<‰@9"ðñK¯iõî#[§C4ÒM³ïcü>ôA¸¸.O]Q‘ÛºW’ôKWæ°#B©y•Ãl-ç5t*Ji›RÜ%|¸AûóžQÊRSÛÌœœ*“•NUkqªT•tÚc™ÑTõ;í'ör{®´]Béö\‹ùTç3ÍÌ»¶&ôóxl ¾:· ¯ÒVj¡Õx_ÀXx8ˆ*I+LØey‰{„ Nr&Kڪܦ`Ç7Þë{áÙ•­›—g¢ÆaßNÝ^¥c5X¢Íi§†]>h¹"‹¥å,ll¥\XÞÁߟ9%m Û¤;²‹]3[0•<€.hŽãï±3®Ó='Œˆ¬²w`Pªü^£”›éJ]®qæÀع<êˆ2ÄX²äÍjÛ‰E…í:ëyÔ¡•d;~Ô¾K>X¶Nö«ðõaª…ie€YâýᖌٔYœˆPQƒhYÝ…Kk{ ý=ŒpéC#ç0ô(ŒŠ¤IM£EK‡15ÿÆ“ŸAŒÚf°öôÑŸ›ýaG§—ÈêI÷dk¯õoKÀÓ Šž`ý^Ò&}Z\®A^¤y­Ï7:$q^óI6ÐÁY³Úµ¦ªZ€è¹)Î“É ü©38fŒµÝ®h¸ti勨a Y’‰-Spt ¨8M>m [BCc`89¶¿ž®­ :ß !`Bž°=“3ó–t}òºíVÛ·À«¡SÜzhoýû÷QSå‚jÉž±~“$èšöüµÆßB¬zÔߎ㤔%£pm_GapVŽ‚¼'Ùf&Èå1g\gn5tæ2ÙÖ̆. ØÌk?‘Ûbîj.s†¤ò¶1c_g­gãvïNx÷²ý`¼§C|üWB@®(R€ç†6†vqÑ8b.7G– U@ØM),³?%ö,ÌXéNEUÙœO§Ô¨ã—:>`Ò†fwÔ¡Yµ1ZÛè¨á´±;&>EÂv[í¡KJŠe:¤R&P¦Ú£ø‹C25O€`nüm‘Óî±f$¸Ǩ€â9NNÓ°o( X†c³³8k¬%öAÐk`si8DŸ…•2!.ù#ô½…à6·Íb"Pe2vY<ÐQ‡9´ïdÍ î;K›Y„„µ!1B:Ye*óÆÂ®Få®x×`PÏYfK¤‘2©œÝ Rm]§!D ò¯âÔ¼L«ÌÝÌmÁœç^¨·[‰&±n³ME@Z ½,Í='š,Ã÷Ÿ0yC›‘fLi¢^¨ fw$Ú…®½;÷ª;_§7=>$‚³%B#6!^Ž C,å÷BƒÓã£C"í¼azʨþ9Áf n3`±éµmû™Ç%Xd¯+´:µ×9Q­8b˜¯1æcUDÛ¯oIñËÔÁáWõ§q¤Ÿú8%ØB£ä<œ²*£†1d"ì fi 6#LÀÆè§î¨4D[lF´öÉl)=ĵžuJÄ'ãÔîÁ] s͈—«˜iÒ¨belf2tç(œPD:DBö?à˜É›á¤­JŽï™€ۃʶÝ;ýP›Qgù­'JÀ^×80—ÀZ„]y/Ÿ<ÒxDç—qGÔXg)ˆDü&1)>‘Áæ.œÁ¬L¤(ž¦Ö¶¹‚W!Ÿg5ïE"ò+—HÄ•Ë4lǧ§qaËR)=Ï€ûƒ«qµjÝchTxo›âÒ¢Ùé6S¹½•¼öüT¥Ék¢2Éè QÉ­•ËG1]èA¢¨(§³jxi˜Aï6Ï©]aÊñ-2‹†‰Ì9³È­Øµ ï« @÷Ž~™å‹¤Ä ¹Ñ°Æƒª¹£b)éSRA^SÆ3$¹°Ö^í¿Qk¬æïs>8Œ„бý¨ÜÙy=¡ª\ &¿`ƒ£ÿN³;$ú’‰Ñ“‘ÓÑà1PÂjTy¨F=\§g–ÏOÒŒœ-Þ‚!à „&bx($’%N9U0ÃxÚy“ùäëvصÉss„P`µýpfΟQ ¥5ceÌÌ÷Z‘‡cÍuxEЮ:†ƒ–0 Õxª’€Òì›7%rØ¿»³L/W”ª!víÇøáË½Ž 0Ÿïã÷aÖëO÷±Ïóü…r÷ÃŒ¸\)nÈk©ÓhÏÚ¶¶UFIy=ðb…ÞHN9”ËÈc¶Y$»Ú5ûFó—X ê:þr¯” d&2IçaÙϤ[AD厲(<µ¡oY•GU™#ÇÌöÛn7FM›¨C%€‰œ¢õÚ¤‘í+¥}Q¹âWL#²¦ÊRRŠfeLó|×¥"ŽÜØQ¸­_hŠR¦¹yS™dº´¸0S0…–Ç+ˆ޹2f:{•0«¡Ã x ¡²œÜ³Yʘ‘‰T“a‘mì^úf:éJX¬Æ¸Ì¾î6!ÚÞÀ©ìW¼Õ:ûáÌÑyÜžêÆÌ—¿»r>šƒoŠÀ,&C–)7eøü±€o | M¥X’‰F©¼¤ëò=¤z4¼©Ñ†nÆ 1'Á'r[,Š]7¥|»J…Ђ7ÒY¼ß«‹Sy¯hó¸pK†qðÂJ ®Ä=;§ºL}ng)–W´‡VÂôs§9A$À5MÒ°Õuz\O)Ø-ûabÈ R¹à­ÁßùpjùY;ðPrïžãgnRÄã–ÑM¤JWÊ<¡˜Ûˆ„‘ïB„ñö½ßÁ‘ Þ‡âõß¾µ‘i\_®çƒYÑÙO×[/Ê˘žÛ-­[r>¶Üñ…ð®û%¤Ã®Á`HÄ.³÷ÏÈy­âÙ?¯ÚÃ$”ºß‰Ò<#WyÞe<K«¥”OÓFdà¸è%öÒ9pê…Š¼vqñvEÙ ¼ë^ØþéH2Æá—³\,¸“ÝË‚ükYšè\ê%Åâœö&Jn¶¨V—,,ÒÔïO»©;„/°£ÅD¿ãésUÍ™K¡œâ{&žiÂLñ# –›¶Ó€{»µ¶Ã ç&ÖtS›ýÓ™l%ÈTLM×ë=3˜YàãýÍW¤®Ö'4¸*Pÿà=e7fš•ë0½ £ü鸽èº§ðÆ ”æs"îúʶ*«,=3â9T–1b²dÏö»vKáßi”›MllÅ1CyYÏ·ðSp%‚ •RÉ£ êD³ˆ¨Yj={FA,»C)í¾{>¶á>ïüÁuÀF—¼¼4ZÉ>¶ë üá@÷\5y“¥^ì ½ô%¢¼²|ø9×»,³RAú´ Ëv& *Ä[(I+@„«e“kú‹Ð•¼ì’F3Í\ß™ ðt Çs?⾌µ ´:‚ƒ`Z)B« :¡¡!)a4•óÛiµsEY4£Ç…­ð)…›aÎïá2 •ê²0´ñ.Ó…Oj_…ÔVìãpÐþƒ|\ªSðæ ojžB®ÁÌo‹6±ÌäI¼Gªº¤—Ì/éYä\~áS¬LìΨŽòibB"2zYZ–ï$-µ”åõƒH<ŽH"XOà¿wmÿ2mSå*õ Ö‚_° 6|whÒ ëUZmÜï|ì¼]K®á‘!!ÕçÅ(M· ù’Þ—ó„’7{¿EÐÂj%ªŠ‹¨§}f/œ¥£a¥‘ûÓF{kËsÑÙ¼‹£N®vwÂÄWÛvE€£rNfδ{z´w=ÎR I0r¡ðPViŽ—ea»éC%1’x%‡‘?ïq¼ðæ>™ï藍Ü@¸KxÓÁ=8¼OŸ&¾´h7ÓÃïÚ~}éŽH;à󌇎E¯ŠBÂ×:ê—ð„’¨,ÔØvŒBE T'/g©\ѳ¡ÀxF±½+Ò¶W´R“\"lÞ %0èH¯åkòÙäé‚Vï†á—ñÂU=· ÿ³­6?±Á¢×–Häá1)³é3Mª«$‘«ÍÔ%ʆÌêç2ý¥ã£ÏM%× Lü¢°f¿ùÜÆòšãW­y‹KÌæq•Rå¬sÈ©þË”ª›ûøP…¤:ÉWª:ΦŪâtk‘arüÿ‘nÅK„PÄt+ó…LØzŒ²¡'Ì™…Ìlž|i™ã‘ÁÝJG¾&»q‰¡¿xÌ 6µ š¦×ÁK‹EGw¡\$õë‰B}þ`KyÙÉOÕ7SM6;ZÏ'ë} Ã@^ép>ÄáD$¯ "Ê”1êÎ vó%”†cû9vþÞ7CKÐR2=ñäp"§ö¤”ŸøÂØ /zÁd¼ÉgïõÌx¾ÝˆÑ ÂÝ}ø”Xmf> stream xœ˒ܶñ¾_¸ReN²K|‚ÎÉN9ŽS©8‘¶*‡•ÜÎ.­rDp´šª|ƒ>"_š~ ÌheÙ©=,šh4~cÞ©,Õ*Ã?÷½¿zñ²nõ`¯2õpõîJÓ´rÿÖ{õÝ-¢˜Ji­n·W¼N«&WMmÔíþê.ùi»ºÉ›"5E•¬§ãlûk÷!k’åq°ÊuòØý(t“Lãî$N¡”é¤Ûíd*½ub—n¥Û´5eò~¥KT&é=Ñ6FŸ/\ç¹ùP&‡y—a|»>2é¶Ò1í@bîíغïf{ö:†5°} O}àeûÕ›Û¿]é\ÝþýêöwÉ4¯nJ§MÑ&ûiî”'‡n^¬ƒtžt~ D|ßÇ oÄeÝ&–¹[/ý&`nçi/D@ ah×°Y*»ÕÉw'çɦ߮P¸mÓ&Ýq·\˲"éF/’Sø:÷÷ýìYŸ¶nX‚°}8‚ëfñÉJŸp«é(Œ}œVy•f™)’'”`@Á7KãÊ]-yb»½‡tò„'h›ªNºÓªvòÁ‹âqr´|é¶5QÂ_¼lÚJÕ¤çU†˜ ë·›«äÃêög0<- ÌžŽÍ"/ÒV—FÝ88Áð0ÊŽmŠ0¬…2!›pSÑ9JЂM?2™ƒ=«¯ÃÄúJ;i8ÏO» Þ1Éηv höý2ìÁBð7ºEêµ=Z¼ ÜÐÿ2±‡~=t;ùP›ÞA¨8p*+“•¨7Byë‚@‘{­àIMj!ËøÞe_V]VI‘¾ï—§ÞSÏ€zÀ›„¡TR˜‡ƒöÃÃãò§Àƒí…¡LÇ—¬Kwm…ÑiSU|ËwtÖ=¨ü0¯tƒ‚­À­,Ö- ·}#ë¼ûn*¥6Ãܯ—tWE|gjتÓtT‘nŽ‹Z&ENHÑ©aTè0•]N;0PòmªÜ—]Æ·«›¢jRðrlK€ÙLeÆzÑØàŽvõÀ[fä¤ß Ãý®—E²dµ«ßw»‡ªR BµMˆƒq Ëc€†Eöª›dĸÇ!l…rÈaKàké†Ña‚ÂLpr´JA¸gO r\9ðAç>ô8v›iéxE••8i‚jÆÒïS™,H€4¼@cÒŒ‘3”£çd¬&Ùö3È£ {‘dhÒ€,Š©7Ék'bËV¼¶I>tûî½ [ƒñ‰žG–q²B‹ƒ–¸ S]àÅöCÀùz—Šç«pÓ¼IPe .K'G‹_‹2yêyûEz;“ÿiÙÊ*>)|Ô0 ù þP9QÐ’áÓ2ðÒÝ(cóŒ–Ѻ lÿîØk¿KÃ:M³mr€[–°H/SXìT+|@ˆ–Û#úbÏ” ã·+喹܅:!9›Rë4¯ÀmûÞAMMޱ[ŽsoÝ·ºŒÑ޾8¬ÁµÉí? ãè‚9Nµ.b Ù*ÙwóÛëg)º¸!ˆ»ÎÊ2/t ä3­ ˃„y2îøícæÙÈ‚÷çf»m+Цr†s@ ¥¥nä.š´Ç¥á¼=É$‹Í A‡)Ü&ùqÈC°Ä*ÙLa ž6¬ˆ|Ì}v&Bl×ñŽ,ú³Ù Vûž‘Êu˜EÆPF˜§,ÊOA Qè3%gêÄB»@XUÓV½LW_cà. )Crˆ½³†2²;½yù;õõÕé?Ó¯Ô+ßúv™«ÝøÅÃb¡Dä³´¬㲿——ZÈWó¬´’9SbÆ+ÉT‰™°;€‡A‡\â72ƤÖmôêKŽØŽ««ˆrqO®eF*'Z”;/ÁS:×ÍIR†éä[ƘÆ0UämÜP Hdòˆ6]\áÙZØ= (,B©ó@7Ú“ YE‰–`bu…ѵßj;ívR2AJí¼PrRݨ Þ‚¢ûå +CƒºÈ,ÿÍÉ|eÒ¢1t¯84îÝÕѬ?î0Ä ²Ìý²~ä3Êgìqûq=@ÉwÁU\E¥—p.»‰Ê2E[‚¯á0"PØ´tßã i tûèñ:Ì©Q ^ë=¤Æ1©ÀXœ|]–íXËÔmZƒÒG-üR²äp¢ñ0ÜÒ™(‰@ëDI„“õÕêH÷;\ÐÜä­Ió¼ æþÞ¡½ž»²ÖGÅo>qš—þûŒð}¯´‚›‡ªFé7êÎàˆ*ϲ7w%…†;HhïÍçã“;Š¢y˵4ä%xä–rdWn¶\›ÏXn X&?C4>®]µ$H¤x-7)H`8†”´ßr‘Ã-x"š€*A›çrXÆÈÅýñ’y]¤US¹6“ê´Ê_¯®…åÒõш›âÙ"¸6)ø v,¹O„TÔi^”²/s‰jqá–i/l¥ÙÀf rôÍŠÅã<]FÒ¾Iw£ƒî°ù´˜K{ækÜÇÜYânÜÌåÁWˆ¥ÌbÉÛaý6@õ\ðãâÆP9a"ã p"÷} öàzÍyÿF°Ï±¥Æ“21ƒ…O¥¹Åîê¸\‡ù˜Õ~´ÇsB°’‚Ÿ¿‡Š+ŒóÊUHÊÝ þõ³‚%Øøl„ »¨ê´ªØQÂJ7º*öøøAGm?FÖÞ“ã¼»sƒƒ£\”ÑÀ‹Dcã¹Iø¨uÌÈò™ëˆÚ¸ sx>!Xꈅ‚ÛcÜz`ìòÿbä + !‡:JE4œë(–ÐÍØa9’ªÁªNÝ‹ÂV0\x¿a‚LÕŸ]ç›çò`jÔ}Ö~ÿH…øóá·ýI}ÿ{ùÆâWùFæ Š}z¡¢yÖ›`›&k¿àL*piUûë¼ í÷|¥¢ ?`¿F ‡à:™„1ì[oÏgižåSW-ÄZx¸{KMï+ßÓ›O:~y ñ»(~ÇPM¿õDooã$(9ÐÙ2 г+ùDN¸î  pޝiÓÒø  É@ç"x82mù%áƒNÊ9ºó „E4š¼aåqíjdÀa&PXîÒtÃ¥1Žë&F-/sRnK©ÑîÊ&ªŠ ö=~êÛ@o?lnvT³îóí¿‰oÊþ\°ú³6x­Ó…é#œœàkÌîºÏêâà ØäÆy#NçåË Éç…¸MüTùýSÙ¾M~yl¨òa§†Èú¹‚Б‰X¨žÉBˆr\«†f9$ e®¿lÚ¥9«Œ‰b$| x6»d¹—Y Å`à'jÅÈR´ôk(?½~HñúMC­¦øúi…Ëßx¾vÕ†PvýZš«¤i…sdÞ=&Qž‡éY~*NS‚¡ä‰¬„¼nß[{¢6¯ãÄN»£³#úšéö‹w_E©›ÔÁyXØ@ε‘eÆ`-kHn§kÙ­NúýjÆÁ^_´[–yØí°ÇVµš!?†’ƒßÀ2NøÈ¯#Pky£³©Ì7T¬ñX;› \y+p3ø¡„ÛOS å€\ž÷2lŠ9910'7çyñÃÜ­§liŵ_¹«Ÿlê3Ò–_6=º'7–<… ”6mÈœx¨ÒL‚É26üsB3X„K ‘>•mt|þâŠQ^ á²àƒ{°âų1/ÓÛ0hÑ DÿßU…™di 8úu×`—žƒóó‡<4¯9PrW®¡^ è+MfNA€Ùãµ§¢õ$ãÓBÜ:JdŽŒnµûå®uUHýÁÙÃ)ãœS@ÆcÛ°ƒÔ¤JÏ(hW%ð26"ù_h8T6¹³7Ê"kÒºG‚rnÁ9¨Ä²l™0k÷&„€k`ðþDª· «4å>±@ƒ_çŠ"ï×]?ƒY4ü£»¾vlÄh?õP<É|U^¿µ»Î>†O  ô›'ú–p!¿‰¸ŸÞ…¡Ÿ8©hXè4Æ·ÉQ©Ip\Wî·Y¼Dƒ!,¸¥ æ*¨—È‚8”mr±3®‡ˆ„ä‘!$ïâÐ#úñ^‡%Ì5˜Â¾;BV°IýÙãÎ*¶†tš·qÀðÅÎðÓ¢ 7Ô™A ô=?AÚãÑ:ÓîÑ·üðŒ=\Ê¿0÷î_&ëx¿<âVŸ­švÃ&lÇÅ O–Qøðd@zŸ$¹OÒ”è9" DnÏ]ŒÅŸÉ(‰Jžt-'šJÔ´^gz¤:«\I‡a2›§_N”_¿~ñúõe–×HÅo˜Dï§Ý¤ÐÊ/Ÿ)oßEb¿Dm3ï#µ_"·<Îý95K¹®)< J½s]§M(¢•ަ™ÐN+éo¿¢ÒaÑ[½NZ¨—ùûÛ«Áßÿëlendstream endobj 1313 0 obj 3968 endobj 1318 0 obj <> stream xœÅZQã¶~÷¯à¡9œÜ®y")ŠRP\‹y ®h.Ù¦(nû •i¯ÙòJòî%8èKÑ×ô¹/9´¤¿¬3”hK–LÛ—krì®$ê›ápæ›´ï‰Oññû;]Mž*E–ÕÄ'ËÉý„™Ç¤ý•®Èï®aˆ‚0F®“æ=F¢€¨0"׫‰wsóÝÍÍôú¯ÉvœÂ×ó‰÷Ãv³Ñå;²*ʹ^פʖëfðt£gŒ›ñ€öö8Ük˜rI}†Þãø/ן¹]ŽÎ‹ím®É{øëvØâþ¿Ÿ¸ð7e(Iš"X±&U­W:×W¤.³<'EIº\%uBn5zÐ8âÜ{$7ž5Ìy‹ËY@U¬Ú˜üêÐ,ó©àQÜ>&1 )‹n¦ƒñð°3ê}UƒûI]yQ»cMπɪ*[d•”_»Á>v…5[OŸú>¼‡)ÃÉÈÓ%Dz»\A¨Á&›¢ÊÌÅ·.j]á"äÙZWWd$¼’2^^~$¼A »sqNfULÁðád†SÙnv“È “6I:: KÊý? R)º³˜¹V·È³¹ ,Ñ«Í]ReÕküÂxW”Ù·Ì?'z¾¼÷™‹ò !QйM Ð›ÒtÃ%ƒ Ê[¸_·ÏbûjÁ±µ¶>|URÙ>zqh´ÿæp "¦QÌ­á–SÖÛÕ­.ÉÀ %hà‹sÜ@¢i<Ù§§!Sü’R#)4 ân$KW!$åFC)xËeÖ2„›y“r~yÌê;(%C²1cÞãúqßa aôœ$eÙ>T‘÷xÒúö=¬o7Æd¤¤:0)Ó&ÓÓ­¸"-¶›\Ï¡×$S,ÉxÜ#–‘ÆÂ|H—(:sÁ%i0¶ÞQ@#¦:â(DLßR“l>çß$6ä5¨Jw5:×¼‚®º^š5¶í ûmµ(§,¾ aq¦H¼ŠyÉšÜißLÏÉ»…ËÛÍo¼M²­4 &·-ÁCô»ë€3>eÉ).†¦ aš Îõ KÇ -Kh1 ˆsE–ÏÏi  Ê“u­›^ᆽs 7Ä$£Iϰ¦%;™ô" ~pn£<–ô(„êöÉ•#«¤ºßê2™·!roäÓ0`P/c¥2w+±pVÍ*)šfe Z¸h¢ÖËÕÒz{—”«b¥`ÒW•³LEi“Â(b[¯B@½žBvÐîx»qçXõèŒË㔡̔ÂK6]w³R§F—!aéd5š^RÐ(<—Scª¨K/š´·’U>€að3ÈA{9’ëõ²¾Óíçö›¡"æÀö¢Â©H6Tu5R§”É%Õ1ªmQÀùQ/¨³C0*þ§*X ÷Q­@×® ª¨«Ô~Þ úŠª~P]LØ0wÓ ýÜxéê+ûVÏ¡“a±Ýéd>¦NØò³yÛ¨Ó1ŠäÒ§²GÜÕÆµÃÙ”èN +2wsJí@©·å‰‹Úy^qlã Ï@»©³vÈoÏœGœð­ü…Ë9ƒpÕ¬iB*ès€Ò( AS9éìGç[äIݱ…½¤¢“Æžžol@¬a_ú^ÓrnZù ;ýÛ¶#âFä¸f­ }žd}8Ùþ¯HšäÑC#VEˆy•¥»ýw»SvÛùÊe'iÏî®Bo©¯H±j{°!|ko\ÖÒdêœÌõÂ4q& bÛ¼&Ú|]UÍÙа{ƒ£‚_B2œíH&–$æ5B,V”K`Ø‹ãÐ'û ¡k7›m.bäMŸ6M¾SÔ, T[ð€ÆfœÄ!œ²Pɨ7ÿ94 (‹:š50fAÑP7XÞ'¢E±z%ˆC°¯î­™ƒ¨EqTÐfäg8Ä@¿„‹—Ógg™wz­Bø8wÙÆgÙ9ïו:˜½O W‚æÅWcàB‚4ƒž-öàoÏ ,@Ccj^ûÃqh(ú=ô˜ããÐ;¯¿KÁ¢C¯G݆Š}.ž>€‡$ã]×çï:'Ì×#ªÌ¨°Ån/_Œ;®ÂNëwÝCçÇw#[ð€B6™ÿƒ&U|e=§“è±Ôíy… Ù™Äo†V•"B=ߌH…1t%|FX߀@³6áGða ôe?H³cÑ·£^~$pß{×Öí¥ct€úâjvŠ´ÙFäCáM_uø¡ß Ûòf©þeØJakD.Ýeèoñþ,ðíé“ ÿJR-'=Jê9/¨"'Ï`]æ+yº9ç\ÞÂD†7k:„‹–ÒLMAÀ”߃‰=£}ß'¸3.›€¼DÜg;.Å¿Í~©Æ4梭ïÖùùQï9Œä°=æý~:ï£"#ÞoÞcIýbÿïK½÷¡áD¼ã=¦ýühÚ[Ó^ê êHq…<Ó–Æzq.´mµÝ-“…f4œFïmëØŸQ¨Ýöufóâñ¼ Œm&°’r‚°ñ©b~£ÔÀø, 2nØUQiÇ%3s†¹<Þ»zNŒ†P3Ê ‡ýmÄ2ìÉ…o¶¶‡–Ÿ™Þ1÷¡éN$.8²Þn 6ÉâèYnÜ-sù÷#«‹¯Z1™tÏâ+Ôé-‡„¯bìÚz·?xi„;Í\!?vfUé‡`á@b¥Œ±p*±aᎄ®òàý4ç ó1Ù­S=öën'ý¦OîËû·†‹°M¾4WÏ~Þ|ƒ^GfÚ=ÄcŒSÍÇvQ³ZŸ^O^p(7Ž^Á ª±(Bì…CvƒC0Ÿâ» ™âæ2Ç7cÊ:ƒí¥j‡6fÒÉâø÷Z:~·_laJ↠Ú|¿Ev—ïH›‹`Ò¸°ë‚tX_,0¾£C!CÞ•Òúˆ”nêä|6[Ç=|ú®{ˆ3Æv=-Û÷þ1ºÁÀÔ9Ä&g*ÑpC¬Íî²Øûé˜àS!®äPÔµýÑÛ(8.²m[Ø3‡mabcû釞÷îܲ· a²Ã‰Ñê€ýðrˆ+¨ˆ¥èlröá2Ø?Æòö«ó`Í-¼þ“)P†Ÿ´áÑÍncú!:B÷Dx`vªÙÐü¾(õt[]û‘Wß%k{{ÅÚ>â¡W,Ú¿Ó•}ÄB/½KÊ$­uioÅ^¥ï·zêÊ¢I> stream xœ¥Ë’ã¶ñ>_ÁTá$.Á7S.œ§Svʉ'åJ| $JC¯DjIjwÇs‹¿ —äSòeé'I3»®JÍat£hôzÄ‘ bü“ÿëÃÍ«¿e즛8ØÝ¼¹1äßú|v(ešÆ÷Û^g‚* Ê¢ î7áÏwËet·\ÞÞ‡Ôª\PKĽßÜ„Óܬ×Í<M¿ æ¶?Íã:²w€|gB_.ç1˜6/|ç±Ûï‰Ü4·‡`3Ü&y›² ßõ·ßÞÿéæ®J^¥imxÉ'‹ê*œ–?³<|{kð+¯Âv¼M먮‹:\ÜÞ¥yåyj·.3iSwÓÔ'ËÂuÓ÷ìkòpÕê’ð4µ‡8»v~Ö9m­ #ÇúÏÃÜNêc3;`3¶nK‡f|}kâ(ŽbÉ#–·~76koMOÔQT(õ/nîù€Û¾½K 홾³pØê´ã³Ä@LOŠ`Â}ÛïæG7þ§û„ãݸœ8+ýpeö›dEƒ¼›[ƒ÷Òõ.G7P‡óàpWÞü›Ó³ ÇÉ¡£¢'áÔ:\’ ØLu¾$Ò5eøÕ—߸E«¶9Xz*Q©HTïàV[’/Jö8€†¬ö-Ί$‚‹¾±ð7°D%ž,ÅÍŸ¥òàa¦i p¨ÃA‡\õóf¨ž6NG=K,u°Ü"UjªJý é:h3³g™®.¦(£Êd•½˜õ3÷’DU^* zâ‹0bª¨Îw¹¡ñÀŽL§8gv4`Cƒ=¾oc·Ñ…F,‘7í-¬ªKˆ§ý,ç®ôzÉ(÷Í5Ó®_Ñ3h=œŽ{ÙrO&.}Ö“ÝáÙÞ; |&M¢¬LvÀ¡«N£"MÃ%\@«¢7™È$­¢*MT®¼‹o/%—ÂUÖ.–·‘#Ë7Œƒ<œàl{Ë2ç€Irû§•‚ [û¡wÃá8wC?éâRŽHÀ½ûVÉa$ï(êÈêùÑ£ì_ÖÜ­ÁWÊ&øÚC‹ž‘± ú\’^YD¥¼Fs‘æ´CÄ·Ê?OÁ2¥5c¹Te”ª\Â_]J LD[ 8¨£"2 ðîêØ%upG£©Ê7¤ÌÁVÔÓМ0zú®ÂF‘jP¡aߺáªePçà+§Ù‘ë”t6Zo4³ÍWÙ™º-”RÉW©„¾;Y²`רè*Ö|åbù—Od~lMד]0¸þ ’HâR<ÑÜ(q/^ƒ•ì‡áµ «: ‡ÍF`¦Ò¤Š@5ïG,5FÌÙ¿Ä„kPˆ±Ý8àã0vß %ûý“òŽßŽ®\ cˆ8•ˆ‡$‘€¾}Æ0¿Ðù–œ¾Ç¾96¤æ÷ÍU7Ê@FŒpM‹ÈgÑ€´U`Ù¬¤K³ðÝ3ìK %¶Li¯ØC‰Jpe_~”ýéHËõ!LgµÊÏž©}ÁjÛµ”˜h™¤’Þ‰ÍÅžr–Ò—Ñ…$Lj”W¤äŽ6é;-<­fŽ¢Ô<¨C·Ú¦´U ª¦×tkÔ®ƒtÒ䢿<â.}§š7ã ñõ—g¤EZˆþ ûÉÝúQ†q!ýFáÞiùI1(;êÛu;MÍh§Ré3)íS2íS2Lú”È« à‚b7YZµ"6 -¥ÓlšH ‘#|km‚ßY®¢#HùB•)z†m×+½+Ò¨*ëè]iûY,,âVëû í°”þø0žâôp™¨¯ïÀ ê $Î@¹©3X(FâK‚‹ÃÑBEˆñêDO²1µ¿WíÞË0djήµi1eg ‹¬£Â÷ÌÓ0Bíl2ϸ_¹á׳³‘<ÏÂ7îÝà`hœ9~£"X%EŸ 6[ÛfØ‚²'K¹‰Ÿ…9ßu1™²ªÄZèYu•¥QZ½è–în̈ªJp Üø–(ˆ> á! h¿!Ž­tmÔÆgð‹a\u\8?DSÕР®¥ÊôÛ«HŸ™(ˬFâ¾Iê4=ã Å>—v?¾Q!åá3ÒS)i—$P®%'IY–^rR_öh^ø±´Ä¶þ?§+¾¸°ÏâïÊ>ˆÉ ¦ƒ|ƒ²XÖq’]¼ËÒ½Cv٠Ѷ g„ž…cæ”ékT¾_·ÇÙÍÏc{ Ìq¤OGOUŸ­ººàÇEü.ópßng7òVVivsä€÷Ýå3¬6èÐÛnÈÓ¼þêI¿KûŠp©ûPPf£ˆî¿:} ±°¸ÌÌ¡d¯ k7¯6ÿÇÚýËkmÏb»rîeTÄ–Ðø 5*5°†æx°Ü†’%šMÂí°ßËëUU‡ï4Q­ AóåÚ¸éþtX¡7çËHmZŠ,èeuZx<·³Å¯K Š"¹;w(Äâھπ¬!‰Õ®ÎË.ß¶0 pC¤Y.£W§l¹ vËåöÕÉÄ×}®;‡ÿÀZv—Âá1ˆ€ö½oGê@"ÂÅØtœxÉXšÒ0Èjÿ·D(íœuÀž›–¥aæ>YN2.íy#Уž{—¸gô 8» éÂ:ü½õˆev5PdgâÖE0î¼kc=æÕ@*+$Ò |î!‰Ñ^pSü°D(¹¼DÿHù¾ÌÐH ÈYŸ™ÑR øÜ½ož÷ö§îûÖR¢"?³ìœÒ‹Ù–òý’“„Oί1²²é­Èlnc> j@:sâÍ‘>æLû"Ò @«ÆJý9!IžVö''Uø4?rÂs¢Þî'ÊQbNñERvƺܹ{Rö….Ïé½×ö=_Hu“’°Ý÷v‡¹—ƒaduó2З/P²iEØk7ƒº«Ø¤ÝOCàˆ¢ ºy{, Á˜OÈR<¶t3^šˆ™p°UgaG¯µ€ÀÙå9ïgN Œÿ^ϲÈé×K, 6$­%‚wûn~’ÉBnl»9¬ºÝɳDÄ;Ī4ìz0rõÕÜÒ³Ç]תeN?b-ÈéwKjå2ƒE¼=#¢5SÞ×.ü©¦÷ÊHLR»n,d˜J ÂïL;°¥‰„ÞùøAP*I‘ÚÈ'þfßL‘Ž!i¸-±Amp“g?Ø6ÇÐmq0žI÷™ÕþÞªë½èu—qK~ô>NT:³j·Ãh‰á ¶ÖQX—Ñfy‹¯?qbI"Ÿ‰ ×ou ¥’6!Þ½Ú^»´À¾A}Vð!]ÐÞõ0bª¼Ð™ô¼ tõ+”<ª¯í«ò²½ ¤žq ‚Ž”á¯D@¾ʯ €oˆ´JÕôب@óòdB?Øj{‡Ó(Nž:6ˆòÏ„ÒÙå½6â‹ø®_xsk}ËyEH¹ˆüÂJ|C†~<Á§¬Äp)®?nbí×.‹Ã÷‰(¿ž›·m°½˰æg·ßÝßüþþ8´£Uendstream endobj 1335 0 obj 3804 endobj 1339 0 obj <> stream xœXÝn㸾ÏSp¯†.bEÔ¿‹E1ÓE»EQ S£7ñ\È6¨£$'™¢oÐvß¡}”>Y¿sHJŠ=Nf_Däáùáùçù$|O Ÿ~öÿ¶¾ºyŸ¤©¸ë¯|qwõéJ1XØÛZ¼]Ñ‘,J‰ÕþÊà)‘"M2±ª¯nåjÆžïǹìtÝVíbF¹™¬‹îcÙÜõv'Žåp¯ë^W yygR;`ËmÑØE˜Èž¾ëv¡ˆ> fF˜»éÀñà¾3Y43À®]±|l® ¼P9xƒßq˜v›v¶¨ôÞ­¢X¶Ý$bWÞÝÞ´^Ý;1£”hCÙ6“,UÛ~ìV¿¿RXýájõ«[¹m›ý±‡Z Sg^”'2ñ.Ä({û ÚÀêË~ÐÍð½;Ê=‰f¡ÔF3™|*êC¥¯™íÍû4 í²ÄK£ö[í®äo×ë››c´^/V}fbˆeAfŽÝÊþ ·å/Ú‰’D²pr+Iרôœ±Ø»p‚:¦ ½`SC;d›:ÄÍçé;â‹-ƒ0ñ‚ KÒ,îshËfè={›4³· R/ËüÜ)?÷€å‹·]±5*W™ü¨\CÛ-´Û øh»¦¨ie•8i'ð*G}\(ßóU*õ@Μ^å²è´]$©ìÛLjíàPݱgæ•Zw6e³+·Å0bC)åÐveQMÈVVÇ-²NÏÐLŽÒ{#Ÿ÷Äà(P˹ÐîSöúÓQ7[w.EìOy”«"ëÄ9N¥ò¬(lN$º¿ž9¼Èâ7ÞÉè8¢™É†¾Yã-¾‚ÊG¸JWÐÝÜÙˆ¼¯™0u±½Ÿ`¤fÊ åîHª5ûËéM¬W£˜)Å[UQBÁí ¬Ç%+„TÿÁ©Œ<;°¢óÂHNŸpncq€ª÷‹ÊÀȪà ™ÛÚ\bN¤¤û k»Xwœ|O8"ŠÓ–=?#®.PßÇq¤˜¨îuWCqmw«ê¶ÛÍàv ²¡+«êzTFÛ‰áØ5×bh…sf1™- «(â¾?ÏPX Q›˜¾YËÓìºüuèôVï´x,‡{Ĭhº¡0> ð\ÙÒàNä—@véâæöåÛ‹¤ûOG?»ÊÙ5žñY/.3:ñ'ËPl«¶?½Ê‹<>üß,ήd‚êev›‹FA ƒ°†Ù'áõËvx{YöµS9³46ù–kA„2À‰õ€1‡ 'JärÑß·Ý 4×å¶8¾îz»7ëµçÝlÖk!´ù^ËùbA‹»õzyó_·wÌc‘y1ô">ÀV PüŽŽ(”#{[ m-!xž&q"R´Ø\à_‹#<ÿ],ãŒòi.1 8ô²=Û2Fò-tž!g ²?G:gx)™,öR‹3G‡I“D,Ý…þÁwt»!T@»+ÚM¼$„ ·ùO³™'ð9‘xoþšÉ¦¤;ëïìß"ñ}ùΕ㱼/UÈz=´±Öø\ã•x¯™g猟äò ‘Ý÷È{‚ÊÔ«Å‹&p“ù?+ L85ów¬L³Ë0²mŸK%J¥#›šÏ€Ð4»–üYu Ý …sú(ê½ãØJpí6 ïK'Ji³-æÄ9v­ÞnÚ¡¾Ë}ß•œFŒ®wsIN:Sž ÿ¤ñþs3OuF´¤&v_"Ï> nî¥PE5µ/£42þr‹X\¯? Î7b+v§©dÉç}]^d|ce4áǨçÑ\NN B/‘c¯ÇƒÊŽqb5Ï`47-kT{nãŽ!ñžÕúÖ*†Ö›ðæ2†(ÀªéH*–åŒ]UÖå0’#ÙÚ sjù´íù‚ÆŸíç^Æp±©ˆS'åBÍËIèx Y}Ûû†C3Ó êöÿ,Šb¯ãbƒä½]ûªèQ (—“7 ¼g†Y`ð嬬Œ©½Sã&®è8ž•™d*3Þ«è%nW¿Hcy‘jLù7\¨¨p×î%?~ G½»Óö=ò±‡KÄðj«á²×\æ‘Ƨ–îôc–Åy•ŸÿËeâîˆBFY^ÞékîăkI¿žÅ›‹Êø7Œ‚²ÝîIŸÿù U´IuÔæ¬%œ´n›rëÚ±/“9Ë 3Ligš)…÷Ä#<+.¯Z+Žñ—î{|•úñÀ$ƒ×Ig$½Ä^ü ÊÄâ–+ nN1ÑN8i~DrH2幇¦hŽõéàW1ó)@‘ÓòüUšÎñg·PQèå~8u‚—#”§ ÂŒR^0âÍeJ»ö¸ù&J—IÁ`‡o õÝEB‡ã0Î^Mâåº÷7å…›¢Ô¥Â[ùÇ–Ç~ä…‰›±˜Uæªxdº!K͇,5¿ BêÊ‚Yœ>L¡'  z2öî°:al:ZÄx¡šé ú¡zdeUlªQ°Ì<7Ýbš\¹"ã™ÂÙOLF¾O^ð®rÙŠ¤<3£n‡g{´V~l^äËÆ¹]ÑXijKd¶Õ"¥+ unÝQnu娅üRfPжpìTϲÇnfFbV 'f¦·3TyVroF GZ7nÃÌQ'09Çj71ÞèQc×Ì=€ÀÄSy0‘æ "ÆÝ˜]ÓlòÄ%xªD0¸Ë;VG妞Œ»“èSëÔ·ÂFOmÑu¥é6ÍFËYKÄx/B9'x:¸1û!Û}B7«ÔºhL³Ní‡í>?‹ vCÄ-Þ<ï<üZ³SPùt1ÍÞJOüÜ0ÑÙS›êåóÓ™ìÄü7ô<= éÓ …¬ßR®—AÎÛߥò}/T®):é×ë'¼E!‰¸òÅŽØ¥‘ŸÆx»1ºX,£ˆœ%è*ëÞ.ÉÍÉ! ,•‡®Ý,E4ÆOå¾kk·Rv|Ϋ,â–Ô@Âq|î`ôÂ2<27–Œh¾5±‹O¢ÈQ"ïpTêv<þ˜¦x£)–\@ìôžyšËâXAý×âLÑQâ…R_a}a2õ¾ºÜtmTá<&¥·Žˆ”è)øEq·à«!R ôÃ< |d¡BEºÞÙ—Ï2¼œÄXùqÎÒ’&P4ËÏÇò‚¬qZîžÑ±}GË?Ń»b(Ð å¦ úiuõ'üþE`¯7endstream endobj 1340 0 obj 2393 endobj 1343 0 obj <> stream xœË’ã¶ñ>_Á›¡x†ø™œœ”“8•ÍÞ*V>p$j†¶DjIjgç#숿4ýHifãšÚZ4€F7ý¦>DëØFkü“ÿ·Ç›ß[8=Ž7ëèñæÃ¥åHþÛ£?ÝÓ–2²6ºßß0ž\¹¢Šî7¦Š‹8I¢ï¦æšîqzW÷?"V™ VþãæþwïÍýS³ºKò$ΓÊtý¤PZšþ4µ}'p^šmßí8µÝ£Ì¦ßË0sfò'¥•94ÓÔ ãê‡û¿u—¦Ê³s±³ð}¿»1ãá’;›Ç•+-¯¿7ûþpèWI¯×eež›RpæáE9s¦Öanºóñ¡ôJ¥iGE1Ǧî€ùýùà§öýxÆÛ‡ÝãS?Lþ¤,ƒûÕÝçÎVi\TItgfègëu\€ÐÆæØ> Í*ÉâªÌróqeqâkâ°ë›IÆ`œšmû R¦x†ÙqüˆMGBçukiÞ \^,ïý2½‰Îãý~]å L[˜1ÊâYc}PÖT˜o°Êç£HP¬Oõ±?wp»4Ëbë z&??µÛ'sfNäB ÂѫѸ,ÌÔ˸ỄÇÈÌÞã±ÙýQWsêÇvjYô .3Ñ,¾Ò8;¦>º^-~èv?ëq…Ú謩‘Tþ•ÂSAÙ0…(¼T¼úbi I‰ÓÌ–dõf3Ò8Ûl¢èÇw6N6›KS¹óx‰¨áýÉ--€ŸÂË ÛOõñt@îR¬'þŽ£NUò„™é[ wGuÒ±lsæ—aœ;¿Áè9?¹¬À5pêÛnR«ÂÔÝŽOÙ(?6™ó“ÿ~d[jG2GMD62ë@‡J ³ë„5ÿ~÷½®2ÇVáߦjÝš›cÛµÇóQ×TVº“%H=È#”æYóób zêŠé(²‚œÚÇ®š]fîÅî@À™²>x)G#©XЕ"‹¨Ô­>5õŽÝ¸[ƒo³f×ÍVL§JÓ¥RÓ¦¼=îð0[õÞ)”½ò¹©šç5E·’¨ug}žú#˜Ñ¶>^dº°‹äNaQB”.Ó]=.zb­ö.šwVä*ÚNÆN”ˆkþû<ôÝã¯2QªdzÝ_9ó³M»×!Z…ÂÊŒ™yªO'u(L4ßë…?̫ʧӡݶžÙÔÔ»Ïãtlü@gçêÝŽ òSΜ]-õâ¾ó&B‚¶ýñtžš]ô‘#-¼}8C¸ÂmÞ1±{ÿo\Vè)ê–%(Œ> Í—ü ²$Œâ¸P~¥ääqìü¬±¡-Õlí¨>Ò‰DîC5l{ªÇ°¯fÔØ4RÓT¾$|Üê§/X¢xQZ•&¡Ú"k3;H/¢!G$Tž4) „æì½pœ¨÷B §z€B á3V¬Êü­ç—$½–g «´BÿZ™[ÁJA!']‰Ÿ%©´ ¤V„ ç=ûQý¢Û!Ú5õø À§…wÓË c镸ŒàìÒjÍ =?õcvÒû©ªÖÛéÌn"ÛN‹ÄìHÏÀ£"М}ç )‰tžïð¦ô•Gã¥Ò?W,3°å+=“‰B>Ç.Dä@‘(Ûm Œ )ª¶3žæh¤n~áOòx‡û•]£Í9¼Ôõ31Í‚ÜîâÒæ…ºÿè3î>Vd_fÜ)68’¸Ì8G¡B#ÞÕ#8ø¢IÄFùùrã/L)ã$6qüvÎy%¾Od¦Ù“+²f|Ž2ư‘ŒAâ2AÓ9Ź•%|‡¡9ö‡Þ㢅MÏ ‡œ°Þ‰ võsØŠº|)ôÄ•q™f*Ã÷Ó°‚`\UàˆÒµÔ³4våÚ×2›•ÞÏöî–ʪvÆÃØ›©=z¶`ë®Û¡~84z7R ri’Ä0‚Ü@A.MË8A‡/ÃÒ'h€å y…=N~§V¼ÐwŸÿ©åL ÑSм`ÍéPou_^Í€èDŸÀ^2ÒË‚œ‘`í=áËYšŠTž}n‡~Ú>5þnÀx‡z¨-(JÎõÊ¢™&Kg \Í A쥧j•ÑÚ‹¼¨ÈcxßÀ Mˆu\‡}Ÿ/ yW*aƒ>œO'H€Æ0#A ¡ÔÊÃð’¬´´Hr¨GRoøG6W8'—j[$±sNQfœaÑJc+Q]Æ’ä5Ê 8|*Î&³Èmë®xüÌåÒ8^U:˜RZº è¤‚Ø+¨J (8éY`¸±EhN9h¼$i ­K<4Ûp&W&¸Ñ¦ó@íå4ƒÂyNmLVP(àew6ACâØí ðL~¹’B™(zÖc9hNq¼(3xÛL_üZ”$\‘èë^Ê‘ÜJ šÛY{c„ä k[°£µ†=—öp¶„„ºedlÞ@érD×`𺱗pÃp9‡Ýh} °ü¦½ŒUg©ex¹ÃÑÜ9àÓÆóÃ8µÓyjÂ\­ì§æï9µ¡é”^’ëà ^N“ò·@œzë8ƒ°&M ’ÏÒ?œQ‰ãÔ-·*„r¹¢’¡ÉB½÷Ý0 …¼11ß?5J s’0ôrR nAÀÛï­¢¤X Èróó#Ö5ÝD¯¾C®’Š“Z® HR® +Nç®A¦ž[ʳnuI¬ŽŒk+§9‡ËŠÓ_ò<2¢Qô E¨»Š9{Ù…žŒÓ~œÉSÃÞ} YëÌ!w¯3¾LŽí‡ö±í(m ü4¯“â{©¹óê é*>´‡vz‘‰¤”"Æ9¡¾Âåâ5d¯;êa¼÷O>5mt>Ï$ë((Ó€D¾¥î&­ÍéåšF(XCÝŽcÝm•a x<ívvtÐ'1Lí¦—ƒ‚;ÈëËbðÁ|ç¦#k¢:z¨‡è~$!6ê÷0;µM4õ0Ààž¬qvF@?†]n>Mx”&~%æ,»nýr³y÷å—×}¶"WoIr‘/‰âÕ2Š/Ù\„û‹vä%3w@DÜ­y¼ÛlŽ¿‰ ÍŠ–tY*à8×n™ò|–h ·›¨§ÙEçž »Ô [’–Ÿ­Ñio„KÆŸ!:?ò‰üÖþ®¨AýyŠfÚ¨%RwµÜùz%ÅÝŠr¦•8ß°(ɾ´E‘gÒh¸U8óM’ÚWþ“Âi0ÓŠ2é¡Ý²³Ã9I•ù¤YoBZf¨7Ì) *–¤¯9æžà=ëö µ€\k–^:ü²UB§.x#ë–Õº‰“B;/ø}”[Ö(l.Ÿ×¿.¿ÙÉN‚*ƒVEwÑî‹»WØx»Ü•ò^u\[ê"QŒhíò×*=Z*5â"PUÚ—¦¥Ä_C×¥õAc«¡@IVœÃèXOa±Ä ææÝ<šÊœÄ9ŸK$‡)J3QªÔãÑ·%xöÅDqüy=4à-në*yÔV‘3i2Ä ——í¢ëP·h1–¥ »ë¢¢„[%>‡|ìÙ[gH—åD’Ûi©»w¡Ô†o}i?¼ay9«}@®~×f‹¦>ýùD©e^@eéô{A•Š˜¹6:︧1¼ $lcKöÅXu¬åµ€sî¶à T|óôݶ«°èWBµÒIçõ,-&Z‡Ë:8Y κè1 ’ÀmàªY‚ˆLy0‚y%u,µy¡"š†³´±Ó"å^ÙZtA€¬¯¿ÕVyìÖRš£Ò‡++Î×øÝÌ¿¯¾›2ëD04q M¥÷Š•…Âü“S`ÙÍfM[Kn‰é>Ê¡e\{Rèk±Õ°ƒùØê+ÒRõv@òò磴Áb3(Ö3ó:ÁÓŒvj´Åè Æ OË uÝTK¶¸–E_:ýž‡N# dMËÏ8¡ÿÕvË5Êh» ~tleX)p¸–~½miv:.Iã­`‚{ðB;ûC (©ù9hSº$]`‹®ŠoªGÒ}Á™1t®í$¥‹úyCÙÐ])îxш…ic%EÎZÆÓyèCdb´ŠM¿ ÀdMA@+YÅ7”W•‡ö±jøÓ9<ôÓJ‚:¤jÍcËÅ+u¦oá”ZGǑ’ó^­2G ­qÆ ¾€¢Îî;Ûfð§湋ê)ÒÒtÄŒ™3münì0¼Gõ8öÛ[”qE,#)ß_×g¤A*GÆÏ˜›¡ôÀ. Çþ˜_s¸3ÅÆ†„má›–iêE0¸êù¯QxN„†cç{(ŒüVß©(cWª‹»þ1 hD’~æ·(|¼ön,}}«u˜ùŸO\¥ÒÂq¬@9v’2Ǫt²v¥uBm.®ßövlØÌ¶Á¯…_Íà= ù†@Âõ|.¿nဠéêë=ïµò5.?>á±»îæ()þ !àçŒ\eħ†“íXë¹WsÊ9¸ýó)ŒõÓ‘Í¿)ÜEcWPäWÔ¸'â…‘æOpJ;µ):_êÎ¥üÅ÷Ì ErôðBDýÅòc X&ýœæõêU ×o7›CöÆÏCà$­†L„;[Ä.óßÅ dÚ‚X…Ÿhᇱ‰ï¦úcíÀÃ+lþúþæ?ð÷?:îîendstream endobj 1344 0 obj 3531 endobj 1347 0 obj <> stream xœ­;í’ä¶qÿ÷)˜ü ƵÃ#’•TJ±*qÎeǶ´Uþq§Üî­rErnu¾ò¤âw^¯—n4À|ìI§ÒmÕ-@ÝîF£?°ßfE.³üïÍáæÕ—µ1Ùã|Sd7ßÞH7œù_›Cöë;œb«LÊìîá†ÖĘ́ÌÔ6»;ܼw»~^­uióZkÑ­d™7ÖTâ»öð´ïüHÙˆ§©–0³m:ôCðݪS7/Y¹ìú)™·ï‡.H^ó2-)sj§ÅˆÇnè¦v¿?-cDrß­¾¾ûíTÙÝïnî~õ†Ð^U©¼ÀÅ·‹ ¹¡* œ³b‡õ¼´Ã¶Âd-€• 9 œ{G<®¬èö· ¢v[DŒ¯¾4²dUU.mB»Û‚¬ÞLFVˆ½F0¶€ùÚ¯Œ¢Öu^4EÍ+·ýÔm–ÞÑÐÀî˜òZlÚ!vî“ã÷]9.1ÑíJ6xûŽZªc¿å¥Ø%3úá1ÙnåÃ]{°>GüãÓÒC…6î~-™+Ódk”nºsPl uzŸ¡VäÙë‡ áf.ƒn3ë‡l39÷ù¹_vÙ…\”jòBý±è\Kkyå-ÐeÝCËH IÙÇ}ëf•Jw3Tc=ÔµªU®5l]{- z“×¹ª³»•Š «ÄÔÑ^æ ”3ó”õÓÔ=¦)Æ¥Ë'’VaÄx|š/È—6W¥äñ…Pk`º$!ìT ;ãø ¯m´_ Ò«­ ºüûãÜoü+þg\Z'ÕsŒ5`ldà/â7p¼à3•øÒê5âyê—nþ̨µø~eJ’Ð÷„Ì)£vºoížgKñ8¹ý‡Õÿç.ž‹q°}\¡žZ4bL„Û#Í$õTEÞ¤ê9ñ¥¼äÛ‰&ßâGÔ¥¾‚Åñ üÌ€¬ÑбÑH$ìÖƒ yÜŠyŒsñüÜþêçt¨‹kÐø»Ži³â€âëÛá‡UEÄ&cJÖS7=ñù¨ñ2þܲŽ÷ûî0ç+ƒG ÿ@ª ´€›Öó?þþϾƒfeØî;'ƒÆ๧ëŠúlÙ†ÁVÏËÔö»åaœžé€Ö`À§-XÿÚÜ[Þˆû`ËŽ Ã[·G2‚];jV»4h7ý¾_úH™{nŠ0¶]»÷šG¨Ð¾ÄáÃ8Ñ%€lñº"·Š•2÷ÀZüa踣Äfô›–#~%ÉÒúnØøÝ “;›ÝØoP(u×.ð:[ºõ»` Úý1™HFÚ`cÁzÆU´iž•âB‹ãlYS(áLO$Ðm0PøŒ3GèˆëBç²}nßãwݦæBøþÎy nš¹¶9Ž:'ÛÖx'Ã+Ù²â;PqÚöC;½çu‘—’gá:à ìQšº¬Äsh±qú¶[º ܦné¿Û‘s*)O6`ݘ=t@á<às$Ù}3àIvÝòŠÕ¢R<ïúÍŽ—‘¦àá-t-4¿cZ"ænÉ}¤øæ¿ŽÀþ¼ë†Ûl7Â,ž½3lIoæ•Ff•FÜF4'{އ{4ùŒÉY'¹4Ç!Ôu^Æžò(¨Ÿ¿Æ«ŸÖe®Ë:È» b?mÖ¦ë¶3€B?»ã⺕?KÔ1FêÌ­«_RE?If(¤Ñ‚ PrâÛˆ YVÁ¥&á0ñ mY&|É:0£3_pê½óG/ð •?›à$wä xâ-$Þl°“?„Ûõ2î6/MaØÂsaÀµnDlKd‰ï€=æï lÏy^Fñð‹æñ8lçœ?HñÅ8ÌýÖIÀ-åÐÛÖ] HûƒþýÄót_e#¼[@ËkV2Ù Ìn#÷íQ„90 _•qÁÒºÝ6ÿÕ÷aÛÑÄ8ç_^11ÀÆ[¿ˆé˜¿ªh@]㺛Øá0zïɘûïb”'ómJ~À(¯Šà*J<»ñÖ¤ Ò3¤ÌA/ˆ2ˆœ‚3@‘€C…FÀ1°< X' ’æl?Þ$Ì ÇÙ Iª2…ÄáŠiªÌæ• #t^f îLloÄ?­îþÂXí'ÕY[7AãØ˜ö…(Wÿr s 4ª°(ÑnÙ?_ƒKóN _‡èV ÀÜÄÏq¢ûŠø?‡î?Ü †•²´ˆËùø¢&üñÖñˆë¢›Š6ãzY‡Á„øï’_M^Õ5°*®©ÁIÒu¿qrU"?ÖÏý®uÀº¶膤t>èWUöˆÿþæ§F\^yCXªÅ౤¦Aµz±C7JcdLJAâ¨ÛÞÝüéFåU•=²ßÜH žL“Ue©0Z=ÄUƒö 1eÁ×I¾|ßš:ýË,î¯J×…/×½”$KµÓgÉd£@œ°Ä 'ÓeW” •?m­jAgʦÒ9,3àé—…B.(0%pJn>… €>aVðLRÒÄßÔÔK¯':¦@_^Ô1}]Åd^\ªXÄq½‰Pj Zw¦{ž”Ng•nL®€ZåuÓ8m( û#|ˆº{ÎXo¼4>Ô¨ÇkþùqeÖQ™UÔàkÍKe6¹,@¬Ô®:׿µS=0>¨ŒñKmðËþF!n§°üå«U–6ýë,pÒ¤ËøAþDV œ¤æS5XƒÑÇôÖ/¥ÁªdÆ'¨p+`v¢Áýt¸¸áª;w¹¨~%>5 „ûâgÐ_Bç. (ðå­føÀÖO뤮O¬&Ä :ýË î>µšñËÏ²šˆµª?Åj®50bêLz¡}ñþ­*—űâ Ç6¸¨kv–Æò4ã¸&ïȯuá3©˜éÔ`Î0“ïÒPÔßqx:.€A „NÛýÔºÈÐuk±ÙµðbýÙ/)*ñVlŽ“«:¸I•[óË€Õà8¿]ñ 'ÜÒÆçá·«Vx Ý°ÙsÛŸÃZ?â‚ßæxgº´Ö4uŸŒP˜æ‘µgÑIRí¨çRo}BBÒwýL )7$)·„må‚&úly”¾ïÃyž(8ƒVƒKrD¾ÿzˆí4 ˆ1KÞú>ןæS7øLœë{ÉQ¯¤¼™ó0î÷>¨à=V”¯!ê“@l@÷1ßÀéÇÂå F߆º¶˜¯ëøKé ÄNi.–:Îa"y/82”Ùs0êt® .0Òƒ|ýÒÑ3tsN)·ÇC¿,Ýö–ɶ§ø½î1ŽžráÍÏÇC·Í–1»‡0$ó©ëœ¼pÍ%©Ü PIa‡6»Ï6Þä&U pç}ÀƒYA±šƒ‘ ÛÙø-Ï!Õ1òõ°­ŽÏ΋ ‹výQ\Ï¡Ô3f/†z$¸¨ü㸫l³Þ®»õCtj®R†Ñ?,¼ú’„¦+Ö‡aoįYªrÛX±í(­Ý˜F´Ç=Y9°é*˜@è€ 9´d¼ œ 2&ø]“Œ]m-|sv?ß-8_å;sÿ׎ѳ™"'Ó.šW;Ç‹Ú%’ÜÏqä¾s?à=Þoû^}×oQC¨ÜúÚ'&.jA©uNJt¾¦,œ‘Š1”B§v‚À›CJâã¨ÿýã)QÊW0Þ>¡aœ¶«âÒ,¥s6`á|ÑTgðc®ÎàØX9;-u´t;¸Ša`ÌÜlLcg‡ö}†µ<ʘ Îî@Ù|ñ”m: Ò…TC":®9bº¡Ÿ?»8Ç?FÓ¾8˜û·˜£ÇFC%„`– ‡âÕË+‡ó•à¾ø¡ìüèÅUÿv P:àsæ9ÏósZÒnhÖ¿Ÿ£>rqò×¶ÇÌX:³è‰»CKÕcsmeL?»¾?EÖõpÙ[w½¸Ì$¶CºÙuªkwPñˆY—!ïçÄs÷•q‰5ÑSÞÆÞºR®cJW¥¼€~~eÕ©x# ЊRÆ üf–iÜóîª:Ù‘‘Á²œ±¤J÷]ŸoŽíÑØ'œ#ûá,¨ªJ“¢.{>F‘%ñ+_¯.v á_YÉw‰î¿ŽÕï·TÏuð  «Ac Á¼oç:Ž4jÉqä©É-_”K§Ó`ì‰Íê::Sn…I bîePŒ:%¶‹‘aå46ý­â\]¼Ux—¢•ñåE"¡Ÿ#úÍü[¦´ðâq2¨0ª„H#È€Šn°ëé›9{îö{¼±(QA$s¶í3_¨`/ö«µ)ÁÛ… ]‘”‚ À*û’b£Kh Í’"m1pó(òÄ¡ wË“7õòõGlêÄ¡à ¤®nãœò6ŽØ¤-ë·«Û ª%(ÆÑ/Ÿ"]5ex$tvãó&ŠÊÇÆÝ³ÎƒÉuöç8'”ø3…s¹´ðø¼#˜„*B!çë<6ƒÓVÉ2ˆ xÕÙÃ!†â Ôº, JMò4èÛcŸ<Èrš× :¤DB`¬u鹄¡¿:ç#̧wF\­rÃ÷ÉU‡R{¥î²—  ³¹–(MÔòx?÷3-m/ŒŽ:èØœ G¨DáÚè$$jv§àã×~™Cqqð/ø£U°Åª3ucÏeÙ`¶Æ^Êò\”;(é¹—Q,½8y¹ôîe.AÍ7ÓõÊåRÖ¥”yÕÔÁ÷þˆãmT¸þIV¶Ìë(¨ÿX­KLØ4Ö¯Ô£‹–Ú n®·a%)0áÄÞ\îqS½Ì£Žu/ó¸Ía3¯§¸hÞÓ놪hai›8iXæä•)ýþ ¡j•˜ÁdÔýýZü¯ Äq:Ëœ?2õ¯º¬¤r©kcy<~¦‡Ta^ðe\¼{ºì°׊çIY$ïzhÕ3œŸ®åu…IЩˆNñKªÿì Ã;AËì®èy–Èã<ÿrI»‹ë0nû¿â ~Šã©=~\vsp³ÁuŽ/føÉ‚/¼µsÆ© $M‹ç‹Kí­èȨ‡k_c\>ÌÓ›¿t³Ù¼.În6eU^ÖÆ×h]Ïùîù(öt#Ô¯.ðÀåK7щ»NïüØÎwÊÀßo(Êòít"«‡#Ô?|¢‘tV<€19âV„X’a“ ]^°¬ ½‹–ÒýûK‡L‘Rò—ŠO®úÐydÓkÿ¼â€†›ÝÂæESEµvÀÐÎG|èC=ƒ>á¹ÑÄG°6š'e–„"•ÛÔ­wè ¶ ¾h¸+‹¹¼umöXÐß=㌶ý²¶Z›<{Þ]M‰0‰Nú)òãÊýé&6Ñ9éøåþé­±Þá/´ÒñšòÒi.¯m¸Þ^AoJ5?‰âíêŠm7JÍOµïD Y±çßæœþ]Àä GŸÝ—Op:>PbÛ_€Ô‰O\epá`F ËÀW¨?æÒË¢Ûžú ¥‹s/9­N8]¾ª(|]k¸!”¬¢ÓbÒðˆå‚qÓëSÙëø‰ä±´µ:{…o•ðï+n¹€o¶ÇX/89øáu’‹é”ļhÈôàÅÕd –à@ð«¥}×eÛvi³·¢ÛÁ•Û?Ýü?ô ¼endstream endobj 1348 0 obj 4605 endobj 1351 0 obj <> stream xœµ;]“ã¶‘ïó+˜¼r¸@¤]WuçÔ]b—/—©ÊÃn(‰1–Ä1Iíd’ÊO¸üû—¦?IJ£™]¯“ªh4€îFw£»ç»(‰m”àü^nÞü_Btßß$ÑýÍw7–†#ùµ>D_Þ!H‘EÖFwÛžg£à¢ÑÝáæ­ygü»Åbi›Å…3ÜÕÇhñ§»¯qbéebæãÄ0÷nscŽ‹»?Ÿ¡ÍâL†¢¦ÒÏd|œí|\ø`¦¿œžÆ.¥ ¿5QÛE‡¶«o£aWGûúx?ìú¨ÝRóØu5Gj4]W/`ÛIR˜ûÓ¾ê¢û®==DUWG‡Ó~höM½‰VOÑ;»º<”÷yœY÷QÛ2ïo.•ÇÁÙ¤ü0UbZ¦¾Œó4–¶ŒÓÌ[>íÝ®îëÅÒåEláÝi_÷ÜLBjà$Ò(ƒéOÛ¬›ú8LãC«Ã©ÙUÇÍ~·æÐöƒ"Nͺêë>–Ñ¢4ÿ³°i\>7m§PÎÔÜ[˜¿T‡‡}}«+yôVÔÞ™…žÁô´H‘Tùø· ³3³]Þ/«åj¹…ÿï—WVL‚iq¡S%A$ ` ^ âé€zŽa6ÍÂëmpæ}Ó7í¦d%ši·òé‚6¨Ô™VzkÖ];¬wõÐK—ÍMsFg€%Žäª4ï™$Yaêq‰Ô|wªÀDzÌì¢#Ê`~Ýó¨p8ÍÎg祹¶UMøÇÓ/Ÿ®¦tu­ó‹çÇ*ÏŽe?p,åÊócôßÜÜ}Æ J]ÃÁÀ•¬†zƒ%ì}Ôo‚ =œúf-c ’ýÀ‹“gké\ {ŸðÌs=ìŸ& Ù™é«ƒ¶é¡:Ðcûÿ't;¡#4¼oÆ407ÕaÕÜŸÚS?Mhf Ã®aò aºº¨×HÏ’8¤Ö|5È7r£—o‡KêwiÚ¾oVxyµ¹¦ß›z¨»CsÔa­Ç]5N/PnxµTn&7} aÑïEVåæ±vWÑ~~˜U«vœ~Æ8††»4Ù·NÕ¦XuuìoG‚á’í U+§Ý·í·Íñ~ê¨t0)E ÑÜíæ -„¾¹?VéÓ.¸¤ÙhølfŽ\¦ݨg`Ö¬ªó[Jà@–ãfšû»ÿýã4™Ô­m™¿‚h]=TÄ]<_±:Vû§~:1tÁ“D¡¨y—Ç`>XÔ¸•’\TÍ>Öá¶dÎs3ÿ®I–éU‚C±’ב”¥…b¾t£éТWwÚVÓòÅlÁÌëuÝ÷U÷¤h iÅKÒlŸ®˜dÐCá%‹bØuéÔJÔ£ìý ýº½ðÅ´qRëv3žÓ™-Ÿèò£²a¦d)ZµIצt)ÏtmŠXF]Ëð¯èZð¯ÝÇcÿÌȺ$‰³2ŒFÖ¿ ÊšYPY. O3¿¬×Õ©×óÙTÌ £S¢›rà0:t© úímp+†C9£0ŠpD:\¸jˆêj½#¯î‡EF”‡›,N:“âÆ±—¿ àúõC]mÐLß„˜í:T.¨qúÝiµoúš$v /Žè{nÑÃ8+WE\’ØVûr$@ÿãøU=)8øAëöØ7°…ã8‹­~ïØèO}{¨uµÌ€“º@_ǽºGãÄxYo÷Ó,rü¸Q¨…¥'µ£§YWº>x9âž›kÞCZ”àä±öÁï¤[Bªh†”¨\k/ì2‚ÚÕßš®> ÐÝaT™ù/ý¼æ¼ð\;[»ÔÅÛÊæ7Š»‚Ü(jk ¨0ûÍG’«h_ôa&£³Ri÷>!»‚Èé.. ~ƒÎx?€ÀuNf¬»Ø@¤N‡ñ–°ð¡éÛ‚‹RÜ¡¯žTÏ,1¡‘tB'Å6Ò)V‡¯ð .ÝyÜ(?ÒdŠ%;‡”¨ˆDŠ|¾øÅ™¢±î쥂šî—×~þ~©©—³ß’3ŒúªG ŸHVgéMÓlùÛ&Þ<µ§i`v;é&bwbcø›oNq#Ý\Øhä÷Lj7¤=“¾ Onê½ìß¹3Í~;-µð4LhNlåõ<’„qqRxÓ<&•ãQÔA%œ‹zÔŠ@1D æêÜÏŸY’‘E¨9‘ÁÖ‡ÿãÚÏGp˜eº,¼RXƒK;°Î¡opFPåëÈ.®¬ÎaœqgfzÚ+–¬ž¦µè·Ò.Q+ž ÷T^Þä zÕ26ߌuÓüW9:iŸw0…ƒWN+ oG¥±p~Õ±T²¹ _´ÙïOýÐÉã…zA3­ê};Šè£ö{T›£OòØëªj¡¸Á4À¥œÒ€'_„ú lÓôëSß3;¸9Nßâ´ p¯#Øìù ’8Ž9æ@Îxò¨=FU³Úã&Â#uþŒ¸ÑÐFt6è(DÑnvþ×BE=ÅŠà~×ÝCW“•kRfQgtO|œF`_cWc~Fáœ$N]ýIœSïϱ—;ǾÿÄ>˜Ÿ£!†Ö/ø?D¨pœ4²I,îQ¾XÚ ž¾p')(ça}aœ|eƒK"\t•ï«•ÜØÙA¸ºqI™n,ø"²q¸èÌÎûøÞëj‘xÉbO0aþûîæ÷7.βèúÕ XtTZ`T(‹³O¿÷õ)bŸÏzþZ)Ëç}0Ï— ðu>oìaÜ8ï¥à眑ý)ƒËã£4O0z…KsÑÁlæIÁûÈœ–qæ™ O ¼7Ûµ>ÐÁ9Q@ƒ°Àö<·èù,Š\EÀ½{)²¯X G €2@­—ÜàÏ~Ö{Iä'Á¡„yeû“˜=Û>bÈæo.ÂwÇKçKö ¾æ’÷r¸%H௿ ƒfH3 ë+2@À04Ào›{¶˜Ç‡‘%£”e/\¿9cAÌÊ›KÏ·†¸à³àõöá{<¥ ãsÒ»$Ï¡èŒûÎ= ±ý8™xNT—Ø8O‹9QC„Ϲ8ޝÒU/5‹íŒœ@‡´H#êT=øQ摜!ˆú—8„%o'Ë4A?)hz\ ͸Ì7„åÚâç«*›ŸïëœçŽ^7pÍF~†ç<ÇðaÏKðÜ'3Ý¥IƒÛ†Ÿh§²Rø_ÀÕK³pÿEŽ*P ?YàN°±™ÀÓþSEvä’ðšÄ+" sÈà)-ìÇQ¸Š—ì¿¶ðU|d¿w ­À5}ýiŠ,ý©ì>Äž¾À!À~‚s‘ËSŒ^ž]º7AMh`¿Ö9ð?Y<êmWÎAÞ]/Éu¾¤”¼ùä]ã_ï^’Í€é&GdRÓð°¾ÜqÊ<µèÒ€•û¦æ øÆ‰¬Hâ/Ü¿¸cEé}a~I[f÷Œ##?ïòg¸Ë›C¶%c›´ÌѲN¥²³ÅuÏÀ¢?F>)ñÆÙð©R ÎH£/2\è0|ŒTZx5áeÒÏàÆOxN]éý À È®J%l:µÖ¿.•6q@™ðñR 4O34=sUrÉ*x§(«Jk $ÁÁüUVM0äuüTvzðrÊÎ*¯ÿG?­7÷/Â~*GS|Qþh=Sþ=„è¿FќィÁY4öBORK‚‚kM?´]³Æ¨_ n>FÑÓõçÏ2èѠÔÌb64£ ’$¡V(I"È8¨LÁ+†5üœæx=§',Ë׉~Œkk{Š=VÚ ö¶«—]3 ˜a<Ù|}M#K#]2î#á”iГ™†®Þ×”¹J“".áÝ?F}±£(KJ^Ñ Åê‰6œ¹o…˜b«htÀ\“$¼ ÜRÔQ`ɆòÓ´hjNÇMÝõ0ž&0Ù±áÌQòDªQ4«z'¡=8ðû¦=u‹`‚ogÊB›º_wͪÞ\ÄþÇüLÈÎó3Ëã!¥5÷øÌÏ‚ˆ½¢Æë8ÇNsK̤žöƒÀÚD’ö4褅±ä\r«ùE”Ñc6Ò‹ŠÿP=Mc«qÀlšíîÙÂŒãºî'Ô,;ذšûíq@_7Ü<´Ç)Õ:Iu~%’4S¡4%þ¹ ”o^š3ÔÀT/Ý!je˜Pé[iÁ$ãY–2²ú=ËÈ]5aÞ֔оÕ]ƒ±Snr¾Yw˜ >ÖºBZ2x'žä¶šU³o†§EŽò3Ã|Î >Î Eq¾´3_ÍpWGÎv3àQ2`çb¸éêêÀ¡Ò²,Œ†SËÒSª™ÇDÎö´ŸÚ—¹êxúŠR EôF ÖšãI³X»U‡%½ÎqæD—³x2sUÃqkÈ5Ì3û}Õï¦-k—[Ûv¿?‹¬>Kk‡,ÆHÛÇÀÝÎ×™ï¡ùk=í_ƒÕXÙ‚`œn-4Ÿ” D®<*J:WS@ËŠüà·C…#% )½þ´ÚÌÔçCx°˜ÍË@¨÷ï9° I9JÅ~·Äk®¼’΋$Ë„SÓë´Ñדã4c¬Ø"ÄÅ”•9Ï*"Õô‹nü•4á¸)J9éÖ×S¶ •¦U®dÍ I˜-tÆLíùG&˸0ÅKaŠÚ©%²Nõ&^rÜZ(ƒÆ¨ê6Òã³±üé íš%HiÒ¨–uFÕÍÆí|H’¤\ù’O»£ÊMÝÛ b!çïQ— ââYè:$ËSâàµÄQqŠ8â\èþ)ZÕ˜ ãûy(´ b¬(cp­CôÛ¤Em9Õ`±Žˆòlð`FÙ!ÿæY¡Åh*¾ûåÊœTÖ¦Þ¢û÷ L˜M”´2àm:"l€:{è@¶{jKA!(ÆÄ2µ ÕÏ4Ø¢ºìš¦sØ?CÔªdÕw3tEq­Tö*[âÆ÷þ‡ …  ê¡ºÃúJF`DÌíd$ÉäÀ™+Ĺ ¸ =in•¢ð0¶2›”ÄíêjÓO+ýîÿP8™Æƒw¢8çÞµs.vcŒl_¼ ïáÃ3vgwcMΦé0É5Î8¯‘£•¥XJNv’Ü™l¸íWê¤d0¿8 ia],#ËÓ0«¹yz ŽTTD•=øm±Šª‰iÄðýǾšÁ Ël¼É2‹K”ñ;MAo7·Ò.íŸO½.ÀZdÚÇ$Ì6Nºõ拱£ÙŽŸ°ú턤š–ÚÁ è¯p| ì÷«®ZKO:§~нx3+Ú”åÀ/ôU__-ßõkì¨éÕu÷œ»}ܵ{mbUiÕ}; RY9v]åûpµ` ©¦pÖã~—5ðÎ1¾ýE!¦Ž“ì¯'…ß0×KrÇ¥\ü¨ u;†sê£[’à’Ô—.Y²X@[Ò‰øÔßöó¦’ÄÆÔÕIô0`t¹øÙ føà¾€iãòS@ןÐëë?%_Sƒâ­½ Ðÿé™Û–bmYqõÚ_ÔNq ;'æ{ÉTpôpå]Ów® [A 'U:õDEjdÏìI¯sÄùg¸± ‡J© °ÿú€‡2Ó²é‹u'öâÏtZsÜÈ9Ù;×iJ!Oþ[]~t¤yôÂW–Šk¾oþQÏŠ_ËQõðPƒÝ­¶CÝQ.¿}¨0/ZŸ:4ì*dðÀ d·Ñó%" ´Ü“§ˆõŽ”âàÈcàóÙ;ÏDŒÅs:²ÌX›\þˆ 6Îä̆ê}mª¡ŠÞ™lžÆø~óOkf endstream endobj 1352 0 obj 4378 endobj 1355 0 obj <> stream xœÍZÛŽãÆ}Ÿ¯à[¨@ÃQ³yí< rñ ~˜5 JäH\K¤–ÏnŒýÿCò¥©+›i´‹l‚5„ÅvwuWwU×åTsÞx«Àx+üÉÿ›ÃÍÝß“4õ¶ýÍÊÛÞ¼¹1Döä¿ÍÁûú¦¤ÖzÆx÷7¼ÎxYä¥IæÝnü»bqÿùd±LJb˜s_Þ<øÇqðE÷ƒW¬Û…‰‚vƒòÿm=ñ“ÓS²’Ë™‘7ÌË„qÙèƒûMÖuvW&ŽƒÌf³ ûœòâÅ_äv¢+RFI`AOÎl>§”d~o3 VQòI·ÑÌxÇÏ)æx¼x•aBôú”» ƒ$53‹=wÑ<Èþ'R†Ñ5)ÉZ+"íã,ÈÂù È’ëƒAü¢ë¦ \Uø Šá2£8™)âüºЏl bŠô«pÈg.ý¹Ì€Ýù\ü3ƒ, â$û$3ȃ8 gŠø\fpU/˜AD«o~"=H ¨j…a. â86|¼?4p>Ìf&ò9*K2¿Ø ˳om›<ÞçÇ$h½FWàSõºƒõøHgûî¤g ÂnƒzfÓ¿¬ø\yšûŸÜ´~(hb¿möï çØÜ´?<ª(&’£†+àhU”‡¡«ûjè¿{.Rdƒ4Š­Šô„É“(ö‹Þí;öUézC;; ¨Àû½ëÔ]WqE³ ýí¸/::(d $fB~Ó’œiÀmøÛ®Ò ©±?¿­Ìv›k·‚¨h›b䛢Mä¨éEa/´, PÖ: ¬çØ©Ue '³l[Òn óNLœ&Û®„ÓOëA9f=­…ºAi’—ÏóyêfëFÈ^Öqî¦NÅßî*:-”µhÿÚÌý²>TM_·J…cõÒÌS[s JNŽØ¸åÅãPug—CÈÊL—s^¤&Iõr@EÏÃÀc§4x­V{ð—r˜T•Å"þsu(K&aÒì’0©<ÑñÊ2ÿØöõ0SQèk­Žæu¬²j;§Ã©tË câz²ÜÝÂ`ˆ.óc‡Ø–‚Î\G˜`Œs-új_7:ÁÖI;MÃjÆCÕÕ›b/Cp4ðA-ÍßÊ4öYä!†Ã`×võ?Ûfp,¬ÏáM?\ˆïcó͸î«7cÕ(ë0ñ‹òõØ7;¸ƒüµz•ô›R÷OO&¢h¨ÔÊŸnîý0; Ø"–··T‡×·Ìm\Ö8Ür_¯÷ÕR‡r ƒÔN!L÷›®^c(ä‘ä%#tF†¡YxÆ[igsŸã‘Ü Ú/Ú©²½ìt6Ê›Æ/;] ÀðŠÏnœæ‡}ND!£b³Ó(FÆÅñ>çôaæO6ÎA"ËâS;ô7íá8¤hÕ=víAéF¶ÄŽóL]žDdLÍgSó˜²L?gS JLÑÊnêÉ:ÊGcz? ‚\G*šÒ±$àãh‡‹/_·¤"´XtʤQA¸-ºJ;ÆçØGÕê}v*ä8ad =ˆßÒŽ22:jÛüÔainzæ°ŽR÷ŽËºâ<#$É„_¸ ¨/îÛq&\ñ¶i;F¼ˆRæSÝWŒ¥þï«iäT\®ÚéÛCåñ&èÐo‹ š!%pñ ·KG²ˆßœg%„Ã9Ó™øOö.¾+WÜâo ¿÷ž÷ÓÝÚÃΆ;ÅÝh½òq‹ð® ïšþþ¹sÜN¼ÓT€'ÞBAYk]Ã>Xx«4A"Ïš¤AÆÙµôÙÔ\KŸÑË~<_üà‹¶ô@ _<¶Á°úcµ©®Ê¥ eŒ_¨ŸÌ,ú2J9Ícïbˆ?iG` ÍËO˜¨éÄ‹3í!Píl‹LÑgLŠ[Sèéëç%x¯äl«ÏS'K(V쪂¡›L ç¦NBßU4¦5ùœÁEÇ LûC ‡öPP¨$&æ)äÅ’¦ôï/؈µ ”ˆS¸>«’b­â ÿ¾‹=Üd§â®†Ô«½„‘.m—3àçÈã«JìÔW?z…7É–E€ò¡Š«{æußkpq¯nÀapSw›ñЦÙ.U÷ã$ý5ÈRÍWö¬ Z2)Ë­ÿ×?+óB¿ìŠé#ÉS¯ËCV>uŒ9Sþl¡îÀI]äVÒó¾F1=Ñ\1`k!pñ¢ (Y̺  t¡õÿ±0f…E x]wÛÎcªÕ@à_Nlž¤Žâ­Æž„h`Ð÷’PÉM•îIZ§L›zõ`íPÒ%§˜˜ǽÒä- ÛG2tL3›…ïS1d8¦•67Ræã5Þüdî¿^·Û;Z18RÛL'‰¤b•Μ[¡Ã‰f!G»€„wßÎÏ3í’ÊTÁò&zk †zfâv¤k$†©|Ò`3Ðxáð@9´êU¦Cv-OP̰ ­ [€((†¸ÏÓøïôcrÿѱJcP¹DΖ*bȃЭ÷uU @VÅàgˆµš$AVyÛnâ³b…baèòß„¿øRÀÆÅñX"5Ê9 `Ÿ iluX…€!¢E ‡x•>å꺲¥ÀF4š9Mt;Òúj?ëÓÓ­vcBHÄ@+*ÁQêfâ7ìÜ!Ö /ÐÔÒƒçÔyÌf±ú¸¯7Œ ~ð+ééæÔwd8Í=~8æv6Qn+tlgPÑ+^ ”œøß@DØ h˜ë ž-õç PËDT@ ¥ÄЂñàj’UV“V”0Ô®ºžâs…Œ¸v§\*>ô·=?ÉàHÄaÛPÞn 6W Ôù¨ëb¨ÆÈ~±ân¬1‚hþÏ >Hðj~¤YºîZj,îÏÖ 8½üÎÇNü÷®¹Ù=op_K@"õ—“ÀkÆHG4Âd…Ocl@Ò>ùX¤Ã)×"ÔÁ:m¿çDÛËØaeö{Og§™–“ifæ!ðV¥.M?ɼǖ÷Ÿ†2óÉ-ší•Ñ}N¶pìØLŒFIÎH=‚±Ÿkç,c¾7$zŒ8`HîQÿÃP•/¼´fÚ~…¿åûíWž'÷ËYçû÷[Gø~{Xe'_1豜²‹{ö*ôÝIT¡c\¶ …UÁ¤H]X_Ùf^ V'¯pø­«j°2Õȇ¼H/›_®æ¦7½çI¹M½L\FWNïC²‘Z=ÓC¿ñqo¿$¿æÃ’*pHëjxª*À²¿º–Erï¾®zÊTýŽØÓ‚ATðúýØq‰Ÿ”®eEŠ>”eòµ а!ËuKQ¾.6ô°O#äôùÕrq(Þ)MÊPZ™âåá{“2"GÀ¶åÐOÃX›´­šª+øÍ˜øû¢B¡ã0c»~çÚ€J8†Ði4yñç®\O²›L|ªÑ'‘Ÿ'’±)«Ž¿ÇXcè3¡3Œ˜>«ùÐdsh1F9U·œ*±•xY÷óƺß錹¼Ä-"]AŠuåváÈ`&ªMQ¨Ì:c7by¥ ˜h•vÂ¥FŒâ»J<³×1Ëï( »Yüˆqò«7øÃìC­›¤¦J“â—+jÝÀP*·ôX›Ý«…j@ˈiòPÄh‚¿fƒåø¸nh˜àþŽ ôç¢aRLƒ‚i¿Š+¯,†Â{åç¯8ùw÷7ƒß»²˜endstream endobj 1356 0 obj 3465 endobj 1359 0 obj <> stream xœ]ã¶ñ}ßN.vµ¦¾Õ· Ú+´MèÃÝá [ôZ9ÛòIrœò’ßÜù$e{7 îpÇá ‡Ãáp¾ä¯f[³Ä?òÿz÷ø}Q–æy¼[šç»¯w–ÐFþ[ïÍ_ž¤ÊµæisÇë¬)S•yÚß}ˆÚnpë©ë‹‡4YÆYa£~#ã,¦­ ´ÑèÖý¡8·Ñ¡ŸfØÖmu\WuYGÍi7Ê¥ˆ¦^åÑÊu‡g]•Ì7H¢±Ù» G3ç°m¦À#HX\2ømgd(ß}@6Aö<ê”E‘FM˜þîý_ß+oý¶›ñîÆÅ§§ÜÙÄ<ýóîéOÂIª¸®³èÙÜÐL®¥-ëxi½pL0u3 e\•Ѷ?ô§Áµ±,\&Ñ“_XeÑ8¹½òL/oŒ ®U?“+ÚÞÊ8CÔ¶9ÝA‘UÔn&z­›‘ ZTϼRªbÜöòÍ«8­ÀPv§a‘¢Dy݇ùó–vCî—w T4v ÇË’¨ôx£€yâ.lòØè§…͘½ò(+ÐÌf‘Àtmm´qƒ;¨He»i½uc¬3IôþÆ«~Úª`)vT±i Ú¬Š~>îºu§\áyÈÍ3c8º9!V.hìèÖÝo®5ÝÆ€" ^¡]òÃ1Íà œÝœÁêÍK2g¦˜ÖƒAæ¶¶j‡tÌÆtz8“æüöh\E#™4Áë÷^à¤Òû‘•Žó4:Z7Œë~ÐÕImúÝ®_$9šNÇÀ§ ×`­ÊWDÝÖ¯›ÓètUšÊû@ÀÖÑ®;xœz¢+Q‹ÂŒ{›È£ó! ûÃî忥NgGG+—qµÌ½a!hŨqœªÝ]­‰ÈĆäǂäœ-@L 3q;ÄðŠðJüjçLâÀåi{òóÍððâbh vÜ¡7¨ÑÎ~Ô¼ŒÞøwÜïX&Užtppq?ȬzO¼Â;Ò5 j¶‚Š„î–Tþhd¼EŽfÁøÌOØ¢»Cá¿/m&Ñ*ɳ8­KˆXOí]ô}ʧÅÓ ÜSY' Óø`ÆN,êÂKèÖûÓ8…#¬<¦ˆÀ[)½8\F.m ¤ðBI`˜Hc[Õæ­ eÜ׈ŒÊ2Îó$XŸN4íÍš¼“Î:FAªl5Ân"Š UBVðäÕ=ÍŽ;„ÅrÁÓ„@ê%ɯÜ.Ï–ÞMèôZ>.â0ó~£âÔoðÆDp°(µ>>ìÇì2‡K¨5º#TÔ`;Ã^¡*:6ƒâp‡ŒÁb›@´r.Éjº¡ÊÑb)"hÙá3ŽŒÄC£P‘kšñغ€»Ü‹“Ç(7°«¡ÿB1¹e¸CŽ÷Í!¬pþÆBh2ÚU¬\óÅ Ùš•3óÀ¡¶/ÞqP¨JuyO‹ý ¨‰_,>¦’í–ʆ}³oÉ3¨ì¡;Ld»DRE˜e(’´Àˆ¨?û±›ü¸Ê®U¨,éž3_‡f±uM«"rPƒ‚SbhÅp-à7¨sA¦¹|Mz 8S’¯ãè2Æ.°¾5j€à,å ¦quA׬zy—Ùˆ ¥±ÅËDoˆ4÷ÎÊPê›°÷êEÙQ·-ˆ›¥-¾žšÅ N4MÅA¦¶"÷ÄNô±¹v ¶Œ3[+D&|XoSÈb’Jׯ~wý‡¨ÙLNäskŽTÖÙq¦EK“à8×ÛfhÖ¸>Ï)yŽoNƒä>ùyšÏùÅ4ƽûü¸‚‘{w-àƒ_SU¼Ï{òË8)P‰Ý(P©ÞÞÏÍþ¸ÃÒ1’ÇwÌH˜rîÜq"‘–lµ´ªÀªˆºÙXMŽà:XÖ…aÝ®¸ØïŠò|öÿÿ¢©ëžÙ1d‹‹] ÔIèݲ„Øþp¢I N!q\B¾ÔvëF ÁOÍŸ pºóU~ÈÁ¶î°v2wðêst Ÿî&‡€"¤,Ô¼?`ör›Cq]æjÁãÄETU—¯š$.~/ŸTçm7WÃè&=]R¸ÕÉÒRê0à^$À‡RfYx(ë狔¥`»àuÆÓj„Á™†  b!êQI@RH¶«ú”qÆ}P<„âf7öJÎ7”fðò›n׬v.,½’3€{ DÒ³N2ºJ‹¶5ÊK8£ÜqQ«SÈ’Ü1*àÚGe˜³¨CÞ@ð¥$*3µrù³È¿o†/£‚/k2OåZ8 ªAˆ¦àÚ@èÙ B£·²˜•ó±Ì¥PšNº¢âFÍg¢r…ÀDÆnE~J‰IË€ÿlÂ&¤p¥³Éì<‹´y g—lL _NQÕÚ“…Ôel ò8®Ô !€î²S öªd0¢U–c?-âàÊDÉ^™¦|Ã5†uddÄ»¸‰¹Êc&iˆ¹dŒ²ð‚`pû¦ÃÈ¥S`øÇ£k ƼoÍiˆœWýÏ‘ ¦F±y‚Xcào •–Y½˜î0º[5¿Úî¹ÃìŽ6õ £›G¾¤XÆuj5_›8¼u`ÆÇQq‚xíÜ„ Þ«‘ÂLº$çñ6ÈBš”CÎn/C-T$k÷qñùÑ6FÆÆÀ¨Ý48›¬tüvfNÐçpr!ÆÞ„ÝQPe†m%ª!e¦¸.X˜Eözãqµ½ª€…µ´e,/€Ó+ÚÈ7e*ŽH.–Je kçéjq(ÂAŠ€Ž%ÖùÕlIèmèóóæ;ÏìŸ.9X²9wÓ–æzøîý웃½¹zÁÁ#«e¥…÷˜¢:.âti¾m»©ºfG†……°ïÀ²“¡¶À»K¯[CU¾U¤eNÞ…ÛcØ”Oã‚ôEW½„³’¿„S)îen)©¶Œ} £ÍÆm3n®¸XØö“4oi§’³oï]sðb§Ò0âuÒÒÉ©{ôzK‡yø€z?+?8U ŽÞ†`Ó©‰hšžë`¨Þÿó•CW•¦ò>ÝõÃK}NãUf~_C½Zƒ‰8y#ñ´àQÏèy†þôÌÆƒæ{〩Ìè±{kÇèÂ6~eÇÓaŠú¯jŒK¦Ç?Æõ膮GcÌéþdµ7㇬E•Ä€ìØš¿7‡gt»d´×¹B¥û¯õºá¸@NÓ’ÚÔœ§T¤›K­>i˜—ÚÚ³¢IM!JnF£ ˜©£ º*dz?$ȶcnXGGMFYC¶P5r*g¢mÝAŒ$”ÔÜ^qJ‡¥ÛtU0xê.꺚ûðÉqubé$ µ¤×”ÔÓŒ$"Œõ• C÷¼f¸ž8%‘0UÊðŽZùËRÊhëLÛ´* <‹Ó® ¤+8nÝÓfã9‚«¾zêöSº*¡Ý4èUU*~O€•G¼ »/™àŽÑ)~‘ÃR_'ô]ÈC¤?¹b¹aIhmP !$«ú­æ§Ž2JYG:²a®Èo¥R‚ÁxY^w@X¼‹ZÉ^~´¹®ÔPe´-_¤Á87›O—ü Í*ˆKKßò•Üòw³ ‰~½"¨bßãÒÒ£¥Áø “̤øºÆ€ ®·^ÙT¿fF5­Ò¥È3¯f'0lö7‚„ˆñ| sNò‰F7¡þAøM“;üª"_Ú`Êóö±ž%>ìŠs(˜\B®6~³¦Ž>ˆN¯]P”Ô‚cdà –qhÑ,Dq„˜“¨ãÄ¥`Ò­rOæT»ây‰ÀÌGÚ¥ª“x#œ4ºWu¾8ÆOdÝá^êë3¸q!«='¼Hxæ#àää™P+õÅ_ëSÙJòæu‹y³ùÅ|ýjØÂ ¶ŒŸ;|2¿¼š<ÛJófˆ×RgV²e#®.†\僧=õ¾`WÆm»¡5ë¡Ç¢:Îq¦xîFà·?N/fÕ ‹œZÕ«¹aÈ ó·]7Žö†ïåÝÕÓÁ]Øì7\$RPÚQÈ® Œ–J—Çþ³¦p%…Æ—)59Pk6£v‚’Ív«%š¼ÙÌxeoneÄaíÇèßßý7€çŽ<„n¹^»ãu0¥“• j›ý?õwxF:' ØÐ9á‰ä2Hû5¼kV¦{èlŒÊ(…`„ï ñ°Ð] –œ==qåÂ.A¡nŠñ ÓÊïˆS•FÏᢕùõ±¸âô¥Y£óšóÈÝB[Qׂ|ÕÍ °LüÏLäçÒ­c¥Oéó9Ïú÷ÙPA"P·>¼Ò—,b!uŽÓëR€Ü‘ì¿z¹mÔWP"û>ûóM^ ^CÞ}ª àtn¯×i ïÕ‡j¼C¦¡»ª¤Å cÈÝnz-0o)òíc\”i^ÅØÁÁƒ ÀžåòJøƒ&¢ ÿy“R>".“[(e£¢p•QºÜŒšQͬKyðÝ6‰=i™ûϱ÷·¯ëXóˆèñ¶(°]¥:—ÆÄ´Ößq> stream xœÛ®ÛÆñý|Å}ÕÑZÞÙ<9h‹ºh‚´=@|Š€¢VG¬%R!)Ûò ùˆþD¯såRÒ‘ë8°9{™ûÌêg³ ­Yáù·><¼ù{–çæexX™—‡Ÿ,Mù§>˜ïž`IÇÆZó´}à}։ɳÂ<‚íOo†7/‹§#®"•…e ëž6Á˾†ªÝtþ2ÃþÔóRs k—6¢Õ€ìåMuÙû×°%«pµŠ³à‘@S­»…M²(‚ü‘[üëé/K»Êá¤"L"Ä‹øÞ‹e²ÊÂ4‰‚Cu µAW×ÕÐtmµßëh¬|ÆqкÚ)½Îc§û£ i×vJÔ籯¡ †cU+Ò4ƒÆOεŠ2h»Ñ e6w•¢Œ“ êg;ÿÝ5­ÛøÉõÙOL#. §ÿúðôÛ÷páþÚ§ëlˆL™À°ÏÕá¸wƒé¶fÜ9s~NˆÓ´fpõL¦$Ž2,Ã$¤CP­ ‘^”‡u…-Ã,Ñ¿k§Ñ »®_,#”`™£©Oã û'éOcoË8¶a¹Ê‚ötX»žá¢Ì‚n+s6 õ¨SE@˜'ˆXÇ+mP-,P^& /QT;Zïuz•“Tõ»w›S=Û ¼ñ“Õ¡;µrdå3j@5ÎǦ}ñs­s· u LÊzÖÑ4ØtþtavÖh Wq b˜Q»sWR®ŽGWõU[;•fw‘ù ª%‰Û$ ÎæÓÙ%Àƒó"bXœ ‚b•eŠò¿‹efW®J"|¥ âÂG`+‘¬ùØt§A§X“*:}–A rÚ(r’Èc²7þ¶Àz¸ÆètižÍLªªG°Ò u7NƒÇ‚³ÿ> $&(bÑñ©6Ø»qEbÍóž)Ž’p•'âÉ>߸%ÐË¢´ê›ÀäGW ‰Ÿ¿*OÄœ Ó±)\£’B¿îmË+Žl˜®bõïƒî8’W‚¥3F€`Ðbrcde°íöûnÑeð鿆6BÉæ÷o˜Æ`hzC4>.»iêŠ.ƒE* åÙkšˆ4U’ džªHà‚®E†îìÐl6@ˆ^˜µ3Ÿú¬ª5ûæÃÂbdÉÓÀÁÂføý+êOùZrû9pË—õóÂ|Ž¿5ŸóË5÷——8Aø*"Œ Ã(øEÖšÊÀXÀÌ?N®ÖµNÎB>ˆ)Ò®o^2wßÉDçYÁh'Ø$…8â îŽt} ÷îüQkæuT§ÑãCÅPô1¤D''ËúÅ»Ûnú¬÷n;¡S¯Çj’­¹ýÉ]?‹P¤CípìÒ?uÕ¾8#LAñÂÅ7·|¿‰@eŠW¼p*¶êz ÊÙôñäAúõŸEŠû²@·€%›±Þ¹ÙG'$¤o p»q›GÅŸŸšq§PAÎEVnš-ûc p ÌÆŒ©Ï/H, :´/’Ȳ¬˜áè¤Ââ«À1 âUc²y–ï,ÒàH`i^ƒswƒ£…!€‹£:¾â¨¢8¹‰z 'GHHLŽƒ†U¹(¦è˜¡ß÷ä)+'½†tv…K´Í ÷¾98áÀ™3¯Í/Ø¢ÙÔÒÆI˜Ä³8 Õr& 8Öãw¦‰ fwx—§àú’üïJ8<×(ÌcÁ#Fà¦lhSpý³ŽfÁnÁnt>îI™ÉÉ3Õ~ÈbI¾xò¸ç g *5/­‚`²\mè ¯F;ͶxÉŒÎxÞ(M‘£4óA¾ª~z8Õ;fu‘„iN…š°ºÂ (ƒÐ ¥Ì0VP˜Ý£ÙÀu¨`$鯄hY•Ïp¦Á'·ß‡~ê­NYЕ֓\`ñ+ þk CÒúÝ ãY8%UJ;„\ñ¾|z*ÞWÉ\;¿ݯ~‹ÿåMñ—ü¯î¼Œò½¼çô…/†õi® /e§Ì°]%³*U˜5¸ºœE,Þ.~‹—fK_Q¡..®RÞUÎó~É@yå·nº‘Š…ë¾C_>úéî@>`Es¥(ncÖgSLIˆ—©}%%Ñzj¨ÎH¬Ð,Ô«ÉB¾>Ù„Û ãò&õˆ’Ë(q/¡òꎟI2¬uî»™"NËä"—$„ZzÑwzË™‚º• ,Z†æßQ^ùZ ÈR{ŠKSPd …C³Þ+úÒGÔ„*ŠJ—&w"j2/;eÇ‹Ç9É›[rËëºû%ÑÓ¸Úü×îæu‡Åä×o9±„PÆåeˆ<^Szê0½ÔÓ?6Ô.â8øÌÇô¸„rf¨nú(I ÑNQ%”àæÞµò †âª~ßPu@X£ ½ØióZÉìåûÇïÿ¹(-ZkLY¦ F{§¦ñÙï( €ûfôͦŒ6í%!407 ”âRƒˆHÉ­+A~ @0t½_&ýÅ0r“l áÍfóêäÓ®©wfºöiLï@ßz·ù–¬ÛÀÿmgö8ËžF‰©aCû'â×+h¾ Ö`>·¼‚hÅ_hA€H¦'}™i3œÇÅWR1bl³;‚ÄA£ˆ{fL«4£ ÖL%ÎF³±¢uI¥È- ,¦NS9?sÜu§—ß1î&?žQ¶Ò{î{ñD®ÝÞK¾Øoj¶³[øáïßýá¿Ñ¯{Iõ 7‹mæß Ö°àî÷,ƒ¨äztó¡Œý8IrIE’^ØÏåÅqCŠåÚ['”æ ~IìÔn2ÝÝ´Ôm®âè®Ô/¶Ïoh¥o€PQ»G™Ñ~CÖûnîȽ•2_–SDZá¸øiAØ{„Ú¤™ä‚TÑA¦ª/ÉÔ‹"Œ“t–Ô`Ó*ÅN–ö¨H^ïVÂæÈ­®ƒÀÿL®ˆ§ìW¢ 5^<êÒù¶ôʾè˜\ì Äw;COƒw[Es¶,‹9Ò"ß_äs8ÕçESŸ•zzÌH½Rã63]?0é9°¨xíÆ8•È´GrNQõûò¾4(=x Ú³ÿÐíP‹\¶'øôŒ-™Ž›ZrU§3•bç¶iì48Î+©{œBñgïæ+e˜eÑ4ýªíEQúu‰¿2hÆâì‚[çð¿Î…yY̪#°³åÉ+×Ež„QšNé¥Ö¨n=8 ”\š;yçb‘sWêÆ@€F|ù–Öâ\xöe„gè9 ŽFfm~Sÿd~1?š£¹á„ôtä- Ê‘$EÁ²0ššüàE¦lŸg0y›}O<“1p¼–D}ø`E0fÛŽU‰7Š4hñ¡i›ƒB;Dž™¯R‡È9DÁ}±ÊC§sò‘É*˜®”ßh=£k_Ñ SÍâïQdaTÄþkH¤ïäú!€ÃÎõ6 uyyUyñ ¦®ÞµMMLæ3zW ÔUº­ËÐÆåý–'E!o)ÿO›í/¾DhgYêãpôòuošßŽnºa¡®f·@ø)`•‡Ù¬)AÌG›iz33X~~ÆŒ™Í˜®‡ªP%Ü7P.Lcâ]IQ¸£ùè1ø"‚ûæêYT4¦ÞËXÞ1õÈË< ^…Ç îØÊ‡"”ŒŸYü”2W7šíËSLÅO ¿¾aƒ@ñù–o/9yç}œ‡Ë#g늢÷dk[KÞ?q'„5Em@ZMõ¨+âK‹¹Œ[{'Å; •–¢e3ÊwÄn­wû³Œ€æŸŽò —(ð­ > ¬çF®',¥\!þd¾Ü¾xëy%å›ÓœG^â¬ß*JSN€fðôõØ€dzE¦ ê ˆ%ÚDÃYR¬¦†¢[hÝ0ܸd];©ùÎU6pP=6Ó£ó\µ¥ã™#Æ‘Á‘]˜él“ì›VV€‹2›¾¢ý”þ"z¤jxí—j¡5ßÁ3)ê=[øA ü‡•÷0ìP_šun•ó/Øø Šq`í­Nóƒ M”³æãMÔá”ôbPÆî³æ‹è.¼»gDˆB~q¬Ï¼±Ní¥ ÚëbY‡g‡%DŽÕWÚ.a¤eؼ‚¨¡ý©Y["š1|b&¾ºôU ¼¸Û¡"Ýùön2øÐà‹Ó<­‡¦î  ~^Üüè÷jŸãñksô¬ú³ ïÚýΨ»Ã¡büØË|NAn_Hâ,¹‘ç–d4(2I3ßôD/ÀqšÔ‚´œ)ͪ.Ñl¢ï?±µ~뤊×êó·¬lf(Çó€¼™ 4ËÈ™üÊuDÁÙÍ[ùÌbÝFP4 4’Rã—õB†€~îI3Tr—ðâƒ,,d}§´¥9€ö7 ©l =ŽLáA-*'¿r(ü騔a©oˆâDrYt‹Y™Pï;yÞ‚¤“!°  vçr§8ˆ±f« øEІ#ö:Qg£#GN üƒŒ®’R±›_>>´à¯¾B…K*íø[ß­v­d‡K¾v­Át\Í)!ÏÒ7ÕÙªØrj7`ñ5¥Œ1”ѶL½Ä©v¥Ñ|¢i%aT†& e°Ðc„Š›Æ±.Kæ“¡’KøŒ+¯¨ó<¥ø+;WU>ýæñg™ “BöÓïÊ%²d•å䕬oº¯9ÆhqMÿ«Îlª±7T² úãÓÃßàÏÿ6ös¼endstream endobj 1364 0 obj 3781 endobj 1370 0 obj <> stream xœËŽãÆñ>_Á[¨@C³ù¦{Ø ÄAä1ˆ»>p¨žm‰”IjÇcäâH¾4õìnif7A°XM«ºººX]¯æOQš˜(Åò·?Þ|õת®£Çå&o~º1„ŽäOŒÞß!ISFÆDw7<ÏDuÕUÝo>Äã´ÚÍmV§IU´ñ4Ë8Ëâ~?Í»­Â(eœgñýl»‡ñQŸ4ñ¾;ì¸$žþÛåÛÄë^ÉÃË`Áœôó‡Eç›`~ºeõ“¦?îF·È0ÏvcÊ$M›øñ|èfÏëqžÎ'?écüà„ÈëfIÛ”Müsw<ìvóýÝnLÝýñæî·âuàéº|Ü€jò¼IŠJ¶G@ßÛî(@Þ²¢WÆÇîÙ¢ÂP.Åu«U°,že÷‡i!uóƒ¸?Ïå*¹Ÿ»þÇM›´m–𨮉r5ñÝ~¶Ös=uü(Ø’ö„%Êmw~âOçncˆerJ±0‚ªè§óaÝÛÞh·Ú]tXˆ¦=Fë~X¾&â¯þZç¹Ú`ÝÛ¬"ºÛÝÄ·ööMôpÛÁï=ünî~¸°Ù[7¡Ìp‡øȘfI ÚE¬À`f»áqX4¢mÊ Þòá0m22‰6~R&MÜyš~:XÆë,u²ýððì‘{dæù´°ÚÈjjbGV“ZÑBÕª²6…epQ ¿ëm›:É›²e‚’¨IÑ&óøŸ~­qòãP0 cûÓyØd((òO¸‰î`Ç•dš:©áÕ ÚQ´uŠLÂÂ}á¾½íÞÞÞ¿½ÝfQÿ›··;øoáÿ—w{:å ì¶®ôìÕ¥œ=ÁÀnf»œ«#­ãaôãõicÒ$5EO:¥‰—é0ì4ü¶ÑyÖ½_¹S ÎÝ0ë<ðˆë¾[=“,ü~žÈÜA^0÷Ñsð²Uâ¸qv»ƒM<öÊ‹8Ûp®[ö.½N“;…èÛÀZÚ¶ŽqrÕ$@÷Ýy±‹ÀÛã±IÁ ¬ŠªÁ±,®6˜xït‚¹›–jØ%º±³ã~-¨ýpøïRJÇÕµTo¼(+“¬ìÆU‡á,¾5&~°3Z»ð+pU%»Ü²JL[Âæcw¸`C?¦Q‰Ä:¡äs¹Õ ¨¥íútiªqšÐÉÁÒê3„¶ŠÝ’°+ fKQBp˰³^ rçDyÅP\†0!o"¨î0<ŽNr*Zdž¢ë…L´2x¾DžÁ)zÇ1‹@`Ü)5ª«ŸÆ]7?+VÕÅ̶¬ýT8¹G¶ šqò8é…Éšd^DjÔc@°^gå–‰ÄðË4®]Àf9u½õë}ŒM’{F§i1¨;M K4Œ‹!®%Ñw›ãXèg:¯Û¶ðk£Ç D“\Ý)Âí»%šÆÃsÔE§y8‚ "ÜyÄñ~‰À¥BÌ„#Ý u•¤àr–籟NÝ:L£N³eÈ@Nv˜‡ž^pêFeÆãiÓòµî´z ®{oG?QRC/ x™³‘mFöÞƒÎ4YÜõó´8åGH8Ô8"Ê!­& ·¼Ší½HC¦_•_ ŽÊ¯dG&c8\ƒå@ þ9H±vžfÝþÓw~éûg¥i4±A÷‡ì‰ßàüfêp/ Õ¾ƒœQ¯ã‰jÃ9Ñæ7—I¦éÊÛë¸^%•&*‘g\¢:*gÌžÛ-˜RìÂ\ þ°Ge_ßGómô=ÞFÿx ¿o®Æ€üÇë‰ä­)¤LAb‘— Cf)6­O¼ÿE¸¤$† ŸK„ Uh½@`V‹óDTº;îüsð%J•æêеœïÈÀèÔé3x3o”œSÅ\L½.MtЉ»ûÉáCÚzŠ‹I}œY Éh)¥Žã6µ/Š«Z@@:±Ô1ø½çVùeJh%/à­!bS¥gôT¶TšI‡.ñTì‰AãìˆuI ×†–çyb>o¶-.Ö5]g¹nW¹Öd*7'¤\¶’5YRÔ•fÍd»EZaÎñ9í AƒUbkH±¤Âç5¼+v̤Tê¤"ì ^-‚>p9¥–Ì%wU’Nä8ÌXÃþ‰gÁ‚…÷”<ŠÅ×lÌí k´~}z‡ŠÁ—èQßxpX}EÙX KÊ¡6/Ä]ÂÌÒ‰uÏìùÑç"|žqNÁ¤œŽx”8CÔÆˆ6?¹òèI4ÔÇKP:PÔñÖÏêeXªÛÅMT“Т†fÀ)Øõ袬Ê@î<”“ËYEì_­Î=^ÞÞ­ÓíëÊ¢Ôd‰ m¹‡ü./¶°Ã6FÏï8ÜV)™Ër¦ƒŒPZ¤„RÅÊ]›E(§¾?óÉ"©c*mh¬E’äH™i!¥r(ýZð6Ÿ!o9n?ÃAòÌ’OÜ ‹ÂØA’ˆ{ÇLîi ¦O׬dý_GÊQ”1½Œ*%ƒÙz*È]®ÛDœ?åP}h‚’S4Š5€?¯ú¸ 6„0ÖùP ýk€¤ Óš{¼ì‘¦—’gájíË=Š“’cxÚAòµZÏ ±Ñ“F3q Þ?k@¶£Ý¦ óm°ÙP–}·x‘ÕC£z°N gIça:9(£ƒDãBC'uüëŒ}? F€ï[ª{^L‘ª?Q2ÍØ˜y¾­'•~Ηð$Ò8—§À²’ŽDÁ™Ç÷­ ·tLJr 5E$| ¥â‹fž]âH=r™‘Ö¤}ÉW`çוLá¶Êk{±ï<¿tˆ,r-qŽlX,““ìÞº!$…;¿Ëaô›$æ`%cªý4-ž•m•Él£až†Ã!êœDXpQˆÙµ eÑišqf4=‚ÍõZO+ÞT²1lúH¯lÏðõ uÒy¡*z¯Íˆ tI¡”­ô:°£LO ጤ*°Cÿã"ÏkîE0‹†âxˆqܧDî5»z¡ê< æû[ ã»,à:B,§˜41§ 2uøéõèÆÝë¡|:m€E™Ø°Z1cÆeê“‚ìS2n"ãvM8ï1I#FèIÖÄÃßêªuF¾jèé‚üHš‘y!ùÞãé슡 —!¼0NxH,OM׺á`‡¹TçW÷÷ì¡‚%&iÀ©“0ÃŽæÎž 0CÕB×øØÑ,ŒµUÄÓ¹Ô =¦Ð¯rgÄl[-“ Tßs£‡Ñ…Ø—ËNp×g`œ—#Ó~­®è\yâK)ê ™1p] ª¿Sj,ÓÑ šï;îdè m¤tM¡ yd&ÈISn'r®Çz°—ø,ãÖߦņ_Ñœ°4×9aJ½X}Ð%Z²¤ÅA^Js)åt"ÿæØx›ó[|ÑC…ƒ‰£ÙRÈ{>dÆ„i/É4J#ظ(MÈ( ÑZ#gz89Š˜˜âý£Õʇ*¢ƒOÕöÕvjØIÍ]'µëgê¥8AÓ²Dh¿\a‹£WšªÊ ï%sÌØ+°ûž<9§÷¼\¾Î ¹1O{0šÜ„Í*aGÚű¶;fêž_êb^º«?W13>§‹½ _\š6‘WtÃ)),ó C±^¥ó¢bû“IÅAŒºŒCÜ?™ DzÍ‘ýÍMæóØõù<ºL7Æ+Žýt~ܯúÀ° aí2w\jo§‡óA×ãÛ;%”B‰ƒMhãyÿX>¯û#ö¥•š*^ ]OMi–²æ<ÅIÙˆºÃ`ùøÕ¥Ü*,êqZ»‰@ÐVw^§#HÜ“k¬¸ñ°<Æ×5Àæ™®¶›¬òà&¾GQ%#“_F‡ ‹Î`ò¥pŸµ>Z¸tÖ'rtë«ú A@ÚP º$¬Â«¢‚>A¡qÇÏÓY€6³;:§ß­yøŠˆ½bjù¼e«Ì%; Œ™±½»¬þÁàÆ%«Sf‰'ÔûŠ‹"Ðä ~¢#Ù;õVÆäü öZLììæ¢*j’²­]U4¨Lµsù ìm·ƒEé]6˜]½Ë;,b€ºÄï@$’âKs,›®e­¨êsmÔqúߤÅËœà ‡­¬‚©÷~ d’hE¹Ü[?æb!‰1$'MéíAáRßkÉÚ¼¸ªá…é¼3‹ÎËsÙ²çgÇɹÂÀ–aÛ«¨Õä „¾Ò«õh·E§?5Ú‡%¨â ÑEáRêURÞ5 Ý5C”yñ,ü¯M75º%ÛØñlZrnîÚèÓ°;c«‹¼–íažŽ~bÿú9&/I3PyÊÏtâÁ¿o ÔõØ·3y)wvF¯ “ zn@˜ÀÐóVݨà ‹¢Œ/oÊŠ¾Ñ`VFJ†‚Òƒ§øª¤(ãýÑ&\¿u ?ߋڤKuuæ;'*7ä1Þ_ø4j;eICI<ǹLî±F2íHáÁî‡ó²rK IÅ“¶ò=)æÉñÉ|›î¢S¥Q]ÿ_¯Æ@À¯›ÿ¡W“¨|Eü^‚ióE‹#:d:d²$ `šÁ]œ*Ç“âϧt×ñó'½x€qvÙ˜GŸ¿x¼qׯ еñVáF. x )z?÷žw.…¢µ«)×ÓâW[ÃtV.àNŠƒ5.ü°“~ ß¿²Çg0“ërFu«—à`ùËKY>j¤ã4Þâ+ˆ†Ñ§å—}À/çàEô®—mgH‘¦~¢y€ŒÑ}Ù°£çÓ½’‚+ïÓÎÎóÇQÇó2ô[Å×xæu½E¨ô3À¯ »¢•.3ážö±$ºàצò1¤çBçŽ&û{r½ Æ=¸š:'uLWœÊ™ú:"ý0&W 4ešE–Ò'4Ôxg ’ÆAxÕ0ð-Áx}Â&¤â¹{ĸŠïÙïÉlª å]c² Ès|²»¦¸nÁb£ùÒÙ_^¦@y†>%ìƒÃ+{Ñ/ÁƒÕ¤ôúøcÅÀw%eªyó÷ú²›^¤e’·-:¬S ‘GH–™ ì¿ußDSÈl÷='T‰úÇøok÷ÉF»ní¢qûqƒÄßÜÝüþý焎endstream endobj 1371 0 obj 4206 endobj 1374 0 obj <> stream xœÝ:Ûrì6rïú n^–JihàõmË[yðÆ©ŠwU•ëT™š¡$Æ#rLr¬£dó þï—¦¯8Ò9öyL,×4Ðh4¾?%yf’ÿäwÿ|õÕ_«ºN—«u«@-=¶›,Ïëtì¯M8U›~\µ»Mïûî¹?(\¤ót> hêtu¨‰É5é}7+V‘‹®Ù¦ÓC˜-3µ&íN§y:ÍC·z2.]_O}¨Þú -p<­ýç ó¤ –—§é|<\¸ýË•±Éí·W·ÿü=КŸ»ã$åŠ6³•ƒK»ia—§ó*`Y¦Ý¢CéOçîÚ´°~‘þÌò+›´Ÿ—L0êô›Q‘Mú<-kXaß-½RªX|¦Ä]W©òѦݬ|ÔUÚyZM:̳œìð|Dq3%£ÖU»ñàÉ}¯@S¦ë¤´mØo›öãþ8-}˜§ŒâBAíÏ3I©6Ykà˜çnÿã5 Àæ&í×åFÇÚôeXŸj@<Ä;Ž€RmŽš:m‘Žççû~¾ùfJä߬j‘¶áì•´KÏ˹;†1ڕ̇EF%‘[Ö & 9¨¬f-S<ů ЖÑ•ÍzžÇþ€"Z:G—>$÷¯Ésß ô&°zBÈ_ýµvN¯­i²¦ªàêÞ®Ò¯>^ßþçöZ»Ìòà÷i2Öaøi± àR¥è@‚w"¡óÏh¥q6ËüµÔXÄþýßþöÚSYË2ZíÞïûc?ƒÖLÒçT‡˜‡µ›B!vA‰ ¯ÿ0w¤©m…J1>†>™|$‰¿ÃI’üwùÕÇäq§ÿ“üY‹çìh’¿±ïÏùãg–Iì‡ßžò;W}¶eÒd%m4·åÀîÔ†wúäý_n¯¾ƒ¬³±™uIé*šKž¯L“×YÓ$`íj˜~Œ:¬ÍŒÃ? ò‡²‚ž‡˜PžA~ÊÝ–kó¬(¶„0~¹ TVY±áÈUí!D¹ ä2סO¥Ô±`$§6À¡-“6™æÖiIö"‡²lƒf¬¨Iv¡íø:¾yfen-o‹€é;¶˜URf…© 0}Ç%fYká×cúŽKÌɘÉ?ù¶y5§©@œ¥WÈ‘ÃæŽQæƒ{ü, ¿-É3ô´.)å™+¶”€É6¦„‡n¶„ðµi·çC—RÇ#ÆXfsæÔq‰‰jS¢môˆ:Ø2ص¦ÀÂBIöÊÁ^mß;Y‡q6ººˆé W7tèÕ “ÂÕÉÕ óäêúu#Bþê~Áy8Ö¡ÿ7®ÈÈâW ôÊøÆ…½qaV¸q¡Oo\DIn\DInœŸnÜ -eþÏ\ˆà>wQvEŽÕÃJãä?Ù× ìDíÒ?KôE"Æ¡[µ ëBÊ.X ´pÄ-…«ÕÖ „Dœ"VjsÅh”±4¥“¢ Š»8¨¢v…u _O܆û4®ERZ¥ö™Ñ©ÒNK‹qH¦>ÌÓó{„ª:T”Öç8q¶ßïÀþ„œ˜Âä?Ç"4ÅlR—ˆï uòï ù4Ê«êFÓ2P\ÈGIÇÚ íâ×(‹Ógª§-Xo»ŸÂÒÏBÁSTŸk6ÙŽËmæJÙdÿ,P­üL£ŽKž€Šeê/ÒCÙÔó0RYˆq)ávKÁ?­}žÁCµ/ûòšT€£¦úy1›ÎçcïĚϲŸ‡{O¨æz‰b/ÆkPè=Õ¼¼SMrNŠ*;´}†E†rØÕàÓ—~ÞX¨ŠJã¨d´„ZIáW› º-ß Ƙ/¿Héå)$_b*oX0Z‹JT½{–ÞÝèÃÌ/˜5ï0\KÅ¥nl—"XlÃÆOÓ² ÷Ç^z*)pKûé½ïJÔù½ ]â–†*Ù+‘S2;`k›Õ>ÞÁÕîøžQ†”ÉåcKÒÍ4ÞVšÀÁ5Åï¨fÞ]ga=*‚„µçˆrxÒîBs>˜¢éúP‡b´1¢Ëªü©2 å&.Š­T×QÄטOþÚbúìà‰˜é2‡£¥Gnû—–Â4¶­j!P•Zøg¼’öp¦E¨l×ÄŸŠÞÔ4,˜ë²Õ"äÝÝòrwwy¢²®ÒùÚ!Ú™9þL¨m6¹¼#þ˜¨‹/ü!%ÇÚèéÝUêèÃ!ÛE㋯t£‹¯ÛÆ‹Oò¶¢¹"’·T±×©@²,blÛÊ×µ ,¥@hø$O§¾›épòQ†G - "EàúxÔ‘&.üzl=d¢Ä~•磖¿"ݺۯ!:Cêí n´é"ýe^Ö°ÑXZs…¶ Í®ŸßÝA7 >îX7»ÝýNj\ýx ºâ%lrß-K’SßO;üZßýá)›l¦¤Ð¼ Å®Dòï %ãTñŸ°—;}¥ Ös’ó'\ÿU·¾‡R¼ÆA—Ø¢@YCZA(@•ÅOê¦Îj¬ ?¶I9X•[Û2kªdõ‰q™½¥¼‡Üíýµ0Ÿká­·1ˆø1¹‹]"Èü·«}IÑ fô`±¬‚Ù˜(†$ØHGk‡´!Md0¤˜¾ƒÆ90µÉÜi…"ÓÄBÀee-I ã<ÏÉeEœ‰ÆÉ=~xI pUËÙê¿’$X=Až¨ë[Ò¤´sŸT‹FTàA³aS 0%~ÝG!ä`-17mKE,[€:Àï1ê¬ÝPÎrßÕ×2‹ v8ò*+ò(Ïa—E½Iàq6këMžmëòH)š"Fª¸ãB´%èX]Ç¢™ÔÐ÷F´?Ôçn‹êB×Õ¶ÖlÌ¢õÔ®•Žû·lg`.xr>ñ‹Œ•ª­ºúãEþhø¡Š²ÿ:»Üêw„œI£§WÝ3ØÉÒGU4ëMB¥X­zLb‰]Fܵۘ¤Qw!35öaDÏ¢_Š*óa X÷ý¾;/žd)‘Œ–zóºB{%ºÂÂÀK`‹<çÍEB¹õ‹®ª‚'e€ž P8 ©Åýéà=!¡!ü(蕟Îií{¥îù€,¦/£ð_$%,ï…dò dÁ1ÓËš>⇲¢ZÅ|þ}‡L”¬K JL„ÂfW(Þ†Þ{å”ê…n:,†¯Ã+BN¶¢l9Å¡v£i¨gý~¢Ï}µOûp‹Xg~ÑF£ÑLJMzMÂceHR‘Œ•ô–¦=}*£"B$ÃaVl>ưþùt–ì<Ûå¦å…ß mé>ï ° e[‡xS%WXpœ®`ÕY–ã"ØÃ ÿ¤†0Ú5µËOîšQuÓáwuÞ´ÌU]Í|gºê%ÃüІ ßû54¶W¨[ÂzÏ0#z§¨(ëðÜGët‹.ão¿mM/{HÁ°m(Å£¦|9ÏÂäˆo_ˇ §t~{J Üu]ùZâ %—¼²“º -PÁýì Ø™Î¸­ê+˜¢¿2„ {ó–7ˆÐò˜·w4è‚·=?BÐU6ÌÝ÷aA)n!„ö‚K~®¡xÝ šÓy^ŸÐ•4 •aƒ¡ÆŽV,æ=çBó¶ vIÙ„Û3ÍTlúã(úººh8Z‘5æm~ZÖ¿•Ÿ–¢‰Ïk½aì4O¨x”£Òp›ÞdÊ@O˜ (G’…Ë®ƒ`sˆjçÓÓ°îŸzzÐ ?‰¡*ñÀ¯2Q‰±ÔA«6µáÇúj7Ïøæà™T;¹´Fm¸ëú¼Nñǃ¿ë8ök4L΀âÍT~ÆtÕÎò´)Âã2·»(DV¿+@{ìÇ~îŽ>]à~8)ñ7`ßµ m¬¬`½Nú° úŠJ †eÅÕMñýÓpPÜ2ýU"ñ…Î L,ÿÐ ¬ Áõ'æ­Ý¼ÑVã+¬Y û7þ:#ÐϨÓ¾W–2n¤’ÇïŒ"¬Ÿ0Ê×§·4&à‹­AÞVSŠ’·ÞšÔHXîÁß(Ù=tk—Ü¥íÝµÏ ¾»ú_„ {endstream endobj 1375 0 obj 4126 endobj 1379 0 obj <> stream xœ•Ë’ã¶ñ>_[ DÈàûꪜJ¶{ª|Øõ#qF´)R&©ÏOøì/M?RÒÚIÍV-ý@£Ñèn4õ³ÙE±ÙáŸü¿?=üýÛ¼(Ìëô°3¯??Ä„6òßþd¾zB’23qlž^˜/6…3E^š§ÓÃG»¯ûÍ£«²È©}ntœÙáy®Û¾9èLnŸßu\ØSýSÛ¿ø2)k^Úá%Œ§f?ô‡zTÞä4õI ¬°ÏcSÿ4E:‘Ù§c³ùá韠y§¢¹+ÓhWd ýÓáÁ~D S7œ›6O?®¶˜ï€.)…°îL$ÅU'ŽñYÒiØÄÀ¶«Jû™Fqê,ˆf%²ãh—'…È>´c³Dñ©K£$MÍcìXìÜn`ªªÊ%¨ÌJÛL[Ød–Eñ.µoÇvdpæ«?^¦YÑ… «ÌÒN, Ú”0æKñãÜîëNé2{¦vn‡^g*>Z!³u6Øêr©x„Ç…1œña!` ã—aTþôó:½+3øli ›À5£Àóý±éÉÞhÁ=<ýõ#š`¤Åó¨ˆa×HR;ôÝ»Bv~ó‡6(½³ý07“€.¶mïék%ŠÃΑ¨°í¬ãʶ æº; Ó¼„7œnžföÍêwåHJ´ýÔ>wM7a|Û~İÓS@¾µóqÁvlÚ1NssšöuàK¨:³ ÑzÙŽHŠŒÃîŠî€^Ès…m6ì¿K,ü¨øù8\^Ûi85s{B£"8ÛÉ ïšú@PÆ ­"IÃ2KûË<6§Œ(àVL]ÝÏèM"€.t¤ûƒ SuÑóÆÆïó4Æå€q@ˆ¾Kìií lµ÷&ÇØ*ObÁ¾5tcK8Èå•Ú$t¼•Ýè%<.ÈKTÐÒ@¤9a‚Oè JÆ¿â­Ö%jº•ƒ…Y¼É4^Üsr&àø¡¢9Þ*Ô¾ñÄ- ØÓÌÃ`öÝ0áèµAƒ›¶7çvÞ#ƒ§aðÀͱ>Ÿp!óÍ¿¿7Ãe>_fàïM3ŽÃh`ïSýÚD›¿Pf*MœPð®¢"£{m«¨4ß›àŽLrTUi¬Aà‰½,ƒœQbb™€ärö—SÓÏS˜âCjÍ š¯¬ŠÊÖ—n øæxéå*$€±ˆÊ¬‰3eNç!”x©ß†Nå QUKò;E@v]¬· ‚¥ÇC¤¨Ô~>u?£»Öc[˲¥‹Ê˜î>“Xl€Ý)ÑÅÝ ØUÝqªž«¤\ϘĞšºŸÂJä{$€næm®†;S¸DÒ$E¬·ú|¨aƒ»$/4!‚°ÉE±,çÑu€ š}²ººs" …*ßI‚·»^„dIUê²eG±sŸ6QØ“Ö0QA½²úo|ö®*£ô˜8¼ì28æ³LÃùwI M-tî~WÆœS Ž!§öÃxª;Êf4“IêG ­ì©=ºÜAE ®³X›Û4×›¥Ã6(ùLè Üã26©‘DkAï!®¾r)ˆNJA–uÏ’2‰vY¦fV'è8%Tª•VwSi=*¿·ýÊ\¹Ü–¹ãi¥¹‹¿è»(qe%hÃ^ 0!†.V$K£¢ŠÍ£+ðpJV¢ÔàߌMמھ†«Œ¶NÀ!ßo¶Âñ,ÕÛ££¥ À9r4û…Úߎ%Â˸Vž˜Ä6 8Ú 6E3?š};qh (7.#äNzÄ–rÞ¢•5Z, É1²Õ…!¨+ ˆCMÃ.‚¢˜§Û×cƒe“.D…«²uÕôÞ*9ÎИD@•b—j;‡¶Û•Q:±íXÚá”ß:®•‡kNª9ˆ ª§q¸œ·JZ‰- YÞØ§¯l)SdKârbK’çí$¥ª™ä €™‹—ŒÊ]Æù¸6Ú¤æS*´…BùݼŒÃÉ`~ÇMŠS¢Ì"SÄ"ÑÖ™O¼ ÚÚíà íwœñXÖ‘2Qs ˆÞ'¨ È΄.Ä®`æê:/9”b;Ê,RŽ:w]ŽŠ x*²Ó¬ój’äâbB>5§–Xn ») <_÷a,uªZ@8œü¾´äòdzwd®õ¹Èó#I¡2OýÃW8ØŸj<“kQP’¬Š â—¤Mh¸F/Þ/@§R’å"™¾ä[ŠÏ„ÔN—ç©ùùÒô ^#Œ?«™A—ÏípñûpáÄ–+Íz×Ý4”¦~í@n7Ë¡ð5™ýÐcs'áå[ïAãoý2þRØÍ½U1ð:ó-V4æE3žýÐ?òíÖ’¶?˜½/ý`Q%†gÊý*N>Z¬# úê Ay…"PBuùÚ²™òüÚ_…ºÕ18ìß¿ ÆRD¡zc;¿or‘©ˆÒþÆ¡xq2xädUÐÉüd¶ý¾»TõÒ? hùÌv5fAIÜRµ:hrëk÷Ñ5ÏÑì!ºæ¾9d>±5—WCB?G‚¯bxúQ$ÈÊ{ƒ¤àC•ŸL„óO|Ø4 ÀÕ‡¯7°Xcq¥/ÖÖ!§ ¼Ÿ¼ÐDa?dÉÞ¢bû!ÿ´Q@*)^$ÃJŠ.‚TQæùÝ\à¡×c4y|¨œ ¨Êóªú“ê9Í Bå¾eVåQ’üiyTD.þ?Ë#'åÑ£Û9(Ý ¨Í4=£ âÈ|ýBoA®ñ ¨ürîÚ};sòQÍÀ;r:Cfýl`Mwvk€0Ødº›‘>8^ÀÈ£®J]B:’×ÌhVÎy÷jß?´ÐMùW»(ß©>Ò)˜Ëù¦Û˜Bn.ô¬HtÓnLá8]åû,ê0øØôÖßm4ÂS±kËà $q/ê\NMD'€9Ûeá¯_t,—DîºBôÁ1D¨¹¥ !lý J•¯܉A,!'Ù[¥Ì¤˜Qí¤¨]¹”˜ý™D‘-´Ågv'%$v6ß¼ê '²*½hd|é!O{ê±®I×qìˆÍ$q‘“6,óØNß*s®î¶ ÿå2ËTX"^rº»žx|ÂvAÇØ_¬¢XSŠÅÂ)M¼]ÐÈ‘.«èuAÙá-˜þõ=,œ³Gé ÍØ`à›Û°ó…ÈÿȬ[ñÛÈ0?Æ ½¢¸ @Àù#aRΆ2?DRk"¹éª‰AÓPh|!/z5^«âލÌ’åºNýF ÇÌŠlå;žêSѹ} KðsBˆÀ§ö´‘hªô5‚ÿá²×q€ŸÂi¾î=9lÍú5¬Wr“‚‡ Ö [áKÏbâë3WiÑS$}vô­†cˆJXwY…T>ÁÜaî­÷Å,Sø‹Ènù¹‰h ëc¸ÐVúRw[¹ø W¦]С5"¥DÇÑ8¡}ý$Æ·oíÇ~C.“?Q/ôªF(÷ÇK89^’ Ç+ÀµW‰dîW¨D/A±B+aÞYŸ«=Iváï0Kå-( ¹Œ£ÊûÓýÚ[CmF7µ°ë ÈÁ?Œ^xå Ph©yná~lC`£@u9ß„›<2O+â€]‰ø }7õ´Žäš³(ÖFZÕ,ÞrËg\rç'O¸×qã0ÞfðLºœï=ØTÐWØNsPfÇp©äÁ±~` Ò;‡PY.Ó1s¦ÜGÅq±ä,$d)£\Fµ½Ž2ãW¢ä+"­Bö2H-)SDö‡xëå}paLßUEÖ‡ÄOS“tÕàrooö¼ŽqRUêIêçìdRe *‚vuí&_Q?.Î)þq:È!JøÀŠÀ²9‡”EÁN.ã¥@"¬†dJi…ÑZyØ}yõUñ¥æ æó9SÙ›.–†•‘AS"³Ü¤D&úBJÜÞ‘‰€ö_|TFQúâØìp|ÖÅ-–ß+Ò ,xø\èº9+zÀKUdÕOdŒÑx¨ÐòÚ+97É„pUÿäã`ãi,v"=0ûu¿Pô‹,ž’î5ÿ£€;`ÆPeït°–·AøJ'>³õI¼!¥· gP‡é&^ê7œ\ª\j%Qr}"€4èú`ã;„æRIã¸àžµPÉ·[Bd’"HKî«Ñ…!Z;ô÷V‚[&ùŠPµ‡&,Ë}Aâ_ñÈ/#ä%($?J>ßiddØHá{€ÁœwÜ ÒÞ¯¥ƒáT¥¿*Á_þ¤Z¢¤ÑâWHU]ËBBír<)u²úecù—<¦¾ÄË{ ×ú‡uÄOü'?IAÎ|%å¹ ,þ”x#|LŠ ›.ÿ –NçD}#ÉÞ¸mlæüeÕÊÉðÓ]ú¿¶rª¨ˆ2määe”‰y„¨µ1 ÂÅØÁ­ôã›ã\ÄV‰Š-°ø©ßÍõgHõ\ƒzÕ§ ÿãéá?ð÷_îIÄ«endstream endobj 1380 0 obj 3449 endobj 1387 0 obj <> stream xœÅË’Û¸ñ>_[¨DCàD²µU»U9$•TmÖJåàñ¢(‰1EÊ$µcå#ü¿I.éÐõË^g·|0hô ý„æ=‹BÎ"ügÿ/w¯~̤d›á!b›‡÷\o3û_¹cß/4JÎxÌësŽ3)˜Ì$[ìÞ*Tl1Ë¢0ŠTT3ž†OdðadÃØ×íf`u Ÿ…Þ‰$~ªØªøíâÏH=OçH]¿<,~û&x]•cݵ³G¡TÈó˜pá¡M=È%Ë‚Ÿf< UžæA5X«j,êÆ-$A·ö›ã¶²@–þ*뢡]¬g P.SeÝÔcíè*G‹Ñ‹QôD÷û¦.‹eCKJ]Û=§±ó߇vUõMA»ytýDX§ÓD»SôÑØ9Š3°ó\[’ ²ž‘2‰²0“ æH£»R ‡vc¡ŒϨ¸’i²¬õ4Ǿ.‡§ÑAÝÒ¾ ¿ â" ¡‚®.£`_ôcH2ð`±­| «&9´%«Á/ áûDo¿ìä}7U[õECJÇ*x®Çí„a·«´ÁÐT(Z]š¢G„(ŒAáuUŒ‡ÞH+2sÅýÔ\»ò ¯àÂÜ‘ŠcP_ÀnK¨àjÆZwÄ‚ íÚGrƒWÑêÊ…kôìLñÐÓüÞá$àõÚy•ˆÀЇfœ{™/ìfNÛõ$P7gØ«Õì1…`“prY5V63?Ûu!S C(™*c÷“T_•ÁU`+Z7  Ã%t-Êo Ä\yÔ}7Ôè3Õd­(KpÛÚœ1g8åSs Ý ")8†Ç‡ «Ð#-¶•MP’'6A¡UތՇq­óO†1ß^$²$ ³Tå*+È«ºG'ŸøÉÄ."ËÃ\%ÚBó íÖji6„É!øÅ&s­´©0éÓzB®¤Òž@äŒ]-dÒÐã6_ÑO>Q¾³Üu&±GÁZ^—Î2•U0÷ o'³kȽ¶å#ð“šðã" ó\QËbÐ IÃ<ÑþÄœ½.²àÇj[ý€ Þ Š`Wôï B6ÒÑLd ¿î í±v~ ŠÙI΃ËðNÏ^acHtê$± wÌ/M½ÙŽ˜BHøU½6nÄ1Oõ\& ”j!ë±§`öôX!¬'Æ*L"a1øÝlñÏ?åô"Wv›AiáO³±’FŠ=bQ†M }ÚGƒÀÓ±=¬Ãâí9‘‡2ð} ”iǸŒB—©W¦ü ]Š Â²Å*ƒ|bª¢^4E^è*Pn‹v£ÃÛΩìkÌ+ñ¡7b—[èÜ)UO#;¿uZíÜç²òd‹åÕ8ðSʘBÁ¸äync#SèÙ\hôœÕqÌA”Ѥ’ t–²ÿ@X Ò­ýæ”zp=f\ÈLV1Ÿ?xaV~yb2d ‰ÿÉë{®®=cŸÈ'–#6·æ°Àõ’‚áo0¤#WPb¿Ai*ª±ƒÉ¨fwék4U¿«u‰‰!)÷y¤oüð×ÌG³ÆAè—¿kàX[\wñƤ¼(NƒùEiáY&\|*šòTP0ékÓŒ¡op×F &s#”+LÐïP^?:uðÕ~³ lŠÒ'äÕ”NZÞ“Òµ«BËŠ,ñ¾ª X†¸&¥tç:¥Ä]téA"¤õ8ø®uëG» sÝ®ìH uÒ8`â¦M£(‘°¥Œ/@¤L2Í)Ví·"—þ€½~­³!šÞ¾Ûx±DùÊb¬&+£c1÷ÐxçýÝ^Û<“acÉ'lždSdSy4à+'‚™µ²ÒËÊe—kB[h¯·t/Ó&í¸^Ѱ±Ínê$Ú}·+ZO•_Ï8N)¤É[0:·pçñ¤v€ž ~W5ralÖ®÷iÐuðLRÐÍÏ \ŠñíÛ¸7V>Ïô`~†jEPªä›(L¡+':Øï¨ðM[{.;¸1ò›õrí’ÉUêPâ!£Æ'iÁЧd¾m'©![¦ŒVS*¢+rfóZ¥4²ÛNñ 6L+i‰o«¡ò[ïÀûB=µÉÓ™òÉÁ…<×!HþE`1ËtÈ( ejÊ.æq5ÉffÁÎæðÍ¡$–ÝÊ,çêÖŸ+vn4(©Z'¢ˆ#úš(úª(o ÇÔã¶&lH¨Ö¶ú=ÒEšêfÒ(=÷ 6¤ @›šF¹h=½eå¿MZX‘¼RWÇxJ2‹ é( ¡~Nê=NI$¨ÜA€ƒ[ÃUö ]Íbâ½O@œÕûx{¥ÝÔâ,ˆ /‚ñ0ÍCXï4NoϨ‰b*…raÃuô›KLj»|£QÁ³.t„vôh]ë;H¥„‘. vv:„ptÜë(™Ó>y¾Pèú©—` ]C´Pl¥6[Ò4éE#ž«ŠrKPÐÙ1ÁJ¡oÓž²qHàI~ 6 '‚v¡“:8}=2IQ%™«ºÁÇÑßS@Å1EŒp3æ«â<œ²”"I7ŒÆ uÚ1PÑÔ><ó{Ìœ^añKíÀ7vOÑÉ,Q¬llíùQˆö[t‰R<‰=²“Ù‰­j<Û+$Ò/Vó6Ѫûúvœ£¸}m®Ãˆ¹ÙêE‹/?%š›±É{vé ›‰û¯ö‚Ñ/}µ~´Íäç*rq¥ËÃ׳Ý$õÇwÞÜîëI0g»z5·ØØiüÖX£wDž_Xk*³}»;xuhô;Ø5Y¡ªÌÖMÎcÿ3ƒu7õ¾h‰®¹mŠÉ›g~lü·¸ù­_šù™Ùé™ï«mo<„m‹fý솸¸e5>WUËL¯|“%´;×Ùx.…¾ü~dÝš!¾&¢âœ!YŒäÈžø÷9}˜*&†ƒû†áNxõ\µÞ´úwŸÛÜþó2·òö-•Ð÷&½ÒKµÐó‹¹÷/`VÝfV4  «Úš\#É~»ö¦rÐsáå3£â'7ù‘$Ì"™»V™1ºCw…Q’ý2vWÈp¥€d>ú¦‘Hhc*¼0×gÈ~bvqP¥÷YuÙ}¸í :§Ò°‡?¡ÌáÁ êN÷s˜ù_­/^/³0ù*õ—çºþ h™ÙòȾ¡7GOâ"ã{豕 H•È`ÓWî1É+-3èysùþ{/LÞp–îþ?}ˆµ!‰ý«ºbΰü4ÙàÛ9{†)iœI–H˜#u ,Ñoõ+é·²c+¶dí5׈ –Ë»îõ–ªq&yìU½èŽ~!U›j=^ÑPEa*Óäçh]¨’“n¼ÿ•4ìñçàk*fa¦øgªÚàO/æ®ýyòò]FÝth½ù³.ò=³ºa|]öõ~dOø"ÌljÅ_å÷€ pÛŸf¦OÄ1…ô¬ÇDëÍ 1tnK.yè®òõXØ¿$n ¨òƒÿ´Ÿ—žendstream endobj 1388 0 obj 2893 endobj 1394 0 obj <> stream xœ­;Ûnì8rïþ a^Fl¹)Q· Yìûì؇söAÝ­>ÖL·Ô#©÷#æ#ò¥©+IµÚÞƒLà«ÈbU‘,Öì_£Mb¢ þÉÿÝéîéÏEYF_¦»Môåî×;CÝ‘üÛ¢F”*Œ‰žw<ÎDe•E=Ÿî>Å?î³²L²¼Ž›þÞØ¤®Ê<~“Ö²ŽÅ(êx~iµ£ŠOýɓÍ&µñW˜Wq{jûÙã ç¹úIâfTEí¹mæv/-¶ˆ‡Þómô³Œ§yìú/:2E9ºÑm÷)bŒ‰íN¹çq§|ó,Þ]N—c3w€J›x~Ï/!þ$»8aK"ö·çÿ¼3iôü§»çú_¦öp9BV'Y¿¾´½ `£í&œ%¶ä2ŵñk7¿xÈtë›7Ö—Qxy´5Ϙ¸äñ¾ý­w\«¸Ñ®2 y4»qxÐA&ÞÞ›:©ë´Ž/³—©ëý÷4œZϤ맹éw-/.Kß¶û):\FØ£1jö?_¦eN¢ç—vj£ùõÞl`³lQËóªâoÍé|l§è¥¹O¡w³P©m7ß" MÍ :`ç¡§Î2Úù&)žþ\f™ª|=¦iRåY=ïïâšã±¿4ý~øáéR<íÓû矯›íý‹sóxE…O-+ä Û„jBPeA3áIŸ}¦®æ›âAZ‰·Ù$i‘éDážfqb³$•Îîóc+ ZëÆ«ÁuR}çàíï`¼½üƧßÁßÿñðÁàO0Zv-‹‡qµk  67*æÓaµzhŠÚ(5<•¬E|áô³2ØTlSYaòøØL³v-Ô'‹çæ—{<›…Íc9oœ‹2Bý$F@|×î[8`×Ò¢J¬-IWù»ˆ{¢HP‘“e§ï¼@)NÚS°™æ®,™»-‹¬€š3æóy;·¹ÓwV/gÐ{ ‡q8Ý"Ãi=dýaóxy3›&u¦[ùin¿Í[mA Ëí·`ßÁÒ õGk~bétÚ?V¼r›l2“}ÈëÑ"ÙÜúxAk›–…,ú,¬Á¶¥™#K >dï×SÈ*Рœ×8’ÙçÞÖ¼aC/¦ò°60¥MrûÁ9/’Ô.•X€r4Ót9µûD™ZpíØzÈäÝé<ŒàT\PÁ}wp+"  ~ì¶_qQV§ \Œ5æ}3óh3ˆ…êB—¤Ø_Ÿzr&`µ¿ÃdЩÏp½Ð[ö{LÝ©÷p|Ó¦ú]¡ ø¶ªJß7Êi–Ô¦Vþ±ÄÛ©Ä ù×—âde’æeõþ.Äù$ª ]çv×ýÖîݪþ€ÚºðäÛì›Cóèâ;h( !ø Ø¢G¶bi™'yرK¿oÇcƒëIiJÇ ˆ~CKDíÙu¸ÂÝ<É·5ÐæT5F”—£b;ÎÍ8w»æ¨]U|¦N+lI3ž}Yꕨ`²ZÒõ*]°8&~ŒDšBn7ôóf.h¢ˆpµ—u‘ßåüX“eš¯/ÝŽ‰=ZƒÇÑ/s×ïaÞ3„]µÌUÉ:ùÛ‰ E­2€Ò"ÌâJ•³Ò8{¹Õ)(˜¸‡T>š.ÛŸÁGó‘–5Çè<ENàI¢};íÆnÛ&4ÛCÕ‰Iž†Ùd0³ZB2›‘,`œnœ$LsÞ4Ф*R§ú>”NÑPI(ÅÇîX3·«M)@„Ì-ÈGqo %ž…„êÛ®=S rãkf‡ÅzF=Õ-=f¬[jL=e¨ÆDÅp.‡ßx¤BòׇYšyZ-I@æcNÝ~ àk&¼i°E‘zå›Î z l pôjP¹AO÷¦Þr¯w€Õ"QÐþŒí·©Lb*éÙ¶ÇÁÖWÔQ€&¨&±¨Áø|íöíÞwÍt’ é¾3#]ÔyÈ_ÛQ9Öš¸ñdý0ž`û®UÌfpëò]{Tº}OÁ`ìøJqW æy¸1âÈs\2˜BHb’´™¿q¨qi.bqŽK= Lgˆûfý7Þ¿õÍ©Û1î©a2¤9:è—ý¹¤îm;4£ UÇçfœ§Ä ø•Àêɣǜ„‡IÈÅ š£zíY¤ÖdSò\\§ µ„óuÁÓrЦ˜‡aÔ®’kü„I0QZÐLL×ghÖZ ²µ;P CAjië÷-]™lÊʬ,<±÷bnÍùÜ6£Ÿ{ÀzÛ³zßKG¾É&œÔ¡›¤Jܶ»– ‘MRÀFvù¶©úSrµ Á)>ÌÌÍÈÙñˆÎ"h'î)î¸Ù”K“À´Ä  Ë©þƒ"Ùøï-—CˆhÈÐ,DKuÛ‘B½Äë[ÇýÛ Çb)çP<Õ0ä”ó©SÕÕ³Žrºì^Èc#5ŠŒØCºRªž_¤`S™ü¦žMuÛ‘ð Ð‘`‹ñ;Ë×¾šÓÂÕ¢*p\Òj <æ"/T Ýí†Kï(¦K¦nR@ ÷¢@È»Ú^ú#~¾žaMN„_Vû`¿wlù!±4$>–jİïØ"  eCþäÃGîµï…ÊlöÛ:ë¨1<*ÞÏ€"„j!@€«P œsYlÒï.Q–ª®‚©Ø`I8dØÆí4/së1½:)[s²Eb|eì_X"“£[{úëù@¤,]ÿºš‰Áœñý¥x´R¸Ì%•OÛÿ7Ö¾+YqMÍu¡rvÑstl¿¶Çd[â¦î[tÀ§MQ³¾¶\›¯íOMqÿ# @0ÕÏoŠ…aÎkˆµM7ßUãÌ %­Ì•ߥ֢ Ý§ot÷T%¨Lå8MÚPheJ)j*I@c-×Ös+ Ìæ‹„¹m¾„``¾¨E6‰^^‰ÒB>¶WX 2aÈ[¦öÑÙâ_/ì@L“ƆJ, |㉠oX ð±ãAIƒ‡‚êxßq%]Z°¨²Ô¬-=‘±ñg™ÈVf˜¤²žJþž¾`ßöRŸï½TŽeQ®Âg¥Jà;’½7ZCœ"µÏ÷¤Í Ueoò"óá2E¼t×½cI£ááM—d¤o2&Ú5}ZCzŽ·2Î%5ox‚"õaÑ–/ ÀI#©už^mÀغºÕº:î+ÜÑ0F+Sl1OrÁÜþƒábEвò…Hƒ¥:8ÉlI`‰‰þ8ŒÝ߇~†T»9v_zºFºö)—­Ã¸K£¨ž~4¥®|làˆy?ƽ%>rŠŒQùÃC ’ë·«(Ã’s üÆ 4×;®89ÿ­wê÷HÏ‘¬²«ØH3dOù0_F[$Vãºk³¤=?„a/Vy€ˆõ·q w/ÍØì(Þe„œ×œ&M8vALŽía~|áE'l·û/­K»E„ËåÈeðäZ‡9ÀF?xlC±in ´…,Ân0XPT¹IÁµ“¬bcA[ÕPÐ8 ,¾ôä Ì$kÀoN7Ff­$l4 BðÁ9 G135æâåINrò$ǹ YNçþ¦¸%‰›“•)©+ø ,›˜!›/ÓS^œ`j+C’WIj]„œ®l y_U-ª·2iC-A%&«J¼·ôÉYp´3ƒ‰üÕ‘™ ð¦«Æ«w2ÀŠge€¨X÷QÈ®«èQ)±)࿉÷–øäუ¸É—˜|È”q TÊ{*hÇaÚ‰ïûéà¿o¥ßñhÊ2šJ³$/³j•qÛ 2qYOü®òp£ ³W–»ët±94ÚoU@̆C! èN4}Ò@Ø@{Ѻ Ò6péÏ)?äÀ‰ð§Ã‚®cYƒÙžúÿ¹7—Sg©Èb9…HYÒ|CÉ'[²lᆨ¿Ôå`P.ñÛÙ9𫹥®Bí›ôq…jã\«ã­<ÿÀ™·‚rl‡eû´°;šO±É?¸‚å*¬Þ@¢®­Ývž»:öBüA1/€Y ™„ÌÄ‹Ìb½5(Ûr°4ÍÝñíÛsÛï§hè)"Â5å«1ºèu!vx¢NJ¦R÷IJRƒ…+óÛE­:ɳ[·öFQ+¯6nÚ¿^@5~£j­¤ B ôŒ V›#~«]!¼u Nšýû#¢ j¬Eêù¸÷Q2ª¥Ô8Š)“Ñ ,WyPø €…s´1 Òh@úćºa²c¶LŒu¹iÞó‚ΙDáš"½ëõGºÖëm¿Ú€”‚”uQH¦ñ®Ño0ÝÛÖki  M»æFùšƒœŠ@.Õá×s%¹²«2WªC Ða¨{ò Œ¤Òz%ón‚õP7†ÝØÊŒ³÷µñ**´°i\¶É¥ø‘oôq>%VtZý®ü«2g£îf=v{Ö ÅroîˆFÊ«Lßu˜¤BCZùgb„Pò-~C¼B¯Ã¦Äwª+D6·mfñÙ…»«ØÝ¸s+ÒêÖ¡%ŽÆE(™óŒl‰Àަð *i;¤kX ÐûaÃÊCÍrm‹ßçî€ÖH3…qB3ãCbá‰Á&¼”ÐCcS)Ž áZ.3d©Ï;¸Çð6½ke'Î`KN§vuzk ¸Ûö Ťʗ Òõú2ۓ¢ÅìUʶ ¬µ¦85©…[nÈ$¿ªi#äENMI òÈ(5®)¸b œy™RPkð«>âW†´V¶ò“ +AjÎçc×jƒ”—…²&¾vS·=¶^ITeMzˆËåÍå5"/¶¦0´Öè/mn8[HNoÔ"M²À¡õ«ÃA~<_]ÓMÈ…Èd0ƒŠL×úˆˆ ,öCÒk-£fkƒ\J®fk§V‚³ÚÇعziË© P‚Æ‹ö kZçIQÙ÷-Fpžø™é}¥“YybQJ FEíÀ²i…ØdŒäemQß0¤‘ØOŒjd¥"6’Q3Ej}0C›ýãõËãžAÄO/·^]Åj£Ë Ÿ¯ÐMÙ$ Þ°°LÔ’Ö.ü%ÙJùÞê@ˆ^šãáÕ×(Þ|»yç24×ÕmåèYD ˜¾µ8 |´X’õ’ÊØx|îfü– ¹<‡M/Õ|ä{c>Hjã(ß¹Ó_8"ãñ•¨ì ÉèÉÎé uOVrc½0'†=l•ŒYŠÐšh0m'Yq5·[e ¥ÇÙ XIä_ŠËúXLºÜ»³ ^°» YÈ£…T ,oÕ2)®ÕŸDlrzÛJ§”6`vSÄ»á´í(AèæÃ'¹cfê÷OÓ‚-]C!HèqÑáiÓæã]Z‘™ø!j§8Áã&Ca‚ä«>épGªNíÍ÷hn%¡‹)±»Të³{ŽZå‹Òö‘KáK7ŠÐó¤ª%¥Æ÷RÜ’f-`aÏÆ^ ¢Ù½×67»DD`*ŸÅøe°Îw7ØõÑnc]i„^Êå4]LíÊÕÆª¸øŠ›‚´àUM g‡Î)@äl®Ì9®X‹Y;v­a%X¢„¤ÍäÛÊìmÚ4ìãr†î Ñæ:®éƒgÌ|$3™®1úñþ8àyL_•t]£'Uœ>ìšzçWrº«Lª,Õ™/úyÐ@3cÞ/¹¢]dçt_ò”ÝG™\@òÝ;0šÙ,ß~*Ø0›ƒ†Œ]؆§Ë X¯ËQ UÊW—Á™äxL׊œÏC:\hÎÒÆÐ  4(iÒû…-CÔJ}§ÛµáxnȰ#‹cx…˜«~¼[&n;èÞFÕ„`‹„±B>—Q q™Qì 8­«ÎŸGtgoTQ0ÉÏ­m)ðj­]:¬uhB|ØxFŒ>4Ó.ÊmîmåÜ#€Tthñ òøg z62Z»&hÎÐanžzO·ê =š\-¬=šÐJ¶&:ÒtÐ9rE7›#9¿!HòS?Ĉ€R}QâÒwSµähré™ àQ¤Œ¸á†!ŒZÉF7qtÚU~R©Å„†VÊ›-œÁ=C[šø`gËgK q€ k¿ ìé=+ C¼ßy Aã]`ù8“1œ_e<ßÏlû¶íͤE &d¥›óQÁE« ‚fFÎ –‚¬Í²€¯Aç0–wcK`+ÇýZ`dÑÑý õ˜ú±™š ÖLMĨÜɀΠlÛ׿>4£N.Üt‰BX§)û¾mÆñ )Ó›*½$©¯þssOÞ‡ªÖ¤øúWî ‹DBpÈ0Mò,K±I2ÉsUUh…902@²2‡¢$ͱ(¢fGK Õ¼z*ó¤rÑ‘gHŠU¥™_›’'%ÆL» ͵|w|°S߽Źon?.Ày€¹A%'sØCÌÉ~ÁXž&\YÈGÚÅ»O–{OH\ #Ê,K˜“økü¹„=9­Xi€{Ü…„î&(@úíÉMÂoc'8n›qÙd¦[½V;4 ÿ…pÏ…0|(òƒ ¨EN8NïêŠ â ⤧B ˜¶Ò³ù÷ýÆr>Ïš±ØÈU25o¹‹ WT¿A,:8®ÃâRWÃè·¡&s`³ä´òÍóŠÂÒJç£×qÀâ'×È8ú=ï"„0œ.(ÄõãÞF»G—®u”b¨0ö?ÄÉ‚2#‘•¶×ø=3…lMV‚ Q¦ŒY ÷Ôú6ݨêÌæ’É·]ì;‡ð£_™¼ÒƒŸ5³â\ev¹e´ï?4•IEûc»‰ãŸÂižýZë.öúãt8b]o ‡ù­T’Z¸ u9­ê¦m¦GOhá©'ƒšÚÚ&$&È–z&$ÔYpFÓœßW¶,pàìýÃô9¾rSø\àÉà¦qOÛf6‘ù‰¶ùÕ‚5Àjø¾aÇ [›=˜¹6lc-cŠ^‡Ü„¨~ÐãgÃ*à°ïãŒA2ØxžîÄwü ù¥AZH”€qÚ(ÆÏ®£hUlÖUÛÆÞ\ïÆs^àK @7‹EÐýXÍS“Dz—¡£LDZꡚ €Ø‰ÕGe+8ìdç™XϦž(ßB^ 9õ~XÂ@š‚{Æa¾%êçR*t?)èp—Â½Š¤hîf†ÉÓeãTùÐ'äQôÐG׃bÞƒ6‹Ùï964/už´»ùå8N{a/notî7ö‘ Â{íÀ¦¥Á“[cƒØaþ´nÆçR;Àé÷½',0ÕPS»'GœÎ¬U˜vA7}8I›µ°Î¶€ˆb·xågÅÙáÝ’uUÿ:¶Õ¸‹à ä™a óKöÕcœÀLWýz%@žƒârý Mù`”J§ä!¬ûFì è[sr 3¸óð åL]Ù§âs?czXÇ’ˆGÀ2ö&™.œ¾®£ëÁelAºã¨…3°Â\Ày‘b†g5Šé;O5܆ÕíÑïÆý͛ɂ¸ÂØz—¯bÓÈ©‡8Ö…]»~ØWmÜtÛwSÜ6nÃìënrš¬>âöͻ©2d¦ËÄÒ´páZž,Ô[WÄ‚V¯ÃŠÊµ ²¶–_Ç+¥éÁzûdæ·7—'\ëØ¶oi×qÀ ·›­À팯À=ÿ§à¡dèÁþåàîîòé O²ðXýþ©)…H²y1oŸŒÓ¦‰€Èè>!à³7§ûãØÔ®k²Œ¹(ì9@n2º‘"|aÀiA—øÙ¹ ºƒAq®Î"A*áqou~,…zÙÅ'š°‚%+rÿ„³~vý{ÁPJ63œ(ùÉ1à’âG]2Þ´ƒ‚4v]ðXñ‚ƒº£¶kiÚ c p¨U%±o v »¯i—¥EF®½¯ê¡ý"fYÃéx¼¿‡nDÛù^‰xÖiý´»aÓͤ3BË:£m?yæY„àÁÿ’Èçû~òòz ZY<‰ÑŸKXz½° ±~øÌV?ñ• àb­Ëÿ 1±vÎRîÁ¯ñaÉÕŠóÊÐid­[ûjFtUï0²ë¿]–ÿàKåY1óîN¿Úè-¤o¨`_ÜÝ û;øë»;öâfm… ü”‚[Š«H N Ä<%à=@ƒßQ†ªúŸqä%#›y)H}õš¼ädýúy)ÉæÊ nW¯<‘›5£¯- ’ÎÇ «ÿÙ{‰…»ÂBœ[%ü%¼0µ0maÒd%a%X>ÀUÐ38AA½ÀW`É /ÀÁKRH#O‰>ù©®âÝÉã3¦XX›¯Æ”]<ެX’f\Åûkí+Λ0ï!o ACxjÿ&òÞ¼ ïÕA8 ²]ù—ñÉÁX3C¢¢{6%b\Œ ž†žÍc`F&«}ɬb(ô°_0”™ûÀŒKÚ8ÂKž8A qä*_ä 7ÊW wÊ—Ÿ–]á'Ù§U4ÉòÏ+²Ùƒ€«ÀÏ梢>2ØÎ ÃáªxÂXOö ¢?¤ùöO[#KÊ/µF?ù„Qzkò6ùŒ1ù ™Óg,ó™{Ég²?!ô§™g‰ %_j9ö~Kå¯.·öÎ!¦XëVàÖø G„„|…ïWñ’AÊ6Ç ¸Ã)5è9që9qDdIÎN8f,þ„ë€Ù™ë> stream xœZÍ’ä¸q¾ÏS0Ö±ìjNñŸt„«…µ[?»-ë0-G°Ht½,²†dmOoèüÒ“:°º{VQ‡B‰DH$¾Lðspˆâà€?ùoÏ>~_”eð´|8O>ˆ©9¿öüúžXª NƒûÇÜ/Ê$(‹2¸?øÖQß›“iæ]œEu'áÒ Á¹™\v¹ÿ”Påp¡„**ÓŠÿùáþŸ?…ÜØwwé!Žâ²¹ŸqØÌFˆ: —‹iûÿ3׬¬u®†¨ªð˪µa¿š³òTqhÆv˜'F-ƒÞŸ¯n¼*sÓþ¸«aRÉú®Kä$ÝŸŒëˆCçÑáþØçæÅ–÷0OfvÓZOÍH+'º0ÓˆüYy¶§Y¡KƒÄEIÈýn•rZ…ý"å¤/s?®4O¬Èò°9NºG[}å™aösœ²``@Ú'“­#ÆpéV"ŽÃéÑ“àq=Nãºwl¼ª"FÂ)ÝÁaŒÊ" îÐ*q*túq¯¡¦À»ØORSãaZú‡)K0TØ.e®ÂÙc¬q5Mç8IÓÛ^îÒ^©:œfÇt;x>÷ëIÚE8N®Ê•Ž6Uea³:Öf"Çü§ÉhZ³,Íü²+p×Àl9€"hÃwbé¤oI³³ê ýhÜp!ik.«“Ѭ[%tÅÐøïN¼*IÅà~Äu¨KÖ Ë°O¬U^š'ó°‹´5çcK22ÚâÛ…V±Qð9¯¨Œö®Qh×~ÔA §ç¾ëvz×¾6¸pÙ,‚j*Þ\-/^§¡MçOÓÜÿ…\Cž¼Ï’*‹âÂÂ3"ë‚áàSG=§\ðÌš(³Ô—ëICf°Ü‹-¿ H\?\o;†«^ÚÉ*62èD¨åìD 0Æiº>ì`ýh‹Þ`ó‹›)" DXŸŒDã-7XçÄ[‡ #‹“¨ŒS^:"@™e:›µ?£Cåª,÷bZ<Q ͘Šr\¹[z^Ô‡zßDŽñ;€h$ëÐè¦|ÕÐhŸ£q"=´Mè´s]çéìMÔi}ö:P±ñ¾û. €pµ56$w-°M ‰NSÛ6pM ›-eÀžh>Éö n²­ýóÁñ>„z½&‰\›IGI^0¦ ÿåöVÓ()’X!_ÅùÃn/Ü.“+Ö_ÝXÖ4ù½¸j>UÔ6c°;êïíâdºS&ö”å·ÇŒ¦«ÇŒV¹¤sFˆ/šÇ•‡øì©+6q@ð|ê[‘UoŽäh§ºH6P!€Y‹ Ú ¹!…pŠg\ ™ÔQ^Õ•ž ˆ1“à¿wP½¦ÖuìÌ<ÈP9œ¬®‘`¢m>À ýD­D´jˆ^ üãC8ˆùBÛÜ·ËÃî—bÕ?üן1d+£#Åëå2Ñ™á8¡O¤Š4í^¤Àòì^ŒÚ |£¼ ó*©8¤¾ç÷@YËΗ§°¿¹í¾ÅWôx»³¶—žbÀüžb‘ãÿýOÖ¶7:ŠÙºÈv:ƒ j4NÂísBñBɪ4Ê ˆ"öHBÄK“',€–a7ÙúøæP{V‡íp=/*7KÉÙ®ýÚ£ÓÐ:ò°Rþ›ÛP®¢`IJ¾·îw<½Š†M{&/À’0†‰\_Ï‹N°ˆ7²3K;÷V2©3:¼„i±œA4÷ëj´1©Àö#]ÇÄ,µ…«™Ï‹¥èú¤bíL/Ê8£lƒ øíD„@ïÙpq»WÔ«½8‚]ûÜu6ªG*—"·Bœýù*pB].Cß6ÇA™x×uÞ·þBâ0 *b¸Š’ð[)Â2­>t’j¸«VY…äà!¦û‘¤f9Þ@ ÊÊ:‹á!Ùb´õ+'UÙM0M»”fQí¯‹Ó-qfâÇ„iz€3"·Røñ:Ü^[,ÁÇVÂÊQ»Tz×ZøqúºX~2ÍeïMÒ›0hO—LZUQVÇî’±SaãMÅfb28 NÓO«ù²¾ m“*cÿ¡¼ •‘à"@£Å¬Jd›­càÂ3Ató•ÃîØÙ˜] -K¾MíUIÂp'ºF× Ð¼§œ¿^˜³J¼8aŒ‡ßP€ ?ïD‰©·¬v;±:œÊç ƒP$“ AÜC¥»,ÍUâá%k9ÕOƒî×Çæ-À$û[«Ë£ªÌµçñýžŸÀ0o±¶^ŠLWœœUâº\m8¤mt:‘¹ÜªP þ½Ø6F7ÓÎÈiDp¨Å–pÁÒùddjj:G´¼wœ²ç<‰~”Ä<`Õ} ›®£›iOqžUx ^Øì^•ÊâýÓíÚÚ“&€? ˆ¹J}%fžtwîÞ•ñ …œväWa_.`°$îÖ²2ªÁ³ŠÀûªRäðƒXîV³"‰Ò8S«úŸ¯«Öös{=?œxØ'ƒTPÜ€‰;ÓŒp®– åœz°øw  — ˜4Šƒ?ù0œöK°¼ Cs$ŒCd1˜_|ù“g/9\û)§„‰À|¸Ñ2&X/WI>eyÍÏÚÆZ“¹•Fᾃ@sïZLÓž„BäôJŠ—â*—Ãî˜jpŸ.S”`;õž2³yŽÜ¨”†ÜbB›ŒIn2Ži–Dyj_,€È1TüÒŸ¯g©ät™–¥§yh œëuž†½JÈ`eÛæº(K&+Á­•·µ_šÖ™”è?Ò p†Œäß´[ån D;Ü9åTud´He˜ÂuÎÚ´¼ž*b(«rLkç˜ßÓ¤ÌQ'õÑô±´€8„9ŒU1>mö#<¢¤P à “Q°>7ÑçÇ`î‘cùÞ,«ö×'Y,vY ©:V&% ÇI ‘i‚›z¡K™ðaEUB!¯7Ô¹’÷Oéëa}ìjâc´ŸäPK¼t´:¥öŠÅ5Yb$…Ï9„9äÐsŽ`¥êÛEÊ…}”ÊÀô—žßF¸©ðôk¼8øü¨…²J]¢êQ`™ƒÉµ=‚<0Á„öÚ½¸éÒûÊŒn"ót™1ï¯ õMÐ ”71¼äég\Û¯!ì—­Uø»× ®ÈoG`:ÿëîW¯ŸžàÐ¥9£•oþ}ê‚¥ùÉÓuþ&x‚_üõí‡(yƒú­¡ >Éc2O¹rŽzä„ '´3CîéákÀÎåÕY—0ÓiîTbªÐ:ç@d+Þ{›š;×£· ˜_¦¶ç“Æjˆ±2‘È-,âñ¬E®íÏ äijVÕì½aÁA-ý²zƒ{ÏKçi6~+À€ÞNŒ • ޳i~\‚óuYñ R–ËtÁñ%8íÐÆjp˜äΖwÞ«×û<ÍÍ]ÛO×%øãÕ˜ÑîkðOw¿¸ÃäŲC ×9g+!²zÜVrR…*š/R >)n=1¥HX\g.fdt5”õ¥.•¬ì`M›±Õqˆ©ÖgcF•’9^]I¼TÐýÉ*’„'ÓÐp6-ãGšÉ6ßô*ºLñ‰YáøÑ¬Ö“¼*€ó2Ë ?ƒ¸EŽÅ¥àÝUãĺ t áD)óÇDå)ßÕXÎ2÷Н¬’a­÷ÝJ1KâH« Æ™"_AŸ4ñ&…o ú¥ XGeá‚O² ¥nï]®á=¥’ˆ*s N8ðսƼ˜AýM ÷·àm†«2ç’æIh*ùA9sy®¶#Há>6ÀƵVEl‰“— Ð['‘ÖÂvC_¿w¬ãÃp0®éfmÔ ùzHÕȃÀ^jà&kÁºfº K^ zɤr¬¾Ÿ—„ô´gþÏýbTZÊï«XŒ(^ÏGJ“,y°¥®·èiq Œ ˆÈ_)[úúTžEªFj‘ö!n%8žeEýhØ ™&r®-1˹âªÂ7f‡â=÷„h¨n`Äe: ŠÂebº¢ï°D&î„]ÂÒù(jY‚&+q’4V²á£rMf¼ë¹ ÕZ0º»5Éc='Íó}/¦9"/T+i fwèD`…k9›Ië8üÛÍfþÝ5YÁ…ï!h¬GÇ+H½ïTÕr Õ#­OÂŒáþoeqÞê=U%Žn=fQ@´Ù¤‘zoÂÉxã|ý­*|LÁ>(é }Hýá~GÜEÑVQÞ>œH' ›“)lìHT™r"?tX =ŒX*Îâk‡MoÃȽꬭ{ >,pS³? x?ã\À€¼ÿW›×®$Ï00ì&röHp¼¯–“iTÆT_7‰ÒT?™sD—òbORêÍ•BÍ%Äó+ȶÖž°ü«²(ÖÙ;A^æ¿Ižª9GÁ¢µÿÒ¸8–ÇÛgý›l)`güÌŽ>•c‰ì‰‚­|ï}ÚSþH†{êÒ a¾"!Ÿô©D«~çE.r=ÃÀ—(?»Á<Á›^Øo¾p}=[?e ÚK‡+ ý†…¾\q_M'J”9ìW¢sbbô¾`±<™¦œ„‰’ Ò²é_Ûäô\EÑ,Uƒ½ÿྵ ªŒ¿ÂáfyQÃr‘yßÿÙÞ„¥h€ôÄò¦»‰Ë€9Á Œ7=õSk=Ü‘^ ° KMy¡È® >eÕ%Ë\îºÜ¤~ÆÞŒ«p•±'ÑK-£Ä’fÙi¹ÔoÓˆ*ä ËYáõ@çC í¦°RÔ²YöÛˆ#ÉðIø½”uU% auÞü~É"üÒ7WªÐdQäØïÝ$6úØyIXÂBäeçÞ}f—ôQJ#ÅL°Ò^›rQW­MÅ}jwrŸÚÔN×Ñ’±&{5Šä™3QHÁ@œâ>½ëNÙ%ù<–8KÎ0Q«~c £Þ^ÀZo™’wGùi#˜w£©ûèœò¤vÐ/Á©9Hí†h’Ëør´û>èd6£S  “¸€øØ>J…qr£¨mZÆ€ƒÄd~X1Díšµ ÂÐ 0ÿæþÃá÷ÿN dendstream endobj 1408 0 obj 4453 endobj 1414 0 obj <> stream xœ½ÛnãÆõÝ_1õ>,ÕZ ‡w6X´H¤ R´i äa·E)‰²ØR¤CRë5ÐoÈ?$_ÚsåŒd{‹ @×X{.gΜ9sîÃLZáüݯ>ùk^ænºŠÌÝÕW–¦üÙÍg·R$‰±ÖÜî¯x5ejм4·Ç«àú«a÷ÊLõûƼNãµ¹ƒŸÚü{uûOÄ^f²tmc³¶e—ôwWoƒ?îWë8+¨ŒƒùÐh' vÍ~U…UYUPŸºù†§l”6Zßm? p•ûaéyÐNÚ.‚¶×uqpšš·f>,pU4+›Âneð¡>ÞwB‡ îGØGÁÊ,ø ú³Ã‡™CO4y(çÁ­óŽ–]³÷hö®ýphFÝ;âg‡ý¹Qåi §n·úÛí×WÀÌÛo®ný6ÿøÐN´6 ³$êûû¦WiÜÈ`Ôýniÿ÷ô³‚ëAhƧ9´³RÏÁ±½;Ì¡ë7›¹=6ÞZ (ÎÂ(*«à=sàš±ît·Ü?ظ›¶zÔ­ò8›NíØ8ò}¢6£ï«aö cNý®WëÄæaž¤ SÛßá=óTôÃŒÒA][1«vè»Gé%ÂîÁã4»U(QÔŽK¢P¡6ºX½mú™N€9`÷ ?y"na#<ˆ¯|qeCPÖµ'xu©_6BE*yúm°=Ôc½ò`[ën™GU†º±sP>íSsXf&eD6,³Ä &ÓÓi{öW1(u*—Yd9]æLßµ ¸$– k­/¤Â ~hŽÒË* .K'A´§©½ëI ÷°çŽ^!ª «Bígls:–¥Ž_—lOÒD-¾ÿý’ïUXÚì¡ðý]°mÇí鸳YðáÝÊmÎz9 7³2LòÂqÍUR$a’¢J®Šä¸«e¤ˆƒé±ëêMG2K rSì!4 ž¹£MnºeÚ ¡– 6PŒ¨$¥íVÇóŠ”'ÿp"Å[ˆSæå ý4tŸ ÒÉÑÉW­ê+ºPãó„öø`Úyjº½i'—lDûÃ'×wávÀ_uÃøø÷W›æÕ<¼äÍù³Û^›¯~¾ëÕ—/º®¢*Äu‘k«ŠÅ™`¯Rg&6²Ñ®éïNí¤$—Å¢ÈÜx2`bÍtÆÙLÝi„Pëõǽï]7¬ß¼Ûu}m¾ Í¿ÍgÿÀߟã¯/ð¢VPþÇ êu³®×´Yo_¿Ù¼©á?ô¶¯×ôS´ÿDzN>^·êÓ<kÐp™2 Ù讃ÌÜÍÃ$ãÀF‚ñ’Fp’`š€ª¥ëÇð´ÞÏËdQ’Ö0‚³ÜÇQ?»Õ¢;2'®B1/Ä$"ý7ŽÒ{¸7Ž´d1ùÉõbú¦¦ ˆC[h’J<èjÔê•KvDÝ*›Ë*\¡ ·; +dÓ®€ÊB˜¢S0a;çS·›zz6%çæi ŽqjÝo2ƒ%oãê©P0Z¾SÆcéRµ½xE6:ùIS÷Š!bo­íù9»`ãí…ÝÞ5÷`.Ìi‘‡Y«ŸEãE×:MÒÐBw1?Ã’Q¿_ZÞLŒÛ!ÏÂ$*–ñ™[HŸMJ¦9½Æ<ZÊZ°‹L@±‡Nç!˜ƒCÝcÔD‰¸@±hv'rl8hƒ/}’³úÊê—írNÁN()Õ’ŠåôÔ35@ÊN1]\²lŠ)“¶“³'‚µrcáf½ƒtî"! ÁZo(Óê?Má3%£ÔKÄóHg|°Ðu¨8BØ.h¬Áq<‚MÀH,嵺xTº@@=‹$d“”µ×ö<&”’Ý.R¬%3áÁyf—„y鎈ë'§g¢•å‘äemFi^–ºv÷?¬í^^û–D§ŠÂ<Æ$ëé{Jf‘†TŸŒCôn¥¨OŽP·©>j/Àôˆµpo×½.CGµÄïžtŸà A×’Û’Eä¨h«D«jÏP{%~4«dS’ésXwÃëʆQžœ=H,ŠÝ‰:Åòè‡OEßq¤À48–<ŸáT–|”Œ2•7[hÇÕRXÇ/]¦È]ÀÉ‚kg:ƒDú<(€J8ŽUR=1;}ëÑ’³èk´x[H&Å6d¬ÁZÛ°§‚«Ëb¼s 1f´ÔÛ“Æs gžñîþöÄj'˜D‹Õ61Û¡ÜdÆyT]øÒ¸ÀºAõ$*áñØÏ£h¤öM=ŸÆ$çÛÁvQq\N²”„'$ ¦¿cQ3«.ÙyþèÀÄé6ÚÔR!Õ!wÈÜ÷Ëåì+È£ÈËî!TQÖ侯 ¹LÁÖ›ØK;’„:mâNxÙíî„"ÍÖ×5z g|îåzî&A{<6;|ŒÁjïPa{ £¨EºÌ£@òCíê{Ó¨w¦n£*Ù£#ê¼hÎ/eô°¶:¬RÈ…<`Ìè×éwiOÅÍ\|91™ûqض )ZF¬0~ûB|¹„–o\lÉ¥i^¯©¤GãWKMai’ ~׸ꀮé˽–õ´ä#á%9ßl€•²´Ëªò"ÎF¹{²$ˆXkr8çšä&.ïXVx … ïMã&ØË‚¥lM›çekY°uôIÕZÚñá&?uè8Y&ÒŠ‹âæÙõSÑ/”(ŽR ¨ õ¦HšçøýŽÛÅÅy&7Ay¡($?G™Ðw_šÈ‚Þ«—:?g§ÜvQ¨Ðiý›{RR`¬o0½ûSçH‘GhYæ;E *§rÒ.sÔ ¬‚CrNucp‚_òIÄ?.ÉX±¾6wT—¾{ó©Á¿Û×ÐýÔlÖ¡¹æ*öݳ‘¨¦ÊLf„&„¸>áXäW8ûÅíÕ·W6*ã0†­Òü‡I"ÈÁ!#³º‚K›«½Qnü<ÌK_v¡r(òi—"Ìó1¶ O¼àXOèò´9x·4L3¢úk„Iàª_ƒ‰„ôàˆNã!Χi2ÃRu`”ðâÔzYúcH ‘ ¶,_dÈ“'¿”!þ(CÒ4ŒÀ†$yÈ_¼ý .-ÌbUü zYñ¯éÜ@RÀuÁ€[¢’Ä0‚n”3ˆÍ|$1$¥gH¬ ËœhA Ò˜†_Â'ô5ȧ,´Ä§ [óS=~ð;fËzÈŸ±4ŒáJŽtp"TàÉÃU°6úCè@Ä“"“ }lŸÈe„é¸=Œ»`kˆ‚–;Á°žé]Ü!—óVF_ÖzTUœe©ê»Í ²Q†þEð™á‰­ð@rèßãèÚ¦¨QK ÷ùÅ¿UšÅaùÚçOBÀµE YÇžïŠó4Ô·enÛàÇžÂmêù¯²4’ÈçئÇqnUç_¢,çï[“‡ä…\^g²¢.¡á|y–\°Ð÷JLjì¨)–oó:H^hý‚§‚´u}Óð“ÍeÖé}RÉä´ÓE]­–¸¿*÷¡#vþn2—oY2,®qX›åô®ñ*u5£ AüaX¾¥y/"Ï?«)Á§Æ‡Õû”&£kxúÞÈ %=­MJ[â¾DೇÌ^Çõ«FíÕÞr¯69zH==©>ÊÏun/97zÇo®"ÒfL‹bz¢ª4Ñ llÅ(T‹S-ðsÑòïfŒ wõ\›wAõnµØÈo¯þ@ 2wendstream endobj 1415 0 obj 4146 endobj 1420 0 obj <> stream xœ¥ZëŽä¶•þßO¡õþˆj·K#’ºÆ0M c8À&Û‹üºJÝ­X%•%•'‡ð;$OºçJJU=ã52ƒÁð‡G‡äáw.¬ï£41QŠåÿÃéîÝ‹²Œžç»4z¾ûþÎÐp$ÿNѯ¥Ê#c¢‡§;žg¢ÒFeQE§»ñòÒîö¶,“ÜÕñüÚ÷ÍcßÞkW<5À0 ™[`o¥Šx¥­åTñÐîL–ÔUÿm Ò/ñú¦;ê¤"þ¸«“º.²<§£~5«âN§åuÜÍ^›¡=´óÜL¯aÔ«€ê_ÎçþÕso–öãÐôj¿¿4}{xi¦æ°ÀBÿüðõ±ÑÃ7wÿñ!n–„DóÒLK4>kËa]Ð;uÃó}´ŒÑÒö}ôß¿ÿSôñ¥;¼DÝLœøÉh—6z'$û›ÐwÞý±tNÆF{뢇ã]üE?Ï_}=~Õ|õ ÿ¾\µ¾ø*ZºSûEô=ïþŠ"ê<ª’œd$Y´w9 ù7ýíÃÝÀ(*›€èÒä&)#—Ö‰««Èä‰KÓ*šÚ»§-û6ÏçÌKûª«Äf.‹ŠªJŠí,Æ5Ý(œ'iZY¶’±Ú9ó¬e¦IE´L¹´O“˜2³õ5ráŠá,㯿ÙýEÙˆztØÁŽm‡©çÍÙ¼™YþäfzžŸ¿™ëÓ”Í4Y–¤yT¦î=]Ù|·wE *’±¢Ö{¿ªoHïi¡›íßi&µ7v'|ˆÿrýggÓEL:¬ Lᆂ}£úŸ8\“8ãJï™Ð¼ß6{#Ë0½®Ãò…½{ãl’Ö°y¤îo¶v¬(5UüQ8À#LÄd+žøþ 𡨓´ÊJ¦VÈ2OÔ6>a¨ˆñ¾ÏJVñ8pÛ¤¹àI,bÀ”ð«²øË¼Š x‰ÛÅ4\[ÀÍE§• >ÈÛ~x¥ó}˜Ò™Š?A¿Ã8Ìݼ —‰G]w]ĽÌK šØr•I*8'ÚëøßÃópäEj =г^äÜ Ý»à+'KcæÇ6ºÌíáu^Æ3Áëqjx¯j£fˆV®¦Eõ݈{™ðÌ"ôWˆÇ ~7µG¼&uíÿ´+䚉…ÂQ¸5×–’™ÄÖ™Ñuýr·ÏÑ4ë*~`CAÒ¤–|%H?n{w:ÓÒ ‹²ñÔ¢C9,š Ï)cß®Øz´v&ÌÄÓöéÒ/Ý>œ³L×ûªà¯ÑÁµrùhÌNmæmÚë:ý¡üº=4ômg]R€G­HNVƯÒ¾ D¸2>O#ºíö(]6>^&²8&%x`vwÃ-žE9¼(Ï~”­“?nc0‰˜M]Á¬ûðq¯¬m¥˜\Î ©Â7ŸÛ¡0@Û0ï4‡oΗ.f)<]úž¾•áã\^„ªœ.T2xƒ—†zbˆ tMàÜ6‹ì Ù_üØLpžã·ÍA傱…c¦q02^N%M=¯AðÓ–iõ 6RÐôýxh^1~Óa„%ö_ûk_ÛÄe•Úÿj}û pýmYu.êMçÉÞ¨¦+ÇØ¸m(6Ì!&3ñÓ´ËHA¸;'éÎjêÇŠ­\_Ï*OLzعWþPÅ^j› ö[ûK9,,/ƒŸ¦Øˆ™ô¹ïpçfå_«šowƒï§ˆQ§HÜ˺6gøú4«ö-ƒUAqЯ9*<íuÑ~[YÄ^#ô‹ÎŠ€EY)ÖjÅ€ÿFÿËhÁ{g÷ 8{ŒF¦ÑaѨE?Z:}RO6Ë|s`v%I¨ÄY¾ÁZò–›Ås{ï°´ÒG4·ËÆÉ-a»€K3¬GØ#c6´ìé‡îˆ†ÌC–ï›\„zÀô‡ãêkÞ'¯¼óÕ„ „Þ‡ï¬Y±™»¿+•¹ÕгæÕв,AX6i¹žrFÇ7,@¤‘À$¶‘ëI69Ÿs†j ðM·• Ýaâ‚`åñ5´QÚµ5ñ§p Î†V{Gfê9i§8Ö[‰BpðÐç€fÀûƒoáצ–Ã(s?ùêŽ!Ь’@•öÇÆ¿wŒ„€Ûí@y}ä»,%ß"«‡íîö‚c#z.˜d•‘.?‚¤Ol1µWfô*ÙãÁIGó¹=tO¯Ñ±{Ú1èºø −LXæ=Ân›aÖô6ËRp[‚xñ»ùzÛ!²µ2gt?‰°x€ÌÑ%ÈØ#àz ÜÏFƒžMÊ5 õŸÇƒ‚p£ˆ[Ud…¢gxÁ^¥2öRØ,ÊøÔLß‘9`0N¾ qÏHI»Î.ùBÈt¾ô‘uhäY§Àú)X±{Å2tŸ> ñ8kx†c_¼ÊÐá—˜W[Åææ´¢`WÕHWšôá±íWvúÇ›¢Æãèw{% @\Hiµn‚Df(O¡³5ÕÛÜäˈÙy—GÿªG¾Ê>¿ÎK{Ò)–AÛæS9Ñü¥p¸j6Æ@õ•• m.ftsõé£R)/ãÔý€°é“0 cNÏqxǹ]}@²Üæ•]9úÉ/ aÒ9}ûsF&sõø]v}ü޲ Ž#©]CE‘IÏd›˜ªøßé2w‡@6‡l‡†ôÙ’ªkò¶MnK’KTeôžÊ8nQÞœrÛr¢f÷~ö±Y†õÂrŒDf;F"JöŒÜÎ?±‡SwϨ\–·!UBD ’qc¨]Toú8‹¡Qˆy?\çl¶öMýŸoÏaZí“ä7|žÅ›ê|:ùaìCdñ¢«$O]þÿtxº¼÷àÄy­°-×wGBpþ*ÒÏ~¶oŸÏëœãm¯NéÒ*±à„yÂ,pË(µÇ¶wwH€pÅâãà˜…ä”»—Ï]{ÐI•àIƒÀ´ùΛnf€»U&°nÄ8J⨣^©c~u¤´]ȵ «|» ‡ 2ü¹tÁKß\¬äÊ+?¼ð;GA9÷òVÜÕæÐõÝòÊ9d5ñ )`V€÷ÇVÇœ”*ˆ‚Ãã"‹´p)'~×)¨ ñ¨•íd•™Å3°¤\ÒúÖFãIyÓíŠUO8Àó8NüƒlàøÏÍÁkWÇÝSÚ|šAAUi• ð9’Aâ1Lq?cÄŸS-ƒpƒÂ-ì,ù½ˆÚ¹½ˆáçf 4ŽIÙè™±²FNU>ß Oý¥Ê-nŽ&^i*‰mçÊrµ¬|Ë,)º0:¬'b{û¨ìtk'ÕA‡ñÜN\Ž Dð¡_£utƒÒ9e6Œ§n§ÀÌ\ˆ ²”T™ÇHe!2DûåcÛá£RÀҙ¤Gßóµ‚?.ê÷C0Å=>¬%ùtødKÏr›åÞK7ÜR] ~Iäö¨¯ž8ÝÄßÁæÌJJ¨‰íÚl‹‰Jpñ?~GF%õÏÿ ó¾åB`«<ìb¨ ‡1¿4ÓÙÌÝó¾î«èó·»ÐÛ áÛrŸ„Øzµ‹&º ˜i’•¹œFQJX((¤[¬Ðn/tèD™8Ôä›S7„ÉN®&‹×÷.jÓI9SåЮ%Ê_ðm`5\Œ’O—“rWÌÈõõÇ•ªmúWØ 9‰hbä—ueÙ`ŸÓËoèw€Óý„j°©ÒŠ,œ´5Ú›Ç/r_e¨ØFhÛÀåþ¶¬â°í_²†`ñBjR òþV¼QueZ®  ¬P¡åF&¨3KèÆ ¢Oö+©jÁ—2/¾¨$Î8dÖ㸼„¡uJ̓¢G ê×ôdg}ç—·Àà(¼¯U éH&•5!¨VJí\»’^6&ôO',‰)s]HâÁåFr}4ÃÁ¦ŒaìÜ“ñX?O­Ÿ‰¸/7ÅðŸ(% *‹B»â—5éàâAÿL(ˆS߆üÈ“¦I9b‡àB„©ø÷ ¹,ã üËAÇ‹·Üqµ‚gb1k‘mâÑœ.>±¢ Uû»a¾L¼jî’j*RñvÖ™à í NŠV®Ÿ…µL«/7Ï;Ä$ÆD/á£A®Í n“QIÕ ˆZ¡Ê8üœ‚{ ´z?è¨ÅÀAœ‡´š¤ƒ¶)ž.ƒ¼»ñgMµÍ7‚¨b[+à÷B²Ð·ÄúiÀ¼zðcIîJŸ&4çK·Êlÿx‚Ûâ­*Ë ”aQëÃ÷BH½AšÀ¤3¥U¥3Ø.ìÚëêèF?ãv™ÝPÙÇ«YÔX8™ÛAUÍKy¬Òy²5BÆyY}v¥àÚZVi¨«Ý™iƒÅqôÅýq9º>R‘!ÿÄÂõŠ7…sh9”dŠÄX_úªèÉQ¤5G|$,RN² j»µ"ù*ôst‰^Vz[ºÓµMáÊ\ú%ŒÀ‘cÖ¬³º9´1¼Ñí‘rWéŸ^¸ÔUÔ`ã+› ŽBêI2ªÉQFÓ ¤2{•Õ|©ø!úÜ¿ú_àåñ¿€À™dÔž X)±,“XßfÀm*¿m&5~ŒMO—#/BÁè¶ÔI]fˆuû×èYÜò¦lAÔ€1ÁÔΰ¢ùö÷¦úÉßüòö¡"MlV:uÐ牢P}j[_Z¨í›)pežy!x󸙏 4û¦V”ÁM³Êí#ùîgæ© ¿ü6V%¬ÕP¼™‘ªXüŸ7Å<) ÚÕV‰Iò ÃV^f¥—Y+GuºªÓÔ`î¨níFuÊ}AY‡´êCäÉÙæüïêw ¡´Ëf–‹‹ã 2,ù¥öUü ŽM¿#?Y©QÛ#´a §@*À×;d€‹Ÿ~l]`®5¢Iשy Û0÷õ°QÛk‡'ˆõàmlÁ NF¥EC!VÎŽº%J·ÅÃ!Œ#<>¿ín~¢lù÷RHY,•tÏÝÀ›M}pÒúÞ›è¤ø¿ú­p8[.45µû€$Åqà—sPqä‡Ñ yâå®4ad¾<ýxèøÁTq Ç+[0Ò¯M>.åÞ" 8¸—^“ɯ,÷¼M UqÎÊíò“¥ã0'¯@/Û"(¸FWâólqƒ(eõ6¢Ø¤¨Íêg ×»ä›-?#Js ˆ|rµ«Q÷GhR‡¿T¤:ba®e ÐÆç ±±VðÅÿRë$Ï}þgi~h£c³4Ñ·q (£?ýÃÝÿU[òendstream endobj 1421 0 obj 4141 endobj 1425 0 obj <> stream xœ½;ËŽä8r÷ú ¹ç0ªu¥Zõ l,°ð`áÃÆ¾Êð¡Ëðª2™UÚÉLeKÊî®Á|Àžæì/uÞ4œÈÏzŸüÃ=¡Ø¤(’ûí Ï+’¶LÚ¦Kî÷7Ò.+ʬN~·<»)9ÍnNÆmr:lÜ´ëo‹.뺺H_’þ°IF‚m•~¢Á2ÏòoÿýþŸp[ë:6«ëšÿ|sÿ«éý³»]™¦ÎжH…ô‹ô4] ¤èl kT°FmÓO¾õ {‹\ØÆ¦ýzØ Ëàf%_¦ëþ ÄÚôÑ…6lÍ/“nÇI§téqËpx D–g•hW¦# G‡aÔ¯a €ü"]úY뚪NÇi3¤që—îö'–oÙ¥ãºß‘‹R…vì§%»]•uK~X´]¦Ã¬m“®Çý~<ÜIGkxk<Ú¥ŽeBûÒï;çñŠs<Ú]q¾ =ÛÎÈÙ–y™åMzt¿õYO·¦=¹¸yí›ñB*÷–1¬ôè?t xDØ{<„-õk^&·¬ŸÝf5žT"]îûÃN¨B„ÍFâðt:>*dnUV]–Û2Y¡¸‘©yyÙá1V¢„[m7A_áÐ@Ý-§±6%%´~·¸éÐ/Ãm‰xEëïŽg禎foýt ÓÒF­~|œ“1&ý4ÑQ‡­MçÓúY×mÓ~¾õÉÏÉÓöiJ~¾½ÿ‹ÇÞ8ÂÏVŒ·u[@ûÇäÝ7¿Ÿhÿ|û-.ÛÕ „±´nV%«cÚª¥•ÿ)²ËU”"«mg“9Sïw¸!à`AÝL ÚdeƒqLÍiJZ#Ù’“Àu6Ôi² ;WÚ[ Ö“[áÄ&ï@DJ™jÿóMºJðï‚í \‰i$TÀ+Fç[o "N Ghc&«Ìà¼ðE½¿Á^ðí¦«Š¤ÈÚ+¨g½ç¬£_ªm¤ÇQB±~…ùò–®ê„yaqH‹ú%j4e€†Ù‹!TZl .  œÛqe펜¯óP™>£âÐâ8ªºtßoœ@õŒ(©(t’0\ÄC¥¯ÜVâ!„ v_&0òjm#Æ%çS.æg¾ ¼'}ºò¸^Ÿ˜HB•£&.|ÕÈ`œ8|H¿§Tn9lÐx›¥£–ÚœŽFVІ%Cæá.rbØ—„χ«Ë4[ѸŒÝÂjý0í^®L¡·Ç‚ðò`Ķ!`Å–É‚œôN/lìÒRÓ©8Ïö§qï–aOçØˆMÓ&¦§¸K‚ÀWœe/pµÎ÷¥Óšh%Å-¸`ݰµQq§S*ÞŠŸLé²-¤ÃÃ2N:“ÖÉmIñ ¡|….€‚¬+¿aJéÑ2•VêÐЬ-cw¹1ìoAÆÛ0.µÛÏ:Ë@ìóãm‘Ó­u٢¢‰½^‘½,È–™ÍËV±3eÁÐ)×pÆÈ™Œ0aÔéÖõËirÊXݱ®*™5—mª6ý4l¸ÜC>P›bÞg%t^ää‡lI…×YÙ³ štºrEéäÞöS]Øf ÄÙÁõßXxSO`ÅÑ46MXE‹Í¬òå20R8Ç68«£VÊq­JŠÙ8§;Ëž ÓJ%Ÿ)~-¢ôPÀê¢ôžI8ÙG_†ýƒv£Ü˜ªÀÚ¾A^«l…¦8Ì‹ëL7/‹xÜÿè–Ïj0,%0Š"RkÈ¢šd¨Žø¬ž®¢ ’?E!?xº˜”†°¥†-döXE–PýEQààØ()>Èå8Îó@±hYçT dýä¶Üc°DL1°ÄAbX–²q&0è›ø>µ^•†;íc$‚;y¹‚vU½]®To9,|åÜâ–™ 7\µ²¼òcZ½žÌ\´M " PÍü{/¯á ß í§dX’ýi^}ÍI?'@+¹,´ð¬¹VVÞŸvo–i2NZó«¬iJ?üú|ÚkF‚¢Ë3Û–çÞšu­°Åm{ÇÓAȯeÀâ ÕA!p \ 'Àje€6 Û »³«R"Ѽâ++Gæ{ÀÌúÅÛ¯¥šg¬ß…eû9̦b(Dp…<†ä5:;®E_aŸ:qŸÃON ©Õr[½­y…Æï äÛe„7ò—iŽi“ 3®Òï9Þ´`Ó>ÇÕø°~Šâ§Z%­PEŽ—=ÂÔþ% ?º@åêK¥ ½\hz•Û ës¢©ó…¢‚Ÿ6÷ܽ²„+ñܪ*1Fmƒ· oŸ=›°ªø~bþ²}‘ŽŠm-5 ÖŒ8LÇ ÝMŽô™ÆèX²@‘o„ARX4‘¤*²ƒ")úݬÜú‹+”×寓®ÈÍÔ6ë*ã-ąܰò]–2÷áµ…(³¿‘ù›¯Îÿ‰°õ"dáçufã÷dH„0Mjrúpcðm#A(´áQð‡í–_µ§xûIFNÇ@œL2¶ÁnØœRy€èÒK}@i‰é)‰ˆ yÅRàÕapÎ&cê¼3ÝNMÏX̉‘\š¡:Êáü÷Â}šò‚Ê X Ç/ж§]¨#Îˈ¢°]VÜ´Í¡ AuÚϾ)CC x_ÔÕ„ Š;Jᆒše´˜ñfš×ÆóNGßDÅgVŠˆ-IVeÉGe“/4½_†½$þÊf¿ôhKeº6›óË¡íôKˆ‰NwŸ!fþöòa ]‡).^¶ø¥êý»$ƒß"«“èqKž­}äºòjÕ¼õ`•g5¤o?X]yÌh3S‚ûyý˜6²hºîüÅ N¥ÂÎó+¸Ö¦ÌÍù vˆzöüœÀüò Ô¯<&µMVT¸3 VšÙL²ÿýì îÄ·>X¦T—o àó·/6ÚâêLg[\5ºŽ·ßCn[ a‹·_<Ê*Š‘Êºà`U<Á¥/ ,–Û†~jF=‚ùEÑÂåÄMÙiв‡aâTÞY$$åQÌüðsxrÊz$O© QpA™hatuvOî°vQ ã{„oW•Íé[4ÔÖgwl7lã¹mÅ>T³ ævé ΄˜ÂŽw;…@¨ÃUoxðŠ·d:Jü -÷ÓÓNa0øBBõi¦£ÎnçÖl™’˜"A¶%á»d;{Šä!ºÖ Jüº‰Qëò+ˆðÀ²Œ`Yìz—üöÛ¿ý°+hT ²ÐñÇ· ‹)c£mÖðp› ÖʽùëÅtˆðk4;­`”ôb˜g 0˜geü“UÇV ý!ý3H§Â‰ìÿ{3\GÙƳ¹¯Å_±¬·g¯é·÷7c\Ûœ7\i“ìoŠ~ À†©š*ÆGa~ž „ÝAžjº³ÖCk͆^Zˆ`Œø,¹à—¶%ZŽÁ1pü¨Px:ä¹ûlWÅW‚7Bhõ3'ÅwˆæzäïyØÈ«.\¦î0Ÿ&]–J&ýF¿TL ³˜xðfWÓ÷ùÕÇÚþÛ1È‹ô-U è‹3ñÙ‹Û~É‹>ÿùÒ-÷˜ð!áa•z*Ë)ôÞÅ|Fºô¸ƒ(¾>½—&øàãàÖú©磭aÙk^Jõ«OšØø/o3†þa3",2ûº<ŸG‘Ù¢‚hb=æåÅ×þ/2„Ç8†öÌÿ!/»W™és(Ê ®VØ~9ºzŽ€õéÓ°ÖÇ:¤¿l!«|ïHªÜ°ç·5¦ ok8X¥ú‘›ŽëÅ`BKÿ£¯»R!Q6}ÛŠÞþ ß9ÀN¿,Iô-+åz$™u4Åwµ¢ç¶ò÷<-JÒ-w€YW'ö§¥ÿä’M¿ôÉCÚ=Üzwõ‡›ÿѱk–endstream endobj 1426 0 obj 4535 endobj 1430 0 obj <> stream xœ­Ërã¸ñî¯@œª5´eÑÄ‹\’ÊV*™T*©$Îi”-A7é!©™qj¿a~!µû¥é@P¶g+‡X£Ñ ýä‘gJäø ÿ·§«»¿e)Ç«\<^}¸R„áßö$~{$•J‰ûýó)QjQ•¸?]½—÷¿ZWgU^Émß­LÕUQË+eaå*é»©í»æèT%ûíÔ¬tžåJ_ SÈS3ü+Éí÷«ÞÿïR›xg2×pŸûÝ•¬>6«ûï// ¬Vk&x/÷ýñد´Ëò¼ªå'¿‹gYùðOR²IÛǶó W൮ä®~Œê”rÛt i>­Ÿ†¶›æ£€ó<¶Ýcd”‰­”ýl……=†cóLš¯Ui²Üi±Všõ'ý˜­Öºr™3ò ²Á©Ÿ /åÔ'R*¢*´cœ'2¹Bþø}ÿøS"ߘeLè5‘íK7î€ÆML˃Ûn×n›)rn!}·K´ø\³Œ%Õè·è™ù§«ûoÁW%Z§‚k›Ø<Ó¥l¶‡6˜´¹tS¤'ŸíxAÃPÍn×Î~Ï÷¾™ÎCdw5™œq@¿Rô> NÒN6í±y8ú,TN¾Û§u:|ªÛ±£Q ü±êgü*[Ù?á=ç[²gų(¨§¦íÆ$³!ã¡Ù–2'xÔ<µÐJ>4CL-·‡fh¶StBx Û€}ûîøI-˜´}cçI 9Ed¦Çˆ£ßO²šC6¬/Ⱦzk}yëf˜™J] ä ¯¿"{ðOðÊhÀh£Ñ8ûnë1ìJ ùÇÈ~kpÇóD»ÁGK…>x¡3³(„D¨åÐ>¦ˆ¯ØáÃz¦!mx·`mXd¦ÈÓL/äs8!V¹7¥¢|­¸€Y¤0rŽ{t« L¶³aú®ÀXÖ¨4Ë¡ K‰…–JoD”o¾cøñˆÝplá\z€[¶½Q²9i µæ!ÞÂéð|~ïR1GFRÎôvÉ7>ùmûe>ÁYö‚3\rÿy«;Ÿ޶Pf6«ÕÚ*(k¥Â²ŠÏÅ`ÉoG<Û ðÑîñè×ã¡yÂÙÞ]x³Aº´¦7dâZž *m#¨¡Rbzâ§C(X¤~|Zsp$ C:Š<J$ÆÃQo*ãOÙê wiæÊUN*ëßîüª°+q½Ù´Óf…~}}×ï®Åú±ÙœöøS®Þl®ïÎyf° ˜ù<ðý’ȇ N‘߀ íM¶»Yû›ÝøA<Þ<Þˆo€ì÷ñ=j'ªÌÑE2+ >ÓM~Ú è?"Ö‚zºªÊÊËd!Âd®*A­µï'ªâ×Háï*+Td¥=iSWófA›Eftn@ÀË]U×bMÇÀîop·Èê’Š3Ü$«µÊ©°Á2tPÕ|¹u¡³Òµp™q.¯H’Xÿ¿Wºª\.tdÿIýXÀëÌšÚ:±ÆÚçò2œ÷J(¥«è4ªHb‘D»Í± Ú±Îkemf Û¼ï^ü­”ÃD[Èïú³Ÿ¡$x`U1ç;tmSfÖY*ë*¡ÞSšþ¹9=1GjŽ#,ö¬Û¡Ã9¥²ÑŸÍT¥‚]ÆêU£j3WGtY— 2óCŸ\ÔE$ð¯ùÁN3þ},×ñŽzqG¸¸Gå 9ê¼ßQìåEÖf˜¢ ºZ ³\"Yáe{®ÁÃ!}½=¿Ô Ûý[zO ‰°0Ejt¹ujßjÄ o(°£‡Ë†Šc ýü¹‡²j”qšsØ«WÉk,_·ªÉ ôýѪm(ÅÆÆN€ pén>-UG~:Ûuý´ÀQÛŨK>4ǬPÍ3=c…ŠèrY]âVèáxt€Ð©­J%ß¶š|¶ K`yjÐhmùµ•ˆ+47ԧ秃ïæíÍ¢þÑÄJ´ ŸT7$éö­Î(êY6«ÛÄ—.‚Mõ”d\Œ<àMZ¾Pë10R†Î$™S@Yû¡? 8JP•XE;ŠÐ?aíÂZÅCÄ_h`¬kˆÇZîϰ acÙüÌó›ØüÛ‹Þ?É¢n×0ólû§ˆoøÔN‡„K¾Áx—âE…`˜Bj«äç‰":î¿=5Ä»ÛÏBfÎÊpÓ¨š´Í=ÆåÌ5>“?¡Ÿ» ˆ špxm䳟"€ ¦g[ÒFiÂÈBÁE$nžZ"LKÔ…|léÅÑè˯·Thãaåcê’qž§™Ò ±óñ”+#Øï‡92B5¥ç¶;7> stream xœ½˒ܶñ¾_Çs’]„øÔÍÙ²b§œJ%žÛJ ³Ãx†‘­W•oÐ$Uò=É/¦»äÌî¬RNE[Ò`¿Ðhô zÇb.XŒ?îwµ¿úí_²®ëHèfdbAKžÏX;À,Mã"ß´R£ã2ú;äÔ…þƒ¤¸Q*å…JY€¾ýoþ,,5é •<÷ôoزJãè_–SŒÞáÊ8vx³òZAÖÅuæ‹k,RÌ>’h§©L1ë)N’8‚<¤²9«BžºT[C7`k9¢”Ø<Ò~)131]£1»r9ϼ6%Â)&€û>Cù %‘öœÈ™­¦=Îk?,ÇlÕ£|· c0(ˆûÓ>œæÅS‚AÛî÷OÂ6]E{ÆÒŠú x±±díhJÆûã²ákÿ­„ðÆÕV7÷ÆÏ3€ÆiíõÚrvðXYîrw7©ŽK·‰ì¶ …2‡9î†À­­—tÊrÞmÿv⸌&é¬J_(¼‹ÖO¶4h–`ŸšÀ¨(LÊ^?†ÉÊŒ* ùs\(ˆ*Íšã~e:6´¬nÖu¥&.š 9ƒbÀL‹*§$F grªÓðÃçÛw6z0ñöÔñß(ßËÂÊÎ}ZhëýaGõºDÅa#ÂÃÅ®\³HOEÊŸ=:‘’xæý »!Lõd¼¯×ë ó[dù:,ÛËc?$‘Sg€ÜêÞqдAÎTæHp/Møˆ{õGK¶Cgð§"~cÇqéjTšYt¨ìY¸ä9¸Ü·ähš¾ÑBXit߆ñФ½¶”,I#ãATt<p–V»Ä!ƒ”@‡CýÛµû ›©pá©ì›£wªÆ~„WÕ-: RªÌ ÈÂ9]œ€ƒq~gà΃Ÿ;í Ô‡ÒCÀœm†¦™Õ¯kžº­[fÀZ{T¶¥1§·?öu5¹ ŸVfBÐñq¶ hÇ3êxÛSÈ­ÆÔµ—LD«ñ–O=4E@HÖBܲ“ž¼ÎJ7oÕ·»ãàWÀ(íYé>|Zð1†»éÖ…KÙ:øÞ/”vGOÉà/¦Ÿ·ÏDÙ¨†¼ŸiŸ­µrv&0†{ˆ?)¢FÅ%žŸó1wà<ϲL¨$ÊDz~ÖRpÑË4 ù*^v9ñ þ}õfÁþfï[«¾Âä ‹g½¾“¼Ö½äaÃ>µ5Ræ¿^ø„V}Âë¿øTBùJ&9A¨?øhO >Ú«<ÇKkCK%JyÆý¤ŒþØŽ"å©óû“,ÚÚ³vÌ'‚̲œaýáñýœû6¾¿y̲X|ÕC¹r|d|&Š”4[^:a)x©Já«üË¼È =:ÇÖÆvœd":Ú·ÝœÞŠÉ ”»ÑêP›ÊOAO¦Y÷#’}ðö3´Ñ—Ò¼ð¾”dR§7Ë/ÿ ‚nãqHý‰ñÂ}µ=rÁ3™†¨:fŠ*N±²ŒÆÎdvR)_WÑ =8”"}6}B@òDš.\ê+›•ÄEm©„uænœÓwLL{‹m½q¶ù¯'”ÿ"€ñÕŸpvao°bkÏ@‡!‰tdúHqo¤ÿ€àAíYQX @á š„l%Ÿ´F…LOû<¢Tc;ê‡AÛb¡rŒR`-6—`o RCTCß,¯þ ?ÿÿ›endstream endobj 1435 0 obj 2949 endobj 1443 0 obj <> stream xœ­Y͎㸾÷S‹¡“nµHê7·Ý`L° $; ìÁÝÙ¦ÛÊÈ’G’gÆ‹}†y‡äISUd‰rÛÝ»‡ ‘E‹ÅúùªüQÄ‘1þùÿ×û›ûŸ²<ÏÃM,žo>Þ(" ÿßz/¾{À%E*”Û·O‰\‹<+ÄÃþf)Çzow&Î#¹¯úƒæ¥vÝ±Ùøq)WvF:ØuýÕ21/d×úïBcµÐq«8—Ÿ*‰Ê"-¤ kãié£\<=üÄ̵f1Ë$ÊJöas#ÿ¼xø÷ù-L”Ç¥£.e©ôqqˬ•ºð=îªq:iÜÙ…J£86™ø\"¢¸âªà¥Ï>8œ'´VÔ-®¨ ·Ó@ùè8.}™˜Øà¨¥O;ެÈíü¶u·ßφ yÓl~8Tëÿ•?Ûpô»Âß¶s”Ãü^OËÓ“O¡ w¥€[ÀÁp”çÎÁð»03øÇ3]Ëß k+%L壋'ùÔ’¦2 “ïxU=„o òa@Š“Ï‡Ïc ø<;×ä÷eœMgQhùL} ÜoŽ{{¡A¼œKÆ(BøÕô PãZåׇÑhð9õJ¡Ø@R«ºü €€Š‰èº¶][fWÕóÂáC}8„³ ºäN~„í–59™¸KçqîUµD×YT”ÉdÊ®˜ö‡:ˆïć&š–Àv±6Ð 9áš'¾ ¤¬ú¹­ÆcÏ%®1y”ÅzèÁÑ]BÜÍ;Ñ(ìô3¹ <¨ ’á ”zÆÖ2¢ökÚwt¬OÌ `ÑU› ‹]>Ù„‰•I&¹RÁ<7z¬ùüEÞèÐ@ݽE;ÄbÓmI(’½|AWšÊeå­öÜ/„¾Ùï C ÅŽTG#E"ÔÀI!b“ wÇÖJcHÀËŸh îÞè/Û\ƒ¤™ÒjEd1€5'>`¼a0~^­§ùÂÛ8 tYØìoWñ2éq¸,eBpŽ-(Å|.q;s‡á»Ì!E*–ßU}=BAõ»aE+þæpØ(œ{MçMÐ×Ñ„1ÿ4‘˜K4‘ÑÕðàa<5×1…ïД`¥à³oh¿HMeŽb×ugÊ•Vžã¬\˃–¥ääôi®´ò¦Eí&,«ù@ 1jXæüÆ“\7ˆKÈyÃ:Ò3å™ãqåÀÍÖÏXib5„ÍÙÎÛ²Ô$`ãƒð0÷+OžþÎ/"åמ]TsÓ¦¾g)^É­6.ÝàDù¦=\@l3M8Ù£y1·$.j”yÃåzŽ“žÐ¤ƒ&®þÒ¢Ê ] ¢ÊÇ…—=K};¼ òCa PVÄo¨z|yjò{TDZÛWc½öS97ôi3÷WèÇ‹‰áL‰æµ¬ìzÇyo時uñ¦‚MÅIjø¾ËIÃPô¶¯¼sf¢Ò¤“Ž\ê¨$÷*¡Qf|¯¾sMe@ß53¢ëVÀÊOþí†9e.eú¥³î2óŽF[58ÎÆ_5‡«Ö›cÕ„S±`ˆÂ1ï¶ [‰â,¿P@ ·yMw¦(AmEPyuŠ«Mà‘ ßë0£Ó„BD2éõij\&.Ÿô‹Ñ­'"ˆáuSHóìý¯2ôÌ@’ßç~jÂñmS7€ræØ÷‘˜ï‹‹:µ ÿ´cs Û EúCÎø^/«æåOM3x#» F®°‘Sÿ2Ñiø]×ãp£"›9ž¢š•à4€€Fjª;*U]î3Á>0ó`àê“zýÑìå*Ïæ¿‰:6î÷ ·±â“Èu_Â`~l??Ü1gí}¢î ¸|ÛÆÇÌóâ&=C(dßU™÷úá²AL„bÑÀ7v¸PÙÅ6n©X¸*"ˆ{ÔVÂ&’V€õ’-^*ùÐY†ŸúL¤ÍäIïÇê“Å , †’$—x“Ou!«xÞß?Üü þþ³Êsendstream endobj 1444 0 obj 2935 endobj 1452 0 obj <> stream xœ¥YÍr㸾û)p[:±9øœ­J*“ÚTífÚƒÇJ‚$–¤Æã}ˆ¼ÃÌ“¦»Ñ P¶ìL%5Uc€F÷×_C¿«$Ö*ÁüwÝ]½ûgQ–j7]%jwõû•¦aÅÖúþ§T¹ÒZÝm¯Ü:­J£Ê¢RwÝÕ}t··×·i]Åy®£ã0µs;ôò%†-·Ó,šýÔ,VÍ(#iÔŸº•ƒœu#"2­lh7‡ÙŽv#+u´z’Á,Ú‡Ãpmò8Iª:zlû] {&Ú´£]ÏíµÉ⺆í?]khUy-¶zlç}Xß„æth¦ýMè½]tüysÚóáîïWÚ¨»®¢ƒAùéú;°i™¦lÓ®£ªÑ²w˜s}÷ë™É‹¸à¡7Vq’çIÅÃãÿ¼òôêÊû™$qFF:ÌRކsš”Ål¾MLÓo¤£ÉªÜd—‰Ãä»};qlëÛ¥Ž¦¡³sÛÙÅpo×vššñIÖgÑãÞö2Áà}ŒV‹¨ñ¬Šúa¶ ñC”Ø·»}Øå`7;ëLq[•±1`€[¼a<ç¡íí¤šYÁVjš›qVÃV5ÊÎnz}ª 8æ suktœ&iM½‡Ùn廃NÞmò‡ç&¾}¶äž-fr0¾IÁɱË<úÜtǃå‘,:Žm?û‰äÞ<"¡èº%Yµµ "‘½>£ígþÑi UÔxá²H'¡}Û"" AÞ™ðƒÝzÉì3®SEùkâ ®1ú£Ç>ÈÙŽCǽ½aô&È£v¦¸ûÓ}ôxzÃaOØ)K˸Nê¨9-¢õµ!¬¡¶)¢Ý⚪.aÞé0ÇaèÃVnVgr³©;Ê$ðbéfj0°3ø¯Y„O—y)Kœ.“(÷ì¬è —¹Ô“¬êÖT|L<û0Ê|]F_´DÀWŽŠU&úzÄôCh¯‚MrS#”C&…Aþþ¿FŠ vЇ,xÈŠèFY§†ÖKDîU»¥5{ÛlÓÕ½+Py1Wµàå-„ …ºšöx¡je`´Ä[QVlaSÆUš;pÖIlâJÝßLÓAt¸  VeóÐY0ÄÔt´ëößìp†iRkðØØb¿nTÓ«¿Ò7Ø™”ß§qÞ#&\kô›ìLmÄ õ1¿1Fv®Á™a„ýóóð¥SSÕ< y;Ö¯cžå ЕÇi ·á¼á×p`ÛtÍzýZüI½¹¶Î´^7§ÉÙZõŒ4µŽ>í‚L5høÍ&À'íU3¡i`?{°#„õàæ^8zjÒ¸NëoN¬ ؾ'<d‘þ8¦’”3_;.½}BnOu3ëæE4c²æh†*‚ÜO˜µ”xtJö³c]*³ÁF)Râsë*ˆÆµ»ÝÝ¢™ÏÔ?wöõ7Î_wû ½¨0ו3Ç ’Ršgi)O¦+‡÷¡ÊÝ 2V{‚üYdR?C[Kf¢ŽvAt#"<%yÎHðFŸ§e·¤À”5yBKÎÉP4yöfH‘“PtRþ°£Wh—P~¸ GÞcûǰ`A3ä+ ów'8Bw…ª9“{‚ÄN‚ÖE›Ã‰‘¾åžgŒ¯9?a§ri׉dâ/Iuf±sÓÎMøíDtÆ`ÌšîF(aaÑHþÆïŒ|´&4šù„¤bé8 ó–üÊ=+Òô!Û»ò"Óm` Q(l—Q–s³Š6ì%€„»ÑZ"`´ ~¡‡4·¤$ÊHÍŠ®â«ÙÙ19Q#ØÀxFSuÍç¶;Ñ«QgRQ'Ï‚sgôløä¾Do 8”B @ ‡Œð]ÇEajoä N6¸ª³9õ$8  Õà¹Fûf k„A²zƒHëȶø("S!L)qù™Û ¤uÈá–—ä6Ñz·oIdÒwVV~BÓE*X¦T0JÊ•šÄY]ÛW§ÐA4ô.B_² ØÍ‹@yÝr~w§vµU/’ µÕëSÉxqØäC¿œèR¢ë­›ÉÕûÉ⇠–Â/ƒµž„/ƒr†’išøÙzè,Ðkà¦ÇCó¤Bfd·@º‘B‚œ: R˜!)Ý^#ñ¾È¬…9F™£æyè:Ì»L‡wmÿò“Ô‹—S ļùÒ“ØG‡5Æ¡‹=ÒÎ_yÖ"{=ÉW. ’ë=”«³h{y ¦N0=Œ_.*{O¼K¶¹È®ª2®SÿëÄÊ[ Á=Õ(½a¨.±®d ?FßbI^™-ÿˆìÖñ;'p×ô¤ŽÍŸ+5¬Õ‡-?h‚`ÁˆïŒ=¾iªaíèÏÚ š€!‘êšiVŸ¼­Ðˆ(bgó 3ª˜‰QÀ*M.ÿô ‡ª3fjPºn¸ìлéùZ‘c{B÷„Ï¿¢·SPÚUqÝòe –¹‡ãfvö Iåžÿÿ{0d > ðÁë­0øy槨*¥zdµ|&Ãoà Ýo“ëVuÊôÇCÆŽ‹ì#Oß"êªÕÅä%Ò¹Öw²‹W}fß]rð:‹óåï ¹v H}ùøYÀÝdÁ›Î,Fh§å!ÿƒÁ& ø|t¹ÌƒÏKÔ+WðòYu§ I¾ ¯“ø›Ù“suW‚Ç}¼¦mþrwõüût¨nendstream endobj 1453 0 obj 2922 endobj 1459 0 obj <> stream xœ¥Ûnì¶ñÝ_Á·r[¯"’’(µOÉA¦hÑ61;@e­ìUή´‘´qœÈ?$_Ú™!‡ÔÞNZÎ!Årf8wî÷"M”HñÏÿßìï>ûª°V¼Nw©x½ûþNѲðÿ5{ñÅ”B)ñðrçð”°ZØ¢û;©ÒD'*_Œmýñ¹w]ß~»zøËÜ#ê4)m.þv÷ðûGùy¿Z›¼Lt^È¡iŽãØöMë¿•F/~\drÞv¯drÓm3w+%UeŒüa¥`Tæ¥dt«eS§vŠGÌÛ6N€BÞÜH¤•ñ2YÏ7pÚ~wÄå§PŽÞÃ.OR²–› z´›g8³Ý¬¾}øëÒ,·Í°Ò¹|ëßV õTåFÖãfC?HÓ\¯@Òiš-#žÛÝ@+3À^9@˜\Þ‹c¿k§It³è&QÏ´œ+†Q‹é}šÛ}"¾n[Qï¦A1Ÿ}eUæ/Õ› ñ°¹{”Çþy\©3J.uÁáEe(Ó$³yéeâu%(Ù:S6)³B¬u‰š…@NË ñøvíæá7UìÔFL‡¶é~n7ñaÝìÚ1™¯ç-IKU G¹:-ž$³«5+U%J)OöÎÏ.+¿ 6”¨§Õ%s:­’,»äÍoÃ~__ð¬´bõ»ÉÙež3)ÍUÄL%¹É+¾ñ Û]?µãŒ‚¢½ÄMHìëñ£¨ŸXž` ½ÆG½+ô&á›Ü*1•ºä¾Dîûy¬ŸëiºàäÚ…"  ;}ëà2k¸¶yÞµâ—òWq»~n7Qñ‘Ý7Ôó+תó<½ù?oµ(’ÔV Æ=grvX)4:ÊûO«5o;‚Ôäpi Ìïj™4©”ù´ßC ²WY\¡>[tYŒ¬e!6ݾí§nèý"8Š:dÏ èYœ-ç™|=Ö|Ïk9Àm€›ïŽÓhõN‘ _:Î]Sï±’»Ö9%}¢4»ˆ‹žvAƒ¼GBØ„ËìšDrùS;g>t_ÏíØÕ;Pù¿"Þ¶mÓ-à^×Ý‚Iʲø¯¬°ýxZ¡Ãe-õŽ×‹ãìvwèŒÿ[³Æ°NªJ'”q­u’V…b_qx'V² 3[ƒ”pnµN 5:ì\sx²¹ü±Þ€^·R”r¬;Џ<'ph7ïˆaéŽà2Úó;/T2‹ÃÃBŸþ ¿düLËÀ+Œ)^óI}Û@œ¬ÇÅ–/ÃxBÖØÒ †at×9xyÈ^0ºÓ8ËȺÜ8¦@,”óÐKºî†š¸<µ*Í•jV#‹d¢i è>$Ë’2µ%#lÛzÓõ¯L™þ´Ga’Éß¾¼Ÿ º;ðüÅ; -Y=Uj¯mYàΙÓÀ†QÁF/¸»t‘9¸V“1ÆRäì ³“ã:ŠLa*8Á·/H‘Jɨƒ1˜`ZùeïÇÖkMP^€ƒZ\ÙJÖÇÝÌ( ‡õÔÞ_^æ#æO:^ãÉÀR®ì„‘‰ÉÒL|ZVD<RJt_Þ§'ÒyÉ’¹i™¶"Ëc&ß¶]³ÓnÁ}8´õÈæÙ‘ç§ÎéB”Ÿ™Åûˆ”'>w™ˆfpeΙÃöº‚ëÍåÏã4ó¬tAŠ'SÛ ažƒ òLùLÝ/aÒ3ñÂ`€Ë¥O?¾…ŸqKœÝ}Üì„>çAÜÔ:OäÆÃ7Cõm<Û¸*ÂSI1˜§n×g>½nÉ©A* ö`0ڈεó´ðÁšhÇê$í›î¤ p›Y9m‡ãnãçxÉïÑZ†®´å%bµ^Pá=º[ò¢g¢HöLÐf¬‰Œ œï[qÞHåd;~w‚Cʼ ¡#íXí±/§pKF§Ù4=Ù´©öP+lø›‰ë"Í8`Ôh7 ¯k 9îÔ~¹{_^¨÷¼¿u"%ØÅQ‹Ì9¶p‚šÒÇÇÖE•¦ ¤å¥#²˜{©Î5ã”ø1Þ­§ÆÙû*§‚²’I$àÁ®5XcRT ‡;Õ{¨"‡]É;T«Óî8Bµ&V[äU3œòºÅTreù.àòÅÿìÞ9ëß`ÊÒŸS½¤ì óóŠCC‰Zhr.!×)&äGH_¾¥¢j‘©•¡?,eI¡*9Aì£L纒ûãÔ5qz¨ÇùÞO3RõÚ);~0–²k†zÞÇòŸÿ&®\÷÷º¡ÜÁOžÛL‡»Ÿƒ'«›q˜¦HPA5)9óÇXJñ̹%‡¶:¶Ï‘ûì¡Ó™§ñ& å2Dœº™õn÷>ø´7ñJN2qá{9ÆZtè#®§utôU. ñ9•üèz"YHS¡Pxê‘¡­¿»$bùrÕXªB/Œåè]¢ÈÈãኵIh‚Dê|í\’aO45R<ÄaFtΆlš@J°!,vÁŧÀ&„…›:ƒ-ºÀÇ­‰?XïQ¨%Í‹¥ÜBœ ”N"‡Ýó"±ÛlP"<ÿðØOøésËd|ç|~I¼óé.Eð“›AÔ¯‡nD^^åÛ†LÅO»)8s-T²Š”;ypã´R>b¹ïõ„-€À¬¿šÙ[!?aôR~Ýí»]=¢·GUHµ¼’)VyReêRçðPÓÍàT[CܻԾ¢KUE, yb«ÈKñI^nKžY‰Ââ(Kcï<Ü„v$íÕÀonÍo¦x€jó¤T˜2p—ÒdÜ¥„˜rÏÖ»&šœ1ÑTûÚÆ·›†K)›+VM8×ëfmKuRb <¤[.ðƒ§÷ŸRN<ü:í#‰´Wo Úƒ:gOíÔ’ˆìMÜÉûÆ0óÑW•%’eÿæÚB²hSV‰…p@öc…ÖØ Òº¥Lþŵ™ÛÐ3>)%Lå’°{F°!{Å©v.Üm}ï¡j"ç58a»Âm+ ý=BÕ<Ì}È¢Ä2j¼Óå­2sZ@°7 „†Ai‡y»˜µñô©ÛCqW÷ípœ@¸ì:¼è1uiëf+dy•£Ž2Ÿ÷¢ ->×ÁÚ…NèóP雄ïÞC|«ß±äã:Óeœ lKô¡à ’,¹Ôé±|²IìÛù.Mêv £þxMÅ•UAÅ?xµõ8™b£ «>Ú¸<¾kÌtí AøïfXSÅ~‚!wyz+ñYì3Å}ŽS$í|ÛàÙh<[îÔÈù šœ¢¡Ãñú-µ´$·$ GÔ‘ hߎ÷ò7bt™`歯܈…¼Ye—7B8 Æ#”ÝHŠN»ø~Œ[õ=ÔM„O1YœßZW$ãÎÀoäs~sÿRåŸÑW”º!ÚKGî”ÉPýæ¾õ—º%+8ö¥/_áéî¼T.è¡`íC{DS4ÝØ÷®½6%_O|ï¦Ò©¢ÞðbBÍ2áS=w>.•zAcç; nàMScûÜ%´¾dD; •£žÆ Ä©kÒKúd4‰Ós÷J7é7¾‡éb·9R§œv ù™Û˜ËA^| M"çðxrxq2îDkWEð!=ãô@àÇÜŒù=;ÃÏà#Ÿ[±÷yZqâÕ6î±²›Ág ª–н½ £:uÅb±äÀ~³E =7Ã/šÝ¦(“<¼Í==5OOø*á'G<ôgã}sc‹ÄÑ—®ePÂ1.6$bâuÝ®›5õúïõÕ^ºÛà‘êâ5–hõ!Æ9ØÏ^Ê\7 Ç*¼{ã,EÛ«÷ W-±‹q´•^ܲƒ4à.öuØ55.ï'´u»WHivõÉ9ë§cÜJwïã–ÏîåH<ÎqHé99zŠó›Ä§žS®Þäša‚?Ýh(éµKLj£à°°áÍœ¿€Ìz—ËiúEOÜp@¹€@ûa¤¤ž60X7z µìÕ$úÌ?ł։­²ÐvªÈ'ø¸Ggç(°Ÿå–kkÏJ#¶ÿ²ÄtoD¨ïù1‰ëž«¥ 9›š¯FušA1²(F95ÊR>yþÎ×çÖŠ˜~»Š/¢)—L»êÏÝ«q…šW¸sÍÕºÂhÐÜíÍ5hà¡–zr}d>û$åWòtPÅOú% ;}qryÁ9Íå)ͧ;…=§¤¹ÁntÔRvˆ(¨,ßø—3tË7Ÿ~_Æa^3†ið#ܯM$þ8C+¨Áž9QTºô‚«‚WÈL¢ãÏe¾žëZüMÆÊXl³[‰¹þÔ U)HOùóÃÝ¿àï?°ÂˆMendstream endobj 1460 0 obj 3389 endobj 1467 0 obj <> stream xœ­Y_ã¶ßOÁæ%ôu­3IýM_’¶)š¢-ÚÄ@Px÷A–èµYòIòîmÏïû¤þ“½Þ»È-Ë9CÎpæ73Üwl ¶Âû»:ܼý6Í2ö0Þ¬ØÃÍ»AÓÌþªìÏkZ’3!ØzwcøË$ËÒ‚­7\¬"IÁ69éûÅú\Ÿ'v½‘ [ÿófýfÃ×{½Xª•ŒR•ðºt55 GE¡\åIÎõâ~ý“‰ØŠIE” ‰›¯ë¾©®í”F‰*ì’ ¯ÊÓ¨G»[,ùä·ŽS>ž¶£~wÒÝäŽó®Ÿüz•ñ~gÇI|Î[†!0Ê”oËa¡ Ð!-ø­ûœó¾ ã P|œÊ…y<·ÁLÔÔ‡ñV‡ñqhºI×d­ežG*’-á?Yà46ÝÃb)³"J’ÄœˆT¦AÍÃÔ®ï¦[Çó¦']Ööƒ5ŒÏd*3Ê6L¢ (Z/24R.ùó±©Ê¶}^¤I´Z'¸íâäRâ4£ÆcYÍ4‚ÓºÝ~’¬Dck%'rÐõ©ÒuXXŽd1´“qË'ݶšUÁ¼/mFGÅ|§Ëé4hûîÏO’éPgPÅ|IÁ踓›î;?rŸöºssÇÛiuX{,‡i Ó¥ßR¡:¤¸dïýO~Wë_f¶ê»º™š¾ÃË ‰pZÍQç~Çþó¯ïYUvl«›M=Þiè[6 nY9²¦ƒ±f»¾m{©YΟà4LWÍùûòplõ.f•rP¾(ŠT˜¨UÉ=ûöì'æÿ}ÉT ~FG›0¢ù›fÇÆªí?¿áìb=±À‚Ý©mͪ[âD¸þnGËHÁ6ÝÈÞˆ·òá .dOÍ´gû²}ÑŘó,bül³kO“¾ÿìmév${³rÛ?ÂÚ©|´[<°rù°Ü-õ’Ù/?á†÷g§ÅãÁ9Ï6båÄ:ýžŽ‡‰¿kØÅ¿/™îj6»P6"d´|~†}Koë$3ÁoСMïBMôƒjrÒ€Ž—°›åPŸ@Ý,Îè~ ÒÍF26ñCHxyšúC9Y<ðKÀ++ˆI %úÄKwêØÁ±%À@/è£ÎW¡X¢H Oû¦Ú;ÛS—Ç£×¼5ð*VI¤2àuK˜]È‚Ÿ)ÍÈ¢CÌ–Ô(Û±·”PœfÐ4d$ÈïmS5Y‚ä[‚Ö'|ûüâžD^Déªp6¹vWñ*R2•î²"'²àßta\ÖÆÙÜ„I?n¼×Íà#Úùñ®Â2Ê/þÀÞŠggÎÒ¨øDJÏ" 9Ý.)á¦iA±ŒU )¯k®"‘E¨ @;™ä”)UÐ8³èM\ iD„²¹Ö¤ú9´?à}•“çQ)<@v§—Æí˜ÍSuDAèÿ >íõD>-¨¸C–ÏIÃVêLÓâÙÈS²ÞSæ*_E6¯Ž–’&ih¯Çqj/—8Ò9:Ì>b{9wwãáîîÒîj%yæk2“ÏÍ^ÎNª”–'I¢XY'å¼”¡’ˆÔ ¯„Šîî ÿÞ$YÒ!¶~h‰¹Ú°ÒdX"¯û îñ6hoàÃf/ÉÒ P¨4Xñ¼¡PQ¾Êù¾š!¥t£¯€Áˆ?fE nÕûÁÄ›ù¦L!ãÆTYbl~t”´@"åù2SÜÑL iÅÿn²x.%T=fŽ5Ãé³ZÖl%låâ¨Y(¡#Ö@žòîæJ kw™¤ÀžqL¿–ZA¹ ©|‰ŠÕî[vÉ`² Y¾@ l{W}œ¥š© 9V@|·3íwŒÔέ·õ¹c!€ÃV¯çn9">)Ü™Çþ §æàÕ€c€ƒùc%æ’íöå0”݃ö3P }ÖãdZ"b[p`½)À. ]+“]ˆóNóÐé: _þ·+ºbÞŸ‚d“¬ˆÀ’š£q &S… ȳG]5»g>sp–…ˆ’,Ÿü[81ç@§q”e¹èÛ°KЖlºjÐ¥éìHÙØCÓR9@.P4Bu;=imÊX¬É¹ &£\ÆÐŠ‘=os!°M×j»[É6Õú¸-Çñþ¢öºìp›‘‘Q~¦]ØßXÕêTzXa÷æ?ï EÇ’+¨ÊÀágžÅÈ5»ã/pQ˜: ]ÁEÌí~ú÷HÜ-^¨µ”±€VrƒU°v *P ñâbP§¯N˜ÒJ[¬@áÜc"QÒµ+@ñYW„ÓÂwªv‰­ÁhìšÓ•A¯Å9Íg¾¡"¢ô#›fŒD[Ź£$ÜëÉÀ#_‰ó0×rm.4‘gµ¯Ì?úœ£Kùºº¾fx%¢•žIÒпÆî!gìd?65™§ 4ÈDšò ê‚Ó8ÒtLa¹9ÿfrBs~83ŠÇÔÇS:\ûSØÎ"-ƒtÞÍx¨·Ç0÷KÙ¬˜é‡z ßñWœ™îCªQ˜g*’ì!ëþ2ƒxhN?PeÕŒ†P¶¸§ ‰nÑ6¦ˆ °Måc¹r-qöVD’f•Âx”]mˆ˜rïë;VŽI…†Wó†öºÒGyÄeKÇÎy¥‡©lܤTP¾ÿ!‡½È¾ ú™Æ6ð`œ%à x ‘û ø¿mä …Eu]H…73uìG×$\÷^c÷=Ç@¯ÿpÞz2¯F&žíÃ"ÁÞònáöR63Yq[ÆWfšºÖž#3>j÷;è²ó¶HÎÎ|­À…ªö (jÏñ.Ôå4ÓÔ›z!Ût'¡’…ê0âWB6Õ²é5ІæNÌ{c!;ÈJƒ˜(ïíù¯¥&Ä+FŠÌ0P$I|VåÓ5ÊRBì#ý=ƒ¼W뱚-$º¦c€>G¨xX¹sAï /²PÂ6__ïàà°ñ  .ßé—ºäØ-;U®>D§påþâ^^VÅBþÊüº¡‹Þw æ€ Kæ™=®hⓃ‚úDf3SÒÓËK¥¥¾W™áŽâXÊßWc•ƒÆnÑžÌ+.8àµ{.°¾½P8#…Çö4¼8ó§U½Ê¹)…6í÷U5K“ªp¹+•ûËuAše'§9ð>ê—êÿ6"“8R€Ìu † †Ðeµ·TúZ{âæík=ŽJñMåöÈlÆ7 …yG3Dê[4äsÍ‘™ù-´´˜8³âã ½È m0°bùK~Å"qåßfoUæ¹}·g³/98£ìKŽYu¥h±,æMÞö- z‰À05–éô2Ëú+Ô6ô‚Š/†¾r_ɳˆgýÀ®°Q‡#°ÃÕ|…•5rnŸ‰ß{•º„Ö‚ˆ0 Ž¡!¾¸úê‡ YXw.ü»L àŒµÝwøbнP>goðÚ“;pÒ»íñõúæ¿ðó¢ªGendstream endobj 1468 0 obj 2628 endobj 1478 0 obj <> stream xœ•Érì¶ñ®¯`å*‘˜ÀµrŠ«²8eW%yªÊáÙj£a$_<I“½.qkSÖš3"ƒ:ýñ‚ÕF‘¢ë4 :âùêÁæPÞE!*η)\cÛgºn“~9Gܺí%~¯wmÿV…³--guý¦ÃlR«#Úƒïv‹øçSü>ø¶Ÿ9j*‘ÿ²Lª3³*LH·x-’úݼWdUeCº˜„€£º7–%O¦‰"™ÛïÈPê²Jý”´tÌð^ 7¡êåxð˜–ô^SB¿iÇM²…ý%} •Ðu‚òX˜¬®*w–¦àápŽG§•¸«rð:Oyâ4ÃØ¬Y5é"µ¢ÜD0˜6B•ĘP„ZC,qÁ˜Õ›HyYÂ0(oŠ" ×Bÿ̦Jœ¡ˆäôíÙoü½ßD R2Err#œº>"Ô çÄ Â–—‘€Y\nñ¢¢/á`x²˜¯¸ôEnÜÓâÖuÊI8C¶ÆÜ ŽÌ#‡^»Žâ!òoœVãe^ˆÃÅ/ªÆyˆ‰ÓÔQBX´Ñ¶D%ÊÅm`<\¡Ë[TI&¥§‘ ’·O±ü~…z¢};ëÄ„Èiݾ²»L'¬]zÌ}~ûyßhÐ7άMz1uÿ½T§v#[1¹«¢«$WURÊøËõ8F¼Öôpœf™ÒÔì´³öû.qÙä¹/✳·!²œº%ßO<ÓN.Djáz­1×2¶«úsBA¢» ’“ê ¿+ö 2¼é$Á’WÃÀ… ŽnGˆø39šYJR­“Ï’j=5µUˆÀªF3»`LÇÚ(;±]I*ϳUñ9ýƒ¢uÕä"¬ô›ûŒ "›ÇnçÆºÜ›fI½ŽNò,½˜n!”s€µ`‡aÆrå[È‹Hz^o4oòý¼ñuù‹ÚÇ5õªˆ wh|„=]uxjðãÖ†fx“¬.xÚÈ•pqØ`È“tJa uÊ«)c+0Ÿ—Ó|¶Ã0ÇyÜ·ä)gd¯íK”åHßUð†Î¯Á úE/&ÇÂe¦Ájm Ö² ¾¡n’Ýg:R¥ᛀ8,ÒUêZºy ¸Û>GÖC¤9=è*5§8„.ÃëˆB>’…'^2̪Bëh9M/ò‡Ïv¬Wuž¤p½‚ý¸/)®ª”KnHÂ,"°CQXîŽ*ÝûþeÞýQ ଇžÛ™ë$3 †@ò<ÌsX ß¼NÓìOÝA™9h·Ž`<ˆ[tV¹ë^¸K"Ç×E'¬oè:­”ЇûMø‰8ç¡ïÚRgÂØËö©ˆi™œÓ‹7¶U5Ëâ!ŸÂŽD˜S?·?ÄÙ «ˆ?®hþ/Ñ,ãƒòŽ¢€ô¢fÄ´Ó;öÎöT¸' X8é"¨abVâ¥B†p™š|œÒ ›K\@ðE\v£Ùä®{Uæš_órE]Zw…åŽMºï¾ã>¨¥ç-…Ót”\7ñ[k>¿ eB>òý%Î(`Im~1ÉlßõKˆŒM÷P©€å{Oi¨Z<ÖÁÚÚ¹[cVL¯ûnNÀr†dò·ÆvŸà²SòMªZaF®³Ì³ZßÓß_=¾¯ Ö¢viwŸåuLub#Æ”è®0jkF´8ùÍŸ’õ~˜|²;yšú°Þmß'pIÉ×0è÷Ó4ìúd›~Øùí¶óûÍãó0öÉÈûM»÷ɾïý<'ÛáS6Ô&ú¢]ï’õnèÆòé[;zLfß''ߎ Û×3ŒKsé»n¿kÇÃÐwëäðîü|¢ù¸¡®Oà$e‚ÏDŸ WZw¯ D™ü¯áÀŸÖíÆN8ø5º´ì7—Y÷™jm1¡O¯«¬¶Ø’éæŽ*9 (KˆÐRà7)jA>(®”ABj&öV»”æhÉ! sX¨ 4ü¨ ë`g(”zÇ9®!%’Ðp ”©ªå;¶@i àÒ„WºY™4yVVŹ;ÀF„ºY<Á¥WxÔYÁ.b¹RXzûL ˆT ªe†¼Éˆ4E:ù°­sãRò"†eXr*$ qG@©1KÁ%K²ìÈ’†ÙGŽ!½ ]i»ß-÷~;+"_É“ÇiþL)è’k»ñµë§÷KA¥€\4”2Ý—y™•!ù¹Ž–=Õ¹*0Áßr·\®š×,kz)ML~™ßëö‹‡ó8Îé„ï6ù ·:LmKÓœ»â c,£+“0ïþøàÜtaþÕY<ÛùD=a›,¯¬šE=ˆ¶Îo²Ÿï´AGP<Óö:^Ê«š¦Aò´ÆÈê}y)Á—³r•n¹,÷ìõ³¸Õ,×<Ÿ"+²GÃ%¾ÙÕñ±)æ§ÇoöSû<„.öúsä$ß?«ËÏçG:/ך"¶ÝOƒ@¥£c2¦¹uLBUòZ‚Z”þtè6›½ÿù!ŒèÏ#ˆKÒOm&]¡NwÑ̈™•çþŽë× ‹ smÊ@lÞuT²½]»ßÆó.Ÿ“XJŽËtøˆjM™Uy¬ˆŒ[‰Õ7áWR¹Ë¬ ñâÃÜ~òøz½2øöÆò‰Òo³€ËüùéîŸð÷?Fðeendstream endobj 1479 0 obj 3865 endobj 1484 0 obj <> stream xœ­ZÝrë¶¾÷Sð¢3¡‰‡ øÛ»4“N~šN›ºÓ Ÿ\P"eñ„"uHÊŠ^"ï`?i÷ P’­´3_˜‹],Àb÷[@Ÿ½0P^ˆæÿzw÷á§4˼§ñ.ôžî>ß)b{æßzçýùEòÄSÊ{ØÜq?åe‘—¥¹÷°»{ôWõt¬ëî~gQ ÓÜo&ói¿ì*!”?mkGlú¶íï£$üðM÷$¼È§ò^A‘Çþó½Šá#Éýz!þ¡këqtòF‘ÊrÿhZ“Øïú©¡\ù}ç:8K@î°ß׃˜¯ÞÜõÝôÃÚöFM» Cü£U—e ®iÛàþç‡ïïTä=üõîáþ·e3웬‹Š$ÈÃÂo:óþo¿ºq+'²ïÇfjzÛKÁò®zÍÏmå.™ßæ[§°OhÊD.–ñZ“BXJèü¦ÆuÙ9b5cìÊjF)­êÍ=.h‘~yh'±ß_ìç[î`X/v–ÉÙ4_ÝÜ`ž¸À¸´/³y‚;¼zMç5 |ø)S±ñå4TžDàϸñãöä^ÁÜÃDû¸9?›.Îýã4б–^Õ õzjh°Bë¹mÞêä• °«»¶,ѵ6ª–E$Q®¼¥ÊQÃz0ÝçÎàÏ÷ŸÎ†_‚ñGÿaÛ #$I‚ËÔ Æ†Ù|"ˆmà ¼ô*ðÎ söPÿÃáÒƒ8°.”ácp&§Ö(Œ´ô¯nöô?Ã"o £3 ŒG£–º€¹‡…‡>K²ra#Xß²{j-û«¡\ÿ‚!¢ˆBåדp`ÁËõDCp[aü—(ˆÑäß›“4Dv¯'ó]g¾á|”UEk¼¸Z¼¨Á»2™|y5ù,ȳüÆâAàLÒH>¬n*xdbÉ…ÄÚÈþ"ö› ÖlÂ¥Y`FEšº¶ÁDud1œ ó ™Â-6HØg¢x#BGûÓi/b*¢À]”,óµ·ý(Âú,} S³Æã$zœŸ³¥ ØC¬E$ó-SÏ,Õ6§U Ôã¾îmœŒnG+H´ò¿›Ìwêã©£Ï8òËvì-L›:'÷âU”ï±î{ó ñ¥uo­¥ª>Æ vIÚ 4n0E‹ÏˆÊ¡)Á€¥[$é/ž½p6`€öScQÐ3åObqâí!oÕU]a–ºÿâ<„°²yj|øËKNayýà]E8H! ‰åÎ’”YÍÉ: ¢äÿ‘‘1Ì9 õW)XYÅÑ)1ÄÑ[Æ·SðW› ‘ž†¨¨Beb9Ra. Â'ä…p ½µ­#\fa5p¾‡Ú°Áßç™“Ú ž2 lt³qíxN$÷œÜ€FEaq…³D¯ #ô¥«|¢“)ÉñUH+‚\V?pcþ Ž©£èËôªq·&Ïæ@©¼Ô2SP ƒŒµ7Éàþâÿte½zkk]å´³WÍ_Bû·0¥à|.Ó»Ãí'ͺ„À=Ê Úf"²ô @ ;£°"ß+Q‹;>bÀÀÌ\x‰J4dþ>ü7º&ko’½_T‰öã<¥õR¯I÷¶œ&;Ý8ÇP¸÷]¢H›e”³œf¹¤Þ K+@•T]±÷h ¬cSMÛË-ÅÝä2Œ1tg”Xo8×ÂHÁLÛf½2ñwÑ •œÆ‰£ß:i¨-úJ×l´ « gtœ É^íÓäIÉ™ìÈÎåú=UçF…I³FpÞ àˆLøtQ¯Ž‡ÕX>@æòì‰é9„¯Àíâ^Åyåxph<ɉ @g̉^3z™ÇžòÞf⸼Ÿ ìçš•ViëÍu¸ÜS­ugôÆ–È›rp‰æÖ¾Ö‡‘AµTyùv¹î— 9tá¿ O3V 5ì Ü^H'RV[bn"¤‹YK×ïí3¸î³ÙÒ[³ Ùyltc—óï™C ç|×qš^ Ç‘ ¹àVHã©´'îæºïÖõyÊûèK Ž"›%4`«ì=P»¬£\`T¾úx)ëË(ÔA^âEÿÀpÌÞ‘zßÓEX$°Ð ÜÛþAP; ò0õ5¿­KF±PÞjŽ]-EJFÖQ 2h¿¡Béž°æÉišì` üj¿¯As·žµÑùÃï(1ø©÷µS}æÚJ]ø‡Hý«k®¬ð. >·ì|··uY1l CJÛ·©0¡ P‡Bò<õÎý–ÐP€S: N5^òwá.(Ìž¶œB0“¶\’T‡ ΘÀ»ëg÷Z¤I3ÔÌÀâbïy>ó½_Hc†U‡ë‡Yª F/DEҠ؀ož¨üÔ ,ò“B8 á†Q:lÙ–W¤rH°£È!Pë»öä¨C75­rIt§+4l/΄ldaÁø{ ¬MJÍY!ûŠ[çÆïh×Í &7sVµÅóÔ¨  ˆI4øf¦n™#º4Àžª$†m=F.ŒJ0õ£)¸ÔbØå‰M‘ÆNμãã½SÐÏ”]Û§òÆ7¼V®¶žgk+éЈÉa|n3ž.ÇÚ—OÎ)„A!*N‰q‚…œ5Fjâ@0¨ØœN¦RlÑpÛ¢ðŠ.TU %˜=X:øÕnæ¼Ú±È.cA‚—"Óvá¸ô˜ÂÌ7¯WDåEd3(DjšQë¶³ÄÊcquSŽ‹ôø‰S+ÆA©+÷—¼»×¹6‡P¥öb]î…©ŸfXD*|(ÛCU ϼ‚Ð7à<£¹oUþªDSÂ8Ê0øRP(\ÇÀ©ýšrô8ë¹fä"¾ {RžåLÑ*¡r!‡nf¤|§KOæ~yí™PO§q¢×""#š­|KYd”»ZBâIš ¾à.`Y·î!/@ÑV-L«VæÅäSįcCA˜¸¹Í#¤‚Ü]DÄwÒŒmŠý{k]×vŠB‡½Œ£ŽÞ®±¼õ6‚œ’ ªÒ”á†Åˆ(ðz3ê8¬ ‘Ú°Bb™Ý`¥jx¥èÖYˆ„¢±©$¾¥¼m:kŸ‰¢ðF/Ž(,¨Ø˜@µÇòÑN«ïùšÎë0yP¶ÃÎX®Ú“Ç!¥®®¥ß-Õ2ïñ{óe]ø÷+¶(Ô a÷&ê$!ÈyóG-̸äÉÂdç:1i ÅbÿgÑ…%³6O]9zÂ6oÒ;×òZCºàÔSI›%t£7º1øu {$’ƒ˜H?Ìxs»Ê™äD '7ãA©ŠA½ÄèâzFo•ï2/8­©S6 o|v’+'j03`A¹J "1X¼ï$¬I=’¹TЏÂbÜç¦?ءĉYCìÞñ mµ ú3”áFzéøÝ%­¡{uìf6˜Ë/bE\ó-.ЙÓEùí{ãytú¥>yßü*â#˜ñ{A©æàlÓl(~Û¦嘮"lMƼ›5ÙuÞVIDÚVB]o|\åör‚Ì~u6“_ÒìÅîB ÊžCއ=lõ8: ¾õé¹»2ÿHþj»XWå÷;^‘ìï.}|)$jö 6óõ¨ˆø7 ’þ©Óžåªù…+5dæ§!‡—]_Õƒ4À‚Ó©­ ¢\§?ðk:õÍaW†°Î-‚æ'¬·«íÅѵ¾Œ‚F”ù_ËÇ®üÄ?ñàÑ?úsê+§x×týðñ~aÞl¾Ù&³U¤óÔªÓd°!ÛŒi_tñ—/2!¥è'8ÔªÏ*« xÊlå¿ôm5¦¥Áh6V •ÐçC#@‡ŸôržúÍÌÍÖÌ y×ëxÎóiz4î [žËðŽ[ÓVð»¼&ïâ_hºOš½úìÛf×ÌÂÐ P§m¹Ú"5œðSÛ«zM7A´,–è„òk°c‘Í<ÒÍô€ô…—™^ó"MòÛ C¯j7?;{Yúi‹Ax¾öØ  I¹ÏÓLJÅH¥í|¥• ‘…{2Ô£2 5ÿœÊçŸyîu† $ó1Ü=×£÷†)o¿y¸ûüý‘ Øendstream endobj 1485 0 obj 3431 endobj 1489 0 obj <> stream xœ¥:[’ã8rÿu þ™²UàsÆvÄ®Ã^c¼.‡?ªçƒ’¨·Y¤š¤ººö;w˜¾ÄžÉ·Ø| PRÕôƆ"ªD"$ò |Š6‰Š6ø³ÿwÏwßý!/ŠèiºÛDOwŸîuGößî9úí ÆDJE‡;§¢2мŒžïâÇÍkôoþýÍO«‡?"É2³ø÷JG÷z“”…‰öwññV÷:K“4+âf¥Ò¤*‹,þR?ŸºÆö˜2>m?;Ì2®}W~Þ6£…Ó<¶çq_Ïç±îd )âyðÓíê~×tëx>6¾ó46+%¥Tü¹ÎB#-ã©}"Â;·Íað°æõ¶ý“4ÇFROÇz–mYT0UvK9yžœU…ñª¸kûfíç}‡â•nd¨"rn¤Æ$˜‹C]Ol'Œüñ°¶h>ñ„FUvNꈧúY]ŧDÀ‚9©‰E ‡<Ÿ§vçHW¢2B£›çÉ÷²ð œ…D÷ía¥ST;š±qSë‚5v àÞ«žVØaX£•B&~v¬k¦u(±È¿4%”sÔߺëˆÈ"«rA@$²ZómÛ§Mç ŸÎíˆb- `Ęû±¦=W`^üg·¬ ÌýX·OG¡œG©öP½×þy„Aö´)AóPhGë›óÁVa½ 8Æ ×„Ü0i:bâ~˜á€ÎÈþ[/„½›œæLìγE‡3Âw~ä/ž¦¯‚Ÿ’®0«Ÿ ÅO<Þ÷!æ±ÙÍ-K¦1 .X+©R‘¡J'›*…¨…L}GÒsau™è´d”GàR…KýÆS°"7Ë—z7w¯²G<ŸÐš\® ÌU ùøqêÎãõ *_*eq>ÄÜ_hmûM’纬lÿ?]Ù÷\gžUzÚ©K‘XÁ©é¢ z‡ôeלfÛ±A‹S;¨1g(§ó#ÉÆ6D ÙíeDnqp,š‡‚L_*d ±  ÎsœÛ]ÝÉ2’Ÿ¯~¶¡÷šzçÈ¥(?kß÷Ô²û(@e8J³K¯=Î4ŒÁRAüұýÓÐÏ¸Ž´dË‹2Om°÷=]²h¹ŽïoaoÇzGA¥ÁŽ4s"ƒY®­îŸºÆu¡rSÜg&²Á‘GE–Hg8ìˆ@OÍ×ñ ú¨ìÞŠq¸7›*Ñ••r–jcß´KŒÌv‰ÚÙ•]Ê)€ËâÄ“f'Úd ¤‡~n[“a¿3c®—f#ÔÐ Ò Hm_oŒ-¤¨+Ì|Óf¤°ö|£-l5Ö‘Qܺ×ú¦»¢ JPꪳSû-ÒÁnûƆÇÄ:6“¸è{S׌×y_]àÌp²Þ‹`ÝjiËŒWû®²ÄTæ]+eÀ¨ä©’ÿYˆ3A;sé“ Ž&×W‘k¡ðÜÅ&·½âŒI„±kËW?61™R…Œ=ÿc÷ÇØq¼\%Î…¬=gšy—xÖ<›+n¤p¬Æ1£½¢[`ð!ëB)¹XXž´Ì´#pºr.: ñ§sݵ?sÄGò H¾X¤*…®ÂËÇzUŠFYƒuo»z‹G ˜°_±YlÐ6]>Î mϾžŽ`B J¶€Úà·yv}`¬[ƒ'&˜QÁß/|ÑÚãŒÍtrÑA f'°Eà´CKcg¸u(&…UåÂÔÝpƒ©ª*ß=Ð:7þêXãEYΤH²*<‚ƒK}°1pQÒ˜BÙòp<]Ó?‘;E8Ï8˜Å¶µ‘#°äCî Oö¥a†¥‹¨~\™Šy¼ö¤r`ÔÑTÉš´7;å‘ðœ(¡´HÆ…v*ñNA©êöÕãí›Õת$øÜ;Âm™Æ'põk@ô4L$hÿä–Þ‰Y™¬ ”0BÖ’ª¬ªƒT? (bWI/è¨êYÜÎSÓa±ˆ?äaåvaw3”Ý ›ÒMšB»[K}šICŒy†ÿ„Ûï™z0éÁê\f«ý&Rz´Ä‚8àkhn0™¸(‹“Ào¨å³côÏ_üª¨ŠÉqêÏo²Ÿ² æ÷¢‚c2[ v¡ƒó3)—B0éNå€Ûç'S& h¨xq“ʹß7cW¿ÊJ—ÃnŸŸG'oîN+ _È Å̺ ÜdY~Í2ˆŽiŠ­àØUYø"¾*±À/u{¬=Õãl¡Â¦_Ø®²å [|•Q> Øuç=K¦í †1Æ#2 |N{ðm /W¹m%žN¹ùü ªp¥rDOõé:ËÀµW.—Y””–ºè§c¶À6耨w/LÉ\íöfX¿,SÝsÐã½!Æ1?apž—ÀÍU\lChbí$w¾ €ˆØߌZ.dâ¾ R®f)x«A_ðVf ÔõÂx3øÔÕ;ª,XŸÔ®Ðáf7ô? ÂEkJ²ƒ%îÈÛ]^½¥6§¥Š'K!ÊSj+¹6•&Ô‰î=¨×]7â ˆÛ3'=_nÆ1fª÷Ê‘<—ÊlÝ$µå×Ý0bž2p寗‰¯–c@B*WŒør;-WÀ{]…ɧ”ŠI>‚*²Ì¶)Y˜ejŽS[ÁÞŠ|¦:Ia' ¿ÌõÓS³Ç\VPì„Qlw ò6ä!Äz¦Ý˜+h–TÉ}³  á¾ÊsÙ3Kóa•8’·r¶\ƒyt =¡¾0˰BýþåG‘dªü?˜ø¹\†\âÍ~î….ÌG ùȦ¡õÑiäÜ[¡±ßOtâ¿Ð…ÞânûM-öEº¶}•³‰Þçû»fž›«ÜJÃx­œøWÌkñ•ƒa½¢ )Qy„”}DRò«…@YK÷¤I¸ A<ñmcss~ Aq˜ÍùaÖ¾›$ÇR Ê©|í$“qÈiGpñ—–¤?žJ-›£Äàr6„¡3£ræÒS›]^Ö·5L’:cûm6ã1ŽÞQe¾ÿ½ÇK˜¼$º¹L½`¼Ü0ﮀýxY!NWX“ã„’Ú׈°ª]ùÛ`‚™/„$áwp€Ä¤ÀÏšËu–RãÞ—vÏ%9¹$g‰„xQùÁm~tbÔÖ‹•õù]¸Y_í¶X¬¬X,ì0œ9?¸·ütªÍ5¬Ý+wã½)YYÖ„øÜwÍ$ˆ>£î¢FÆT",0Ó4ìZ~"ßfÿ´çË,£*¼X´O­þR&¨²‹»%5àÜ¥$M ,•`]ÏM=G¿ô³C8£[]ŽÒŸD?¢:zZ¡p£4Ô§èûj¦¨i‘ ¨I4\ ‡ßLÀG´“ᓉ¾¹¥cDñ|Æ7´ý:º™ öQ{ˆH&nöVŸðéϯkÓñƵCê‚©ÇØÅr Š*ÝE B•dtÔïÀ@Žæ,÷Œ¢©¥/B­LQH韑·2ìXw‡_zõ£í1É ÅttBõÇÙOĉu¤ÁLÕ-+âNkYmyæTFlJªË¤06U¶’§TÄcÝ? ¤Ëxóg•l¬8##Då Ž¬/¿ýƇúÒø0‚ó p—)ñ©po¸e/~ðøn1Ã7·ïöLU&¦Ìœ\A2ž]ÕÉ_]zñÊ0Ô—Œ mW(€“/„‹—åðÌ…|áÇ ;y˜²|Yämãqèéæý§s=ÎtM&8~&½œiér…Œ£EZŒa$Ô,þñpƒ‘™Qo+è¦Ü¸¬/ÜzvåJÃ^óyO¥×NT6‚@ê9K}•½i‡¶¯ñÞ’³„¬ì…;´ña_×>ÙB+wÚC4\…´ÔrRÌ™.ñð]±©…¨ÉßA ät^RX{ß#ðpw§Ae1¢•Cöñö¶m?€U¦¶•smÒU{€KçØD2¸•ñk*Oƒ*m4YÎÌ/32ò½,±²¢M²¢Þ“­ôRVìì¶tEkÆû´FVÃc¤°`S.L§£^4VYç—Æƒyqo£l¦ª!Ý,Óà†szð!ã:jgô€õ HBV9üÄ+äK_ˆÉÐr„z•ýضÏËßL¿=DîOÝuäÒÖÉbôÌøO{}¯Y‹Sä[WÉ "uÿ”ä»ëÛ¢À£¿ZôYŒ¦ì…Æhrª/î)¨¿È%·`@ÊÈö ¿Ž²d³µÊ/òc!6x„¶M—-!¹ô$¢o í‹2‹G±|Éñ\í›ïÞa"‚‹öiC…<÷ºÏ@tîZôRiƒ#)–‡ïÔbʉ4p¿HÝË»X}™•ªRNSÈùüÏ\nPÊV± ¡¸}† ñC¬6V´¸ûoøý-OIendstream endobj 1490 0 obj 4217 endobj 1496 0 obj <> stream xœ¥Zï’ã¶ ÿ¾OÁÞLùf­I‰”’¶Ó$mÓvú¡iv&voÙ–×jd˱´··™½E–²RŠÛõ•›'…UšRÜn¯’ÿÎnÿ X4‘§†~ÙÖ£“èúžÚqó–µfüµ2©÷©·€•¹ßß\ª*UÒ h¸-~53 YY”hlT²%w¨ä™¥eªª<œÍG³¹ª²´¬T2ÖßÎd†FÑI㺫¬L–õ¡a¦"ÙõãdFÛ]Ö©À…L^;@› Ç&ýc˜)i¯~WÑåt™ÂÆØïNµJƒ{,žYl•lÛÏPñ4®ø—µo«"©c÷°¯—aG††d™<x½ÜZçpCµ¿w(èÕY€³x‰+¾qse’¥:j»ï[ˆ¶iÔãÖß»¹62-ÊI¹Ý4Ü)  _5L.Öa»,“Ž‹ƒÍ36b²ت8°y¢?´ínB¯][fÅ1ã²ï«vWÃ3$Ã3ÜÈmdš‘u±.î^Zp Î!ÈxërÇw‰÷^ïVd/ôMbÏKMqð5zI}hëE× gghtZ(eýâ>Ôû7§§˜ÃŠEÎ\¸”{„ƒ±:;‘ò|QJú²ßu뮥SÖL5ŸÚuàNglWðÎqCp=Œ‘|+œêfœoØ^sió´ÔUô¯}Ûž\¿××þ¶ñü­ÂVáneTrhºzlg ]Së“§…x¤¿ÀÆÓqã.CAÊ9[ý“›®ÑcoÍ¢’ Ìø-Øq—Óçúìˆl0·æ§ŽX¥E|l§ªmên©h€2F¢¢™ôב¿º+-d…+%N=J–©ÑùOx”®R«ÿ‰vß7‡>E®¹Í0Œˆ9z& ¿8¾8……R§“Á­Vˆ5à©|3žC"5F³ç¿8UФ†åˆð€Ì#@.LÎ$œÛ›Q`¢ng­J«)ž ËÍ0æ¸^Ü×7ÎÍ‹ûûv¼¿¯W¢k鋳PŒÖÓî À:P¥9¡ßÔÛ}×øÄûFæÈéÑÃ[ð¿vÉÌ6ñ›ÊÀAƒ±&f…·TƒÔ«84žÁa’¿§gHPà ó"8玵™(SQ/¹ wÄàŠ«f=ÃU*¸¼õc7FÖp•x[2 –ö¡ßÖ»4r:¬F+îúØÍwÁ¬éÒF=ÂÊSk‹i&C Ï D϶s<´v$Ã$œì˜¹$|éÚÕE¤Z–i.³àègéd(…É‚¯÷{Œ|×^&ßv"àäý™ŒŠ*ÿÀùzà¸=Ð5»‡ 4¦'ŽÚ¾3/ Ó÷ÝãdÉ:ÊéÚqìšH/Ú1Ôm ³Þ"ºüe`ä Ö ç'pWZ†çǽÑÔ!)ý!gÄÁ’½±”§p·D/뉠d蹩·‘@é° µs½Ã”­á¥òdÀdÒñA²:tý>É['a¤HãJ·›8çÄ.<Ã9Dœ²}Æ(|Ñœ@ÈmŒ.’®F.¢ÀÿYѲ¢»qúF•yVM¡$„´³†É· q`Ñ,k@ȼ<#ɳhýxÝÉi30mÊ÷ƒ˜ŸaF‚j7¬rá,z¼I‡;>·w'¾ïž#‰w!´C ÐE2ÝlÁÏRd-RY*w4DØ‹Ióñ±Á>ÞŒ±{¢#t@Îë7‰ìx’þ"6l;ĆEÕ Žg±#<’ÉõéÛjSxãCÙåfõs»÷˜{x¹Ã{Ì]ôgøJ™4gǽ注l?²;\Sæaxâ§ÀG³¬4Ê )SªÓ‡fÛûÛ=}F\} ÀX™r²Kmmß e‰Gº\Ôñ,uÝê8òâB:D´Jž6ýÀÃJ&ÿŠXöܹ߬7í©®m&†· ÷,Ù!rúgïÓ æˆ«Ù­ѯ#è‚Ø¯è:KŸÌȨ™¼T\Ë¥ÒP§véž0T#O6þ¢GzYïx~N%×.Žª-ŽÙ§ªŽ(8à:‚sOFE-¬¢TJŠü@»Õxöâ9néqˆ•¹è º„½ Þ¾ÉΜ=‡ Ÿ ýá yëÔfEœ/Ï®Z(¡¹«6Ïs›*]F>4X õ>ZGøâ¯ñAa€RßåÉíÌbÔÃè;ƒ™}—t¾L£úR¥ÁÏC S[áL®_1Ä©d‡Ô.»:L®\݃YŒslÖ-Ît‰]9®›M×í§Xè¤Ô%³Éë#ëp Î’³ã ÍCñÐãù9ÃAÊèÉ™5$}X]veCµ±”»eòÉ.UÍÅEœwfè—Í€Õ>gMªd6)¬!YÀË“§tƒý×£§ #h•«A\ó˜¥W L«»Ž .ˆÐ´òÌ?@míî<òwµq¾›æ•øª»QËÜJýt€#6¯ìñÊP+øåao £,ǰ˜]lx\";’ÔEbemòç†ßUøœÛF'µí ƒ×YVêF|1ŽdUüú`÷qFå;ý‡/3®¥|á–åð‹¦è¤Ý½ôCC¿mâ´Ó$‚˜$¥Ü¯Ûvµê&ôEåËiImGgõÑìÃÓ¢Å.ÿ$õ¿©o6‚k››»vHÅ´ðâ•hÖøA,êq×t¯ÄAüàƒrUˆ2-H4ˆ$ùW8*mZ"ˆH-õÔgéT•øy*Ó 侕õ÷ØiRðèJ €1眗×?îýãíÕW*- ñt•‰Ï¯d¦¹¶øg N†7¸£»úrÂ1¬DîÈ-1¼ëë$[Ìž”ºJ©°UÐgJw ±®Ä30¯ .¤Òñ„ ÈÒäߣÚJæhMµŽ=^ëÐñZOÏÙk­ ¥ÐR€>x@ óœ LIsNh.©–Ç‘þ³³ÿf–ž$™|vV½t=Kùù)gmªÈÌ]ª[ÀjfR·ØœˆÇ… ú„4EJ_¿Á¶»âמÒvºXL>ñU­p¼=ùP»U{øãB¹·–»‘‰Åd€ ;¶<)츸"j]scí¦‰„~LºlÜiàÌßIÿCGð3©¼¢ñ<e—ýnçt‚Ý´ÅŒø'c )ŽÔ)Ø"è±–ÂH§çPÀÍŒ™žÃù÷¤Ë8j’I‘DÌ)ü‹¢0µ¦*ŠQɶ©wÃY1ÒÂF²ÞNbïùW ¥/-8ÙBDL\ààJ?ß:Çæùùö¹è§a¼—M §õŸg? †ƒwæ:©ˆk‰õ^6VÝ­Ÿêój<~H±awT‚Ã0Æ×š‰B\Z#¡=¢ñóiýÐ8?X=…L=p¯M–˜3î"—+2‚ån–[*À³mÂöƒ13C †AËE¥ËGVäú4Ò8‰eÛÌÒöínHãâŸÀõÚð^ËŠ>ûo Y þ7ùÜNw×âo*.G)á»äŸª¼3J¡BæªÝ¥·l»v|öKH¹‹`á«ÕDØ IOˆàŠôÇA B_¡ ÚîÛšŠâØlV®×‰ÝÖ‡oéû®u¿f‰Ï€u?Z=;ù±ŒÖÔ‡8Ú¯G nÔ£Ë9¼‚¾ŒX‹}Û,›kÑŽø9„ÈIêŠp6ÐD<àT/îï_¾”Fßß‹bØôO…¼\5kX åáPèoÿ~³øÙw7«<ÂÑìæIg7¼æ«¸(K@c‰ð „"s`kö=üZ¯¢.wð¾nÏ, ™ÙdÃ\|€þºÐ:‹ù×Ãÿ>憎™ °þˆÏ¿À*‡9Bã`¡ pÝ\çñ+Ÿ’©¨Á(‰>:Z$˜hºã}‚.eÜOGàæhU2ò½KÊÙ¼¨ð:Ih"‡ß!De;ˆ] 0A Kxø$V“í„, ÜöåU쀸…˜0LPÞwÄ1ÉËûòjýK ¤, äC€‚Xæ~gBZ m&-ÝV-Ü\Š àä\y¨h'»(’aÒíÚV*5ZT&ÃÝ”ËT¥hGžö:”ß3ó°C–Dm^Fý»Uœ͆û†»ÕñÛ%:þØ“ÿĘÌ jñWê÷!‡îJRö¯²$‚²OnÙ%pÝ»ûÂö˜ìbÂmÝ y#x’,Ht;ϵÏI~aÊ‘ÁâW7´ „2§¿~ ;`ñ‘ÿiþ_ð}ž@Rz»T”ÚN@ávòP¹I¤Ög¿€ *þ²—|IQ^†ð Q|"^7ƒ¸Odv?‹¾üÅÕÿêòW5endstream endobj 1497 0 obj 3815 endobj 1500 0 obj <> stream xœ•ZË–ã¶Ý÷WðôÆPÒ¢ ð½È"¯ÅäÄÎIÜ;·l jÑ–H Iõ¸ç#üI~4õ@”ØŠÇgÍ£ªP(Üzh>FI¬£ÿ¹¿›ãÝ×ÿ*Ê2zï’èåîã¦éÈýÙ£?=â’*´Žww¼OG¥‰Ê¢ŠwêqoW?ªRgn•¦ÂµÛ;u²[^Øà‚´v ¾WÇf3ô«µ)³¸2•§f˜FG§ZM ‰$S‡¶³²Ö¨Oûv³Rµ³]ãÉnÚ_@¶L62©3µï‡ösßMÍA¦kÕtam²'ž@ƒf 2Ûñ!ˆéú0ñcÿò´ S}¦fgÈÕÁî¦8(óaZýðø·»u–Ħˮµa»Ðqê$ÎòR5‡±ªPÇ~¥ó8IL¦^W:‹ë*¯d¥Úö+“«O)2µëσP©:õm7Ñ9hY¸9È:ðö0´ëg›ù0´1W{Û¾ì§ ¹ß¹ï´¦…x4pŽ:*ºú²DyÎ7þ{íp–´ÎjñŒÉò9ÓBý<=uäÚLo(yàdÞ0ÐLa_Ðò³@>¿ñ5˜ZÃõá޶é@@š¦q]:`šfqâ<“¾hG»m›ÉÞd0»±-¨jõ©í^Ä þµè¢ˆó*sùü¥9ýpm™,MjÄ0Ûv°›©]¸û:Mç^;UÁsƒý½¸øäŽz>´§Åã4qbt}õ8ùôZm GÅà,".S/+ßX® `³ÌÁÜp Op"Hp‹ø#¡AÝæ<¢¶¬Áhc4íßï'ÆÿKs3¿½Ø–àAçQ=[_ª±9z¢¼´z¹ß³éχ­HIÙ´ø ájd¦0bh™ÿÞ±oƒÚ;;Øn ²ÐšÛ@¢ÕDGÀ¹vç¾+0ÛÇ3¼“mìGÞ{i•ÇY)ˆdïAƒ§É"X‘ô\Ùn;²ç¦à¹Yb®[Â3IÉÛÉy 4’úй婢óOYšà³Îeq§j'ÙU ×ø€3ªcÎþŠk2õãy”€8ôè»T`ŒÍOa{û~;- 0'Y*Àd Ll68Ë<„ã]½y~,a †Û|ˆl)4ºi¼÷kÑ5,F[Šèn‹ö[b¢Žó¼|Oç•FSÁ8OAÔy†` ׺š4£Qz@VuäOÞò„}¸ ^2Þ ƒŸl3Ȗ¡SÆ/¬à‚Za—Û¸OxÙ&a6Â3• £ÛÅÍ«ïÝǶ“â›ólg >Ùƒ°½œ`cø=³X¦ò4jv¡@}ý‡Åý£coÿþÄ7ëµîÅÖuœg³—A¹Ùî-b8¯n6Óá-¢¸áÙ£vŒž-h ^q4õ±Ó°€;w>Z\ÔšÒ?Á Œ¾ÿÆ~þÜÿ°úê2¬i˜K2¾Ç=p9â5ÑŸ#¸À]ô©öQ;Ñ g°QßE`˜h´›¾ÛF1¬L2aÖõI‰éŒqe ¦ü~a·$NM%v…t;ÖO«Ø­òg[›ªˆ3>êO‰Æãcj8f»m7ä—y )mÓuøD…¼,¼¯.3Ø“”ò¸ŽÈFv_)ZT±Hÿ‚¬YÃù¾:!´C&þvpd½ ?ð É'Š‘•Ú1žüæÃ_>È”QNS7>좌ôrçæ<¸Èáøâýáá«ì=Õ,åÄnÿnèìÁØ!I—h‘Sä¿JKx¸¦¼D(@ì. w3lÇX¦r,øT$ë‘€“~™znIélIÚ ʈ-ye>Ó¶½zXì)w 0ãß4òzy-å¹"àê¸\ÌEÒð@ªš)L ®pÖAiC4µG†_]` ̯!õ̪²^øe”“g^ŽÑýîpžìýõK_{VUÊ·õHê'y\äÙÒ8ä ‡t®t ú8¶°;Ëvð„±áS3çÁžh3ŠìJ¼ÊÙ²,ónT±¹å΋õ¤0K•;NO«á—sî+üæ‚ FÏ'ã€DëÀËÜàAã䨜¨ó¯ä-¬ïAkÙ¤áMóG…\ËTbDÒ7™pí¾%!©Åk‘ààT“§´x[,#•ú£, ™ò{Å¢ª¹Ξó\7`ô<ÛðÒ²Êjΰó›DaY^Ìu7KosãœéŒ¨F{j(ª¶ÑóD¢ñÐŒûßô:tt? çãÉN÷_k³ñõõæï¬¥¨vÝ·I±WQHÖ5“pÍ1¯â¤ý›ÈÇ…‹%‚Ì.Ú÷tUÙ+Dpˆ¤St>EŽ1DÞ‰,ÖâQ¿ƒóŸZ»±ËH¿†\¤‚HÇѰHÌ<ކ§vÚ¬`$Ñà¼ûe,Ä€PhžŸÌ‹Üö kB*iÊêËB"ïXCŽ }¹CnžáÒ¾á¡4r#&„ÈA™:š7z.44jê)*¤x)&˜,ŠÚj¼€m8ˆ–ïíK/¥ŸÎég®’\—@&¹ževö€æ Ýì«T¤}¾_ÕñD´n:wdü=ÙasGŠI4eaÛèé°1–ÂçÈÁu…‰L½ÐÂ0…€NÎU¢•-¹•¤fkˆ‚âLrœñ¾µé—R÷ËÒz¡:7=ºëZ§4±ÁÜâ7¿º½m¶˜ ‡×Ç ~Ñ ºNé×Ô2eúœE÷Ï}÷ÒßßD‘¤‚Z˜£êªDh×r©ÁqêOŽ‚öÛp7ÀMûü¬E½ˬóc!û.|7òy#‰{ó\\ˆ©j<e§ém®ìä§Ü«’¹g¼c,lrDÍeï €,¿ò¨A½Ç›°†óý;nv8±  ×I†Zfá5"tÜ-VÏ3xå|‘µyCï¯Á2ù%B°ˆÜ{ŠÂ3z§z*g…SÊ: M7âk¿N«tu:“PÍ+͘\Ù¡;Å¡g µ|™HJŒD–s\v. Î9JSŒßk}.G»Ük•Iïv45…hÛº8ç´ƒò'Ǽ «oúŸ,pÍi![ת+,ÿg5DÛ@ȼ1ë†T…(¹ü`*-çõù¼M’úÍ…ÝfÇ_\¼÷9äpÌÍ~¥L*.&íðìT7œmàr;Or Úîî7˜2­¾Øy²Y¿‡ú ÎXÍv ÎÀÏHC¦PÎj5j_—¡ßÊĬ>¤È:ƒgàÀÒ1h´âÇKDšÏ9š[1V$”\#,u1üƒŒˆp #ùƒhÛA&ß*PW“G3õÎzÏ£ç\Ø}O{Ϩ9S×§™¯Aj!¾˜õèŠZ"I˜‘»{«^›E£†°VÊUšql^¸ŒB–œùàwRºB¿k ô¬i.wU~ûr‰‰M? ®þ¨䲠X8åêÏ£,Àkc÷{Ï’A,.~’™"óθíƒd¨ÙÑu\èY~h<¶ã=ó[Ц7ì,af`á¯KÜï{ú²¦â¼ç}ÇkcÏÇá}"Há™Px,sáçѲ=Tå¹Ï3È ¾Íôêóë÷Ù‚W¤¦\VK`‰×Á¢8VŒÙt| `®rÂNH¢Î\žxF9\èkÁEšS$˜×º wùJŒîwðè!ÑÙ÷Cw#ÍÑ®Õö-ÕÞY™Åy*?ð0U¹çÄ`~‹]V¦j_QûMd™/¨‹ jaŵ[t+ÁaÔ\˜+Ò ¢c!nÇÊ="òBR['%”ÑÂèÃn™ßÀƒ¨ª¥'YþëžP‚é*¼>´õ:K!g63xEA9û©¹X&Ñ£›BŸN¶d´ ä¾Ku<¦–T¡‘ú2ËþÜ7IrÆVå)-VeÑ•ü Æ¢äw0Cƒ³êCP+,®ƒA³°¹×s·µ¿tˆë—`ü1pDWg÷¿‡v"EZò~EsuqÛ³xc2ña”´g,³ÛBJ}ÕñÀ~ªÌ\¨¤ß©„¡k@Z!#Ãê¹fÿï„hÿ5·U°½ð‘â‘mñ‰] x‘Ð}qå¥= $¨kñõâ«¢Ñíòì‹ÚíùÅÿ~À_lPåï­Ê—ÕŸÝpEgXCdl4æ¾>ßT:Íœ<Âu–Æ&õhýÝÔ¼Z„ìUŠ¿—Á{Dì~µcô±åiEâþúx÷Oø÷?L¦žendstream endobj 1501 0 obj 3251 endobj 1505 0 obj <> stream xœ]“ã¶í}…æ^"glE¤¾“§¤M¦×i:Ód§}ØËƒlËk5¶äHòîm~Äý‡Ü/->’Z{÷.Ý$€  ~ âH1þ™ßÍñ櫟ò¢îÇ›8¸¿ùíFÑp`~6Çà»[B)¥‚ÛÝ ÏSA¡ƒ"¯‚ÛãÍ]¨âHGiÜýØnÛ‡…®¢ª,uØÎÇæ—Å/·G ef(è$¸ýÇÍí—wáí¾«$VQ\¦á¶šÍÔ.tUU’„ ­2+Æ‘T¸©;ƒ_•áÚvŸÇf+ý*œzGs³¯»ûFƪpÚ P&áÐê×øá„ßþõ­@áéP?µÝ½a+œk­tÅkuýN&é°vÔNõ0µ›ó¡¤/Ç©&* íåŠÎ1 È/O³°~"Å*-ÊœöC¾ßG‹•®ª¨ÐYøv  € ~h œ&!ˆ Ê(VYÞƒèÝäPÛÑÑèÎÇu3œ€Ò§Ç¦érìšu· U¶ô˜ŸšM»cÝImIvÍBgQk K´½þ)5W¹ØØõƒ[-2Cu¡¢6ça€õVñe擎Ä`­ÉëJt̆žƒ¡÷ ƒö€íë&þ Ag1è.·B|õ(H0óH—)œ¨Û-¤»cO\抄R^a€´*®dÞ«G‡ØƒÅж’( ›Ã¡g—Uøˆ§G„\?™¶BÃ幩³„“BÌ"% ópiç´“45œV8˜ã|ý(qÇIÆ2|?y½}·š`%Kr:×K{Ú³ TOŽíèdÃó/ôÖ¬ñU§§J«`…ç5vÚn¢uWÀ ”Ðw¦-^‚”˜‹Œf/Ø¥ ”áã¾ ƒÈY)ÔÖäµ± ›f×OCêe2¸³±?6²r3ÜFá§âœ|…<“ˆç ºuëÜ÷Cû{ßMõáð䮟|M€’ç~ÆzPqš—äê¨éðÔƒVÇ¥tdác;íû³Ù§ÝÖŽÌNÁqÞ¡Éʆ¦™rö‘‚Åú±ZÚì}uŒÀ{ub=OžU¤yJº1ÚEç(ÎȯÁÿ%äK+±Þ4ÍZ£Ü4§É¡‡ó0:öýàÚSÛx#Î*qZ=8·SOS½Ù£úAQg´oÔ/RKwEÛF¾0}¶m‚À¶Â3×å¡Â׋é„c¼Ù€ýާ$=µá„õCW½apù¼† 'X1ã ÖU?9`_[7tÔÎÙ9P»ÈŒ @0ÐÞï§o†3»“I™ç«îÈ }#J–]*¥óÎíÊcž9æYá3OÃC³›"¦eø—f˜j4]G°9ŽnœÂ ƒðâ0öŽÅºq,D7I>7$Q°×‰a y<õÎDU°F¾¸=»È±Ì©–a8&ͦ§ À 9_‘G%Ä:õn°ÒÚÍ„»¢?ëÈÁ·|XyÚŒ,Hq-v1Cd•ài Õ°09»F¡àš¾™ñµk¯NQ˜¼ c[ûyÅ ~.*øÆx٬ݤë;g¬šp6,lƒýœO^`8lÇÈ ÉÉ3íéÑÆ½ʼÕåÀx¸ŒQ­#­/‚dözRDºJÊ«AÊ<œõéÔÔV"œnp8KQ¦JwƒgðkãWDÿµ çªbÿ,éÝƒŽ "§WÊl,ØXÛ~Š‘áЯ¤amý×HG{ñ<3|Y#&b…³D¡0ÉcÙ#áZ…ÜÒEö›pKû»É`h%¤hÛ'ìtÁ;{ô´Œò’iëÑ)ݧJN‘`û‰ŠP‘²Ïc6;:ÛË82·•ê"~}SH³ØÞW3›œ•1 œÙ’œ`žë~Ú;L#ußá5,è?4õt|píe©ªŒ®=K€rHVNHdÊõø›õ¬Òrxåô [Óçÿ*|ì‚ñ læ}ö<kåÎW Yä¥ñýè—óz̽’$ƒ¸¢” •À¢â²¶!KzÜ·´xƒy­0¢0ÂËþüQ„4"U×cŽ "ö]”Äqžˆ¯EîœîT¼ûWÇÞsO< nÞi™1ÌÔ]¢%ÜgÓd¬x¥².í6lMõB  ‡úÐv<“`tô0MNàÐ×ïþø¦nÆóPÛ.0 ¶}ØéÙº'NÌ]H@.‹ ¾c·Æ˜&É6˜‡zœ<^4"¤!Œõ}–ô]÷[«g… üU”ã¾;<½[D¦˜@àûܦò$ÊÁ±=3ª²ÌËOûwŸYmCy”ux(Ê tæ +e hgÞM€†Ñ[í;àk¹üm“¾ðŒ±ùíÜt¡1Çýš‘_Ôñ‘AåO®ÛÞ @÷ToŒé—¹d‘«ªƒR^]í|‚ eIaD†½@ ÉLMWLD°„í>¦vÅ‹e ”{)ÕuÿQd–þw5œ·DÏ®jàÀ.`ë±$É+Ј” `SZ’´”‚,ytËr%Fœ ÁU½¾Zs³gŒ=…s¢dï=eiÝ9¹“(€3Àt7à,ijyU©v6ßtà ªÀè=¿ª ²6Åøáò‚^eêR…$ŒªøÀ-%Ì׸’ŽæTõdÉ„»sçÂ)ì‚@þíNcœ1ZÜ‹ÊÐèðÈ™1ÀuaT,ª€>‡Ã¾- ˆt©¾TyÅ B-)ê§X'#K·CMºÁTë‘_sÒƒ[ØRffT:äq®[Î…L?Vü¦fè®cöLh{éQÒðÙ6:†ÄÌ/‚NÓMª‘9ÏV2º!·`®³É­ÄÚ£-nÝ]éXvXíéfÊ cKRL· ~ vÆQ£A«^Ș"ƒî„ 0<— ¨<ÂòJÐÝùààGʇ™IžúöKÆ•'OåÉ“=צé% ä6VjIÿfhüµ=¼Ú,<éýƒSuSâ~½":xheêQ¢3~Ùî‚qƒVý…9ÛÁ›ç©yƒ¿Ñ›_°ÿË]K>áõêU™PåñJù GJW½"Dyq!@‡ÈY z¤E(êÒÀ°‡Ï2]ƒÅyª,­RÍiáÓy$¤ "¼Bã[¢Z¤Â…gQΉˆKÛÒº¡²3Áw¦)Ü­qüº3] ’u 윴&÷á+x3‘sÄy4`$&p‘‡…@!hŠ#”g' ïÏkr3W×½)±àg?i_}Ø.5„†ÞÕ Tœ?l'/¼lÏï™È zëÖk D™¸·³¿Ì VpQÃ5Úˆê… 0‹ª¼˜GŽ>>'æû‚´ ±Töû†Sð'-”{4´-ZD-VmÐäàq  RˆmH¿ôU‰ŒãÑXÑ5fVÐ5!CæC'ZíÖsj› —èæ’–‘¤±ŒØ/,¥rÏŠ³¶NõÒRAŽ[rV ¨Ô¹íÏkv&ÇxïûvLtÓ¶R‘:27Õû<a%Sý¯1 íyÍ+ëA«,*$ƺ Ú•R»ÆEc}†B¢m^9>ìjXq5•`+õ}#a5yò¯=lŠíxEiÙ|åî{Z:(Æl8ñOl¦¢—ݱ9À)M‡N/Æ)20:†nûE_u! Gs­ML@ L@8¹|¾e°°4.³Ù4[%åS¾Ôñ¼æTxòúÐç &âÙ»’†Û÷5¬S.Ý?°dõEy»’Êt@{L8 ŸL;Ñâq0'T@v• •ji¾T]wãàÆÆÖÔZaþ2¡ÁÉ•ð× WÐ0Fum†™à!ÑNföàq T—Ž®ÏËŸK÷ä:Ϟ܆&`»l¶é¨õ@?pÅQãw AcÍȸïa¯Ìgçàˆ/öL/ÀïL¾¾©ÊŽtðæÛÃÔCèóínoß\¹ƒãBGå;tyE>hÛì¬;¨Ï‡‰Gð½šblÇæ»©è´ñi»Šš¾ì³i2{lÂs¨×Íh²ÿX”1E¸¨KÇ’ë<†D縑5X¹¼Ó3—u”Õsnb×ëõ¯Ÿ\¿ÑP¥!·# ‰Y8‰SXZnÙH\¨ð[ó¨Ã‘O½6Pá9µOó§ÚÙ<2«½¼à[¹« ßq$*b$Wª ˆïbzi'lãª@ÕN2ðì±J„¡×Q+œ‰te†Ø‚ÀôÁ‡™hü¯]ÔäÚü@> ÕÔøA;ÜY=™‚dZWþ˹·Ùø‰ÆE\T&0Æ[ªqÀd¿ÅPîqR³÷2ÿ¹ù™nˆ¸? †„ …Zr'VñròÆL¨ÌÌ矔€¾šÚ~TR*m_ÝÉ~1W¾(cñÌk… m,¸£×îS4€¼Æx>aUw äZú]€ºÏ8æàÏÒÐÉÁ9û&ðRöË¢±÷ÉÁ2hާé)0…‡ÄÖM€\Ík åÊaÙš†°µpß4†*ÉŒ#s±MšDÚ=LþL>BêVåàX„[?4cð.Tñ»qøþöæ_ð÷?áÃx9endstream endobj 1506 0 obj 3958 endobj 1510 0 obj <> stream xœ•Ë’ã¶ñ>_Á›©Ô #€à+>ÅU9l*Nœì¤\©]8µC["Ç"µcå#öìŸÈ寧ô˜Yomm h4š~C?'ËÌ$Kü'W»›?þ«¬ªäÃt³L>Üü|ch9‘?«]òÍ=¡Ô‰1Éýæ†÷™¤²IU6Éýîæ]j–™Í\¼û{·0.kê¢NŸ·ýÐý°øáþ¯¸½.d»]Â2 ÞÿíæþïÒûÇnqg«&«—&]÷ûn5÷ $š*ÓÜîgϬµs4öhO€Õ¯ÛvOÒº3Ë*«àšîŒå¯ûaÎwyYdyU§oféô8¶kMÚn \B‘;ø6UE™¶ÇI0J–*ˆÞY§ó£_p̹®5ô鼿F¾ë8Îñ²IouNXœ´Mzˆh ]·[Û§§v Õ<퇰¶Çèì¡ KÀ¯]¬dY@x³ ;ÛÏí ëýä%:Œ3] Ÿu}ê¶ ÞÄ}‘ƒÞ¨[XøÊ&}ÚÃíôÇ[ÊÓÇ4,}îÈ"jW枊 7€  zû1‰¦P{á@þ¹Yk²bY}ÖˆªÌ–•U#zîçÇÞT¤ý'åÞ¦ý‡aÜwëL¾×ÔéÛ® @»Æ€ŒjsΞ5ø¯çnÛ#œÕó…k¹sè\lþ±k× ÑÄ;Ü}êX2%㜭3Ó8£·Æ¾­9õm;¸˜%\aWÒíºa~ÁÑ68:Í3ÐÚ×ãXt ³¦P{D+<·G°Áè—ö»]·îÛ¹## š€´™;Å1ªË…J€Ì˲V™¿ë†5*=qj r ßmœM¯øöÂdÎå~ï‰ÔáÎÎ,MXz£_ ~4´BáF|‰êK$_BߪÎ/_ºÌ˜Èᩇ†O}FUsY mB®ÆA&àSˆ”ŒÉ#ß*Œµ¼"k7Œ!zlÆívdòu6êÑÒ‡£­$MOx*\dÄȬôŠˆ‰ü,²(ºh³NØS5âËQO×?ìlÐ ôÜKyWž„0SVq$€ÉxÝÎm& DÇï‘ú¹J5.«š¥7ct3`?¤GUkÔuCª€t¤‘½r¢1›8©É+¡Wà êi о_˜N)\úá€Ç܆µï¾ý>PÙŽãOS) Ó·þ¡óâˆ3*ƒ¼$ÿ§ÄVñ©Ÿæ°[ýÛ©ÀÀŠê%%uÆfxkÙ ‹PðÍ&àöì÷QSAÖdQÑÁe[Œx2„ìÄ Õ‚#ºŠãØšq\UšbeØ›AÆ>§¡m;)T«b´6 ©@ 6ÃÔO3›/áœnåìD7¿”eÐzʼnM‰ŸyÆm˜'Mö<ïûn  ðuü)Èp~öæ7²[00/¾ÎC=ݯ‘• wGuI2¾U°†4qÕ¦.L´a88¶~ÉHê,L¨?ÄI“lõ¸*™ÉÓ‡qžÇ]€c­§,Z ü®Çn Xšµ¡lРçYáêôÃ8®3óô›£®¤ÓS·ê7G¼Ú‹.¯(«kž¯tçžO ¢‘=#—®Ð€«JïIo=;ÇñàÇâ‚` ù°V/BY|˜>pNQB^ùìG”S(»?¢*ÑW¥Ñú²4*€d‰—|Íó,·MðuÿO¦ì%E†s(Pðšˆc4+D ¶*ÛËR‚ò»ß-X&W²ôÓ ’…t­j %8+ îðåÇÀÑ8¾Y÷ˆ 'J¯f²üÌqWhJi"PHz“ "î%WÀÒ5%ðì¥ Úž¡$Ïýv›|‚JòxkñË}6ûqp(s·„L¢Ôh3É „~’ü'Êj§æÒ ÇÖ9æ<[‘Y¼rQåeL`’-ÇÝÓ¶“•æštß=mÛ•’wènÆÉƒµ$MžÂÆÀŸ9åïiß…Ì¿SØÉ»³”H†b™a{Z—ÒlSrF€cð)àEÉÕ󖆓Z¬½d=Å‚ÙeBb®+‘â…kbbã •FKEâJC ìºvˆðçÇÖJ#¨¡¾ù¥Å{‰>9þ8bI}äpØ=t{”håÈ>Ú}'@ë¬ÒḬäŽp’Ž0ZþºîTì©)Ëü6L‹Õ $»•™†ó0¥SˆØ¦BÜs åÚ8DˆÛm¦ÃÃÔý|@¾T x>&ß¶* LÁйÚ8“£)ËŽa x%ºX1#¼$©¯ÔÞ Èm$Ä»ìD1ÆËRœ²°÷­VC4aÒ23Yé!Ô¯¶¦€O%ƒ,7麃åí&Ú-Í)½xìæ¾¥CpQªÃ ä¦Éfg0{Ont4 pÏÉË9åÄÑ…<W1R*=îlÓd†ÃìY&H³ o¯e¬º“> ÜH×ö«Å*0>€îÇØRbFÓ"5a¯Q y2Wc”ÈØ…œhŠ`³¦ÐÙ•2 !Ÿ¸® Pè@¶Xõë̪ÝCn¸>srW»\±øý¸9‘)únšãRƒ§Dö› ”jZ·ºÅç¼ ^¯{ÖE¡’AÇ]‚ppÆ,Kve´\5.põ²déí¸ëæ~‡¶«ÊûEÝ· Na¥m|# #ç|”êk]Í9¿À±/yx‚5y|¼çŽ3f5_µÔwÐ/¿ ¾ˆÕ~§ŠÅN<'½DY\0`ÓŸBª²éqÏf–þ:ŒÈ’\ÞoÉ<&è_Ö ØÀúYí•F œo—~{òJ—Q»žUžkóB2drç3Fi ïFnq&'ŸpÑ$Æ,4Þ·Íò%)ÇÞË.®Í ÄE÷Z¯Ú6ØË1)Ÿr”•ëX#¼ÌqÔ 8£¼ò‰º£ i4D:VÂ*öÕ «<ýÔw+J~i“¥®¢MãN  ¾õûÕa²Vrc¹w'îZ.4ï*›Õ0ÊVRÏ%\¨çº›ú}û°Õ)y¶ãq!ÞP°+.íx#GjÿÂDMÉ÷( !š¨¸¯AtœV0 tÔÁ%:Ž›ºcóý°Žzíýú g5_Ž·á˜6SR­Z…“l$ŽR|¦BÇ(«ˆ;#§JéšÌ|WCM¦Ìò’ƒ¨/òvÍò»RÌ;|aòÅ|&$\#M=Ë"îޭ‚V ¹Œ^4‰‰óT[g_-XäèE6Ýëú¬ßLU«lÀ‹3>þ6H †éš:ŸºÅ¿öã®F–,h¤-×{ö䈩š¡N'Çõ A-á2mùnlÄZ¯ÃÉÊÖ_fLºD³éŽýÓ•ˆî°‹÷jDçFc¢–¥õÙÐþSe)•(.bT …˜Op£½VÅÅ^+dà—· ¿ð\b'¬þbm3aω¿VÎ*Ž:VËÚ×Jþ“@A¸e¾Äß=ìýŠ“o ÷•ª1¡C*ŸQ^Kݘ“.“h!ZNôriÀj<ìAç@z¨Ò;['GHäÜ+ÊX”øüûEr^Ð'¡²¥ ÑiÝ^1}Ei½¸ŒÜèˆF¢‚íŸeuÔMm³6ÊóÕÌD6Q™¼Œ¸ä²ECä{Êì°újLЋo‚Üp¿Œ¨hú! õ‰m;ŸÐEd¶º×¦­g ¦ 7¹ç¦)Ì5v¤az ú?%ÓxQëê‹Û®<+(W;NÂoH?¢v¿ƒu¿‘ŸuT`i¨Â¤¡ÜwI7Pó û?ö¨"öQ÷ :ÎŒÿyåÿw•[BjÞ¤ßÊO ‹ £ÒÎ?øóxدvøÃ”ýÇžË$™73µW,]Ü&„æÄ°Ž:]âï ©i-§ÊOo¢},^Ó/' µH=˜ªŸ¼R+±‡vOvBââE—úèÌ>:mÒ.Ÿ–)ÞYú²s+2ˆd¦‹ê8Ã’n—LýºÃðŠ%t X‘Àÿ¡Oú†~8xÜ*XWþéßhOÔÿ0ß {ðhOý<)NÃY7C¤˜•Vƒ/uü\F«9gós× º®ž‹H×J:L\7âè4. å¬@«)ò˜Rø¦êôÌhÊ™¼ÅÊè…òD~\¿;êF>Œä‡2T MZ¸;~ùÓy‡ÐÛ©%¤)ùU-Qñïɲµç³QBà˜~> stream xœµZÍnãȾû)x[*±5ÿ¹9eØ Y$YƒÀž-µ,f)RCRãqgØw˜y„ŽÝ°$~Î÷ ]×1&G»1)Þ§7hjàšÇmoÖTE ‡ÐVû<ËŒ,gñ°g,¶K/{ë Ü“tpZÏ‚Óò4~‰3ܤlâkí†V;á=NŽG ×k·~i{Ǿñ1bQ*Qós~aÔ«Lµ€,ÂÕÎO0aO¡N¸PXa¢–ÆÊ=4gŸÝhF¡Ð¡`ö¥ á\r.”KÎË5'æÂJsG9ŸK°?sYIÚ+m[Ú‘žmØ:-¤½°|œP)ý"‘ŒÆAþɺɓþì>i><æ³¶Óø`Ûaö¬8áÁu’ð`³qW®ÓȰwòÛ}?Lí†Vº6±]ækä¹÷;KÀL.„Ã{ ;ÑqÜAoâ4ˆ¢…ÁM×€~Äé%)“ÌâÉ~}8ö^gè.… åT²oÕÑn‹®ƒp§v¹Ýýæ"ªPè© N¼µIÁ¶-Ùq²;º[šw>wt¸öçÐ<óµ óa<u;Mã0ò?~± 0%G˜²XÌÃæWJˆÈ'ÌãÒ ²"Üm¿¬l%w½€:­!˜ŠÜ¥aÞ·G‚òHW¬¬Ü®(±dø­r0`Àía¶7´Îñ Læe¢0LdÞc‚%Ý•g¶šÆy&×£¥¬¿ ÚÅí lã¸ý{xª* ]aì¹öƒp‰GáN=ëpûuZ—®µ$ 7 =$vÒxÐQMÑËeöñ_ä*ib Ð8pSV§›0t¦-0í{»õò|d'ù‰Y‘)œï‹;ìô«<© õNß$ÂŒ~Ô¶¡Ü‡›æ³5HïdV–yË`jB^&Nµxn*GLÎ@[7´âD–#<ý4+OÃÄ#?å³6`ë˜Jn¥l°„ˆ%<×AÙéî™q ðóžï K…:–œ6nû“M´OãSuðüÜU•±ÆšÛà™]ÔÌtún]óõºiO3óÆšè^†sNjóí+É9…‚KS!s—Ñ· ˜ø]@dÑÍg/b(†5uÕNïô¾<6/ ݬä³åçÆ! 5¦Lê2(M¹xqYk¯®®8ÅÈöK+ý…TΖǒä_¦±÷vN²dpš¬;iίç.ÑS,~íƒõŒwcß 3!=¹ýaB &0NˆTCÀÙ° BE’"¦§í}@£ÚþÓuôQã ¶)Î`cÎø_|ëuù#BÈO—«,s¾¶ªQR®×µÑCä/:"žo£M´þö³o#í.ßâ†Y²ôìaÀˆ°âs d@ÖÏc}Ä6(ßlá¶:V^ä‹ÌÀÖ*I˜¨Ù„ÌÉuC[á‹Jî'†1[ç¶‘(“2þ“ÓßÑq«Ý—©3›é!¨bë ‘)¹§¢Öðl¿ÌH c¯S§ûw¡ k|û—uÏÚ$Eã¾aýË΋®h#ˆƒ|c&š† {Or ¤‰p«¶={S'<Ü'7ìî©—è››àk;P%˜áÖT6œFn´¤EõêºušTuún£N “ž}¢ÆeÉ•#hÖ˜Ö¬ÐFLfâÇÓAJU©D( •¥(@ 5:7û;KI²t`al¯h)׆s½;u‹õ+[ßìG÷Ý¢4p-_÷…s;Ãß›GiCÀ[žTÜ RB¶Îcÿ$„@:&ãC÷¸_„‚¦­Ä¦‰w¤LÃÂI+öIriÈW"¨ó!.•£íÃVQó;ÂR³ŒãÛÉúŽ×—Šï!kÚz¾íìŒ/tÈYü4û7Èú2¾Ð“¬ð‘%Â:±sà¬Ñ2¾àZ¯_è zNúÂjLá>”ÜíÕm5P¼²ñ‡_ucŽ /wý÷¯|ËÃË/ò°wåžù SiBPöÂÏ€æuWj2‚×`a+Sa+c0µW¼*ø”zÝ„P„×ÁO°?ÜKÖTæp’&u1Mv}Ò2òüÕç²2çÙïWמ)d_œõ ¡KÀ³æŠ ÉÓh+CéPÎç?>Ñ3 £øvÈLfnB Õ˜ºMÚ®]Ažd¢±°è¦³ßpU)ÈF(¦v}e_ãÅ5&³28.7ÁW;ÿ±tÝ ŸW5„¶¨bV½W‚mzþ ²É™³óîzö3ôóÐMÖà/°Š0û=t´þå]p}Vá3QÄZÑF×L}ü]åâ;æµ V/ž•Øx $bç‘M¸=–K:ÂHBÙN-»o˜÷4x~ü=D ±"ÃMBcnò¸÷ÓŸØ…ÊŽÕä@ÙóÂë:ÖÛ½¢ž†~;ðÖª²2ô7/QÊaJ÷¡|T2þ²E›Wò#1ü¾BŸÑ¤—Ò2ïüçÜçÕMô«q  @µÖÏÉø—EØ.w>ÞïZk^1^ìÕ×¢Ís~­`’âü¡E ›:…¤§§Ï•”/½á"𺭨;+.Ð5OnBsÕõ ÉU²sCäX„:åCƒY›Dø`—'ªñlù\Díôì'_ÔW¤òcÃ’`Oë7¡—ÍÞ.¾GÐ’NëÝÐ’è;1̆˜7Ìô.Úv3¦§nÞÛm„Ÿ"#g̯8ƒd„ßÿ?D>Ô!;òd‘Óaª1R­’ ®Ñê›+ÐȤʶŽMV‰†xʳ$Õ‚ÜÅ?.í{tZe¢ü ã]÷„¹Íú~E»üñöêïð÷?Zý§endstream endobj 1516 0 obj 3841 endobj 1521 0 obj <> stream xœµZ͒㸑¾×SðfÊ®¢‚$ÈñiýnÇŽg쩈9tÍ’ ·)RCR].‡_a÷vŸtó @%U»/Ž:@$ ¾Lèçd©dîÿöx÷ë¿UÆ$ÏóÝ:y¾ûùNÑpâþmÉo‰¤N”J÷wìê!7EVè&Ýu“Ý.Ý*/²¦Ñ:ý¼RЪË:µ«Ÿÿ |Œ*ŸJeªÉsXýqw÷1ý8àjªNÇýþ'7'¬]®³J«JæÌçÓi²óìç•UºxyÊô4uÃÒ ÏîC¡€« Öi¼ µÃÎuª¹tS {ôk¤OmY¤½Ý=[!ÖUÚwƒŸV™§ÿÓHRçyúb}3:›iU¬Ó{ÚíƒR*«ó"yP9o²C‘a㪖Ía§)½ünìeÕÀ¡8‚ñÜJíJáHqqÍt€`Ë«_ [GÄ.FgU•× »˜ôWWÞ¯Ì*•+ñ@MVeZ‘±5øÍZ±C¤N•§v¿ÊK¸]pžQȽuˆj]ekS¼uˆÂê¶C,3U6µÌé<}™‚úÈÒ±«!Ãbš&ݼ^IaÜ_nÞ•b¸¢¨áÌ*/„œx¢ìµßÏ›Ì9}f~°íî:Ê”p²•ñÑ<q5µ‡šàž.C¾ºÃ}Ð5XVQ_*T#ñk'/‡®·IoÛUŽÊ ží3lÆåçOÀy$äfØìÀŸšuåÌ_øˆtžCìhÀ‚М¨WhgÆ4T†€µÐín9\ëBÑbð›[ 9å;ª ²ª6L¹XîÙ ´D{kеœûHÔñØ-K­L÷Óx”žJ¿ýðûåx^NçxŸ"ž ‡‘€ U<@ü8Ê5yV:ÜÌ÷ã¼ü°ºÓ’0ç,ÁP‘@„€“O¶hÐ.á5é†mÞá«Jð±í‘ªü%òH®NWç&[×þtÝ<šºwƒH»E1¢Ívñk*:7bÈzÀÍÏ @¦³ÂZ<²¬÷b'¿ “ÂO„5xEÆBo¸â,@“Á3æ­„ÃÃc;Žî²âCÀ-áÁ¯`Ÿ†ñuÀÙÁíɨúx<ŽCÿê¾@’À8˜ÇFÁ£ôê["_×™®ôWù‡ 4dÝÄÈ…ÒΪœã`Ã’.´a¯p†)ór“Úv{Ú*µ=탰S"JI󠵚Ì]ÿºø÷1Ïßg½Ï`%„޾–›Ê¾pΜ^cŽÄÀ·É¡í÷_q_ùë×xh ð”„îã?zŠË·Á Ök0S¬jT9ygg‰ ˆŠ/C#ž‘§˜çËíêà6LòÖì©xáhŸH—‰Êã•–CtÿD&ŸCL„؆El_ƒ¬çS$÷&Ûîù°„!6«9Ú$¤5è¥+ú/¤,xqH³jtp!ýØzûB­×[\¬!;Ž@'C5êrÜ),¹ž»ï{÷k~bÉžf–AÀ{.±à¨–" ~\;õ{ËAžÇš´·Ãórð\ÊQ|'ï'B0b1"ùË2Â'”ŠÂ[©!s#wãôss;Ÿ³ä dRùë4³(I¾\^˜]9ÕhÔâ­k âRuÒ¼kÓðð ïÂm]eõº¾òén$/¢‚¾¨ÒÁ/!º£m\™’:9[[bã™j)« !ê+¸å0µ00ÝŸ'¸·)´'‡ÔÕ®@ìÚNã²=X?}­¿(“DµåÅ[&º!…A¨z»íÇåàqàõlI°’ÊÌñŒL}<\WcT¡³2ÿJÀXa*ûU %­¡»ýäõB×e1ÓvDlqØ1 °ÿÐÉÎï´âzä5-ìS ½ÏûTSEæØâ­UœùŒƒkñ̘ëôT5¯ßVÍqkÚJ"x*g)܆ܳ6öÜX².ð"\ɦt ý­ÕÃË 5.~ðÐÝì‚gtïmìö^„åE\ûQÅNamŽÒbcíh£%Ê5ÎT¿7pÝ’qqÏ×fKȤ aÚØÞ=ˆè"}‘f(Ÿg»C%âSûlŸV÷nš®ÒAøÕòjPsá'ˆ£8aY»hÎ|ÞÌöç³ òÖx®sºßíÃÔíWmE]Äùؾú“òÏ0 29ëâDI´†dÜ'˜HÒ§šk‘$rÒ ÉÉ“5¾ uãyNðz±n‰%ø~ï‘Ò•€29ÝXƒ;µöD«Ïs·~ãÉN¼Ú¾{"'<„¸v® ü¸ªÜíä]ô hü¢,¬²¼)| è›e~ª2éãÊàQÔäØè#šIôLE”¸Û…IçÁ…0¿¿C`oƒyëPæûëm@Äû:?WfMi.Jê¼ ¢½y =÷F…=pœ·³°¥{Pá¶‘ÄÎ&d{ÏÝ0pÈó؇6jÝ=w¢ž³?+°Á Ð@7-%sZƒ“Ö9ã'j+qeÌËxri¢Âv!¤ýHÖÃ'(Œ‡hn1B¸$™¹Ìv®›IÛˆ¨z™¨ÉIé†ïƒ(ÝâÚ%W"ˆb«še=ÛÎ~»Ðx€jD2GߨláÕû !X šƒ Àþ}»I,×rj@ÞÉ)ëLç®À{| ¹¬JÚ‡ÍCp,Á"iòÏÛ ¨ŽñV. Øú×Q 5â>ªüºt‹å÷y™0¡ìý$˜³mÏò X€}ÿí®cð½lܺ—sfA ç'¿ÿ˜–n—ïÐføÃ"|sÕ}¦"R±pÖ6Œ‘…¼^PzWJwì°z©kù/r8!ÚÈRاrÛ0wà'-8Ÿ:u:2Æ£n•¿Iï䘎x=í\‚ç5Ø0D±š'ìx Œ©Þ;Ù0îÓõDEÀÌoRÓK?¥{rù;2Rÿ“høàÔ7K>,I7'çùŒoÈ–… ¨T‚QMäø ¿O¼±ˆi ÿLn½\½È6­´Uîcj)âr×]¶AÑâèí¿½‡~˜æ™›{jÇN™‡cn>'Ä^^Å‹#BÝ·žÖ×.³ÀJînj+£š×0®uÂQ¢,zª¡Æ@ 0.64ض÷?ÿ?i_…=80úm}BišˆÂ4ÎqÓ ü äÖuaÊУàûàÒxñUÄö>n#{ÁÃŽT~®sf&äU¹æâD§Ô¿ß®kDÒá½°— l-¨'<áåF?Û™äãwÛÅý¨rºÏöú6ü( =^¡1,ø•„Úxr ½‰P—ÄþÜ»~ÎqŒÚkD¥ô¼ÊCUJhÍu!;mehMÁ–©ôÍ’a^"@ñ­ƒÙüÜ+=÷h¢9‡t…%ê"²°Ùx7œj ÿ‹ßͽ4®ˆÂõÛ2Z~eè•™á vJúEŠûÎy8u ®Ús»bTDôâæ©’N–ÞdÒ¶·ûˆ…°'ÎQÙMÛÈÀ2H: Ô7 IŇÈŸç‹AE)t²"°ÉÓßý÷oédñ§ìÛd‘((~ázËÂLU¸ä ]ªk»Ý®¨šSËaPú CÜ‹fQø’NHôð—oá{‡¨S:·Šyƒ¿ÂÑþ×¼·PB“ú㟢¨¬6ª¼Y¤¸,¿ÝDŸå$ÎóoÂý–ò‡RG¯VqÉW»’o³Î4ø]*ßbÛ£çfyñòÁÇB„Îr‹Ù}Á¤àÜ|çÎy^â|Á˜Ó ú¥éØ/jvÑĪ~W3æ@òŽÍÂjaµˆáeʨÙWË PP•Dá̺$ɀ듄Éh&츑ÁPç{è]îd u9‰ X&=¥¢aþW^ >ÕÊ)®å¥AÖPÇÆ’ÿA§þ½t ÿùì{ø+šw ‘Å.R^™™6ý"Ñ}Y7ñnŠTr~*äbÎf‚½ý&â¬;ûcšœ«²ÊÖœ;ú÷“4ÁÍçªáÿb£tíÎ$¼$ɵÿaØKûÙby¥ &äà`iŸíœ<Áy=­hÅ?<Þýþþ!LÍendstream endobj 1522 0 obj 4028 endobj 1527 0 obj <> stream xœ•:Ëv븑{³£™!>'‹ä$'‹ž3™ž$žÓ û.(‰²™+‘º"uÝÎÉ/¤ÿ!ý¥©'@=ì;c/„" …B¡P/àK”&&Jñ_~×û»_ÿ¥(Ëèy¼K£ç»/w†º#ùYï£ß? J•GÆDÛ;g¢ÒFeQEû»Ç¸¦Å}–•‰Ëóx}ÚŸvÍÔ-l]˜,©«¼ŠÛD0J·UlO/­.îOûU{TÄ:îFigE|Ɖ"½ªžS^ê€x:6ýȈC¯d³32§Ãë¢NêºÈò¸9nÆßøÁrU™¸o=ùçEž¤iiâë%-Ã’ºiÖžM·pÌkÿº0i’šÌÒ¤ÉâÓÃÞ=ü×ÝÃ/ãï×S³0ÈV^Î'ˆÎucÔõQ³Ù08 QÓ3²+â·è¹íÛc³»4½4“ŒÜÇuËsã¦W²£¶LL®¬›6É«èñûÈ—n\üµÝ}‚¹6Ñã°{ií'¥´¢‚¥—Jäá¥q[Ó Öoºc»–­«›/p¤4‹×C?‡~p¢©ƒAY<ÛTüRUñ° cg¨y÷XÙ6œè Q´@äË Œë&ÑO997ŸÏ~h„/MxÙÄ8'Jû8¼{ú ';ÄáÍáТ$xRpêÍ8ㄜõ Ê4ä~ «ˆ51ÙÌ­„ý*æÌÿ¼È1ŠùἘJ°ï›fj–jaj§Æ±Hj“[å¤ú€£2á–(Ä`1¯<]ák¬_l§óÛ¸™•š/²ô¡â˜ÐÉËL Ðx¯/ÝúE9ÄC í’ÖFn °L‡Ã®c­:=2åÙ„y¼nzí²¬]‚†Þô³>;’¸è3lÑyêÛ@½ ƒo³.ú[Äc„[›„™þLß|^Ïr$;Ùiyß!6& ²¥óCÓÂY´ lñ¡]w?qö…½³mç8ûâÏ`®¦!uG¹z¦V)íÆŽý ‘/XÎD,Ã| ‡PjÃxË€¸Ný48p‘.Ìùª¶žºuþ 'Ö[® €+-P×ä¿»ŠÓÐߺÒë[™B<ŽNЄæz9!Û¬ Üu>s,ÞuÃ5g Lvf7At®KW¸Ñ6ì®( ‰\,%Çĸþ¦Cù\+6æIBÉpÞEìAt8i<î?Ó0¤âŠÈé…b²tÞŒ”œé½9,ÂÍ®?œ¦Ì½ §Ý&ZµQC…7Ì›¢PØù±Ùví¨qº« ì{a‹ÄŒLÍ×6r‘w[–ȦW¶å^†æ£ {ສ!õ§È\ì%}¥xÂjó›bæà»7J%37ô>`®t”-ÔvêäÃö†[¶Ie 5—͈QÉÕ¢`|ž…’’Œ7›,=ÏG–M!д‹zÌ¢ D<“ÀàwS`¼UŒNXý-ÅuAý{Ʊ9Rþi(:äb¹ÑôÕPI[âiùPÈú¥é»q¯£¹ªÂøŽµ˜P9-VÈÆ¯Ýôð4ûÆ>˜¿m¦ ù2Ö=+>„t °]Å~ eáË@sîå§nM垣!šfõ‰C³&}OATì¥©í°šº´Gå‚@¦G$%õùà@¥dù$ö8/-öÚoÅ@¤¤T>äáÎ20dfAŠ~è”J¦.„‡e¼¬$ÌÁy—BMhöC/±²R%΀¹T»1° ªªBSYq”RÄv!ùâ°Ô(í4ÕeÂÇì<¨Kq—ÇÍÀ±ÍêìÿÛ"DÁ/伈?ÔÒV9¤¢Ì’+Þ„¿sN‡ÍL’:ä˧k¸:Ñ ðÓqœn Bn/ÊÀézûe ל§lS}žŸ§vˆ‡¢Ñ…åÛqö˜sè‘f‘®àQäQspÙMž@Æþ$ÑNÿþ-Ì$UVªFc•uº¥Pc’Ȧõl{4Ðx"•ð8ìºM˜W¤…ÀÅú:åN§¬C'û´â«& Öf Ä»y{>ž½B°\ø¬’ª.Ø•lßøìó€áŠ@²ÔN­pÈxX¹}ÛQ¬”í™ 'ò-ÚuEfè ¾+Ãæi€òd)W`½¯b®n°5£·z íÓÈF†I‘—yâbT˜ûþôƒ(;ùÖQ¯OÆ6"k5FÍD×)à°…MŸ]GìᑹœR°2NÞ‰.qôüüýã·å‘û„í¦i¢È•PGPâ˜@j "ð ì…hORò1É÷e‘†É çÞ#ýþ&Mã?p­À 3‰ŸQAS~ÞD\ØH¿5þòpŸå‰·9L»ð´/¢É¬ Ó ‡³E‡E¹§ÏÅñ•täð´Šê÷[IF¹Í‡ŠÐŒž*éêü¹€Á6øì•âdõG¼X†nÙýÂ9º´¥nK˜àƒWcÛ¯Û€H(Ô®Ô{ñ,ïÕUÇe€VßT(aåg¾s‚í²ÎeeËOÚ†cP3[-x‡™ÿ}Rçf|âiý ë?Gçg“Œså_™¶6±6’ãÄ6hæ~8^—´ Œ{ýýüÇAc^¥ß¨k:›än’ûH[rAÛz[2«ì ¯›†]3ùe®5]_p›Ð<4Ïäî 4ÞÅ ðÙÃA'mâ̬(ÕN¯g ÇR`Ø $5 j[,J’¡`´d8vÇC¸“oÆI¦%(’“ŒÚ]ϨeR˜æ-¿‘„99áŠ|ƒªé81ª§A¨}cbβe…«öâ^@ììÈÛª4ÄoÒ.ÕÛ!ñKŠúVEÀ¤ER¾POœ\ÛÂ<©R'xV -« mc.H ”¡w+®Ô_Æi@ýçù2½«~Ѱ=¤õåÖca Sêr.‘Ò[!¨ÆVzÕÁ°öe°eÐ>zÒEýc&‚MÇ–cË=–œ€5'EßzðuöÚ«0Ñã÷_ñaúÎæØð’ñÒéÖ[¯ó[Jg ì‹ác†Mç)`YõUŽöpVHmˆ1šqÖžbüVjÉ!IÀi ]µ¡ƒ´ÔR¹£Ò4Cf£p^ÚR–â‰Øc+…›o ìÍ*Ÿ4Ê^o)¤KËê¦Fž—1–‡d$¨œeÄ¥§öº¶a³!’:P0•Wy:p3`h!øa¬Q!c•uÕ,5&w–JC¤Fƒ¤¸CCŒLŸhg&OjyÜ´Ç0õfhÇ0¿÷©÷Í4T#—™ÚÛ^¼¬<¾iyGhu—·’+ˆÖ>£TË’ÊNçI-­¸d„m‰«/7ºŒ¿µÆªÆó´Ë]®°¼vùZ·qŒ%í±™HÈô…)Ó¯Ú€kJÿþAµïýè2U|á§¢¬\Ưڀ´ú´kÆi&‘Aï\èê-è\³~éZ~j›ïzLá &ãçQëI>@èÑný3Á-t\¿1X¬®œ÷øýWضG>k—f4¡.*¿ Íšï :T£÷y<}êü9»š;¯“ ’®ol›;ÿÐ%ÄÓëö ™PLD™p‚Èm|Je»Ô\:&æ1£ÐO΄™{“ЇOzK)m•–r`¿Wô| 6BñiåC^i\BÝ  =U÷ªœß@ïÜüê9ä1ø•‚„¤f©=XÀEºslŒ@m¤’ÈÓÚ``”ÉÿÕž?”ÍÀøÆI­Á™éó¤ÞÄÎÄ÷8P}®*ª³Gbï¨ FEx”D«µ@†nø_QE°¦Ÿ£äÖôähô»o½º¢÷€bÄÑô·°ûeæ¯BcãjY°¿4™Ã‹>åè¯tanhy ˜ôG_!LxWÿ´  ÿøp÷gøÿ7ªû‚endstream endobj 1528 0 obj 4301 endobj 1534 0 obj <> stream xœµËrä¸íî¯`æ²êÄVDêÛ¤6‡Iew6»®šJy|`Kl·²j©GRÛÛUû ™ßÉï QýðÌ\R>˜AÄèO" ¥ˆðÏý¯v7þ9Ësñ4ÞDâéæÓ¤máþU;ñ×{B)„”â~scÏI‘+‘g¥¸ßÝ<2 U˜)ñðþÙ ­^©(Œd7´ŠdôÝô¸z¼ÿ;’*R&U„JFJÜÿãæþÁýÖ¬îT‘…*K‚ÚlVeXe^úÐNn'̓é¸_îU|¨(‚M?8 ƒ~%@J‹ày^!wGÉdV2ã,øoÈÓ ÒÊ`ÍäÓ4 #eÙé]óÀjººY)¸°Ìáê¦>èÖ3?Nz%‘÷dÉ•?¼>zÜÑÝÈw”A¿á‡ã *+Í\&NšqQ†q™rîkÐÉCO2ÊÜD QöýË]š]×ʺ“Ê’ª›ÁT“{”:‘ç­xÙ6ÕVLúWÉ(ô(š þ +ÐqåYðtØ™n}gD¿À¿Qtµj±6D§wf ùQqÌ&¢€"LdT"/ðªgû<ÓLºmªÇÕý¿Opvh¶,à¯H¯Z쀲®Zn%¬mÊäË–e/¹°,<™ÍÈ(y0ô;Ý…þȻήe”¢=á"8zöž@@Sæ'÷vŒ½vé8 M÷´`â†ÀNáíe–¤Á˼ÒÇѳµïDZY·ÆŸŸz¿®¶º{²v)g§¶2EÓˆr©XÅa~Èô~?ôû¡Ñ“f¬ôÌÂ|:˜®2l >ò¨ØL˜°9±xøi£áe¶Ë˶o®‡¨,˜ÐûªÒcÓwºmQØiOÍÐÃcÁ¨(­œp ê×ü9`œMÛ}Ã!™Œ¿6{>û“*Øë'㡦óG¦­ñÀ®©ëvFLl {Òj©«ÌƒÿøKfšn4Ãäáªß!çz82~q‰>Óe54SSÙp–†)˜™©áKßÝòöXg¬•feð›Þí[º­$#<`2¸“$6€(¡ ߎU˜dz¢+‘)ŽÏc*Þ5‡s ¬‡ÑÔÌyáLÖõ]¤ ÍœBÜŽÓQPAwØ­ÍàQÏO_?—Cà¥×C”’a/›C-ESÀË­ŠÉUi]à+Fã­û©‰2I ÄŒÆÞíŽÕâ¼»ëH GέQÓëݺ6Õ`ôÈ»‹Àm»§Ð ‹rWÈóà_àŠA‚þà¿ZEž±7U³9ú~ÅzìÛÃ䮑Ql/E™¡!º;J8Yp+úAèN4]e}‘S YìÁRLmj @ZìÛÃ(Ææ©ûBÊ‘±7D‘¤d‹ú“|\}wœ(ép„ªçš(YÄ'àXEAu1ÚÌa©Œ/ùÇw§ÎQ‚•srß›Zeš¼N1‹Â8RùÂYVqf-½æ™Ä[Pò±–ë²õïž"%ÄÏ bs}kwQ[ýl³ Á98¥ ¢õÍ9ãà;¢ÀÝ&˜#7ñZ£È^jvî,–ȳ¥\Ö0mÓ™ñòµi*%åÅk~,c¾e.Jr7 %8åÖúdl“÷ÉqÛZ°#0`€•“Ñø_@ÊMºR%Á |Û&ñ¹õ¥ÌIÚ±ÉUý*Ê"Uߤà™d&ÃXÅÅ7DCxsœGa)S1eúÝ^„A‚ñ zlñ6ÞzDòÞÏfqtÚêɦ€aä(CÚêÕ*˜O7 ºR™ÙC7:0)RT¡Âä9ë Dæ$Šw“€‡QØômÛSå% #,= "¡J ìjÿ2G–ÿ®îò/.]јÆP|'¯×í¸Ÿ¹:Špóê™n"»Çàz\¬ý¬‚Z¦äЮy7œ™ùm›úíúó‚‰Ï¤§,/ȱƒÓEJÛ3ðí…ë%!–_„XZ§Œ.ùš+†Y)KNïð `Q–P!,6…­9 ¤hÝ-t9ò¼š_èèÇ^T­Ù`üÇþcQq)ºëé0ÑŒÂéDè‰{aZ4"¶cÍO\Æ^7Ç2ã hqõ‡m2‰SJk=8«Âq„Åü0ãÞ8,®“®?jý†"Ð L+v¦ú‘=Îí6äž_!ªâ3* °×0×à´ŽÑ«Å6›$_ª?×7ÝLbýˆµ$¦èÔñÜP½ñqîx¦­ S8S .àôMõ­©Ÿà2ÊÐkšYË3Ô;ðµßÌž¦lH‚W”=7Xÿ¿4XÅ jNÀ±RD {=€á6䨵Ù^5ò‘)”hQwØé6œá÷CÝtT•Û»©x3[=Ÿa£"Z)ëÊSxÛN´ž¶Œ"md'îâ]†![$Z¢Š Ýž7q ¸gÛ[&êꇌ¨ I+pðµÁ´úzSOJp |÷µÌÖ^ èg#Rñæ—¦6âûá°{ëðûðXëq‘«Êdô(jQßÕwâwñ ¢ÇŸÿ ~·%Úù\`9€°%³@yÀñLÎu/%´p¡ƒ°˜%!Z PÛu#DÞÎ8ZäbAÔå£K(ð”›ÞõyßQ‘Êy¸Cz=ɾc6³Ó»–¡aºéØüÔüôØuû¾]^2?¦¼†}JÈæ8rdÝÍÎ2øä='ˆRÍ…‹žN‡)Û­åÇiÐÝVzuà§ŽäP+cÔûbCIH.Jâ2¢Ü}]ß͵äqçibsÙëfظV´Ô,˜=Ó}‡eâË⯔Á»‰9ΡNŸSÁfè™åtbù‰è"qÒÁ˜5x,&…ôyýÓ<0ºŽ ¾{XòN‹E x[õCå×P¿ØÁp á G…¦ƒÎK1bØtŸ@Z:ûQñÒ`àšÜˆè‡wß¿ûºÚ³3µ?SÃAK=äJìÂÓ¯L ^2ˆl1ç>_ªßRÍ^Q¿Â¾šUŠú§¦)ÓE§Cì_p}N\fra–Eæ0¿Åšƒå4qæ`‡:Dg Œh­ åÆMnMÖÀÀl ö\f#ムÀ%ï2“¥q,ÌGŽÿG³ÈÁ,0L"¢iœÛ/YÇ-¶²q® ¨á´ z¹Éš<}*ÈÛiŸ©øC ÏæÞGQž°Ý‹¢`¸î§-ãå4dáõÚø«|Qˆ ïè®^ì‚hæÍ<%Qó]Ú£¡T˜BBµÚ@mۭǾú³j(VËP„Û^ŽÕó[~À1 3ž¾1°^l|:4Ó fÐ$â˜fìwüMÙ¡ïSŽ& †æhÃH$BI cBi¤‡ÉAiìFÔ#oÇ 13ÅÍ@#è Üj«[Ï‚Zòtô~^&¹š+VP¢ºI.ÞõꀒöÇ‹VâˆÜZÂÊ Œðœ•¸õ`êCE†À›GO<ÂÙéjèÇÐã¾í<®n'3tT£¹.øTsm3ÏqtÕ´Í´¸Í<#öCEB¥ij™¡LÈ´åX:“q9(]´Û€ã–n„€‡òÀ…‡ùÜ•‘OI;¸Žø0öãý˜Ÿ¡Œ¤:™èWçбÌCóšƒÈ¥K¤e(ÓëÃè ¡ZNñw2þiÅ,¸Önö”ã‹ÞèT„b*¢Ù|k¦‰¦Í©ýAˆ¢øÛL¿ŸèG ÞW×{>“ÐO••ž[>â·Ò +ðh &ÈËiPÈ•6ïÐŒü”)@Òmˤq8¸¶¿îLþ,u óqÏÈ\Z´¹m‹òkO¡ÐÊ&·võg®Îf19:^Ç›‹J5—¤,¨ß÷=H„Ò}]Ž:ðM÷iŒ{]qAœãì<ÂØ^S´||z[g´öˆŸåP©¸yZíw7‹ËŒÊÙ&,Ôt~}‚Fé+ô¼³¥Kèô Ù 1¤€IÉ,Ì“yŒÈ$rfî'ÓIªxž#ÿB=ÍWç!1XGhùeôqE×üíþæŸð÷?VKTendstream endobj 1535 0 obj 3004 endobj 1538 0 obj <> stream xœ¥:Û’ë6rïóxH•¡Dâ$ÁKò{JœÊVb{ªöaæT…) }$RæåŒµ•_Øý‡ì{þ1}Á‘tÆÇÉ̃t£4úþ¬ÂÀ¨ÿåwwzøÝi–©ÃðªÃÃφÀJ~v'õÍ#¢äV£÷<Ϩ,RYš«ÇÓÓnÚó4®6q’qšës3î^\7Õ»²uX/õܳz[ûö4Ô•ôlªÇNÚI¡‡úXï}kuÕìWQ…1z_÷u;¯ésÝï¦ahºÖã7í0öÓ ð7˜ë}×»Rý‡ï¾ýÎbÝM#œ'ð'x\e,—GºóƒÕ¢=¾4Ãzõáñ_L¤ÿíáñoŸô¥›T[ו;õ±íhÇybõ«_ÊQšª:Öê÷j×õ}=œ»¶·¢Ún¬U®Õï7ÃKÙŸU3¨Ô¬Õ7ذÅZ•m¥†Num@«Fa¼ ^úß÷°µÈ 0r×MýP¯en`èNµçÀ›ªÙ•#ó‹0Rsí ïËwÎ}ÓŽtK8èÓ44»­Á·ËãÐù^_ÿ<5½Ÿ™ðýR»Ðc}<úEJÈôËt*{9ËKÝ;ª±~>.¨t³ZPÿóÕ½à]44©cá¤(?®ð¢3à[-Ù`'/PnNÔí¥]dúЗçâAn›Cë–Ê.·ÝÊ äú7€3ó2‹U ÷?¬ýT’U÷¥ŸѼ—º¬ÜªYúfê0Ö§%¡Ô n~±Gd² …ÊÙ $ËrÒ cý/°®ftïÔŽ"ìt“@Ž’0Ã(Y˜%ˆññüæÿRžÎGTž·ûfbubý—~MJ_ψl»ßÅâm'ohlËÞàjæ•bËbV͈]ë—*}shý¤¬˜™sÏúŸë¶îK”j¡j: ƒ½x6Ø ­ŽóçÕÚa3må`±Hv¢XK<7ãEtP#‚o&íÀôX¼…H¿nYÓò·iS¿ÍÐ:ËQWžàöâÁåÌ 7 _Ûוi0 ¸e_©s¶¤i …’­Øï~ÈâØ¹™HmȪŸy¬ôÓ0–Ÿj•«—ݱރ¢þ±iëA™«ÇŸ…ÌmZm¿"ºƒšÎTõŸø¯þ¦Üã*ȳ N“ÙX /Ýt¬Ü ×Vhd”§Ú•ƒÛ¤‘ú˜@$¼“Jô8ÏšÐDp jQo`ÃÔëû¶„¡VͨÀ»*îLG¢BàË/ÀKÐ5U‹ïÈr2`ƒjö0 ó¨a÷ZÂïqêQžjZdÞÉܰÅ™›KÄåv÷•z"+øA  ê^Û°ò¡„œìŠ™›«4³²ì’ÌzŽ$¹z =’²féAœùcÇ&ŒeÓ²9#\W& l½“\ 7‡Œ€s+‹(<ëúð¼ºÞ<åDÖ óóÉ´›dž¿/ÿóÛ;ó!|IfqÅxñЍ‡Dh&R¥Ø"ÊkÇ”HoIµ ˆ€0Bv|c™¼å"šQ¼j–Î8…D9‹½t’â%EÛ9Ö¤Ö.O箕ú. ¥opÙõa'ËøžLW}I’Q¤ )­Ã*Xû¤Ýɳ:6ZÄ7±*'fLWò2G¡½-b ±…½‰- Çüllaæ‚ì·£±sMÁöÁí6âÏãlLd<Ûbº¡ì/«”ü¶ÕÅåAàD:ð·”þ`ÃFJ%D&ž:i.a!æO XÒv°LÂBn/æðÕÐ*¨b}ÏÑ}¬ÛY/Ù!Ç™Œ<”c3ì/~=O 1›Ó‚0ÖWËqê)h”1 kÙ¯ÈÅ0õÇf¼P¢à<¨’ò¤Áòd34Ûc­À2AÒ«8¯Ôö¢`yu„˜­îÕ÷k²žÛíÞ~:¢óñÓÔ’Ð(u#IhÑð±@€Ö‚ï,D)*í$±…t UÌ}’Lê¶êïå[… $wr¬Õw(tuçxƒz°ü¾ïN†w²ýdŽ0/×}sx×wœa$Qü›‚èØÌªÓ4ÌëQ½Û/8‹=±0¾RLæÎq•øÐ¨/D`7u1©bY‚}#éç"†lÉù­€ÍqåY j£VÐk Cbý:?”¢k°ÒZàYÂi7u ç›r_Øf¬Èˆ®Îãhͼ'Ëåj§V£îg $ÙtôÀoó»ÑOdF»©ü,ãðˆíQØî«ÿŽë°·4)æpN|‘Q|+£r€ ÅÚ)—Œ@hÒð›öÀ~³1¢¹Î€KÏàñº™¦•˜:‘+ÉêrÉÒ»N<Ön™‹€áŒ_BÌ5,F„L ¯±^çVyf>ýw9Žà´êê¯àí²¸Ì ·%AãÎõ9è@P–Ëù‘|"á gtüÀOú‘²“]y<Š8æúަZDæÆ}^S!zOÃâ­¦òŠ‹ŒÛ¥;æÜ˜Ka­Û(¥=|Ïì&WŽü½èi}³žRE„¯ _ÖÒ·½€°Îp-‚Ãs »?!-1¬G†‚˜yâ‰>p²mÕ­=ª§™$súý>™—²éÏM»ö«/€§¦ÚHÁ‡‰TÝ8.ÏäJ×SSÈÏø 4WÁ9"b†/Üœa®pWÖÃÔ—3°XÇzÎòeØf¤!·’e`iSä.!B»t“á‹ ä*õ¯…Ï©Ÿ~¹K#Æ×Í/¦,ºÝF‚Oô¥Û¸OôÿKi€žÑ[2ä&™®/wü<Ö Ò/ÜÆ=·Û-.æøþ×H@,}*oh$)B”ûÅÛØ}¼wÁa’~ àÊ©›Íè§ÙíÕw­±Qö9²›$É‚eMëiÊH/Ì~…0¤Uñ{œ3;Kô¹ÜÝ2¶Vä…YäEq9‹å‘$"§\ºáTó\ë@U=‚‚[.ûÃ(ô×à—ïèð6þM!–¿ —Kà.À¶µºÛí¦y£ 'E’Ú=Íá/TÓö~NÙúC7Œp¶Fú0KG;ذ²A‡ÝåÞ ëCßMç@X»(Î/êòÕå'ý«Âüü¥ –Ô\ûÅjƲڃñ>ÁªÄÀ~:)LïöЦá\·Äø®N„ÉìrêŸÕP×·á|”…?&³€0[½²A;KAiGUesnN VkSµ‰ä!–Ÿ…pø£cÌPêãí…#~À”*ä„6‘/°“¢[ëO8ö_ð0J¡w]÷K.³b3+œ¯ÎèÓ*~\³†-Þ¤=£× ns}WýÜs^ê„[`ÏQOFy÷±Àq±:¾© ß?ÑrÏ^…Ðç~ p¸~äpÏR5|[Kôjùë‘_yê 4©ÈLwO[ Raà:YÁ±0¾ÿJƒ°8á“®ÝüÆAB+MëpæM>ûŸý~ôéîüNz–Æ.¨¶ë@„ó¸ûˆÃ×ÁÝ÷9)Oø# hó'\U™ ›Ÿšj"©“iÂGýY;O/v5Är›ó‚w­ë&L’Ï%œ"H!Zy^ž¦+J, €R땞zQvÌ]þëŽÖƒ3q>—˜Þ¼|sóòµIŒ ŠxQ–7 z°FEIÙœ[Rÿ²ú þK$¹[b¸Á<ñØøÉR,°lNJþ¾ˆõ~˜¶üâèfC¨IÜüd÷ª9ße±Æõ&Ó½Äx,~ä0ß±u×ë¤Tn7Ã…òÒ¸6~¢XU”Dc—¥Ššî£Gî,ÞǘAzËkS-9tóS2Š<Õr×çÇ ¦’‹ì:È;™_ùqÞ%&>8àYâø$Þ}è‡a",rÿ…ÈÈãH„6(*71=þÌß``…W–si#‹™~Cô5ÈéËAЩohðSP®O°ëgˆµžWþ#¾ïþÊôÅGendstream endobj 1539 0 obj 4324 endobj 1543 0 obj <> stream xœ­ËrÛÈñ®¯À-PB!ÄÌàU9%U›*§ò\«j¶ RXƒ-k+ßàoN?g@‘²JJÍ£§»§{ú þ­“4ZãŸüßn~ÿc^Ñ~ºYGû›_nRÚŽäßæýéAÊ,JÓè~wÃçÒ¨0Q‘—Ñýáæ]|ÿØN·wv]%i7·©Kª²ÈâÏõáØ5²Qåñ¦>ME<6ÓìÏñ<è8ü±,>Žm?7[O 5ºWÄÇöG•ÆÝpk²deüÔŒz¤ŠçǺ÷úa<ÔÝ*ìNÃäì!ë@ééqw)â‡Úcwt‘Õ´Ý<Þ~¸ÿËMj¢û¿ÞÜÿöÐìžÊäIiøV“L-\YGÁY?)T ì4a²Nãü(óuwm߬dš¦@.Wç4`ˆ³„[ až‡ƒ2–‘@cØ)ys~lšëÛ´Ô.þÄ/ ƒ·„“o›Cû06¤Ÿ5z€ê~K‚C‘Ú¾%>ÊĄǂ³¬P5á,/âzldˆÃmŠ4Ì'[…ÎñÊÄN1zI#Žì•Û(ŠlA0ËTP=µ¬%ÆU‡cSÛï»™®Ùîé™Ò—5ߊ B Û~ÛnêÙïZyeاkÛ<~&"“IôC½yŒ†Íæ4ŽM¿i¢aÝþ,ºHZô:O²¢«¾ß‚1¿;Æ”ÂMàòk97ݺôÖ&6-K=MÍ.Øâšòi§ºª}W% å· óu‘}Cûyâlš/µOü¤—ÚÇuï[êLû´V~Cût#ÚÇ „.¯}ÁJÚ'z~tòmígIéÌÿ¤ýŒÂ²¨Þ¢êõD÷›ïÐ7Ïí·Ž@™93wXqÕUsGØô5{/¬h4ÎLÞÿüÒ¸«²JÏŒ1Ú+Ƭ[oÜ unܰfЗ*'p»Ê9¦B£^Ì-LáÕ”Y0bÊ¡”ëîD ¡J’D.n'Ý*ì‚ÀÕ‡áÔÏaNIŽ«3gHA:E¤N/ˆZ]³›Eék—Y”þÐÌOMƒ©yšb(“»N˜7¦ ¡ÔÆ?=ò¾¹Ê A&üóišÛ/ Á£e`b€P€6ûúìJWYÞG¢y,a¾µ8β’ ÊJO=d'û$;Úr, äÒ®Íñê äÅÞyo ŒÙs µ¦„‚YÃIaˆ$˜²ob7Œº»«çtpÖ…4¼1‚¶ñÐS­"³÷¾,BèLžQqKðÜ‚JÛ‡ MWÃÙ¡ n¤ºÂÝUAGDáߥÇ5 ˆ¤õñØÔãûÛ•.=ðWœje Eÿ+uÁJõGÊ´rÈhIúHÂé%„ÖÌS'§M«ÓJ߸,P‘ǦÃÛ»¡“2+”§@᜜—™ÐÉ'É›>°ÙÔRŽBþ Nl½á¦ž§3Õ—µ ×ÎW*4‡`ÞŸX©ðœÌƒ†à]Çæ—Dí¦XæbÝÍë˜òS‡dhÂl!ѽ,~3+F\-=4a|„ Ûl=)°Ú‡ç€¢Ãcwš¾a ü€ýžìMí¾€ð¤´ú\\`ÍP‡C¨½–IÊËà¯0þ=à›Ý8t7 >­8DêÜY0ÑÌ‚gJ»æÜïô„·GRD‘C’å jm0´4dZ´fO.Ç^Öºl‚zqO†å¿RX•¤LºšÙª ÐL3ÍJsBhá,2ÒJµ`Ñħ©Ù&ê›>ŒÏ²›á-ŽÕûÜ»(ÉúŽ$òéJËBA‘ßpâ¶€LÄ7'VÔ`èêiŽ>ùêoµS„÷ˆÞ£Ë&¨^ 2ØÏsIJ|{¥ŸPBÙ…9,×È g¡d¡Ûã?©ÏV%¥Ó.Ïã©™ÅèqÁ‘;‘2tà$‡Ö+rc4oò1”|¾¤x~êq«0P¥¦v£tØlqVH:$¬&Þ ‡ÃàÙ©8¬ÊøDjãóó“'¹€¸ZŽä4Âò×Úƒ“Ǿ —ÃFæÜ,8¤vÚy;U¨ƒ ©´Y±2Ûyýaª6(lY„\ðÏÀ žϹ«(ÞÅ ;œö«@kÆÄB¦Fz4øÔ xg…œï¦ñŒÒÓgØsœÅ èþ:‘\)°Ðx/;5›¡ÇÒ ö°V­QIû–Ó`û±êAã£v"Kþßž*Ÿ´è]xè3вûà©!š¡2?Mô˜¾A-¹5w(?µSûÐ5aOÚëL€ó?%FߕΫøÁ›ÇÉß'¥{\”Üû8ލò$…hº%¯N3ÈÜÑ hœçgP‚1[ã­2î!嘦z|KTï⤾0Äæ¨È¥›Ì0 @¤ø¹Çíá.츌=¡Œ²“z>½tE F  'Mg>YœÓðÍÈWß ìúÂÜir¡Ü\¶˜QÀl`qÖ•¡N èù‡M®{–% _Ï2)ñzI$°oû^Τh 5Éñ=èœäÉ“* ‡ô§ƒüpÀ}éѳ*äÜš0[Hï’{>ž£kƒ¨ø€MHаÁBÞˆÆwiïU„¡ ®Ž*hž$z>¨ß¡hrmuÌ•)€§Ä¦¥¨Û®&«RüìUãæ±Ù|$ƒäí\²E¯«¸Áì GOÂÂýµ nBZÒsk3${Ñß¹ŒCM>*ü¼£Sò£ÒÄYg(óîî¬j+±Æ)}Ä¿_M•|×/ÛI—ÍXôÛ_ià­”xbæòKÝVïà¼æ™ukßa}W“œýË·­$¸aÀçsò¹²Œ.ЭãUXa¿!“ðrÇ2qÕ²¦ÃϬÑ?ÿö~V#`9”gM¸¨ŽöíµÏ4}Ä¥f]¢ÇŒ.£æpœ!BRYû¦†µ¡©q—–¢ž¹þÔDæC´ßGÿŽH[Q¶þÕ5N›~K ¼ 8´Ýê0Û†ë^~T¦¨ô¶Í*p^V$BÝzí è>Ù)p>äÒ–“ö‡nJ¨¦™‰SËÅõÈ™Ì,6ÆFY²Ì"Z…äüg&p 9Ë:Pf¡û}|j]”(S.¾¦¯TKÑX¿eÊÄ0ê^.Ù÷š?›ÊÊ€EÁ€§ª%ŠJÍ@˜tk>˜½Àx·XºRÆ¥ßj‰Ç)‰R‘à‘„ãÿÀÀõÔNþ8(•’>¯I”"@Ô¾ÎE,T:Ø‹®'W”-ÐØØÕÀÍ?˲C_ÝÏ5DÅ€ô•üE±èÏT@ÔJN`ÝÄô¢_öLöU÷f±ãýíˆcùâÑs; ÑG'Ëý9ÈEŸ‡@ »€)Hãº)­@Ï“;S¦PÑ.>ÎIîS”XO}ã³IQQ_À{Y:Tp†){{ 9ùÙG‚~¥˜’¤Î|øñ¾È„PC™¿äÎ}wÃèØë²1ؘz’1;wZôy{Ù9ã„ÃíVwKoëq½ƒ`Ku)¾‹$zÛ€÷î&þbþò[~Z&Æø8YOˆôZ{3óí͘¾•¼üša°ûãÏphgrE¨²2YÛÌwJ£¯ˆpºR@K¿ñyQAçPAw§ñ+4nSe“A‚›‡F/ÄõögH¬úÙ/h„¦àî$סiå´žAP# ÛþxR,à0±ÛÈ[=&ü Á/-±œúm3òï9˜¨Ã$r¬73¥âÂéÖsÉBh}§9 F†5pü>fÍ£î!É!‰SþîBt6IõÝ*Á¯;ØÓ .Y”hVrñ‡#¨2@Ô:ƒ; ¾Ý°ô'“@T˜fã–ë5^ô8ÖVǺØBßtõç@#}‹¤Ó Å1RœGn¹ˆ#Þ$)Hñžë-—¥¸U…º”q\K8ݺ ùÚsäjÀúÏYW¿ ‚u[oG˜ú\Ãä2ì¿{+úšýá’UHÿln=éÒn*üQÁYè€èÊŸþzcaú ¿Ï¢Œ¾•¯i´q‹â"//—¯³oÞŒº÷K”¦ïÙâ^Êq–θKWˆ&Õõ²À‚³nê*mƒ¥ƒ¹.Û?0ð\i"qg« ÛmAÃèw!ëïÚ VZú»¥—Z‡S•]û¯Lè.ùrØÜ2ßã9#°v¹º·wœ¦&}ÕÞ![î "¿jK4x¼KážFi‹nã€@¸eÒ<)B5Cb'¨+Ÿé;›ëNô–’}àþÖüНñ *÷àÎßßç?Üßü þþW¥ëendstream endobj 1544 0 obj 3741 endobj 1549 0 obj <> stream xœÍË’ã¶ñ>_Á›¡Ô —øS.R•”J¥Êö$—Y(ŠѦH-Iíìø#üÍén¼H‘šõfÖÙ”bãÑèÝ ¼ ¢þÌy¼yóCšeÁãp7ïn8uæ¯<¹§!*à<¸ßßèy<ÈD¥yp¼y`< EHþÙõÇ¢ †æÜox†ÍO÷ÇÉ*1“¬Ë#˜õv¨‚ÍWÐñØâÎC•$¸Âýî†= žŸ6÷?ÏQ$ašŠÜŒ Švè!à¡T±ÅRµ»UD1’¬ ¢ìê¾*Çz#â0Ï¥dï7¾T¢X5U[6ÝP#Ýv#´ÀÂoº>(]¿ ½ƒ¢‡]°­H}µ 2)Í¢wy¦ $p‡DʈE y ¶wÅÝãÝþ.pT—tßq1›ý’¬‡ÍTYÇ«4ÝYÂ>ÇSS™žT²²8•™°Âw‘Ê ³±óè¶`»¾ äyš³§Ö霨&B³ø’”Ôüà}ç–¶Uq¬vìÝ–Èa‰„Ï ¡Ÿó#;xjAìv)®ILfÔÛUú&ìy¨(,æýŸ©xssÊ4eÛgó óvÕ~ô©<ËYqnÆÐwÝ#›zÿ¡8YE´·ß9 {ð`=ù.»­Ðâä¬nÍw–²cÑoaÉ”M(*»ã±k'pZ¾µÓ8ÛjŠœGìéPMæ€zG¼ð$¥Z‰Õ°¯3TN̵ÌPZï7Œ©¯‹±F:¤¡â9‘Nß’³S=–ÛÅg]Ú8 à5¤Wuûh‡2³«nMC4ëL˜V «þOʱxöãºc5ÖG·ŒdmEH8Jù\4®³Øý|ÆcÕŽ¡cøßðb Ž\wgÀ$rqκÊÀ5Hmœ¨Œzm‰9Zb½£U£(Œ8îŠÞ©3È™oLã0–ù˾Q…¹óìf Tza  <ë í§s§zÂÈ ˆ²K^ùœ×¡:}1"º?eû¾;_w<—aÃ-‡¤VEy:´ÂÄù`P·äÛqy]Ç l>g&hÁ‡ÜÛgð»Åp¨†0ÀÃeß5M§™Ï{K"]lÒV®í¶nŠmSýyáª/Ü,{S\Š[q+iÔFàü xÇ)uþÌxk½G.ÀxÑ{¼Ý,@kä²²&—¡06ðµéËíÌ4‘ÌíñÙ^NMÂÄÒû ìéDÂI¿H:¨` ~ûàvDj×SP"žq;ŒÚ«Yó’KÔ P;aµûïäKDjZ¢‹¨)ž8WL¦yYìÛ²­Œe)³'¯áOÄúÇ(sNÜ&¥ƒöÓUeê)8PÁÉN:¤MÂÕ'*q{þ$É͉;·»Wèìpmetqe@ VÿÚµ£ PuÐ¸Ž«iª‚Ðô³¨JæZUGc²ÛM©©ö#Dœ;ýníkH»%9.Oã.ɾ%×í8,Ø‘ jÂsÿÁs_?®1‰0R¯â9±ç¹ÿ¢zÖ¬~DÑŸŸç/ªgÏó‹ŠV!ÏÓ×p ë ÏóÂ+}vÏÛµI!R„P%ÐÞn}ïb ™½‚; ŸŸø«ÝΟ98dCOUÿ{M1Ú£0šLœÔR“ŸÛx½&OZç.{•˜«±Yêñss·¢Ç±™‘¯a3+±ÿ_*Ñ;œuöñ…|{ 0dö¾ˆ?ÊgBT¾f/ H†&ÖZÖ_ò )Áý€÷©ÛküB†)“WñQÂíù]$(_€ßî|íÌL ùÿT†!:È`–#me)ú¶Â<}{w?ï².]P‚nO$-kR… ·Ïï¨ß¾\v]æäw<!Ï™‹<»XH¾Ùþ´ùÊ~Ÿã М¨qÚÒ÷é*`8xa1kÂI½F³¨Ã‚ĉ2EŒªS¥+X"I’äŠ>±˜dÆÃïÎESÿVQE›be*šGQ–çã¹AÄ¡2©Ä$ÒW.Å% xÄ2Kt- JÃ$JlM©hw—›Øã*·6¾fL<Ìé áˆÔ±êŠ\Ø}ªÊzÿŒõ=* I0€4Š}I¨Àa¬‹Tõƒ’Êr±®´Mó|Û•PagR²³Ã9Õ_í÷¶R‚a¥}}œ®."Rȃ)gLP™g!µ³ç‰=lÜ á<^»éjÑnÊïçöÉõ¡n¾šÇ­¯½Ò£Îâ— 'órÚe›_² ³ØŒy,/‹ÂÐ éÞcñž^6mdØAQX }O/…xdÞýõþæ{øýyµ´¡endstream endobj 1550 0 obj 3116 endobj 1553 0 obj <> stream xœÍËŽÛFò>_Ñ·P ‰ßä"àYl ›ØÃL±5b,‘ IyWÁf¯G™›dA=XFYÐiÝèFâ›DU0öGK¯ZÞGB'¤Y¬¨Ç«H@ŒzÛ[8.Ás|–ïQø¥£0^hÆÇ ÔvÛùѾNx½¬Xßi…«¦NŸ±(+ƒ×‹÷0®‚þÕ"ZÃG8zTu§ô0ô¼Å%,ÌRÝëm '\µ“j‰ ž&}ÉöGŒVf†7·Y*ˆ7ˆÔ‡ÃGùb¢ì#-åyléb•¤E­g1†Lf̺,¡ZàŽÛ­>MõýA‡Bá‘0@•cTŒDzO zœŒ'™†úÖÒ£C7&FµÒF?–Uðùâ)ienÆ©‡Pì©QáªØ¡}ØO¡#ü.qúcýŽ«:=NºAO­;ö}ØØ'ÕÀJìju¯Œ#nU£~eàÅýJ«z€qã~@3Ðá¯ç©pZó4ŒÁoèö±0씌s¾ˆpX¤Á¡§ Ê™€@8ë`-tk)g¢1ArÉǶiL±Œ$¡‹l†#q¢K9lÄÿÀÓ¾‡CîéšîÃö±övgiEò0[Gˆ0“äƒ] ªúÀ‡½„xþh¾g1ˆ´2vßÑ€%ß(Dh—ÊȒ΢.#¶‘ù­LÏ!ÓUiPnW ÚôC3.¯‰Éw×_F©q $.ø¬ 1s¡ñÒÉ€$«&A÷Ÿ¶{kVVðZ5g")Û¸¹J²<,Kp\ÌlP*¸÷¥Ì(Ó²ŠDh¨^ª±=¶*Ï!)&-á >h\…ªÀe2ªþ<ÎÓã%ìä"¦«) ;Ø ÖÓE•…™Ô¼(í‰2’WqVI^°pÅ!½lh­ Häš¹À »7 ‹nº5fQŒèÍÇ}}Ò£ˆp빓4‘¤ŽƒË $…%ÜÞ”:%Üxgé…0=n‡öSÆs$2&ÌáMûä>ß÷ý«Ñ è½Ûþ›`ìÃPŸ@ƒ1t"^^ä¸bKœeaIÂÜó<óm'hþ[G–ÁÝ?ÉâÆ£Ý°Þ}Õ%Oí½À°¤¨Œƒé’ÂxÓiÇûƒÓ€Y„–Çf¯ë&¤ödSðYW6ÏeyíäYKÓpÿ%l‘pXQ¸*ÈÐ&ãïâíõ@W$’ÄrÛPV± À<;r¦Ñ‡uÌÜ—B˜K˜¥)š„‹áSO"!ñÅAêÚqÏîKÓÒ¹þ ºC'^ f¼švà³,ø ¯YE.a5Ë’óØ³“?;M†œC¶±³!~tÍ×AÅnéxg lI·Õ޹$îyœÌ(/„&Îõ [³í$5žMÕVùÄèJþŠc§z¶ Ä4¬ /‘¾ƒ<ôÏ ‚ñCþCŒŸkêy 1pç‰az×vláyèx‡Í„ûzûJ´‰8-3ÏÔ§%*Ù.†“àÛÉŒášo<{°Ê$÷5Lè6° :ìû,A§ä×.8ÕãyùПö”Ÿ3•õ/0Ž—ie#×ߘö)ÈQðÇ’›K+Ù)Ö•ïLíü`p$SH" ަé_Ê Wz¤KˆËKä åÜÓñ¨§¡ÝiN; –2 v»åý-Ji‡ÈzG†Udoµûj™[$ûlNèr:<_Ì`X¬4_Ç&Ñx±íŸeIW´¹ñ)Ê—BWaœHJÚr¸ î‚·Ï~Ë‘c¨}‡bJÑ•½o\8Ý»»…›d[N€Ÿ]Daò¾—Åó0ÇŽ¯^b–b—«q¬éฬ‚ëÕ °1Ù®‹;áF¬ÊªT²¬[ë[iŽ˜Òv\̇Ø‚¢Œœ˜1ÈjP—à 4ä#Êã’5€Û.Ì2Y==jÝɇhN ÇÙÆ1TƒOÑÙC! {F{Þ:ßm·õHy˜ÁG×,¾ë»•†¾ûBŠÁÈ6÷,åÀ®0›¥`m÷*¥ÓØ»i¦ƒPUV#¹¡|KüeJai&‰ú')w¾^·Ü."TbzW<ÖÙÎKée1R‚È€²›;z¬"ÒÚ[ÁËj.´Pݶ²°Cº›OÊï z=‰ëenTšz8?;¡[›óû¥ÁU25ãµ;ÞÝåTHÖå`Ÿ$”g‰b°çžbê wÓÜ.u>©/%·2ᎠÓuú»2ƒ¯Ìê\Æ$¨½)í·µ XÝü‰¬nø¶ë®Ù^TaVü¾äØŽ·È|Û"ÛéÓ5»aÇòò“ö< sX9ÏîáOd7u¯®NùÝ'^A \x†Ÿíˆ³•sÆ‹8ÌâO²Ö-N}«?Û¿fuÓÛ|îúA/#ìÚ§tH½*ßá‡ÏvЯ­À{OúÿÁá?ÛI¿fø{zÆUÌòUœPA$rƒc/ùLÍ#XGL/¹±^ø<ëÂ=ëó•UèYkñEYAº~ÖîÃ{¸Le1fm¯ÑÈ„”´]¤+šñ£•@÷öê|x JqžO®Sj Zc u,3-ˆ<@× ß¼9é¡=BVT›¶ƒ¡k¹Í·Š2ì|zY÷y\2‘9öI-N×µ•Èb²˜l<6eÇú(@ZûÚg ¿’Z^›Š=±~hÚ®ž¬L¨˜ÆI ZÏÌã`èá ‰4¬ˆx^fŽ$AI:%bL.Æ·ùúÖ-æ;ÇÆ—7cB•¦¬ÒO°hÜQJ¡ê+JyÎC@úFT‰ëÔÒ‡² wcè¥V¨Á@aI' ÀˆJíÖB Ï!À|ñ±#6j–® )-ËÈ|EñEaÇOÈØõÔƒ¦ž¢ÌòÙ³ë›YÔ›ƒ Ê9ƒ0(ì"‘9¦˜­¢ÌUTPœ3P<ëo§Ô32-Z¯açõ¡æ§-šžÚ"{X–o‰ à»ÚÛºiµˆ— µŠ‹ùD:tôKðXÑN}íÏöL(ùÕÖÎl@ö3¢«6x]S¾[Iu|¥_*z:1ž›³¶¡âr}­~Â,ÔϧË,£ŽËc÷ü½).¤ÈOL•ú¦i'8 õA¡ì¦÷º!nöçÏŸ”ðÆf.y‚ŒÁhˆ‡Ip¢M”Çšµ‘˜Œn‡ãh@NüžÊcyùŒÉ3¸kA¨äy×⯎õÚÌõA Æí4Y|œ?Ãó>2 ÞjY“wŽ‚f„æ†=ÁG2\¼,íkÎ Ò|¾iY@[a¤–!½þn9¯'l¬ Ôó~åâX˜Ö±c>Ñ‚ñ Û8$@üØ9,:¶÷ØÆ$æ2À18 ×Ë2h|­£aení¥£î=ÑØÍs¿/$J)z`~„$#T°¬jîEëtv›Œ ôRØ·kO½R?CÊãaT}GgÁ¤ ܲÙú¸‡ÔªgÃUJž¨àß,WÄŸ½ýõpl'ü5Ð;ug<ñnÁgèRÚŠÚ¿=}š@“O“\òð”«ÿ¸¡öL8«$"¦)?0cb‹l‘VVZ”¦—•J”&!äÿ"ð‡©~MÛ¶H0ñ…Ó…û÷öúâ”ùaâ7››Áßï•·ùendstream endobj 1554 0 obj 3413 endobj 1558 0 obj <> stream xœ­ZÙŽäH}¯¯ð.”årx Û! ˆ¥ ñÐ3®LW•ÁiçØÎ®©Ÿè€Ÿà÷¸kDäR=@ù¾±ÜØî=w‰ø>J¥ø“ÿíþæþ/¶ª¢çå&žo¾¿1TÉßvýò›ÔedLôðtÃýLTeQeëèaó1~xé–îö.¯Mb*l‡þs7/RÔ”ñ¶}ý£k[ÇOs× oJ—ñ¾ÿáÖISç6îvZÞįýú¢ìªx}é<15 YÛx޳ïçæ’øÉüfºÍpˆ,‹_»Û¬LÒ>?ñ¸e·"7žIÿ¤ìë¸õŧ#õ‹o´k—7{kãi¾ýîáw7&‹~óðÓñnZ×nGCäIVq;î”°q;,“PÆÆûvþÇ­Ia–°?]ÐìŸÝ®_§¹o‡œÆ)à £ì«/àI*ß]§5e¼j· —ã¬uìv°½ç^nR”ç<]7ÈvêÇm¿ëÚ\:ždÔFË4ô»è±_£é)¢,ñ lœPK”ÊZD.«’´ªîlEƒGëŸo›¤iªÒÆÏ^STñsSrQv^‚kÛ(»Z1If‹x:¬ý4J—*Ï¥K™%©­kü‡ÝM|ÿzûð÷S–6±Y.õAÚK·×*“-#¢ˆ·Çù 1ˆ7Z‡’ïº;•*jH•Ÿ•Ôl_ÚñY[‚è-´Ù®i?ú¦'÷ýn7t‰oùk'ÿÓìgѹÒÚýaè6¾Cë?_ûçgÐbܶ;['¶Élt‡ÒŽ»ÁsÏêT¡åDýò"~•rTÛiß °0N+®BÉemç5 qûñY ,èliü:¾’¢ØÊvÞ-e_Æ·e%kâ㪥$Ë£N­’­ÔaCû¬Mφ¬ããá•ÄÏ% –ø¶$Rnî'Ëß·ogP@hhJ ˜”b#tYŽhAѸA=J9+lm¼2&Z–Å¿}ÒΆŒ’“ªÜÉ3ÝÎÓ"ÌÍEr¸mGP%5Ó“+࿼-€<ßÉsþ‡i&5s=ÝwÆRªXñy^ÖˆyE¤7õ¦Ó°DÓØE|5œl«E¡‚-ÞD¦°‰dhJäÂ\Æ?œqœŽØ†Œ ó­s“;¾ _ L&úpÖ…p¾0§E¡Ð%¯*’Ê€•AT "iŸæ¹Û®x^TB¼Æµh ¸‹%#ÅÕ¼‡8t VôÍ7Yh†™*ð¸ôóq:Ž»vÖ¦PЭ¯]çƒ*xaŸ†´‘$ú2ò/ßü÷®{¢NY ²wÖMÐñ¸}ÑÁXúOââOuઓXÚ¿v,=™JXq®/gÔP´óÈZŒ5™Ù²š"S¤«iðÖ4¤]ÌÃÆkOE“³Ò?Þ‹çÕ®¾žä] ИÅ3B•Ñï¡;‚)bQŸÃ”ôÿÓþæ»+Å 'ìàÏ2ž»ï‡Û„/U¤šMrÀõ¥_„xz|ó5û®µª”‰R3¯•`M¡"œÚ¤.Jµz,ðªSŽ'"ûúÉïðüÚ²J¤€ðp —ZQÔÖ*Ë—®Ýñqá4`I»5¡'Ò€³w¢ëPü•U,/íAIlr´tÁ‡ié!üu°j+§HcWŒ{ÚZ‘µ3¾H¦Ö{D„Z°XèÚ€§ãà ÉŽP|çi:ð~ÞsØ›ðûš¥MR7F¼ –¤ud}ºsߣÊaËrmMØwÁÐÀŠK~íîïÇe=g>k“–žAt²çÁž/Œ‰àíU‰É Ø…F‚¾Ô“=+èV䀀ÈcBñ¢’‚7š¾Å—ÀOëüw¢*õ=…@ýae¥bfæ]à@–G‹£Iu¼ŸæÎ7à †óC”‚ÉLñxÜ?v3yãRò4O{ßÕ$þû›Q[©éªz_Õ^èWü÷â»ÛŸœOŽDžéé|A!ؤ²òÒ&….ù¸ôË*æ=Ǥ@êEÏm­õ†,4œž`…’Á%öñqA8WÏ€—¾ÌuA°Ï4†»¸ò­¾Ï=;ÏÕÉI³Ë~'{ã]O:„†²!êáåHx‹d‡Fˆh ]âë^ ^–%•ÂÏ}~?‹ûíT|wE3«Ò¸£ÚOÎ&‡*$ã‹{Îó4ñÐ=­w/ V2×ΆQêJ?÷yçªdýŽ>÷Y7¾#%ˆf“ÒT~!€›»–üÁ¬‚Þ+÷«us- I¤%D‹íÖ÷,Õ±A ý0°ßÎ~ ²«C× ¬ ÎÆ(ÎíWN>èl/‰‰!$Ûi3¡èœ­}û·+A‡Ön'‡þΙÓm v–!ñ#‚ýÙµC‡ˆ¾tý-x(Ïî²5%.½ŸŽK¤@˜\D™&;P–¯èÞ€peÑ}Fr6ïì…œÝuTä­LRÚ\ )r¯†X@îi.UWŸ84´kgm þÓÚ)Yr…1üë˜ßïû1ÞøíTH Ye61&Soå~û%V‰gEalŽJ;‚{±£]±ÞJɶõ‹8(E‘d¡epf$;5#`1IèÔ)[rÞŒjLü ÚÎzq>šjÇÚˆµÂÍéʈÏÃ|6Ú­~ä«„vz$ó½[ݶÿ¼…F¥,ÊÉfÉìYÕK^F0Û’3¥Ws®£Ö;É/y ÉD3Q^ò1‘ŸEý²ø“‹æÆ{öB˜7o”´÷À€ð$™¸’sÔgkÊYt+£Çî Ñßùü2»HÁü}4âèì·Kô4 C{^~Æa."·Í5Öý÷í]U¤ ÍMüÍ0D2‘è‘#zÐ Q&õRÑó ¢2ûÁº`ˆ¥†VBF§_" ]äpg ›¤…=34Ád0’9ŸLè ¦âkÐ3Œ\<\„‘Ë ºëFñšÖ)Ùœ© P œÒá‚)×®™C588Xa!l¦º ó'n×KÖp ý‚µ»,˜I+^7·‚¡L!'O• ¥Rð;/yÖ~Ò߯·^Û|WÏ€“YBPÖ¿Ë,îƒé8¾Pð|•T‡—Fõ@¥³`˜̶ŸeÒÞ±{¹v—ú[`Ø7*›æKæ:"ÉŒvýsóÝDý:Öo_¢-¥$åbÝíQQGŸ¬$Ìα["™kZ7§s `×¹™eÁò! ‰ªÜyƒÚ^hì72=”ûªpR'iƒµßâWÕïÛ•¬ªq7c6Ša`‰}G×ë<±.€þ|C!À¬ËJÁ`šÏÑdI–¨Ã$ž0øÈr„ëg—¯8чæ¨Ö¤Îýó‹ D«Z“`X©©2ü;Õ”¶—€"r›æùyfŒ.ÿЗH¢@×A*ãþÙRá¹»ð~ŽkDjá­ÀuyÎA0œÿqy>g¶¹-Áï,®Š•75^æ]·XU¿ç¡ãÑiºàš—]%ySøhApžF«åþV¾õz‰Ï#ßÎ2¥QçÂY^ú®ªÓŽt.ænAð7¾ƒ‡úš¯7§Ùs`¨}0Œ^g˜xçvù ¼‹A¨“, î]Hx¦ å–xÞH”6\"U+¶s½ó‰*î•zÉHâsË·`;74Ø® xùBгåå¦SðlWR°ÉÐ Å+Éæcøæ¾ËwÓb®Çîç2ߟem¢àôs‘¿ÆGYê¢Õx<Ï2q7¿ gß’@Àn³_mIV~®)ÿ&01 #_ÅÖs¥-Äouk𻲔H—’Ì”>¾¡× ¡•‚iSbVjÉŠyÍ™_ÐÙUOÄjÄmÈÒi_++3´}rZAooŜըò^¯[FEVU­¯1ŠMEYÆkF‘ªì—"µ m"˜æ=›ˆ×~>»pió$­ò/ÚÄôÁ1¸´‰!±‰8£\M¢Î"ÊtWW§VQ*Âì,ÕkvVö¯øà»¨‚ŽPAbÇ–B£üºaÔˆ„.-Þ1Šg&Ñ[êÿÖ&æ ]u©Ûw¾yÿDˆ¡æ39q^fuÎ0µ)œ¿ÙNWܛңÅY0I“;úxÍ¿òýE ¯0™äÅKÀ{–Û (“ÂÅîER…䉄ðì|*…i0K-]yfæ±@úü-}7;-@//ÝŒñ¹Âê;žp¹~?6`¶—š¤>R»³&q‚\ÙqÜISˆaévèÜž€Ý ÀâÒÎ1QrV‹ˆ/†é¡Žo ‘™R“ž¤m6Ú¥:»ç~›Bm‚»Çßñv:ÎÐÜ.'+©Í®g–wÁPºHºÄêWLêë²koŽe(ɇ3…7x¾¯¯Ï…qJVan³ÀÀ<šý¾Ú\KúžÅW²ÐuRYèöŠoXÕš# ,×y"%…à»qŠõø#)\º0ôm²÷] nlä&S–vC*v=Ø…… ¬r£7rBâÛ‰að]ý]1W³vàwÝ”žq®^™¶bUÑJDo­‘8øÎ`ê¢2^¶O”¨æØ›”¿Ky·¤„g;@ @ ®ÙËZÓ ÍZü{­vãümÕ _}Z…V³¿uè;qÅÓS›ï§µ¤Ôå›Ê0‘É…ŸR­~6zåTSÇs·¬s¿]}cT_q×CöÙ©;ž‚»¤Ñˆ›¹îá`Ôéuo¹özTu|CZtî.²ÜøA‚n= Ñe•”—kz’Mi–eíétø®Ç€#Q xØbœ¢aŸálvÓöˆ.¦«ÁX^¦ã°£Lðcá~bRgì£ÏC·\{wú.‹þø ­Çá€)ë‘^(ùº˜ ºö6Nyüu9‚l‘‘JéâPŸŠ! 8Ë×ÉD”ñažÝìZƒ½àá6R7ÎZ§t%Ù/Ï™2qÊVÛ ÞL|ïŽ5•³ÆÌÀ½K•~xúý¨õeÈç,oªÄHË|Ʊ›O×ê+噌ĞþYr˜yiàéȶ )+ˆé…5…\^6|S|ÒÈUÁ±·ŒÌÒPP¤ß¤jÜ”0‰y@@‹)|fÊÖ‚ã¬Ã´ÇuÚ·„–®ótÇX.`\5=bãÕsV¶ Ž ˜Í@›ªÂiBlŠòÜm5`¤³¼R•û°¶Ÿ0ÏçSa®©Š+?„} 2 Ñ9󫇛?Ãï?Ãz-endstream endobj 1559 0 obj 4287 endobj 1562 0 obj <> stream xœ•[ýnãF’ÿßOÑêV¦Ùüæì$¸ÛËb¸Ý·ÀÚ-щrH*/î.ï<éþªª‹MYòLâùCÝÕUÕÕÝÕõÅžLZÑ?÷»Ú_Ýü5/ ³®"³¹úáÊò°q?«½ùê–PÊÌXkn¯„Κ"6E^šÛýÕ]°:t‹¤ «²È‚6E++ƒ¦[ \ÇyVQ´ƒkÛ$x<ìv‡Eœ…QTVÁs³u¬ Þw Ki¼xêî¸hzÅ Ò,«,vÇ~ðÝ}­d± eaƒa¬û±Yû™êÑ#Ö^Î'=t3ò±Ý7¾²Ú71ÇÂÒV¤ó=ÂíV™Ø8X×cíY>ú™<‹·¼²±¹ýÓÕí¿Ý›–·ËñÉ/®“ ˜7A;qp/‹m»‡­‡~ÝvõØ K šqÞ/¤WVXIßLŸvõŠvK0çTûYÇzõ½'ÞNEq0b©´ˆ›¿6uê“`sÊ t»¾ îHè‹ÛïN4,‰pø… Üë¶oV#ž•µóÅ{HµD†,8àÈå…K±¾ydq®“”d(Ì5í.ÍQwÈJÛ—Ø0OsÝLîYáNíl¦C:øÐàØEHyÑÒ‰“à§~=*kw’rƳÚ5c³TBL9úaQÙJb9Ç~<<ù™é~(Ò‰H|bˉùØìŸ}Ý·»ÞRµŸ·-ôdó )c‰¬¦Ë‘Wr;­ªà ëf¤ciG¾ƒ¯š=K{"7MÈÜý¤¡ÜÝOȃz×7õZqWèPäîYð7R¯×çN3V•jºõE­J³°HŠJÕª„-^kÌÒ‹ÚÎÄ›~/·ÇSŽr™e)¬4¢`–6Þë×óö01,¨ôÖsO”KR>Í4Š0Ó#é$r´B GËå„EÓeD÷¿îÖŠ–¸PÖoÌŸ}³?ˆíMòùE[ß/BÏì«O±ndíªJrÜË“ô|7–gG–FEöÄ®š¿¦;š«*‚g÷[¿ Æ‹ÁŒfF‹ç³{1î¶>šŒ,n^(–µTËú? kId4=)¬EšÂà­VõVïp5rRslÅÒç¢Ü”=äv‡æñ¸sÝ ZsPޱè:ÃË ~Øi/=Ab‘}·ö$C?»žõÙH9qžÛqÛvÚ=¥›áU¢Žh+¾ªŠ«S³úz‰cÕ†Ás9Lè3B%-&Óïý×á82B… ȉª6fcʽ¢$˸?tnÿI÷—“¥ã¶ -˜ú°oÈUÏ@ôaj>]¦p[NírÚ…ì•sTHÛm¥“ŠËÖñ‘ucbd óæåã8AgFgÓvqRÌV=ÊB ›'Æ›:9æ¯÷ÚƒºÂkÍÆþßÓÔÚLƒ¡µÄa ¦Š1²Bü3L‰¡x·¬¥ 9OœKV€´ßã~ºIòà¿ÿü7ßqîÔõ0 K´ôÔͪ>ÊŽQm)m_ F§H]BDkÌ23wLÃoÑœ²[ëP5I2ØA²B:†ëóm}^Ø“­‡P§³Áí¢ ])áz=í¾þž-RžfAã'ÀœX¦Ó~.•Yr9@*l˜Å¥Ç—C$²5™Ã¹~æÛI‡<˜Íœl³·›Äâ—û…™B)¶ðÉ\Û ïÿ`êÎ@aRÉŒvÍ ÆÓð F®}… >¿ölxqML»ß7ëÇÓ‹û>´kÀÆPט$šCQ/g! ©[©y0wÍðÁ¬øçÌ%xÊ;DÒ¼½qNq¬ˆƒüãcMÁ”ƒÛ"X÷µ £ó¬ø±»ÖŠäT{du4˜¯RtŸ©5Êã©]ŒçhGR zDA”Õpé'=TÏK-… ]–-{S¸|ÎP}†'<±^+¨gOCiÁ!ËHšžµâ<åµnYˆ Z}V7«2²ã÷S¥ss[„¸Ô²$¥3CP2Î@T¢ÌÅL¢A±£góÆm“µÄÃhp,ìxë(“iö"+¾ŽÝ®†sdÈö’c<Šâ2÷· ôøÂR’FaAùF‡ûSS<)’}·±¼¸AûÅɘ('Ud8ZgÁ ’"ê¢Ô9xV"ìvÖvRK‡%W™àun·ÇAšR‡{¢}gv Hiöù0;‡õš’·yÌ<O¢äÛŽˆ|ÚÁ³|bÇá¬YYÌ’wÀ–ó½Hé®á>.vv×Ô‹˜ÁˆjÄ?3…»ÚÙ‘T£ôí”ê3 ÂÚÝÎÏÝv³Mçw”Hèua¿¥Î.©˜õÃÅ›<[È ¶2gqt’„,½žÉƒ©(Ó&‹KŠÃ$s!úˤ”š­–Ø•ÛîÊs‚̈…Ê/{1›”ÐÔò“y~̹å¯4,F¡\drHÌ×dé¸_Î$¼\ˆ°I–ÅçmY:±• ­ˆa‘¦—‚i5÷1qé õ‹V b(]æO¥?»uhÈ¥™Gñ ¬Wí®_ €³ª®~Ýî(0ˆuØù^öÙSäláûÔ çE©û_hlN¦,,s»(#‰Èk‘!±Á†[¤ÁM’_hJŹ"2 åí«„Svõ å´Yks^S,.`)´+‰â{Äš«¥¢$†(~]ü’ñêò “»òiæ'ŒÛ_•zÀ’ÌÒ ÝÖ»£qžLmø vP")ÅulŒ›žó>EiºÃq³UrËê¨ëfXõ-eƒ">ZÉÏݸº˜ØR(8+#hÚÛR¥@þ”e™³DÔI\ɂڮp%ðÓˆ‡ɘGpô­¸?õfÓ¬ñ.±†¾/ULî”ÁÇz×þÔôgq^\¤a6•fnÞ½Þ| Ûf£©&³ª;Ïôa6„[û¹§T—E/]¥t~ò´9¯>]e„õIáϬÏI[Î!Å9 æõÁ¶%%Ã\ð^ý⺸žµkVÉYŠ+ð4øf”6yèùèy=4žú¬B®hiÀÛ1›æƒ„³Û)ägˆ¾»±}|‘ØÐWÛº¯W”Š“d–Ë!%c?áÚØ$âpù^Š\ÓHGºªŸÚ àiÒ—‰©H ˜˜"si"ûõ‚ã'9gÍùœ—¾[+a.öU+SJMþ Wräô?¶Ãñ”ùº…'ïÔ«”eõº(ïÄzïšäôXõµ¯©Îמ¹ÖÇS‚PÅãØSYò· –Ñ…”:àÂJíÖÛË>QÑ-·l~.…ãB>ýù¬ˬ8×ôK~–§CÍ5ZîÀ:Õ»áàz1e ÝXÓýSÜÚ7±yKOçêÚ•Z¥ëH%Cy/àù1ô®ô:¶•Ÿa:ž×[q 3FIªwô“j:å0Ÿ‹:âŠyÉ3+ ͵nCµpVWÁ²švIG3¦’@šˆÝ¯ë7,!Of3RdS÷«í„œ¤ò¡ˆ;©e à¨4U”ÙÉ‹hûz\mµÞt­â­bŒ gëÊÎ…:pL ×/c\Â>R £ä‰Jÿ–’»L®7Ñe>QDKŸkÜ0•—<Ù$þçÙžJì`ZÓ÷‡‰*öä7º¨¤˜³™¾½•§á‡ÞVÙ£"wUŸÆuÊx²9׉ÄBH{B³j,Ĉ± Vö+5D_:K$át÷˜øo%i&å¯ùVRÚ|º"œœ ÛXb‘)ñ¶@WUÏ(jä0gKáϬº(§Ê8;)WQÈëWµ4ÏÛ†bjƒx˜vd¶¡ù/d1#wFœ„ÅyJ¾e óp“)8vþý³e©›wï?i=ܼûû³Ùl\ÿÝW\³jÆq­¿»Öó²£E•™2Ì8$ qÃs$²Ælq]ä‘ÿ!QË"4  #ÿq{õ—+EÈ“K“àê†ibö€”t¢ ©6.3úP’ea,ð´ C {bVW Éh)OV˜Ýä)H<æW%èæUUAÀF4Ç„¿ºz|ó]Àl…ú0À¦´Ê$Çìô:`¶¤@,Y†[UÉB2¬·— ²)®-wŠml•BQn-¡µdeîÖ’Æ9tlÌx"·"žTÍ MÊ9•€óbHÔ‹‹±©Í¦MÆRÒ ¦d‹6ËK×ÊÓ4Ìæg¡€é(·Œé”‡ëYøÅÆñB=@ÇÏ3¾žþi_Ÿe‚ךõ¬D9%LÍÝ·šãY‹ô¯~úðFžÇÑÉ—§–ÆÂ«$Sæ|'颫Œ^dEE¸<ÿuaJRQù*ØÖƒkÇZʪ¤fæ>”TRô:zÈðx¤Ò?ºqdOýì g»¦¸W¸{†Åi9w‚ò«}½ÖôÊ›ºhÇž pIÿLô~ w°ÌUÖ¹]‰B3™¾2!ê—Ö„QbmkÎ÷d@Þ¡™Á?š^™æ‰sMŽˆ]“k¿•åL­òL+NÈT†ÕxäOÿÊg~Þ§V¨_Õ\g¾®Ê=Š“vßüpD °§4KŠI,OŸê©ŸhS»WVgç.Øósg\›ºt;âWhS‚_Nù}įÏ\~OÜ‘ÿöí¦}ƒÃ¶Þ=>ûgQ/žE½;ˆ Âä„#Ô¹n7ÛÑËI1ˆï}whO‰¸·g–7ëMãòUø?÷:ÖÊÛ1—ÎφÓ☷ÊåøÒ¹XJ«Ðš7ºØèãYlK¨ÕaSqXž ~žŸryù$—;÷½£oé{Çà¤Dh …?^b04£ÄR4d¸ÔIΖ?‘–ùoŒóBÝŸ$øª§<œã z6âË1Ì0$Sal}ü…kg³¦w\C®8©(Ì ©¨QÍ\šŽ#[Ç‘3ØÑ×??ŽF"ZJza²°7ê¡ue]ªþՅѰcݵL•Ý…/Á‚ªÙ7G^êOüi>Ãõ.Ùis³zå´ÈNÅá:§Â½TœO¨ýà[皥[Í0ædâN&Nȵ]~äèÆi ˜N~?(=}ã"CCûíä(ýìéA¨û%T'<ÆÓ7z:©¯È{wÄÏ·è1Í{i–0A§ÛÅã…nðÚC¤pË4¥¼Ò#8=ñ¶^TÌž¦Ñ›}EVbãvmíÞäaÌ}ä,èÑq7êû&n=Ñÿ§y–ß.ñdƒ?4îQu4Sê– ™žÄ¨,£l ÒÕn3nÉ­`‹;˜ zýÝqà*$r I1 5m"6žjó6ÍvVÓ½MD¾Ó»‘oÇúdžޫ-z©ƒ£òc3˜ûÀF÷ †¿\ýï–*endstream endobj 1563 0 obj 4704 endobj 1566 0 obj <> stream xœ­Ûrë¶ñÝ_·Ð­Í¼LžÒN;“Nz=šÉƒgBË”ÅD"’²ãL¡ù‡öK»Ø @J²}Òvü`.€]ì.°Wè•ÄZ%îÿ¯÷¿ù{iŒz/õpñÃ…ÆiÅÿÖ{õÛ.±JkµÚ\žV&U¦¬Ôjqé$Nc[¨›ûþ2Mâ$Ñ6zjn/oWtÈ0ÅÈ6¶YjÕêë‹Õ¯n¢Õ¶/¯SSÄ&­¢ûvhÖS{™æqUeYôt©áË6jxQ^D!ªÃè¸í‡i[w÷ahÓ²²ŒÖýþ®íÚî‡2@&ތΙ·4Iã4/@¸Õ=Èt¢TÀˆ-ã„Òy‘)+bm‹JðfLäçv)AyN«£›ñ±^ÍÕwK’eœ¤Ú“|C1±ìU‚2EMºéw;8Š"zBëhzö‚ô~p×v͈|^g ¤5êZ§´s¿Qm÷x˜T=4ªùá<pº Ù“#^ïšnú\dÌ29å(Tq‘rß?5J•·ªV$0|;‘Ý._;%à7ùÙB×RF ÑÉÒ,ÖpüwU¹#Þ÷öŠcýÐÈR=o™,«¨¾ÿî0N¨·Ѵõ«uôØíÔzrešÒQ×OÍç›öþdfg4<m7Û ÖS} rU6Ÿ/c¿ÇÊs; Î„¹r&5ò‚êwÖ4®á<îÕÝ‹Y”lQ™Å…QcûS£þ©c£N.§Î’¸,ý½»àdðÆ$¦xÛrgº(SµõÒÔ³3!k f1)fʼn…„w,× xǤ‚‹gè%àòk)ÁµôC}W㉵ SÉÒ¹S=šuûs3•s8j½k6ê¹¶0°k§iרÙ+<`©¾£“«ànÌ•ÕNêc$jJS±áŒÀ°š¢_Ÿð“ÄÀ½Lƒ'õǢWqÓ²ˆóÄž×°¸]"ì9 7¯@X°J°×¾Ã‹p×OS¿Çûà\³N—":ó?+¤)ÁušÿUHkâîÅ!-yÖûáåÿìÈ7ǹõÝkf擼æPbâ¢ÌÀ/´ëm·õÈ@Q¸Cãi4‚ùîš0ÕöwÍÀpKçh]À«‡K¸ž‰.òèá°‡s‘­S­k0BÁ³3G2à¬{™*£;/ó¨íÆf€K;Ÿ…`× / ¾• .ýZZdq•fQ×Àœœd¸@aà„o[•ÑÐŒ².àÛœÝ;3«È~®d}9£d„IF™£çˆÎ ŒGD»áo[z B¸«ëξŸ/cw-Dæ<9éœÓx噂…C³¯ÛîNÙ)V{ÿ‚‘Ö¸0KAcà(ØZÛ­w‡{òþ`Þm= 6œ~;5û‘ÁŒ£ ¯ïà2U¼<üž è“^X¯ûÁ±³{¹„°‡]V^üýfvÖµç'w·QbJ´1k«eÊ–U6N‹ 5Žß¶ðtôpéR P\ísÜ/ÁThƒLçÓpe½•å CÏ}áÂX¹Pžph¼"˜F›¡ß’tÞHÌâŽBjPn˜Ó0ú>!ÖÊ> ‚‹ÜžEF™ ¿xznKÑöÐìjñh©]JÃwjòWnÇlâÌ °ôÕ†¿‹2‚ˆ-ëÊCwe`B·¬±è•ä›lRÈw|><¼âÚ ÅL<{¸üÓ:‚´8ÚŸüƒ,\¦¾2ê®&qgÈkPìVó4x½> CÓ­Ñ‘H’²ÔùcaJ—¹¶ï„©"®JŸ)ÕSÌÙ›0Ö{²j–Êö­|T¹Ñ?Ìkÿú§o_=ÕßãÑ–P$yyܸß|°‹[Æ=P@¶4ùcþ~…¹z@»èÚö‡1LõÝœ4æ*›°\]ë$‹Ëd¬Þr'©µÀPTïûƒ»|ÀÎèéÓøûFpÎ¥¡‘tn"ÝîëÝŽÄâ‘–Èà2ç’ ÌAõL°¨r÷iƒ[²o{%YNüÇ6ÁÌH×޹bç .WÀ,½‰h—Þ¡}ØNªÙú\ ùËÄY$ 1¨)ýVAB(hï!%qÛI:yõžšžýéÕ}K+­ ÁäK k‹£ò夠à*ª¼?»cYÞ¥.߯´˜Âçàó $u¶xèví÷d°™ŽN½Ffc“dÕ/¯ÕÁÙ>©½"ÓœÙ/x wñmû5±†âÓðÎ++¨­~Y:õ†ªf8Ow"2c9 "™Ëy͉#”h0ÅÊpã\çGAÁWt¹€ 031L· ò¶®9º¸]˜j7lµhÛ\«{tUeå©‘l…Àó†¬ S3<ùÜtXôâl•E™¡È)Qb.s¯«V€>©¶ è1‘Ñ´ïŸ.°É,9 X¯õŠ`IÉl@i,ZÒX^6mëé(”»P‡¸k‘åè®aû}Ì ¤[+Õ\ò|%cÅ¢°È œæ†û¦ºéhiM. Ïâ¥!º3¸Ì²lŸ«;O-´páãý>WYV¡u¶ñáD ÅmAyö(Á¹‚¡2·o‰šú>V )5Wk…í/5ý*ØN½„  ¶T'‹|i¾l=í¸¥!ÙûW¶æ÷»_®1U߆ΗúÒ©! °¬øòl÷ ªG8Šy÷+­2¬3ýwîª+¬&OŽÁè8«$szãRÉZ nî! 9¦©²£†‚µLä9¬ê®¹ˆä±]Ëh<¸*¡Ì`µL䨷«Ñ ðÀj{&Kt.'=ñ÷ÎæßëÍf6=Û–ñ™yÃJ‡€L*pì?ËA×.]×YœT9züÿ°î»ïÝš‹ó&¢a2¬wÏ&w}›H´ôé7Â&Ȱ>=7ðPQ%Ÿ:ѳã"Ü‚½´PÆÄ‰çìWxf†eË7ÒHa¬vš}s{Y #J$ÜÜsÓèÈ€ìL)`$ÔC¾†o,GŠºh7ÑW˜4‰\W% %$™ÿÕ©Åä ä}‹IòÔ_,.*“4?NÓ(!(2”ù<Ÿ6†øõÀñj@‡ñzšêõ¶ñ³)Ž€EôqŽ[œÄñáô@OÄF$¿ï‘×?^6à”éø\“µ|®µ„Ùç'êÌ]÷¶Hy¦Œç…ñ÷ë<Ùëu}s#gÑ]EawÈ5›ÖßhêÃÂçyIã¦ev–cô‡Ý}@Ùr“½8ö&²YãùN(RöO¶\ò{2²è”^ÃÁXTÞ’^i¤B–¬ã}Å g®ð½ –ð‚[º ˆóôN‚¸m*àÊ}_D??ºN<@b!Zå‰sÔÉ$úó,—f¹§"˜Ò¬cªm0ë\:’'Xãò4îY§‰¸nó_„Žë `›Í|¾“?¯ AiéõL¢þp"ÉX!Ï¤Ô dÀ.‰¦Çƒ+ ->4‚–¤éŽýi@Ô:Ns´7M7¨dk;kO6N¥Ô:-|`RçÒ…ùÿÕSÇd?ù9 £ž.?‰î'5Þçm@ÞÞaËÄIVz§tNÌùÞ3ÍÁŸÚjæ0gjöÍ.Ô¢Ó‡™¿¦4SÞà+uóat–p«€%H:ÇŽª îäÇéö4 ññ„HwŒöù­ÝoäÆ@¶lx÷Ï aľHÞ4@¹?¶ØU‹l4ŸWs›H]~ùr›LõS£Ài_º¬Ok9ïýæõr-¨Ý6¿_]ü þþDqHûendstream endobj 1567 0 obj 3536 endobj 1572 0 obj <> stream xœ¥ËŽãÆñ>_Aì‰J4²ù‚ ÄÁ d‚](©5¢-‘2Iíîþÿƒý¥©g7õ˜YÇÁ¦‹]]U]]Ïn}ÄQÄø'ÿׇ»‡eþíîñwïÄGe¦Š*S¾ ÓR€Õ¡=Fe5@IöõˆýšÅ\;ô:ì·ÄŒ!ÉÔê:Jâ ‚Ζ a‘”Q]—Eh¿‘Þ²$JÊ$Ñh J˜õ§nCÚèGC»gÁ"T¼ô|ãi.*\z\Ò¸ûFd‚C}²ãDRÝ›,ŽL ’,3c¨"8´ “‡Íþdå ,fË…qV…§Ñn"‹,|Ûù±7®ÉÃu3*T  e˜‡‡Ó~jÅ䵚)]ù”Ù-­›²ˆ@ó¬DTzg?OWž—Qœîl–žäL¾”3N^¨«M³M—´iüAýɲ•“fÓÄD&+¼j»™›#³"Ž t?:µ‹H>ÿ{g»«ýÖiT'¥ùÂ~3ôôìÌ´”ªˆPž†ŸÚiç…ht" ûÓlm Çm7ŸÛ§néA֧ЛkPèÎEì¾™Ú8t]'ÉEè) éxN»Ú§¶kö¬æ$½¤É•p*¬ $Ò/„…va„ü\à ?kˆ à%@¡™‚Cû´›‚¬/Ìœ@°²¶ ÍÆ¨ÒàêÜÒ¢±³[ÑœéFt“ÍòT ;¾Ïb°ãª¼L"¨°‹ ½»‚³Gï>8´âTQˆ}"Qnݲ2Ü´ƒ]ëQ@L™íl,HPk ‘L.ƒc{%P‡SóÝ´R£X49Ù J€¿‚Ü_OŸ Y¬ {/pw:¬ì0ú£=6C3‘ýÒ§$\=ûéf† ž¼[z¸eGÂ<ñi×®Ñäã<:Õ„P©ÖK€ (bΆ‹cpöF?¿’údž7¡KMØtÏ|Æâ¸]÷óIÏ0ó ÓYhŠ.·thž=Õ•õ[8Â!ÛÝÌfŸýl3CDçW…¡Ù°^øâû äû²èC•†§œÊÓFr*A°Ê©Œ›V©V5 Ìh9 ¬Xi79úR/)æansN*ÈL“.€ôãØ®ö֯€¢cL³ëÅoö{¼t²n^Bõ¤±¢í(àŒÍÁúhSs"‘†_IžU†×óðû*Hî¡Í²ìËåÛmðƒú ƒ'pç<ŠãìLþ.hÆ q‚Õg“X+§"\òN$”Žvšð?ÐnŽÇ}k7ÁÔ 3Æ’3Nª³ð¡{-ÊÊ¥lHaP(Iážo¢:Þ¿C™PbB݈ˆ@Ý”U¢ë8îC囸*B)†)^ Õ<\6òØ6ä*A)}ûŒYä Ôfᨨy¸i¦FÉ@ñxrü  ^©$XKæ?+R€tR$>ø£®|¨•Ðw+ dQ G+ë^‰Ò‘àmç…n'·ƒ ^'3L­š±]û-`p^zprÊ…j¸SöP;jÍXEYYû”»í÷ûžmÜãÅ™ k¥‚ã Ž!˪#ˆ‚NÆÔ‹‘TæÅ6sœÝDžâ×§aÚQ͸è¼Ê‚£ÌEŽŽ$WÍ'‹Ä_’òÌ~;@¥ˆ,vÝnÝ®àØ-Û.ìéóäñúÁsÞ hßPruO3yæTWö¢©éOÓñä² b6=:Ûä²^PÞàæRJ®4®®Ðnè8„â÷8ã¶î‡¾Û?/ ÚYuó•e§PÞÆÙo°ì<*}³D½r-R)PYúD¬…!-Wy7:_úï”ceGÓÎÑj\‚È”3äRª†nì¸Ú„7Œ*‘ÄÜ×ÃÌ, Ý-k Hˆà”œòå#J0 ¾p Óø+â\01ͺ¨æ=ž ¶‡ ß^Wšu'R™«#ÁÀøú‘ÄQY.Ú@¥;RdŸùµ1d¾Ä¼™þp•Æî“¤ˆê2¿HfSû¾êQŠHÛ˜?Ê\­t`*Nk ˜aw¹4r™úOy ÎWo.—&é¯å:NØ$W­$víiõëø¿¹!@Uÿ‹æÿ Š¢eC]`<¸j$ªKèT´Š„qn¤ŠÄï\;9#Ígu.ÀXÇoelrÙˆRKo„çH‘‹ð+% uËÆnT=•uØœöèãÌÏUêLP+u… M´ŠfrÒú #ª „À+Ô¸1÷³rác´[[Ç äX_Âø‹{Ùk(¤`À/ŸuH¬òŽ_Ú7¸Nå1¤É}¶Î/NgëÖr@dÀ¼œ”í£4Š$R!G)ªbí0›í0,ì!ahMŒw-8–±pÜv@‰Î>€Ùîj²o×–POs^XžËˆehÛM¶ÛàÝÓëi AIðæ]š®Ç|÷æv9 ¦™e±™ßÐBWõ[q㆖f*­ ßÃ2fþ,|~‘OЖ`îæéœ]ÉÝ âYéɋ풡Ô_óé:²*ýùÝŒsßù nq8ƒì=Qgߊ &¦bcp¢T¡S XU®Y$“…ò¹2FŒe)ðtÕAlù„뜎 Ì;¡!¤" €º,µ‡Ž€\ðšÙ¤çEFL WœCi³wT¾tiù->:º)ª³æü»ÍlG§Õh¿?áŒêÊù’)LT‚Úëë¾,Š2ÿ å¬ËË_Ñ8(û´fWfây?)Hà$ìø4õüÛ5yz„*¼Q¥é$ WÜXBuš‘XóU¢$Òãóx´{ÍÑOùÜtÙy²QôêáÁ¶ó ؤ8¶v­ ¡.„ ¾²ŒÒÔøÆå`›ŽNÇô&îú¡ý¡ï&J‚fÂ5dÃÁISç|["“¾¶Ücû°Y*RÝB¢eUœðì®"ò+ÈÍE’”9WÇ”A¸.kóâ1Ý+‚^¼pRuñúI%ÆÝxH²Í¨Ò«§âì–¸[z .îp¶NÀùÑÐgS†ÐIŒí¨ž‡ÅŒz ¾û÷VƯ¼ 2Âè½öí¡•ÄÌèöåRw¦‚20Ñ}ÿx¹íjpS¹m¯wÍÐ@ºÆ‹¥§<ÛˆÒwô2í„AÙä5ÕTQžÍ2Uk >'Vl1Bæš›~ÊõñEj¢’ùÓ"iî:*¢›«j”.g&B=[çN_¦Õ„?w_˜jíà9±8Ö˜½Û§În¼Øò|+üÏ„áź IÞBxžEœ¶ÑÆññ· ˆù:Ur3Íc}ÿSÈ¿³Ð|aìýxÀÊ×ñ(p£ÍäY\Ô ºjeý‚«”ŒqDy‹ñ—î EÔ]³ßrƒíKóì¹­ìôÉâ½.o¸>ÏI.¹žÖÐA/ÔI¦4øûJ‰A¥{²“‘ŽãºÒä¾Qj|KÎãŠj‹n£ïKg c}·MªÃÉï˜iþ|h7›½ýåÃBE¬ùEŒ,´#dy.ÎEq¸d1>Nœ@fåUj#+<æxW ¿7i™yeè[Ü|Mz­Œ.ÿ-öø‡×+Ê uA×&—OÐð½w¬çÈ×YxOyŽK`Yð‚AZ"ù$UïFnqUëÍ7c}¯g Ña~çû>æ­Ñªo†‚ü eÒR…ÒF[˜\éò™¯ûàÂÖË)aFfm+ñQfåFLîÂè)+©IXY­)ðø^»•qn´.©ÏÂ7F‡]Çvâ÷œ’]àP!øßŒÑÚ—tîç)GÓÑNž?½ð_M—^€3ŽÂIk"4æˆúÛàÿyÆçåßÞ‰žæ’ø+` 25Ö1ÆÅ92C?7+1Píâ'iŽ>ÓÃ9--Âÿ€ÑPKö'ùZÊ:Èü“}À2|6×þ`ýGŠ=›€Ì±çýë×Õ³g9$ä¦ÏÏ‘ÒKc…ol ¸ÆÂñF,̪Ú=ip%Üø„÷È`ö-ygä}­Êåžز»ëFµCW’§“˜{IZxín„‘ŠB•àvè³%Ê ÷í8)bñÊ¥®íýÒ›/Ñ5ÞŒÈ{÷yBI®ôÝfçÉÍû£ó\¸ô:jFUIá‹$äâÅ@йÊâ²Ã:{JvEm‚oh}÷Å_|!|½?MöÍÃh^HE”çyÍOFˆaàK™9Â$«.ßj’,™ÝÛ;bŠZ¤% eˆûhÇàC˜ÄnQÎ??Þýþþ ô³ªendstream endobj 1573 0 obj 3768 endobj 1576 0 obj <> stream xœ¥Zënä8vþï§úOè ¬‘D]ƒ Àæ2À,²ØÍ®ùឪ*•­•T#©Úí¼Cú’'È#æ\I©ªÜÝȶ¶H’‡ß¹¿QþÈßÝñî‡?çEÜ'YÅqlÍnnöJ—˜í›|—¥©ûû8 +øZTŽMWÏí} •µæ“d¥ÑËÌëç¾ý²º¡÷µóK={>ÇZ™f»è[ŸN]ë$Ânƒ£›Ý\ 3Íõ}\ÁÐéR†ÐðÓÁÑöƒ¯^.QŽKôËãïïâ$xü÷»Ç¿2Ó©Ùµ_šýhŠ$ŒJ qÒ4ÁùTMpªŸ›0x|i§þëÚ¯íüBí4Ò.¬•`sØòÜÂ)xÜß™>Ý?þu}Bl˜Hc0œPÿB&ñ,`"q‡N¢Í*¢~}úÔ6øð//Ãxž>üðé—Kæ &«N?¿4ý%{…Q’½/`VYÁÍOrBã0³•Ù ÇmÛ³æCMZ\†«(±­Êu€ãû+ðDÚB¼tgi¨øjg¥ÚI“Á‘`l×"­@ƒ“37ÇÁ±[ÅÁ~¼1¯½g8 ~⊠"ļ\“¦ŸG<³+ —pv¸P1T¶ O4.Á±ÝË KòŽ|l†ƒ|²*T€ó¬ˆR­e =ùã}íeb©$ ûõ>†MóÔ(7€-X¿fÔQSSïÿzžæ#ÌgR~t0•‹—„Žp‹ª»ÑîÕªy:Õ;75»—z¬Äu0Ú[œq§dbŸ“ô ;¸¾U–`ÚÞ³ö`Ðæx¶ÓbLˆåK»Z»%9ãº|Ÿ§fj±4ì»7_ª=be§ýâÊtp&Ì>.Ó¯Y‚¬J·ßÎuÆoÔË­œ%Za9K2ž%mA=`ì³¶ ó<öا[Ydæ-¨´GVbt²  Î`0£½¦&`šІàõ¥Ý‘fÓ þ†}šz¼ÏcZ™P&œ¥N¸Ó쪨1`bVIð¯cÍbEÃÀ; …BÖˆD86p~ ð-¬™'åí« “8ËÝA‡s¿c7–»U棙åÐçýÄà‹°kÅÇ{Oì†Oi™kn†mãNn¥Ö׳#gØæo\ßBLø×^Òwb%@7Ë1AÝZ{¾$_†¬BìŸæ¦ÞKÚ»ÃfQýw=ùïצ뤻XO‹.µç=»©#j3u&ú Šk¸Ló8œû5-±¶ÎR“¬¸ÍŽºæ0û^K+²Û˨¢$¬nð£±Ó7]×ì}PjAÄçÈ(œ±Jcq¹°6‘ioƒ~ÓæÒgYx|2yj§Ù׉c£]·]Ýÿ:IlC 1(‘oé6»Ñc°ÓyTJ°ê¦a?Š ý÷é4`KÁEôäºeJÒéºÈŽÙ¬ ‹Dœ:üŽiBmÉIVãTý_NòJšv Ý^b+ aœ[÷íaî0¾é@){7ô­¾±þô‡ŸUÀ…v"ö„Læ%¢Åf°º8z gÅw¨]+:ƒª>Ÿëã©Ó13À µ˜Ò6KáPÆÄþ,ø‰-<¦{<²I–ó×Ó4ìZqÏ¡®Š+ޏ”ðø¥ïj7·Ë^“TUCZH5ˆ¡e¿I%È=kÄÙѶÔüÚö{ß‘TTzý÷vûþ!C+kù?¾…ýêbžÏ-Ùm›kPí3ÔºDR "õá „kg¦7ØÏhøîÿn¥B ‘V óE~Ëtºò`8š_®Œ„vEž—ÚCÖíe× äaE%¬üôWžÀC‘s•<¢‰ôç¥ê¦¹óNþQÚ*ï$‘­biî/»f¡Æÿtí×,{^ š‡ù÷)8tÑ&ŸÃyøÎÁAÉ_¯$°ÕwŠnÍxo Ì^ Q]î,bdÓïèÿ»,#» àÚÔxhƒ¾>6WÒäÌL–|§4a^glÁiÈVé‡'±èê, î¡¡ƒ!à”×Y,a¼ìƒ[Æë¶«9KD½S=t\˜oo ž_šê,žp¦WrZðiã¤ZãîÍda(ƒ¥’¨“%í 3ª•(÷P›V¸qA‡é%Ïzn0+W0ë*²2ð‚9¯²L”® Nc3ºm(úc†ç`7›àË8ÍWɦˌ‘O3ôïŸûço曞Ìïp»¡r0ŽdÁðìO ™uÎl)Î,úaÔ–ŠGĽ2xê’p/ÀË¥@{&’¯•ñ¶Ê%‹M>n9l‘ R$O‚ t‰U¼zÔÎàÊRŠ®îBÏúÑIR cûìæ™²ß·œŠË_ øo{v@ ƒR0uoàõ,‰ü¶ 玤^ržØP‘òðÂÊEU˜Ì†e*02É CYú¬\ª$ë£t”õQBEEnL—·L°Î͉áð7cWmè•( >0HÓÐØP¬Et…œ£IY&ñr%g‹i¤bs”ÒO*YNŠxHŠZ s ˜(ãÕ€xÑ0•·A¸—¼Ùc 6ân‹F tqséˆ!#êÝ0nŸ†~5H› =(ž‡Wâ. clA‡¨XìÇñ|<5³w.wBM¡T¨ÇçÜ`oÃz\ª —µ´”ò§è¿9ÇßpÐŽÛ=á7­æ ”K– ÖJȦ%‰Ýf ¬6Ê0åp=ã ƒW1&û(Á…ðè;^E"J¾ØVÊ‹È~žF·Í¼6{§x q+ž4=úvóÃR± ‚¥J¦$…ƒ~4#áq j¡4Añ'ŠRš$$u2˜¬Ýh[º©9žæ…´n½„å‘¡ÙÐyPB9«¾†Ïªô“´=¦æêWW¤‰Ã2*å!¦ä<è´»Û]f{gO"œ±ßBxlíØ6¾ƒ´=¤ÝÌ Œ4;N„VÕCesƒ9AÉ€³=¥ž,Æ¢!øm¨hɳà|_ÛáÉp`BîdJй87X…ár«ÍQ"攎KVùPŠÕµ¸N ÀïÅÓH‹¥ðôì¯óèµ'S¯•Kìµr‡ÑõV©HŠ—é§~‡—xt2•+úÁ“ñ•Ó±~nFžSE„èéúk #¬œŒÀûÕùÇ[ðÏ3`ö<uÐ7ÎÖ¼S3c„>ývFpߎõîWï!̦§I¥¯=¤~¦{”÷Ð{ångÁ‡»óÜ|ø%xò÷7 ù'ʾG”qg0 RZšÅÍì`Kv;p*éºêÚ²éÒºr„’“ô{b)^Ò7‘ÄpÍx$Çh¯ÓàÇDª‘ 0 Ý o¤•÷C™AOÚ2µQ ³ñ})ÆŒ8úº5ý$G?Zcq\ý«ôA3Íã›3]+ûUi‡D÷ίjAOj¯,@ñšó2'ðõäÖƒ®\ébµpÁ¾žkº¡TŽb™°p)r¾½úanø¯ ÎÓ¹î‚WÚÄCÿPãÖõÈúfÄO‘[(UhЃŸ®³N¨ŽÜOøYFxóU…H²\ Œv©$ÔáþVâ6"EIì?Z &&_$#Ãn…û zß.gŽ‹½05»ó¨žeþ•Û '6?±£ÂT1£HÕ7µJ³×µ2¹õ o)Þ$å¢þ\HÍX÷Ï®X™è¿òPJ°N¿ótï¡=“&bútÄVe" JÅ‚¯gé[¼7% ÓH^R´r“¥tï®w^’¤×@™ ýØôBOä®äFKg§I—Ñ]3¡úB¼ê®™¸ } ~Þ„0hzÎÝ^É*9Ý›ÖpÐÇÔèštËtb³÷MÛS|+4)‡œ1ˆ$»íbÙV!M¾•oׯWé¶4L‹Øy™/M½gG‡‹Š¯9c¡—÷ÖEíƒM«0…¢¦Ðß»«MÃ$‰÷¸ËZõ²þô‡ŸƒåE,º‡ 49\Ð8g„]rôüxSƒÅ•á ypçô“OÆ‹W.ïç À-]ÜLÑÛeJ…C}ίOèÛ9ÜT°½´£–ó÷g£xûæÔÀ¯žpæ#y^"±îV‹˜ïžåÛÒ }SS¨­½ a&hÓ'Ï¥W‘ ˆÁa%[~ƽ Ðsó “_¦7ÁQH,%\÷´a“V?Ü»0xqŒs¡2¬ÓŽTï»2B ÞIWšƒÏ›¼6£˜³¯Jõeí÷‰¤ϹköÏŽG™8ïOš Úµ æ;GA_Ž'9¸±…Ëå€eDɸm•¾ÇàF¹Uánä³Ð\ÌÁ³XÍ ¿bá–ì½§^XTböž/J9b¢(A‡®ñì¶õè{ÃÆÎ“']‰~±¥9÷ûfôíëið[Qòòa5czfðº¾!¦¬öÄiuy•ãÃëžbÿ…2>îrqïS3!`ûxO£üÛãÝÀÏÿÈ¿endstream endobj 1577 0 obj 4378 endobj 1581 0 obj <> stream xœ•ËrãÆñ®¯˜œ %‚ÁsŸì<ªœr\‰—U®”Ö„$Ø$@àÊJùâØýÒôs"©õ¦tÐôLOOO¿§ÁŸL[“àŸüßì¯þømYUæaºJÌÃÕOW––üÛìÍ—+Dq…±Ö¬î¯xŸ5UjªÒ™Õþê.Úu}{s}›º$N*5ýV*ú°0?Žm{‹Ø›?½úátý‘–uý3 ¡Nˆ¢öoÓŠ¨‚‚Ó¸ÎÍÝ›¹Ýƒ<ÌDîE<õîkNüäéŠÂ²5#¯Ò(\\ÞÑÍGtOáf‚H3fjgÓ˜m{†5ÇÝlÄ_­ÝS$ÂC ŸjšíÇiÞƒ7ƒ¤a§Meº<">“ómY‚WKaëU@Tg·¹ z¹«Æê’J=¥R¥ÊJšE’»_5s8›“—ëzž»ž 6Q(bjeÔ³ßbb‹ °ò¾ô&™Fx‹)P{yžOPÎÚ( ó‡b‚ç²ÀCÇY³ â™~Éâ¸ovñ‰s|®S¤1øš×˜Ì@°£ƒã2‹þÓŽƒB)&®–üQàY× ŽbB#"Áf§«¦éS%ïÌ£/úeR¦YHw(°‡VƒùL‰…æQFe¢¨£‡eñâïö°wývÞmÀ=Ê ¥¥j®²8ÏKÑ %†{ª¢ÔÄC•ϧÑàÏ_p2r@„ÒÝë˜ò úR,K™£Ì,§çQßìÛ³˜Ú2Î f¨§ïΣD—•µêâÝò>Ê'TSÏ=…â\çy¯×)(–ŸžZU g›þßñåâÕ@"‚:M,‰  ‘aPŽÌJÀHÒ#ÕJÒ*Ìjdý¥ƒBJ'³HÊ#^hðîe…w[ŸÛ^ðÀwÂRõíu3B²B¥Æá(¼¦ +Pì¦A f & €L37³ðAsd1Hª»æ8{H‘°‹çp;x&´^@Ó”’— h©&×¥qéƒy==˜=¬N7RTÑU)yyÍEïŸÆ¡ø ”«è‰´Tæ8D8eÛ£7­îÍœçõ…±º*Î\)f#×c~NÌÂ~Uj6¦©RÆ^¤){d…µ[pô<¶¥UÃcƒreõŸéÓ/fÞ¯5óœy'ÉÑ'9ð ÅWÔW© ë2 *0¼aàb&°hãšHP¡¸iw÷CuG…$!:ÐW·yÔ¥\ï:,0(úÊx;6ì¶P>…i´‘ŒãÀÜ_Xab¸cŽç²s<îÚU´Âó¯÷2»p†ÔgëENO£0"@"îüjVGœ#† æs¥YdØ+exFqê»f±Åe\Òö Ì^)ëg'ÖÏá´}ÛôSØH·——ì6KÀK-§H˜OÍáÔfó:βʞ­2ðQ£UÎÞFzzš ]—ÅE™h°ýÃYÍ“g5ÄX£‹áù–¦o¯QãÖB^΢C¥†¾ Iþ(³EÅñ‹Qj‰_À\7­€•š…†ç!P”p ô‡EÈ·~È|Ô“A2*ô©âwM™îM@~‚WtË‚ƒ»Ì¤ŠS‹Ù KÈ/*@„4‹¶©Á“­&³Âé>èf—š qÀþÏBå Àl@ö@ŽRCø-Ž dõIJP—Ts@ƒV\(Y²ÈZ‰BZðÜMŸ+úr¬­¡rN‹eŠžÎ²sVÅI–Ø‹Oös å³¥¨ Ãó$®+!g`ËELµé}YŽî™YÀ¯¼Ä,}¥'‹,0œEL€Bx ÿ|Øu›nÞ)MtùfüÑ—Yð:T‚yôÕŽÚC©+”Âé~ØíŠg ¨ø‰»D9åÀ"Ì ýb…çje´#_¤Ñ}Bæß–·lbºÖ¬/Ö’Þ^ßx»~¯žôÁànó~Ý"×TÅÀ±ˆkp Žæ¿ôNÛ5Ól6Íq‚`O3õ³—µóˆ-|ùáŽÓ‚ÕH/=•Ë µ„„z„§V¿}=¥~÷Hé!ɨçÕèÐE‡fœ‚LJqžÆu4uÒ#˜³,ÔŠ v…bZìöØuäÅš³HÄÖˆz±á¤¢¬ôèý«z¦ õfàŒ`’+ËyÚ Zr0-¶^ Bù~öRç_6@v¢Ä\s%½]¡€.À®¦g-xÆJ-Žní¸ úýÄJk·t’»v¼‹€íb¡W:V e^àjwÔ(ÆÍØ­õH Í2„Wékw×uy*Ëž³áŒÍqÁ.¸šÆ)ôfÌÆê)Òú¥IJEÅêB- >&E탨ðiæwqš†véGhtØÙÜîv“€ð4ai+¾@˜Y'+ˆbÏTPÉ3;S^ž¼*"ÐÕ×%+›Ùª.’‚­ã@ŒkUia‚¿Åi¶xžõ‹Ž å‚‚b-Öw#%(‚ÃZ]Ðë›+¡:ûUeÈ›EÇÆeºx>Ý"ÉÒˆ…–í[KŽ:­fkKk=°ÿX ˆ\D(s݂ī,ØÝ‹ËK²tbo¦+.NXp.úž¤æ…¹ëi®q;Òˇ$Mg–Oº¥H9eãB!ÇéR!´RÞ G¸ñÈwÆ Òðd}§-¯\­U? xàEJQ ²œŸ+…‰K¯e°nÈ›‡(éÐ?¤>ÖGú‡/ú´â½æÎ&î{óíïÌ/ŸÐ?„g/ý…ö!-€„ö!£:HxN—]´nF]Ë€¨ß„¤ "d\i'(°nÃØá0Å%±PJý{'öuêÃ<Écÿ‰çõÐv«xÞ¯_D·Ô†éû=Qs8´tqšÈRÉ 8–&Eôë8ͺ/#ù(dQv×YÍoÛ›€Ô(ݼt‹LœW¼Æœ(ì&mô°¹]Ûø±ëÛ€wÎŒà¥Q·`!|E”‰u Uˆ¿¢]Þ·ŒÔt±bXŠN­(ר+­ƒÚc™ƒ0„jÕ1eÂ}±êb¨^¶Jª)XêX®H+¹"ðbìÛ@¢äv–ŒÃ…ý¢\˜øJ唋¨usþ°†,’ÚOH¯y^Ö¡m„½vÀ¹ÍSTMlCŮٴøq‡JU(³ÂÊïV` ±ØÎûHœhÖ›­ Áâ—O oÑ]ØPçþ 9‹Æe$ÎìÁf¤RA°†µŽÝeßµUÎi½ã³ ¼_Úé¸oÏ¿næyœ×Uõ JN&KÃ1XŸ¨È¼ÔeÄOܽ¿W¡öD˜bN„Æ e~Ä/½c¸& JŸE13¸Ås1$Öò$³æI\I‡9}²Ylot\àÏžŠç2†w¤µãð×dL¼ú/Èò’Äã°§x¨0§QÚ\^†ìš°K£!Cõi4ä›Àó³ÅÇ›§ÁÖ£‹Þä²òâØW .ìª2.S”5¨aáš§?î™~èo‘Wt2ÓÌäykÎë4õÐõ=ºàpŸþΧdêŠ]ÏÜñ‘ŸàˆüŠÌ3ú V;<„² ˜ ÌM°<* pü¦áq-OkïÎ×Åéo?@²‹fv3y0ó°Ž@SÔ.µ6ºï¼QvÊ aš(w‚Òœ¾LnÚ@‡¾0y¶]J„.EÑÙÇR¸C’/Z2'#ªÜ ²\³‘Ÿ`§eŽÃs¬çï`Xþº„8¹—<Á™& ’éè+B©[îÚƒÁv‡°O£‹'úÐÇaã—"¥³“Aúø¤$“–á×+¯¿–ððò£­2nu9pW¹Î õŸ@ôT —ÊwªuY€bFù¥RB0PësLAj3 ¹€—¶¬¸K¾àQ‰×މԌγ‰ Ž[pLg­§ç¥tt½ªIÕ²ò& .»‡ÇY£]•Ç¡ƒT›K¿v€(–Zýª¯âóVg„ðl¤=~ñ€Z8ÿŃ>O¼Nåç ¸r¡è¾Ðö‚ˆéb›fú[Ž;é€Uænu] d!¹¶ý0žçÐ [Ñ3Gžpû?úáÜnžÌžöcË"üÍÅq„…W~VA?ù2¾,à#>Ϫ׾,ÛYê4¼-~SÀÊ+u)¼ ¼uGgñ[t•û_1E¶H„dí£|žÅiæ ‘7øÓTÁ5v¢-¾³@ïàÆoAho¯‰ã¿®®þÿïÆOendstream endobj 1582 0 obj 3689 endobj 1588 0 obj <> stream xœåZKs㸾ûW r •²9ă¯T*‡T%•Iå½Nå`ï’ ›‰ôÔxÿý;¿4Ý 4@‰²×›kj@w£Ñýõƒþ,²TŠ ÿùÿ7‡«/ÊR<ŒW™x¸ú|%iYøÿ6ñ›[ÚR )ÅíîÊ“¢T¢,jq{¸ºKd–ª´®ÄÝí*¯aP•‰]I#S&ßMß®¾½ý©rOD©ÔT¦·¼ºýÅ]rûhW7ªÊÓ*ÓÉÖîVH¤.ë¤9î'¿¢e2½<ñ>ìúÁ%¬»<Í2bÇ?›ä¹ÛŽè¤ñCU'ãÔ¬$²1É'j^%6®ß'Ïíæ‘ié¤=<í[;ò3'öšÈzN{˜ÚM³ç{ªdoW ×”šïÚGŽM·wÛÛû³,“MÓÅÉÚÎ6ZfŸRê^*VuÓ‰¶Û¶+•'_Úí±Ù‹Ëšëq°M7Š~'¦G+ü–Ò°!äeZg9Ãíö*¹›,>ôí¿NßEçµÛs—ˆm;ØÍÔÒÅëSõ¤âã$¦æSP¤E#žW`[YVæI?lE3Šv‚Ÿ‡•¬à×"OŽÛM) §µg|#Ë,­7`jµ)dR4ëþ‹]ˆ*UÎb> mGÛHºŒj®TêL`2;Y» P½AíŸr?g^ª´ðŠ¿ò‹5©Ò:×µôëÝùÙ<å7øµ[Šì‹TeñäâÊZ¦¥QН½m§©¿ È(ÐBà~e5¿_'^3Úw\|m÷ýó«·9û¿~Ú& -ÔOÕ61ýÔö±ÛÚaß¼¼¥ðsØíν‡òÿ¢'¬–êoÞËs·þ©ì¾8v+ÖÍ8ƒ©K‚SåÊ»]•p âVÒ¯nt–§*/’>7sh·Öïí^ LƒŸŒ!lû#Ízì÷Ç)SÉS?¶SÛ󖢄0DqŽ7ø¨Z%ß5Žì“˜¶’A¤2&– !h‘5áÀ EO¼Nd¾ Ô€¢™–¼_]Ga¦G>\Ǭ‹$°,uÒ?á}ÆÅËV ÍÝ;Cò¡Y¼i‘æ9änTpæk7ÆdúT°Žë $L©+Ÿ¡?bl¬Ë´jx*Þ#æ ø †ç¶{à%™tÇÃÚ<縋“ܸ¸‹cY'ÇÑnýÌà»5£ŸFží~ϳ WÎÕ¡´I³š‘åÃq¿¸L²2®—¸“)]i>¼[j"¾ƒÓáj>7˜“‚°jЬfR‡%ªh i¼ï7í¡Ý7ÃþeUø9cD†nÿôd›¡é6Îzo´*Ó*×á!û¿_L4ÀUµ9³i$§Ë25¤>3«^Zr^›¥E½ %„ˆú"ñº¨ÌE[Ó¥a[Óå‰=iÀŠÁBÂæME «ÞÁ¼‚ÞpÒv Í>Ò„¨8Ùk>©!_µƒ"ŸöèT«Lr‚JÛÔ…Õa¤Y~•»MbkŸl·ï(6wÞï s×OÖ%c!íriç_†mÛ5à ƒ{­Î3v÷+^¹ 3•´£pRv€.F?âp~VU§¼[¯ÂM«$$JŸ™öæ¼Vðz”<ßßD‚B/@¿_9“0gм1£÷[e"ã!aדݴß3 \_¿ÌRzºÁÏO ¹L•VlèhÇÈid¸‡È>º¾» µ#å€ð¢×‘®_ì§Ð/ˆ9wlG=÷Y7‘Ê]ÖíÇ®ÛE‡‹Sâ‰29íxÅß_múõõKS3,òêwgQXœ‡aˆÖu,÷É·vÎÑAá_ÈhÀ,-—Ý2<$å\ÆkAíIj˜ÉŒze'½1 ºt½1²8ßÃûvÛfØŠðà”½‹¢Û@B^cF¾hÑ1øh„^”á—¼‡b²Î! °©œ/^ÝJQ%ãñ ÒKörH˵‡AOœhØòÚ í@&ÿk‰†ÐñyÍ FñÌ÷ÝÆ¹«µqb ì6!\CÛq{s¬÷Õ¶› 8“ö²}]åEâ AôÆ€)®BáPç5aû¥¬dá´/ç–&Ø_8få².òGü’Y/®¦€Fïë¹:°O#é]# :Þ/ñÇWÚ^qÃ+\](œI1ÓÄ\"æ À‰ç0Â@ZÇŠfl×{‹É·s‹õ‹8Ž@Ÿ<ªÕ¡‡`¥–°ã¦¬í磅ò5%‡¬e–´.‹´†juzÝï€ë–ЧDJo%S¸ ›ã:9ÇÉ©+šnå,é ÆQ6òp›«Zi¨bÙŠs€"úªâ…q•¦Ÿ ¨ÈxNFjTÙú]PlÇ…Ó…rÇîáb|ÓZŸ¿PÆz®˜ ÍXÅ{×£9ý|EUúÔ ùç‚ágla˜ëw¢ºe yÌ™x‹ ËoD—÷‡2È“Ç2(eÁf耛ÍDÁÍÉ™Ï0Aé…²Å]âôJ›~ìøÔw̪¤FD'×Jp¸7=Ûý—ñ‚áÎÆw6¯–>Nã8÷a•N]®d®S­Ì;*Xmô¢àpìÍ[>’2©]<19#‰ÌǼøá@Ž)ß±(ÈÔ®™X>S¡¹P€º– ¬EyZib²KÿËT|tY z°æw§¹¨Æ‘ÒÑGŸ<›ó¼ºˆ"еӫ_ùB6€‘,7ü;‚‰pÍÞÔo À%5@#ЀªÌÝÌc£ll7.k-uòi ‚’ðÒðóôªN«<çŠônj7Ÿ.~}4Å»¾>‚ÊàÅFñ×?ýãAÛvÀ/3HW<áš«^.7Hu›#8Q7½?»¿1K@V kE¡V츸 zâŸûáÐì÷5¶˜'u²…$ˆB9dMÏcü}j­Ÿ@Í‹÷àµ3Ѹä;úx(韨åg#•Ñú€à$À‘þì¶Ñ™ˆ²úÃe&ãdi¤ó{ J.}õV&s‰‹#ã‚>QiÇ3Pçоƒ`&ÑÇ1@þ†— ³˜è«¾›É“kÞ¥^ï6ºu*Ái(Í¢ÙèÈy àIPSÊ4곊žÉ¹â_ó$_Á¸#j.¼¤†ñdr‘Šï…år~à» OB+EJ 1æÈ<&°n)üx„¤Æ}¶[ê_óÉâ2´EZrU„n{ÁÐU™æñoÞ„aíQœb²‡a—q×9ÖK`MM»oÈ´GyñãdãrIº›2ß M¼ }YÍHAŠ»çÞym :ÏzOãqí’Æ ßÀ¸gþá ÅnŽÝšvÓ-)UhR‹Ö"[s~ÿxb›2=—%¸1Ô çõ!È}¾èø²ñ¨ £pè÷QìÙBL±ûa;F²?×9M{¾^ üaæ2UòügùoNŽ@C“|mŽSÿ5Lÿö¸ØŠcо¡¤—öÈQÝ%´µ¦”–Öª”LÕÇia=ŒôÂLºgÊÕœMu©aâNÐW™4r¹ §À^ì.°Ü-ñ‚aO`óèÔÇœPß|`­î‡èbÑ8)·.Z˜=@4#Às4þƒ4Ê| h¼ç‘]¦EüòK!ÎrIN¤Ž 3„šÿ† N-fˆçÜŠà<ÃOñ 'ßf(…’¦Ÿe.ÏÿJ¥Wºdé¾™š/ãûJ—¨_P5hã ô{«÷+âøÛÛ«¿Á¿ÿûÀÃúendstream endobj 1589 0 obj 3266 endobj 1592 0 obj <> stream xœËŽãÆñ>_Á›©Dâ²ù¦ HØ FÀ‡™=P¥¡W"µjÊãò þ‡øKSÏnRÒ®9LWwuu±ÞÕ­OA™ Æ?ù¿9>¼ûOQ–ÁÞ>ÄÁþáÓƒ¡å@þmŽÁŸ ¥ Œ w¼Ïe”E<BGIdâ4xzìŽí‡Å㸣ÊuG•q ¨ÿxxüÃSøøÒ.VYl`Gް¡¸ÊBÛíûf¼œÝ” wÃY€Ú„l íØ,LÕ°ç§…É`W¡îªëpÓôXO^š~ßnu¢›QÏJÃñ¥õqž¬ ;Ý“(D»qì…ë7ý.C¤><þäPšLäf%ªAzÛ‡ði¼'«4‰ò8œ§pÛÛÍØ-’<ŠMYM?6ò‡½ßÍ¿^¥eåu¬L´øÓ«4-¢<-é‹xlD án’­Š*l«H ‰ŠÆp<‰Jƒõ„0‰Š‡uhßìØ—o²¶i.c7ôÍùMç¦,îÄ2xª ;e-Oç®Q«·¬ÖSVë°í+33FUn(-¶ÓFr7&ü©.68t}\úCkmøÁë,?ŽÙá¼ þ×€¾¢ôê"ËÃæÜÿt6èúÍá²m·0 mN©¨JÀ›)UŒ&MÕyÐ`¥qí­&(ÞUA?¼Â7´šo w#©Å% €¤†ãÕk…JR‹4|i›m×ïe"ËÂ)ËušNY^ÞØ¹ÉM”›Jm¸g`va@šàó½ìðLçET±³ú¥œTìþÊ…½œ@)ÖNX+ÐF=úÌŽè‹m †3$ùOÿ×w?°Ó$q™²öN³ZXR™¨<øDÏ%øËpþèQlÛÛn}xÓ™ŠÂMn[v®ºó¿F¿ÒíüŽ-$i°¼h¯W¼LÝ‚ dâÊ$™"¤Yx±èJxè'¬|áûáÕ.=%öO ݇ԛáÉ]èÜ¢¾˜tô ñÆ8ÆxÚæ¨P\†‡¶ß/“kÒ–:<^l·iŠW£D{ ÿYLQºË@6 Ù*ü¹9žíRW*µîúÖ/àg'È03K+n§õ;»^?* Ów™DC5pà‹`\Q d×ÄTfàÛ°;Ï¢"ÍÙ¸ È“ðµóPJYÇ&|m‡¥î‚%R^ öq=-4r@à ٘i1 7ÃÉуƒP º”ÐÇ Ðì¨årq×ÛÑœ°Áöí¶#Çœ|Nן‡H’D“am¢:Ï%aþñ¦®H#“ÆF–¥Éž"BBF«| xiAm)*¹æˆGÊó8•ä3Ë0),^M§»zÎ" ‚ 8„3Ï\8…žO6qÍD‰îÒRæ"¼2<6çKeC]‡I0ã´gÚõþÄ×—nóâAØf[ÿ1ã¼Q§ß8è·68SÑ!˜¶ˆd0sò 9·gMj¤Íß™¾²wÙ‡à9üõzÿ:ðÓ‹¯~3›÷¨yÁ/g´@‚Ê\¾¨Åãu%ì`1Bò>­¨¶JfÚ¢©püêÚM&5Nq³ôìì†Ãa`ó€#_&׉Š5a%ñú§ÅÚéŸØ¯ÂLÞX§,Þ›CQi d·›Ì r)„­{Ò ÌÄKƒà9ÇAÎÖçé‘‹Ä€ó5xö±9pL¨±î:6,YÏ‘}³£\y…å–WzV)ÎH@bѵTŠÅŠN’çÓ(ƒfªHšºV‘G¿[:D MW hº‚îièzÅÌÄïí¢ü¥ÔKãü‘–!ôCQl•*Dò*]ž“½—²ùxJ&üæ}Úí*eWàò{•Ï<¹2A€ÄòU =@ûÆÀ9)ÐL›YOb9¨ÃrýýplQ7䀆 »e\IcPî¹ýtJs«3©xŒARĈ)ÑËo“A0Tr…sgÜRÍê#%ÙŒ~]ÜO¥º9«Ñ²ðÔµ·)ƒðÅ%ªlj0\Ù¡œuJ¯&·?+¨%1&Ï›æ0¶g`“rG•ÉÐ+¬@ÐfPùAãú~)‡kqNò°˜…GP dÒ:ütÚ¾¼élIjàÓJ(‰­ñ¥³~«KÔÔ Çæ£#Úzš«Vn;?¾Û;P©—Z %¦¯Jè°ó*,íb¨€¼eòia?íh’ê^æï<’2‚B7Uåh©|~D‚‡ÖÚƒ´w»XfØ“û€2ÛÄ ¯[SÛ—JYj´4ª ºo°:“BåËãª{j7×S8F´Á KáŒU€ã$ ¡õßZ…“ÏUºî¨ÒÕ€¼ÿ®…ášq‰`Î:Âȹ·‘1yœ~°|ñŸ ‰s`¯Üá9“ÒÒ^V¨þÕvU†Âõ@K– Kãö³_ýti\í>ÑËÙ.ï »ϵFØf8žšQúXÈi.YÅWd¼’êMBsÔZ.µ£ah®aÞ"æª1XúÔÜ3ëŠgk©‡—@…­{TðXÄB©ëý›8ýpߺó.-â(Kµø€zrîèt¬ÝZ†N–²”]5WŠ¿n©¬’ Ëš¨UeøãÅêæLšPf©úìÕ¦®7îÔŠÒ’L‹Ždá•û:wg[áêìnyh-ŸUSTµ°ˆó½M‘ƒµt¢ÑºÊN¬ïgzÈŒÖòåKΗŒãà·-]Õ”Lˆ@Qç̇VÉ4ÜÌ¡, ½nʸŒ–ñ~rE:ÛÐ(N2«é^ÐY5R˜Ö‹ÊGïÇ÷rR– ´_¼Ï])ÒïI."s ^[5 ~ $ÛŒe9Ïʎ㊟w8öÑîRï‹86Á«ÄKë×öwß”z%st•cΣ W¹²YBtMZ„n/ù“¨NÝàŸ®å„Ï-·rÒ2A¾¶‘G®¬ŠÊjRÖãÛ€–.5 ·Ù+”p—ÃÛ¢À°ñHçsz@£qì[3«Úç· o¢¿‚ލVÔì‰ l6ˆ(ýÆ¡W.uÕÎ7Yn„*2¼ô‹/È;zhªU™òÌVtóyA<.JR6ËóÚúÐJ/0¯9ñ »„`P„i¬ã’/=¬Â†ªƒ+si¯ÀpÀ¹Í/)$È{IAêw·¹š³Î¥*EÙ ºåÀ½K}FÃâëÖF!¢Ô…šÜ“7ÒªÌÙH…-øÆ[.³()Üî 2è]ÅôæE³va2~i‘*ŽåMÖDq‘¨¹Ò§J®þB *&èÜô§lû¹øC‘û«¹Ld²Â?;{W–:UmnÞžï/èÇ!Rú g‡’ê^éhYÍŠò‰ÑO|¾Ô-ùjLéfrÿ(T×÷9[¥Ë/nŠÛøa9®9 2IŠžÂ¶mÝŠ•T–˜æ&1e“¥÷&XöŸtTIòâ‡Üª¾[€SþT„±–P†­Ò)ÃËiúj¼µßèöœs{gýþFõ3ã“=¿uzŽ÷9ølÝûë4d!rëšÎUÃV±º !ÊEu“âªÊ ~8›ÃáM& íæ[N«9w54ÖëyÖþ£»¾—ŒT3É~0Î$UÒa÷ê×Ež“Y¿gÛŒM¤'Uœd¬bÒÒDvtvò Ü2 $ްU6ÿEYØô~z¸Œ -o U‘ñÌûzëL"´†ç°íôÙg¤+¡±fxA•ŒºÔ™”+1çÒ-á8ÁÔ /è¦÷Ó»ÐY¤Ú۬ƛf#ª¹‹P祼Æ# ºµ÷'”ãóBy3õ”õâFÜÂØD¨Bˆr³¼ÔãÜÄK›-歷°¨‡¥‚¦ˆaú i„ ¼t>šM«›+lM#ê🱧:¿®K;Ÿ3¯§â/‹;õôKdW§Èå2ÏníneÛqd ¥/—G´µ’û+>Ž_˜xþžvÑôžü2²¾œ®JÄù烙*ŠÒ¸Ÿg_ú5¾ k èc¡—l‰÷{oRµ‚™Ð"ÉŽrŒk ù6´À9•úK ‚rù%FaèÖ5¿ÎµHÁ¿ñr‰‡& )øè¿V£Ë›¬VÓþ‹ är¢P§”ÀT Æ.О­R¿ïOèþqYüŽ$œG™ùLž«~é8¾zï'6Kd“ÅZ¥Q6ý!K2Í޶^x> stream xœ­Ë’Û¸ñ>_›©d&ø[\•Ýr*•ª$º} (H¢-‘2Iy¯DÊSQdÀ.1þ@ÇvßÕ3ä2©w“V×ÕIQê2¶þÇ]òHüš«7 Ý–/‹Jƒ~×[P«e<pœ†s³’§©sÕu´¯’vçÇÆ“v¤¡öyø±>ÑL—/åsâù³çò¥Àå@«ž"@<%*v+ЬÇK+´¿|0õ¶íöqoÛ¦™ÚU 襠ñ(g[ÃKä&O‡þhP夯«ðí]rnMcøjýÉÞFžÇÛxs,òR#ÔgóÌ~µ@É#XêWĽž„snÿM·Åe\ô W ^Å™ßóÃÕÙÉ?û dɪœ—`¹N½8Ëñ:ÝP ¦q\:é…Ušd’šg2/œ%ýq넞yoÅu)ÉÀ^Ü{¥íÅûƒg÷Ž+EyÅ1“ëpí< ñ¾›ó9×ÑȾէóq&w5[PZÞpОØRÉÆ4ý)°™'}Øë‰;kÐÏò´$kxL~¹  ;kG¢äˆ¼5SÝG¿ uRoúËä§J¾ˆ/ˆ&’~ÇÜßœ:‹”2Ù·è¼BªkçEdå<Ïÿ±>0?¥â"½'ÊIÝm#Þ ¾ç9çpXK¬VÖzhÖúaË:#ž™g5O›³ÊÚŽyÆðSðŠ“éIå-+“<©¶ÎÃÊ€sÉ×+e¬JÂ%ÖMó‘ð£e*.%²Ç_£ÅäeÁ…Ì—±!ϯbƒŽ}@ÇY6wvýñØÉž0:!ådó쇠¼.`(§I“&='O+È`º_ÍÍ8ü‘©1?"*?þÞõn›‡ÓÞ«™›CÝíM &—'ögoÑF@«;—L¬ª,iŒ¤E•‹88{ÚnŠÛÞJp ‘¿îM%p-íÖtS}$ì,éþ¶ÁÛ åÂ!©]€%„cC¨ÊÆ 3˜•hs¼[­f¼èßä…‚ÚñÐîÛ®>Þ3sË@Àzw àY¤ÉÚ‘»lœ†¶™ŽÏ¬3fk¶ìCB9;ËȬs)’"êŸ_ÄÓ”ç™ò;±Î‘~XùT}ã!+r®Óœ=/±ÈûˆšûˆÙ¸˜ Áþh^ñ…^†.Â|à÷…\d6GÚ£ÙYIÞ,䙀HPþN9`*nÉlñ*-nË¡_•ckƦ⧿&ÆS;`éØN,}W?š3\„h¼b]-Bk§›·X þ ô™¼t‹0˜IõòkÒO¦ë‡ÿ§ìc£™·ô§Ÿˆ¬Ê?zá™ÌPq·.@~*ò»›æ[V™Xù¬´Iª ‚VÀãk?„ ñÌmX†Ø„¾XÇ|«­g-[_íØb'¬b¨t @U‹ÚGÞ‰¢;ùž¦³ù[cÎÄ„\°d)ÍɺŒs¸Ê(bd¾LüýÆM ²1àC±ÀΪ;8b4#w•å, /0 ÍïèÔû[·BH6+0!f[ÎÜX&êÇvc…À• «/B¶B¶iGY-Úc¹JNõð™hIª!qµ`}>›z ìÂ%OicêS`ÂfôéÉ`VAJ9]tÎŒ0p…%QÈx$\ï©>‚m,Ó¨=Í=u†ä1ƒÛ±rlÑxÛŽMßuP`!á¡=³8…» Ìâ‚v¼rÚ—Tß ²3aÚÌ—‹#míŠ;æÏÇÚ%{Zpµ‚§óêÛÿìuýZµ:§êJHûòˆÛÆShK™^ñŽ´â©ôìáÄ>AŸÂƒ£÷«`å¤%@5®X@ Ê_$LDZ¾BÁ•HX+X¸äË¥>B$Æ¿TáÕ¦*­|Ü{ûíE\T¼’*Ès£rtGØ;¡ãë™,—ÓÆ¿üò¼cáá1 pž¹ºÈOÀb=®›ƒ!Ø:½uÑ>~ ^C2áÓª²¬æ¥í8`|2\kÊ-. EZøtã™X¨ôgZp§—¨:ÈÀš®E¹–\Î%¿×3É¥—š‰œg™Ž ¥ç¨­&sg(™´æQ: Iï7†€²äSßvÈ?î-ÀKnݳn"À­ÌÉZ(Í×^`;[Ê*mß|—㌌ë<Íf‡ˆ«Û ËK»&"(û}œw¦u/W’U9‡÷í³[ ,…F©­B­ÄÌËöæeoD¡qìÙ£èÙæÚN" /f ?Z3)„Ü»¢ed“«ù%äëž5C?53÷®Ê!é!R÷l^j€ù¨b«øiÌ‘Ù_³o¿åo?åÙ»ßdÙvíJžÇ¾X55&pGúÌLÕÕm9 Èsm×âu¹… u"aÜÃN‡ÁýÂg:çëÐÛ™E.•ñ’|ò–ÏB`ZÏR $¦Ëd<ô—càÇåÄÀ›‰¼]ÆÀ5$a{AÞý´æ2SÑý6ƒkKŠe&±†§\7 )ESû`¿¸åB.o*׿8õö¡30§¦?úK=¶lê/PI hóÊÕqÞ.ÐpÉwÖ”«½ZâZB7Çz ’p=y_ï¸)>‹‰ œ“ž¨.Iƒ÷ÙDúýiè»ý· Ó êån?¸_€Bm©›×¶Ö<ï ¡À¾ª†ò 2ª·ˆô±ÑýæŽPºZr阊ˆØANäü8reÚt‡È‡Š6`Žq<Íz)AS14Ø2¸àÒvÓ'?.¨°Æ15´F¿’];¦[Í­+`U¤Ë…Õ „˜ëy[}ÄwØ4—sNÏ«Ê#ßGêè !¨ßQ†äSÏÏ õ.¬N<£‘#Ù½žy;ˆ‡q^ÓAcÛÙ8´®÷¡ÀVg"B}f— F쀜êjËïlg°¹Ëìã|h7;ëòi^qá»|îy€1éÍ¢BÌ/4<8}Äù=Å¢²í£€ñó¶ös’oëáL„÷ÎŢζÅulÆUú³v é½%¶Œ@•½ªUi€SyÄ}?àvNc W¥+üèƒß`hsŠøŽå€Y¡={‚ÔÇz€¬]•zV,nb6Ú·]‡5¿íoÛ*##ŒS]@°ÛÒFîë·QÇe+X®]ÑqOËÅ‚LK˜PˆR^¤UhçøÐƒÀ¸¥&|Jñ)”7‹D+\‘è l xéŒäßOq\ãådÆH=~y°D\ð·•>X¤z¦2¨ê¥ ×Bc`Ñ™°µpüZ$ÊܧÖðYEPxæá³Éðãï*—6—ÉÄZñW3²‰íÿá1[ßý ~ÿŠvQendstream endobj 1598 0 obj 2657 endobj 1608 0 obj <> stream xœ:˒㸑÷ú ÞLÙUà3öæ°7v»ë}Ô†Ýs`I¬=©!©®®ýˆù‡é/Ý|¤¤ªOtt7L$‰|C?Eib¢ÿÈÿÛãÝwÿU”eô2Ý¥ÑËÝOw†À‘ü·=F|D”*Œ‰Ÿïx‰J•E=ï>ÅSsl7ÎU‰ËëøÇ®ßÝ˰4qÓïfâ}³1uR×Yüec²¤®ò*nx޷ݨK«xšÛã¤Ã¸ëý'àùïõæ»nl·s7ôI˜û÷an=™:~íæ½_ý|h^–ÇÓ~8”ÝÂÄý0{Ì'¿‹ÏSŽX;Ãùe¿ùáñ/wÆFÿz÷øûOñ<¶Çá0LѶ飧6jv»vû];öm3ï#8DÔã±9¸9NÑð5ô x/ãp>EÝsÔ·ÛvššñmSäIšVqBûà­Ur%¶Lj´nlÒÄ&ƸèÓã¦J“ÔñØí<ý KýmÚ4q™Ó•ûdas‡¯T” ÷T;·¾1BʪØ/9£TdTæñ<RÛ¡ŸÇá À‚/i”ñiìú¹ë_”RÏ Tf>LBñÚ:€Ò¨ ‹¸Ç–Ù¬â—ó¡Y€à.uÏ¢ŒI¾æ±œ’@öOítê<>pÔÍÓÅýöpO Yš&¥…gù6 ò§Ó¡C•£ W,±Ž›ÃA1ìÖFùeP)üòªŠùEuâ{¿_Ï“Ž\MŠJßY?‡Ã°± 9ìéïG~zól ýb ÊžI‰1 ˆ_7h¹E–Çø›'¿ ý·{OëXoISë(å¨<•Ň‚û¥yøÐ % ¥B"¶@…Íâ_žZäA.‹_× ±ÙþH¼ØÔÄí¼öÃ%¡9q| fšçyø–,–þµÿÀ¬d²ïži>¶4Pi¶Þ<؀ٺ´šÔ—l`êÅçðÀ`aäFÅ™Ñ(§ÒwÅá<`£Ÿ.f:¸eÐYýåT.š–ÚÅy.ÉZP@# ‹é <”~‹aOaÝg¡Ž£¸ýéÜyâ_@þ`9m?‡£?d«~€†©sù¼I¼Øþ¶o!~Ø\cnÔøûÕý&pàÜ~u<Úm÷39|^îÐ6÷|Y4Q.ð+¾Êv—(µ‚PØ{Þ7³ŽT pP–ñOçæ[â§KçÔO× cïãî.þîëæñïë¨\±LàŸb9a¿§ÅÞ¢žÂ©§l=O§"MàÌ«$2óàRˆ26Ðâ,~W'êVÏßµq§w4À\¾t;8“ý¥ßËLÊFÉßl/L²ŒÛ¾y:´:²~8ÇîY¾mFžWç÷Í(?µí‚­]7!ÁÝþ¶àK, „n2ª3eâ\.Bÿ4û(z!ü,KŠ¢®Uø«¸ Ñ`aFIØðq߆#°ö²œ ‹&äÌn·$§MííÚg0ݸ9æh8a®3Ep‘ÞWt#Œ%œRL÷¸6Ì=6ÀÄ[Ž+‚ kO-üÓϘƒ´Ív1Gd.äA!»k’¼*ëµt"p _Ú+=\,Ðdòeiµ>"|mŽ'ºw„€wÚ6 ´Š™Küd “DhÜŠý¼FB©nE±^IÖ9=µa^ÌX&Ê£ÐÙ/¸ãt¯ € rÚ áŸ=2o÷9>÷‡náˆ×»”y护¬T¿k®d¬^wX=À¤«b3¸_ÿíÈdùÛŠÉ¢?, o²ŠHzóy#p48¥¸ðnh”qºLßΰÛ|~ST¿î[IÖƒ’ÂöÃØý/H¿¯/ãø‚²dé:&'ÌîÆûó…?.¢çÒš@Ú•M*·ÈHòÕå~ŒÔIƒàö2; häx•‰?C†)¥a쉜a9Š›¼`×Û~‚»»WLQTfxBqè|Xõó×Àû.]œhœ»-¹cAê=L«S+Ä­ó6hj*¸éü4AHæ\dI¦x+}%˜3js8{Ð4€Ÿn󸌿VT1#ú¶A J×Q¤ÕoXÛvGG¥JóÒjœ­ÁëX±š?\EÎ4)Lª`8<ÁŽÎAxt~¸\]$…ºý{á‹›%“l!zr®(åx|‚׈ÿÇô¯XØðêR#½°ûˆ]JE.|?(0Ú/°ßÜ0Å Äp¨Y,®ôjÒ¿CépDÇ$ܱÄ¡ÈADKwCAån…‚èÙ? \R€,nE€@a¢bšµZN<ÙÁ3á§6Ì/”2ØÄ+sí‚ãªî 1Ãq`ö”ÖNgœöÄpÓë¨GUï),èž`Õ¤Ù²P[g†ÃJ×Öäé>ͤ$2áxôÇÍ|ÂbF6Ï©=6¨&9g@¤l(‚ñÄ"S]¸hñ ÒG®¢¯jHÞ¡ÖꘚNSÄœ¯J¹Ì(”Ú" ÝâÔÍÛýý‚¿~·Â Dnä馰ûpìæÕ¡Q-åŽ È´°³-CpÔ$`viX y¼Ï_õvý¥ó›…{]A'ÖÅM˜å.”\Nñ¤©$üIT¦!:¥[9Ð8B8 Vç“CÂÂ3ZÚô$ÔjZ¸,´–µÕï®K+{»´Z·$¥´BÆå¶Ž¸ÜæQ¡ãšœ „%ºº«È†ýÝ̽›pCÕ]»R°¬:«uùÓGË?±Ó–ê ¸QžÝ ­Ôh½ŒßOmXá³àûprvˆa|+'UR×YÔƒ…4ª yIü]u—¨,ùõ|§,}ê,úô? ž˜¬¶‡¨Dýt> ‡úÿzÖÿÌ*9&z•Œr" PÃêßøÙ¡ºxvȸ(á‘ãN®¼RoCϓٔKÿñoSºY¼ާ³˜8Ï4ºÔ¨qTuY“q„ à´¡¯åÙ9È&Ø?žÃ÷ë¾óG©¹P1ö¦§…Có¦ÈàÛBNòuNÂÂÇ+_êwÍHQÉPº³ Z0a–+TšãÒÈú¹ìâD„à Ð• #¾¯™täÊøÐõ:‚¬ì]á© .<õa±\e$FMlLØÉ'x46×ÝL¡»Ø‚ü<ýpÍùp°üÄt(h_±<Ò½`@¶·îÐl©Õ1µ…Åù«ÐʦwÅÎ[W³…-“1#Üíu¯ŠúiŒ‡¼Š ä?_º|K„%ÌÉzí1Àß÷äpá·ûq±3VŸËçWß%Šð­m¶gX æpYè7oxÅiN½#j?Ë÷ò÷N¯p&«U§iäÞn¢¼-#™É*Hð*õéìÃ6¦Ä|ßpfYšd.5¿"Àɾ©$V^ Š›Ûãiñ¹PRòAýrí›Ó´k%ƒíy¹’TTp~¸y0†ÉÊûé"FôBÓ4Ã6‚]H Ô‘_B§ëp- ‡rêe} ìƒByÙC…9 pÁ‘ÜV¯lì;½bÛ*‚¹;DÏç5‹‚nÛ&W7øPÔ‰+K8'ܤÉ$VAˆ¢‹¬€ýw.Ò$¥5>S™ŽØ%0DÆ‘ÔömäÓª‡e%«®2eÆáL™—ö¡»¹¡¼户–Bªw>>µ²¼ªAI<÷þ¯‘c9lá`+ QXî„a”Ê#QÃúbnÇÓØJŒn½E ²æD_wMœ0©˜ŠÐ·>àòšÝï5 ë±cC‹Ã[$±wG7OeßÚN©¡ËP‡£®(ÒŒ¨yôÔŒ—Ýït5LÅ ÎD }¹ÝÈ`4íadp¡ÔK×= ‚XÃ5. Œ&Ô´ôJ^¥Èmg]Â"ãk'ÜŽäÁd–Äò`Í ­– ‘­%€ñÈrš.ßk«³|[Iàåûç°_ð]õÇÖùÙ¢¿É —´ù"åöæWä‰Iù‡hmJïoä>uš5‚ßN{‹2ßšå82Ú%Dóî*ì>Ý i÷JHÞ¦è›*Aß\ší¶=qóIù|réæ%ªØ'¤ìlŸÍN ǤE’Ú`7}н]=kͱBtáºW]&"YžRü~F›QRše„n$mÓ8¯ô_ºá<)Y¬éé´yÅù}Æi0JK±HZ ÒÊ3/-À#Ù+þÒïBÄ\KpYø±hßàÒA5SÑ£J«#P‰WîªÐèCO(`óÜ ¢×ü-úB{`¥Þ63u‰p¦ÝGYzËQÊoJ@Û ŸÜÌñ:ØA*A=X[ˆri‘ß´6›ä©76~m•ú!ìÜ.~/A~ŒÏÁJ.Gòü£ë0.-p˜- ô98.Ꟃ }¿à «}7ÙâÏ8ÍvG,/0Ò¯•ö§öxùç îÝÆ…eQý–d§JŠ"ÍEÞw:ÖR êPÂz>߯¡¤ý<¶‡æö u âÛæ’%ÒÕ`Ø.Š"\ WDølŒ‘Uý!–2«ÿãèÚBÑãüׄW[U”k\‡W‚@uÉbÁQUg\F1àƒr iÚøçç¹åªƶô"È´œa´ä1[#Ú5âubW7 —fÉoÒ+|;­nëÕåMó1}ªŠ¯í¡Éè 1ãçÙPÁ8[-6­&0BhA¥õ×Y§+íÇáH~hCßúƒ²Lœ€›%»×a&/ÿ²0lUY­@™Pv±ÅE£K9)å%„UÆ’E®M¦[tÏÊH±<æE“%L‡—Ÿf +»þt^°©Ê¡óG„·Ä=5ãÎ4,öo|X:žs÷0½òcÀHËz¹§óÄkÿo¬IŠPrq#U…;÷é&@Ö¯¤FïVèS³ŽD62«LÓ*_üï\ÿIrDàòZ™$nͤxi]N(òÂÐßÚ~§Lún̓)ðŸæR‡MAÉבŸUS»²]ÉÂÇÊîð32n(ô³LMÃ@˜_õÄÓô[êYÓdÿË¢õ$n*[ekãÆQK²¤‡fںЇ‡UH²à¡Ío‹H©ËªëD÷rþgÓÂ/EoánêéGÅ͵Iwõ2™•î‚-ÀÝeùå-À•£k]Ę©êw›3º$‹—éÚòÙ{,qývËí ý±áÙOáûù¢ö ˜S{e$—…3üÒ¡4±U\dÒÑÉ´ä{80W‰£\”OËëÅgM¿¾>zÐ^´«˜`W=ýl?ôÃyÔ7R¸9 Fo¤q´ùä> stream xœ…XËrã¶Ýë+° ”Ä ð,“ª,’Ê&‰nUªìY@$d1‘H IÙã|D¾ù6h‚¶fÆå…¢ßè>ÝðG–g‚åþ/þ6çÍTuͧMÎ77YüiÎì§’h&Û6O°Z²º2lwÞÜs‘g2¢d÷ÿ;Ín+Ê,BñOóÔý»½3™Ñ¦6Ü}Ø~Øýê…é2 “Ší~Ûì¾½ç»c7mïdUqÍÛntÍÜme‘£Ú XéRsç‰t–犟¯ÓYŒæûÕÉa8†­3rmø³kIrÁ÷/DVpKKÉûëyïÆ¸‚w}2f>º´mÿèŸHÒæ!Q ™¥ƒ_f’«øäNàyjÔká­;l!ZFæ‚ÛëiN2 +ºµªäwÁ¯¸êc,$Åõ0x¯ê2 ìÚ·n<Ù—øEƒúp[yQÃmaŇ>®k-ă‚7×qt=QÖàÐl·Â`hW—”A Kì@b›ùjOéð0,²t…NN‰x>Ú9™Ñ  yº }K2Ä-+Wfz›ŸÝé)x¦*¾:÷<¥vt1«É>U–™Vײ@Ù!ukQÄÔ-tV䥯†]»8b²ƒù»¿_ex¡|Ê@vÏζ]ÿEÕ}%Ó32@ò_‰cÆJÁx§Rˆ}a‚~ 'ó æ{cHL!åˆmõnl¤1™4eŒ e |ž;eò¬Î »ó)û:B•ÌjiÞñÐ Éøó±kŽñƒªƒË(A„Cà†Â>¸¿xVü0g¢”ÜöA¸æ/$[ñá@ä1@¨BPºÞ (ô6&*ϳ²|/]”ÉrSJ—‡í¢:9$ñÚ²ÛŒ„ Ì*Šƒ–oµ”u&=PvhÅ]QȬ*uº‰~Ïötza½s­kÙÐú;°—áÊž·"‡hÍ c6Ä–¡cl80ºxF(µøi9Ÿå ‘9€d^¯¯x"?S’ƃ5 šN¿ýgoÇS׃·ß|¡Çü¨V&Uɇ&@Yãâ7#ñ¢q]«XeáD}=‘H ÞX¸—)©Àd¡ GÂ%÷fŸâå>Ëã<Ö‘ôd\ñšjäpjÖª!V:ÝâÀ§ÔÜ´Ö·OþÜû{†;)Áʱõ•]Á àö@»Ø"põùŽÎ÷Î÷fÿ2ùy[ab”<#Š2ÎAx À=µi»_D©¾ür {Y訒?Ùóåä¾O\‹å ê2vˆQ‚M'ípÝŸÜJoÈ®ôaìóÒ;æã8\=ïEeP”_–†O/ÓìÎqðÖ"†.nð‰ a×" Ó똎ñ*ÍÑ÷H>€TÚV€…çË0ζŸÅeè–m%qÜ Fȵ®æ8Œ¾]“ KçŒdÔù jÈJ^ã5-‚NËHÙÃ?8ê(o×3{˜ÝÈœmŽŒòÇ€™ënÈþtŽÙÓ4°Û~“`€&Ô¼ß[ó„t… o§O˜š$¸a0‹(¹à ÌØ\ØGœ6͹µ‡„¶`(dúËÁ+Ú—Æ×]GŠLUš>ãÀ‡'/—õYCLeE#lêêÕHç9kébæ“<@ÃT޳6ž„ À ÅCIvó1ñY:0_,l:olŸ6ûնƨne¼á ƒ7©o;9O]GÄðý«Zá<¶Ú]gg{J£r,#¿Ž£ìÛÜ©D¦ëjÐî) ‡ì?{¡5°i³4êwÆ8´…p yg¬ ³ EâñÈ-¬·Õº›iM¦Ä¼žÃ ƒ¢ ¹õnµ9$¡jƒQ쾤 &tïüP*««’æÞÛ³ïÎX4µRô<ôå¢Â²„d0˜EFËÔÍ,r—8–W Ÿ EAï„€áñ†Ñëå2`¯ ¤ŠÒe| D)ÐɽC¸•jÕÀbÑôñ»‚í”öÎõ´ƒiÔý×»6íC>£*œË_×'ƒVUŠ_*þj$Ê’µ»Åt`»y.ÝÑÁ·f˜–ÀÑ*ö@)ðœÔâ±¹yïÂ* —H}m8Û>£=<_{’^¿™ãÇÇg9ÿšZ%ñŠë•¯¤´„dà÷ÝL,fe4åÓRÏË ž‘‚É0u¡[GYØããº9†7;…h^ý¼˜…ùò ã¨f÷}y 徇áI (ØJ4µÞ75-•&{öÀcÕÁ§bY!¤¦þ»·ü`›JÇ MUúaË ÚCK<Á`ŽGZÞöÂÒÀ QS+$o x;®ãÅèèÐo6RkŒƒ‚Ûòôã¢,£³  <Ÿ¥ª eÿœí“ƒÇøUµÿ7Mͽ†'xm<€EðXòùónó;üý{B½"endstream endobj 1613 0 obj 1824 endobj 1619 0 obj <> stream xœµYÛ’ã¶}×W 7rfh$A0Îm½ÞM6•T­½J¥Ê3© %q$f)RKR™|„ÿÁþübIÍĽ¤æaÐxÐÝ8}õ…`¡ùsÿ7‡Åçߨ4e»n²ÝâÃBÐ4sÿ6ö劖h&[Ý-ì{‚‰,Ò0f©ŠÙê°¸áBìå>oóM_´K‘aóŽ•5ë ˆücÏî–2Äc!yS÷Ýòï«?h0! ôµ’0¯eÊV[`¾mºþݦ-ýò:г R1'4žÒ=ÖüŽ­” Þ6{'%‚çÃ^Yäö‘ D¨a m´Z&„™ñòPt×ß4‡¼~¢ŸŠƒ(–Ê¿³Á–yYûm2Þ,Ed:Ñü_îpó< Co…àǶ¬û²Þy•ùÆ»® ü³Œ¿n›Ã°¢-ª"ï §x ®HËk‘© N<è÷—¿-¯c¸SË„ïÊ¥„uB©©b_ó|³):/‹ˆ÷§<¯*'Dðý¾0 &ýzÍ×ãòCþžLôòixZ5wãø¯u¹i¶~2’¼¨!ãÝ+¬øý¾4gê± W³ø½ß;LA‚–Üa¼ðçÅê³›QCx-ŠàEÉÍFaQÞ;Aƒ(m1ÌìÚ"Ÿ¼hŒÏk'©ˆKf|qµ/†WU:Á£ûCñ"¯Ü’Dòûed™Šž?t£ªåd?g¾Òg®÷K×7y¬/æÈ7Æ+]Ÿ×Û¼Ý.¯eÒ‰¿x÷òÍ'J•ûQØ¿p]ø±!-øP÷…G éLc0žXh'ô·‘¢¸õkº‘°ë¾ð°žcv÷ȺÒbD'‡l°öòl¿®ØôeS{ªþŽ¿:Å9•ÝàøðH'‹(HÀ©ªìL±bä¨O¹ÏŽcuÎ{z¦I?ž,Ög9Œž!rÇ 'æxνã_¦´våµÈø}ÙïÏö)ÛuŒ" $¯NE7"ÜM½ '2EzηŦ<äv‹Ûh™wn,aŸc_d¾eÆjuFéÚ8?¯n—"޽Š%³Œð3?^F±(>œø…ß ™û~_ÔNB’ßßÕÅöj|/ŽÂt+‡‰ß'nÏÕ9Ò|Àþˆb´GàÝÃð,{;3 ¯X× ÖÜ1"(9Àù[ìPv¨l*^Sm± ^`3’öiµ§Ô ¡•Mˆ$À“&!úq?¬ÊÔè'šTƒŸ\J£¡¨ÅI •°ŠßÞÞ•ËÕ?ÏJ˜Œ‚8Ž|3ùÒí’L·Lù÷ßý0 U¹[RuÔðxj'+h¬yݸ1 WÕԻƒ+̦ÂäíÃR׊˜_‹×Å&ŸxB9–ЬA5YÞ•9…Êg_çòSRÝ—ÄêƒyGà*À:'(é ³‚±Åh@eÏÛb^ÒÞf¶Ì×Õð6’p¹í÷£è›ÈêÊ~\XúU @—‚(å÷(+³G0.^ úNB„æôxôÃ—ÏÆ’צ+)¶ _ËÖùæ½-.)2NÇ6Íá­ËªìÝq€ÞƒÓÙ¶):V7=ƒ ÏÙ÷wÕìÉù³s·+j.2þ˜êo‡Gf)BTž%NzÃi ¥{#É”ÛF’ÈΘ_a ½ñŠú;%\ų›i†ék?!ï ™Þ.ý´:Çñõ枪IÙÅ4 ~§MÓ¢ôäŸsï›Ö)’i@õ·pc¤Ý÷KÖWÄhmlv¿¨ÔÓZÍMÕ¢q’N_4¹öp<Ù>„–ª§Pš?¬œm0®ñ‰MÊùÄ-®ÆËzTØÆ ÓÎé«qúÌ80Éõ3nýYwâíÚܶÿˆÂ‰"ãî¦ ­ÇdM¹]jIšÄjQꦧüé齈ÆïÖwuv^áìUèÞÎΑÂÐÑÀ!Y¸É¡°·ð¶Á!0ã$sÆV’cÍ ¦Ü!õ4—¡ÐÿC›ÌLdƒÐ5£VÄ6ï ãk{åI9"HÁYºB8Ñ4Ä£<µ <óÀ¤:Ú”^DVM7ÎâUò¦9]z@]w4½”½71õ† øýV0*óæÎoñ‡æ4NLZÛA[5ùÐâ_?Îî8ã 7)|À©Çu6¾‡þ×±)ÆY›ëØD¢ž´w6FÐK\¹I´Æ8/Pkl…ÔÝn¤m ;ÛVæã.rHíö 1é~—õ§È±¬ÿãqU:£0s ÌYÓ‚>LE¬„OgnÈÞ’|4·>ŠÖ$}[#ðVfÚWcgó†0s gyÇk#B¸5Qƒ6Ux{ûX£Èu) f^­_/v¿Ù© Y"³‰ôãjñîG¿^Àv¿µûz¡SÔb–„îÛÅÅhw0“òWîpл\CøÛwÔ2.¯´–æv8~éx|Z*ÍE<&å‘mÂ'¾“ uÆuÇÅü‘®íŠ †˜Á¸™T”›*?,¯u’óÅá'O”{ -g¡)2¶k¤öTkdü§@F³ ÑÙ±Ü!t”ñÀýŸ]€Ï¢n›ªÊÁÚ åÀ þüÄdñX´6·à o*þ‹ Õ,d~hG¹Xá¸ÔOž½¡‚…"‰îű˞|˜zzd>Ã)­i›O/Ð]Ï»…²®Š»ÞP! Cnù¨Ùó¨m¹ÛØÈ\Ö»¼öż£;DfÙ½7‡§ÇÏ.Àür^Õê„ ‹J& Þ//À{9‹‡Æî›X•xuàW³€{jÒSôGºˆè¦#U]_€üê¹P(Vgè<¡kpâëYÄ®Ê;\¤²‰ ôüüyÀh.ÞðmcNÇÜ­^i—%æãê?°G Y¨Ä Eˆˆ b Ÿh’¸-j1ÕežÔh½ Ò…r[vmólÞ4•¹dRR,ÿêÀy*wÅ¡t h”BúÅ ó|¶W±L‡dõ¯/À›§3ºs¥ÈpÑ1€¿¹pžÅÃ]DùÛ çiŒF§³_Ó,ÅáDüwÏcÆóL6×LElüýhó½Á –˜šˆáÿ5(’yKpi ¸oŸ·*™'ð½×{ºXàÅ‹ÞÕ%‘hÓöܸE2ZSêA¥P¸ dÃC‘ørM[ÓPK¿éò†k‡ûaË\G’høeËþ¢¥éç-ó9ˆÝr!\ £®õëÅÙ˰žendstream endobj 1620 0 obj 2387 endobj 1625 0 obj <> stream xœ˜Érã6†ïz ÞÄ ‰å”’4ö!·¤t‹gbš‚$&)sÉŒ'™y—ìkeß÷ý¹ÒMR±”L°bYÂׯ ]{4`Å×ðžî&O?/¤ô6õ„z›Éõ„u{Ã[ºóæKøŠ C1o¹žô㘧à ô¤Þr7yP/üiȸ ¸$ðçùw—Ï"\Ň‘4$Œ]®`ÀU’¾\çI½õ§2a 9Œ†Ü›öc¦,ÂQ县|i„ZÖ×Öœ2bš*Ûl*åA“»ÎF$ušeiV¥í°2A(È=ìù(¶-V¦ªÓ²2@Õ1”ƒ‘-T,º ÇE¿´Ô|S%>§¥yÅgQ U¬DÔvÜô‚`OV±Üû <—‰ˆÜög¨ºe|ßa³ñI”ÕjmvY‘xrÄ¢SôÜù8wÓfynveÓÛž`²;“>t /ÆÉy¹ÉÒ$/Ê®T!ö#ìÙ8¶êMEƒ©l2Üf…F¨À­ÉÇøóqü.I«N¸Hå gÔ‘sjÑß`ƒ Îe«§$ZùÔÌÆÉû¼­A-H[²~‡æ@µ¸fs¿rÄIY·{8lÊ [+Ù5oŸ;°¸h³…:‘Y¯æ/È+MÒ¶Á>'„‚Ãâ}é@´Øç®ÅÛ ”×W8‹{î“*îlÝp( ©TäkªÅ5¯|ֵš´°™ñÈcx~oÐóLÍ "AÕÆ kú­S[¼¬8^}‰¹3ò×î‘;hdÚ¼7Ia ¾wàºzä`ë1¸$¦üƒÚb’PŠë6©ÀÆð>v•øÑ{ÇŠÝ&ùV³Î~r`ZŒ·ÛµC²`8±†.È?;œ¥óóã³ôÏr”^·¦Æ.àÐ/*ýâ4–hòùÅ!ââä¾4»´Dœá u¨?½2©³@Iò«KPvô)[ÐÁ­T¨Q¨¿¹Dà'îÙ"ôØunºæ’*òíVwëï.ñ“xmñ†„‚‹ Ìè—ÑI„Àá¶™“ÞÐÈŸ.Aâ“ ¥-HÕ·ø]ÓLþ²o…Åõ¡§.€`÷w¸)dãM9ïŽÆ*# ÔþŸààÃÝJÿû‹ Ü˨âêb ½÷AªIŠ‚ç6CR{Yᶺ,{ã­Ë¢©½ ÂØÐÊž-'ÏÁë³S/endstream endobj 1626 0 obj 1187 endobj 1632 0 obj <> stream xœ˜É"7Æïüu‹K 5^ª¼3Ý´DƒÁa”NªéŠ€Ê=J.ù÷&û¾ïû¾¯×ØôÔ£3¼'ˆnìŸíï{ïÃu+á™Hx|mßÇó凵1ÉtÕáÉ´s«#š'Û·ñ<¹> _1J%B$óÎfœHœÊTb´N†óÎ#Œó#“v•&“†žÝŸ>:|0 ZšÝH^d&ŒN€£q9©f3Ÿv“y¦ vg;â.ª»ÑùfL€Ø6¤÷8éM—>.s®ìv*òÌÙ²2íÚÜÚ}Žuzõã‹uD:ì˰ç)ˆâ1 1®–ã‹ùÙ¬LE‘q¡{:íjU˜L9öx3 8©Êe¹ªVA.4lëE å¨Mécrõ£\’‡ ]‘Ë…ï)Í^¢@“«¿“ËY/S=€Àäê·åj”2&¬W(¬À”êßUÊr¥#åU„ Ç<>yHÿõyÚu6ç™c¯},Ú‹¾ñ,²èëj6‰Š•½N!È6a€Yk°ëVË=k))2kبPÌZƒµ”3a[oR9 `ÎÀFÀmã.á‚N‚½Eဇ 5€B½M!h@Àü;huš¼òÁ¾æ°}ç³uõÔì™6ÂÆ³y—²r6ƒkØÊW3¿:}ŸGµß£@²Œ0P¿O‚¬a&A@!€pa&2ñ‡ˆ™f±Ñ‹}D€X¹‰ÛÍÔE¡¤d»óËÃùYË>&عwØÎÃóz¹3Z¼¬Ø'”ÕƒY­ÕOËåÜ/&OÌÂiÂ*(ñ)ÓãmŒÇ íwϯÚ¨°7É>£@AØxL¿ÄFžbŸS m<æhßrt`8¹I}ƒd_P€ i<Ö—ý¶/;‘븧/)5«ߪ«]¤|E¡€€ñ5FYV‹i؇*¾Æ‹¥§‹Ç"Â/!—åìÊ‚Á=fŒÝcÆ—÷+‹¦¿¥@@´”XllN]L¾_/E80ö… B§ÄÊ¥Ü+—ï)1%V.åÁrù‰Sb^.¯zùG äL…©VÝ;® YàØO(È “«ÚÊå¸Vñô~¦ Àu¦Âäªþ7¯Ãu7ò~¡ð@U˜ZUëJ#D ¿â}á¹Ò”ñJ#x3!û°ê3 ¬%/v-9d[ŒÏß)35f°úžÝ@áûƒ‚AScöªwÝÀ¨æçÙŸš³W½× ¸lüUÈØàþ¢ð@äÔ˜PõžPSàRSc®[ýÆØ"Rþ!8¹ÕLªTƧ?ƲÛUs+³ªIÍ›¹»a}IWÊf¶$N%…ÎLîbóGQØ A»Ë§{ÜeÜÊ˧tç~yi,?^—áSô[¡Ø*©I°Bã?zÀ:9«ëUrÊ„8M›%ô†‡Âë?q%»endstream endobj 1633 0 obj 1089 endobj 1637 0 obj <> stream xœ˜Û“Û4ƹ_Ã¥@¹ƒ)ÐÚv%Ùòå1›¸Ùö &o ®âu›xš8î 7Ð Èq.Ò®­sèdv2YKùïèè|RZÄ£©_»w±èÝþ9Œ"«X÷ˆUôöèö±µ{ ëd,‡D¾oQjÏzÍJ|µ¨šu +:°ªÚÉ %7U¹C€;ì”{lPï¡z²fºS;íÀ“gÑfÌû­ØD>W°Tsá!à†Cé…YkýÕ~€QKéÿÁN;°\»Ý[—6àTsà€¦]ÎxÔß‹½Ö*6öu±šÝæ7Çœ8>ÂT2 4½Í§{›'Œ6¯¦àcT ¸–(”üÅNŸ º4 35tNUõuHuŠŒ¨Ù¤?ŨŠÍªÊbÙ~ÀQ5}†Ñ”˜5aRŸ£ŠW»r¦@?L;ûáQÞ¨BÕ®¡9€Í®ó%J­æ±#è3ÒR$î8G»òW¨®¬YnEQ´ÝÁۚšKéÒšÿŽ V1z±{Ò7¨|hž\@¡‡®E)Ø@9ùȉŒƒã¦]j$4”5Ý&ÚBÜ”5² KQõB3«åb‘¡tÝÀèòͺÌ4EÙ÷ˆfšóžBé´s;wJþS¿LsÝƬ{?w%ãGÄ2› ÷ôA¶–÷&fyÍ^;k§^ïË·Z¥ÐX;.3íÂ{÷O³=Ü­æçÓ¼…˽0<ÜJì+‘»Œ³í)ô¸q ½(¨E7ÿ¤|çÅarøUš$‰Ùá¾=“ª÷m(U.?Õ?sß^[ó¥UåÍÃT\e•ËjmMlJ'ÎVW:îý$_ÿ¡K+7endstream endobj 1638 0 obj 1082 endobj 1644 0 obj <> stream xœ•˜ÛrÛ6†ïõ¼ •T0Ž<ô”ØŽœZQ¥FÖ4i£v†¡i™E&””ÉUŸ½$MŠÀÄ"£ñÈ2—þöß]à'ôÙÁˆ8¸~µïñnt¶ò|ßÙîGØÙŽ>HsÙißâs±®B|ÆBœõÝèñ>â„ 1Ç÷—Á×3øzÅe‘kÉž´QOµ`V]—ÁŠbœÀ½ägVŠ/ÅG#ø½{ý¡LÆ”£0ð|÷˘Կ‰ÀMN· á«"¼TŠå’v¹„ŒÁ¹ôu™@u©S™vÅÕw¾Øyòè<‚D× +#(5€zEgŠ6+º-Q'ù…-D1bdU¨,ÙïS@±QEͪfC^ÀÚú-ƒ†ˆU×%3·èA«ƒQÚ0­\]—fŸqyögÿ³?‹Ó2>îî²dL„ûU?òÌk3àú <%!'ð%ð '€0†’èû)lúéký:.v»hpN4lC=mg«™æiÍ4Ž|ÑFúiq!³3k[&IžEùm›YÀjš©èü‰ÙNæQ|<è ”£ê?µA¡¶ž ®âŸÀ͆¸òÔüh35ÆÚΡ>ö*‚TÖ´K#-3Ódm?Û84S\qþèeéŸ d•¿XõrªôàfCÜÊ;pç¿ê½+Þa6Äye€ºç=äf7Ìô(évõÚeeWçD©áл}íïuç6½ãô{¸ÙWžÕ ›YåLæ.€õ¿Zÿò>~ íã WqÏàæÃûÝi—} ïè\ghaïUS ¯âfgÌ­½êÊÂ?¸¯ôXû‹¡µ/k|eÕÇ@é#À͇÷º“Úß,úš+}*ö‡²øt¯Jº%r­•Ùªø¹6Í·@g6³böÃD ‘ŠöÚfD”ƒã8±.O¬²¶¹ÕŒ(~Xàb,éýÝF¯b‡KèpºüŽÃ©\‚…U ®”@¹M.ÕS:!ÊEªÊ^:Âl£Ëûc¾-»,:B[àc-ÌÇÊÂL“”½±Pf>X.§E^·¬4rÄä@˜•dŒ76“"c\ÆXrÀ:ik-W¨ÚÌfµ‚¬±§ýiC3ãJè¼ÿrã­Í×TB1©`R«asìU¾ƒT6\åPWÜÒð@~Òû—•^åPwÌÐÍðÃçÝÃóßß4lBi*åMˆS‡Pâ!Ÿ×ýøGⵎž¾CÆ!ÂíöºËû¨<ípQ|HªOa,˜»wÒÜ©R£õg¸_Î]‘öÎÆ%d3ndM×£7Õëe¿.endstream endobj 1645 0 obj 1051 endobj 1649 0 obj <> stream xœ•˜Ír£FÇïz nAUÑdfø8®ÝCn‰QmYÒn‚’µ+ `¯•dS•¯CN¹ä’JÞ2¦' Ó³¥r©0 ¿þ÷ôLwë΢„Y´ùœ¿“lòÙW¾Ö¶œPk;¹›°ö¶uþJ2ë"’&Âq,Ƭh39=ǬÐ!Ž%|ߊ²ÉҦ̻˜ÎÆáÂ^­ÊO¦¯¢/äƒÌç¢{’zDÈg£õÄ.㤮Òiô¦5qÂ΄{ÄñÏ6ËÓí=ã#Ô·fÌm Zê%¤^½ÖR—öU²;$u¶Ù§Sæ’0ìwOO'\âºüìÅj5à† Ÿ4€~|®¨Çü(Þ° ¯Lñ\ ħúð_%éz·ßÇ µ¿6’þB‘ŽËq2PüµbŸ*Šï1Åñ¡È½ß˜èõ™¢á–c\ 66QË!5B¢éÖ—É«“Ù͇`’@Þ‡d’+„\éÖ7ìl– Jöå}HvÍH¤£ñî¯{Šb„[¯° Q:¨×•÷ÏÜëw/ÖwuL]CZJ5Lk·5Z»Æpþ^ÃyµÛ¯‡ÊC<Þ©»T'ÿn¹5­Ǹ.ÞÙf7x(¸žB}¦¨!j³8N(÷‘\¥êÖ¸½oMô*ew^#ån~sH§’†ŽcߟJ¯ÈM1P÷`öF!PJoùR·¾x„2Æ0_@T2“¨(5x^ YpØå[$r£(¸F°õh-­’)¨ö™ßÖùöPgû¸®‰ßbÓÒj= (»3PÆõÊŠm‘§oQQŽ^Ô(è) ²R(Uô%Öš¾T[äô§œ84èŠÆ€Ü€Pyú¡TÕÌØ"7ïvF½6Ù-‡n\cn\¼÷FnèÆ#æÆãÿV…ò±Éå)7LrC©Ò×Dt\¯wé!-w%’ýê2/.ÆæEØþ<š4wB)ÕG„{ŸS©×¥ÿq0Ò àn¿Ðîöź¨â$Ióá¬×øA‹'.µ¬£Žu}éjã©”ßÒ,/LšôŒÖQ)¶G„{oÒ{½ïMÖñ…6¶û"ßmø~‡ùq°v|ˆ õUh³/d×׆?ÐZÇY ¥\%E–Åš´ì'矰ɹ¡…ZZ©§yùod^nXÏô³¦¬OÆŸñ Ç™~sW˜²~¶ú›­lêPmn,mÃRSò7<%ªïWÆ&)ˆù×£‚—öG´ïý‹ Z?ëÍõ» JŸŸ#=:¤üeBÑ祾m†°?M`úª3~÷˜_?xÃŒ{¼5»®5±Î|"ÜfžþÙü&×>é‡O?SÓЀwYsyž’%NªT^QÙÎyŽ]Z»Ü’5ž7×Löw•µ)òª´V6c«i›XϣɗòóO¶;…endstream endobj 1650 0 obj 1063 endobj 1654 0 obj <> stream xœ—IÓ0Çïù>&‡/qœg‰ÐÛ”C¦MÓ@–i’Šå'@À ±ï !Á—Äiã&U'š‘ÚÊ/ùåýýÞß/K€ ¨ú«?§‰qéºÃ9 ÐXx½ êiÇ"„S 0ã¹±¹B ¸ã€qb˜ˆÇߨ!\F"¹ˆÏ sš%‰ïO§AZÊ8êÉ8â@LXùh³ÞG„bèŠõ¶×æjaY˜¥Ám‡AÇqë Jë dzµœã .}Ɔ˜Úũ} ñ +ÖkÌ©I¦ÖˆbÂ!áæd2Y7ÇW»±A:ó‹…’Ë¥ŠÏÙ!h³ªmˆÛPû°I–ÔÏ©rq¹ÔSõû¶\eesU‰´·îGïÖ ”×Ê£pÑÇú9„uÐÏ*¢4ŒÏü"èáýÂ;êçÍÎâN%“´oÊ2ál‡v<ˆÖ-fƒû>w2×)eCû:€F–6óÃ0Èõ­ö¸§Õ* @IéAO€ô.Äqt^D…¦‰Ÿö61áZƹh«lV}Ìz¼þs¯×DõÚ \¹ÈV…Ÿª`2«/½YQ½_„«(^·ð{z= …©Þ2¶¸!õfÏÖŸdóÜŸ–Q–*÷‹¹¸{© HÄzC:ЛÓÉ*Ïôeþ°·ÌžjeîÏ‚ÄÏU#XfóWYídD±ë@§æ¹Ÿ—‘Ï¢¹%Rð\›™óí)º“žëÊZü¤Ì‰õ†‹õE_¬Ä4Õ±_6” ?ÊÑÃkcô:&QºRy… ©'‹ï½2ä¹mŒ¾ØÅnES_e~ÂÍ‘ýV»9ÚéÏŽh_/2Æ·õ}±w¹p+ì ©h•÷öyoCþ)E·¹ÓzLGè¤â„[®”‚ØÐ–z|PêÛr8ú¦ƒ¢z;Äôn–¾˜¶°^õ²Ø‘¾˜âì~†ªÑ@ô'òê¨wJŽƒ¼f>¾|ˆp{*ŸGŠÆn{Á…5ˆ3zâë&´uÿMhûîdçî±~øžwg˺{Q­ŸŒkwī܃Ä`D~ïxmtý’ÇIõ_½áêþ;Û•Hd WlËñh«ôºSóhá箬‘¹¦8cÄ0……= FÍD)(‹T¿±kÞ-Á> stream xœZËrã¸Ýë+Ð=“4Ô±8@€äì’®I2©tU&£ªY´² )Èb‡š¤ìî,ò/É—æâE¦LÉS®² ^à܃‹û‚äÏ(  Õý›W«ïþ.â=t«=¬>¯ˆ#û'¯Ð¶zJ‚ˆ@ÛÃʬ#ˆ†<`a„b¡mµú„ Ðö(Ñß>þ‚ª5 ƒ„>wEŽzÆ 7u¿þÇö/€H! rCÓXxµÝÖöXtë ãi@“çÇìÔËÖ¾”`²¢vSx‚3û(b\]ïÖâæà8+K÷œàþ(ݬI¤)'øqM9Ί2»/y¤ô·Y :¿¦¨ýó¬R;”€é#ã§c‘=‹a“ ÊŸÜ;Y„ÁŒk­(Æm3BÑö¯«íûOø£ÒÀÜi’âc‚úǶ©ÜÈí×ÅÂqÍÑ ÓxÔn¦À÷Ò?·ò [Y皤“õ$êsu¯Iqc!¥"Þ‚^k×·EýÐ^óöØtÒã=ýQï[íx)xVÞìe熗²s#Â`¿fjDÁ5c/ʽ„€StQj·k$Óíšwf»¦~ù¶àõ͘€ÅJRïvž3¸QšÕ{¿LÖ°Gªa4m+»SSïaúýÏ~üy»pð•$J± ÂCS– 83XT<©ýÓš¨ Œ(n\“Hû—¬:éЩmöç\"Pˆº¬’HÌòøÊ¼ÿÞ†m̘ZpÇ %A˜ÐD-~»ÛµÕn×C袼”´Û½gl·C0î[ õv½ýçÅyÕy·{c^g¿{ž&œFFMšø0ò $%˜1û {Ó¨žcbÏC üyhYêÎC#¼¢T‹ÅÈîƒàæ¬õœÕþµ·k^fUÖÍHXeí¿¼Ïë³Ü­GÌ;ÏÎ3±±Œ÷0P¤Ò'd¯­šiw²äÞŽc\Éþظ¡ Zƒ™ ¼šv´–­Yª7ñhvùUÖ…TF2h ˜HÖŒ¨ìëM)ý°“ŸÏ*ˆÜ›HgdóLÝ9¸¡9Ãcšu"¦X»½·€\´r¯ˆH@þØèįÄ$~õÈ"gA5‰M“¹zGc{æÙO†Áà( 3ÅŒN¨¾š±Ôº)å"œC‘TQñ_åó7f4Iünœî(šê¾Ï:YµœkI (³ þ7SæÃ0q ^Ü\ÿõÔ<´Ùé8l‘8°º“wZç†1ØIL < .t~€È 1¸ò±¦’vYåhëh4ö›9û„AÅæä6û`Èñ¹¬÷ê¸ìÄ(J(~Ñ ÏìX¢Œ™81ƒì_~u;‡¯<©àíœ(Õo§õº=Ñ¥¬upZ4`«Hêú¢?ëÈq0§¬í;ÏEù©ÕM/»;oÐ43¾Í–øSézY)g&$ˆ@«©'j Rüù|éPZ7vÝŽ.Âjqc3 ÏâF8”¦ÜÛerÑ+ÈÁïwö×[Å/Eš.ˆ¿(q8NÙ‡cöÐTu·pÿf™;5÷o.Ð^à™•PÆnàùí2O1æŽx&†'¨dçQ›€• <*Âßþgî Öò?Y ·ÈzNrŸ•¨+ê+T³L5ǘQå±Tç8™ÚiqxºÂä·ËL’[™ÌqÆLöÍYÊ-„Þ-JÇ„øB“S4Ç÷n~|±?¾C™õW8íð"©(“Š.±Š-« HT(MF\gý¹ÍÊktÖËtȘÎÜÓãÁF€(·\>áƒláÖž¡nLÕebÒ8ÃêYFž}¿Ìs’îÅÜ»¢ !µ\çXà`pJ¾÷Ðré–…1OTéï–™²×0c=gÚɪÐlu‡Ã_Íön™mô¶s¬)[\uQZËn¹YfÅ_Ãj½› Ñk ºÎÛ¦Ïpß¹e°ÌRLòKz)ã)Õì,ÝÁ.ÜIwN>ñÉö¦cþn™j|k˜Ïq†(ùY}²à2‹œÂeN£zÁæé9ñEöN:X­Êê5Q¸BÆùŠî3¸Þb/²Ì-7Ðr=7í¬pz´/¤›k$é"I>)%Éœd4&9ǢɔäB¦¹F”-%ψnh"bõ5B3ÒPá’Ô~w¬(6òó é”sÅ£ezôŠáÊ)"GiŽ%ಚ¦ÔÁ!u¹k*Ü‹÷ê«üT[’s#2¨ö xòežìךqŽ;3£K‹W,)–F¯±äëK<¯3^¦:¹ŠPuqVâ‹¶T×JËy Y<ä ùR¿BÉ2]ñËαn°¬"®¿}†—Wˆ?³tºL=þU–žƒ>·´ÊWŽtH’WYûûeÊÉk¬=ǺÁÚŽ¼r•DÐ9y`ªDÜ}^ (êÓØQ:¼$¦H‘ß/$BøÏóMÝCù&ÔÔnýyÐO«ÿRWÌendstream endobj 1659 0 obj 2439 endobj 1663 0 obj <> stream xœ­™ë’Ú6Ç¿óúVó×’eÙš¦·$Û¦›¤¹”6m!Ií7¾ìúvú}öI+ù‚ b%yÓaýΑÎEâX&t¯A:ûü5q]°-gØÎnf°ùt/A .Ù×¶„`y5k%&.qÀ2_Ì—²Q ·fÓfã–ále8t¾@„Z&…†eZó·ËK.Iàñ¡Ô5`ó¡ÆžëØLxùŒ¿ùŒ)ß²g 4Ÿ±·ÂDÈaÆ´_ÑuäWþ&‰@åÇI;t _@Ç3=À^šÑ¤ÌÄÒenN‡·“[N±ä^Ü_ʹ¡.·¨Ã™Úï’(ÜFHâ,RÐ|%§Aº4¢Îfe|œClRÏñŒ¨¨âÀO@˜W`mø›|Ó²¼ñåUò lü2jlXÏû™ï2ãk¹öØ ,˜á˜´3CÔAÄ$½[wyÿ•gUk€Â³ßÈ‘ð‰œA‚’¨ƒ\÷H_k™¿•Ã8cW¤Á&&ê€D-ä™–M½ž)Ìk šhåhd š¨u‚Víâàƒ.Ù#9™;Á3±agÅ6>âéГ¥CاÕ‘åEʶZYùsHMJ8UH<–Ó{÷ <…þ:*‚º,cÈ÷´àBnÁ´ªÔZp¡_ŽVF} nê³äE›èüßIù]^¡`·Ü€,ì±c$y¶m|†ØÇôä>k4û)¿—O ¥Sž¬Ÿ":aö'òÙµ‹‰¼$?Q—äËAsäû¬YÁ3–è­àrƒlÝ.êŒsøU^€¶‡©_|(iéR…§…Ååí?ŽB`?çÛŸ°=âa[šË*JUž{*‡tîÏö²ïç|C‚§Q?“SÕ"Oì#° y­±ïÐbµÈ浪[ö2Oâ–mù¡bÑŸËÉÜ)d¢Ö YgqªKö£œÌÓQg#×~ÍšÁ OS_ÁóBΣ]5D¡¿Nó"Œ2UøRJâiŸPD¤ëµô€^É´¢Î¨Ù³9æuË&Ç}(QøZŽ©]FDfç8FkÓ–ñž´?Éim]ZQgXåª.2ÅÚ.åÚUAÔ0FçÞBûA Þs?˹´ ¨3piü"!ºý°¨ƒhøQYª õFNâêºDÔ™è’_å ž.ˆ¨3ä79ˆvÎu&‚ü.¡Ú)[Ô™²’ƒ@ݪÚ6y+±Éãµµ¿x ýrÇžæ±x½–³¡i'ËõZ„£´2ζI´àX@/ºÞÊé´ó±¨3,!ïØy?²«’èJÕ³¿“Cái.{×{̦¢Çþ§2 Amg3x•gý ƒ‚í±IÚÿ*@§â&A6 "“ßËMv¦™üþ“L®+Á^h›#ôI&C—šVù¹ÉGÇÙ-¤¨3º…\e··Í|^åIÂ=¼sag´= pfS{ìüÛ™ò·¸rS·àÁ _n†v}uFýWµ«ÓMÌè)vǘúÊw#§Ô.^¢ÎÊMÔ9™BhìÕpŽŽ7¿#ÀÁ“ÍÒ]´…üŽ0j.Ò!&Æ6ËUt¡HÇâÍéñ ÅëÆwòa†ÿ3`¤„à™Õe „¢ÖÑ) »&Út1„3IAw¥¢Cút¢–ÞQ*ì¶£m÷ôŽ|«·õÁE­x}­‹´S!a}$QKÏ—mïÎfŽôø½¦×f.Œ 1]ÌZ}ØHp;¡‡ÿV!«Ôëír—Ï߀´.ã€åéŒÿåKìgËÙ+öøí^®”endstream endobj 1664 0 obj 1350 endobj 1668 0 obj <> stream xœÅ™K£FÇïþ}[Ånú­Ü"åm¤$²”Ãl 06 À3³Ùdµy¿7ï|×$—TfÀ`7L&Úi‹vÕ¯Šêª3—ˆ`Šˆþ©¯þföÚ{ÒqÐ*Ÿ´š]ÎhyÕƒÞX‡1D)Z^̪ïQ¤$¶‘#ZnfV4_>†UTÚN½Œ1,,\³3‹1_Øœ¬¨E0™°|KU¹¥MB°-Ó«lÁ­«,Eɬ¤u5§+W¸V˜a€Š]–ì 7´ *\ì"¸”¶›8e›SˆCPåb²çìÛ²HIEj]¤Ú/`jŸ;…#íÊõ¢g@bJ%Ùß_í2ëÜËója;*—`®ì&®Mq9í¸Ù‹ È)8fG¬Ù7SîË .6綃sy/8‰]àÙkÓ`upyG "o“&JÒ"\‡^Чì֯č¦0ö­0N¤K t”L¡ë[; ó³4ÏDz¥&6:¾u\k[ 6áò!¾™?èõ¢oÂÊÝåE¸Aº’K\åÖDi§¼Ñ¶b5Êöz°áÉêö™¤s[X×É!°¡Õ]šˆÙxâ¾­¦%ßf2óV›0)^-s\¤pᆤf&D>±o«55RxKª9`Å”ÌÜDÚ™oCc£훂_^J_-LAM†}[ía¤EY¸«]TxpÉ"SWؙ؜ñl}[m6?Êü8œˆweÂs»•»T Ì…µÍ¢¤({ã:JV¯£M:§¢-erT+HWéŠ=¢µZ¿>+{ž~ 9àQ÷ÊÃM<7›ÜÎ8ˆ'&=Y@ae[ äš‚¡ˆÃ‹bäÃùÈÄÑ™tR2²hµËñÔÄÁ:ù`ðQÈ;$¾h ùØDÂïµ\Ú{—ç8è6ub¦>¢Û>uŒä™‰Dþ§³Ï…ööp¶|E[ÔTÖOì)^>ñ]#$Z%aP~¡ZÚéjC‡wP‰=ï+1óF‹‘_ž8g='ë\h‡j¢öƒÿ̬Oµ¿[ÕoF-!èù¾çG=˜šÙ0#wVwŸU)–åÇÏZÔWfŒÎØÕ€t]0}s4²I6+ÐC«dyZýû\'tæî‰l2Žm®H½BÏÏö<õ×iäG0íÑ%õÅÐçÍ© œ:(Ž’ðˆ³ ’÷Ë’÷< ½b}ÄÇÍúÕ)Í ûy…¼s½1¡¼ó¾£´:à{Â[–¯OÄ׈\tú;ð¼ÙõÍÐ1±‘]EÅñÎèšøöTMœÕEÑyQù^Œ|/Ìa÷Kãø6÷Ýiÿq Ïðª|‚úÕH÷¦Ç†¤­Û „ïa­vmµJ1iK"KzOþÕ½uL«¾®9íÚú¡²xà°º÷wÏ›ÀŽ$Tî±Bç™m_a¥lB­f—nÐÛ¢Îf^œ×éaÊ¿•NÇ3þ8‰±ÿ(¸=Þ׋¾þã‹>Bþd8Bê.˜…Û°ˆŠ(M†7ŸÐ§~>Ñ+Fû›Ð›~9ÕË*ɶaµ©aW­VQš£Ú`ëÜ,Á—­X·:%Ùì¢J-õ^+kÉt=§ú}³#,†Xûä±  Ƹ£ÚAÊñAþz"©EnÒ8-Û{ ì%÷ ËåXP·V«!Ó~Xú/]ö[_ð©F¤q€Šh"-/µŠ92­¹;Ñëï÷âu‚ä<Ðvœ|‘gåñîˆVw——Žõé2pXéDz¤l*±ÃuñV+©•%©š¿ôP……ÚWÚr¢wÞ~mvyäC¯N ôú£¹þÚ›ËÙ»ðó/c›.endstream endobj 1669 0 obj 1367 endobj 1673 0 obj <> stream xœÍXGÛF¾ëWÌ-T`93œ†Ü8‡ÀC@^¸WâZ"e’rûÉ5½Øé½—Kú¯Jrɉܡ´¤á”]`¹‡ï}ï{}n äšßê¬F¯)Ñ<¹h>º1"ÅkT=‚z| Gˆ ‚¦'£òC‚ÕXr$GÓÕèªC8O¨ç¹XÇÅîøÚô)øRjŽTñëbÊCÓÙȹ5žžŽ¦hzyä¼x{üH[œsÍËÈ=IR”­—QžGñüâiÅðDYî‰ÆZ)îÜþãÊ ³Bë„PntM/eNûc»m°¹ˆ•œ— ¬gáMÄÃÅÇvøˆO‹¼—m8MX)(ŠÇ Äu™hjMóp†*™D0]}Ç&šRð¦‘{ϒ˰Téê}¬VI\j áÕ‰ûçH@y´ Í™ u5¦B5 ðzðÊEÀ&·¬' {ÞVBˆò0%MûyÓ~®,ÖÌ%¯ÚŠfDïxØÄQ–Äè8 Çk®Ki“}Q(úgÉkFëÅ$$Gš£äû©%Æ“XðÞŒúAÆyÅ)À£­ ’M{·HUXÕö¼nG•ÀÞ–O“åÇ©\`†P'4鎡bÂGÎ5KNϪ?®7þM\º…‹uà*‚Ð-Ï¿ §5‡"§¡ž—G5SȈ+PVYÕÑ? XU„;‚óV)ÓÖZ¾þÓRɱ.uô dø+O Íj‚VTÔ!¨nú–±R^-eÅa†Â<ÀeJKÚ U!6Ýj“íGA‡(¼Xá_}¶Ú—géó ¥«x~ÛÎh‹ºr¬#?NÐ:œùË’KK“׿D½ÓÙ¸‰ã§ë°,ŠÐ.æó(É:š„]b£dãùŽâuB U2&Üê>Ú¬oùéJîøé,CÇw`Àñª2¬ R7äý|÷ÿkä‘“EÁÑøø§PèöÌÕœyØÕ¦."tR9³—aR^•õoÛèhq„Õ2˜ ¹‰5'=fé•À‚ÖƒgÌùÈZ#Ô*Æ0 °‘õeêVyŒ}|>cÞ1F‡2öÉ ÆÄ1Öê Ö¤c/…ð÷‘‘óiÇF£vÙ#Â4ØdYãm° Oºó\zõÎ.µŸBÝî~¶§ˆ®7S'YÎ&Y~g¢'á(‰™l{åsË+;D•[À)Ä¥˜Êˆ'J¥t!µb@‘-Q|qp)ßÖM]bêLž¬÷…¥ªúËaª“~ìgY™3žÀÚkN̪µH­Ü¹í­ª±®üS@,’t†²hn¼têß½‹â$/¼VÑeEjM좯|ÛE—¬!Ì¢U»ø ÞáØ£•Ðú) ­çÛÂ_ž 4K–PXö¾Ö9c¤%f´|Šõ¾ï_&YV¤á|å><Òh¶‡Í›Â‡†è|ÕëµûuŠ–álnÐ ÷TeŠ>q% ÕÎf_p,šcÏsÖi癉À,ê•Ót{†2ž›‰™^€™z;:á—GÓGxÑoŠûpñR\@³dL¹s+Þ*)ÅŸ©ØAŒpÞG8&˜6d©—U ƒ}Bi±-¶UÎ> stream xœ•X_ã¶÷§ òDÖª(‰¤˜ ( -Z´@ÓèCœY–m¦²äåÛl¾Cò–/OÚá#Ú»wùsì’ÙáÌpæ7£}ÏòL°Üÿ¿ÛËêÿVZ³“[åì´z¿xÌâ¯ö¾Ü‹P…fB°íq…É´dZI¶½¬¾æEU¯7ÂTyfy–¯7J™U’÷ãpb妷CÇÜܬ 8¹æÖ¢ÊL-kÞ­¿Ùþ}%@Õ?VÛw^™ùEeÕ¯+C52ÿE5ê×Õüy»új%Ù3„ç¯+]äL ™³ËJ´îWÿù=qÓS¦1Ûž»õ¦ÐyVJÉÛs35íÜM.Ò”æÃí²ï¦î@\¢F»¼îÒîRd¹1 {XñÖÛoï–™ g_sQ¨¨¬ªy3æJqQË·še•Õ¥P¿Is]'͇1­‡q&o››#§5Â]ó—ùl‡ùÉç1‰ì»¤ë:Ùaî_£ævps×D!¨Bfy^*þ’$¿½¹ýƒ„P™)ÙFÁðhR)kHåÃÒ¡½MS7Ìž ÁN @K‘yuí8@ãúFãƒlÍ/ã’\wivH ûRË›D=XHС]L¬ÀÄf^8ݵŽN LÁ³è ®¯£’”³ß/G†G×(ƒÕXP5ÇaÎ ’*(d-n8RHÞô·Î%ÚÉVðvw~‘!/y³‘Pæ¡àÄ›àùL›ZóãÚøßððP+ãD·æ/¬+þ|¶í9=joÞ&z¡ËL.‰þó›D/³\êZP²;2OR\Ã]*–BqñY·°î»dâåÖÏöÚ[,n¤Èådæ8º)$l¡U&õ]Æbu¨"+4?us\+C~úMͧ®ïÖÄÖÜ…gætLY•‘*Åÿž¢ò—Õ?K,ÑïšËµïžâI-¹=’:Ÿ®Dùf IЀ'NëÒrH¦C >%‰ )@á"+„¡+5ßñçÝš¶å'êÌ-m!TEYeª%U¸'î)Õ}#Axtƒp>I V®_—¼ZV—‘ê’ÿíHXßH­¹»6íb¾÷äv‹÷ddYx‡ÃN`LÆ2§ñ²˜DÅíùi[æç‰Ù™ù¨yØ„ ¿F1a ¶!úÿm°3ðŒÈ6ÙÓÂ_P”„¾šKÀá:—ÁV¿.0H5>Û›s!ÊátYFdÅXû <W\'.nwíZÛôtZ=´× ÊCÁDyÿîx«á§››)]О¡(i[ðÓdn±Ñ&s]×b¾<¢¨Ê ¨0„ü¬ª€£a­y P‡'|i $ŸÆ›ïÒQ¦YÖ%$Îû%îa6؃ƒÿóøh èBÝìHÌ@=ø©¢4CB @›ßÒò«†hªæÉUB[rö4t‡t›kì`hxýºeG_Ûf _qXX™ºÇÂ%ß 9 v°Ä¿‰¨€}Ý…}mÊ8öøC xŒ0ã·~ ‰K`k[{hhú§$›Ð°í®3Ñetˆ”Ç)5I屿çz=©DòÐ-îˆõ^‘Ží#0Muwlû;ùq¸ãƒá+UüÕÎØMÍ r¢ÀuÄ©ÝÚ·# }¨Ç{>(ÎÇÜLôÖNmß‘~œ`‘Gòs³>#¥xÕéñ¼ÆàÄåÁ6—.<¨±ºÃ)âyí'xH9>..øÉÝ«¯«kGhuOÑÄš&Þ †Œh»O¢áÐ¥Sÿ„KÜh€öâ*4H{²ƒÇ—@dµ¯®®p€ñ¹ßÌ· Ç"°n Ðs5ò¯läÄþ™S&‹:™ðm K´ðjxĦoŒöSÕ4âDPC>»ûƒÅœŠt­[ŠV¬© ûVkã&ŽŸ~-!9®—/+ñª/Ïg?M%v¿ç?õQx }«±Cl—4S-LêÍ4»EÆÒR*?ƒÞæ$Š3;r•afk#ÚÂæ³äŽï1%‰Š=½ƒ!ÏãÅ/%ëÃ\ìžd%‹@¬àË$âlž©²,k?ضc :ðJ¨>×,ؽ`sFË:bwæ±{¦@‡eß‘ËG§*‡aZíoSÜIóXÀžžÅQ¼D ŸrñäÈE jþõÏÿ.t˜ºþøDR€T ùæDM·T zÂ†æ™Æh3íÜ¢?䩉æžÁo9|ëvíe*Œ` ÔïæØ¥}mãÈôÐ$+ø ·á?¾é‘Ðë…Ê—·›6;†üØ€MMßšx$ôä1BiØÃ|Ž[!â°‚‚æuêEÕîÖܹøù¥ëW…ƒ\*F…ÜKQù")º³ Ç™‘Æÿ“(_yPE°oWÆŸ:µíønÆÄ«e,}c%¥ù]AF…š| êC݇µcß âø?X94´¬`Úǯ_d2üËŽþ„ÇÅ›.|ºñ­ßwÓ˜¸1ROé–O(uçñÖÒ~ߥu„¤ØŽ ?ƒþáð«Õÿc³Pendstream endobj 1679 0 obj 2075 endobj 1684 0 obj <> stream xœ:[’ä¶‘ÿ} Æ|¬PŠ*ª@ð);!ymkìݰ<êµÃ1­v»›š*²D²ÜÓ>„ï°¾ÄbOàŸeó °-Ol÷G!D"3‘Hd&øc´Žm´ÆùÝìo¾x—Eô8Þ¬£Ç›o, Gò³ÙG_ßJÙ<º}¸áy6JÖY\%Q‘§Ñíþæ½±.ŽnŸšèÛÿüÓÂUqUåά¾Úžêèaa±£LLßM‹ïo mž‘µHqeCR+è¹Ý©wíæ©¶‹Ušfqž–æ›z·«G]e6@ghïÉ:^¯“ʧÆcW¦îÓÔÇí®­‡—0÷y\ Ð @âÌqlðÜNOe…ò#u·õ ôÓS3r‡¡êýK—­ÌÛÙjíÚ ¸FmØ$ºý›ÛÏßÓ:y ºVÞr±J²<.\nî›MM,r‡3í¤m¢LÍ$1Ûfl;ÔõØ’¥äáxl»©íu85ûãØn”TiÆ—ý}¿S‚.1m§³Iõ?»ÍÔö³NÖ•B]?ìë] W£÷Ík ´(çÔ,l{b~œ@YÎÚ¸²™`íd§ÊÌóm¨Èrƒ–@½ k?´mª|Ñ>7“_)…ެÛe•š¯6ýдwo¿û¥B…ùýwÊWJ¬ü,И<›0öm?Nßm†öà™µæ/ »Xf¥i†‘TÅKæ"Fžf'L=6]3¬¼zj°ç¨>Ný¾­¡tÑÃÐï#X7R‰ù´áA©7¬ƒõ*ôôáa©ÛnÄcˆç¥ÂÙE`}ôЇhgklÆ/ÙË”¬öø?‹U‘®A¤ ·f ©]ìàH¶£´óÄÔÒ̬›Iû­é¤]”f×LÈå ó¸yÒá •¡~¡ÌÅ/Ø L$uàmÀ+˜‡Åí§~¥IóJÆñT F PÅέãðÓÞ›ç§ÖóûãÅ-R:ÜÒšqzÙ)N–ÀÑØïûŽ-‘0Ǧ鮒 · Š"¢d˜ ÔÆÊ–Iœæe´Blê.ºo"pÛvNr´}éê}»‰öõðȈè+ÝHìr“Ê¡‘°ß¨R4 Œ» ÞFî/hi ¬ÌŒoÒ9–=5‹“é¬gzaÔ\Ã4‹‘ÜLí¾™áÁ9®§ãÐŒKe'3Sÿذ×e™ºZm&FeàølžØÕ ÅÃî8ªÏU­â*Ÿª7g b‚Í?‡åS6ˆ‚T(æýNÌ¿0xBÁ ŒKADÉŽíTß³õv•°f€/"¦iÅn p€¿µuÖ<.ÐVâ–XDÇSå•ylÇi¨iÝ8ðäÅÈYW€ Ü}ÀœžÉ]ØVU¾Q¾ñB@âr—¿;Óì{1—eÔwM4Ô-Ú-Ø:»~‘d( \µÀÓvÉìÌÄï)t(a“í&o·-ŠTï"¯ÕXÎÊ'Ø<ž¦‚…&ü3ó-`vá¸G–È1À¶Ãê<â‹t‰¿H+8g] ·ÇäöLý!:ïwíˆþ% qßb.;n1°­âÔÂ=D;nÞFÿ5ÂMþ@×uŠ§Ì‡ÊµÕžùh;ºˆšÁÖ3›Zåÿ>ל+·3¶5à¡þÄÌDª÷‡]Fhc° qÐØïuB¬§¦Þò®CGYA|Õ ½E‚žŽïìÌè²ëÔàiVòpúãn«$0”Õ!‹În;›Ö¬“} ´Ø; ~à;ƒ’É—‘ÐÙŽ£erX5S³Co–”æKQ8„Ùªïÿbn›Q€ß¡†|è LçuÞà]bná&›#,>»1Ÿÿ{óЂï{ˆàïÍÝÝG{w÷ðæddpEÄwwÉÚÑO’Ð-îî÷,wb¶ò2«˜/Ð…9Ø T’9«Q΄œóæA0}5#ƒü-K2ðû ¾¦Ìc î™o†rs<„ö•ూc`n´{ʉ«Të9œ–LcÀ¿]Dp0ÕæëDYÆ),,Æ^Ü€°¦Äò—Ëävyá5†[éo««K“8+“òªÊ¬½¦2ˆͦ½$.×É'‹Üœ¨°fÞVibq[‚ßïŽûfÀ\°‹<Î@‰µJç±–b¤rSBE'“Û_jçœNR²‰0Üpä$•DtO­RÌrR~o¯íyRÒÕüi  -?3xÐõ:Máómó·®¹ ârHìËäÓvŒDÅÌò’ÛÌÂUœ¥Ÿº]×oF‘£’Þכ洛«ò¸Ìó°wr;Tw0×¼R×ä q(sŸ(õÃt).Èå ÑR60Yš‹‰¯FÂÚÑ+ùX‘Æeêõ~™B•|¨qJ/ d£[Jí‡éÚ¢¡ìDèP²`LÍÀi4ñö%ˉ…sYèæüï?ÿq™Vqy…ë·SXËsmð@/§ðérú\aA†*ìàx†þØá=ýx„@³µhì9êm}à+qÈQ Ar÷Ø Dò0s éúI”÷ _á¯ÝT$ñ zìŽãq0GíýÞ3wwÃþîî «ä"bñÁJòj°,Rý ÂŽZ Œ 0èZ´¢×î¯áÆEeáøYÃW¯À)•¸i$ÊRT¢-íJ´Ü¶”W¾rÙà&Ϙ´9a(‘+IÚéCÛ)R™"QÐO~•^ ¹‘‚§ç¡…ø• k3ŸÅ R錸ÀI{k>vX®ùòÊeè•øß‹óÙ¬€Ö…®Á¡X[xÃðÑËðI]_FO*󇥴!úÓò`Ûí=üJÛ àw¾]šÛE9w^ΑÿˆÁVmå$·œîZÇ °õ›¦“ “Æ3³=r2°Èx)ˆ(áªÒúÄw+/X3XØ·?k®C¸<Ïú6ᾋÃ\½¦VªZ°5‹…d ²XNV gV›š±«ÇîjV‰C Y’´É©1êe»"(rU °R¡Aª«qjö”9 gŽBm¶">ÁkXyÎ;,s’ÄÊååÔ˜·¨ óÜÑÊx —Ìg,°(ÓnûIàðªq*n¥«Ž:ÁñùÄÁbN¨ÐüPÇÚ1¬ /ÚCqL|èw²£ë²2Ïaà,ߎDË e]Îgmòä冑_øZï…ТJ© sô;>ï,ì¢Þ-,çjÁž„ÕBÓÝ\\êIDQ„YÈÃ’>éÈùfJ·ßLYÜ—V¸VV í¬”“‘sJµœ}*|ßè­*ÑôÞY~í¡ –€‚3GG7„$Ž4`µÊÂ@b Ƙ6OtsSO13êX)ˆa2íâr[Jö“ŽþÓRQ­ùAÛú6¤?œàþ„–˜A v„Æñ€:ßËã*DKCî‘4¥1çîf曥oþV›¹pBíÒüÎcpÅÚº,Õ¢#Oešõ¶ l)–ƒ²… ÄàÄÂØ‹bU`Àšü3Ú}Æð²Ü°~˜e)O¯§„©Kâ²øÄ€[ÓƒUê wŸEdrR]…^O÷­¬¨žLAr½^¦g×Šâ†æs»%­ÉŒo´ŠÃ¢¿6C¿ 4©Î*CÛ>ôwx6y~jö½¯§]YYM\7Çaì1ΠkKÈýš§aÙm †´˜âÇ[°xç^hÜ•E\hªÇE*çàË}n1<-‡ÀÙ»ßýâçﮤML”•&y¿ ¹JÓ2ŸÁz7]¼ò¤Xí «G¼è…eH~b¤Ú¿.a¢•}ådžŠ®AðêSÑ÷gûä(y=äÂqzÏÀ6ƬZ% ƒàaR4*t—)ªßÇR¯wzXC^Ù@ïº+õ få+B3ç”™¡'>™ °’÷Sqn™Ñ÷¡_¼…Ýt Ã,Ëð>½¢ž„Ö»òöWAN«W^î’2óŠŸq6ãÎPÛµ{«WÖ*×±MRµŸï_Ïk!´%W’VqbçÙȹéwœ& = 3CÀÖQÆ'`bCI½¬Øx4q5Ùé²"§¯éª ìYxüÙ5]ÙsUÑ’.¬î|Lüÿâ`ÍÕ&æà³Ÿª ,uÅ씓/T?.è§JƒÙü'f^5ðšY©êøâ_–)˜ú·@lTï·J-ú´rölÒg’pðŽé]›9_yíÔ'’½PÒKéHqöM…ä(tŸŸx3Î ­ôPdxYéqq÷ìpëÒgµ’5Ñë=¥JÇå‡ :d­LSSxM#lË ”YÈ)¹G™"×Ñk pÛNï Ótó¼ªÞ÷ül›ÅsjM1(ÀY! °VÈ›¤ã7K™›¯Ã$yGCœÜü1 „4 ; Qš{º$†è¥ÇÉ:õŽ’ ‚J~ó3«9j©¡2­ÑÕûf;#ÉANÓ ÁßDHt} LP“žSÿ¸ÈÅÖÚ~WS?}26,é†PùÔ/Ï[OM$šäï>4“GDô™œ¶ÿˆ: |•yQ@ž€ ¿€ Dgj¤ÍÊGꈇtHP¸v˜ q ¹T"©áàŠ>ò ½µ'=Nì²ÊóøL†‰{ù{j百w ÏW&ØÌ_Ú­g˜ôhø,Î¥ÒÀþY<ûxŠíËNd—°ÛYá<ãî’ð–ªä81pª³ ëÔì¼hM8˜U²÷üáú‘ÓöpÀ:8}¬A]¬2ÿ*=A¬H;|ÖÔcaYñõÃ0¯†¶íÄçàwsà7SW±Ð¤¡S…ñ´X°éË:l÷ø¹}(ƒ÷/JÉ4 ò KÔ!®åò b ‘¾€ý«ˆ×ÐÇŠç¡#H—…¯“.Ü ¹´þZõFå™:tðÕw¿|ûVÁÊ@Ü{±îÌ7½ºxVU@ÊÚ=&Ò¤7r¼‰+âì䋿Ðt[<%]böM§ÛôNÐè@òÊ 7 ý|€±Sún> -O6°›¸ÆXò -mà}ÐÜÀ¶pVáF£„G‹uXQÜ[Ï&$ÿ¯:B.çšÖùOõŒ¥:ˆï<%"GsÖüö¤¤b‡´“伤ÄEMs–?P ¶ÿ–‚(@´ß5J‚k„JŽ·@´†ŠàÃþM¬$[Jc‰¼›Åø2·ÍM¿'_ÐRìeâ°î­_K;›éX+ñ¤ãeGè¿J0Ñâ³›Äæq‘úX¬¶”÷ÿzg:N‹|V®ö/ñË‘òa>¥ßë`£q¡_ÝÞüþÿטA›endstream endobj 1685 0 obj 4121 endobj 1690 0 obj <> stream xœ­Y[oãÆ~ׯ4—%ù3 Ò`›¤h€îFHì>Ðm1•H-/q lþ‹›ŸÐ>hûÞöOõœ¹pH‹ÎzÑ€5×oÎ9s®Ã×$މñÏýn‹O^¥J‘›v“›Åë3ÓÄýlä×XÂR®cds½°Qœ¨T“ÍqqA»üË,Ê2E‹j¹œE\Ñþ䛌^Ý…v·/†5m—/ìÔ’þ¸d‰¦az»Ï›|ÛI9-[×Ö4•ñjVg´ÍЦyöO–UusÌa²=å[? „̬—,‰âX¤c‚ÛÕ£í<×vMYÝ„£ëëå6¿]0N6¿[l>º ùªòV8wGòjGÚúº#†ª–œšz×c#¯HqÍÛr7F‰çjD®@ŸaY7È÷@¯ ”¯ƒ ëiáÙ -€›?¸BGd:Š3iÂ6‹:v*± ÛŽ¤Û¼ ” o_ׇCmn*}¹-üžÌš“+J˃9‰v·K†2¨Ã'pÓSËýŒ¹ +Æt Çš¾Èœé &"K0ÿÍnAÿ¼Üü0u •tÛÎ_L±­iAJ)·…þ|©ÑŽó—ôy€Ìórk/Š˜Ï±°©ŽSd×öv.€‰þêP¬k‡~ù€¨d¤¥drð@(ä’nëã1'#êIW“#¸P¼9s¥¤?‘œ€¯J‘s>X–D"O» ÚWewF8ScéÓè¦ίEÌ„gœ òc\‹ŸÈŒn ßM3º=×­ëf)-òíÞ÷‚q=ôüfÚØ¹o‚f Ó(NØ;ÀÊòL 2‰´PO¾¿ÈÓ•Y§-Ä‘ƒïqÚm7pþ¨O³Ó*𪼠1]ÍŒ q <5ÑÎmLÕwŒ ñrõþÀB¤èRPxpeYÄ™ôŠ1ñ/Âú!dä£56…! [Ü‚Â/aÆÎìÌœ™±8‹T–<ÕSŒ á Ç\…‚ —êÑ‹R‘2ãÁU\^z6²±¯ˆ<ÜÝ Y¢è›éqÜ741ꃯ‘A2ör¿áPVÅj˜ºÝC´ (ÚC¾aï#U‘NT¸=T‰45‰Žiƒ®”»¢êÊ-¦*fH*wm¦;¿V) ´¬:“jØÝê!p;ÚÙíónŒã7¹¨„mÐB•Ì ëx,veÞ‡»9ªÜÔÕ]ÀÏ+o=e¤(Œ§áÌWR9­P ÇÞÚ,‡¾øS~<Šå³©RH%‰ÒNi>%__“sG@?1ªÑ¯vçûE$%çOŽMqÿ7 ©œMõŒÆ‡ˆ°”4]‘n_¶¤-^÷EåLb¦3|0D¾#ðï9þ{i[o†ä3ÛxEVvx…ÿ ûó¹¼$oŒs= ˜^ß?õÜè”@°@na—nÙýw÷Ïï_Þ??/>{~ÿjõæ~u_¬îº¼|s&{„ô!t˜D3C³ÏCçAc1û¼k»âغƒÄB8¤Uå!‡Xí¦fPGLè5ʶ¬«6òûú›²i;PäURúU8˦‰¦ƒYÛy$eâw]…¥òà³PXöêÓ$’ƒüÛ™DÒÈàÕXÐn.æ)óþî/ï½ÓጠnBÏþz·®†£.&7QVVí$HZéQø°Ò ÝÜçß~ñõ×®”¥ˆ˵•ú ¿¨ÞnûSiŠ3b]…]/°Ð(švÛ”§Î2º+oÐÕ³g}cï_ï$å$ʘ¬ÿßo“²#o^Ê E©ðöŸ_‚ŠÔf#bµpf7äùøûÿÀã?þ<þsF“TŽBEB×"Ñ ÇiPžÍGeXŃ•ï©¡$÷}¯ZØUA³Vn(ÊGè$™sMY÷mª<Ü ƒýš>Ùï°ÄUÀHBJÇÙÛÄÍš²À ´ó,>‰ha./£ùOSpým‰¡z„tjW4亩$ßýÑ êB<—õlÁ†jþÛb[W;t[p!0¥4i„mG!û¾ £žC7)ž«:±“¹ªÚšó卵"=®—$Öâ픦wåµ!SšþXîz“œú‰iTÓ»/LàÆ9¾ý ¸ó™Éå‚,ŽcúE‘¥éý~‰Ï¿±Ô¾u0›ä½"ôX š$aÏñX̹@©ñ;Q 'öî³O³|AÜËu’fPÊ%£Ç©µH"Ž/¿Ã®_™ê6F…ðô<“f Ý‚ùLùWgÚÄ!"ˆx æ‘ í¾îg?K4Ý&ÀP{ Kb*’1Ur–ª GÔ{3¼ß÷ÈéYèy~‡çæ÷ç9ò ?ÄD åT¨ ú,ÝŸüüóð*]ñ‡É2£@î^ÍKÄíÐ?œ{ØP %üF83àÙ[%óÈëÁ³s=Pàå³!)¹*o&Z0}:›*˜† ô’bn$ŒDe<¦*ãrŽ,…Jd邽³Lµ £Ç€ÏÞ9‡¯Act8à#§lrbjîÂ@¤1óàÍag G*`ŒØLS)Xþ¬2ÄÚ«ÚÇçY$˼²€—'$¤-oª¼ëá~ìk[’FPlå ’{‚çÛ•ž¹ÕyÐ{Ž'~à"ø±îìÓH aà‰ˆÂ×±5G«JF~1ò¬Mœoqѹh“„(Çtº!6{8;b3#+^0>2÷O†Ô˜»TO±ÈLxÖ>ùe›4&¹mên»/:k–‚©޽òê·*œ®|VÏë.ÌÈÌ#gï„ÌÞŽÌr¿2ŸANd$õQ˜GxÎ@¿d6 Bj7†ŠŒAX—jxÂ"m¡°då®X05¹„:¼Rf‘—‹ÿúie‡endstream endobj 1691 0 obj 3046 endobj 1695 0 obj <> stream xœ•X[O9}ϯðÛ:ÒÆõýÒ«–ªQPFEU mH†J$¡ìßÙý—Û¾¬=3žñg„¿ïø ·#°û*Žf'GR)0Yv0˜tn;$åÑ ìôí#DRýóN1‘#‘@Iú³Î²n*¡ öƒ41’¼{ÚßÍ´ôÔ Å,FܱÓú—Mü^9Þ#Â=1€Ü#ÓVÈ<,<2k…,ÒÈÒ#óVÈ2¬<²h…¬ÒÈÚ#ËVÈ:l<²j…lbÈ ljè§QK‹h Ð!:•t†‘0¦„ºO%â “b|—³áÕ¸½v‰AFsø³K¸ý 4Ì`‘-Wù–‹B˜¤ž¤LHŠéø– 󤞭“²àÚhOêìb’S¢a‚ÕfNILkNÏÝ % S‰"­UIè¹'d)–„R„—„à?k„’’j¿¡ñ|µ†`c¡<¿ °¼Ž2÷P(w²ÞÕ ¿«†ëˆhi¹Ã/!_D*+®€_z`ÚN®—ëçÊ5pz€óùŒç];‚1¥ðþz¹Êf³l ®ç«lY•áÁ¾rŒ”¶•%KW:A‚Ð’Ô«Ç+½,ôÑb¾M³UQE¹Ü "ƒÂÞqëJi†2íÌýÝŸâN\r÷@ÿ:€O[EþužqRÿÉ!9Êt[Z•ò ½‰ÁÄ¥®áߺ¢Ä(T&Ó8Þõ¶GKø·qöXìß9Hfl×C•¾cíl#<ûwqx÷@ÿ>€oÔ<ޱgñJœ÷¼2è¢âË{7Àý=÷ËÅ·'G†iàÖ=ïÀÿò?4˜Ù—ôâ³]ç¦X Á âifÔÍ.Öß}”XƒÇ¯œGõ¤íY‰‰,ÿ{M? òm9z€³l8[V]í옋 ]-¢,ýC »h'û‡íw÷;¢²FZ:"é‚Ê^ÝJ¶k½Ço-XY‹“bš Ç…½Ø+’í¿o¢8h•&À û‰åg׳k[kãa{} Â$»·lÎþc<¹ö®àjsÐ9X ‰šƒ@º2‡ƒ¼ÌÕ¯àköº¥9naÌGµ1kš>jÅñÆ|´…s~ Äi\mÖ‰¢Î)ª£ý×Þà@œ~]Øš·+ì~Œ=µøÏö[]еöŸãðD÷þ±ë šßûz«®p±¯€?N…Ée6»8[d•gaÒ§mò%Øìwh!UÁæK¼ÐhrÎëí„€¦éȆJ >y b›µ÷i˜€Ë6‚û‹Õ\eãI¶(ÝàA‚?9©#¼IW|#ÂÛ¹k‘¹aG©ÈìŒj=3kýɶÉÌÚÕ;; fí>}\áGË)"|õž‚+øê¬À^’Ž^£Wù¦÷9ë}±uÈÏïή2°œ7å¡kDƒÈÿ­|K5{XD#¿­æþ[ؑ߃˹-¿ë ¸ïÚR1ÒŠ3_Œƒ¨ÏXÐ߃3j8ŠŠ^qí ã{ܱ àGõ›„1Iò³ëº¥_öÇί0†»{Žs箄Yãøû>çA}dµLÂâdž|¶…;|KO0 ñy”¿Ý;÷ýq¾á&•A‘M*uXžü_È$-ü´‚æ!t> stream xœ­˜Ë’ÛD†÷zŠÞE^L§Oß{IªØPP”ªX$,œ‰fbjdÏÈR¹> Ï!á’d „û«Nëf wÆêå*Û’ZßúïsŽÕ>#ŒaþÕ|Éåµ1äx0rœœ%P]&ÍÇaA®d847€dGI}#§(çxÊhE²"¹š³.4£Î¥ÀH‰2jíìãì cu‹áŽ:á•ÝHðÞì“¡ÌpK%P~ÄÕt…DÅX }¶Ña63 zBW×;ôi‡æ}´va´TªaŸ†Ù~@?ëàb—a¸ û,l‰¾e—žmU ñ²!Ë£\ò†_ø8 úÚã•¢J ^ ð<Œ·¶¡¯Ãt®Ý¿A¢†:a@ï~0›(è-þ¼3Þ ’pKÒ ü<¼¬Îôræ–Ïv‹y(àö[Ïñ<4ü[;|n(³®1Ï‹Åõ2ŸqI•*ýtþ›²i^±1 Kyo¥n·så°?”ʦ:’Ûáe²ª—dw<ýañƒ‘oÈ-Ú$»ó¾ØâïV¡»* ø Dx¨´1zÓúxw×GM¥`ÐùXÌONH禢 ]î»IÊ|½i-Õ´—=÷|r*ïè ®XpÊ@e›˜÷vcR€µŽ\Ÿ—äd±Ìý°jAnEï÷½PQ^ܿ؋Ɗb±\õ¤[}iz³~à5£Jcƒ’4,\’š·¹ô`w­†°…ƒf+CDÆ|^×ÀÏVv+»™ÏÀùê,ç:¯œvéq‘/Û¥Å%èW ;˜šÚ #‡.σ3ƒ!ÒE!¿´, ùp ¢_ŽAò(ä£1H…|<)£_Aª(ä×c: ùͤ‰B~;W=OÆ ãªç餋«žgû‘œ "пœ¥m;ü®§ˆmÚ±VÃ',ñð£DPN²w“ô¯Ù¥¦wµmÆ÷ÿ•êÇñwèAgØ+9ãjÏ'«‰µ“Õd„Úqj ·&¬{Ð"„­JrTÎ7‹Õ’,Ï‹¼œoVåºþ!ÆŸrýÈTDd/'û #Ô^MV3j?NV³j?MVsj¯/Rûg„Ä4¤Ÿ÷5$|¿4ç‚vä±M 1Ýè—©þBL7úu²ZL7úm²ZL7úýÿìF7òå ·ô#ˆéGLv"¦ý«Ví>mm„¿ŒrÔHÿǯN‚ú.íD»/z£Ôì>²›9yÿ½f·íˆNÞ:9½9GO—r-qmVEüv–|€¯¿w<endstream endobj 1701 0 obj 961 endobj 1705 0 obj <> stream xœ¥’OK1Åïó)æ˜=lÌÌn2›£‚‚`5à¡z¨­ÛVº­ý#~Vü z1»ÛÅ‚"ÉB/ïýÞ’Y¢Ñ„¦^Û}XÁÁ…Áñ Ža Ôȸ݆…x… a(¡5{-ÅY ô“$)ç¹Ñž”Ñ™InÂic-ÜÖê í¢7Œ@='á>Š>+l­±Ó1©ß[qš[ÍÓúò¨¡{Ð^þMó{Ð^£}üƼKûÍ뜻ȷo‘1°èä¾*+¼MØhßL=Ng£é|Œåj0ÜLóu“~ Ÿâœ€°A1Æ`–»ó .÷áú‹“¡°®Çä´ä>þ$7I¸mí|Ö9©Ð¹¸®u˜ÜáùÙU’IìíX¥‡³‡ÉËÅ|ƒ×вëä«x>Yx iendstream endobj 1706 0 obj 310 endobj 1709 0 obj <> stream xœÕYÛnÛF}×W,úR*¨6{#—‹'@Q¤@Ú èƒÓš\IŒ)RáŶò}Ê7w–‰Ò’©[v ÉåΜ93³üˆ¦ˆ˜¿ö7\O^þîI‰–Å„ åäã„Öèý ×èÕ¼~ÅGÔCóŤ™G£ ».CÒh¾ž\:T`ôÇ6-ƒ;TTëuOg”8Ûé_ó_:ܘQ!ë™3N°`>Eó¨™NÑ»\oò)#˜P®œ,ÔE§KŹËøF­4ê1‰(­ñ(,}á£ùÛÉüÅ¥3_éB£u°EYV9 J¤SêbB„t¶h“Åi‰âžÂÿMU¢H®:‘>ÃŒy°L@æ|žÎ?ªô0¥aÍø¥“èï‘ÂÊRÐ\e­z3UX)Á8( PÃX*ËeSfàøÊ¹Mq«]rÞ ŸQéa.À<`Å9«A¼³õZr Œ«°h‘þÐ zŠï€2Âí€æS.Á²T:Ú€\Ô¨l‹ {.ñ[¡?6Bû)˜ÇuÑŒ¶Ø"½0˳¡1ìŸÍIƒµ¶¦3Ž}æ±1‡lí°Š'¶‹ð±ðÕÞ.:)êU™û·p¿ˆ§ßÂO¼€ŸcîÄ" ¬•»_g˜¥Q\ÆYj­WPˆ*9OÌa{xñ¥ÙG¼m_†‚]ØÛ=˜4LªhȉöþýÍ1ö–`ñ6PI>ñ„ôøØA¯å#àBóÐC?ë :âŸcÙÔÇž {öÉ`Ëg @{Œ9@‚×S Ú‰tínãrÕݹÔn$(JÇÅuû„ƒŒm{-¨l6Úksï9YšôGËýu¹Òû›¬£S!œlÑ^ƒæî)uÞýúçîqMŒ6/r®0qÕé¼øÝxÚ¿hEä½±Róš4ãÂÅTîØçÒ)´qÃ錻°²FÞ^3§¨® ý±ÞlùJ8ël {«|×wnvWÚpk»‰¬ÛÈfo6øÜWRÕÙ 4Ù¨æÆœÝ@,—ºCÌ,jÖ§”: ð¥v€°v ; µ5º›q¨³Uû÷oWq¸ª­Ô0ŽñH#°É~Ô$¢Æ\#ËsìäCMDú ý†AôÒYa¥T˜Èìv@c÷Ü”þe­clÓ,ïÝ1Ö¥SmP™!¥Õú ö± âDRL|êRƒté¹tGuưÅ& ±<Ä°Ôæ"z~ògÑÊŸE«x­î=´‚syXð}-†^¹­Þü` %L>ÐfÕP‘ê=FÜÚ´˜Ò­ˆ? ¾{r5z/ º™Aã0;±^¿' J "†Qn“g†Ñph¢otb¡Ä=54ŠxiƒŒs¹‹K°¯ »Jôž‹Šž5°˜‡äÄKGC±›UÓw—:CÝÃÜ#êì|í°Îo‚Ä& ¨€ÙÞ"ƒÒ "v€µ°7žWU¿íUÒÔ²ã´ë),E/§¿ÒÐx¤QáV÷Í“E,.˲Z¾ÓÝþž> ÐùA*Ãkà‚·Uê<(psEV–™9ZÆés²Q>HÊÐÚ?F=;³ÙÇÃDî‚hm“V‚Ñ]”›ÒÔZ„OMÁŽ1ÂëgªÌgŠ@·råĵ~ÈÔsØRAóxdK\_µ©òÑñß«Æ×O§Ó±õß=(=ÿol`¸Žl¥‰Ž a×we XªŒ³”¨Å–^¹4 AíGIäÉhób¥Ã빌²ê*Ñà6…9ÑD‰^4E÷À'ªûký#|ÈΓf}YöÃm•«‡—|)†N8¸¸gûH¡Æêâ‹,Òë*)ã¾ f›í'gçÙÝ—6Ï»XìDÍSBçûëªô²Îšƒ­áÓÅQ5‚à‘’¦*`‡7}•ucºÂ28*x²ºôï×5‡¤Y©[?{·–quògœ(¯I•Np[ÛëÏióyÂê®|)Àý>q” ²œy B²븼I£:y&@Óõyé€Q™{&ƒòÀÁz`FñéRY‹¥Œõ¨]ž˨YØy gÊ8TÎ}(w%øÓèyÈ£õc µ=ÇÒwÙ¾Ò2§†²w®A%·HOÊÎ"ßõ·è½CÅû©™òf>ù þþ§[endstream endobj 1710 0 obj 1621 endobj 1714 0 obj <> stream xœíY[oÛ6~÷¯ úR'@X‘ºP†= XWtN€m~[÷@[´­F"]‰Nâý‚üìJv|¡ȉ¥®@`‘yÓw®ß9ô7ä`‚óÙüŸfƒŒ¡y1pÐ|ðm@Êi´ù7ÍÐ/cXÂ\‚ƳAµ ÐC,Ñ8 ÑÇI‘ü+ÐÅø+,%e›µ>Å!,ǃáOÕdmÏ 0u܈l¦¥½û›¹Ÿ«¹„«ÀÃ>lFW„–+ÐG¥t"ç5"ìµC0SR)¬#\$hÂrxzgm'.¦í:¬¨æ†í¼³Up€%ŸÚòÃû/ˆA‚‰ØÆˆs~oÉh[‹HžÕ qqHÚÒÖö]ê‚öBÿPRiQˆ¥ &ô» ˆÕ„G‰¢6JO°ÈI0ˆãaøÛÁø-Öc`´­aNÃzØ=PE…Œ[›.:RÅÙ¼2³‡#’g<Ò%Øñ-#èuZg…¨mª8Ñ!XáOòe"ÓDŠû$Ö‹š¬EÂn‚ƒ¸D‡gaiÀÑ[p|âél–rÝ`š(êq0;FQ,x¾l€A¿›@%„A¤î<’;Q&-³ÖŒŽ >Áã2rß¿ñü÷æù­-Þxt±^.„¬,[ãm£÷,®a¦!Í1ì„ô¡^ä¢X¨4®Ë¸´›ìOÀ–Ñ~’ù¬i¿ßÎ’Y®¬Í$À#­)aŒ-˜]Âè¡ ±ÒZÔhòL4Ú$„x8"lO’U¡“Ùú½ÓßCÏ/€Jâ»CHØÿŒ?90¼Ó Øs‚ï9»Üòø»¨ëÛÁ¹Ý¹ºw †kT$sÉõ*¿p…ÌY8ýC4Ç=TÖ.®÷Iy€3V«I*&<7«Ë‘b¸y_ Üó\šçË—q1åKQÎŒx¡gÛÎõˆÐÚ÷o„öRB£Ð'íÚ¾=êI픪ôd5àìpÕG|­VúU÷:¤F‡‹/é3o­ÏŠŽI{ù})Mä UpoûHÌtÆóy_öÖ¬ KK…œ×µGýPr¥‹6Ùî5Åæy²åË]Ó¼ßvN´Óøn¨6Cìz»êòšÏe2K¦\'ªÆ3zê¯ùÃDð¬HÕò;Þ*2îD®¿6•1½µ¬è:‰“é‚K—ÞrÆiÜ0R9’«l"r;Ô)fÄiÉ]¯£sÍ襁ÿ¾`'¯ÑÔƒ(!G昩¼¼CP³YUž™A8?×VÅÕÑäùHíÿ÷Öz*…LêÒC3h‘-Uo·¾ýÿÁnÏ|ìÛ£_عЄ+/ç²Xª¢«[ÁŽñL+u(ÉJWY÷Î?´@£q¨½[h,·è‰ñ“X'YóÏ'½QíåõªH¦e-h3^{o*¨mÔ<¨#Ú–ìÌ4˜ÌÇîNW7ÊGBƦj-*ò¹QÓ…˜Þ–Íÿæùéö ØŽªXd«T'Õ>skp£nE.M‹]-¹ÝÝ(À·"]å * 3k¶çË\ðx%c‘§|½ÔO¶»<¦¿Jh>ÕÊ®€ž) Ÿé.©ü} !ÝìJ'”Kϵ˜&¸u@%>Ûž/ÃzÔ+â9Vîšd#©<¨ ž'¼[…Ã×=[mÍ!´0ű®öS¦9“’3o׿YéÆ0c[_ýk-5@Å*ƒÆq¾ ‰÷åÂlùu<ø>ÿ÷©¥endstream endobj 1715 0 obj 1268 endobj 1719 0 obj <> stream xœíZ[â6~çWXó²0Þø’Ä‘ªJ[©/U¥nÞvú H'613¥¿`~vÃeì0a ÀV+4bÀØþ|®ß9Î7da‚,õZ¿IïãÇuÑ´èYhÚûÖ#å0Z¿ úe ?qC„ ñCo5 Á‘ë4Nz}ôÇS˜ÇþrÎå ÆÃâPw=ã˜Ã”ñ¤×ÿi5èx›ÕL-æ‘õpªÍµ±½ûy5ö dH,Žá -±QDÿ†: acÑÅC–Jµ†¶cØ!N3jc‡náÜ~ö§ÌÃNÒ¨OÕ·uÚîšhS]ìqJ¼Æs»S›y¯zPÈ2¥Ó èaG7ÚtÂ0m‡ 9œA[@éÙe¢€]˜û~~ØßâN³B(u±m;f…LrÿÙ‰ˆ¶jIýĉaAÚ¹u¾O Bv] ³ÐŸü°Ð+²ÐB~Xè:yÄa:5%T×k«ÃªgaϪrȦ2L晽î4¶w×Údbcîl–~3"Œ±®BF1¥;ÂËý´˜g…xÞõxÙ9ÉS/Ã1:²ÅïÚ PU¥—</-¢,½¤'CšáÒ Év‚üÚ [ÄfýpÀà?KÐþrð×ø·8Í1%Äí\±A>èIR·à-÷¾xÞUÃCôÙ…]ꪒ‘ÑÙZ]5_?žPæÛ6/DLÄȣ퉉ƒ×–¬1Ð#1”J¢ª6RURÑXàT”t£Ç ;ÞF_ûŸ<<)+ä(È£¹DkÓÒËe˜ k{nôÀc;Êúª 9î5ŒýB6Js›&Ï S0lÕaÎ÷Uµ×³QíWóösQ„r1×ÚÞ¶Wtzˆ„îÈæUI~QRÌ ?Nüü±0Ô#–ݺ$ËØPX>5–'K”§)RÛßX‘qko:RαÍIU%óЗ÷~®–|?£¾èæäçÞÓ[t9‹ïÊ¢´¬c:ÒJ¨Ú«´òöK4I™+O¤¾þÀ t œÿ‚ç|ØQÓiÚÁC=<8dHë>¦™¼S{Ýžp4 CÙÐØ>{_(ÛÚŸø1ýõ,×'c×Û¼eôŸØŠ³É·Å®”ž£ÉE»£Y–Ë0-d˜âõÙn!Fñ"Ï â{öórQ¡fÀ·‰Ç?_]Ntãob{I?—÷¹<†*Žšºl´m ¬»&&%ŽÒP5ÌŒd倎_ '(™×’äÌ/¶³žC€dÙ®hëËõTô4nY˜ÙlÇÓlS¢–¦‰ã®_Ü ºòŽnš=ª‘]í•­ÎÒdÒ9úé4ûñ^wC^šÕ=/ /îÿG ¾A”VÙ¡Y ÜÆ.U9„ɪ‹oÈH°4½‘²å9%¤-@L^µ–:{0£,MêÇ(ž}C½Öº{8‰òs \£^¸a”¥z‘Æ<Ì߃‹p6¡ãŠÃ§0þž[ì·#™‡2˜å‹KÒù—Ñ¢˜‡édoY~ £,\¥Æã–ŠÂMMæÖÑ­ÓPpÌjŒ{þ#ÍUfk‹WÓŸq3·?1Û:mÊŽiÅ–§0×߬ÒNiÙ¬.¶X¥K¢ä¤2·!¼HWF›ÙÕÏ¢tÍk;óŸ®*NÔ^sçËØØúoýØÐײ÷ŠhšúrQ ºº : ÎöT;¼’Õ²{¿X³6õiå"Þå!ïüç1È ›×…¢J½µP²yâçÓ(Õ¤r®Ðõ2n¾s>´Å0ñƒ=dy°1šÚ@š­†>ÔFÊkÊÝ ]*o¸¥DD7~ sÜi}O¹0‰“±Ã@9|ÊcŠ jH> stream xœÅXÛŽÛ6}÷WL±DnV²¨»Ò$E[´Š¢@§/»Ù–¶h›­nKÉÙÝ Ès£ýÒuõZí¤нøBòÌpæðÌP7`LùÓ¼.“Éì•çû°.&&¬'7R Có²Làë9NñmùjR¯#8à{Ì“‰oÒˆ‰˜ÞG,/70ÿ†+ˆgùÍ’0Äóh¢=«‡¼°ó Ë´CÒ §ƒ•®á6c/ê±ÞÓðMtbU3:/Ø]ÉäÛB.‘ƒ?î ü=ƒéã=-Ã9ÍÅU––bà©mñƵ-ò†¾å}Ìþ¯ˆýù&]ñ”ɹüÌDI—˃1 \#øÏœòüˆ];e††+²‘“žWÍ"ŽaÃOYÉ€¦V”°Ì’µ\Ã$~ ½›âîÃÀ 4–öK,Φ–°,ívêádÓv5£·ôCê𥵂Ýl¹hí¡Fã¸_gEÁ1›¾ÿО™>äPf°`c&ð£ÔÀ)ºe&]& IÃ#¢ñ>éˆÙ¦þ ÎÎàÎÏáÑ …ºœÖØÐxņŠ\§Ÿ„²Š1“£ çjKDáéÔ1e´µw¼Ña¸/¢e]vwò, bÆ8nvl«[)'5Êè^·Ç@JAÓ‰P«Áaë3¸Æ4^Ÿã/þ=‚k®ŸÝöBÐe}V,<”¬D㻽šÂÛ£ˆ FRËÙ¤ öÙÓ3ZÁÆÄ€ým[R‘,…·ËÓm²@™úl†íÙ]Œe‚ feÙN>ä'Õ×ð•þ=ÜÀKð x}$Ù²¤StÖ$V¸ (ø:UDä±2"xæå»ÆÁZ`yV3õ×q˜Ë§Ñ®åí·.=Ò‰ç¦å=Œ žÖu1žÃsü÷|Xa¶‚K“«,–&%?Pènyº E‚Š×F?(zÐúòž 9myGM,iÎQGT­‘ÏÔa;`ˆ®µÓnzs//@\À« (.†MEßåœÂ÷¬³|ßð<¿g^{ í´‹²RÁº'žÃþ =ôk÷°õø²ÿ2]2jùæâY ºð£“WZq5g›ñ/ÃÛ°>á²â>Hn.±ó¨"ï»Ú,ÐÏÒY–—øR¨DöjTÎ*H©ÕŽDœÚ> ñµºêÈx¬_ÒS.ÒÍÛ³ö€LRúó_r6+â­B9Z袩¯ÞœÕÝ“$*!Ø"GeFa¶8V'YÄËLpU¯3^ö@"*Ûî²°TÕÛ‡ÏÕ`«-êÚ‚ÑË,Ötì 5NNE‰»: j¨.x»Â~UåqhûJ¨YbböYŠ­}Ä  ‚=fF^™‚¹tí–¯Ø~bó ˆU`e/ªU ŽqÁC¶b"¡%…† »}~:jG£Ûu"›ÜÊkÌdx‡•9૪ý’>Ä<´a,|Œ‰ªG<Ç-æt©ÄïÊ:†=ø¿†÷Vt+h§(‘­`AÅÅAñw[ùúûÔ9ÞAMßÀ> sv¨‘³…¼‹Ò2Síõ€Æî¯çH¶D 2¼ôù8¼‹ÅÃRÓ-Þ J¼Ïä­nY´fc1ÙAû0޶Ís$["o´G0þP•Fñ¦-[±Nu">(œŠ²­<ݧû¦t®AkŽé‰îÍ À® ñJÁ’,VR`¦@i¼: Eƒz”ŸCǧ?{¹Dªê–b‡¶Šù¬‰lçÃwœO{¾â Óm:¼íH¶È±$¸ÚzÍ3ez©^\ÃÀ-/7HE,%¢yXâS{*¢Bvn2éŽ!Ï?bh©0“ ^W¯e¶EŠDXÅÞ甾gžLµ¨JT–Æ÷]!i4^÷d `7ÏФtËo-â!žøÞ>óˆ¾ß„×÷(twPl“„Š{¸ÒˆS7×ßÎ'/ñç‹2drendstream endobj 1724 0 obj 1565 endobj 1727 0 obj <> stream xœ­XÝŽã4¾ïSÂEÓLì$N²BH â¶p3åÂMÝ6l~º±»3ƒxÞž”ã¿$ÓL³³h5ZmœŸs|~¾ó¹oQê?÷Q/naiŠr¢Ãâ킘ÏÈýWÔèÛ5ˆ¤Q„AëýÂî#(‹QÊ2´®x·\ÿ2„ÑÔ %Ȭw‹;,UW6´k—4 B¾oÐVqgQŒï—¿¯|b`›W„êíx?£y/ºš+Ž6øÄÏRl–ˆƒ^VÂ$Ãï–D[€'šV‰y3Ÿ|­¨ìqBJñýûÕ®jLJŽÎA#sEÁíu E×J)vèešŽ×íÚÆŒrŸl$îó¿“Q³ÊÀÅI¡¤Z¡¶AE{>Uà“T|ICˆy’i°Rä «w³šcsŽ|e¿±<ê?Ñ0ʉûÜLOèÏp‡¿^®h’Cñç¸R¡JØBŒ“±ÕÔA’é¬ÿ·ƒPP_ˆ ‰>Hgk¤‰’€fŒÁgB’$ ×\¾=‹Žïž aa–¥½‡íõLyW·MYÌŠœ¦€Dý89 ¹Í°1g9~P¢Ñõ"jÈIsPÇéu¢Æ)ÕjêbdÉÅȺ(m¾Í»‘ yâÚ´<úà„ Yóª2½z|7›†ÓuMòÔÁnT€‡ó:Î3:ô±Î§Ùíóðû¸‡Yà>‹„ò~N×½i‹0‰0?Ù€ïÊNªH)aj^ÏjW×Ï©Î]3wHõ׌ce³Œµc4£”޳>u3NueUÍzÕ}úžÝè¾TG$¡£gs¨ºÏ^¤ IÍëùüEzá³g»^”=i8Ÿ Sð¼a6ÎïæÔév»AEÕêAùÎr„8Õ), .‹ÝA ^¢Q³F~›1RñnIÒ ÏS†âµ'@ W.9ùp[3¶ Þ¢B;±ï ?W 9<Íð@ƒ”Ð7ÆÄŠ%hs8ÍcbtcÌ£æ\oE'_iK`uEiÒ$³6`` s9 à/W-4ºõY»øÓbý妃ÀPùgÛ(8äb¡å´Dô¬„ C/l½$WýÆdØø!ñï÷³ñ!_BTõ¦t²é¹BÕ’Ù ©åÌ{œ/¿xJ²¨§Xÿæ„Ø¸[ Ì‹û¦¸=élŽö×g©Ý@½¼&ŸüêqØ}‘ïA”;@nÇãžqý´Š2Ød#hŸÓ¤¯úÀ¿Šñ¯R ß¹{Ìb tp‰³K~¨Ö?C'Šï¸7^:aøtVƒ¬_¸Øø{Æ€;y„‘»¿á¿Ÿ¹Ñ¾>:ÙŸ Kðz%–«õ}:²^KQYì&m!?M[%D7± '\­’ Ñìú²Ÿjp«{NÀ¸…Aoî÷ îçÛ%\ òœæXGȾuà•ØûUDMTýsWŽúÔ~½6Í®€ ƒ;Ì0Š`µíéb@ƒf–€Þ[ϸõt—,ý6êÕ °ï½‚…èƒòÀk¸hßLAæ‡Íæööo6—X³.<‰¢œ (û(IÈKËBHÄ‘>d%+5¤Ž\¡R¢+Àlæå#ŠÑ©-a¶4Y &žÒ;\XWbâ‡Ë{ÃR—}³ ŠÝÂýlãe¡ôj¸'ñFù7ÐÙ†±úuÂÆÚ"{ep›é“Ñe^enibç‘{†;ãøBÔ»_Žž¡™AÛQH!‡—&ÉÎ7¸éƒHO%¶/Þ,ué˜aAÐ!ô@ef„] =,o\áÕ¤6z¦Ç,ѼÝà)[ð”xd!¼FÞV¥MõîCå^’ü¨ïd|{wUõÝUÝöäh8q¬kþ¶<6´YÎXºÀsgÑÌËÃÌùýÿÛ˜ŠAxß¡¶×#C‘õ½x\Js¹øvÆû‘ºKO³4IuÁ9WYš!å1 À( "˜!–8ÆAŒ^kP¢]ÀÕDÿÒÄ _7R,Åð;vСÓÀHæ¯k}*Tx5Pô¼j!š&¸j¸îÚ(:Àú‹âÜ -|‚6`P7†þµ ªÙ!ýËŸ|5ºÈ`(I °¥xø ˆûå/H$Ê ó.¯á&ó€ä¹®y÷ˆ6p|[„ß­?Ãß«:܇endstream endobj 1728 0 obj 1854 endobj 1731 0 obj <> stream xœÍXKs㸾ëWà¶PbÁ¸5ÙT%•R{Ødt³s€HHb–"5$8¶v7?!ùÍiI™4­™É>Ê ÐÝøúÝG(òÌŸýMN«û0ÎÑ¡^yè°ú°¢ígd’úÓŽð @”¢í~ÕÝ£H„ˆ3¶§þi½ýœ¡ÌçöPÁ™mºÂ;Y¡<+Twb ²ê·g~Z¸Ÿ–Í.Wè62 tT‘nÊý朩äFj|•ØΊuèÏóCü1«³+ ÿ¹ýÛëDÿ°@ÔQ@O™>¢’'”ȪÊTŠÊ5€]ÀðÇ5 I,"U…2½ÌmÂŒfñx×}cqÐò½ ¦ös1¹‘^ÐoÖ›8 ˆðÙ sV Z_‡wV¤rÆò&a ûR”r Ñ¿èë%CÑ tÊÒ$*÷fwI×K„k-+*uVÒ0¨U¢³²X"÷õãzÑ?‰ØoI¦«ìœ+ýi4þï†ÐÉR”Åþ+RY¥èP•Íyj TôÂý{«’ /½¿Z"UÝTréú7 ö¥’JÕ ˆT¢£Ìªs¶¨¶w rÌÓa\ ´tBŽ6O8 i4ø|„ÞkÙ…(ÀÒª 1øYC(P'Tž5Õóoß',¤¬¿]m÷€·GU«õ&1¡Œaw­Ûˆ>É‹]øš$Må¾Q,÷Z¹%‹°,º€$°»ÂblD³ñêY;Jï†ånMcßq3:´/{f KG“ãJ•¬j™»£1ˆY}oWœAL®³Ô½Š \hdåÖÂÇ»J&߯[ŽÅJ×ÃѲÈ/-hFyDúXˆBêcÝg•dûKVÜÇ'”M‚òIÚžìZÚá¹ZûFe(píðô#Ã*x‹ïÅ$ Îrîû86Ö-#.¸Þ½´HRDÔ¹ú}2¹LâßxY}Éåb†uLÄ­·gx÷·°Ã¬gCN¸Ž(~aH‚ ò½+­e‡¢¬TÚ›DkÃlÇ'"îþ7Eªª\^È`¶ñ…qÂ6_kˆ×Å¡&1Îü4æ¡ erµûÈ{"É]ÙÅ >âƒôQÙùWDÇߦñ˜¢§,?—ç’ºå[ºxðòáÆø &­ñ÷Ÿò7Z2º/L]'(¡öYÓ²……ù"¾‰:—@¤îÀ™Vj½B|S4†Ëú žG|XöìÞÔÉNåeY(ÅOWêÌ¿]ýsáeÄ«¬3“(Œ¦ÏUʄ䳲©êß+åó«ìcº8Ž$TI äýC“åþÞkt›OiÍŒšBŽ{Ãíý÷³ uª¤ß´¡`@ú{º¶O*>Ñ@§±½W)Ô9ºröo:–UöCYh™CÎ]Riúó#:ŸÂQZ¶à;)f7xüÀ{¼§Mà‘PŒ0œf¸C™CB¦†N¦CñÊbÚš{Ãýë±[}d5rg (·¥*‡Ôºþw¦{ ”yN‡¦j¯zæ™P¾Œƒ@Ç[âËQæû§5iècðÈÒOJæÑª^öÃüW³š\íç¼3öHÄ£›ÚßWÜ2æCÇtúü`×akP4Øê²õÎB¹¼ý¬ocägJ¼AªD‰Ê!¨·‰#²9cB "îôÑ– ³;âôº³|.'5Ï©œšÓÀip [n×EÏ2bçi%Ú{'dA õwe­ß'Ðák?³•>7ËŽ?Íã¿”TÙá8댰˜~¡pâÅãWš†ìær Wåy:ö»B®ÔK-ÖbGE‹0‘znVÆ<ˆ¼<¸‰JíûP©¹ÈH½DÞ(þN-îg*SšÚÀ½‡Dê쇹§Ò€ÓëÜb˜N’…¸»ÿŸ…ûÔw¹14˜9eà™¾p0¥Q髳3’¥†Ä·hKÍëác=\á¹LêWsèæ<£<ÁHLý\y3¼ÆŒ3XÛèv)#Â_;n!…æÚ O*™vSŸvƒãÝÅÝòÛ“Öå °¹.>>N ­žu÷Ž—Ò@¦‰ãNš43ÝN6õ –a;  ¹4C²n7èN0ÖNAz)ËžÔËäÔŸ·3‰»n²áG>Í5dš¶¶o&o¡ç½» vzÀSGÎŒD¼/sW}ˆªû!ÄÒÝð7t¼s;ÖåÀ K¨Ê|8nµÒÑiCŒU‹á†³ŽׯŠA“—óQ#–¶Œt×—<—»\Õ¡GìTêû½ªb˜Fý~¢Ê;àœ5&|\“—ƒÝÀ'ˆb3c4#]†þ|”•L´ª\vWu ª^õÂ×Ç£ÛõÆç”(ìºÓv ÕG­>4 ÊŸÚရÔîusL»áAq˜͸Bw!êlÇ}.öjà×^7vÐÑ8qò;Ž` Æ—ÜÿvFmLîYÛ&-¸^عv÷ lñh»/c:Åp芬u¼n\;Hò¬6ÁÎÙ¬)%C•:ɬF=R˜£º9$´¥ÐÆÀ{Áã¾ZQ(WB¿£`íS“­†œrñ2èR0Þ'¤÷èqŸ-é‹É`a—…þ²]ýþþÕ-dendstream endobj 1732 0 obj 2001 endobj 1737 0 obj <> stream xœåYÛŽÛD¾ÏSŒÔ¢:«fê±Çc›D‘*$¥áª)ÒÄžl >d=cvÃ;ÀCpÇ[òωÓIvWí Ú‹$öÌ÷Ÿ{ƒlL­ÿÚÏ(›½ø™ù>º–3]Ïnf¤~Ú(Cß.áˆïºˆ´ÜÌš{ù,@Ëlf­Vчùò78F˜ã·ç˜Ç–ñÌÚ•I®$úmÊ"Cj+ÐO…Tï¢2Ù)ônŸ­‹mŠ\5¡ ,ˆSc¬V»ÕÊ@‚_ ”WÙZ”gP„æýµ±MXh=Gɉ¹Cqº®õÇœÀ·À ,‘Ï?,¿7+F¬ˆã3Èß`¥â¥BÅ%ùB*Ðý5ŠŠ,¹z‰DKÄÊÅœx Å;…&Ĉïa°V¹ xÔ.®ÖFùÖ%hMS!d¬µ3¢]I#¨YRk8êÝ83yP–äIfö«È•…жâŒ_½5JwSñ9 ÁÑèX°òœd7gU¦ð1Û §È ÿ¼%$hn¼Îk÷°)±öÚ“tÌòuÑø Ü! ˆçàiQZÅpÅ…B|£DYßÉ %P*Tý»@u"¨_À1%bˆú2ëðõY<õD8#ØuCÒ ûÄd¹ååîŒ žš6)?gÂ/L÷s®ª’§g *£Á²FÓ¶sàU;´ÞCævJ2ø­Õ–U2‰šôÙèŽ07ì”Ç(f~ËØ?‚.¶=? æLþ¾×Á¾Œ™Ä|\4ÉÀºÍï)…ïãÀ}¬ÔÃAx`ƒôAb¤b£þüR\À}¬ cÊ P&×ÛVÏ»XÈI4|¬°ã%xõH‹!s=Ö.Ã~¬.À§˜>À ǣسÒûš䨅K]ìøÀSÄwB¶¿³nµíÞ:o¿¾%¡›HE÷*´¸„ÔžÈßÛ'^hUrüº»É¬Z®–€cÝn‹þ\ªÙí%r8¾ v‡G,µåHXÅf  ŽÉª,‹*ÙÑݦå±]-ž¿®µ­múÃÌŠ‹jBkÅB ôKhS¥i­ÓÚ¡]ª‚ºË¼^SJÜ©M³êö˜5E‡ÜÇtÊî. 8Ü­tÅ›n‘ÇüAkÆgŠaø¹Ãæ*öÑ/y,Ê´YzžoíQ³²–SÂZW0¢A™¬Ç£¶>6 S¥àz¡(wPi @÷ZüªÁî!¿<1·µX2–Èc==É}šr=r–Ä‹[¹‚fOÔŒIë+S:'y%øvË õv¼§E<Ž•9OëYËHðÄuð¿˜oASp_¢¸2Ÿ8[%‡ÒÎÛN­(£ÝÐ^ƒÀY’ƒ CÞö)ý¤bˆ ±öÌþjÒÌ&`Ý"ƒŽ,ÞFY½ª·Ç‰Ôex- î¸ýˆƒi‰×›@ÒÕæćÊ>P¬; × °¯ùÖË7lÎè7aاƒDħóˆ}¿ Ïwû\ñ;$«,ãåtB›ùúÍröþþ/øÜæendstream endobj 1738 0 obj 1796 endobj 1741 0 obj <> stream xœÕYÉrÛ6¾ë)Ð\JubšN™é¥ÓK[M/r Û¬I‚!@)ÊCôÚ'í®’I”’´éx2žÀ÷ï+ß#ËÄÈR?íï([ÝþêQŠÄÊB«÷+\£öW”¡·›úа6÷«æF” êQ´ÉV[;¦Þ–a´Æø.5ž˜d12\ÃYàSÇØ3'%‹d²gbýnó bP„±‚%þójóÝÖØ<2Ñß]x¸ž±o€\ß`ñ(ªJ”äH¼¯Â’¡~ZéÀ!¶Á¤€3ÉJQÀ?`.†Ï|d(çÂŒk*T}Ïs:–^ݾŒdðB&<¹£ML;pº7ÖI`™nO d \*½ŠÄy«B[2ç < œÿ–œxœ&VÂTr4‚´ƒ¥ÞÂ#îÙ€ø&Å}DiÜf,’ï˜Ä'}¥Ðû£šÓ(e÷„¨@ò±#‘¥ÅP0)ûz{*S`Ú6Å×ÊD!ú*·5Z>ŸÖXy¢ç¬küŽk¯^×V|xÙ>ßW€±Éó Ù½ÿÔ˜.5ýçÆìyÕ®¦IÃÙ1- ¦óÅóÚ„L*Ò'”A*¤xE ³÷`75óëtúÓ[1¯²+¯¶âíYV:j<оÚ]¨|ýùvð×EšDI#}Ã:* aÕ +½ 0HÜϖЪ(`8c¿'ÿ‹ÌVsº X˜A =;™äƒU Dm7êÖ;ee˜Ç¼þ³Î6p%ãûOH%Ÿ5Ú|lZ'Ѧ–*j2·Ïö@h,{;Á»ý0™é ÃŒSq|‰†EÊ‹ Sò/´jõÉQ}Z¯dH^$²šE˜ô•Ðj¾%N'µN@.%Ï ¥yHò¯5m7<ª¾k}5¼cCq«ò6ôÚáƒ6]óƒÚ„;ˆ–Y¯©F}¹ž¸Ô“‰Ýà2r;–òÃeäÔ“fâ¸ÚÅ®dáS[xçɨ‹Hò¾öñ¼þSø@©½@¾èå&fyX|¡63wtA©h˜«sõð¹J0R.Ëpº¾ÑÀ\8k}-9a#- ü.QSqüÈʉ¡ä+.=õ— µ±ôÈÙßkA²P²2 SëóJíwªb6à´BaŒ²J$‚¨£¸øŒòUÙ¥e!æ‡ü³01äœk×–¸¦ÌaTµ ѨšË\ýr ®é—)1cÅt¸}}“•âuiGs)”®°zPŸ¬B5U îMÓ8ÞîU?Õ—®1¹Æê1Öâ2Ô>’Íí @9 (.‡ǬniFzs}èøº¥È–åq_îo±ë³`k"J-ŸT45_Tw H6]Ì»á)åpuG $ÒªÔ©¿êb-*¦š/¼u€ì™Ô zXì[ã``RÚí·#xë$*ÕîÑ»µzòãfõ üü¸Áendstream endobj 1742 0 obj 1634 endobj 1746 0 obj <> stream xœÕZËrã¸Ýû+P³H¨I„&À'ª’,RIU&•,’x§žDA§IBCB–Õ‘È—æ)H¤IJm—Ýå…»M<î9¸oàWäb‚\ýsúäŸþFÚT.Ú<üú@Ìgtú•äèÏ0$òfqÈœ-/g??þýrÂ0cñi­?ÕkeºXËù¹G 0¿ùÒ"Å7±B™,6H‹~½âœ„šj&,DÕ]S8É^ Yù™9Ç­e‰NÎK1ö[ efÝ9¥žùvÞ¾*þ$·Õ8ä©mZ!=£.v];O5•A숎W¸Šj_ ÔÙ$ 8žtnNÑ‹ƒ{‰ù˜2JÛc2ÂU;ž´ê D ©D5|XëåZê›@ñ\t¦ÃÅ4¤÷b‹Ìc ­ÄzFàÈHè;|Ÿ)Ôj½ÇN“ü“ j¤þoW¯1!¡ÛÈ´ºVhÉ« i:,Q0"ù6SJ<«*ýÚ£Œ}#·*°p4G`ù1‹XÍ‘Ö2/‹¬0Æ!™ÈÕÂ&K‰ œgÕ5ê1y6cR*­‚è‡kN"ŠWW©2-6×Èi€ÃÈkäû¡×IEg[µØeñÀëNS†BÓT Û5—˜`Ë`¶¯îÜô®[ÁWgžË"M^ðs[ž–»´¨_Êo·Û+d¯Ü-Þ®½™-ãÖNðBN­Ym43? ·œo’‰u¬Nõd2Ñ1·ëùc÷~Ïá0nfW"‰B;Q&ûªJeþ6×b‡´_ö•J×Gô»ûó+±ÚÔÑ&ðZ"mŒ.Ï‘æv· ÑÍóâ+H°$2Rw¼Ä´˜ùl¢K¸Ò$ô=aŸêŒþÝáiþ]ð´pÿÒZº@¼qigóçGÄObæSòM™€ouKRi·M#ú ª9g2ÌR¥ÉrµõvÍÛ †“4!Œñõl2Ø: ZÏÖ³‰NòÛÂlÄV,ø{©LS§Q¯ÏNõy6ôµ Sè¡*î<†UtR4Ø›€Z<1Fj±é­ëŒ]˜3Ãçoª´Ù"pÒ")¯D]IÖy¾vƒ‰ lÆ$ºK¢9!/ŠÈ!Ý;éé×&¯Ìˆ«=À#Ëc#úÝw'# Û:ηÃ9Ñ©…e]*Ôø.ú:Ÿ™­P.ÔV®zúWzÏÀžæ¡ îÍ@î÷Û—\1˜|ª³)Ót`1Psˆµ(K±ê±z¢Š… 仸ÍЂj·{Ã…†žò]ß4˜ŸZ>åÂÀ„©úí[`·¯Ël=uSûn/å¤ßPWç–Mq<åâ­@×Pô4P›’ƒÔÝÓ]hIHõ³¼Í£Ü«js4sEíâæ t¨|Öþ‘Ĥã«ô{Ĩ¡ö?ÇBñg{æ¼<‚» >¸ ˜ò×LJÁÏÿ‚endstream endobj 1747 0 obj 2125 endobj 1750 0 obj <> stream xœÕZÍrÛ6¾û)p¤:5L$Ì´9d¦—ÞÚú¦äQÌ„? A9V¢Ñ'í‚MJ¤¬8VÆÍàâûvûG~A.&ȵõo˜ÜÜýpŽÖæÆEë›/7¤\FõO˜ ÷÷°…3†A÷«›ê9‚„‡x Ð}rãÌóX?êÍî?ÁVP^ïõ)°ù~yãüV-²‘`ê2Iêå´ÿ,öëµwÕÚB÷ѽG¥‡©¤´ZŸ;F(צ@±žQ»„çqF<,…/Ï>ÞÿÙ‘KÝZŠŸçIö¨ƸÝWP=GI–„ÊzÃÜJéK` N´˜‰¥¤ÒÙÈ„*Öè!Ë£oYZ¨8ÞõqR`Ÿ°¬¦{•†˜ #3¬$ι@I”aÒUÒF…?±’,úWW’Y?èüJ•T]i³3…NÐzf¯´/…£6h•å¨xˆL½8r³Í:ÕOÅÏÈ1Õ3ÿr…óTLäú9Úô™îÃÏeJ\Ž=Ù¸| ­w<å I§£…ÊÍs·DrÌAÀ^ñ6¿»@Ù¦ˆ²Ôô%P̤'_ª áb_rÖè¢P9$ª,]#‹·ÏªcSرV›>)_bïMI.è¾!5wb­fÔ†€ty+¿v%£Ö¯£´¢<âÇà ný~°#»X´ŽfÉ"Jõ²ÁaEF+©´/ƒÌD+cŸn)§ºÅвM®ʘ¾š`ëTo õ¨{¨Àœ¸ô¥úò ¦¢½÷:Ö!„¯nëÕˆÇÛ½i6²§{ü« <ì °h $×àÔs'J†˜Ta\hH?ºÍ?~™€Ò¬Ðc×Ö\}9QÔ1ÊåeyGŽÏ,-ÌÕ—øZ3Û…3Ê {¹ÞÈ“ôh]o®,£–˜ç;_[M¸Djb ÓÂýP˜•orqn™v¬œn“…ÎQ¶ÚÛÛït¿¨¤0ÊU'±N×ÅÃ5s]B˜%–aà9j[¯`? µü´5E¢ÓbÓƒNöß¹³Œò ªæ ²TWõ‘Ý\ψG.àîrѬÃE õÝ6-KÎ0ÔGŸN;[³ÑéòÄ\[í9vI*^ÐŒ:…èrA”x$Î9ž'ñ êx /Ãýý•Jø0,hðb>Bbû+RªnIuAŠÚr,°¦+v›± gY®²t€ið†<Šù!ÏPÐej)L`j¢o¹l2ÓïîÁîX¸ër´àÇ8FáçSCM»Ž6jkôˆïGCIp²ïÿ˜ÉŽÅLÀ?5dQ2àgP-˜hªz]ÆmDåm±Ñujá±—Òõ]L&,à.ƒG zKŽ!}¿˜1>Ñ€èö] ¦6y€^` AçØß'—j¨Zd(+ ³™¬Øl“¨|¥—´æß5°pÏNâ:@"@9}¹nà;®íÂmžCa=Y ñ5›Ì xÑ5ð¬hÖ£ ·¾¡³TaˆÊ q*nnòÔª­•¬ò‚§¢¥¶³÷9åñƒÒlô¨eÖj‰ÉvµUÓ}/Æ^àµs$0æYXÔ}]¼z_ÔÖ¿R%é²WÉUX'”r寥†+>TéHù–Ì mÃÌÀS )Â…ÿ¶¦câ˜é&—âûÝïÌGßvRÈHRØA<‰`’ÅÙxª7¢….¾j–ƒºÑmŠAÙjõO}ŠÒeªƒw§£Nƒ1¢ƒ ' JqåÿJ/U|“ý›¢z˜<‹[~%Û(]Ÿ&·½ê/5ªr|›.u«]õ½Æ9ŸjÔì~99ÑÈ¿Ém݃ f 8Iø lgì<$×<ï®Æa]Ž–YÐÇgμ¡=Ú4_Ï”°¨fÚÒãM—\Òlt1Æ1]äZ}^¨ÜÎMOúÙ§ êæ,Õ¨Þlý«•¯jÑ_4xnÏa¦§·×˜Ä@ÏF&1­ÓMÂ<MîRHB1wIiÇžD_@áßܹ¹Í€Z- ó̘ú *°¶{öçŽ×)¶oIìÆÓ÷ɾԾh¢¬ª9!ÜY›þ €HL|W¼Ôd‚cêï9±ñ¯¾½¢qàÙFÿˆ°òxÊüÊNTbÏóHù”=ýcuÜI»ŸOQÀ,°ï{¼|àî÷>n6ÙauOé<¨|в!4cÜ2_ØwÞŽÙè0ZíP¡Ök½<ò¥^.mU|§ªóVÁ–²Zd-žÃ©üç`ÌûaÖ?Iø§N™¬SѺ¤ï )-ý#@µïZ-î I—b «3þí‡uLHà¶aýi/p‰Ú޾ZÐò‚âÙ ýžBœµo¿+ˆ³ª…C,ÆÌ¼ÐqVehJ¯¥°[É­›<*)eˆ¡P‚s¨0ÑDÐçö#àdœ7æýgþ2Û$±Íÿ¸Nà.ðÈ÷7Áßÿ呌endstream endobj 1751 0 obj 1813 endobj 1754 0 obj <> stream xœÍZÍr㸾ë)p ˜²0@â'µ•Ãd“lRÙªM¢ªfr $Hâ˜"5$5^ÏCä²o·o‘À?™”­”¼Ö–ËcQh4úëÿç3 E¡ýiþ®ö³wÿR¢m5 ÑvöyFÝ2jþ¬öèýH$çˆR´ØÌü>ŠT„¤Ph±ŸáwË`ñ ˆ¨`²¥â„Ùb=ÃßøE¡[‚°kÚ,磽1‰ýÚüû`)­ Sxi²"`ÑŠGø!1 ÃHâ;”Ô(ø÷⯎×íù!#Tµ"ügt† ”еçüPË9Vجѡ¨Ò:-ò†k}N9À‚]sÊßwË㈳ê„Nâc¾6e–<¢Ì8 ü¥"Ÿ |»cÍÙSAþ´.Ê4ÉÐG¼*‹ª2몲cé÷œá¸;ÏqS”+ƒvÀôk‘×ÀøEféyfi^›rŸÖµÉkpT»ËL2=©g]ÀóE¬'œC¼ŽïÆ‘÷ÝM‘YW° 4~Hó-*ÖÅ*”Ù#*rø§.PeVökôMcÿþ`)Òúësç±O±2I‰bQ8ËÆñª‰z¥xeó¾¨Ì¢¡c£zgÀç752ùÚX>NÀ¥B-¢Kðz‹WcØ¡j»ü•À.Óíîn)H¨®‚ ©7Tk—7¶¶Gû‚¹Ø7¶vû9s+(SZ\$éa Òë—â2I+nZ—bÏű *”פZŸ;ˆë7€Ø¤k?˜òB¬2$Š^pÒs9‹ÖAmÊ&ìùê^ÜÛ³KQÓ# ¿Ò˜Jœ3›°æ«œ°æ HcîļÊmÃSS–okÊ>ÿœAÎøu°„7²å‹Pµ“ó*¨‚p>pÛÕ¸Ç}Ó겂lÉ(ÍÏA–$âñu#`¡‹_äâx¶edD_‹ºÎÌù— ½h.žíRÔ f®²Èš±æx8Sw¢ðº^N…Ùd|Ë·¾n&é(ÆSãUœÄòºÚË$¡2ê`Ü9ßRî«)óƒíÄUéQI„¦·‰Yé–Ð}†Ÿ2{HÀô×™©Ul5Q¨ß »zQÐ _tp8ènx-°š¨ß7Þ=cç‚^¡®ížzþĸ|S%œ‹ú_ÄóoõSØÏ‡=­õÿ ~Î"JtȰ"L0íEû¾¨ê`ÎÀ—¢8ÆÅ¦ùq ]Gó qs_×.FöZ´yÛ¡p°–dUÑ.2ì®øÚ€k»$)ÎÒÜ ö>š)ûõmYU¿½6ÂyQ›ênpꀯâtÎH’”-¾:vZ°z¢uºñ7Ô”â)¡ kÉ4¾Oóµ3Žõ ¿Í¬<¿™ÞÃ3ecÿŽ,ʼnÀ­Yï¯j‡,DgÍŸ&®jc`ßÝã;Ý °²ø‡ïÿhû‘sLì×Ì*/œQ݃XÕnÒ¢±ªãÀ;O­}Ióm»7ŽJ~ÿó×ÔÈò£¯Ž¥·œ§hh—nψpã‘Ý™Þ îÁZ±?¦4ÍÛ›¿À؃“|°Üƒ½#Ýõg,è͵fëñ»®ˆŒ‡“ÛDoçR©ÚàNòõÓüåàµSÑ ‹x—x¡Nâò‚V ;¯S®¥•›òœÏ­ê–H9wŸCPì.É·Î.~[ÇC9Ûf&ßÖ»v+=Ùj GïŒ`à'•.ôÕOŶûª‚1±kCÇîzÂâƒuËVº¿ä½tÉzí^@ݵȢ6QtГŽ\â:¹¬^4ǦçØbœóFý°kl?œ¼Žà'¯#~7òÊ\ºŒ)XÚÙ¹×ÇîELi>MUW0¯%µ¿f¹ÑÒ ±¦BADwÿ𒲋ƒÉQ‘w77#v<º/E?k€&™ šûb\êÞ†«m#~ÐË«8~‚CH…(÷8ì…qý ƒZJÃÆ M4DßšMrÌj™"Ó [‡GçèýØîmÒHùýï“ùpA«YÝsÉm„Rlòd™Ÿä¿m(½/Ò0Á9qUdé AmÚîPõXÕfßÓ›d6Y²Em8J2Ë9>¥©wéêøc)Ul)(Q=MQ×Åí“2°’‡œaý`®Bæä {Ê24Ã6õ»%|a¡â¤åxéÖ]r„¬cjô°+23’r² *O»ëÁ\‹8ØlŽÕ@=HLu,TÕ™=SòÐJW?x"† X+‹ûî¹±Û ž jeœYãº4 ù“ET¥_S¼à@Ùª[þ$©m€5NVµ-dÒa¶šdåŸÒí±4k´L*Ó0”´! Ûn©'.«’­Aùq¿´¥N(ÊqOäõAŠ…žmã …¶½Ø§¶ïѸ£Æ‹€Çþût?=Ø\Ô¶‡A•9$eâ^ÀÏ…mñ•ÆÑSÁþlÚˆ¯dÊÒµuS!c§(rçÈJåÂàÉñø;“¬mb­^Î Z#ŒÐÓ©oU_üO Ö;ÏNÕ83È;Dü†wȇ Ì4DPÑ¥:—´tQ2êo¶`txÚÍS®‰”íHùÏǼN~DÕq1÷ˆ>BŽùØ-\Ìþ?ÿ;´ELendstream endobj 1755 0 obj 1966 endobj 1759 0 obj <> stream xœTMÛ6½ûWÌ­Ti9EŠÇ¶(P¤I?6Êi“W¦eÖG$:»î/è©¿¹CIk{íMZH€aèÍpæ½Ç÷x‚Àóü–ÍêæVi Õ¸âP­>¯pú ËOÙÀAP ˆPlVs!B.A«ŠfuÇš.Â,á\Hö%B™˜<Ë™k\ëaëìºn«(ÎL.ÃP¼¢ö¯ >¯W( x³*¾¿c¿ú­kaôÄÎS£ƒ¬kl£ÐÛ¤‚͘rk[z7L-Ίývpã¶Û­£X™L„úŒCßÕ­Ø×ûÑ×›C#J‘ÒD¾ëá¾ó¾k`ç6†ºÚú#ü×H„}í3o¦3Š…TôýýÔ ß†ÃCdct¦˜ZÚo¤³,Or‚µö~çÖÇoÂ"ÌŽZ±ªn£Ø¤uHYÙ5ýÞ»5lºJâwbëX[[;×V~K%×™ó k+ Ž<Õ“6cý—#ªšÄÇÞÚª­£ï&ÝS³è.òD êëû'*>=÷…Jó÷;VZ_w4w.µ ¢'sï8•Ižj„8€oícÝìh÷ͽ ÛÀ½ˆžt*ã§é뼃±·åì\b@¤èPuE>¿UÞ5°®WÎs)Á'{Ø=ÉN³–v·;±ºÑµ—•‡‘„œ:ÙCí·S·“¡~ÿ2›_"sÃÎ`íú Í7A]XðªbÂp½qYðÇì%ÂÛêLa‰˜ä†iqÚöÖõÎú@â3‰Qð3‰Ï€Ëzµ €ÑÛvm‡“ßmóO™åR~5ጛO#®T¸X?È‹Ïõzn#§iϯÚ4$”¶_Zå)¦Ê}ÂxÑ:9ž§Í™3(jèx)¯º­r"! žy³ìÿúý¬[¼£[8»ØÉíï“«h˜Òå¶}1#VÅ ó‘2Avu&'–³48òÚ-E”we†Õ -WW­õû!°É1 7ò¿Àtµæ“{Ê–P_© ÃÀ-Íx 9‰F„غ ¹" N7”½SØéOa'¼pëéÌ¡&ƒŒ§Ü»¹Õ& W~ 'Áþ¾,cLg!Îûõ;7çaÈL9]ÙB¡}ñð ¼\×Éfâ› ¶ûn¬—4T" íÛnqH¿o×ÏbCçF¿Gär72%¯ã"x-JN4@ A J´4O.d˜Ë™eÒ'§§&Ñzq3¹´õöÆ}CÒàCù! %?«?éùÿ]9¦endstream endobj 1760 0 obj 953 endobj 1763 0 obj <> stream xœ…XÍ’Û¸¾ë)P•ª˜Úq ‰ÛÚµ9$•K’¹}€HHâÿLP¶g+ÏgN7@Pü³=ª)©ÀFwãëî¯üL¢’?ãw^~ý·HSr5‡ˆ\ŸÔ>&ãW^“ÏV$#TçËÁí£„¥"dŒ“Tpò\^‚¿7…>Ò$Œ¢, ¾?=ÿÃï£a‚;O,âvˉ¥¡La­8ÿy«ÏmeŽÏ€4,%2tv¢0¥yþçáù——à/$¿©^åƒîIÙ,ñPÊ8ø6Ââ'BYdM?’6¹êôÇãlaì‰pq|‡"¿'AŒþ|×M® áÙøhï™Äg¿â¼­kÝ KÍ4}"qŒ"‘²1ºß•€´çù/~±hQ./sU‘³êaœÏ }Ù\ lLÀiþDRø§àâU‡%G ‚ßËk90±e*<–Ù—#ð²8 X`ü'Zßï+ÌÜC8Õ{pî}B:­'¦ü‹åÉ2»1¥Üï Tž«â»Ùq’³P–@naZ"̉“_>y›…Õ¢+Ý«¦hÉY«q¢Åí£fÐÅ|³Àó‘þªÒ ¤½ ÌvÍí6cŒPâ J^Њè´€t”º\C‰¶!M;hÔAŒ"î•w­)‡[‘7P`BUs#êܺ‰³yR¶‡ãUí‘%ÁWo„F.Ï¿ç }’±—¶ÏÑëð2à“HbïåMUb¬Î”\*5€™K Ô<œ_ðMc¡ó$xƒ€_5Ü{ôŽS{²pp¬ÖñPP®S,Ætž >|4ƒ:²1™C»$_í:r+–_JSž+½Å¨vðR™Îu9 ð˜lÍüÖö…EšM¡T=í¦1·G|ÀØ„ÿzÓ éà`€)žÙÂyð=yX2²qÁDç—t^^Þ쪔~u8ÎÐ_ºWW£¾m]çŠDlêj\^ÔUQØŒ&º´ ¦d®ª*ˆ1òæòx¾¯Ô›=ŽƒAU•‚LÔ–Wd²ÌbHŠ)ª‚Š„l)!§!–ÁZ’œª²ÑðK¾Š?¤ßÈWs^@sûisxFÃ,‘|::…Ù6ð¦l1¬cÄy¼I®e œn‹n Àº~}îýŠ)ˈE;ØŽ¿WÄó¦h‹Éï3ªµü³EJ­ÞÈTÌ^zÛc'ZÙø»Ïö¶?j|¾Óð‚3²©”¹ÍºÍPhó[Í<ä«eP~ãÐ$íØHòöÞ¸6Ä€lÑ,SGߘså*Ý\‡ÛØ–¤pbïÆgPbÆó‹ˆâ‡èJëYYÛþý­µãÏ!uwÑôðUëÆ0Ŷ$’e· ÆIˆq¨WG…p‰”œLœX˜bjÚ<61älåny?…zÍ&Ò.îuý6Óu7¼áŒµXlŠ“Þ`;ôŸº,N1kµ(/i]4öâÚ§*J努æ‡,›¼í{¨88}QšÔú¢Ãn[™?évO0Ø^¢‰ºØYS,·¸¦ÉlÑ´a ›{}†Í .3{L×ùc æW¥m@¨\tÙŠ¸ Ó¶«5kò°'zøÍÑ>&Þ¹?õþAõV~6RWwm+øë½ë`:2³#,ø•ÇVÅ"°8ŒÌ´ Û4¤Û y¡êäeNž @òåŒ ¨m€Á7Ý„Ó0Ú¡ð¥R/4W :-‹&;Z×3ÇžÒù²Rй¶ÕšÐ09ÿ¡V/³§3sÇ×ìÇnf,'e;xYÇ2NŒ§š)~±š]¦+ŒO;9Ä!Í~®Qf¡Ý+ÇqÚ«q(g«ÇSDµcS$!£ó¼Û±ée~bÔì) ÆgÉb»ÙÉ/¯"iç†]ØËU<ÍÊörUŽÍ5–SåЋÌú;aƒ™*õ'ÌÕtmÍã@“E‚-|±t¢¾•õ½‰ÌîpEéîu9¸qò2ö µÉÕ^wZ¹F6y-»ÎÑgÛ9ì ƒØÎŒ;O‡[€1¿½FJÔºÊ1œe·lK°=n[Sp§4a{_K8£«²%—ùz¡ß:¦‹E MrØÍÆ Kgñä/ø«L‡#p‰½ºùgjC.$›tóËkUx¥òµïBÛÊ€PCâ¦?FáÌo ¬ÇhŠsY”¡ßñ®L]¨ç³Ôƒw- ´1…¯#æ¯8Þ­&&å”8sKË+¬oV…¾à‹I¥€q¼Â›¸®aÁ©Ä Ät5mÀÀâÞ³ñ.8¶ìvÐäÚCYè> stream xœ•YKšÛ¸ÞëØ ÛŸ„!‚$¶3É"ù²H&½ëñ‚"Ùc‰Ôðávû™;Ln—[¤ D@·{Ñ6X¬*Ô㯿ؿ‘˜2ã_ó³¼î~ü%Í2rv19í~Û1ý˜˜å•üô",åQ4%Ï»ùMF2N²TÑ„<^wѱ.®M{"ÿBJXi!i’r o£¡‚ IBÏ>>þu‡/Ä*'Ûiù¶ët-9vã™ Mÿ#ŒÉ‡vf•Fc’FŸïÿª{r,zriÚY>Ñʵøpén5!™Úk£?˜Ó±¾’KÝžÀ D-‡óÉXb¯„ÆžÐU¸€¢*—)Cs1ÁÛ¨þ¨õ¯£ cšÈ,7!Ó^Ì&u¼Ý+y¸ß^ÐÖúfüèÇWäT±< j>؇nìu^òÒŒçnMP ¹çËlVÇ裎k7QT*áÜ(t+äÙÏMù ò1øJcÊÓ<»+Nç«Øãµªf|i†š€‡}1vý@ž»žx~äŒæ‰Jʪ/^|³œQ!˜¸›•‰6ËbAYÎÖé8v}Uc·â„ñËøždÒ³Œ¥Õ:v×kÑëayš6T#ŠÆ*›‹oªÃȸî`1®M0´*ÃzQ±÷sfdÖí fÕ\D/Ы!å"¥,ãÙVûÁž¯}…<æ™VHÀùOX‡±)ßY¿[Ǿ(k¯9§Š'éÝ*O÷$Õµ|°Ö%ƒZöd8ÐùÝ31ÂSÃøzñí%ŒÊ<[bxý`eÖ1D¥Ÿ˜C!„"L…]Æ>ÚDQëDb nÜ“s×7_‹ 65×Ftz’Ѓ-!J¼)RW¤(K€YÔ¦s¿)«ñ»,AT fï v}[\×¢€…bΨiÕÅ'@pð ¶ÈHå”] #Ff±ñV—Íó+š†Œ±Ð@tïz·ãLÅÙš–áIT£¡8(ÊÝd†meÞŽuȾ1-Àö0†’ŒMë“{¼¶öÓ¿6»rêM°c0åœ$Fu 3œÁ»£2*6™Ÿ=D¹+†§eQS_€&•m£|Ä%à Œ3¹u߯Ý/‹¡> u;4c£aXeÈÁÆWBD€Þ§Š·»6D$®aÓ{¾B_ˆpŲŽXOÙ¨<í «KS¯~ºàC…u†AF v„ÏázG–,оè«D®·blŽÍEß%‘KIWÍPNÃÐ}DÔ‡<­”cöÁª¾ŸCvS¨š,³Í9ÔµO‡‚Tw fTù…›…›±.Ô€>.Ç7‚•Ya„ÖWuÓñRCÎBüJQ‘Ä©‡6æØwó¢ ´ QÎMÒ€ "6“‚Ûs»E¸g.œðx¿~WÍ•aŽÆ¦Æ ‹É¹&.õs Uk*©"àL ÌpC'¶Þ~éÍeÓVÍ禚`˜¢M‚c+Òƒ”P…ÛÌê¨ Ãd®ÏS Õø`‚Ð$¤š¡lá¸Î–z½4ÁX©Œ» Îvg‚—ä ä»KuxÆ®P¹‚®ÎPñ¿,^t[¶½ˆƒz.$ èØÔ$^GØLLåáom~VÚ‹ÊÐ|­mᙬß‚RB òeî Ôé(d±‡è#hò)!”²»{ÇȬË5jtõkFÐX:äüñtZOçKSAãøJq¶¨T½«Ôʬ© báuºŒkн5Öù,»O؆•Y9þTâFÚ8SÊ]ðíùÖSÐÒVzý†ª¬ÕÕ™'BD˜t’Ýj‰0¶í"GíæÉ˜ÙÓ`Š%ÛØ»¶»Û«šÏ÷? $€—?Ü8MÝ´ 9Ï6s¼FÞYY† bFJóúm[Å8ŸÖñ¡ªoÕ‡Õ*2¹u#S0ò<èÆÁ^¦Z’Ý'Ææ Of,Å‘Ù7ÎÅõ½ñTåÀ®l­þ;4ß¶š;©ï8àH(ç÷áßµeÝäÖ1¿ÌXOª Ð\5}]"‘A`d™Ëñ•Ð.ù„ÈÕGÀgŸÑ@NRgžß Üžo¸Tw–½öÍé<’áõzì`õJÒðZÒ¯_ e"ºð"2ÉßÇ#³ùàªSu¡…)ȉ}Â6oÒ4µ£!KÎöDàÇ2h"0>Ý.†ˆ¸èr™;`˜ó-` – j·xà8"½Œòl¯uèyV®¬²êôÛᴻÙO ˆƒÌ÷öÍü¦ÒÍËÔkÖžzÓ婜WÁJ^/›3{²çëNœj7#¶™_S}ÒßB3L2ÊÚ 5À°md¶FµB¿9sš©˜o4ìñº¨~=½~Ôíƒ@*!s`}×j#â+ΟÞ]q*à$˜^zÍóÌ!P=ý‰VÓÁªæv“¦ª®oá6†zæ^¢ôáºàªzæK ùÌÔ…'™ùqXÏÆ,=©lޜɕ»Üòw? ÒEòVC€7Üçç”$ë”Î|úár)´ü x]ëšK*-gü<ïtBEÅeÒÍÅr«noÓÎÐÙ³B’9óÑ|AHz¿'èýgÙ77@á^Ïo T+ÆiuݧšÓÍ MPG³žC´¿Œ† 2Àh3 CìÎ… ÐÀÌCûh½ª¾gŒÊ­¸¡óynCV5Ïó7HÆ£ç'å<‡æq™z99Bá+î˺„òòýáÃ…ŠºÈžsfëayff¾ ›ÿèÖJÃ.pHã}†…i “±¡¹›]ČȹÖpÉÖû5À(K—h¼=EÝ–Xæ.ŽVÓ ^<ðÇwõÀSÔCѺkÍbצ˫f<èÃA¾¼£]n©ôƒ,*àµïá“j.% ÄÌûÍ…¡(·¾ÔÖÄTÞ7ZAïp>ËMr°Áòïb¹ÒÿÝÂArD­OU7Ö¾ý Ië/ ÷Ú…¸Ÿ=ˆ9á_ج6 æÈ0fÖ-Iµ^Nc‘©eñæ,¥Y‚ƒs6ÆòtÙ:ç—y¬à%eËå/-À®&Àoæo©~Üýþþ6Jendstream endobj 1910 0 obj 2408 endobj 2050 0 obj <> stream xœ­XKoä6¾ûWðu`+¢D=xL€ EÌf¼Øƒ3µšÝ­Œ^©xœÿ°ùÍ[ŇDµdÏ`±öÁ0Y¬b½¾ú¨?HRá¯ý[µwßýšå9¹È»ˆ\îþ¸£z›Ø?UK~xšÅ9áaFÏwæ$%yLòŒ‡Œ<¶wÁ©WJœÈ±ISwB³Ããï .Ìh“ÇŸg™®W¸«‡oî?°AŽâÜbV€ûì?~û¤EÚþ@Ó0¢<þ¬» ‘äÚõ_}§Ê¦y1 ?>þc>ò§9Á²@Œª®Ê† ½¬UÝw¤?p&ÑgÜÝT­¯FõÕNýtl–+Iï:¥"Ÿà[±<ÚPÄÒà…Tײ»ÀíóÜèEa9ˆª>¿àµ1*Öi9 Ã(¤ÄemBtu¢úDH7øîל2v{=½çç„ñ0ÊSyy<¡úœbðÜò܆“ÕƒVQ•5+Ý‘“cù¼±Ó0Ih2ÛJãû½ÃNneü U~4Â+¥y˜Ç,ó”jܲÖñwŸðZÊBγ8xFOÎ&1 ʪnjõ¢`ÐJ•< cêŒüg{ v3cÚ~ji¶vAç¬ÕµPV¤ÄXª~„¦ òjDªò£ ʯq}ÔåÇøR&ÇZ=×R¬2W-Ǧ¯>ÁJ¹•ªo¸†ÄrÞ;QõÝIW;¾'à+èÇSÝ•PÐG—ºƒÓéΦ|‘J´Òî:ï69ègÿüÆ#âcsdëåuÅ3¢‘Øé _5îÒOŸËvh°#3ºÄé Odý—ð¹Œåp½ÉÆìÌU”àËE’²;Áñ^éHÎ<À};—Úæ€3å€J’ÅrÓ_4ŽìÆ»éûAÇÁ‹5}ÁÔu÷-T p²ëA£Öò7þf[võ05¥ÝeËîx{ƒèfï¹>ÈøëÓqì'e0[/» ›¼ŒÆæ¢(¨¶ò¨Ó‘zèp¤4´­¼U6‰< >+k®3­ÆI Œ …ˆ7“01õ…& ed„"û·(l‹gy˜¦HRF =pÞm°ËGÚù”Í4ênÔ‘\Öýi°Æo±r·Ú9 UAgKè=Ir $nk…$¢ªüí´\Vä=éÛZ™È¦ ›Ä„×ÈÌÐ’ûµ:æú*]ÅŒ#î}/Õ][ä·àÝû¿ PÿÆIѪiëe\Ì( 6b¾ƒü(áC6ªÒ#]ž~Ÿ¤ÚboNCVÐìf„­;™uÝR½4b«:cPÑ۪̞j¨ƒ×n¥àd–¼­ÚÊìEKlÿÒifYúö¥ÌzÄ‚j ÆÎ”MrÉl¡ ”Å[¥NÈWúd´bÍ!ЋG./ñqž´Þ$¥a^púv8¡õtKr4 ^dûê“$„&÷Ê0‰t›¹õuDZdž¤­»aRx›-×yòã¶£Y˜pPs°·¾¶#¡Í Ã€Že¥bJ äˆeŽx“Íp?ÀïZWœL°b8i1ãßÞ¶‘ Ä4mÄlpe°ÊÜþÍPû{o^Ò$Ow&ÚšX?8Á•ï `ˬï2úÍ(¥Ž„Ý[£æšâ|à@5)°‰rj”¡€„é±­ÈÂFÔEVxaÒ+94&_x•:šÛ8,þÛЬ<ØÂóR!Jv³ãÚ£:-q¥ì J¿6äÐ@X5“U¼—ÌÿE1¼z5Á¬áÕQifª©ÿ?F;б֔0‰d>N7U3·OS"Û¤!R.©{r-›3ä>ÁuMu%™G»Cë|^ïÊWYâV¤«—ò4¿­L;pžMõÞ³‡´“„7 >îçj,±ô1dÖÔ«µ\:&mØo?Ô$Ùy§qHÓÜFöë›tÁ¬4gé Exõ øòY=ÿš¿×°/´.Uf€q–à;‚Д~ṳ̀'Ÿ6aVo¢ƒ\ÃjÅ ØÈÃ![¹Ëº¾¡¬/c ~çJVÛ@¬cœÏ¼´0ýì›”¦!Éòv„M ÌÝÔ5qÈ ·iŠÆêÌ, ¡þëR ¡~3ië€ùž™rîÏ7e¶ÿp7ñ‹×ŸÔÞÿòïC†|D¾o†k‰÷(^—ùÅ<Þu¾ÆØ«Ò>P(Ÿ NW¶í6ÔºýîÑ »øá¥=öÐulþæ¥;žý_]]õ'±ŽXš™Fî•ûHnl¯¿ïÂXá³]æ(üð´M²uÝlæð×ÅW¶‚ÜPêχöóW¦›OhÎXS.âÅç¶>`zàÖ¯ÿ™£3ßc€Ç‡hwSo|»iÎ’£“µ+k,°P¤è¸Yp©ìc¾ÏE-…ƒÚ0oIú™ò…ÎÇÅý>í²r7O“óüq, 1Ú%ŠðgI¾}2ØõÕ8:[ErŸPnÜÒ²bØ{eaV°âM6édÖnm ]ݱP„qî}up´ ¥6p …8Œ’œQ”‹iþsÜÑ‹´°Œ ã‰=Gqcà)ø úMzˆ2À}¡wwÿ„ßÿ â…endstream endobj 2051 0 obj 2098 endobj 2191 0 obj <> stream xœXÛŽä¶}ï¯à›Õ‹iY¤(R|5`8ë8°‡Á>h$u·6jI–Ô;ÿCòÍ©âE¢.;žd‹¨bÝyêTÿF¢’ÿÚÿóÛáÛ)Ée8Därøí@õgbÿËoä»G¡‚I¢BAÏs“Ɉ*ääñvx ÎmŸWÍ…4å‘ñP)&‚RWM9BcqüôøãÒÊ„<þtxüð•]v17¤¾B·l$í™TMwÉñíM¬œ7" –¢OÅ!øÏññóÊÝ$Œc0j¾×%!qŒB'‘„©H99¯ŠÙZ7VmCHú@b ÿR£UÈ”€p‚Z™ S $øÁzäågå嘄QÄÓ4ȺÁÄDàÏs9¾”eC†×a,o1Kˆb„rµLÕÌ ô‡úÞã!xøÃµlÆòýí–5÷²†óˆiŸ„ŠK Ôã¯y_uãÆ_މH¥Í!\§Çúé¹ÔÕ0dMÑ¢¿1øJÊ—>ËKÒ´#ú*!‰#Žîy߯JŠª/s“` 펤|rU_ª?Ê£± cš°ÉQÉL]¼Û''³p[kì2ì¶þˆÃxn }­Nf«u|­Ë­NNÈ+1ë4-çŽWjºk•CÏ•}6¶PXhB²q!e¡ŠׯEŸ½l­2 ­NãÉj’h«PˆÅ«JÞ«1ëI~mû‚\úª€ÂqeŠi>Ùs÷¾ÄFS¦¡öúÿ/oôpͪ¾ƒŽíÚ¡²£uÅñ• à‘Fa¶¸}ÿRãU¿˜¥~‘†’ ¶N®;öôöÝó’›´¢í§Éx$>íXåQÈ9W“U dÓ'NÈóaÛ×â‚&“©÷M\›FÔ2 ›´…½ ,iʸ5¹³çËÜÕgr† ö9ëx1a†þ5U©¹$xªK£Ûrž&ï´¦ášõݬê›ÿGÓ(P-úgÞàÕR.ìgÓɬÊUŸÑYã“‚’;Ká9SþvÁ¬ÌÚÄ—£ UÊã8(56îu\ÂÓ7 bWµú¢G)¨"uÙ\Æëà.ÀÇæ‚ÇJªG xk›*Ç“ˆ?è»Fâ§k^—çO›Ô2RF“M¹ó…geV¸)ÆRã!Ï-`'‘Aí)•ÁÝ0ß¼&’)9‹±¯xäöß; ød>ªÄÍ{‰7|ïÐø ·¾~YVqúNZÑ£f.s3=tBñž±[UÀC,ÓIõ…éã/ûç–ã,{ù]Ǹp±æ8&ãȹtŠp®[;åÛËü h …hæ,]Ögz\é0çòu}ÕŒØaí}ª¢$7|=¥ÁÅÀ¯šÕàlGB7¾v¥ÕdÎÍ„¶G«·>õÌŠ°0á|~å (›-û´ìÆêrÕl`eÔ½Ÿ:TƒQXýÑ6cV“gí“¢4 ÊÑ20f³ØçûM».V"}:õgÅÊ339ðLi5Y´dàÝD#_; |s6>ïMQöuö ôª× ¤,rI½Ýë±ê %|9´d¿OµÛ~ßé#åZÔø`¬íá"ð ¡<èMvpÑʬ‚\¯¦¨à×¶.öFš £˜ó1Ÿ¬PxûJ"RšFø¸- ”[²XÓèáf§²À¯þ÷ÊB¯=gH×cµÍ“Xj„ kî}¨Î»Î |È.J½–HKïÌ'_GuC0šXWV`«šMõª&¯º ;›ãÒoyø©ïÅ ç¡Éœqë‡;^øaT;'!,y7¦ “! YéŽlâ_¦-_¬ Ô,u:Ï€Pd¼Bjª2GfKñ˜Í²ìûV¯Ul>Û¶ éìÕ;Øn”né„‚s™¬¼GKÐÞýHò»ÆšÉõ¡ÄC˜ÕY>–½Ö¢}~j0Œ oÜ”‘_¢7§£Ð~ÉýZï ì9b`œ_ª¡zFÁeuŸ,Ïõ[Éj¥ê@Ç»¡¯ÄæðAC}I²³JLH7ìòoOÐ ö›SlÔÔÿ4ó<±˜ÎP.¢Þ€‚t²¹µ0‹Í<–Ìî™ÁëUß—•a5ª!M².}{ïP\¡1å/öÙÍ€°i.3Øáåátoî·g YùãÓý⦎8 Ÿ•:oJ|n‚+PS=hqg‹Ro„÷®ƒ4 ;BVgðñןOiš¨pjÈõ°¨†¸6%3}ÿ¸ß0^dJ—^¡Íóëή\Ûßõ÷Òåd|…OVã§­J$LŒ‹5­_Öøä¤NSµAø¯[mØš–C©4({\’DÛEn–Äm«|Ýòðã(ž—o)všÃÊ, ìÉ*f°g½îmÄ BI¹ÝeìùB›ϼ§’yQõ€QCÛØgÍ0¿Yœ´ w­d‚¬¬†Ëf0Ë z’Lƒ£÷Š s·Ïi_'0lN€rM‘õ…ž9fiž˜u™CÍõ%M4ÅÎͧy¥/Oøé¡Æ "TfË™R¼ªõœ›çý1ð»Úê˜øóN(Ú; HÇÉ!ç^áäöÇ““Ù)¢1€}ÕCbš¾mÀÊ|ÕÀ nBÈi š#È‚|¦,÷^œ‘1.6 ÷ÓÆ— †êyÖíüùµ‰“YDRgÃx6‹¢Hƒ¶÷ù>À©JÔ6SZ†RËtÁ{TÏ€®G54+d RÿdÆô!Mݯí*¶—Y„ß¾þ§à#¬)zœÃ’ü®ýùþñðwøû_±ÔNendstream endobj 2192 0 obj 2118 endobj 2332 0 obj <> stream xœ•YÉrÜ8½ë+p3kBÅ!@®3OLOÌ¢›ÚŠdU±Í¥L²$ËÑß<™XHp‘äEX ™È=_¦¾‘(¤$Âû;oîþúßTrî"r¾ûvGõ5±¿ò†üò$‚r¢Â”<œî̇”FDªBNš»Ç Î^Œ‡JJt·ñðåáðM™pß±$ŒÓ8†oŠ»€!¿ßÝñ‘FaJ#¦o0!݉\³s9Â#I¤$yø'”ŹìI]µåpøt÷ð—GàIHy IE< ¾}Fê²=rêzòÔ—x,¢’ÏšŠò4( I•–Öq@ھƞ×*)–'2^J2ŒÙEÈ>^² œ-xŒ—*ÿz Hªdbãk tBj2MóR`Y=–}›%i»±¼”YÊÒXxiº¶kðz[d}¡Å  “¾ø%WÖòžÃQ]žÆ&ëµH”çªÝñÃHq:{Hj¹ããd~ô6,Þk!ÁSOYŽŠ@tw„ÎÑlæ#TMï!ĨwŽ^Ñ/¬è†±lô!GþI"k­ºÁš‡L#“àX^ÑôÕ`ÏN®m¨…ë…á!ˆ$t~Ê ’ʶp±2ÒÙ‰ž”Ü—ò†@Ã9c(#‡Ë…W‚Gd÷E/Ò„†qLç4¡13ybÏ—y‚¶1nÝ¥5ÄãnÒÍÓ²Ÿ›ˆ5´Z\ÿꓽx© ›>c_]ÁÀp¯ÞÐåœ]·êÄiÈR)Öê,>?:¢e„Ë9ÊV‘… ÒM¤ÚcßFÆÃ=9°0HÝì:ª]Ù(¨Õù2Î&èÎUžÕ¤ƒ8ÊÆâ-±Ö^F!ãib…)úìe+ðÚ«+@œ‡‰ké»ö y+BII>BQJ‚®Ý+±\…Pݶf±ÇKó¾öUÞ4r¤*žDMC:‹:”åVÊB–(îÞqÁnY 41ž•a¬Ð#L€k˜‰Ú_·ƒ&ËûÎ/ä™QÞ Î·¦lGR”§V½(UAv«1¡PúY»ùIÒ9[‹ÒÆg¬&Ud˜¦Ì9ï­dОbáîÛj¬:ŒqOâÄä%_¦¤m!.vYƒ e(õMÕeïñˆ1ÌšìÜVÉÿI¡òÌ0Œ#`¨î­×—±Å”ùbúÝ?Ìç;o¤.i¼&w¼ŒÒ&kMãUiðjZÖEÐRKu<û!ï h¦Õ¹Åjêªwc½ÏíI?uãØ5XH…+°×¾jǪ= C¼Ø»±»mÂŒa‡o7HÝi]u‹ä¦|5Ù÷§2k†}SÁÒ(*U³49ºã…óQÕÜÒÞš'(¨SWLWš·¨H’U7ù~3Ï\ÐJúøûm«ÓëNA!i'+Ù—¡áhŠ<6åÝ—mTÄ4TBøõ\W²£;_دŸÿöy ýü’µgtþJ»ùöÓêòZùÅ]¹¼žnŸ'øÕUyiÈü°GXC%@ÊÄ‹?+AV×Ë1EPÞ5Î…A/ÝÕ\KOl¡gHk8*cå¬-Ô¬àµkGÀfF­ &A·m‡k7h·g=ëùòÖŽ·¶,tÞü6 ÆhYyž0n¦*qK›½\:ð $ ƒhŒn3¿**«Å&ñ0ï'£Y„ý£Çu'…F‚ªu ­[¢U™ƧyÎê§aGÇ^w:íÕ€xùœ‹Ïm!ˆ·O]tRîh“P.ÁÝŽ&ŽhÙz€+¾~Ü©0èYâÉ»-ͲøOl;‚B餃 Œ L¶rZšœ.Nw€P"+‰ä]¾ŽfkÖ‰ñŽiS&Ë1`Ç´ŽÈùÑð6“WÁó4†bÉü²‡€@©üЋšhˆÉ$‹—0÷^4Èñ¾,Íò¡7u—ö”Jx(bE=¥’×X¢¥ý੯Z©r¬|®Y%j/³(ù®6–d§cÀÐòݺrÚÏ*Ã÷èŽ×º€N;4ÝGAÓõÂh×uëécÓixÍêx׸L‚(‘Z÷èÎW"ÚIT-šGA²<7FéÔ-ß!®P|×5Q²¿ºq 0-¾èÌc6 Âɇ¤] ÿ§Õû²éêNS‹¨‘­™uOG_cK3øÑ@KÛ27þú¹¢G¨î&\{l –F1¥AÒ¸QAäÎ}˜ÐÚ­ gÁ‹]æø XÐ˨ú„ÐïÁl£Ö ž4®e@Vã„÷;0¼¹«Ûõ mÜ‚àî„!fïÒÀ@X‡×ºÎ‹ùû—hº¿ÂK *×ó`” !Ÿ;ÏÇ“/(>Í=Ѓ½¹Gë}”q(ض‡ß†*GèÔg¹6@ÕF²Ë&|Gfׄ†ôž÷é øØ¨änïG^ß´=Û¥œ°\¼—êúË“ñ<ùÆ2! ™W@%Ûï-™î©i™ÿÚTÁàsdgÕ%a„³xežtµD_.¢ø Ž¨3ØÇ.í¹¥–0u•É‹@mv·dzÝ@¬M¼„DUúçäýÔ>Š$äI².™Ûd™ãm^S®­í^¾ìo× 3í}”5à `jZ…T Ÿ×*P’½v+–Éü˜Kím·´„K¨ï¡ öð' )ã©§…Ø–h™…m‡Ùv·–2Ü­ {Ò§!WÞ®Qâ>—î¡1K¸m—_ÊüëÌÃt“\ ë#ÁʆÙÞXŽ;ï[Â-SÊð,ºÔM,`[æB…Ü„ö¤u4ËA˜×åiOÞ(TŒ&Èk‰ÖžÃõ‘®çÚw€Ú›¾ƒßR¼/¹£ÙHÞÝ0œ÷LÍýYâ-Sói˜ðDÿ:åMÙ›’Ïã Ý‡—œB\òø]áͪ|øï¼¾dæ)©X°ûg€öLªÕ;Gw¼Š–öøïnÿ—÷Õu4‹¸²'Äl8u“w»¹MŸ#\Aæ¤b.F”š…„Þ>±0Š…22 7FÓPp|ß> stream xœ­XÉr丽ë+p3å8ÄÂí:aOÄ8á±C7MP$TÅi²È&X-Éáð|©3±àÒj&t¨n0‘Häòò%¾$¦$Á?÷[uw?ü+ËsrÖw 9ß}¹£æ3q?UG~|‘œ RÆyz¹³)Éɳ2ä©»{Ž®½noã=Íã’Qõ÷4‰“¤,¢¯ó¿Ôø*ABÄe‘—ѵ¹žõý§§¿vš±Ü«/hœ±2‡#žê»ˆ‚Ý?ý¶¶àÑË<‚êŒ& E ƒµ€f"R²¾]k5¶òýà”\Äi’±Í)~Ù(›Í×k?)ÒªiR£&¤,À9ÅçÓÿn….p¦¾ÿÓÝÓŸŸA%!²…-W95÷,d:þEE)¢/rP òÜh¶Àn4”—ÞPü±Fþ×ú!¼i™ÞWu3ªjòR‹ Fã"-…“úý{jHu‘£¬Àtkú…ç ‚ÓÃÑàæz/0¾<¾6º9µÊìñb¹–nþ­HÿŸn®D3zž}÷É]1Mä±ÈX:ÇÉä×wÒøÙz¿ªÔu³#&ÂÀTUSÃGÙj"O½ JR¬ÂÓä¤ÚÞ„ŽÒò¥•gL˜$ÜúÒ·h%VUÆ£W8úôN†öfÙ²ù 1…ØäìäÜ;Ä|¹ÈöëÊ2¨o®dR³[Þ&¢§+Ì-ÂÆx>Há°W0KÔ_nj”µufR‡w.4e†ËÓÕÁÇ‚„³B¢mê͆€O=X¢!4Ê`8ÑØÔÛÕDÁì›=54Su±¡-K¿8ªAIrzn^G÷…q¥IPðúÒ©ncÇw¦’de¼R0[O›õÈQŸn9]¾ªªyy7+•õ1îòÈDZ9Eõ¤:bAÄØYRLìÌžFÕõmžš^•Â{¤³¥Óû`ÝÕà×^› kXÚ„ðò¸ðŠžåqÎD}±ï^(„$‹Ö;{˜Eœò|Áž>v/·Â–ç@õ§½îêSö±É^hkrÓ©½FVÄ,D¾‚øÀÉlQž¤>P*²˜—Yù¡R/³m®¨uÕÀÚª> ÊìcýNf«îÖe\–"¥‘z›®²02á_ÄËlâ¨Â!²t—q~}±[w‚æØ6a%KMDZ‹X_'‰4Añpè ¶BfŠhä;?ƒï°¤¦²¼€z‹SW© …¡ÿØNÀ;lžûj’¦”ùÖ§ÇqӼ仛úõuT¬fékòÒÉñ3b#sí©¯k¼¸xßt¡YoL·ö¶®ßÑ•¹í‘½ ~i˜ò  ¬ÌÚt8å¢,äô¾bDSö±r/´Î¢¨ÝÛ„´æ ›„ˆ™Òõz¡Uj=÷](&p‡œúÂþ5ªú+˜ySõ¯÷{ë¾Ñ¢Ùgð6€íÞú©kóŽ`±4`ò}‡Õ4­$càB€Õؾùî4H™¹`¾õæÅaêý!$‡[åeàÎÏ-KI½1±èžì¹¶Ÿf¹3-eÎ1!­w×ÝÛdÀ 6ÌøôAÈì´äÅ6uýúªˆQ8¦ŸÜH0£ùá3Ȭö?ý7æ ÜŽz24Ã`OÇ©®Óy>¬•‹x¾2£kêòØ1Bƒ(Öæ‹×|Þü±&‹ï›¼3 ­6Û¡Ò{˜W‰mýÁÒÜxËù›V(æ%›b[l¿áDN´jýJ“#EQ‹q4+"Þè!1-—TaÅÃaòy¹]êø(ì= MGú]Í^nåcÔlÝrH‹„/ŠsËÏýòNÆ'šAvÃ¥U1裻‹Öÿ±½Š»`ò<Êá¢Ê‘;ï@g. åëÕ™yø²AÖcðÓ?Ôà*¨Sf0,Þ&|>4O #`®ú plj7=£a%•¾ ÎWÜQo~ê3byáøå/?Ôv¡¹™}¯ZÑ> stream xœYKsܸ¾ëWà¶3) —H‚8f«rH*[µÙU*­3ØCÒfeå?$¿9Ýxpø²äR•eÍF?¿þ!iBIŠ?áwu}øñ×Br6)9?|y n›„_Õ•üô"´`‚Ȥ O§ÿ%%‚QÈ$#Oׇ]ߨº5]{&DðýÓ¿áA³ñ“4)hÊÈÓßä›Õ×¾Ûÿ°Pœñ„æ§ãÃŽ2[i98*Keé䜲Aµ¦ïŒöL5æ"I•ï*2‡ÑH}ž)þ´Ö\ð$+òbÔL³t­: MM~v6ÿ±—‰,3Îw]s»êý§§¿-ƒ!.Šâd¦¦?{ÛÿØÃZJEæø´qBÎÈ_¾tá×gé››!êdõ@ÚÎjâ)Cñ§?=ï~ùù_û"C‡ŠÝáÏMQäÔµdŠÒ¼úùfêjâÁº‰oøE}õn¤‚íô`ê®Ýrx> Tî½Ës/ººµä8– —Q çIÌæÿ6 )á\ÄPµµSHw"„Kw/‰û‹Ã „ "Å]êv¿À¿«†º·Pù`(!º­Ton²ú}óH([u[5·c ýT·BGº›ío-*g2ÌÆøåuÚ°ü϶®º£&ÕE ªò†Ñ¼Àí»a¤ @c’ÆËÁ û¡«´1h˱teë=Ë¡¶ò|éÁ¿AF±"xîÒ³sJP¼‡£Îƒê/°)2Àf)貇ãò¼‡k«†£j«×€k:콆ìQê@4M7›,ÁÃrJ€éº?¢Ð²?®ã%\LÙ 2K8ãÙäæãÖñí¬«ÜH¡Öë[Å—ñœ%PÓb´Ê³.}dä7åÒ®sBsæ4À®¶nE@¢Óœ‰µ¯a}Ž·F?"½ Dî툫êž1®†ì8Zá"ùÛª¦Fí°kªAë«ÁëФ¥Î{‡! àÞx<ö_S·ˆëù CV’qBÓ,[Pßù‡×ÚÓe”§Y ùÌcˆÑU>#oô0@Y¾…÷F7À»ÝñúL’»ü,)³lrï-7€?È, Ûœ/:@‡¤ß¬è²Lå•„f)í­þj·*‡%9ËŠ­.që³4Õ;öôWö¹w_Æ)EåîEx³À­¡$Õœða6õë@zôÑ]—0-|}”Ðö¨{{YCX–°é ߌt[øz‘™mÄ"O£ù‡z£ÜZ¯#Äþ›ÏmŒé2—n°¤‚k'F®«vxóä'ð'/`š ¹ßwÏrV챯I’Âzç Ôï{Ô²1¸¼BÝê«xç<)ó|YÕ‡¸<CˆllI¨ UUõ|P ÍK0–Ê×üNæ÷_V0Á Îè8¸a-VL9Yë¡þ†1¬?Lɽ\Bðò)v€¬Õ£mˆý°É·gÀÎ|®û5ŠådÛèÐ(4ÇvÔ·ÑŸŒ'Ùô%-ög\Ÿ× èèûñ²;Ót¡mýÈyØêæ6@A}Z9Å``Êâ؉Bó›©Ó8"æYõ›°&ÆË)Ú¾J;¡9jzõ€™ÐØá  H¯Àáp¢—’íZpšd’Mî­þu).ÏcŒM7h#v†•æP¬¯ŽT{†šqñ×|ušÈécm»¡VÍlõtkbz]Õ!#÷7³ ª´`ùw>›UÊ=›Ýó6SÅ’â®ê¿Ø•Dªòr")ñ“y*6·s|ìècu¼UÞ6Òq$ržÌ‹é• ;öd{ô‘:½ùpŒû@ÍëHÙÔÐ:ÞPŸ[eoÂC)¿CE£|¿Ÿäç!VGÝÞÜ##ïž}S[ÿEX±ê|ö%QÜo¢çsó6J™«‚bÀGË€| ,ÂmÜEð]¡7Mè´}}q/e‚̲{=«•"Í?dµ42Ÿ6±¿WÄõùèšú8ò?ûK“àð®Ô‹2fHY—ðlyØbú¡B­m·Å„äò‚ròŸ £HÄGP–àyéàÖu…%bãŽíúéò©€¬ÎýYÕM«¿nlx‹Žœ¶¤ËA††®çÓs¸+¬Ð¼„„¤l;'D©G󂃸Œ¯ð'ŠbŒ‰päÕÇÊpu+$³nn<ÔÛóî¯íQû \°ÝWgè_žþ?ÿšŒ¶endstream endobj 2622 0 obj 2266 endobj 2776 0 obj <> stream xœ•Y˒ܺ ÝÏWpwÕ)·"Ф(nS•ERÙ$™Ý”5»[¶mI™ö?$߀‰zÜñ\O•ÇEB çô’Ä”$øã~—ÍÓŸÿ•II.ÃSB.O?ž¨Ù&îWÙ¿<ƒÍRITœ‘çó“ý’™™©˜“çæ)nE©Iy-ú¢uOc_ˆÊÏß@c,Ežÿa¥ªörøí)"ð§(Ëê¤Û±¨B2á—_‹žÔU«q1ó‹§nõ‰´Ýˆë’úuÝ÷t’á~†54•)oªÈb©Xæ>Ÿž¢ÿ¡5K_D̘n¿¬ÀB(KPð˜¥1e”‘£wàdO¼êâ„ÉQά9³òô |ž{Û†±èGÒ7°«`ãùO/~ï&qBeôŸðžE¨#¸ôpyøúüw§é1Œºñ»x Oý)÷ö¤ûºxÀ¦Ynº¬Šz¾ŒT-œ‡Q œ!<³‚u5’¡¾ƒ(v­÷àÛ®?ájÂMP%å>dèÀË0\u 2VŒFú«1tYF㜊ԅ–wLøUG/†t·ú}üº½,æBñµÊ£_wZ¸Ù†ø–e1VÃP5u/Ë-wÞ5ô×¾Û0žëîòX©„Fo„fv‹›Ûð2ám˜#L1ºÒÝø”ÕY.?Öìd6š¡nªf'P\•¦+õ2‹¼˜b )ÅBp•ï§hšÅ¹ sŠ2Žu•›œò{ëxïÔ,9cAìü†äSüwÇÑØ£MM†³T.>yrÕër¬Àረ \IÅŽE*ÈKù§,ÂX¤$aÊ?eÑOÝCm į4ßæ±ý+2Y¶wO\Ä"eAÙ›d8ºåOX5Ì@Zv÷[ ‡Ç¸“p=^»¢G²Y_ƒ8‡œ)̸g†¶h Î]¤&lrû­{ó 4í¸i°æ¹½®©ÆµUg¢›ÛøÀÏCîê¦ÐAîo@0£^ÖíEã1–!»tMÜÝwcaHÝØš0èÄáS’ÏŒjQhÉ’~ïÌ×Zjt¶¦ÄS,L¼¡úéRdÅ7*¦T‰)ñT²Ã`Nf›…;ç8Ýž$hÌTþáANdÉ”ÐÔº½Œ×¶„h.é\6b_«Z³×:ì CE—ÏZµµè–·z†Á7G”IGÁÐÉL-à}ì é’ ÐrŒÚTEpáá0oý‚¤ QD7pg#}Ϋ†d:‘K…އÒìWuɤmÚ¦œµÎwX’/s›ÅéÛ}Ó0*ºÚtf †|‡öÖç~[³‘ŠÍùÇ÷å…ÖqÞŠÛNÃ]bruY›62«¶*kmq‘Æõ^ç1§Ù:+ÜêÒØ¾¨.×q‚–nl²¥jÛË4çÐÓ”×þ^ë=jàÐsѵ‡G¿¼:s«ì¼5l„M:¦Lô ³@ÌõÉÖ´ ÇÅy‚ÀìÒíD>‰³,S£7:øVYô>?ŽRÄ<6:MÒi¾€U xìØí(•Á˜YÊ?egO ¯‡²¸m¿ž‹àz0D’çÑãvÕ¦h悦ɂéê»ÑïJxæ¦(ûîxÒ›‘ X9ç*ûäÈÕ"_0Ûf„Xd½v0pBÇTÆ‚§6ªÏÛh¢u0úé‘4ØÑ„‘q3¢‰ÊX\.ªÓ¬lâ2>\#Ã90YaÄ/æÀˆœëâ2Ø‹„„0¦‡5±¸u&üØkZ‚Ü"yôìÙõ;Ä’ÃaÁ,哯¯¯Îꛪíêî‚—hê *¨Æ{_øÖ L{¸.P˜ÌŽC;ý¶õ†d†*΀/ àÌ¡6ãë,^@çÞÜMUœ¡þ&GþAÄŸ,=­.±±g„.rÊ¡´Ç;ز¢j1¹±Á5Âþƒ×b0C´ ¦=L–9WC-©åÝû¼}Âð#’DoW'TökØ€ ¾Ù­iÀÑg|'PBYÜëÑ9…f9nzVæé©îoùô`w‚ ‚¹Ç6OõÆy˜,=냉~@bE}~› x@Ã5¾iÝþÞ“Š©Ú Çƒf³úÙáÓ£3¦ ¬™ÛEûrb—éYØ"ÁÖÛþÕé4/µ<÷1lhƒ§¾w0hC«P[Ÿ}Æ4üˆ*  p˜Ý¥Ø’*&¿¿Ï¢~s×åÍ÷ËÖ‡E¢“ÛüVyÕEo›6Íf8bá°vî N‰ çÚyÔĶ?M>$ó[UÙárçÕ¡_7ÈHÃ^Å&ï¶åvB!6 *½gûTHy‰´ÿ*¹dwNf‰y/³úœIT¿ûĚǔӭw2˵ãìuY,áÏ/”:¡sX¥;C#&a8ÚØ@ýò¸ñZ•ß[¡ïÂ) ÿ`ûtl¸ûZµóëg ­Þ»cDƒk`…”ÚKÎSSÒ8aÒ=ö›ù€‚³E­}tj9€ì×i äßV_¢¿AêšZ&ÞA}~ú'üü &2?endstream endobj 2777 0 obj 2211 endobj 2939 0 obj <> stream xœµYKoä6¾ûWðõ­ˆ‰Ò5@$È» Ïæ`ÌAVÓÝŠÕ’Fi{D~óVñ¡'ÇN·M«ŠõøªŠý…D!%þØÏâz÷ý)ɹ¿‹ÈùîËÕÛÄ~WòÃH*H&äáùΤD2"“,äáz<eñòùðð;ÐÒ„IGÌh˜Æ™€§»€S$:ºõ#Bezw(U›néW<@È)ï/êG);|g—ÊNCÙÔzõ^su[Í0l¨Õ©š®Ì«Õê%¯Ïe}^­Ue­ˆªOz]"χ<êæ@ã0¢" ¾N©ŽÜY˜¥qBƒ¼«ñT_žë|;Õ’f‡Ï¿Îý%oižIÑÔCY¨¢œ”î[U”ÏoZ,ãpŠ[+«£…UÿY/¯ …,޳­WgŽhmí«Úû‹¦!e"™Øe|ÏÍÑ,¹=";ŸÿEÓtéfüo×·- ˆtÚ:ÅìªxrUQvE¥´‚³—Nåó8g)eÁ³êT=ˆ·šEÔ­öC~£D”fK‡öFzí,'5&Ï62õx}‚hhêê ÜÎ'·ª ÃŽ<ƒ×­®;‡ zïßiAÚG»k‡Óx"ÛìÓëÓ)„ Úlƒåîí@#™¨*½Ž*´ùSÞ«]\ñBf‘¸¾@p4 '>jŽÖÞqÀ½­Ôs ú~Y’ë[Þ¥qPûXg!§TnxÝò:Þˆ 6?£ß¹Øé€šö !Ë3žÊÂÐ#SðF|ÎÁDîïãhVzœÙköŸ}üe3)·I´`‰V7ìòºo›Þ“è`‘Ä ìït4ëDw<=Ù.â-Úû=Ðò¢ØóqRú®²ŽÆ¯,òõ(œ 1/ö„¢#ZÇâÄùE»/IÓ@½yœgàx)6ºÝ²Ï ˜®eÝÝx°ÂJ¢1}µßæÝùn±aj¢€’b,\ÀÍËðÉ+„·h*:Å¥éN¤Î¯þxDÈi«¹^óúdêaÓºJ;o×C×TXÎV̵L‡C ¢“?LJçn$âàMÓßïðàNC*"4Åc_"ô|‘º­r¤))åK^ÿ@\–.o®¼î§_Öt±Ö¶)l!‰x²Q“§{¸Åc“*ÃŒ¦ÈK´¶µAÕMç³0’tw×Mr[¢Eüà•‘†B ¶³§[ߨóÚT ¦Š˜Z'5Ü”ªIÝ ¦IXvWÛf2øjúƒHþ ߣ¯óÓEi²w¾]_+[VÕZUHë²Ð­&ˆVg†‚ "`%nýVøu>Cÿ¢sb‡ï:P-Ì0Ý· ½œ¤e ¾ƒ–!þF· `VHEú.oG³1rÆ ÝÊÓpñÂ?dî¶®PîH’¤qÈe²ä¾7\’ŒOW§p­Ô©×+_WÍÍMÙu0Ø" œÇ*ïtd‘s Üïc»97OÕÍ(å)l<†«ÂfÊŽ[_1l«û)Ц_Mt›@±9Ž­éJÍ€dMd Å!Œu¿Ÿ†‘\oŸ¶´áü8VfÒ<ôV߀DH„Ý…6f‰–·Ór.Ê$4üqYÈcN?`o‰Ö^«A½}ù?oG$B¹bOìš­Òõ“‹êfþò”wÉ>å!^;)G·¾Òw¬¡JÔ8#Gô:×Ý*:d¬Oª{®HE¬}4¸É‹Bb3>"(¹p2ÁIUšhj6*(–ص@2ÅËÉ f¬æ4K‚,f'"§AÛÕĵ%EÓiº¢š ô+à>¨D ˜ôÔæZTâJÏÙß>Ù›Þ†ÑeS¡›.ÊØâÈ]ƒ<ßp²{.Óy 'Õ¦#˜*W)ý[UåO•FØhµ™lËK —™éއ = x¹y¤0JšÁO›)cKò¾Í Ó0ßô¸å–ÎTNþ¡h¤Ù ƒµ#xéÕùhëʱW¦¡ Ý Ìö×Á”˜ý@êÂKÛoWfˆh™Î(yÒÉѬóÉñÕͺàPmÜô¾„JBš$â]1Žf—¶FŽ}5à‹š·'Áy~ Žh“ÁFÚÜ3+Q ïëîhül‡·ÊÇ7^–9Ç÷è– «„;k«/c^‘îr@+°àm¸\ËÂ8(¢¶rÌU”Fp^𿵊RÊ!`ÙöÚÔ%¾0zÀ›…ÉÒEöÊnyÅæS]Í qÊ´bîÿâ’wy1( µ±î¸Æ‡»¼Òú¿þù!vy³0ý‹±7¸”F6ã “:òÕsÆ‚¼+1;{É©ËM^IÜ€%Š VŸ~:¦Dâ›üBgÔ®`'æµõ¿»|ÛTì¯SP[°†4ÖçábYt¯Ë‰ƒ€y¯Ñ`ï™8 ”~kh¸ÐÍû’Ì9å“3b(ñ~À9JˆmA7i¹è.:(g…NO§)B° Ý9Ü.¯c|ù<”D;bZä^›{6Å–ø÷±ÊIžM:È0N¥ÓáO"‚¤ƒÀ"·#?T i3’…Ùô<;[ œ F ÎöE‡£ Y*«ßF3hÈQÓ¹âïÓf?ãÌŸNÛ`âf:&1e;oMò«ñª¶SþmçoE±mh…ô>ÚCý´/¥Ó‹j5Böâ{>ÁÛ¯°î­¾ ˜žûo—Æ&0ÔDv¯«xŸ4ÂGŠH?÷š¡Ä\h´.yÙµ?Ø?À1É={M«j\«mĽ TqBx¶XnóVk–Î&!Z# »d˜ª7nAw0š@îà%Ó‹Ô=Ì¢ÃÍAeáôÔùü Î4ï ^õý|¸û7üü ç|jendstream endobj 2940 0 obj 2180 endobj 3083 0 obj <> stream xœUMKÄ0†ïùs33I7i®‚e•À ¥§íZ*me[Ê®ÿÞ|ù±ä0dægÞ™#Ž ÂËq?’ÛWm t Б#ÁX†ö#Ü9/A- X®Á½“Ô‰`$my n$ôÔwÝð˰Π–æ>bèØw]ÓS–Ûª’´ŸÚO&Ëð©èi¹y¦~êàùiëÔfÅ÷­Uà)›0WŸ%ô]ù’Áò×QžCëóÐO‡&Öÿ[–š£Båm»–PïOÉàïRüˆŠ„k.ìÓ$éÏp´ÚþñÒ¾Y„˜xYThï“2¨$jnJŸG“hËÔ¬­Ê½RX.Tæ×ôÁ…IÁ…Ð’žãiîyñh“endstream endobj 3084 0 obj 278 endobj 4 0 obj <> /Contents 675 0 R >> endobj 682 0 obj <> /Contents 683 0 R >> endobj 7 0 obj <> /Contents 689 0 R >> endobj 697 0 obj <> /Contents 698 0 R >> endobj 702 0 obj <> /Contents 703 0 R >> endobj 707 0 obj <> /Contents 708 0 R >> endobj 9 0 obj <> /Annots[716 0 R 717 0 R 718 0 R 719 0 R 720 0 R 721 0 R]/Contents 712 0 R >> endobj 726 0 obj <> /Contents 727 0 R >> endobj 12 0 obj <> /Annots[735 0 R]/Contents 731 0 R >> endobj 15 0 obj <> /Annots[740 0 R]/Contents 738 0 R >> endobj 19 0 obj <> /Contents 743 0 R >> endobj 26 0 obj <> /Contents 747 0 R >> endobj 28 0 obj <> /Annots[753 0 R 754 0 R]/Contents 751 0 R >> endobj 757 0 obj <> /Annots[760 0 R 761 0 R 762 0 R]/Contents 758 0 R >> endobj 765 0 obj <> /Annots[768 0 R]/Contents 766 0 R >> endobj 771 0 obj <> /Annots[774 0 R 775 0 R]/Contents 772 0 R >> endobj 30 0 obj <> /Annots[780 0 R 781 0 R]/Contents 778 0 R >> endobj 34 0 obj <> /Contents 784 0 R >> endobj 36 0 obj <> /Contents 788 0 R >> endobj 38 0 obj <> /Annots[794 0 R]/Contents 792 0 R >> endobj 799 0 obj <> /Contents 800 0 R >> endobj 804 0 obj <> /Annots[807 0 R]/Contents 805 0 R >> endobj 40 0 obj <> /Annots[812 0 R 815 0 R 816 0 R]/Contents 810 0 R >> endobj 819 0 obj <> /Annots[822 0 R]/Contents 820 0 R >> endobj 42 0 obj <> /Annots[827 0 R]/Contents 825 0 R >> endobj 50 0 obj <> /Annots[832 0 R 833 0 R 834 0 R 835 0 R 836 0 R]/Contents 830 0 R >> endobj 54 0 obj <> /Annots[841 0 R 842 0 R]/Contents 839 0 R >> endobj 58 0 obj <> /Annots[847 0 R 848 0 R 849 0 R 850 0 R 851 0 R]/Contents 845 0 R >> endobj 62 0 obj <> /Annots[856 0 R]/Contents 854 0 R >> endobj 65 0 obj <> /Annots[861 0 R 862 0 R]/Contents 859 0 R >> endobj 67 0 obj <> /Annots[867 0 R]/Contents 865 0 R >> endobj 72 0 obj <> /Annots[872 0 R]/Contents 870 0 R >> endobj 77 0 obj <> /Contents 875 0 R >> endobj 81 0 obj <> /Annots[881 0 R]/Contents 879 0 R >> endobj 83 0 obj <> /Annots[886 0 R]/Contents 884 0 R >> endobj 85 0 obj <> /Annots[891 0 R]/Contents 889 0 R >> endobj 87 0 obj <> /Annots[896 0 R]/Contents 894 0 R >> endobj 899 0 obj <> /Contents 900 0 R >> endobj 89 0 obj <> /Annots[906 0 R 907 0 R 908 0 R 909 0 R 910 0 R 911 0 R]/Contents 904 0 R >> endobj 94 0 obj <> /Annots[916 0 R 917 0 R]/Contents 914 0 R >> endobj 99 0 obj <> /Annots[922 0 R]/Contents 920 0 R >> endobj 103 0 obj <> /Annots[927 0 R 928 0 R]/Contents 925 0 R >> endobj 105 0 obj <> /Contents 931 0 R >> endobj 935 0 obj <> /Contents 936 0 R >> endobj 108 0 obj <> /Annots[944 0 R]/Contents 942 0 R >> endobj 112 0 obj <> /Annots[949 0 R 950 0 R 951 0 R 952 0 R 953 0 R 954 0 R 955 0 R 956 0 R]/Contents 947 0 R >> endobj 115 0 obj <> /Annots[961 0 R]/Contents 959 0 R >> endobj 118 0 obj <> /Annots[966 0 R]/Contents 964 0 R >> endobj 122 0 obj <> /Contents 969 0 R >> endobj 125 0 obj <> /Annots[975 0 R 976 0 R]/Contents 973 0 R >> endobj 128 0 obj <> /Annots[981 0 R 982 0 R 983 0 R]/Contents 979 0 R >> endobj 130 0 obj <> /Annots[988 0 R 989 0 R]/Contents 986 0 R >> endobj 133 0 obj <> /Contents 992 0 R >> endobj 137 0 obj <> /Annots[998 0 R 999 0 R 1000 0 R 1001 0 R 1002 0 R]/Contents 996 0 R >> endobj 140 0 obj <> /Annots[1007 0 R]/Contents 1005 0 R >> endobj 142 0 obj <> /Annots[1012 0 R]/Contents 1010 0 R >> endobj 145 0 obj <> /Annots[1017 0 R 1018 0 R 1019 0 R]/Contents 1015 0 R >> endobj 147 0 obj <> /Annots[1024 0 R]/Contents 1022 0 R >> endobj 150 0 obj <> /Annots[1029 0 R 1030 0 R 1031 0 R]/Contents 1027 0 R >> endobj 153 0 obj <> /Contents 1034 0 R >> endobj 158 0 obj <> /Annots[1040 0 R 1041 0 R 1042 0 R 1043 0 R]/Contents 1038 0 R >> endobj 1046 0 obj <> /Contents 1047 0 R >> endobj 162 0 obj <> /Annots[1053 0 R]/Contents 1051 0 R >> endobj 164 0 obj <> /Annots[1058 0 R]/Contents 1056 0 R >> endobj 166 0 obj <> /Annots[1063 0 R 1064 0 R]/Contents 1061 0 R >> endobj 168 0 obj <> /Annots[1069 0 R]/Contents 1067 0 R >> endobj 173 0 obj <> /Annots[1074 0 R 1075 0 R]/Contents 1072 0 R >> endobj 1078 0 obj <> /Contents 1079 0 R >> endobj 179 0 obj <> /Annots[1085 0 R]/Contents 1083 0 R >> endobj 1088 0 obj <> /Contents 1089 0 R >> endobj 181 0 obj <> /Annots[1095 0 R]/Contents 1093 0 R >> endobj 188 0 obj <> /Contents 1098 0 R >> endobj 193 0 obj <> /Annots[1104 0 R 1105 0 R 1106 0 R 1107 0 R]/Contents 1102 0 R >> endobj 199 0 obj <> /Contents 1110 0 R >> endobj 202 0 obj <> /Contents 1114 0 R >> endobj 211 0 obj <> /Annots[1120 0 R]/Contents 1118 0 R >> endobj 216 0 obj <> /Annots[1125 0 R]/Contents 1123 0 R >> endobj 225 0 obj <> /Annots[1130 0 R]/Contents 1128 0 R >> endobj 232 0 obj <> /Annots[1135 0 R 1136 0 R]/Contents 1133 0 R >> endobj 239 0 obj <> /Annots[1141 0 R 1142 0 R]/Contents 1139 0 R >> endobj 241 0 obj <> /Annots[1147 0 R]/Contents 1145 0 R >> endobj 246 0 obj <> /Annots[1152 0 R]/Contents 1150 0 R >> endobj 248 0 obj <> /Annots[1157 0 R]/Contents 1155 0 R >> endobj 254 0 obj <> /Contents 1160 0 R >> endobj 260 0 obj <> /Contents 1164 0 R >> endobj 264 0 obj <> /Annots[1170 0 R]/Contents 1168 0 R >> endobj 268 0 obj <> /Annots[1175 0 R 1176 0 R]/Contents 1173 0 R >> endobj 274 0 obj <> /Annots[1181 0 R 1182 0 R]/Contents 1179 0 R >> endobj 285 0 obj <> /Annots[1187 0 R 1188 0 R]/Contents 1185 0 R >> endobj 291 0 obj <> /Annots[1193 0 R 1194 0 R]/Contents 1191 0 R >> endobj 300 0 obj <> /Annots[1199 0 R]/Contents 1197 0 R >> endobj 304 0 obj <> /Annots[1204 0 R 1205 0 R]/Contents 1202 0 R >> endobj 312 0 obj <> /Contents 1208 0 R >> endobj 316 0 obj <> /Contents 1212 0 R >> endobj 320 0 obj <> /Annots[1218 0 R]/Contents 1216 0 R >> endobj 326 0 obj <> /Annots[1223 0 R]/Contents 1221 0 R >> endobj 329 0 obj <> /Annots[1228 0 R 1229 0 R]/Contents 1226 0 R >> endobj 334 0 obj <> /Annots[1234 0 R 1235 0 R 1236 0 R 1237 0 R]/Contents 1232 0 R >> endobj 339 0 obj <> /Annots[1242 0 R 1243 0 R]/Contents 1240 0 R >> endobj 346 0 obj <> /Annots[1248 0 R 1249 0 R 1250 0 R 1251 0 R]/Contents 1246 0 R >> endobj 353 0 obj <> /Annots[1256 0 R 1257 0 R]/Contents 1254 0 R >> endobj 360 0 obj <> /Annots[1262 0 R 1263 0 R 1264 0 R 1265 0 R 1266 0 R 1267 0 R]/Contents 1260 0 R >> endobj 365 0 obj <> /Annots[1272 0 R 1273 0 R 1274 0 R 1275 0 R]/Contents 1270 0 R >> endobj 370 0 obj <> /Annots[1280 0 R]/Contents 1278 0 R >> endobj 374 0 obj <> /Contents 1283 0 R >> endobj 380 0 obj <> /Contents 1287 0 R >> endobj 386 0 obj <> /Annots[1293 0 R 1294 0 R]/Contents 1291 0 R >> endobj 390 0 obj <> /Annots[1299 0 R 1300 0 R 1301 0 R]/Contents 1297 0 R >> endobj 393 0 obj <> /Annots[1306 0 R 1307 0 R 1308 0 R 1309 0 R]/Contents 1304 0 R >> endobj 398 0 obj <> /Annots[1314 0 R]/Contents 1312 0 R >> endobj 1317 0 obj <> /Annots[1320 0 R 1321 0 R 1322 0 R 1323 0 R 1324 0 R 1325 0 R 1326 0 R 1327 0 R 1328 0 R 1329 0 R 1330 0 R 1331 0 R]/Contents 1318 0 R >> endobj 400 0 obj <> /Annots[1336 0 R]/Contents 1334 0 R >> endobj 404 0 obj <> /Contents 1339 0 R >> endobj 407 0 obj <> /Contents 1343 0 R >> endobj 412 0 obj <> /Contents 1347 0 R >> endobj 414 0 obj <> /Contents 1351 0 R >> endobj 416 0 obj <> /Contents 1355 0 R >> endobj 419 0 obj <> /Contents 1359 0 R >> endobj 423 0 obj <> /Annots[1365 0 R 1366 0 R 1367 0 R]/Contents 1363 0 R >> endobj 427 0 obj <> /Contents 1370 0 R >> endobj 431 0 obj <> /Annots[1376 0 R]/Contents 1374 0 R >> endobj 433 0 obj <> /Annots[1381 0 R 1382 0 R 1383 0 R 1384 0 R]/Contents 1379 0 R >> endobj 438 0 obj <> /Annots[1389 0 R 1390 0 R 1391 0 R]/Contents 1387 0 R >> endobj 440 0 obj <> /Annots[1396 0 R 1399 0 R]/Contents 1394 0 R >> endobj 442 0 obj <> /Annots[1404 0 R]/Contents 1402 0 R >> endobj 448 0 obj <> /Annots[1409 0 R 1410 0 R]/Contents 1407 0 R >> endobj 1413 0 obj <> /Annots[1416 0 R 1417 0 R]/Contents 1414 0 R >> endobj 452 0 obj <> /Annots[1422 0 R]/Contents 1420 0 R >> endobj 456 0 obj <> /Contents 1425 0 R >> endobj 1429 0 obj <> /Contents 1430 0 R >> endobj 458 0 obj <> /Annots[1436 0 R 1437 0 R 1438 0 R 1439 0 R 1440 0 R]/Contents 1434 0 R >> endobj 463 0 obj <> /Annots[1445 0 R 1446 0 R 1447 0 R 1448 0 R 1449 0 R]/Contents 1443 0 R >> endobj 470 0 obj <> /Annots[1454 0 R 1455 0 R 1456 0 R]/Contents 1452 0 R >> endobj 478 0 obj <> /Annots[1461 0 R 1462 0 R 1463 0 R 1464 0 R]/Contents 1459 0 R >> endobj 485 0 obj <> /Annots[1469 0 R 1470 0 R 1471 0 R 1472 0 R 1473 0 R 1474 0 R 1475 0 R]/Contents 1467 0 R >> endobj 494 0 obj <> /Annots[1480 0 R 1481 0 R]/Contents 1478 0 R >> endobj 500 0 obj <> /Annots[1486 0 R]/Contents 1484 0 R >> endobj 505 0 obj <> /Annots[1491 0 R 1492 0 R]/Contents 1489 0 R >> endobj 1495 0 obj <> /Contents 1496 0 R >> endobj 508 0 obj <> /Annots[1502 0 R]/Contents 1500 0 R >> endobj 514 0 obj <> /Annots[1507 0 R]/Contents 1505 0 R >> endobj 518 0 obj <> /Annots[1512 0 R]/Contents 1510 0 R >> endobj 521 0 obj <> /Annots[1517 0 R 1518 0 R]/Contents 1515 0 R >> endobj 527 0 obj <> /Annots[1523 0 R 1524 0 R]/Contents 1521 0 R >> endobj 531 0 obj <> /Annots[1529 0 R 1530 0 R 1531 0 R]/Contents 1527 0 R >> endobj 536 0 obj <> /Contents 1534 0 R >> endobj 543 0 obj <> /Annots[1540 0 R]/Contents 1538 0 R >> endobj 547 0 obj <> /Annots[1545 0 R 1546 0 R]/Contents 1543 0 R >> endobj 554 0 obj <> /Contents 1549 0 R >> endobj 556 0 obj <> /Annots[1555 0 R]/Contents 1553 0 R >> endobj 559 0 obj <> /Contents 1558 0 R >> endobj 563 0 obj <> /Contents 1562 0 R >> endobj 566 0 obj <> /Annots[1568 0 R 1569 0 R]/Contents 1566 0 R >> endobj 572 0 obj <> /Contents 1572 0 R >> endobj 575 0 obj <> /Annots[1578 0 R]/Contents 1576 0 R >> endobj 578 0 obj <> /Annots[1583 0 R 1584 0 R 1585 0 R]/Contents 1581 0 R >> endobj 583 0 obj <> /Contents 1588 0 R >> endobj 589 0 obj <> /Annots[1594 0 R]/Contents 1592 0 R >> endobj 594 0 obj <> /Annots[1599 0 R 1600 0 R 1601 0 R 1602 0 R 1603 0 R 1604 0 R 1605 0 R]/Contents 1597 0 R >> endobj 601 0 obj <> /Contents 1608 0 R >> endobj 604 0 obj <> /Annots[1614 0 R 1615 0 R 1616 0 R]/Contents 1612 0 R >> endobj 610 0 obj <> /Annots[1621 0 R]/Contents 1619 0 R >> endobj 1624 0 obj <> /Contents 1625 0 R >> endobj 1631 0 obj <> /Contents 1632 0 R >> endobj 1636 0 obj <> /Contents 1637 0 R >> endobj 1643 0 obj <> /Contents 1644 0 R >> endobj 1648 0 obj <> /Contents 1649 0 R >> endobj 1653 0 obj <> /Contents 1654 0 R >> endobj 612 0 obj <> /Contents 1658 0 R >> endobj 1662 0 obj <> /Contents 1663 0 R >> endobj 1667 0 obj <> /Contents 1668 0 R >> endobj 1672 0 obj <> /Contents 1673 0 R >> endobj 1677 0 obj <> /Annots[1680 0 R 1681 0 R]/Contents 1678 0 R >> endobj 614 0 obj <> /Contents 1684 0 R >> endobj 618 0 obj <> /Contents 1690 0 R >> endobj 1694 0 obj <> /Contents 1695 0 R >> endobj 1699 0 obj <> /Contents 1700 0 R >> endobj 1704 0 obj <> /Contents 1705 0 R >> endobj 620 0 obj <> /Contents 1709 0 R >> endobj 1713 0 obj <> /Contents 1714 0 R >> endobj 1718 0 obj <> /Contents 1719 0 R >> endobj 624 0 obj <> /Contents 1723 0 R >> endobj 626 0 obj <> /Contents 1727 0 R >> endobj 628 0 obj <> /Annots[1733 0 R 1734 0 R]/Contents 1731 0 R >> endobj 631 0 obj <> /Contents 1737 0 R >> endobj 633 0 obj <> /Contents 1741 0 R >> endobj 1745 0 obj <> /Contents 1746 0 R >> endobj 635 0 obj <> /Contents 1750 0 R >> endobj 637 0 obj <> /Contents 1754 0 R >> endobj 1758 0 obj <> /Contents 1759 0 R >> endobj 639 0 obj <> /Annots[1765 0 R 1766 0 R 1767 0 R 1768 0 R 1769 0 R 1770 0 R 1771 0 R 1772 0 R 1773 0 R 1774 0 R 1775 0 R 1776 0 R 1777 0 R 1778 0 R 1779 0 R 1780 0 R 1781 0 R 1782 0 R 1783 0 R 1784 0 R 1785 0 R 1786 0 R 1787 0 R 1788 0 R 1789 0 R 1790 0 R 1791 0 R 1792 0 R 1793 0 R 1794 0 R 1795 0 R 1796 0 R 1797 0 R 1798 0 R 1799 0 R 1800 0 R 1801 0 R 1802 0 R 1803 0 R 1804 0 R 1805 0 R 1806 0 R 1807 0 R 1808 0 R 1809 0 R 1810 0 R 1811 0 R 1812 0 R 1813 0 R 1814 0 R 1815 0 R 1816 0 R 1817 0 R 1818 0 R 1819 0 R 1820 0 R 1821 0 R 1822 0 R 1823 0 R 1824 0 R 1825 0 R 1826 0 R 1827 0 R 1828 0 R 1829 0 R 1830 0 R 1831 0 R 1832 0 R 1833 0 R 1834 0 R 1835 0 R 1836 0 R 1837 0 R 1838 0 R 1839 0 R 1840 0 R 1841 0 R 1842 0 R 1843 0 R 1844 0 R 1845 0 R 1846 0 R 1847 0 R 1848 0 R 1849 0 R 1850 0 R 1851 0 R 1852 0 R 1853 0 R 1854 0 R 1855 0 R 1856 0 R 1857 0 R 1858 0 R 1859 0 R 1860 0 R 1861 0 R 1862 0 R 1863 0 R 1864 0 R 1865 0 R 1866 0 R 1867 0 R 1868 0 R 1869 0 R 1870 0 R 1871 0 R 1872 0 R 1873 0 R 1874 0 R 1875 0 R 1876 0 R 1877 0 R 1878 0 R 1879 0 R 1880 0 R 1881 0 R 1882 0 R 1883 0 R 1884 0 R 1885 0 R 1886 0 R 1887 0 R 1888 0 R 1889 0 R 1890 0 R 1891 0 R 1892 0 R 1893 0 R 1894 0 R 1895 0 R 1896 0 R 1897 0 R 1898 0 R 1899 0 R 1900 0 R 1901 0 R 1902 0 R 1903 0 R 1904 0 R 1905 0 R 1906 0 R]/Contents 1763 0 R >> endobj 645 0 obj <> /Annots[1911 0 R 1912 0 R 1913 0 R 1914 0 R 1915 0 R 1916 0 R 1917 0 R 1918 0 R 1919 0 R 1920 0 R 1921 0 R 1922 0 R 1923 0 R 1924 0 R 1925 0 R 1926 0 R 1927 0 R 1928 0 R 1929 0 R 1930 0 R 1931 0 R 1932 0 R 1933 0 R 1934 0 R 1935 0 R 1936 0 R 1937 0 R 1938 0 R 1939 0 R 1940 0 R 1941 0 R 1942 0 R 1943 0 R 1944 0 R 1945 0 R 1946 0 R 1947 0 R 1948 0 R 1949 0 R 1950 0 R 1951 0 R 1952 0 R 1953 0 R 1954 0 R 1955 0 R 1956 0 R 1957 0 R 1958 0 R 1959 0 R 1960 0 R 1961 0 R 1962 0 R 1963 0 R 1964 0 R 1965 0 R 1966 0 R 1967 0 R 1968 0 R 1969 0 R 1970 0 R 1971 0 R 1972 0 R 1973 0 R 1974 0 R 1975 0 R 1976 0 R 1977 0 R 1978 0 R 1979 0 R 1980 0 R 1981 0 R 1982 0 R 1983 0 R 1984 0 R 1985 0 R 1986 0 R 1987 0 R 1988 0 R 1989 0 R 1990 0 R 1991 0 R 1992 0 R 1993 0 R 1994 0 R 1995 0 R 1996 0 R 1997 0 R 1998 0 R 1999 0 R 2000 0 R 2001 0 R 2002 0 R 2003 0 R 2004 0 R 2005 0 R 2006 0 R 2007 0 R 2008 0 R 2009 0 R 2010 0 R 2011 0 R 2012 0 R 2013 0 R 2014 0 R 2015 0 R 2016 0 R 2017 0 R 2018 0 R 2019 0 R 2020 0 R 2021 0 R 2022 0 R 2023 0 R 2024 0 R 2025 0 R 2026 0 R 2027 0 R 2028 0 R 2029 0 R 2030 0 R 2031 0 R 2032 0 R 2033 0 R 2034 0 R 2035 0 R 2036 0 R 2037 0 R 2038 0 R 2039 0 R 2040 0 R 2041 0 R 2042 0 R 2043 0 R 2044 0 R 2045 0 R 2046 0 R 2047 0 R]/Contents 1909 0 R >> endobj 648 0 obj <> /Annots[2052 0 R 2053 0 R 2054 0 R 2055 0 R 2056 0 R 2057 0 R 2058 0 R 2059 0 R 2060 0 R 2061 0 R 2062 0 R 2063 0 R 2064 0 R 2065 0 R 2066 0 R 2067 0 R 2068 0 R 2069 0 R 2070 0 R 2071 0 R 2072 0 R 2073 0 R 2074 0 R 2075 0 R 2076 0 R 2077 0 R 2078 0 R 2079 0 R 2080 0 R 2081 0 R 2082 0 R 2083 0 R 2084 0 R 2085 0 R 2086 0 R 2087 0 R 2088 0 R 2089 0 R 2090 0 R 2091 0 R 2092 0 R 2093 0 R 2094 0 R 2095 0 R 2096 0 R 2097 0 R 2098 0 R 2099 0 R 2100 0 R 2101 0 R 2102 0 R 2103 0 R 2104 0 R 2105 0 R 2106 0 R 2107 0 R 2108 0 R 2109 0 R 2110 0 R 2111 0 R 2112 0 R 2113 0 R 2114 0 R 2115 0 R 2116 0 R 2117 0 R 2118 0 R 2119 0 R 2120 0 R 2121 0 R 2122 0 R 2123 0 R 2124 0 R 2125 0 R 2126 0 R 2127 0 R 2128 0 R 2129 0 R 2130 0 R 2131 0 R 2132 0 R 2133 0 R 2134 0 R 2135 0 R 2136 0 R 2137 0 R 2138 0 R 2139 0 R 2140 0 R 2141 0 R 2142 0 R 2143 0 R 2144 0 R 2145 0 R 2146 0 R 2147 0 R 2148 0 R 2149 0 R 2150 0 R 2151 0 R 2152 0 R 2153 0 R 2154 0 R 2155 0 R 2156 0 R 2157 0 R 2158 0 R 2159 0 R 2160 0 R 2161 0 R 2162 0 R 2163 0 R 2164 0 R 2165 0 R 2166 0 R 2167 0 R 2168 0 R 2169 0 R 2170 0 R 2171 0 R 2172 0 R 2173 0 R 2174 0 R 2175 0 R 2176 0 R 2177 0 R 2178 0 R 2179 0 R 2180 0 R 2181 0 R 2182 0 R 2183 0 R 2184 0 R 2185 0 R 2186 0 R 2187 0 R 2188 0 R]/Contents 2050 0 R >> endobj 651 0 obj <> /Annots[2193 0 R 2194 0 R 2195 0 R 2196 0 R 2197 0 R 2198 0 R 2199 0 R 2200 0 R 2201 0 R 2202 0 R 2203 0 R 2204 0 R 2205 0 R 2206 0 R 2207 0 R 2208 0 R 2209 0 R 2210 0 R 2211 0 R 2212 0 R 2213 0 R 2214 0 R 2215 0 R 2216 0 R 2217 0 R 2218 0 R 2219 0 R 2220 0 R 2221 0 R 2222 0 R 2223 0 R 2224 0 R 2225 0 R 2226 0 R 2227 0 R 2228 0 R 2229 0 R 2230 0 R 2231 0 R 2232 0 R 2233 0 R 2234 0 R 2235 0 R 2236 0 R 2237 0 R 2238 0 R 2239 0 R 2240 0 R 2241 0 R 2242 0 R 2243 0 R 2244 0 R 2245 0 R 2246 0 R 2247 0 R 2248 0 R 2249 0 R 2250 0 R 2251 0 R 2252 0 R 2253 0 R 2254 0 R 2255 0 R 2256 0 R 2257 0 R 2258 0 R 2259 0 R 2260 0 R 2261 0 R 2262 0 R 2263 0 R 2264 0 R 2265 0 R 2266 0 R 2267 0 R 2268 0 R 2269 0 R 2270 0 R 2271 0 R 2272 0 R 2273 0 R 2274 0 R 2275 0 R 2276 0 R 2277 0 R 2278 0 R 2279 0 R 2280 0 R 2281 0 R 2282 0 R 2283 0 R 2284 0 R 2285 0 R 2286 0 R 2287 0 R 2288 0 R 2289 0 R 2290 0 R 2291 0 R 2292 0 R 2293 0 R 2294 0 R 2295 0 R 2296 0 R 2297 0 R 2298 0 R 2299 0 R 2300 0 R 2301 0 R 2302 0 R 2303 0 R 2304 0 R 2305 0 R 2306 0 R 2307 0 R 2308 0 R 2309 0 R 2310 0 R 2311 0 R 2312 0 R 2313 0 R 2314 0 R 2315 0 R 2316 0 R 2317 0 R 2318 0 R 2319 0 R 2320 0 R 2321 0 R 2322 0 R 2323 0 R 2324 0 R 2325 0 R 2326 0 R 2327 0 R 2328 0 R 2329 0 R]/Contents 2191 0 R >> endobj 658 0 obj <> /Annots[2334 0 R 2335 0 R 2336 0 R 2337 0 R 2338 0 R 2339 0 R 2340 0 R 2341 0 R 2342 0 R 2343 0 R 2344 0 R 2345 0 R 2346 0 R 2347 0 R 2348 0 R 2349 0 R 2350 0 R 2351 0 R 2352 0 R 2353 0 R 2354 0 R 2355 0 R 2356 0 R 2357 0 R 2358 0 R 2359 0 R 2360 0 R 2361 0 R 2362 0 R 2363 0 R 2364 0 R 2365 0 R 2366 0 R 2367 0 R 2368 0 R 2369 0 R 2370 0 R 2371 0 R 2372 0 R 2373 0 R 2374 0 R 2375 0 R 2376 0 R 2377 0 R 2378 0 R 2379 0 R 2380 0 R 2381 0 R 2382 0 R 2383 0 R 2384 0 R 2385 0 R 2386 0 R 2387 0 R 2388 0 R 2389 0 R 2390 0 R 2391 0 R 2392 0 R 2393 0 R 2394 0 R 2395 0 R 2396 0 R 2397 0 R 2398 0 R 2399 0 R 2400 0 R 2401 0 R 2402 0 R 2403 0 R 2404 0 R 2405 0 R 2406 0 R 2407 0 R 2408 0 R 2409 0 R 2410 0 R 2411 0 R 2412 0 R 2413 0 R 2414 0 R 2415 0 R 2416 0 R 2417 0 R 2418 0 R 2419 0 R 2420 0 R 2421 0 R 2422 0 R 2423 0 R 2424 0 R 2425 0 R 2426 0 R 2427 0 R 2428 0 R 2429 0 R 2430 0 R 2431 0 R 2432 0 R 2433 0 R 2434 0 R 2435 0 R 2436 0 R 2437 0 R 2438 0 R 2439 0 R 2440 0 R 2441 0 R 2442 0 R 2443 0 R 2444 0 R 2445 0 R 2446 0 R 2447 0 R 2448 0 R 2449 0 R 2450 0 R 2451 0 R 2452 0 R 2453 0 R 2454 0 R 2455 0 R 2456 0 R 2457 0 R 2458 0 R 2459 0 R 2460 0 R 2461 0 R 2462 0 R 2463 0 R 2464 0 R 2465 0 R 2466 0 R 2467 0 R]/Contents 2332 0 R >> endobj 661 0 obj <> /Annots[2472 0 R 2473 0 R 2474 0 R 2475 0 R 2476 0 R 2477 0 R 2478 0 R 2479 0 R 2480 0 R 2481 0 R 2482 0 R 2483 0 R 2484 0 R 2485 0 R 2486 0 R 2487 0 R 2488 0 R 2489 0 R 2490 0 R 2491 0 R 2492 0 R 2493 0 R 2494 0 R 2495 0 R 2496 0 R 2497 0 R 2498 0 R 2499 0 R 2500 0 R 2501 0 R 2502 0 R 2503 0 R 2504 0 R 2505 0 R 2506 0 R 2507 0 R 2508 0 R 2509 0 R 2510 0 R 2511 0 R 2512 0 R 2513 0 R 2514 0 R 2515 0 R 2516 0 R 2517 0 R 2518 0 R 2519 0 R 2520 0 R 2521 0 R 2522 0 R 2523 0 R 2524 0 R 2525 0 R 2526 0 R 2527 0 R 2528 0 R 2529 0 R 2530 0 R 2531 0 R 2532 0 R 2533 0 R 2534 0 R 2535 0 R 2536 0 R 2537 0 R 2538 0 R 2539 0 R 2540 0 R 2541 0 R 2542 0 R 2543 0 R 2544 0 R 2545 0 R 2546 0 R 2547 0 R 2548 0 R 2549 0 R 2550 0 R 2551 0 R 2552 0 R 2553 0 R 2554 0 R 2555 0 R 2556 0 R 2557 0 R 2558 0 R 2559 0 R 2560 0 R 2561 0 R 2562 0 R 2563 0 R 2564 0 R 2565 0 R 2566 0 R 2567 0 R 2568 0 R 2569 0 R 2570 0 R 2571 0 R 2572 0 R 2573 0 R 2574 0 R 2575 0 R 2576 0 R 2577 0 R 2578 0 R 2579 0 R 2580 0 R 2581 0 R 2582 0 R 2583 0 R 2584 0 R 2585 0 R 2586 0 R 2587 0 R 2588 0 R 2589 0 R 2590 0 R 2591 0 R 2592 0 R 2593 0 R 2594 0 R 2595 0 R 2596 0 R 2597 0 R 2598 0 R 2599 0 R 2600 0 R 2601 0 R 2602 0 R 2603 0 R 2604 0 R 2605 0 R 2606 0 R 2607 0 R 2608 0 R 2609 0 R 2610 0 R 2611 0 R 2612 0 R 2613 0 R 2614 0 R 2615 0 R 2616 0 R 2617 0 R 2618 0 R]/Contents 2470 0 R >> endobj 664 0 obj <> /Annots[2623 0 R 2624 0 R 2625 0 R 2626 0 R 2627 0 R 2628 0 R 2629 0 R 2630 0 R 2631 0 R 2632 0 R 2633 0 R 2634 0 R 2635 0 R 2636 0 R 2637 0 R 2638 0 R 2639 0 R 2640 0 R 2641 0 R 2642 0 R 2643 0 R 2644 0 R 2645 0 R 2646 0 R 2647 0 R 2648 0 R 2649 0 R 2650 0 R 2651 0 R 2652 0 R 2653 0 R 2654 0 R 2655 0 R 2656 0 R 2657 0 R 2658 0 R 2659 0 R 2660 0 R 2661 0 R 2662 0 R 2663 0 R 2664 0 R 2665 0 R 2666 0 R 2667 0 R 2668 0 R 2669 0 R 2670 0 R 2671 0 R 2672 0 R 2673 0 R 2674 0 R 2675 0 R 2676 0 R 2677 0 R 2678 0 R 2679 0 R 2680 0 R 2681 0 R 2682 0 R 2683 0 R 2684 0 R 2685 0 R 2686 0 R 2687 0 R 2688 0 R 2689 0 R 2690 0 R 2691 0 R 2692 0 R 2693 0 R 2694 0 R 2695 0 R 2696 0 R 2697 0 R 2698 0 R 2699 0 R 2700 0 R 2701 0 R 2702 0 R 2703 0 R 2704 0 R 2705 0 R 2706 0 R 2707 0 R 2708 0 R 2709 0 R 2710 0 R 2711 0 R 2712 0 R 2713 0 R 2714 0 R 2715 0 R 2716 0 R 2717 0 R 2718 0 R 2719 0 R 2720 0 R 2721 0 R 2722 0 R 2723 0 R 2724 0 R 2725 0 R 2726 0 R 2727 0 R 2728 0 R 2729 0 R 2730 0 R 2731 0 R 2732 0 R 2733 0 R 2734 0 R 2735 0 R 2736 0 R 2737 0 R 2738 0 R 2739 0 R 2740 0 R 2741 0 R 2742 0 R 2743 0 R 2744 0 R 2745 0 R 2746 0 R 2747 0 R 2748 0 R 2749 0 R 2750 0 R 2751 0 R 2752 0 R 2753 0 R 2754 0 R 2755 0 R 2756 0 R 2757 0 R 2758 0 R 2759 0 R 2760 0 R 2761 0 R 2762 0 R 2763 0 R 2764 0 R 2765 0 R 2766 0 R 2767 0 R 2768 0 R 2769 0 R 2770 0 R 2771 0 R 2772 0 R 2773 0 R]/Contents 2621 0 R >> endobj 667 0 obj <> /Annots[2778 0 R 2779 0 R 2780 0 R 2781 0 R 2782 0 R 2783 0 R 2784 0 R 2785 0 R 2786 0 R 2787 0 R 2788 0 R 2789 0 R 2790 0 R 2791 0 R 2792 0 R 2793 0 R 2794 0 R 2795 0 R 2796 0 R 2797 0 R 2798 0 R 2799 0 R 2800 0 R 2801 0 R 2802 0 R 2803 0 R 2804 0 R 2805 0 R 2806 0 R 2807 0 R 2808 0 R 2809 0 R 2810 0 R 2811 0 R 2812 0 R 2813 0 R 2814 0 R 2815 0 R 2816 0 R 2817 0 R 2818 0 R 2819 0 R 2820 0 R 2821 0 R 2822 0 R 2823 0 R 2824 0 R 2825 0 R 2826 0 R 2827 0 R 2828 0 R 2829 0 R 2830 0 R 2831 0 R 2832 0 R 2833 0 R 2834 0 R 2835 0 R 2836 0 R 2837 0 R 2838 0 R 2839 0 R 2840 0 R 2841 0 R 2842 0 R 2843 0 R 2844 0 R 2845 0 R 2846 0 R 2847 0 R 2848 0 R 2849 0 R 2850 0 R 2851 0 R 2852 0 R 2853 0 R 2854 0 R 2855 0 R 2856 0 R 2857 0 R 2858 0 R 2859 0 R 2860 0 R 2861 0 R 2862 0 R 2863 0 R 2864 0 R 2865 0 R 2866 0 R 2867 0 R 2868 0 R 2869 0 R 2870 0 R 2871 0 R 2872 0 R 2873 0 R 2874 0 R 2875 0 R 2876 0 R 2877 0 R 2878 0 R 2879 0 R 2880 0 R 2881 0 R 2882 0 R 2883 0 R 2884 0 R 2885 0 R 2886 0 R 2887 0 R 2888 0 R 2889 0 R 2890 0 R 2891 0 R 2892 0 R 2893 0 R 2894 0 R 2895 0 R 2896 0 R 2897 0 R 2898 0 R 2899 0 R 2900 0 R 2901 0 R 2902 0 R 2903 0 R 2904 0 R 2905 0 R 2906 0 R 2907 0 R 2908 0 R 2909 0 R 2910 0 R 2911 0 R 2912 0 R 2913 0 R 2914 0 R 2915 0 R 2916 0 R 2917 0 R 2918 0 R 2919 0 R 2920 0 R 2921 0 R 2922 0 R 2923 0 R 2924 0 R 2925 0 R 2926 0 R 2927 0 R 2928 0 R 2929 0 R 2930 0 R 2931 0 R 2932 0 R 2933 0 R 2934 0 R 2935 0 R 2936 0 R]/Contents 2776 0 R >> endobj 669 0 obj <> /Annots[2941 0 R 2942 0 R 2943 0 R 2944 0 R 2945 0 R 2946 0 R 2947 0 R 2948 0 R 2949 0 R 2950 0 R 2951 0 R 2952 0 R 2953 0 R 2954 0 R 2955 0 R 2956 0 R 2957 0 R 2958 0 R 2959 0 R 2960 0 R 2961 0 R 2962 0 R 2963 0 R 2964 0 R 2965 0 R 2966 0 R 2967 0 R 2968 0 R 2969 0 R 2970 0 R 2971 0 R 2972 0 R 2973 0 R 2974 0 R 2975 0 R 2976 0 R 2977 0 R 2978 0 R 2979 0 R 2980 0 R 2981 0 R 2982 0 R 2983 0 R 2984 0 R 2985 0 R 2986 0 R 2987 0 R 2988 0 R 2989 0 R 2990 0 R 2991 0 R 2992 0 R 2993 0 R 2994 0 R 2995 0 R 2996 0 R 2997 0 R 2998 0 R 2999 0 R 3000 0 R 3001 0 R 3002 0 R 3003 0 R 3004 0 R 3005 0 R 3006 0 R 3007 0 R 3008 0 R 3009 0 R 3010 0 R 3011 0 R 3012 0 R 3013 0 R 3014 0 R 3015 0 R 3016 0 R 3017 0 R 3018 0 R 3019 0 R 3020 0 R 3021 0 R 3022 0 R 3023 0 R 3024 0 R 3025 0 R 3026 0 R 3027 0 R 3028 0 R 3029 0 R 3030 0 R 3031 0 R 3032 0 R 3033 0 R 3034 0 R 3035 0 R 3036 0 R 3037 0 R 3038 0 R 3039 0 R 3040 0 R 3041 0 R 3042 0 R 3043 0 R 3044 0 R 3045 0 R 3046 0 R 3047 0 R 3048 0 R 3049 0 R 3050 0 R 3051 0 R 3052 0 R 3053 0 R 3054 0 R 3055 0 R 3056 0 R 3057 0 R 3058 0 R 3059 0 R 3060 0 R 3061 0 R 3062 0 R 3063 0 R 3064 0 R 3065 0 R 3066 0 R 3067 0 R 3068 0 R 3069 0 R 3070 0 R 3071 0 R 3072 0 R 3073 0 R 3074 0 R 3075 0 R 3076 0 R 3077 0 R 3078 0 R 3079 0 R 3080 0 R]/Contents 2939 0 R >> endobj 673 0 obj <> /Annots[3085 0 R 3086 0 R 3087 0 R 3088 0 R]/Contents 3083 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 4 0 R 682 0 R 7 0 R 697 0 R 702 0 R 707 0 R 9 0 R 726 0 R 12 0 R 15 0 R 19 0 R 26 0 R 28 0 R 757 0 R 765 0 R 771 0 R 30 0 R 34 0 R 36 0 R 38 0 R 799 0 R 804 0 R 40 0 R 819 0 R 42 0 R 50 0 R 54 0 R 58 0 R 62 0 R 65 0 R 67 0 R 72 0 R 77 0 R 81 0 R 83 0 R 85 0 R 87 0 R 899 0 R 89 0 R 94 0 R 99 0 R 103 0 R 105 0 R 935 0 R 108 0 R 112 0 R 115 0 R 118 0 R 122 0 R 125 0 R 128 0 R 130 0 R 133 0 R 137 0 R 140 0 R 142 0 R 145 0 R 147 0 R 150 0 R 153 0 R 158 0 R 1046 0 R 162 0 R 164 0 R 166 0 R 168 0 R 173 0 R 1078 0 R 179 0 R 1088 0 R 181 0 R 188 0 R 193 0 R 199 0 R 202 0 R 211 0 R 216 0 R 225 0 R 232 0 R 239 0 R 241 0 R 246 0 R 248 0 R 254 0 R 260 0 R 264 0 R 268 0 R 274 0 R 285 0 R 291 0 R 300 0 R 304 0 R 312 0 R 316 0 R 320 0 R 326 0 R 329 0 R 334 0 R 339 0 R 346 0 R 353 0 R 360 0 R 365 0 R 370 0 R 374 0 R 380 0 R 386 0 R 390 0 R 393 0 R 398 0 R 1317 0 R 400 0 R 404 0 R 407 0 R 412 0 R 414 0 R 416 0 R 419 0 R 423 0 R 427 0 R 431 0 R 433 0 R 438 0 R 440 0 R 442 0 R 448 0 R 1413 0 R 452 0 R 456 0 R 1429 0 R 458 0 R 463 0 R 470 0 R 478 0 R 485 0 R 494 0 R 500 0 R 505 0 R 1495 0 R 508 0 R 514 0 R 518 0 R 521 0 R 527 0 R 531 0 R 536 0 R 543 0 R 547 0 R 554 0 R 556 0 R 559 0 R 563 0 R 566 0 R 572 0 R 575 0 R 578 0 R 583 0 R 589 0 R 594 0 R 601 0 R 604 0 R 610 0 R 1624 0 R 1631 0 R 1636 0 R 1643 0 R 1648 0 R 1653 0 R 612 0 R 1662 0 R 1667 0 R 1672 0 R 1677 0 R 614 0 R 618 0 R 1694 0 R 1699 0 R 1704 0 R 620 0 R 1713 0 R 1718 0 R 624 0 R 626 0 R 628 0 R 631 0 R 633 0 R 1745 0 R 635 0 R 637 0 R 1758 0 R 639 0 R 645 0 R 648 0 R 651 0 R 658 0 R 661 0 R 664 0 R 667 0 R 669 0 R 673 0 R ] /Count 200 >> endobj 5 0 obj << /Count 17 /First 6 0 R /Last 640 0 R >> endobj 1 0 obj <> 6 << /S /D >>] >> /View [/XYZ null null 1] /Page 1 /PageMode/UseOutlines /Metadata 3121 0 R >> endobj 6 0 obj << /Title(Title page) /Dest [4 0 R /XYZ null null 1] /Parent 5 0 R /Next 8 0 R >> endobj 8 0 obj << /Title(Contents) /Dest [7 0 R /XYZ null null 1] /Parent 5 0 R /Prev 6 0 R /Next 10 0 R >> endobj 11 0 obj << /Title( 1.1 Terminology) /Dest [9 0 R /XYZ null null 1] /Parent 10 0 R >> endobj 10 0 obj << /Title(1. Introduction) /Dest [9 0 R /XYZ null null 1] /Count -1 /Parent 5 0 R /Prev 8 0 R /Next 13 0 R /First 11 0 R /Last 11 0 R >> endobj 14 0 obj << /Title( 2.1 Including the music fonts in the output file) /Dest [12 0 R /XYZ null null 1] /Parent 13 0 R /Next 16 0 R >> endobj 16 0 obj << /Title( 2.2 Viewing PMW output on the screen) /Dest [15 0 R /XYZ null null 1] /Parent 13 0 R /Prev 14 0 R /Next 17 0 R >> endobj 18 0 obj << /Title( 2.3.1 Missing staves) /Dest [15 0 R /XYZ null null 1] /Parent 17 0 R /Next 20 0 R >> endobj 20 0 obj << /Title( 2.3.2 Gaps in staves) /Dest [19 0 R /XYZ null null 1] /Parent 17 0 R /Prev 18 0 R /Next 21 0 R >> endobj 21 0 obj << /Title( 2.3.3 Gaps in bar lines) /Dest [19 0 R /XYZ null null 1] /Parent 17 0 R /Prev 20 0 R >> endobj 17 0 obj << /Title( 2.3 Problems with displaying staves and bar lines) /Dest [15 0 R /XYZ null null 1] /Count -3 /Parent 13 0 R /Prev 16 0 R /Next 22 0 R /First 18 0 R /Last 21 0 R >> endobj 22 0 obj << /Title( 2.4 Antialiasing and the screen display) /Dest [19 0 R /XYZ null null 1] /Parent 13 0 R /Prev 17 0 R /Next 23 0 R >> endobj 23 0 obj << /Title( 2.5 PDF files) /Dest [19 0 R /XYZ null null 1] /Parent 13 0 R /Prev 22 0 R /Next 24 0 R >> endobj 24 0 obj << /Title( 2.6 Printing PMW output on a non-PostScript printer) /Dest [19 0 R /XYZ null null 1] /Parent 13 0 R /Prev 23 0 R /Next 25 0 R >> endobj 25 0 obj << /Title( 2.7 Printing PMW output on a PostScript printer) /Dest [19 0 R /XYZ null null 1] /Parent 13 0 R /Prev 24 0 R /Next 27 0 R >> endobj 27 0 obj << /Title( 2.8 Uninstalling PMW) /Dest [26 0 R /XYZ null null 1] /Parent 13 0 R /Prev 25 0 R >> endobj 13 0 obj << /Title(2. Installing PMW) /Dest [12 0 R /XYZ null null 1] /Count -8 /Parent 5 0 R /Prev 10 0 R /Next 29 0 R /First 14 0 R /Last 27 0 R >> endobj 31 0 obj << /Title( 3.1 Debugging options) /Dest [30 0 R /XYZ null null 1] /Parent 29 0 R /Next 32 0 R >> endobj 32 0 obj << /Title( 3.2 Setting default command-line options) /Dest [30 0 R /XYZ null null 1] /Parent 29 0 R /Prev 31 0 R /Next 33 0 R >> endobj 33 0 obj << /Title( 3.3 Information about the piece) /Dest [30 0 R /XYZ null null 1] /Parent 29 0 R /Prev 32 0 R /Next 35 0 R >> endobj 35 0 obj << /Title( 3.4 PMW input errors) /Dest [34 0 R /XYZ null null 1] /Parent 29 0 R /Prev 33 0 R /Next 37 0 R >> endobj 37 0 obj << /Title( 3.5 PostScript inclusions) /Dest [36 0 R /XYZ null null 1] /Parent 29 0 R /Prev 35 0 R >> endobj 29 0 obj << /Title(3. Running PMW) /Dest [28 0 R /XYZ null null 1] /Count -5 /Parent 5 0 R /Prev 13 0 R /Next 39 0 R /First 31 0 R /Last 37 0 R >> endobj 41 0 obj << /Title( 4.1 Simple macros) /Dest [40 0 R /XYZ null null 1] /Parent 39 0 R >> endobj 39 0 obj << /Title(4. Getting started with PMW encoding) /Dest [38 0 R /XYZ null null 1] /Count -1 /Parent 5 0 R /Prev 29 0 R /Next 43 0 R /First 41 0 R /Last 41 0 R >> endobj 45 0 obj << /Title( 5.1.1 Note types) /Dest [42 0 R /XYZ null null 1] /Parent 44 0 R /Next 46 0 R >> endobj 46 0 obj << /Title( 5.1.2 Rests) /Dest [42 0 R /XYZ null null 1] /Parent 44 0 R /Prev 45 0 R /Next 47 0 R >> endobj 47 0 obj << /Title( 5.1.3 Repeated rest bars) /Dest [42 0 R /XYZ null null 1] /Parent 44 0 R /Prev 46 0 R /Next 48 0 R >> endobj 48 0 obj << /Title( 5.1.4 Beams) /Dest [42 0 R /XYZ null null 1] /Parent 44 0 R /Prev 47 0 R /Next 49 0 R >> endobj 49 0 obj << /Title( 5.1.5 Triplets) /Dest [42 0 R /XYZ null null 1] /Parent 44 0 R /Prev 48 0 R /Next 51 0 R >> endobj 51 0 obj << /Title( 5.1.6 Accents and ornaments) /Dest [50 0 R /XYZ null null 1] /Parent 44 0 R /Prev 49 0 R /Next 52 0 R >> endobj 52 0 obj << /Title( 5.1.7 Chords) /Dest [50 0 R /XYZ null null 1] /Parent 44 0 R /Prev 51 0 R >> endobj 44 0 obj << /Title( 5.1 More about notes) /Dest [42 0 R /XYZ null null 1] /Count -7 /Parent 43 0 R /Next 53 0 R /First 45 0 R /Last 52 0 R >> endobj 55 0 obj << /Title( 5.2.1 Bar numbers) /Dest [54 0 R /XYZ null null 1] /Parent 53 0 R /Next 56 0 R >> endobj 56 0 obj << /Title( 5.2.2 Bar counting) /Dest [54 0 R /XYZ null null 1] /Parent 53 0 R /Prev 55 0 R >> endobj 53 0 obj << /Title( 5.2 Bar lengths and bar numbers) /Dest [50 0 R /XYZ null null 1] /Count -2 /Parent 43 0 R /Prev 44 0 R /Next 57 0 R /First 55 0 R /Last 56 0 R >> endobj 59 0 obj << /Title( 5.3.1 Multi-note syllables) /Dest [58 0 R /XYZ null null 1] /Parent 57 0 R /Next 60 0 R >> endobj 60 0 obj << /Title( 5.3.2 Special characters and font changes) /Dest [58 0 R /XYZ null null 1] /Parent 57 0 R /Prev 59 0 R /Next 61 0 R >> endobj 61 0 obj << /Title( 5.3.3 Spacing) /Dest [58 0 R /XYZ null null 1] /Parent 57 0 R /Prev 60 0 R >> endobj 57 0 obj << /Title( 5.3 More about underlay \(lyrics\)) /Dest [54 0 R /XYZ null null 1] /Count -3 /Parent 43 0 R /Prev 53 0 R /Next 63 0 R /First 59 0 R /Last 61 0 R >> endobj 63 0 obj << /Title( 5.4 Other kinds of text) /Dest [62 0 R /XYZ null null 1] /Parent 43 0 R /Prev 57 0 R /Next 64 0 R >> endobj 64 0 obj << /Title( 5.5 Ties, slurs, and glissandos) /Dest [62 0 R /XYZ null null 1] /Parent 43 0 R /Prev 63 0 R /Next 66 0 R >> endobj 66 0 obj << /Title( 5.6 Repeats) /Dest [65 0 R /XYZ null null 1] /Parent 43 0 R /Prev 64 0 R /Next 68 0 R >> endobj 68 0 obj << /Title( 5.7 Hairpins) /Dest [67 0 R /XYZ null null 1] /Parent 43 0 R /Prev 66 0 R /Next 69 0 R >> endobj 70 0 obj << /Title( 5.8.1 Stave spacing) /Dest [67 0 R /XYZ null null 1] /Parent 69 0 R /Next 71 0 R >> endobj 71 0 obj << /Title( 5.8.2 System gap) /Dest [67 0 R /XYZ null null 1] /Parent 69 0 R /Prev 70 0 R /Next 73 0 R >> endobj 73 0 obj << /Title( 5.8.3 Brackets and braces) /Dest [72 0 R /XYZ null null 1] /Parent 69 0 R /Prev 71 0 R /Next 74 0 R >> endobj 74 0 obj << /Title( 5.8.4 Initial text) /Dest [72 0 R /XYZ null null 1] /Parent 69 0 R /Prev 73 0 R >> endobj 69 0 obj << /Title( 5.8 Staves and systems) /Dest [67 0 R /XYZ null null 1] /Count -4 /Parent 43 0 R /Prev 68 0 R /Next 75 0 R /First 70 0 R /Last 74 0 R >> endobj 76 0 obj << /Title( 5.9.1 Overprinted staves) /Dest [72 0 R /XYZ null null 1] /Parent 75 0 R /Next 78 0 R >> endobj 78 0 obj << /Title( 5.9.2 The [reset] directive) /Dest [77 0 R /XYZ null null 1] /Parent 75 0 R /Prev 76 0 R /Next 79 0 R >> endobj 79 0 obj << /Title( 5.9.3 Invisible rests) /Dest [77 0 R /XYZ null null 1] /Parent 75 0 R /Prev 78 0 R /Next 80 0 R >> endobj 80 0 obj << /Title( 5.9.4 Coupled staves) /Dest [77 0 R /XYZ null null 1] /Parent 75 0 R /Prev 79 0 R >> endobj 75 0 obj << /Title( 5.9 Keyboard staves) /Dest [72 0 R /XYZ null null 1] /Count -4 /Parent 43 0 R /Prev 69 0 R /Next 82 0 R /First 76 0 R /Last 80 0 R >> endobj 82 0 obj << /Title( 5.10 Heads and feet) /Dest [81 0 R /XYZ null null 1] /Parent 43 0 R /Prev 75 0 R /Next 84 0 R >> endobj 84 0 obj << /Title( 5.11 Page layout) /Dest [83 0 R /XYZ null null 1] /Parent 43 0 R /Prev 82 0 R /Next 86 0 R >> endobj 86 0 obj << /Title( 5.12 Magnification) /Dest [85 0 R /XYZ null null 1] /Parent 43 0 R /Prev 84 0 R /Next 88 0 R >> endobj 88 0 obj << /Title( 5.13 Extracting parts from a score) /Dest [87 0 R /XYZ null null 1] /Parent 43 0 R /Prev 86 0 R >> endobj 43 0 obj << /Title(5. Using other PMW features) /Dest [42 0 R /XYZ null null 1] /Count -13 /Parent 5 0 R /Prev 39 0 R /Next 90 0 R /First 44 0 R /Last 88 0 R >> endobj 92 0 obj << /Title( 6.1.1 Line breaks) /Dest [89 0 R /XYZ null null 1] /Parent 91 0 R /Next 93 0 R >> endobj 93 0 obj << /Title( 6.1.2 Macro insertion) /Dest [89 0 R /XYZ null null 1] /Parent 91 0 R /Prev 92 0 R /Next 95 0 R >> endobj 95 0 obj << /Title( 6.1.3 Case sensitivity) /Dest [94 0 R /XYZ null null 1] /Parent 91 0 R /Prev 93 0 R /Next 96 0 R >> endobj 96 0 obj << /Title( 6.1.4 Heading information) /Dest [94 0 R /XYZ null null 1] /Parent 91 0 R /Prev 95 0 R /Next 97 0 R >> endobj 97 0 obj << /Title( 6.1.5 Stave information) /Dest [94 0 R /XYZ null null 1] /Parent 91 0 R /Prev 96 0 R /Next 98 0 R >> endobj 98 0 obj << /Title( 6.1.6 Multiple movements) /Dest [94 0 R /XYZ null null 1] /Parent 91 0 R /Prev 97 0 R >> endobj 91 0 obj << /Title( 6.1 Format of PMW files) /Dest [89 0 R /XYZ null null 1] /Count -6 /Parent 90 0 R /Next 100 0 R /First 92 0 R /Last 98 0 R >> endobj 101 0 obj << /Title( 6.2.1 *Comment) /Dest [99 0 R /XYZ null null 1] /Parent 100 0 R /Next 102 0 R >> endobj 102 0 obj << /Title( 6.2.2 *Define) /Dest [99 0 R /XYZ null null 1] /Parent 100 0 R /Prev 101 0 R /Next 104 0 R >> endobj 104 0 obj << /Title( 6.2.3 Macros with arguments) /Dest [103 0 R /XYZ null null 1] /Parent 100 0 R /Prev 102 0 R /Next 106 0 R >> endobj 106 0 obj << /Title( 6.2.4 *Include) /Dest [105 0 R /XYZ null null 1] /Parent 100 0 R /Prev 104 0 R /Next 107 0 R >> endobj 107 0 obj << /Title( 6.2.5 Conditional preprocessing directives) /Dest [105 0 R /XYZ null null 1] /Parent 100 0 R /Prev 106 0 R >> endobj 100 0 obj << /Title( 6.2 Preprocessing directives) /Dest [99 0 R /XYZ null null 1] /Count -5 /Parent 90 0 R /Prev 91 0 R /Next 109 0 R /First 101 0 R /Last 107 0 R >> endobj 109 0 obj << /Title( 6.3 Identification and counting of bars) /Dest [108 0 R /XYZ null null 1] /Parent 90 0 R /Prev 100 0 R /Next 110 0 R >> endobj 110 0 obj << /Title( 6.4 Dimensions) /Dest [108 0 R /XYZ null null 1] /Parent 90 0 R /Prev 109 0 R /Next 111 0 R >> endobj 111 0 obj << /Title( 6.5 Paper size) /Dest [108 0 R /XYZ null null 1] /Parent 90 0 R /Prev 110 0 R /Next 113 0 R >> endobj 113 0 obj << /Title( 6.6 MIDI output) /Dest [112 0 R /XYZ null null 1] /Parent 90 0 R /Prev 111 0 R /Next 114 0 R >> endobj 114 0 obj << /Title( 6.7 Headings and footings) /Dest [112 0 R /XYZ null null 1] /Parent 90 0 R /Prev 113 0 R /Next 116 0 R >> endobj 116 0 obj << /Title( 6.8 Horizontal and vertical justification) /Dest [115 0 R /XYZ null null 1] /Parent 90 0 R /Prev 114 0 R /Next 117 0 R >> endobj 117 0 obj << /Title( 6.9 Key and time signatures) /Dest [115 0 R /XYZ null null 1] /Parent 90 0 R /Prev 116 0 R /Next 119 0 R >> endobj 120 0 obj << /Title( 6.10.1 Transposition of key and chord names) /Dest [118 0 R /XYZ null null 1] /Parent 119 0 R >> endobj 119 0 obj << /Title( 6.10 Transposition) /Dest [118 0 R /XYZ null null 1] /Count -1 /Parent 90 0 R /Prev 117 0 R /Next 121 0 R /First 120 0 R /Last 120 0 R >> endobj 121 0 obj << /Title( 6.11 Incipits) /Dest [118 0 R /XYZ null null 1] /Parent 90 0 R /Prev 119 0 R /Next 123 0 R >> endobj 123 0 obj << /Title( 6.12 Text fonts) /Dest [122 0 R /XYZ null null 1] /Parent 90 0 R /Prev 121 0 R /Next 124 0 R >> endobj 124 0 obj << /Title( 6.13 Font sizes, aspect ratios, and shearing) /Dest [122 0 R /XYZ null null 1] /Parent 90 0 R /Prev 123 0 R /Next 126 0 R >> endobj 127 0 obj << /Title( 6.14.1 Unicode and UTF-8 encoding) /Dest [125 0 R /XYZ null null 1] /Parent 126 0 R /Next 129 0 R >> endobj 129 0 obj << /Title( 6.14.2 Backwards compatibility for character strings) /Dest [128 0 R /XYZ null null 1] /Parent 126 0 R /Prev 127 0 R /Next 131 0 R >> endobj 131 0 obj << /Title( 6.14.3 Escaped characters) /Dest [130 0 R /XYZ null null 1] /Parent 126 0 R /Prev 129 0 R /Next 132 0 R >> endobj 132 0 obj << /Title( 6.14.4 Page numbers) /Dest [130 0 R /XYZ null null 1] /Parent 126 0 R /Prev 131 0 R /Next 134 0 R >> endobj 134 0 obj << /Title( 6.14.5 Comments within strings) /Dest [133 0 R /XYZ null null 1] /Parent 126 0 R /Prev 132 0 R /Next 135 0 R >> endobj 135 0 obj << /Title( 6.14.6 Transposing key and chord names) /Dest [133 0 R /XYZ null null 1] /Parent 126 0 R /Prev 134 0 R /Next 136 0 R >> endobj 136 0 obj << /Title( 6.14.7 Font changes) /Dest [133 0 R /XYZ null null 1] /Parent 126 0 R /Prev 135 0 R /Next 138 0 R >> endobj 138 0 obj << /Title( 6.14.8 Sizes of text strings) /Dest [137 0 R /XYZ null null 1] /Parent 126 0 R /Prev 136 0 R /Next 139 0 R >> endobj 139 0 obj << /Title( 6.14.9 Music characters) /Dest [137 0 R /XYZ null null 1] /Parent 126 0 R /Prev 138 0 R /Next 141 0 R >> endobj 141 0 obj << /Title( 6.14.10 Guitar chord grids) /Dest [140 0 R /XYZ null null 1] /Parent 126 0 R /Prev 139 0 R /Next 143 0 R >> endobj 143 0 obj << /Title( 6.14.11 Kerning) /Dest [142 0 R /XYZ null null 1] /Parent 126 0 R /Prev 141 0 R >> endobj 126 0 obj << /Title( 6.14 Text strings) /Dest [125 0 R /XYZ null null 1] /Count -11 /Parent 90 0 R /Prev 124 0 R /Next 144 0 R /First 127 0 R /Last 143 0 R >> endobj 144 0 obj << /Title( 6.15 Stave 0) /Dest [142 0 R /XYZ null null 1] /Parent 90 0 R /Prev 126 0 R /Next 146 0 R >> endobj 146 0 obj << /Title( 6.16 Temporarily suspending staves) /Dest [145 0 R /XYZ null null 1] /Parent 90 0 R /Prev 144 0 R >> endobj 90 0 obj << /Title(6. PMW reference description) /Dest [89 0 R /XYZ null null 1] /Count -16 /Parent 5 0 R /Prev 43 0 R /Next 148 0 R /First 91 0 R /Last 146 0 R >> endobj 149 0 obj << /Title( 7.1 Stack-based operations) /Dest [147 0 R /XYZ null null 1] /Parent 148 0 R /Next 151 0 R >> endobj 151 0 obj << /Title( 7.2 Drawings with arguments) /Dest [150 0 R /XYZ null null 1] /Parent 148 0 R /Prev 149 0 R /Next 152 0 R >> endobj 152 0 obj << /Title( 7.3 Arithmetic operators) /Dest [150 0 R /XYZ null null 1] /Parent 148 0 R /Prev 151 0 R /Next 154 0 R >> endobj 154 0 obj << /Title( 7.4 Truth values) /Dest [153 0 R /XYZ null null 1] /Parent 148 0 R /Prev 152 0 R /Next 155 0 R >> endobj 155 0 obj << /Title( 7.5 Comparison operators) /Dest [153 0 R /XYZ null null 1] /Parent 148 0 R /Prev 154 0 R /Next 156 0 R >> endobj 156 0 obj << /Title( 7.6 Bitwise and logical operators) /Dest [153 0 R /XYZ null null 1] /Parent 148 0 R /Prev 155 0 R /Next 157 0 R >> endobj 157 0 obj << /Title( 7.7 Stack manipulation operators) /Dest [153 0 R /XYZ null null 1] /Parent 148 0 R /Prev 156 0 R /Next 159 0 R >> endobj 159 0 obj << /Title( 7.8 Coordinate systems) /Dest [158 0 R /XYZ null null 1] /Parent 148 0 R /Prev 157 0 R /Next 160 0 R >> endobj 160 0 obj << /Title( 7.9 Moving the origin) /Dest [158 0 R /XYZ null null 1] /Parent 148 0 R /Prev 159 0 R /Next 161 0 R >> endobj 161 0 obj << /Title( 7.10 Graphic operators) /Dest [158 0 R /XYZ null null 1] /Parent 148 0 R /Prev 160 0 R /Next 163 0 R >> endobj 163 0 obj << /Title( 7.11 System variables) /Dest [162 0 R /XYZ null null 1] /Parent 148 0 R /Prev 161 0 R /Next 165 0 R >> endobj 165 0 obj << /Title( 7.12 User variables) /Dest [164 0 R /XYZ null null 1] /Parent 148 0 R /Prev 163 0 R /Next 167 0 R >> endobj 167 0 obj << /Title( 7.13 Text strings in drawings) /Dest [166 0 R /XYZ null null 1] /Parent 148 0 R /Prev 165 0 R /Next 169 0 R >> endobj 169 0 obj << /Title( 7.14 String operators) /Dest [168 0 R /XYZ null null 1] /Parent 148 0 R /Prev 167 0 R /Next 170 0 R >> endobj 170 0 obj << /Title( 7.15 Drawing subroutines) /Dest [168 0 R /XYZ null null 1] /Parent 148 0 R /Prev 169 0 R /Next 171 0 R >> endobj 171 0 obj << /Title( 7.16 Blocks) /Dest [168 0 R /XYZ null null 1] /Parent 148 0 R /Prev 170 0 R /Next 172 0 R >> endobj 172 0 obj << /Title( 7.17 Conditional operators) /Dest [168 0 R /XYZ null null 1] /Parent 148 0 R /Prev 171 0 R /Next 174 0 R >> endobj 174 0 obj << /Title( 7.18 Looping operators) /Dest [173 0 R /XYZ null null 1] /Parent 148 0 R /Prev 172 0 R /Next 175 0 R >> endobj 175 0 obj << /Title( 7.19 Drawing in headings and footings) /Dest [173 0 R /XYZ null null 1] /Parent 148 0 R /Prev 174 0 R /Next 176 0 R >> endobj 176 0 obj << /Title( 7.20 Drawing at stave starts) /Dest [173 0 R /XYZ null null 1] /Parent 148 0 R /Prev 175 0 R /Next 177 0 R >> endobj 177 0 obj << /Title( 7.21 Testing drawing code) /Dest [173 0 R /XYZ null null 1] /Parent 148 0 R /Prev 176 0 R /Next 178 0 R >> endobj 178 0 obj << /Title( 7.22 Example of use of system variables) /Dest [173 0 R /XYZ null null 1] /Parent 148 0 R /Prev 177 0 R /Next 180 0 R >> endobj 180 0 obj << /Title( 7.23 Example of inter-note drawing) /Dest [179 0 R /XYZ null null 1] /Parent 148 0 R /Prev 178 0 R >> endobj 148 0 obj << /Title(7. Drawing facilities) /Dest [147 0 R /XYZ null null 1] /Count -23 /Parent 5 0 R /Prev 90 0 R /Next 182 0 R /First 149 0 R /Last 180 0 R >> endobj 184 0 obj << /Title( 8.1.1 Accadjusts) /Dest [181 0 R /XYZ null null 1] /Parent 183 0 R /Next 185 0 R >> endobj 185 0 obj << /Title( 8.1.2 Accspacing) /Dest [181 0 R /XYZ null null 1] /Parent 183 0 R /Prev 184 0 R /Next 186 0 R >> endobj 186 0 obj << /Title( 8.1.3 Bar) /Dest [181 0 R /XYZ null null 1] /Parent 183 0 R /Prev 185 0 R /Next 187 0 R >> endobj 187 0 obj << /Title( 8.1.4 Barcount) /Dest [181 0 R /XYZ null null 1] /Parent 183 0 R /Prev 186 0 R /Next 189 0 R >> endobj 189 0 obj << /Title( 8.1.5 Barlinesize) /Dest [188 0 R /XYZ null null 1] /Parent 183 0 R /Prev 187 0 R /Next 190 0 R >> endobj 190 0 obj << /Title( 8.1.6 Barlinespace) /Dest [188 0 R /XYZ null null 1] /Parent 183 0 R /Prev 189 0 R /Next 191 0 R >> endobj 191 0 obj << /Title( 8.1.7 Barlinestyle) /Dest [188 0 R /XYZ null null 1] /Parent 183 0 R /Prev 190 0 R /Next 192 0 R >> endobj 192 0 obj << /Title( 8.1.8 Barnumberlevel) /Dest [188 0 R /XYZ null null 1] /Parent 183 0 R /Prev 191 0 R /Next 194 0 R >> endobj 194 0 obj << /Title( 8.1.9 Barnumbers) /Dest [193 0 R /XYZ null null 1] /Parent 183 0 R /Prev 192 0 R /Next 195 0 R >> endobj 195 0 obj << /Title( 8.1.10 Beamendrests) /Dest [193 0 R /XYZ null null 1] /Parent 183 0 R /Prev 194 0 R /Next 196 0 R >> endobj 196 0 obj << /Title( 8.1.11 Beamflaglength) /Dest [193 0 R /XYZ null null 1] /Parent 183 0 R /Prev 195 0 R /Next 197 0 R >> endobj 197 0 obj << /Title( 8.1.12 Beamthickness) /Dest [193 0 R /XYZ null null 1] /Parent 183 0 R /Prev 196 0 R /Next 198 0 R >> endobj 198 0 obj << /Title( 8.1.13 Bottommargin and topmargin) /Dest [193 0 R /XYZ null null 1] /Parent 183 0 R /Prev 197 0 R /Next 200 0 R >> endobj 200 0 obj << /Title( 8.1.14 Brace and Bracket) /Dest [199 0 R /XYZ null null 1] /Parent 183 0 R /Prev 198 0 R /Next 201 0 R >> endobj 201 0 obj << /Title( 8.1.15 Bracestyle) /Dest [199 0 R /XYZ null null 1] /Parent 183 0 R /Prev 200 0 R /Next 203 0 R >> endobj 203 0 obj << /Title( 8.1.16 Breakbarlines) /Dest [202 0 R /XYZ null null 1] /Parent 183 0 R /Prev 201 0 R /Next 204 0 R >> endobj 204 0 obj << /Title( 8.1.17 Breakbarlinesx) /Dest [202 0 R /XYZ null null 1] /Parent 183 0 R /Prev 203 0 R /Next 205 0 R >> endobj 205 0 obj << /Title( 8.1.18 Breveledgerextra) /Dest [202 0 R /XYZ null null 1] /Parent 183 0 R /Prev 204 0 R /Next 206 0 R >> endobj 206 0 obj << /Title( 8.1.19 Breverests) /Dest [202 0 R /XYZ null null 1] /Parent 183 0 R /Prev 205 0 R /Next 207 0 R >> endobj 207 0 obj << /Title( 8.1.20 Caesurastyle) /Dest [202 0 R /XYZ null null 1] /Parent 183 0 R /Prev 206 0 R /Next 208 0 R >> endobj 208 0 obj << /Title( 8.1.21 Check) /Dest [202 0 R /XYZ null null 1] /Parent 183 0 R /Prev 207 0 R /Next 209 0 R >> endobj 209 0 obj << /Title( 8.1.22 Checkdoublebars) /Dest [202 0 R /XYZ null null 1] /Parent 183 0 R /Prev 208 0 R /Next 210 0 R >> endobj 210 0 obj << /Title( 8.1.23 Clefsize) /Dest [202 0 R /XYZ null null 1] /Parent 183 0 R /Prev 209 0 R /Next 212 0 R >> endobj 212 0 obj << /Title( 8.1.24 Clefstyle) /Dest [211 0 R /XYZ null null 1] /Parent 183 0 R /Prev 210 0 R /Next 213 0 R >> endobj 213 0 obj << /Title( 8.1.25 Clefwidths) /Dest [211 0 R /XYZ null null 1] /Parent 183 0 R /Prev 212 0 R /Next 214 0 R >> endobj 214 0 obj << /Title( 8.1.26 Codemultirests) /Dest [211 0 R /XYZ null null 1] /Parent 183 0 R /Prev 213 0 R /Next 215 0 R >> endobj 215 0 obj << /Title( 8.1.27 Copyzero) /Dest [211 0 R /XYZ null null 1] /Parent 183 0 R /Prev 214 0 R /Next 217 0 R >> endobj 217 0 obj << /Title( 8.1.28 Cuegracesize) /Dest [216 0 R /XYZ null null 1] /Parent 183 0 R /Prev 215 0 R /Next 218 0 R >> endobj 218 0 obj << /Title( 8.1.29 Cuesize) /Dest [216 0 R /XYZ null null 1] /Parent 183 0 R /Prev 217 0 R /Next 219 0 R >> endobj 219 0 obj << /Title( 8.1.30 Dotspacefactor) /Dest [216 0 R /XYZ null null 1] /Parent 183 0 R /Prev 218 0 R /Next 220 0 R >> endobj 220 0 obj << /Title( 8.1.31 Doublenotes) /Dest [216 0 R /XYZ null null 1] /Parent 183 0 R /Prev 219 0 R /Next 221 0 R >> endobj 221 0 obj << /Title( 8.1.32 Draw) /Dest [216 0 R /XYZ null null 1] /Parent 183 0 R /Prev 220 0 R /Next 222 0 R >> endobj 222 0 obj << /Title( 8.1.33 Endlinesluradjust and endlinetieadjust) /Dest [216 0 R /XYZ null null 1] /Parent 183 0 R /Prev 221 0 R /Next 223 0 R >> endobj 223 0 obj << /Title( 8.1.34 Endlineslurstyle and endlinetiestyle) /Dest [216 0 R /XYZ null null 1] /Parent 183 0 R /Prev 222 0 R /Next 224 0 R >> endobj 224 0 obj << /Title( 8.1.35 Extenderlevel) /Dest [216 0 R /XYZ null null 1] /Parent 183 0 R /Prev 223 0 R /Next 226 0 R >> endobj 226 0 obj << /Title( 8.1.36 Fbsize) /Dest [225 0 R /XYZ null null 1] /Parent 183 0 R /Prev 224 0 R /Next 227 0 R >> endobj 227 0 obj << /Title( 8.1.37 Footing) /Dest [225 0 R /XYZ null null 1] /Parent 183 0 R /Prev 226 0 R /Next 228 0 R >> endobj 228 0 obj << /Title( 8.1.38 Footnotesep) /Dest [225 0 R /XYZ null null 1] /Parent 183 0 R /Prev 227 0 R /Next 229 0 R >> endobj 229 0 obj << /Title( 8.1.39 Footnotesize) /Dest [225 0 R /XYZ null null 1] /Parent 183 0 R /Prev 228 0 R /Next 230 0 R >> endobj 230 0 obj << /Title( 8.1.40 Gracesize) /Dest [225 0 R /XYZ null null 1] /Parent 183 0 R /Prev 229 0 R /Next 231 0 R >> endobj 231 0 obj << /Title( 8.1.41 Gracespacing) /Dest [225 0 R /XYZ null null 1] /Parent 183 0 R /Prev 230 0 R /Next 233 0 R >> endobj 233 0 obj << /Title( 8.1.42 Gracestyle) /Dest [232 0 R /XYZ null null 1] /Parent 183 0 R /Prev 231 0 R /Next 234 0 R >> endobj 234 0 obj << /Title( 8.1.43 Hairpinlinewidth) /Dest [232 0 R /XYZ null null 1] /Parent 183 0 R /Prev 233 0 R /Next 235 0 R >> endobj 235 0 obj << /Title( 8.1.44 Hairpinwidth) /Dest [232 0 R /XYZ null null 1] /Parent 183 0 R /Prev 234 0 R /Next 236 0 R >> endobj 236 0 obj << /Title( 8.1.45 Halfflatstyle) /Dest [232 0 R /XYZ null null 1] /Parent 183 0 R /Prev 235 0 R /Next 237 0 R >> endobj 237 0 obj << /Title( 8.1.46 Halfsharpstyle) /Dest [232 0 R /XYZ null null 1] /Parent 183 0 R /Prev 236 0 R /Next 238 0 R >> endobj 238 0 obj << /Title( 8.1.47 Halvenotes) /Dest [232 0 R /XYZ null null 1] /Parent 183 0 R /Prev 237 0 R /Next 240 0 R >> endobj 240 0 obj << /Title( 8.1.48 Heading) /Dest [239 0 R /XYZ null null 1] /Parent 183 0 R /Prev 238 0 R /Next 242 0 R >> endobj 242 0 obj << /Title( 8.1.49 Hyphenstring) /Dest [241 0 R /XYZ null null 1] /Parent 183 0 R /Prev 240 0 R /Next 243 0 R >> endobj 243 0 obj << /Title( 8.1.50 Hyphenthreshold) /Dest [241 0 R /XYZ null null 1] /Parent 183 0 R /Prev 242 0 R /Next 244 0 R >> endobj 244 0 obj << /Title( 8.1.51 Join and joindotted) /Dest [241 0 R /XYZ null null 1] /Parent 183 0 R /Prev 243 0 R /Next 245 0 R >> endobj 245 0 obj << /Title( 8.1.52 Justify) /Dest [241 0 R /XYZ null null 1] /Parent 183 0 R /Prev 244 0 R /Next 247 0 R >> endobj 247 0 obj << /Title( 8.1.53 Key) /Dest [246 0 R /XYZ null null 1] /Parent 183 0 R /Prev 245 0 R /Next 249 0 R >> endobj 249 0 obj << /Title( 8.1.54 Keysinglebar and keydoublebar) /Dest [248 0 R /XYZ null null 1] /Parent 183 0 R /Prev 247 0 R /Next 250 0 R >> endobj 250 0 obj << /Title( 8.1.55 Keywarn) /Dest [248 0 R /XYZ null null 1] /Parent 183 0 R /Prev 249 0 R /Next 251 0 R >> endobj 251 0 obj << /Title( 8.1.56 Landscape) /Dest [248 0 R /XYZ null null 1] /Parent 183 0 R /Prev 250 0 R /Next 252 0 R >> endobj 252 0 obj << /Title( 8.1.57 Lastfooting) /Dest [248 0 R /XYZ null null 1] /Parent 183 0 R /Prev 251 0 R /Next 253 0 R >> endobj 253 0 obj << /Title( 8.1.58 Layout) /Dest [248 0 R /XYZ null null 1] /Parent 183 0 R /Prev 252 0 R /Next 255 0 R >> endobj 255 0 obj << /Title( 8.1.59 Ledgerstyle) /Dest [254 0 R /XYZ null null 1] /Parent 183 0 R /Prev 253 0 R /Next 256 0 R >> endobj 256 0 obj << /Title( 8.1.60 Leftmargin) /Dest [254 0 R /XYZ null null 1] /Parent 183 0 R /Prev 255 0 R /Next 257 0 R >> endobj 257 0 obj << /Title( 8.1.61 Linelength and pagelength) /Dest [254 0 R /XYZ null null 1] /Parent 183 0 R /Prev 256 0 R /Next 258 0 R >> endobj 258 0 obj << /Title( 8.1.62 Longrestfont) /Dest [254 0 R /XYZ null null 1] /Parent 183 0 R /Prev 257 0 R /Next 259 0 R >> endobj 259 0 obj << /Title( 8.1.63 Magnification) /Dest [254 0 R /XYZ null null 1] /Parent 183 0 R /Prev 258 0 R /Next 261 0 R >> endobj 261 0 obj << /Title( 8.1.64 Maxbeamslope) /Dest [260 0 R /XYZ null null 1] /Parent 183 0 R /Prev 259 0 R /Next 262 0 R >> endobj 262 0 obj << /Title( 8.1.65 Maxvertjustify) /Dest [260 0 R /XYZ null null 1] /Parent 183 0 R /Prev 261 0 R /Next 263 0 R >> endobj 263 0 obj << /Title( 8.1.66 Midichannel) /Dest [260 0 R /XYZ null null 1] /Parent 183 0 R /Prev 262 0 R /Next 265 0 R >> endobj 265 0 obj << /Title( 8.1.67 Midichannel settings for untuned percussion) /Dest [264 0 R /XYZ null null 1] /Parent 183 0 R /Prev 263 0 R /Next 266 0 R >> endobj 266 0 obj << /Title( 8.1.68 Midifornotesoff) /Dest [264 0 R /XYZ null null 1] /Parent 183 0 R /Prev 265 0 R /Next 267 0 R >> endobj 267 0 obj << /Title( 8.1.69 Midistart) /Dest [264 0 R /XYZ null null 1] /Parent 183 0 R /Prev 266 0 R /Next 269 0 R >> endobj 269 0 obj << /Title( 8.1.70 Miditempo) /Dest [268 0 R /XYZ null null 1] /Parent 183 0 R /Prev 267 0 R /Next 270 0 R >> endobj 270 0 obj << /Title( 8.1.71 Miditranspose) /Dest [268 0 R /XYZ null null 1] /Parent 183 0 R /Prev 269 0 R /Next 271 0 R >> endobj 271 0 obj << /Title( 8.1.72 Midivolume) /Dest [268 0 R /XYZ null null 1] /Parent 183 0 R /Prev 270 0 R /Next 272 0 R >> endobj 272 0 obj << /Title( 8.1.73 Midkeyspacing) /Dest [268 0 R /XYZ null null 1] /Parent 183 0 R /Prev 271 0 R /Next 273 0 R >> endobj 273 0 obj << /Title( 8.1.74 Midtimespacing) /Dest [268 0 R /XYZ null null 1] /Parent 183 0 R /Prev 272 0 R /Next 275 0 R >> endobj 275 0 obj << /Title( 8.1.75 Musicfont) /Dest [274 0 R /XYZ null null 1] /Parent 183 0 R /Prev 273 0 R /Next 276 0 R >> endobj 276 0 obj << /Title( 8.1.76 Nobeamendrests) /Dest [274 0 R /XYZ null null 1] /Parent 183 0 R /Prev 275 0 R /Next 277 0 R >> endobj 277 0 obj << /Title( 8.1.77 Nocheck) /Dest [274 0 R /XYZ null null 1] /Parent 183 0 R /Prev 276 0 R /Next 278 0 R >> endobj 278 0 obj << /Title( 8.1.78 Nocheckdoublebars) /Dest [274 0 R /XYZ null null 1] /Parent 183 0 R /Prev 277 0 R /Next 279 0 R >> endobj 279 0 obj << /Title( 8.1.79 Nocodemultirests) /Dest [274 0 R /XYZ null null 1] /Parent 183 0 R /Prev 278 0 R /Next 280 0 R >> endobj 280 0 obj << /Title( 8.1.80 Nokerning) /Dest [274 0 R /XYZ null null 1] /Parent 183 0 R /Prev 279 0 R /Next 281 0 R >> endobj 281 0 obj << /Title( 8.1.81 Nokeywarn) /Dest [274 0 R /XYZ null null 1] /Parent 183 0 R /Prev 280 0 R /Next 282 0 R >> endobj 282 0 obj << /Title( 8.1.82 Nosluroverwarnings) /Dest [274 0 R /XYZ null null 1] /Parent 183 0 R /Prev 281 0 R /Next 283 0 R >> endobj 283 0 obj << /Title( 8.1.83 Nospreadunderlay) /Dest [274 0 R /XYZ null null 1] /Parent 183 0 R /Prev 282 0 R /Next 284 0 R >> endobj 284 0 obj << /Title( 8.1.84 Notespacing) /Dest [274 0 R /XYZ null null 1] /Parent 183 0 R /Prev 283 0 R /Next 286 0 R >> endobj 286 0 obj << /Title( 8.1.85 Notime) /Dest [285 0 R /XYZ null null 1] /Parent 183 0 R /Prev 284 0 R /Next 287 0 R >> endobj 287 0 obj << /Title( 8.1.86 Notimebase) /Dest [285 0 R /XYZ null null 1] /Parent 183 0 R /Prev 286 0 R /Next 288 0 R >> endobj 288 0 obj << /Title( 8.1.87 Notimewarn) /Dest [285 0 R /XYZ null null 1] /Parent 183 0 R /Prev 287 0 R /Next 289 0 R >> endobj 289 0 obj << /Title( 8.1.88 Nounderlayextenders) /Dest [285 0 R /XYZ null null 1] /Parent 183 0 R /Prev 288 0 R /Next 290 0 R >> endobj 290 0 obj << /Title( 8.1.89 Overlaydepth) /Dest [285 0 R /XYZ null null 1] /Parent 183 0 R /Prev 289 0 R /Next 292 0 R >> endobj 292 0 obj << /Title( 8.1.90 Overlaysize) /Dest [291 0 R /XYZ null null 1] /Parent 183 0 R /Prev 290 0 R /Next 293 0 R >> endobj 293 0 obj << /Title( 8.1.91 Page) /Dest [291 0 R /XYZ null null 1] /Parent 183 0 R /Prev 292 0 R /Next 294 0 R >> endobj 294 0 obj << /Title( 8.1.92 Pagefooting) /Dest [291 0 R /XYZ null null 1] /Parent 183 0 R /Prev 293 0 R /Next 295 0 R >> endobj 295 0 obj << /Title( 8.1.93 Pageheading) /Dest [291 0 R /XYZ null null 1] /Parent 183 0 R /Prev 294 0 R /Next 296 0 R >> endobj 296 0 obj << /Title( 8.1.94 Pagelength) /Dest [291 0 R /XYZ null null 1] /Parent 183 0 R /Prev 295 0 R /Next 297 0 R >> endobj 297 0 obj << /Title( 8.1.95 Playtempo) /Dest [291 0 R /XYZ null null 1] /Parent 183 0 R /Prev 296 0 R /Next 298 0 R >> endobj 298 0 obj << /Title( 8.1.96 Playtranspose) /Dest [291 0 R /XYZ null null 1] /Parent 183 0 R /Prev 297 0 R /Next 299 0 R >> endobj 299 0 obj << /Title( 8.1.97 Playvolume) /Dest [291 0 R /XYZ null null 1] /Parent 183 0 R /Prev 298 0 R /Next 301 0 R >> endobj 301 0 obj << /Title( 8.1.98 PMWversion) /Dest [300 0 R /XYZ null null 1] /Parent 183 0 R /Prev 299 0 R /Next 302 0 R >> endobj 302 0 obj << /Title( 8.1.99 Printkey) /Dest [300 0 R /XYZ null null 1] /Parent 183 0 R /Prev 301 0 R /Next 303 0 R >> endobj 303 0 obj << /Title( 8.1.100 Printtime) /Dest [300 0 R /XYZ null null 1] /Parent 183 0 R /Prev 302 0 R /Next 305 0 R >> endobj 305 0 obj << /Title( 8.1.101 Psfooting) /Dest [304 0 R /XYZ null null 1] /Parent 183 0 R /Prev 303 0 R /Next 306 0 R >> endobj 306 0 obj << /Title( 8.1.102 Psheading) /Dest [304 0 R /XYZ null null 1] /Parent 183 0 R /Prev 305 0 R /Next 307 0 R >> endobj 307 0 obj << /Title( 8.1.103 Pslastfooting) /Dest [304 0 R /XYZ null null 1] /Parent 183 0 R /Prev 306 0 R /Next 308 0 R >> endobj 308 0 obj << /Title( 8.1.104 Pspagefooting) /Dest [304 0 R /XYZ null null 1] /Parent 183 0 R /Prev 307 0 R /Next 309 0 R >> endobj 309 0 obj << /Title( 8.1.105 Pspageheading) /Dest [304 0 R /XYZ null null 1] /Parent 183 0 R /Prev 308 0 R /Next 310 0 R >> endobj 310 0 obj << /Title( 8.1.106 Pssetup) /Dest [304 0 R /XYZ null null 1] /Parent 183 0 R /Prev 309 0 R /Next 311 0 R >> endobj 311 0 obj << /Title( 8.1.107 Rehearsalmarks) /Dest [304 0 R /XYZ null null 1] /Parent 183 0 R /Prev 310 0 R /Next 313 0 R >> endobj 313 0 obj << /Title( 8.1.108 Repeatbarfont) /Dest [312 0 R /XYZ null null 1] /Parent 183 0 R /Prev 311 0 R /Next 314 0 R >> endobj 314 0 obj << /Title( 8.1.109 Repeatstyle) /Dest [312 0 R /XYZ null null 1] /Parent 183 0 R /Prev 313 0 R /Next 315 0 R >> endobj 315 0 obj << /Title( 8.1.110 Righttoleft) /Dest [312 0 R /XYZ null null 1] /Parent 183 0 R /Prev 314 0 R /Next 317 0 R >> endobj 317 0 obj << /Title( 8.1.111 Selectstave\(s\)) /Dest [316 0 R /XYZ null null 1] /Parent 183 0 R /Prev 315 0 R /Next 318 0 R >> endobj 318 0 obj << /Title( 8.1.112 Sheetdepth, Sheetwidth, and Sheetsize) /Dest [316 0 R /XYZ null null 1] /Parent 183 0 R /Prev 317 0 R /Next 319 0 R >> endobj 319 0 obj << /Title( 8.1.113 Shortenstems) /Dest [316 0 R /XYZ null null 1] /Parent 183 0 R /Prev 318 0 R /Next 321 0 R >> endobj 321 0 obj << /Title( 8.1.114 Sluroverwarnings) /Dest [320 0 R /XYZ null null 1] /Parent 183 0 R /Prev 319 0 R /Next 322 0 R >> endobj 322 0 obj << /Title( 8.1.115 Smallcapsize) /Dest [320 0 R /XYZ null null 1] /Parent 183 0 R /Prev 321 0 R /Next 323 0 R >> endobj 323 0 obj << /Title( 8.1.116 Startbracketbar) /Dest [320 0 R /XYZ null null 1] /Parent 183 0 R /Prev 322 0 R /Next 324 0 R >> endobj 324 0 obj << /Title( 8.1.117 Startlinespacing) /Dest [320 0 R /XYZ null null 1] /Parent 183 0 R /Prev 323 0 R /Next 325 0 R >> endobj 325 0 obj << /Title( 8.1.118 Startnotime) /Dest [320 0 R /XYZ null null 1] /Parent 183 0 R /Prev 324 0 R /Next 327 0 R >> endobj 327 0 obj << /Title( 8.1.119 Stavesize\(s\)) /Dest [326 0 R /XYZ null null 1] /Parent 183 0 R /Prev 325 0 R /Next 328 0 R >> endobj 328 0 obj << /Title( 8.1.120 Stavespacing) /Dest [326 0 R /XYZ null null 1] /Parent 183 0 R /Prev 327 0 R /Next 330 0 R >> endobj 330 0 obj << /Title( 8.1.121 Stemlengths) /Dest [329 0 R /XYZ null null 1] /Parent 183 0 R /Prev 328 0 R /Next 331 0 R >> endobj 331 0 obj << /Title( 8.1.122 Stemswap) /Dest [329 0 R /XYZ null null 1] /Parent 183 0 R /Prev 330 0 R /Next 332 0 R >> endobj 332 0 obj << /Title( 8.1.123 Stemswaplevel) /Dest [329 0 R /XYZ null null 1] /Parent 183 0 R /Prev 331 0 R /Next 333 0 R >> endobj 333 0 obj << /Title( 8.1.124 Stretchrule) /Dest [329 0 R /XYZ null null 1] /Parent 183 0 R /Prev 332 0 R /Next 335 0 R >> endobj 335 0 obj << /Title( 8.1.125 Suspend) /Dest [334 0 R /XYZ null null 1] /Parent 183 0 R /Prev 333 0 R /Next 336 0 R >> endobj 336 0 obj << /Title( 8.1.126 Systemgap) /Dest [334 0 R /XYZ null null 1] /Parent 183 0 R /Prev 335 0 R /Next 337 0 R >> endobj 337 0 obj << /Title( 8.1.127 Textfont) /Dest [334 0 R /XYZ null null 1] /Parent 183 0 R /Prev 336 0 R /Next 338 0 R >> endobj 338 0 obj << /Title( 8.1.128 Textsizes) /Dest [334 0 R /XYZ null null 1] /Parent 183 0 R /Prev 337 0 R /Next 340 0 R >> endobj 340 0 obj << /Title( 8.1.129 Thinbracket) /Dest [339 0 R /XYZ null null 1] /Parent 183 0 R /Prev 338 0 R /Next 341 0 R >> endobj 341 0 obj << /Title( 8.1.130 Time) /Dest [339 0 R /XYZ null null 1] /Parent 183 0 R /Prev 340 0 R /Next 342 0 R >> endobj 342 0 obj << /Title( 8.1.131 Timebase) /Dest [339 0 R /XYZ null null 1] /Parent 183 0 R /Prev 341 0 R /Next 343 0 R >> endobj 343 0 obj << /Title( 8.1.132 Timefont) /Dest [339 0 R /XYZ null null 1] /Parent 183 0 R /Prev 342 0 R /Next 344 0 R >> endobj 344 0 obj << /Title( 8.1.133 Timewarn) /Dest [339 0 R /XYZ null null 1] /Parent 183 0 R /Prev 343 0 R /Next 345 0 R >> endobj 345 0 obj << /Title( 8.1.134 Topmargin) /Dest [339 0 R /XYZ null null 1] /Parent 183 0 R /Prev 344 0 R /Next 347 0 R >> endobj 347 0 obj << /Title( 8.1.135 Transpose) /Dest [346 0 R /XYZ null null 1] /Parent 183 0 R /Prev 345 0 R /Next 348 0 R >> endobj 348 0 obj << /Title( 8.1.136 Transposedacc) /Dest [346 0 R /XYZ null null 1] /Parent 183 0 R /Prev 347 0 R /Next 349 0 R >> endobj 349 0 obj << /Title( 8.1.137 Transposedkey) /Dest [346 0 R /XYZ null null 1] /Parent 183 0 R /Prev 348 0 R /Next 350 0 R >> endobj 350 0 obj << /Title( 8.1.138 Trillstring) /Dest [346 0 R /XYZ null null 1] /Parent 183 0 R /Prev 349 0 R /Next 351 0 R >> endobj 351 0 obj << /Title( 8.1.139 Tripletfont) /Dest [346 0 R /XYZ null null 1] /Parent 183 0 R /Prev 350 0 R /Next 352 0 R >> endobj 352 0 obj << /Title( 8.1.140 Tripletlinewidth) /Dest [346 0 R /XYZ null null 1] /Parent 183 0 R /Prev 351 0 R /Next 354 0 R >> endobj 354 0 obj << /Title( 8.1.141 Underlaydepth) /Dest [353 0 R /XYZ null null 1] /Parent 183 0 R /Prev 352 0 R /Next 355 0 R >> endobj 355 0 obj << /Title( 8.1.142 Underlayextenders) /Dest [353 0 R /XYZ null null 1] /Parent 183 0 R /Prev 354 0 R /Next 356 0 R >> endobj 356 0 obj << /Title( 8.1.143 Underlaysize) /Dest [353 0 R /XYZ null null 1] /Parent 183 0 R /Prev 355 0 R /Next 357 0 R >> endobj 357 0 obj << /Title( 8.1.144 Underlaystyle) /Dest [353 0 R /XYZ null null 1] /Parent 183 0 R /Prev 356 0 R /Next 358 0 R >> endobj 358 0 obj << /Title( 8.1.145 Unfinished) /Dest [353 0 R /XYZ null null 1] /Parent 183 0 R /Prev 357 0 R /Next 359 0 R >> endobj 359 0 obj << /Title( 8.1.146 Vertaccsize) /Dest [353 0 R /XYZ null null 1] /Parent 183 0 R /Prev 358 0 R >> endobj 183 0 obj << /Title( 8.1 Alphabetical list of heading directives) /Dest [181 0 R /XYZ null null 1] /Count -146 /Parent 182 0 R /First 184 0 R /Last 359 0 R >> endobj 182 0 obj << /Title(8. Heading directives) /Dest [181 0 R /XYZ null null 1] /Count -1 /Parent 5 0 R /Prev 148 0 R /Next 361 0 R /First 183 0 R /Last 183 0 R >> endobj 363 0 obj << /Title( 9.1.1 Invisible bar lines) /Dest [360 0 R /XYZ null null 1] /Parent 362 0 R /Next 364 0 R >> endobj 364 0 obj << /Title( 9.1.2 Mid-bar dotted bar lines) /Dest [360 0 R /XYZ null null 1] /Parent 362 0 R /Prev 363 0 R >> endobj 362 0 obj << /Title( 9.1 Bar lines) /Dest [360 0 R /XYZ null null 1] /Count -2 /Parent 361 0 R /Next 366 0 R /First 363 0 R /Last 364 0 R >> endobj 366 0 obj << /Title( 9.2 Repeated bars) /Dest [365 0 R /XYZ null null 1] /Parent 361 0 R /Prev 362 0 R /Next 367 0 R >> endobj 367 0 obj << /Title( 9.3 Repeated sections) /Dest [365 0 R /XYZ null null 1] /Parent 361 0 R /Prev 366 0 R /Next 368 0 R >> endobj 368 0 obj << /Title( 9.4 Caesuras) /Dest [365 0 R /XYZ null null 1] /Parent 361 0 R /Prev 367 0 R /Next 369 0 R >> endobj 371 0 obj << /Title( 9.5.1 Horizontal hairpin positioning) /Dest [370 0 R /XYZ null null 1] /Parent 369 0 R /Next 372 0 R >> endobj 372 0 obj << /Title( 9.5.2 Horizontal hairpin adjustments) /Dest [370 0 R /XYZ null null 1] /Parent 369 0 R /Prev 371 0 R /Next 373 0 R >> endobj 373 0 obj << /Title( 9.5.3 Vertical hairpin positioning) /Dest [370 0 R /XYZ null null 1] /Parent 369 0 R /Prev 372 0 R /Next 375 0 R >> endobj 375 0 obj << /Title( 9.5.4 Vertical hairpin adjustments) /Dest [374 0 R /XYZ null null 1] /Parent 369 0 R /Prev 373 0 R /Next 376 0 R >> endobj 376 0 obj << /Title( 9.5.5 Split hairpins) /Dest [374 0 R /XYZ null null 1] /Parent 369 0 R /Prev 375 0 R /Next 377 0 R >> endobj 377 0 obj << /Title( 9.5.6 Hairpin size and line thickness) /Dest [374 0 R /XYZ null null 1] /Parent 369 0 R /Prev 376 0 R >> endobj 369 0 obj << /Title( 9.5 Hairpins) /Dest [365 0 R /XYZ null null 1] /Count -6 /Parent 361 0 R /Prev 368 0 R /Next 378 0 R /First 371 0 R /Last 377 0 R >> endobj 379 0 obj << /Title( 9.6.1 Note pitch) /Dest [374 0 R /XYZ null null 1] /Parent 378 0 R /Next 381 0 R >> endobj 381 0 obj << /Title( 9.6.2 Half accidentals) /Dest [380 0 R /XYZ null null 1] /Parent 378 0 R /Prev 379 0 R /Next 382 0 R >> endobj 382 0 obj << /Title( 9.6.3 Bracketted and parenthesized accidentals) /Dest [380 0 R /XYZ null null 1] /Parent 378 0 R /Prev 381 0 R /Next 383 0 R >> endobj 383 0 obj << /Title( 9.6.4 Invisible accidentals) /Dest [380 0 R /XYZ null null 1] /Parent 378 0 R /Prev 382 0 R /Next 384 0 R >> endobj 384 0 obj << /Title( 9.6.5 Moved accidentals) /Dest [380 0 R /XYZ null null 1] /Parent 378 0 R /Prev 383 0 R /Next 385 0 R >> endobj 385 0 obj << /Title( 9.6.6 Accidentals above and below notes) /Dest [380 0 R /XYZ null null 1] /Parent 378 0 R /Prev 384 0 R /Next 387 0 R >> endobj 387 0 obj << /Title( 9.6.7 Transposed accidentals) /Dest [386 0 R /XYZ null null 1] /Parent 378 0 R /Prev 385 0 R /Next 388 0 R >> endobj 388 0 obj << /Title( 9.6.8 Rests) /Dest [386 0 R /XYZ null null 1] /Parent 378 0 R /Prev 387 0 R /Next 389 0 R >> endobj 389 0 obj << /Title( 9.6.9 Length of notes and rests) /Dest [386 0 R /XYZ null null 1] /Parent 378 0 R /Prev 388 0 R /Next 391 0 R >> endobj 391 0 obj << /Title( 9.6.10 Chords) /Dest [390 0 R /XYZ null null 1] /Parent 378 0 R /Prev 389 0 R /Next 392 0 R >> endobj 392 0 obj << /Title( 9.6.11 Horizontal movement of augmentation dots) /Dest [390 0 R /XYZ null null 1] /Parent 378 0 R /Prev 391 0 R /Next 394 0 R >> endobj 394 0 obj << /Title( 9.6.12 Vertical position of augmentation dots) /Dest [393 0 R /XYZ null null 1] /Parent 378 0 R /Prev 392 0 R /Next 395 0 R >> endobj 395 0 obj << /Title( 9.6.13 Notehead shapes and sizes) /Dest [393 0 R /XYZ null null 1] /Parent 378 0 R /Prev 394 0 R /Next 396 0 R >> endobj 396 0 obj << /Title( 9.6.14 Whole bar rests) /Dest [393 0 R /XYZ null null 1] /Parent 378 0 R /Prev 395 0 R /Next 397 0 R >> endobj 397 0 obj << /Title( 9.6.15 Repeated rest bars) /Dest [393 0 R /XYZ null null 1] /Parent 378 0 R /Prev 396 0 R /Next 399 0 R >> endobj 399 0 obj << /Title( 9.6.16 Note expression and options) /Dest [398 0 R /XYZ null null 1] /Parent 378 0 R /Prev 397 0 R /Next 401 0 R >> endobj 401 0 obj << /Title( 9.6.17 General accent notation) /Dest [400 0 R /XYZ null null 1] /Parent 378 0 R /Prev 399 0 R /Next 402 0 R >> endobj 402 0 obj << /Title( 9.6.18 Position of accents and ornaments) /Dest [400 0 R /XYZ null null 1] /Parent 378 0 R /Prev 401 0 R /Next 403 0 R >> endobj 403 0 obj << /Title( 9.6.19 Moving accents and ornaments) /Dest [400 0 R /XYZ null null 1] /Parent 378 0 R /Prev 402 0 R /Next 405 0 R >> endobj 405 0 obj << /Title( 9.6.20 Bracketing accents and ornaments) /Dest [404 0 R /XYZ null null 1] /Parent 378 0 R /Prev 403 0 R /Next 406 0 R >> endobj 406 0 obj << /Title( 9.6.21 Repeated expression marks) /Dest [404 0 R /XYZ null null 1] /Parent 378 0 R /Prev 405 0 R /Next 408 0 R >> endobj 408 0 obj << /Title( 9.6.22 Stem lengths) /Dest [407 0 R /XYZ null null 1] /Parent 378 0 R /Prev 406 0 R /Next 409 0 R >> endobj 409 0 obj << /Title( 9.6.23 Masquerading notes) /Dest [407 0 R /XYZ null null 1] /Parent 378 0 R /Prev 408 0 R /Next 410 0 R >> endobj 410 0 obj << /Title( 9.6.24 Expression items on rests) /Dest [407 0 R /XYZ null null 1] /Parent 378 0 R /Prev 409 0 R /Next 411 0 R >> endobj 411 0 obj << /Title( 9.6.25 Changing rest levels) /Dest [407 0 R /XYZ null null 1] /Parent 378 0 R /Prev 410 0 R /Next 413 0 R >> endobj 413 0 obj << /Title( 9.6.26 Triplets and other irregular note groups) /Dest [412 0 R /XYZ null null 1] /Parent 378 0 R /Prev 411 0 R /Next 415 0 R >> endobj 415 0 obj << /Title( 9.6.27 Options for irregular note groups) /Dest [414 0 R /XYZ null null 1] /Parent 378 0 R /Prev 413 0 R /Next 417 0 R >> endobj 417 0 obj << /Title( 9.6.28 Beam breaking in irregular note groups) /Dest [416 0 R /XYZ null null 1] /Parent 378 0 R /Prev 415 0 R /Next 418 0 R >> endobj 418 0 obj << /Title( 9.6.29 Ties and short slurs) /Dest [416 0 R /XYZ null null 1] /Parent 378 0 R /Prev 417 0 R /Next 420 0 R >> endobj 420 0 obj << /Title( 9.6.30 Editorial and intermittent ties) /Dest [419 0 R /XYZ null null 1] /Parent 378 0 R /Prev 418 0 R /Next 421 0 R >> endobj 421 0 obj << /Title( 9.6.31 Hanging ties) /Dest [419 0 R /XYZ null null 1] /Parent 378 0 R /Prev 420 0 R /Next 422 0 R >> endobj 422 0 obj << /Title( 9.6.32 Glissando marks) /Dest [419 0 R /XYZ null null 1] /Parent 378 0 R /Prev 421 0 R /Next 424 0 R >> endobj 424 0 obj << /Title( 9.6.33 Input short cuts) /Dest [423 0 R /XYZ null null 1] /Parent 378 0 R /Prev 422 0 R >> endobj 378 0 obj << /Title( 9.6 Notes and rests) /Dest [374 0 R /XYZ null null 1] /Count -33 /Parent 361 0 R /Prev 369 0 R /Next 425 0 R /First 379 0 R /Last 424 0 R >> endobj 426 0 obj << /Title( 9.7.1 Beam breaking) /Dest [423 0 R /XYZ null null 1] /Parent 425 0 R /Next 428 0 R >> endobj 428 0 obj << /Title( 9.7.2 Beaming over bar lines) /Dest [427 0 R /XYZ null null 1] /Parent 425 0 R /Prev 426 0 R /Next 429 0 R >> endobj 429 0 obj << /Title( 9.7.3 Beaming across rests at beam ends) /Dest [427 0 R /XYZ null null 1] /Parent 425 0 R /Prev 428 0 R /Next 430 0 R >> endobj 430 0 obj << /Title( 9.7.4 Accelerando and ritardando beams) /Dest [427 0 R /XYZ null null 1] /Parent 425 0 R /Prev 429 0 R /Next 432 0 R >> endobj 432 0 obj << /Title( 9.7.5 Beams with notes on both sides) /Dest [431 0 R /XYZ null null 1] /Parent 425 0 R /Prev 430 0 R >> endobj 425 0 obj << /Title( 9.7 Note beaming) /Dest [423 0 R /XYZ null null 1] /Count -5 /Parent 361 0 R /Prev 378 0 R /Next 434 0 R /First 426 0 R /Last 432 0 R >> endobj 435 0 obj << /Title( 9.8.1 Preliminary) /Dest [433 0 R /XYZ null null 1] /Parent 434 0 R /Next 436 0 R >> endobj 436 0 obj << /Title( 9.8.2 Rules for non-beamed notes and chords) /Dest [433 0 R /XYZ null null 1] /Parent 434 0 R /Prev 435 0 R /Next 437 0 R >> endobj 437 0 obj << /Title( 9.8.3 Rules for beamed groups) /Dest [433 0 R /XYZ null null 1] /Parent 434 0 R /Prev 436 0 R >> endobj 434 0 obj << /Title( 9.8 Stem directions) /Dest [433 0 R /XYZ null null 1] /Count -3 /Parent 361 0 R /Prev 425 0 R /Next 439 0 R /First 435 0 R /Last 437 0 R >> endobj 441 0 obj << /Title( 9.9.1 Horizontal alignment) /Dest [440 0 R /XYZ null null 1] /Parent 439 0 R /Next 443 0 R >> endobj 443 0 obj << /Title( 9.9.2 Enclosed text) /Dest [442 0 R /XYZ null null 1] /Parent 439 0 R /Prev 441 0 R /Next 444 0 R >> endobj 444 0 obj << /Title( 9.9.3 Text sizes) /Dest [442 0 R /XYZ null null 1] /Parent 439 0 R /Prev 443 0 R /Next 445 0 R >> endobj 445 0 obj << /Title( 9.9.4 Rotated text) /Dest [442 0 R /XYZ null null 1] /Parent 439 0 R /Prev 444 0 R /Next 446 0 R >> endobj 446 0 obj << /Title( 9.9.5 PostScript text) /Dest [442 0 R /XYZ null null 1] /Parent 439 0 R /Prev 445 0 R >> endobj 439 0 obj << /Title( 9.9 Text strings in stave data) /Dest [438 0 R /XYZ null null 1] /Count -5 /Parent 361 0 R /Prev 434 0 R /Next 447 0 R /First 441 0 R /Last 446 0 R >> endobj 447 0 obj << /Title( 9.10 Fingering indications) /Dest [442 0 R /XYZ null null 1] /Parent 361 0 R /Prev 439 0 R /Next 449 0 R >> endobj 449 0 obj << /Title( 9.11 Rehearsal marks) /Dest [448 0 R /XYZ null null 1] /Parent 361 0 R /Prev 447 0 R /Next 450 0 R >> endobj 451 0 obj << /Title( 9.12.1 Underlay syllables) /Dest [448 0 R /XYZ null null 1] /Parent 450 0 R /Next 453 0 R >> endobj 453 0 obj << /Title( 9.12.2 Underlay and overlay fonts) /Dest [452 0 R /XYZ null null 1] /Parent 450 0 R /Prev 451 0 R /Next 454 0 R >> endobj 454 0 obj << /Title( 9.12.3 Underlay and overlay levels) /Dest [452 0 R /XYZ null null 1] /Parent 450 0 R /Prev 453 0 R /Next 455 0 R >> endobj 455 0 obj << /Title( 9.12.4 Underlay and overlay spreading) /Dest [452 0 R /XYZ null null 1] /Parent 450 0 R /Prev 454 0 R /Next 457 0 R >> endobj 457 0 obj << /Title( 9.12.5 Other uses of underlay and overlay) /Dest [456 0 R /XYZ null null 1] /Parent 450 0 R /Prev 455 0 R >> endobj 450 0 obj << /Title( 9.12 Vocal underlay and overlay text \(lyrics\)) /Dest [448 0 R /XYZ null null 1] /Count -5 /Parent 361 0 R /Prev 449 0 R /First 451 0 R /Last 457 0 R >> endobj 361 0 obj << /Title(9. Stave data) /Dest [360 0 R /XYZ null null 1] /Count -12 /Parent 5 0 R /Prev 182 0 R /Next 459 0 R /First 362 0 R /Last 450 0 R >> endobj 460 0 obj << /Title( 10.1 Clef directives) /Dest [458 0 R /XYZ null null 1] /Parent 459 0 R /Next 461 0 R >> endobj 462 0 obj << /Title( 10.2.1 [1st], [2nd], etc.) /Dest [458 0 R /XYZ null null 1] /Parent 461 0 R /Next 464 0 R >> endobj 464 0 obj << /Title( 10.2.2 [All]) /Dest [463 0 R /XYZ null null 1] /Parent 461 0 R /Prev 462 0 R /Next 465 0 R >> endobj 465 0 obj << /Title( 10.2.3 [Alto]) /Dest [463 0 R /XYZ null null 1] /Parent 461 0 R /Prev 464 0 R /Next 466 0 R >> endobj 466 0 obj << /Title( 10.2.4 [Assume]) /Dest [463 0 R /XYZ null null 1] /Parent 461 0 R /Prev 465 0 R /Next 467 0 R >> endobj 467 0 obj << /Title( 10.2.5 [Baritone]) /Dest [463 0 R /XYZ null null 1] /Parent 461 0 R /Prev 466 0 R /Next 468 0 R >> endobj 468 0 obj << /Title( 10.2.6 [Barlinestyle]) /Dest [463 0 R /XYZ null null 1] /Parent 461 0 R /Prev 467 0 R /Next 469 0 R >> endobj 469 0 obj << /Title( 10.2.7 [Barnumber]) /Dest [463 0 R /XYZ null null 1] /Parent 461 0 R /Prev 468 0 R /Next 471 0 R >> endobj 471 0 obj << /Title( 10.2.8 [Bass]) /Dest [470 0 R /XYZ null null 1] /Parent 461 0 R /Prev 469 0 R /Next 472 0 R >> endobj 472 0 obj << /Title( 10.2.9 [Beamacc]) /Dest [470 0 R /XYZ null null 1] /Parent 461 0 R /Prev 471 0 R /Next 473 0 R >> endobj 473 0 obj << /Title( 10.2.10 [Beammove]) /Dest [470 0 R /XYZ null null 1] /Parent 461 0 R /Prev 472 0 R /Next 474 0 R >> endobj 474 0 obj << /Title( 10.2.11 [Beamrit]) /Dest [470 0 R /XYZ null null 1] /Parent 461 0 R /Prev 473 0 R /Next 475 0 R >> endobj 475 0 obj << /Title( 10.2.12 [Beamslope]) /Dest [470 0 R /XYZ null null 1] /Parent 461 0 R /Prev 474 0 R /Next 476 0 R >> endobj 476 0 obj << /Title( 10.2.13 [Bottommargin]) /Dest [470 0 R /XYZ null null 1] /Parent 461 0 R /Prev 475 0 R /Next 477 0 R >> endobj 477 0 obj << /Title( 10.2.14 [Bowing]) /Dest [470 0 R /XYZ null null 1] /Parent 461 0 R /Prev 476 0 R /Next 479 0 R >> endobj 479 0 obj << /Title( 10.2.15 [Breakbarline]) /Dest [478 0 R /XYZ null null 1] /Parent 461 0 R /Prev 477 0 R /Next 480 0 R >> endobj 480 0 obj << /Title( 10.2.16 [Cbaritone]) /Dest [478 0 R /XYZ null null 1] /Parent 461 0 R /Prev 479 0 R /Next 481 0 R >> endobj 481 0 obj << /Title( 10.2.17 [Comma]) /Dest [478 0 R /XYZ null null 1] /Parent 461 0 R /Prev 480 0 R /Next 482 0 R >> endobj 482 0 obj << /Title( 10.2.18 [Contrabass]) /Dest [478 0 R /XYZ null null 1] /Parent 461 0 R /Prev 481 0 R /Next 483 0 R >> endobj 483 0 obj << /Title( 10.2.19 [Copyzero]) /Dest [478 0 R /XYZ null null 1] /Parent 461 0 R /Prev 482 0 R /Next 484 0 R >> endobj 484 0 obj << /Title( 10.2.20 [Couple]) /Dest [478 0 R /XYZ null null 1] /Parent 461 0 R /Prev 483 0 R /Next 486 0 R >> endobj 486 0 obj << /Title( 10.2.21 [Cue]) /Dest [485 0 R /XYZ null null 1] /Parent 461 0 R /Prev 484 0 R /Next 487 0 R >> endobj 487 0 obj << /Title( 10.2.22 [Deepbass]) /Dest [485 0 R /XYZ null null 1] /Parent 461 0 R /Prev 486 0 R /Next 488 0 R >> endobj 488 0 obj << /Title( 10.2.23 [Dots]) /Dest [485 0 R /XYZ null null 1] /Parent 461 0 R /Prev 487 0 R /Next 489 0 R >> endobj 489 0 obj << /Title( 10.2.24 [Draw]) /Dest [485 0 R /XYZ null null 1] /Parent 461 0 R /Prev 488 0 R /Next 490 0 R >> endobj 490 0 obj << /Title( 10.2.25 [Endcue]) /Dest [485 0 R /XYZ null null 1] /Parent 461 0 R /Prev 489 0 R /Next 491 0 R >> endobj 491 0 obj << /Title( 10.2.26 [Endline]) /Dest [485 0 R /XYZ null null 1] /Parent 461 0 R /Prev 490 0 R /Next 492 0 R >> endobj 492 0 obj << /Title( 10.2.27 [Endslur]) /Dest [485 0 R /XYZ null null 1] /Parent 461 0 R /Prev 491 0 R /Next 493 0 R >> endobj 493 0 obj << /Title( 10.2.28 [Endstave]) /Dest [485 0 R /XYZ null null 1] /Parent 461 0 R /Prev 492 0 R /Next 495 0 R >> endobj 495 0 obj << /Title( 10.2.29 [Ensure]) /Dest [494 0 R /XYZ null null 1] /Parent 461 0 R /Prev 493 0 R /Next 496 0 R >> endobj 496 0 obj << /Title( 10.2.30 [Fbfont]) /Dest [494 0 R /XYZ null null 1] /Parent 461 0 R /Prev 495 0 R /Next 497 0 R >> endobj 497 0 obj << /Title( 10.2.31 [Fbtextsize]) /Dest [494 0 R /XYZ null null 1] /Parent 461 0 R /Prev 496 0 R /Next 498 0 R >> endobj 498 0 obj << /Title( 10.2.32 [Footnote]) /Dest [494 0 R /XYZ null null 1] /Parent 461 0 R /Prev 497 0 R /Next 499 0 R >> endobj 499 0 obj << /Title( 10.2.33 [Hairpins]) /Dest [494 0 R /XYZ null null 1] /Parent 461 0 R /Prev 498 0 R /Next 501 0 R >> endobj 501 0 obj << /Title( 10.2.34 [Hairpinwidth]) /Dest [500 0 R /XYZ null null 1] /Parent 461 0 R /Prev 499 0 R /Next 502 0 R >> endobj 502 0 obj << /Title( 10.2.35 [Hclef]) /Dest [500 0 R /XYZ null null 1] /Parent 461 0 R /Prev 501 0 R /Next 503 0 R >> endobj 503 0 obj << /Title( 10.2.36 [Justify]) /Dest [500 0 R /XYZ null null 1] /Parent 461 0 R /Prev 502 0 R /Next 504 0 R >> endobj 504 0 obj << /Title( 10.2.37 [Key]) /Dest [500 0 R /XYZ null null 1] /Parent 461 0 R /Prev 503 0 R /Next 506 0 R >> endobj 506 0 obj << /Title( 10.2.38 [Line]) /Dest [505 0 R /XYZ null null 1] /Parent 461 0 R /Prev 504 0 R /Next 507 0 R >> endobj 507 0 obj << /Title( 10.2.39 [Linegap]) /Dest [505 0 R /XYZ null null 1] /Parent 461 0 R /Prev 506 0 R /Next 509 0 R >> endobj 509 0 obj << /Title( 10.2.40 [Mezzo]) /Dest [508 0 R /XYZ null null 1] /Parent 461 0 R /Prev 507 0 R /Next 510 0 R >> endobj 510 0 obj << /Title( 10.2.41 [Midichannel]) /Dest [508 0 R /XYZ null null 1] /Parent 461 0 R /Prev 509 0 R /Next 511 0 R >> endobj 511 0 obj << /Title( 10.2.42 [Midipitch]) /Dest [508 0 R /XYZ null null 1] /Parent 461 0 R /Prev 510 0 R /Next 512 0 R >> endobj 512 0 obj << /Title( 10.2.43 [Miditranspose]) /Dest [508 0 R /XYZ null null 1] /Parent 461 0 R /Prev 511 0 R /Next 513 0 R >> endobj 513 0 obj << /Title( 10.2.44 [Midivoice]) /Dest [508 0 R /XYZ null null 1] /Parent 461 0 R /Prev 512 0 R /Next 515 0 R >> endobj 515 0 obj << /Title( 10.2.45 [Midivolume]) /Dest [514 0 R /XYZ null null 1] /Parent 461 0 R /Prev 513 0 R /Next 516 0 R >> endobj 516 0 obj << /Title( 10.2.46 [Move]) /Dest [514 0 R /XYZ null null 1] /Parent 461 0 R /Prev 515 0 R /Next 517 0 R >> endobj 517 0 obj << /Title( 10.2.47 [Name]) /Dest [514 0 R /XYZ null null 1] /Parent 461 0 R /Prev 516 0 R /Next 519 0 R >> endobj 519 0 obj << /Title( 10.2.48 [Newline]) /Dest [518 0 R /XYZ null null 1] /Parent 461 0 R /Prev 517 0 R /Next 520 0 R >> endobj 520 0 obj << /Title( 10.2.49 [Newmovement]) /Dest [518 0 R /XYZ null null 1] /Parent 461 0 R /Prev 519 0 R /Next 522 0 R >> endobj 522 0 obj << /Title( 10.2.50 [Newpage]) /Dest [521 0 R /XYZ null null 1] /Parent 461 0 R /Prev 520 0 R /Next 523 0 R >> endobj 523 0 obj << /Title( 10.2.51 [Nocheck]) /Dest [521 0 R /XYZ null null 1] /Parent 461 0 R /Prev 522 0 R /Next 524 0 R >> endobj 524 0 obj << /Title( 10.2.52 [Noclef]) /Dest [521 0 R /XYZ null null 1] /Parent 461 0 R /Prev 523 0 R /Next 525 0 R >> endobj 525 0 obj << /Title( 10.2.53 [Nocount]) /Dest [521 0 R /XYZ null null 1] /Parent 461 0 R /Prev 524 0 R /Next 526 0 R >> endobj 526 0 obj << /Title( 10.2.54 [Noteheads]) /Dest [521 0 R /XYZ null null 1] /Parent 461 0 R /Prev 525 0 R /Next 528 0 R >> endobj 528 0 obj << /Title( 10.2.55 [Notes]) /Dest [527 0 R /XYZ null null 1] /Parent 461 0 R /Prev 526 0 R /Next 529 0 R >> endobj 529 0 obj << /Title( 10.2.56 [Notespacing]) /Dest [527 0 R /XYZ null null 1] /Parent 461 0 R /Prev 528 0 R /Next 530 0 R >> endobj 530 0 obj << /Title( 10.2.57 [Octave]) /Dest [527 0 R /XYZ null null 1] /Parent 461 0 R /Prev 529 0 R /Next 532 0 R >> endobj 532 0 obj << /Title( 10.2.58 [Olevel] and [olhere]) /Dest [531 0 R /XYZ null null 1] /Parent 461 0 R /Prev 530 0 R /Next 533 0 R >> endobj 533 0 obj << /Title( 10.2.59 [Oltextsize]) /Dest [531 0 R /XYZ null null 1] /Parent 461 0 R /Prev 532 0 R /Next 534 0 R >> endobj 534 0 obj << /Title( 10.2.60 [Omitempty]) /Dest [531 0 R /XYZ null null 1] /Parent 461 0 R /Prev 533 0 R /Next 535 0 R >> endobj 535 0 obj << /Title( 10.2.61 [Overdraw]) /Dest [531 0 R /XYZ null null 1] /Parent 461 0 R /Prev 534 0 R /Next 537 0 R >> endobj 537 0 obj << /Title( 10.2.62 [Overlayfont]) /Dest [536 0 R /XYZ null null 1] /Parent 461 0 R /Prev 535 0 R /Next 538 0 R >> endobj 538 0 obj << /Title( 10.2.63 [Page]) /Dest [536 0 R /XYZ null null 1] /Parent 461 0 R /Prev 537 0 R /Next 539 0 R >> endobj 539 0 obj << /Title( 10.2.64 [Percussion]) /Dest [536 0 R /XYZ null null 1] /Parent 461 0 R /Prev 538 0 R /Next 540 0 R >> endobj 540 0 obj << /Title( 10.2.65 [Playtranspose]) /Dest [536 0 R /XYZ null null 1] /Parent 461 0 R /Prev 539 0 R /Next 541 0 R >> endobj 541 0 obj << /Title( 10.2.66 [Playvolume]) /Dest [536 0 R /XYZ null null 1] /Parent 461 0 R /Prev 540 0 R /Next 542 0 R >> endobj 542 0 obj << /Title( 10.2.67 [Printpitch]) /Dest [536 0 R /XYZ null null 1] /Parent 461 0 R /Prev 541 0 R /Next 544 0 R >> endobj 544 0 obj << /Title( 10.2.68 [Reset]) /Dest [543 0 R /XYZ null null 1] /Parent 461 0 R /Prev 542 0 R /Next 545 0 R >> endobj 545 0 obj << /Title( 10.2.69 [Resume]) /Dest [543 0 R /XYZ null null 1] /Parent 461 0 R /Prev 544 0 R /Next 546 0 R >> endobj 546 0 obj << /Title( 10.2.70 [Rlevel]) /Dest [543 0 R /XYZ null null 1] /Parent 461 0 R /Prev 545 0 R /Next 548 0 R >> endobj 548 0 obj << /Title( 10.2.71 [Rmove]) /Dest [547 0 R /XYZ null null 1] /Parent 461 0 R /Prev 546 0 R /Next 549 0 R >> endobj 549 0 obj << /Title( 10.2.72 [Rsmove]) /Dest [547 0 R /XYZ null null 1] /Parent 461 0 R /Prev 548 0 R /Next 550 0 R >> endobj 550 0 obj << /Title( 10.2.73 [Rspace]) /Dest [547 0 R /XYZ null null 1] /Parent 461 0 R /Prev 549 0 R /Next 551 0 R >> endobj 551 0 obj << /Title( 10.2.74 [Sghere] and [sgnext]) /Dest [547 0 R /XYZ null null 1] /Parent 461 0 R /Prev 550 0 R /Next 552 0 R >> endobj 552 0 obj << /Title( 10.2.75 [Skip]) /Dest [547 0 R /XYZ null null 1] /Parent 461 0 R /Prev 551 0 R /Next 553 0 R >> endobj 553 0 obj << /Title( 10.2.76 [Slur]) /Dest [547 0 R /XYZ null null 1] /Parent 461 0 R /Prev 552 0 R /Next 555 0 R >> endobj 555 0 obj << /Title( 10.2.77 Normal slurs) /Dest [554 0 R /XYZ null null 1] /Parent 461 0 R /Prev 553 0 R /Next 557 0 R >> endobj 557 0 obj << /Title( 10.2.78 Additional control of slur shapes) /Dest [556 0 R /XYZ null null 1] /Parent 461 0 R /Prev 555 0 R /Next 558 0 R >> endobj 558 0 obj << /Title( 10.2.79 Editorial and dashed slurs) /Dest [556 0 R /XYZ null null 1] /Parent 461 0 R /Prev 557 0 R /Next 560 0 R >> endobj 560 0 obj << /Title( 10.2.80 Wiggly slurs) /Dest [559 0 R /XYZ null null 1] /Parent 461 0 R /Prev 558 0 R /Next 561 0 R >> endobj 561 0 obj << /Title( 10.2.81 Split slurs) /Dest [559 0 R /XYZ null null 1] /Parent 461 0 R /Prev 560 0 R /Next 562 0 R >> endobj 562 0 obj << /Title( 10.2.82 Overlapping nested slurs) /Dest [559 0 R /XYZ null null 1] /Parent 461 0 R /Prev 561 0 R /Next 564 0 R >> endobj 564 0 obj << /Title( 10.2.83 Tagged slurs) /Dest [563 0 R /XYZ null null 1] /Parent 461 0 R /Prev 562 0 R /Next 565 0 R >> endobj 565 0 obj << /Title( 10.2.84 [Slurgap]) /Dest [563 0 R /XYZ null null 1] /Parent 461 0 R /Prev 564 0 R /Next 567 0 R >> endobj 567 0 obj << /Title( 10.2.85 [Smove]) /Dest [566 0 R /XYZ null null 1] /Parent 461 0 R /Prev 565 0 R /Next 568 0 R >> endobj 568 0 obj << /Title( 10.2.86 [Soprabass]) /Dest [566 0 R /XYZ null null 1] /Parent 461 0 R /Prev 567 0 R /Next 569 0 R >> endobj 569 0 obj << /Title( 10.2.87 [Soprano]) /Dest [566 0 R /XYZ null null 1] /Parent 461 0 R /Prev 568 0 R /Next 570 0 R >> endobj 570 0 obj << /Title( 10.2.88 [Space]) /Dest [566 0 R /XYZ null null 1] /Parent 461 0 R /Prev 569 0 R /Next 571 0 R >> endobj 571 0 obj << /Title( 10.2.89 [Sshere] and [ssnext]) /Dest [566 0 R /XYZ null null 1] /Parent 461 0 R /Prev 570 0 R /Next 573 0 R >> endobj 573 0 obj << /Title( 10.2.90 [Stave]) /Dest [572 0 R /XYZ null null 1] /Parent 461 0 R /Prev 571 0 R /Next 574 0 R >> endobj 574 0 obj << /Title( 10.2.91 Text at stave starts) /Dest [572 0 R /XYZ null null 1] /Parent 461 0 R /Prev 573 0 R /Next 576 0 R >> endobj 576 0 obj << /Title( 10.2.92 Drawings at stave starts) /Dest [575 0 R /XYZ null null 1] /Parent 461 0 R /Prev 574 0 R /Next 577 0 R >> endobj 577 0 obj << /Title( 10.2.93 [Stavelines]) /Dest [575 0 R /XYZ null null 1] /Parent 461 0 R /Prev 576 0 R /Next 579 0 R >> endobj 579 0 obj << /Title( 10.2.94 [Stemlength]) /Dest [578 0 R /XYZ null null 1] /Parent 461 0 R /Prev 577 0 R /Next 580 0 R >> endobj 580 0 obj << /Title( 10.2.95 [Stems]) /Dest [578 0 R /XYZ null null 1] /Parent 461 0 R /Prev 579 0 R /Next 581 0 R >> endobj 581 0 obj << /Title( 10.2.96 [Suspend]) /Dest [578 0 R /XYZ null null 1] /Parent 461 0 R /Prev 580 0 R /Next 582 0 R >> endobj 582 0 obj << /Title( 10.2.97 [Tenor]) /Dest [578 0 R /XYZ null null 1] /Parent 461 0 R /Prev 581 0 R /Next 584 0 R >> endobj 584 0 obj << /Title( 10.2.98 [Text]) /Dest [583 0 R /XYZ null null 1] /Parent 461 0 R /Prev 582 0 R /Next 585 0 R >> endobj 585 0 obj << /Title( 10.2.99 [Textfont]) /Dest [583 0 R /XYZ null null 1] /Parent 461 0 R /Prev 584 0 R /Next 586 0 R >> endobj 586 0 obj << /Title( 10.2.100 [Textsize]) /Dest [583 0 R /XYZ null null 1] /Parent 461 0 R /Prev 585 0 R /Next 587 0 R >> endobj 587 0 obj << /Title( 10.2.101 [Tick]) /Dest [583 0 R /XYZ null null 1] /Parent 461 0 R /Prev 586 0 R /Next 588 0 R >> endobj 588 0 obj << /Title( 10.2.102 [Ties]) /Dest [583 0 R /XYZ null null 1] /Parent 461 0 R /Prev 587 0 R /Next 590 0 R >> endobj 590 0 obj << /Title( 10.2.103 [Time]) /Dest [589 0 R /XYZ null null 1] /Parent 461 0 R /Prev 588 0 R /Next 591 0 R >> endobj 591 0 obj << /Title( 10.2.104 Staves with differing time signatures) /Dest [589 0 R /XYZ null null 1] /Parent 461 0 R /Prev 590 0 R /Next 592 0 R >> endobj 592 0 obj << /Title( 10.2.105 [Topmargin]) /Dest [589 0 R /XYZ null null 1] /Parent 461 0 R /Prev 591 0 R /Next 593 0 R >> endobj 593 0 obj << /Title( 10.2.106 [Transpose]) /Dest [589 0 R /XYZ null null 1] /Parent 461 0 R /Prev 592 0 R /Next 595 0 R >> endobj 595 0 obj << /Title( 10.2.107 [Transposedacc]) /Dest [594 0 R /XYZ null null 1] /Parent 461 0 R /Prev 593 0 R /Next 596 0 R >> endobj 596 0 obj << /Title( 10.2.108 [Treble]) /Dest [594 0 R /XYZ null null 1] /Parent 461 0 R /Prev 595 0 R /Next 597 0 R >> endobj 597 0 obj << /Title( 10.2.109 [Trebledescant]) /Dest [594 0 R /XYZ null null 1] /Parent 461 0 R /Prev 596 0 R /Next 598 0 R >> endobj 598 0 obj << /Title( 10.2.110 [Trebletenor]) /Dest [594 0 R /XYZ null null 1] /Parent 461 0 R /Prev 597 0 R /Next 599 0 R >> endobj 599 0 obj << /Title( 10.2.111 [TrebletenorB]) /Dest [594 0 R /XYZ null null 1] /Parent 461 0 R /Prev 598 0 R /Next 600 0 R >> endobj 600 0 obj << /Title( 10.2.112 [Tremolo]) /Dest [594 0 R /XYZ null null 1] /Parent 461 0 R /Prev 599 0 R /Next 602 0 R >> endobj 602 0 obj << /Title( 10.2.113 [Triplets]) /Dest [601 0 R /XYZ null null 1] /Parent 461 0 R /Prev 600 0 R /Next 603 0 R >> endobj 603 0 obj << /Title( 10.2.114 [Ulevel] and [ulhere]) /Dest [601 0 R /XYZ null null 1] /Parent 461 0 R /Prev 602 0 R /Next 605 0 R >> endobj 605 0 obj << /Title( 10.2.115 [Ultextsize]) /Dest [604 0 R /XYZ null null 1] /Parent 461 0 R /Prev 603 0 R /Next 606 0 R >> endobj 606 0 obj << /Title( 10.2.116 [Unbreakbarline]) /Dest [604 0 R /XYZ null null 1] /Parent 461 0 R /Prev 605 0 R /Next 607 0 R >> endobj 607 0 obj << /Title( 10.2.117 [Underlayfont]) /Dest [604 0 R /XYZ null null 1] /Parent 461 0 R /Prev 606 0 R /Next 608 0 R >> endobj 608 0 obj << /Title( 10.2.118 [Xline]) /Dest [604 0 R /XYZ null null 1] /Parent 461 0 R /Prev 607 0 R /Next 609 0 R >> endobj 609 0 obj << /Title( 10.2.119 [Xslur]) /Dest [604 0 R /XYZ null null 1] /Parent 461 0 R /Prev 608 0 R >> endobj 461 0 obj << /Title( 10.2 Alphabetical list of stave directives) /Dest [458 0 R /XYZ null null 1] /Count -119 /Parent 459 0 R /Prev 460 0 R /First 462 0 R /Last 609 0 R >> endobj 459 0 obj << /Title(10. Stave directives) /Dest [458 0 R /XYZ null null 1] /Count -2 /Parent 5 0 R /Prev 361 0 R /Next 611 0 R /First 460 0 R /Last 461 0 R >> endobj 611 0 obj << /Title(11. Characters in text fonts) /Dest [610 0 R /XYZ null null 1] /Parent 5 0 R /Prev 459 0 R /Next 613 0 R >> endobj 613 0 obj << /Title(12. The PMW music font) /Dest [612 0 R /XYZ null null 1] /Parent 5 0 R /Prev 611 0 R /Next 615 0 R >> endobj 616 0 obj << /Title( 13.1 Use of PMW-Alpha from within PMW) /Dest [614 0 R /XYZ null null 1] /Parent 615 0 R /Next 617 0 R >> endobj 617 0 obj << /Title( 13.2 Use of PMW-Alpha in other programs) /Dest [614 0 R /XYZ null null 1] /Parent 615 0 R /Prev 616 0 R /Next 619 0 R >> endobj 619 0 obj << /Title( 13.3 Characters in the font) /Dest [618 0 R /XYZ null null 1] /Parent 615 0 R /Prev 617 0 R >> endobj 615 0 obj << /Title(13. The PMW-Alpha font) /Dest [614 0 R /XYZ null null 1] /Count -3 /Parent 5 0 R /Prev 613 0 R /Next 621 0 R /First 616 0 R /Last 619 0 R >> endobj 622 0 obj << /Title( 14.1 Preprocessing directives) /Dest [620 0 R /XYZ null null 1] /Parent 621 0 R /Next 623 0 R >> endobj 623 0 obj << /Title( 14.2 Heading directives) /Dest [620 0 R /XYZ null null 1] /Parent 621 0 R /Prev 622 0 R /Next 625 0 R >> endobj 625 0 obj << /Title( 14.3 Note and rest components) /Dest [624 0 R /XYZ null null 1] /Parent 621 0 R /Prev 623 0 R /Next 627 0 R >> endobj 627 0 obj << /Title( 14.4 Special characters in stave data) /Dest [626 0 R /XYZ null null 1] /Parent 621 0 R /Prev 625 0 R /Next 629 0 R >> endobj 629 0 obj << /Title( 14.5 Stave text item options) /Dest [628 0 R /XYZ null null 1] /Parent 621 0 R /Prev 627 0 R /Next 630 0 R >> endobj 630 0 obj << /Title( 14.6 Character string escapes) /Dest [628 0 R /XYZ null null 1] /Parent 621 0 R /Prev 629 0 R /Next 632 0 R >> endobj 632 0 obj << /Title( 14.7 Underlay strings) /Dest [631 0 R /XYZ null null 1] /Parent 621 0 R /Prev 630 0 R /Next 634 0 R >> endobj 634 0 obj << /Title( 14.8 Bracketed stave directives) /Dest [633 0 R /XYZ null null 1] /Parent 621 0 R /Prev 632 0 R /Next 636 0 R >> endobj 636 0 obj << /Title( 14.9 Slur options) /Dest [635 0 R /XYZ null null 1] /Parent 621 0 R /Prev 634 0 R /Next 638 0 R >> endobj 638 0 obj << /Title( 14.10 Default values) /Dest [637 0 R /XYZ null null 1] /Parent 621 0 R /Prev 636 0 R >> endobj 621 0 obj << /Title(14. Syntax summary) /Dest [620 0 R /XYZ null null 1] /Count -10 /Parent 5 0 R /Prev 615 0 R /Next 640 0 R /First 622 0 R /Last 638 0 R >> endobj 641 0 obj << /Title(Symbols) /Dest [639 0 R /XYZ null null 1] /Parent 640 0 R /Next 642 0 R >> endobj 642 0 obj << /Title(Digits) /Dest [639 0 R /XYZ null null 1] /Parent 640 0 R /Prev 641 0 R /Next 643 0 R >> endobj 643 0 obj << /Title(A) /Dest [639 0 R /XYZ null null 1] /Parent 640 0 R /Prev 642 0 R /Next 644 0 R >> endobj 644 0 obj << /Title(B) /Dest [639 0 R /XYZ null null 1] /Parent 640 0 R /Prev 643 0 R /Next 646 0 R >> endobj 646 0 obj << /Title(C) /Dest [645 0 R /XYZ null null 1] /Parent 640 0 R /Prev 644 0 R /Next 647 0 R >> endobj 647 0 obj << /Title(D) /Dest [645 0 R /XYZ null null 1] /Parent 640 0 R /Prev 646 0 R /Next 649 0 R >> endobj 649 0 obj << /Title(E) /Dest [648 0 R /XYZ null null 1] /Parent 640 0 R /Prev 647 0 R /Next 650 0 R >> endobj 650 0 obj << /Title(F) /Dest [648 0 R /XYZ null null 1] /Parent 640 0 R /Prev 649 0 R /Next 652 0 R >> endobj 652 0 obj << /Title(G) /Dest [651 0 R /XYZ null null 1] /Parent 640 0 R /Prev 650 0 R /Next 653 0 R >> endobj 653 0 obj << /Title(H) /Dest [651 0 R /XYZ null null 1] /Parent 640 0 R /Prev 652 0 R /Next 654 0 R >> endobj 654 0 obj << /Title(I) /Dest [651 0 R /XYZ null null 1] /Parent 640 0 R /Prev 653 0 R /Next 655 0 R >> endobj 655 0 obj << /Title(J) /Dest [651 0 R /XYZ null null 1] /Parent 640 0 R /Prev 654 0 R /Next 656 0 R >> endobj 656 0 obj << /Title(K) /Dest [651 0 R /XYZ null null 1] /Parent 640 0 R /Prev 655 0 R /Next 657 0 R >> endobj 657 0 obj << /Title(L) /Dest [651 0 R /XYZ null null 1] /Parent 640 0 R /Prev 656 0 R /Next 659 0 R >> endobj 659 0 obj << /Title(M) /Dest [658 0 R /XYZ null null 1] /Parent 640 0 R /Prev 657 0 R /Next 660 0 R >> endobj 660 0 obj << /Title(N) /Dest [658 0 R /XYZ null null 1] /Parent 640 0 R /Prev 659 0 R /Next 662 0 R >> endobj 662 0 obj << /Title(O) /Dest [661 0 R /XYZ null null 1] /Parent 640 0 R /Prev 660 0 R /Next 663 0 R >> endobj 663 0 obj << /Title(P) /Dest [661 0 R /XYZ null null 1] /Parent 640 0 R /Prev 662 0 R /Next 665 0 R >> endobj 665 0 obj << /Title(R) /Dest [664 0 R /XYZ null null 1] /Parent 640 0 R /Prev 663 0 R /Next 666 0 R >> endobj 666 0 obj << /Title(S) /Dest [664 0 R /XYZ null null 1] /Parent 640 0 R /Prev 665 0 R /Next 668 0 R >> endobj 668 0 obj << /Title(T) /Dest [667 0 R /XYZ null null 1] /Parent 640 0 R /Prev 666 0 R /Next 670 0 R >> endobj 670 0 obj << /Title(U) /Dest [669 0 R /XYZ null null 1] /Parent 640 0 R /Prev 668 0 R /Next 671 0 R >> endobj 671 0 obj << /Title(V) /Dest [669 0 R /XYZ null null 1] /Parent 640 0 R /Prev 670 0 R /Next 672 0 R >> endobj 672 0 obj << /Title(W) /Dest [669 0 R /XYZ null null 1] /Parent 640 0 R /Prev 671 0 R /Next 674 0 R >> endobj 674 0 obj << /Title(X) /Dest [673 0 R /XYZ null null 1] /Parent 640 0 R /Prev 672 0 R >> endobj 677 0 obj <>endobj 680 0 obj <> endobj 681 0 obj <> endobj 687 0 obj <> endobj 688 0 obj <> endobj 695 0 obj <> endobj 696 0 obj <> endobj 700 0 obj <> endobj 701 0 obj <> endobj 705 0 obj <> endobj 706 0 obj <> endobj 710 0 obj <> endobj 711 0 obj <> endobj 716 0 obj <>endobj 717 0 obj <>endobj 718 0 obj <>endobj 719 0 obj <>endobj 720 0 obj <>endobj 721 0 obj <>endobj 724 0 obj <> endobj 725 0 obj <> endobj 729 0 obj <> endobj 730 0 obj <> endobj 735 0 obj <>endobj 736 0 obj <> endobj 737 0 obj <> endobj 740 0 obj <>endobj 741 0 obj <> endobj 742 0 obj <> endobj 745 0 obj <> endobj 746 0 obj <> endobj 749 0 obj <> endobj 750 0 obj <> endobj 753 0 obj <>endobj 754 0 obj <>endobj 755 0 obj <> endobj 756 0 obj <> endobj 760 0 obj <>endobj 761 0 obj <>endobj 762 0 obj <>endobj 763 0 obj <> endobj 764 0 obj <> endobj 768 0 obj <>endobj 769 0 obj <> endobj 770 0 obj <> endobj 774 0 obj <>endobj 775 0 obj <>endobj 776 0 obj <> endobj 777 0 obj <> endobj 780 0 obj <>endobj 781 0 obj <>endobj 782 0 obj <> endobj 783 0 obj <> endobj 786 0 obj <> endobj 787 0 obj <> endobj 790 0 obj <> endobj 791 0 obj <> endobj 794 0 obj <>endobj 797 0 obj <> endobj 798 0 obj <> endobj 802 0 obj <> endobj 803 0 obj <> endobj 807 0 obj <>endobj 808 0 obj <> endobj 809 0 obj <> endobj 812 0 obj <>endobj 815 0 obj <>endobj 816 0 obj <>endobj 817 0 obj <> endobj 818 0 obj <> endobj 822 0 obj <>endobj 823 0 obj <> endobj 824 0 obj <> endobj 827 0 obj <>endobj 828 0 obj <> endobj 829 0 obj <> endobj 832 0 obj <>endobj 833 0 obj <>endobj 834 0 obj <>endobj 835 0 obj <>endobj 836 0 obj <>endobj 837 0 obj <> endobj 838 0 obj <> endobj 841 0 obj <>endobj 842 0 obj <>endobj 843 0 obj <> endobj 844 0 obj <> endobj 847 0 obj <>endobj 848 0 obj <>endobj 849 0 obj <>endobj 850 0 obj <>endobj 851 0 obj <>endobj 852 0 obj <> endobj 853 0 obj <> endobj 856 0 obj <>endobj 857 0 obj <> endobj 858 0 obj <> endobj 861 0 obj <>endobj 862 0 obj <>endobj 863 0 obj <> endobj 864 0 obj <> endobj 867 0 obj <>endobj 868 0 obj <> endobj 869 0 obj <> endobj 872 0 obj <>endobj 873 0 obj <> endobj 874 0 obj <> endobj 877 0 obj <> endobj 878 0 obj <> endobj 881 0 obj <>endobj 882 0 obj <> endobj 883 0 obj <> endobj 886 0 obj <>endobj 887 0 obj <> endobj 888 0 obj <> endobj 891 0 obj <>endobj 892 0 obj <> endobj 893 0 obj <> endobj 896 0 obj <>endobj 897 0 obj <> endobj 898 0 obj <> endobj 902 0 obj <> endobj 903 0 obj <> endobj 906 0 obj <>endobj 907 0 obj <>endobj 908 0 obj <>endobj 909 0 obj <>endobj 910 0 obj <>endobj 911 0 obj <>endobj 912 0 obj <> endobj 913 0 obj <> endobj 916 0 obj <>endobj 917 0 obj <>endobj 918 0 obj <> endobj 919 0 obj <> endobj 922 0 obj <>endobj 923 0 obj <> endobj 924 0 obj <> endobj 927 0 obj <>endobj 928 0 obj <>endobj 929 0 obj <> endobj 930 0 obj <> endobj 933 0 obj <> endobj 934 0 obj <> endobj 940 0 obj <> endobj 941 0 obj <> endobj 944 0 obj <>endobj 945 0 obj <> endobj 946 0 obj <> endobj 949 0 obj <>endobj 950 0 obj <>endobj 951 0 obj <>endobj 952 0 obj <>endobj 953 0 obj <>endobj 954 0 obj <>endobj 955 0 obj <>endobj 956 0 obj <>endobj 957 0 obj <> endobj 958 0 obj <> endobj 961 0 obj <>endobj 962 0 obj <> endobj 963 0 obj <> endobj 966 0 obj <>endobj 967 0 obj <> endobj 968 0 obj <> endobj 971 0 obj <> endobj 972 0 obj <> endobj 975 0 obj <>endobj 976 0 obj <>endobj 977 0 obj <> endobj 978 0 obj <> endobj 981 0 obj <>endobj 982 0 obj <>endobj 983 0 obj <>endobj 984 0 obj <> endobj 985 0 obj <> endobj 988 0 obj <>endobj 989 0 obj <>endobj 990 0 obj <> endobj 991 0 obj <> endobj 994 0 obj <> endobj 995 0 obj <> endobj 998 0 obj <>endobj 999 0 obj <>endobj 1000 0 obj <>endobj 1001 0 obj <>endobj 1002 0 obj <>endobj 1003 0 obj <> endobj 1004 0 obj <> endobj 1007 0 obj <>endobj 1008 0 obj <> endobj 1009 0 obj <> endobj 1012 0 obj <>endobj 1013 0 obj <> endobj 1014 0 obj <> endobj 1017 0 obj <>endobj 1018 0 obj <>endobj 1019 0 obj <>endobj 1020 0 obj <> endobj 1021 0 obj <> endobj 1024 0 obj <>endobj 1025 0 obj <> endobj 1026 0 obj <> endobj 1029 0 obj <>endobj 1030 0 obj <>endobj 1031 0 obj <>endobj 1032 0 obj <> endobj 1033 0 obj <> endobj 1036 0 obj <> endobj 1037 0 obj <> endobj 1040 0 obj <>endobj 1041 0 obj <>endobj 1042 0 obj <>endobj 1043 0 obj <>endobj 1044 0 obj <> endobj 1045 0 obj <> endobj 1049 0 obj <> endobj 1050 0 obj <> endobj 1053 0 obj <>endobj 1054 0 obj <> endobj 1055 0 obj <> endobj 1058 0 obj <>endobj 1059 0 obj <> endobj 1060 0 obj <> endobj 1063 0 obj <>endobj 1064 0 obj <>endobj 1065 0 obj <> endobj 1066 0 obj <> endobj 1069 0 obj <>endobj 1070 0 obj <> endobj 1071 0 obj <> endobj 1074 0 obj <>endobj 1075 0 obj <>endobj 1076 0 obj <> endobj 1077 0 obj <> endobj 1081 0 obj <> endobj 1082 0 obj <> endobj 1085 0 obj <>endobj 1086 0 obj <> endobj 1087 0 obj <> endobj 1091 0 obj <> endobj 1092 0 obj <> endobj 1095 0 obj <>endobj 1096 0 obj <> endobj 1097 0 obj <> endobj 1100 0 obj <> endobj 1101 0 obj <> endobj 1104 0 obj <>endobj 1105 0 obj <>endobj 1106 0 obj <>endobj 1107 0 obj <>endobj 1108 0 obj <> endobj 1109 0 obj <> endobj 1112 0 obj <> endobj 1113 0 obj <> endobj 1116 0 obj <> endobj 1117 0 obj <> endobj 1120 0 obj <>endobj 1121 0 obj <> endobj 1122 0 obj <> endobj 1125 0 obj <>endobj 1126 0 obj <> endobj 1127 0 obj <> endobj 1130 0 obj <>endobj 1131 0 obj <> endobj 1132 0 obj <> endobj 1135 0 obj <>endobj 1136 0 obj <>endobj 1137 0 obj <> endobj 1138 0 obj <> endobj 1141 0 obj <>endobj 1142 0 obj <>endobj 1143 0 obj <> endobj 1144 0 obj <> endobj 1147 0 obj <>endobj 1148 0 obj <> endobj 1149 0 obj <> endobj 1152 0 obj <>endobj 1153 0 obj <> endobj 1154 0 obj <> endobj 1157 0 obj <>endobj 1158 0 obj <> endobj 1159 0 obj <> endobj 1162 0 obj <> endobj 1163 0 obj <> endobj 1166 0 obj <> endobj 1167 0 obj <> endobj 1170 0 obj <>endobj 1171 0 obj <> endobj 1172 0 obj <> endobj 1175 0 obj <>endobj 1176 0 obj <>endobj 1177 0 obj <> endobj 1178 0 obj <> endobj 1181 0 obj <>endobj 1182 0 obj <>endobj 1183 0 obj <> endobj 1184 0 obj <> endobj 1187 0 obj <>endobj 1188 0 obj <>endobj 1189 0 obj <> endobj 1190 0 obj <> endobj 1193 0 obj <>endobj 1194 0 obj <>endobj 1195 0 obj <> endobj 1196 0 obj <> endobj 1199 0 obj <>endobj 1200 0 obj <> endobj 1201 0 obj <> endobj 1204 0 obj <>endobj 1205 0 obj <>endobj 1206 0 obj <> endobj 1207 0 obj <> endobj 1210 0 obj <> endobj 1211 0 obj <> endobj 1214 0 obj <> endobj 1215 0 obj <> endobj 1218 0 obj <>endobj 1219 0 obj <> endobj 1220 0 obj <> endobj 1223 0 obj <>endobj 1224 0 obj <> endobj 1225 0 obj <> endobj 1228 0 obj <>endobj 1229 0 obj <>endobj 1230 0 obj <> endobj 1231 0 obj <> endobj 1234 0 obj <>endobj 1235 0 obj <>endobj 1236 0 obj <>endobj 1237 0 obj <>endobj 1238 0 obj <> endobj 1239 0 obj <> endobj 1242 0 obj <>endobj 1243 0 obj <>endobj 1244 0 obj <> endobj 1245 0 obj <> endobj 1248 0 obj <>endobj 1249 0 obj <>endobj 1250 0 obj <>endobj 1251 0 obj <>endobj 1252 0 obj <> endobj 1253 0 obj <> endobj 1256 0 obj <>endobj 1257 0 obj <>endobj 1258 0 obj <> endobj 1259 0 obj <> endobj 1262 0 obj <>endobj 1263 0 obj <>endobj 1264 0 obj <>endobj 1265 0 obj <>endobj 1266 0 obj <>endobj 1267 0 obj <>endobj 1268 0 obj <> endobj 1269 0 obj <> endobj 1272 0 obj <>endobj 1273 0 obj <>endobj 1274 0 obj <>endobj 1275 0 obj <>endobj 1276 0 obj <> endobj 1277 0 obj <> endobj 1280 0 obj <>endobj 1281 0 obj <> endobj 1282 0 obj <> endobj 1285 0 obj <> endobj 1286 0 obj <> endobj 1289 0 obj <> endobj 1290 0 obj <> endobj 1293 0 obj <>endobj 1294 0 obj <>endobj 1295 0 obj <> endobj 1296 0 obj <> endobj 1299 0 obj <>endobj 1300 0 obj <>endobj 1301 0 obj <>endobj 1302 0 obj <> endobj 1303 0 obj <> endobj 1306 0 obj <>endobj 1307 0 obj <>endobj 1308 0 obj <>endobj 1309 0 obj <>endobj 1310 0 obj <> endobj 1311 0 obj <> endobj 1314 0 obj <>endobj 1315 0 obj <> endobj 1316 0 obj <> endobj 1320 0 obj <>endobj 1321 0 obj <>endobj 1322 0 obj <>endobj 1323 0 obj <>endobj 1324 0 obj <>endobj 1325 0 obj <>endobj 1326 0 obj <>endobj 1327 0 obj <>endobj 1328 0 obj <>endobj 1329 0 obj <>endobj 1330 0 obj <>endobj 1331 0 obj <>endobj 1332 0 obj <> endobj 1333 0 obj <> endobj 1336 0 obj <>endobj 1337 0 obj <> endobj 1338 0 obj <> endobj 1341 0 obj <> endobj 1342 0 obj <> endobj 1345 0 obj <> endobj 1346 0 obj <> endobj 1349 0 obj <> endobj 1350 0 obj <> endobj 1353 0 obj <> endobj 1354 0 obj <> endobj 1357 0 obj <> endobj 1358 0 obj <> endobj 1361 0 obj <> endobj 1362 0 obj <> endobj 1365 0 obj <>endobj 1366 0 obj <>endobj 1367 0 obj <>endobj 1368 0 obj <> endobj 1369 0 obj <> endobj 1372 0 obj <> endobj 1373 0 obj <> endobj 1376 0 obj <>endobj 1377 0 obj <> endobj 1378 0 obj <> endobj 1381 0 obj <>endobj 1382 0 obj <>endobj 1383 0 obj <>endobj 1384 0 obj <>endobj 1385 0 obj <> endobj 1386 0 obj <> endobj 1389 0 obj <>endobj 1390 0 obj <>endobj 1391 0 obj <>endobj 1392 0 obj <> endobj 1393 0 obj <> endobj 1396 0 obj <>endobj 1399 0 obj <>endobj 1400 0 obj <> endobj 1401 0 obj <> endobj 1404 0 obj <>endobj 1405 0 obj <> endobj 1406 0 obj <> endobj 1409 0 obj <>endobj 1410 0 obj <>endobj 1411 0 obj <> endobj 1412 0 obj <> endobj 1416 0 obj <>endobj 1417 0 obj <>endobj 1418 0 obj <> endobj 1419 0 obj <> endobj 1422 0 obj <>endobj 1423 0 obj <> endobj 1424 0 obj <> endobj 1427 0 obj <> endobj 1428 0 obj <> endobj 1432 0 obj <> endobj 1433 0 obj <> endobj 1436 0 obj <>endobj 1437 0 obj <>endobj 1438 0 obj <>endobj 1439 0 obj <>endobj 1440 0 obj <>endobj 1441 0 obj <> endobj 1442 0 obj <> endobj 1445 0 obj <>endobj 1446 0 obj <>endobj 1447 0 obj <>endobj 1448 0 obj <>endobj 1449 0 obj <>endobj 1450 0 obj <> endobj 1451 0 obj <> endobj 1454 0 obj <>endobj 1455 0 obj <>endobj 1456 0 obj <>endobj 1457 0 obj <> endobj 1458 0 obj <> endobj 1461 0 obj <>endobj 1462 0 obj <>endobj 1463 0 obj <>endobj 1464 0 obj <>endobj 1465 0 obj <> endobj 1466 0 obj <> endobj 1469 0 obj <>endobj 1470 0 obj <>endobj 1471 0 obj <>endobj 1472 0 obj <>endobj 1473 0 obj <>endobj 1474 0 obj <>endobj 1475 0 obj <>endobj 1476 0 obj <> endobj 1477 0 obj <> endobj 1480 0 obj <>endobj 1481 0 obj <>endobj 1482 0 obj <> endobj 1483 0 obj <> endobj 1486 0 obj <>endobj 1487 0 obj <> endobj 1488 0 obj <> endobj 1491 0 obj <>endobj 1492 0 obj <>endobj 1493 0 obj <> endobj 1494 0 obj <> endobj 1498 0 obj <> endobj 1499 0 obj <> endobj 1502 0 obj <>endobj 1503 0 obj <> endobj 1504 0 obj <> endobj 1507 0 obj <>endobj 1508 0 obj <> endobj 1509 0 obj <> endobj 1512 0 obj <>endobj 1513 0 obj <> endobj 1514 0 obj <> endobj 1517 0 obj <>endobj 1518 0 obj <>endobj 1519 0 obj <> endobj 1520 0 obj <> endobj 1523 0 obj <>endobj 1524 0 obj <>endobj 1525 0 obj <> endobj 1526 0 obj <> endobj 1529 0 obj <>endobj 1530 0 obj <>endobj 1531 0 obj <>endobj 1532 0 obj <> endobj 1533 0 obj <> endobj 1536 0 obj <> endobj 1537 0 obj <> endobj 1540 0 obj <>endobj 1541 0 obj <> endobj 1542 0 obj <> endobj 1545 0 obj <>endobj 1546 0 obj <>endobj 1547 0 obj <> endobj 1548 0 obj <> endobj 1551 0 obj <> endobj 1552 0 obj <> endobj 1555 0 obj <>endobj 1556 0 obj <> endobj 1557 0 obj <> endobj 1560 0 obj <> endobj 1561 0 obj <> endobj 1564 0 obj <> endobj 1565 0 obj <> endobj 1568 0 obj <>endobj 1569 0 obj <>endobj 1570 0 obj <> endobj 1571 0 obj <> endobj 1574 0 obj <> endobj 1575 0 obj <> endobj 1578 0 obj <>endobj 1579 0 obj <> endobj 1580 0 obj <> endobj 1583 0 obj <>endobj 1584 0 obj <>endobj 1585 0 obj <>endobj 1586 0 obj <> endobj 1587 0 obj <> endobj 1590 0 obj <> endobj 1591 0 obj <> endobj 1594 0 obj <>endobj 1595 0 obj <> endobj 1596 0 obj <> endobj 1599 0 obj <>endobj 1600 0 obj <>endobj 1601 0 obj <>endobj 1602 0 obj <>endobj 1603 0 obj <>endobj 1604 0 obj <>endobj 1605 0 obj <>endobj 1606 0 obj <> endobj 1607 0 obj <> endobj 1610 0 obj <> endobj 1611 0 obj <> endobj 1614 0 obj <>endobj 1615 0 obj <>endobj 1616 0 obj <>endobj 1617 0 obj <> endobj 1618 0 obj <> endobj 1621 0 obj <>endobj 1622 0 obj <> endobj 1623 0 obj <> endobj 1629 0 obj <> endobj 1630 0 obj <> endobj 1634 0 obj <> endobj 1635 0 obj <> endobj 1641 0 obj <> endobj 1642 0 obj <> endobj 1646 0 obj <> endobj 1647 0 obj <> endobj 1651 0 obj <> endobj 1652 0 obj <> endobj 1656 0 obj <> endobj 1657 0 obj <> endobj 1660 0 obj <> endobj 1661 0 obj <> endobj 1665 0 obj <> endobj 1666 0 obj <> endobj 1670 0 obj <> endobj 1671 0 obj <> endobj 1675 0 obj <> endobj 1676 0 obj <> endobj 1680 0 obj <>endobj 1681 0 obj <>endobj 1682 0 obj <> endobj 1683 0 obj <> endobj 1688 0 obj <> endobj 1689 0 obj <> endobj 1692 0 obj <> endobj 1693 0 obj <> endobj 1697 0 obj <> endobj 1698 0 obj <> endobj 1702 0 obj <> endobj 1703 0 obj <> endobj 1707 0 obj <> endobj 1708 0 obj <> endobj 1711 0 obj <> endobj 1712 0 obj <> endobj 1716 0 obj <> endobj 1717 0 obj <> endobj 1721 0 obj <> endobj 1722 0 obj <> endobj 1725 0 obj <> endobj 1726 0 obj <> endobj 1729 0 obj <> endobj 1730 0 obj <> endobj 1733 0 obj <>endobj 1734 0 obj <>endobj 1735 0 obj <> endobj 1736 0 obj <> endobj 1739 0 obj <> endobj 1740 0 obj <> endobj 1743 0 obj <> endobj 1744 0 obj <> endobj 1748 0 obj <> endobj 1749 0 obj <> endobj 1752 0 obj <> endobj 1753 0 obj <> endobj 1756 0 obj <> endobj 1757 0 obj <> endobj 1761 0 obj <> endobj 1762 0 obj <> endobj 1765 0 obj <>endobj 1766 0 obj <>endobj 1767 0 obj <>endobj 1768 0 obj <>endobj 1769 0 obj <>endobj 1770 0 obj <>endobj 1771 0 obj <>endobj 1772 0 obj <>endobj 1773 0 obj <>endobj 1774 0 obj <>endobj 1775 0 obj <>endobj 1776 0 obj <>endobj 1777 0 obj <>endobj 1778 0 obj <>endobj 1779 0 obj <>endobj 1780 0 obj <>endobj 1781 0 obj <>endobj 1782 0 obj <>endobj 1783 0 obj <>endobj 1784 0 obj <>endobj 1785 0 obj <>endobj 1786 0 obj <>endobj 1787 0 obj <>endobj 1788 0 obj <>endobj 1789 0 obj <>endobj 1790 0 obj <>endobj 1791 0 obj <>endobj 1792 0 obj <>endobj 1793 0 obj <>endobj 1794 0 obj <>endobj 1795 0 obj <>endobj 1796 0 obj <>endobj 1797 0 obj <>endobj 1798 0 obj <>endobj 1799 0 obj <>endobj 1800 0 obj <>endobj 1801 0 obj <>endobj 1802 0 obj <>endobj 1803 0 obj <>endobj 1804 0 obj <>endobj 1805 0 obj <>endobj 1806 0 obj <>endobj 1807 0 obj <>endobj 1808 0 obj <>endobj 1809 0 obj <>endobj 1810 0 obj <>endobj 1811 0 obj <>endobj 1812 0 obj <>endobj 1813 0 obj <>endobj 1814 0 obj <>endobj 1815 0 obj <>endobj 1816 0 obj <>endobj 1817 0 obj <>endobj 1818 0 obj <>endobj 1819 0 obj <>endobj 1820 0 obj <>endobj 1821 0 obj <>endobj 1822 0 obj <>endobj 1823 0 obj <>endobj 1824 0 obj <>endobj 1825 0 obj <>endobj 1826 0 obj <>endobj 1827 0 obj <>endobj 1828 0 obj <>endobj 1829 0 obj <>endobj 1830 0 obj <>endobj 1831 0 obj <>endobj 1832 0 obj <>endobj 1833 0 obj <>endobj 1834 0 obj <>endobj 1835 0 obj <>endobj 1836 0 obj <>endobj 1837 0 obj <>endobj 1838 0 obj <>endobj 1839 0 obj <>endobj 1840 0 obj <>endobj 1841 0 obj <>endobj 1842 0 obj <>endobj 1843 0 obj <>endobj 1844 0 obj <>endobj 1845 0 obj <>endobj 1846 0 obj <>endobj 1847 0 obj <>endobj 1848 0 obj <>endobj 1849 0 obj <>endobj 1850 0 obj <>endobj 1851 0 obj <>endobj 1852 0 obj <>endobj 1853 0 obj <>endobj 1854 0 obj <>endobj 1855 0 obj <>endobj 1856 0 obj <>endobj 1857 0 obj <>endobj 1858 0 obj <>endobj 1859 0 obj <>endobj 1860 0 obj <>endobj 1861 0 obj <>endobj 1862 0 obj <>endobj 1863 0 obj <>endobj 1864 0 obj <>endobj 1865 0 obj <>endobj 1866 0 obj <>endobj 1867 0 obj <>endobj 1868 0 obj <>endobj 1869 0 obj <>endobj 1870 0 obj <>endobj 1871 0 obj <>endobj 1872 0 obj <>endobj 1873 0 obj <>endobj 1874 0 obj <>endobj 1875 0 obj <>endobj 1876 0 obj <>endobj 1877 0 obj <>endobj 1878 0 obj <>endobj 1879 0 obj <>endobj 1880 0 obj <>endobj 1881 0 obj <>endobj 1882 0 obj <>endobj 1883 0 obj <>endobj 1884 0 obj <>endobj 1885 0 obj <>endobj 1886 0 obj <>endobj 1887 0 obj <>endobj 1888 0 obj <>endobj 1889 0 obj <>endobj 1890 0 obj <>endobj 1891 0 obj <>endobj 1892 0 obj <>endobj 1893 0 obj <>endobj 1894 0 obj <>endobj 1895 0 obj <>endobj 1896 0 obj <>endobj 1897 0 obj <>endobj 1898 0 obj <>endobj 1899 0 obj <>endobj 1900 0 obj <>endobj 1901 0 obj <>endobj 1902 0 obj <>endobj 1903 0 obj <>endobj 1904 0 obj <>endobj 1905 0 obj <>endobj 1906 0 obj <>endobj 1907 0 obj <> endobj 1908 0 obj <> endobj 1911 0 obj <>endobj 1912 0 obj <>endobj 1913 0 obj <>endobj 1914 0 obj <>endobj 1915 0 obj <>endobj 1916 0 obj <>endobj 1917 0 obj <>endobj 1918 0 obj <>endobj 1919 0 obj <>endobj 1920 0 obj <>endobj 1921 0 obj <>endobj 1922 0 obj <>endobj 1923 0 obj <>endobj 1924 0 obj <>endobj 1925 0 obj <>endobj 1926 0 obj <>endobj 1927 0 obj <>endobj 1928 0 obj <>endobj 1929 0 obj <>endobj 1930 0 obj <>endobj 1931 0 obj <>endobj 1932 0 obj <>endobj 1933 0 obj <>endobj 1934 0 obj <>endobj 1935 0 obj <>endobj 1936 0 obj <>endobj 1937 0 obj <>endobj 1938 0 obj <>endobj 1939 0 obj <>endobj 1940 0 obj <>endobj 1941 0 obj <>endobj 1942 0 obj <>endobj 1943 0 obj <>endobj 1944 0 obj <>endobj 1945 0 obj <>endobj 1946 0 obj <>endobj 1947 0 obj <>endobj 1948 0 obj <>endobj 1949 0 obj <>endobj 1950 0 obj <>endobj 1951 0 obj <>endobj 1952 0 obj <>endobj 1953 0 obj <>endobj 1954 0 obj <>endobj 1955 0 obj <>endobj 1956 0 obj <>endobj 1957 0 obj <>endobj 1958 0 obj <>endobj 1959 0 obj <>endobj 1960 0 obj <>endobj 1961 0 obj <>endobj 1962 0 obj <>endobj 1963 0 obj <>endobj 1964 0 obj <>endobj 1965 0 obj <>endobj 1966 0 obj <>endobj 1967 0 obj <>endobj 1968 0 obj <>endobj 1969 0 obj <>endobj 1970 0 obj <>endobj 1971 0 obj <>endobj 1972 0 obj <>endobj 1973 0 obj <>endobj 1974 0 obj <>endobj 1975 0 obj <>endobj 1976 0 obj <>endobj 1977 0 obj <>endobj 1978 0 obj <>endobj 1979 0 obj <>endobj 1980 0 obj <>endobj 1981 0 obj <>endobj 1982 0 obj <>endobj 1983 0 obj <>endobj 1984 0 obj <>endobj 1985 0 obj <>endobj 1986 0 obj <>endobj 1987 0 obj <>endobj 1988 0 obj <>endobj 1989 0 obj <>endobj 1990 0 obj <>endobj 1991 0 obj <>endobj 1992 0 obj <>endobj 1993 0 obj <>endobj 1994 0 obj <>endobj 1995 0 obj <>endobj 1996 0 obj <>endobj 1997 0 obj <>endobj 1998 0 obj <>endobj 1999 0 obj <>endobj 2000 0 obj <>endobj 2001 0 obj <>endobj 2002 0 obj <>endobj 2003 0 obj <>endobj 2004 0 obj <>endobj 2005 0 obj <>endobj 2006 0 obj <>endobj 2007 0 obj <>endobj 2008 0 obj <>endobj 2009 0 obj <>endobj 2010 0 obj <>endobj 2011 0 obj <>endobj 2012 0 obj <>endobj 2013 0 obj <>endobj 2014 0 obj <>endobj 2015 0 obj <>endobj 2016 0 obj <>endobj 2017 0 obj <>endobj 2018 0 obj <>endobj 2019 0 obj <>endobj 2020 0 obj <>endobj 2021 0 obj <>endobj 2022 0 obj <>endobj 2023 0 obj <>endobj 2024 0 obj <>endobj 2025 0 obj <>endobj 2026 0 obj <>endobj 2027 0 obj <>endobj 2028 0 obj <>endobj 2029 0 obj <>endobj 2030 0 obj <>endobj 2031 0 obj <>endobj 2032 0 obj <>endobj 2033 0 obj <>endobj 2034 0 obj <>endobj 2035 0 obj <>endobj 2036 0 obj <>endobj 2037 0 obj <>endobj 2038 0 obj <>endobj 2039 0 obj <>endobj 2040 0 obj <>endobj 2041 0 obj <>endobj 2042 0 obj <>endobj 2043 0 obj <>endobj 2044 0 obj <>endobj 2045 0 obj <>endobj 2046 0 obj <>endobj 2047 0 obj <>endobj 2048 0 obj <> endobj 2049 0 obj <> endobj 2052 0 obj <>endobj 2053 0 obj <>endobj 2054 0 obj <>endobj 2055 0 obj <>endobj 2056 0 obj <>endobj 2057 0 obj <>endobj 2058 0 obj <>endobj 2059 0 obj <>endobj 2060 0 obj <>endobj 2061 0 obj <>endobj 2062 0 obj <>endobj 2063 0 obj <>endobj 2064 0 obj <>endobj 2065 0 obj <>endobj 2066 0 obj <>endobj 2067 0 obj <>endobj 2068 0 obj <>endobj 2069 0 obj <>endobj 2070 0 obj <>endobj 2071 0 obj <>endobj 2072 0 obj <>endobj 2073 0 obj <>endobj 2074 0 obj <>endobj 2075 0 obj <>endobj 2076 0 obj <>endobj 2077 0 obj <>endobj 2078 0 obj <>endobj 2079 0 obj <>endobj 2080 0 obj <>endobj 2081 0 obj <>endobj 2082 0 obj <>endobj 2083 0 obj <>endobj 2084 0 obj <>endobj 2085 0 obj <>endobj 2086 0 obj <>endobj 2087 0 obj <>endobj 2088 0 obj <>endobj 2089 0 obj <>endobj 2090 0 obj <>endobj 2091 0 obj <>endobj 2092 0 obj <>endobj 2093 0 obj <>endobj 2094 0 obj <>endobj 2095 0 obj <>endobj 2096 0 obj <>endobj 2097 0 obj <>endobj 2098 0 obj <>endobj 2099 0 obj <>endobj 2100 0 obj <>endobj 2101 0 obj <>endobj 2102 0 obj <>endobj 2103 0 obj <>endobj 2104 0 obj <>endobj 2105 0 obj <>endobj 2106 0 obj <>endobj 2107 0 obj <>endobj 2108 0 obj <>endobj 2109 0 obj <>endobj 2110 0 obj <>endobj 2111 0 obj <>endobj 2112 0 obj <>endobj 2113 0 obj <>endobj 2114 0 obj <>endobj 2115 0 obj <>endobj 2116 0 obj <>endobj 2117 0 obj <>endobj 2118 0 obj <>endobj 2119 0 obj <>endobj 2120 0 obj <>endobj 2121 0 obj <>endobj 2122 0 obj <>endobj 2123 0 obj <>endobj 2124 0 obj <>endobj 2125 0 obj <>endobj 2126 0 obj <>endobj 2127 0 obj <>endobj 2128 0 obj <>endobj 2129 0 obj <>endobj 2130 0 obj <>endobj 2131 0 obj <>endobj 2132 0 obj <>endobj 2133 0 obj <>endobj 2134 0 obj <>endobj 2135 0 obj <>endobj 2136 0 obj <>endobj 2137 0 obj <>endobj 2138 0 obj <>endobj 2139 0 obj <>endobj 2140 0 obj <>endobj 2141 0 obj <>endobj 2142 0 obj <>endobj 2143 0 obj <>endobj 2144 0 obj <>endobj 2145 0 obj <>endobj 2146 0 obj <>endobj 2147 0 obj <>endobj 2148 0 obj <>endobj 2149 0 obj <>endobj 2150 0 obj <>endobj 2151 0 obj <>endobj 2152 0 obj <>endobj 2153 0 obj <>endobj 2154 0 obj <>endobj 2155 0 obj <>endobj 2156 0 obj <>endobj 2157 0 obj <>endobj 2158 0 obj <>endobj 2159 0 obj <>endobj 2160 0 obj <>endobj 2161 0 obj <>endobj 2162 0 obj <>endobj 2163 0 obj <>endobj 2164 0 obj <>endobj 2165 0 obj <>endobj 2166 0 obj <>endobj 2167 0 obj <>endobj 2168 0 obj <>endobj 2169 0 obj <>endobj 2170 0 obj <>endobj 2171 0 obj <>endobj 2172 0 obj <>endobj 2173 0 obj <>endobj 2174 0 obj <>endobj 2175 0 obj <>endobj 2176 0 obj <>endobj 2177 0 obj <>endobj 2178 0 obj <>endobj 2179 0 obj <>endobj 2180 0 obj <>endobj 2181 0 obj <>endobj 2182 0 obj <>endobj 2183 0 obj <>endobj 2184 0 obj <>endobj 2185 0 obj <>endobj 2186 0 obj <>endobj 2187 0 obj <>endobj 2188 0 obj <>endobj 2189 0 obj <> endobj 2190 0 obj <> endobj 2193 0 obj <>endobj 2194 0 obj <>endobj 2195 0 obj <>endobj 2196 0 obj <>endobj 2197 0 obj <>endobj 2198 0 obj <>endobj 2199 0 obj <>endobj 2200 0 obj <>endobj 2201 0 obj <>endobj 2202 0 obj <>endobj 2203 0 obj <>endobj 2204 0 obj <>endobj 2205 0 obj <>endobj 2206 0 obj <>endobj 2207 0 obj <>endobj 2208 0 obj <>endobj 2209 0 obj <>endobj 2210 0 obj <>endobj 2211 0 obj <>endobj 2212 0 obj <>endobj 2213 0 obj <>endobj 2214 0 obj <>endobj 2215 0 obj <>endobj 2216 0 obj <>endobj 2217 0 obj <>endobj 2218 0 obj <>endobj 2219 0 obj <>endobj 2220 0 obj <>endobj 2221 0 obj <>endobj 2222 0 obj <>endobj 2223 0 obj <>endobj 2224 0 obj <>endobj 2225 0 obj <>endobj 2226 0 obj <>endobj 2227 0 obj <>endobj 2228 0 obj <>endobj 2229 0 obj <>endobj 2230 0 obj <>endobj 2231 0 obj <>endobj 2232 0 obj <>endobj 2233 0 obj <>endobj 2234 0 obj <>endobj 2235 0 obj <>endobj 2236 0 obj <>endobj 2237 0 obj <>endobj 2238 0 obj <>endobj 2239 0 obj <>endobj 2240 0 obj <>endobj 2241 0 obj <>endobj 2242 0 obj <>endobj 2243 0 obj <>endobj 2244 0 obj <>endobj 2245 0 obj <>endobj 2246 0 obj <>endobj 2247 0 obj <>endobj 2248 0 obj <>endobj 2249 0 obj <>endobj 2250 0 obj <>endobj 2251 0 obj <>endobj 2252 0 obj <>endobj 2253 0 obj <>endobj 2254 0 obj <>endobj 2255 0 obj <>endobj 2256 0 obj <>endobj 2257 0 obj <>endobj 2258 0 obj <>endobj 2259 0 obj <>endobj 2260 0 obj <>endobj 2261 0 obj <>endobj 2262 0 obj <>endobj 2263 0 obj <>endobj 2264 0 obj <>endobj 2265 0 obj <>endobj 2266 0 obj <>endobj 2267 0 obj <>endobj 2268 0 obj <>endobj 2269 0 obj <>endobj 2270 0 obj <>endobj 2271 0 obj <>endobj 2272 0 obj <>endobj 2273 0 obj <>endobj 2274 0 obj <>endobj 2275 0 obj <>endobj 2276 0 obj <>endobj 2277 0 obj <>endobj 2278 0 obj <>endobj 2279 0 obj <>endobj 2280 0 obj <>endobj 2281 0 obj <>endobj 2282 0 obj <>endobj 2283 0 obj <>endobj 2284 0 obj <>endobj 2285 0 obj <>endobj 2286 0 obj <>endobj 2287 0 obj <>endobj 2288 0 obj <>endobj 2289 0 obj <>endobj 2290 0 obj <>endobj 2291 0 obj <>endobj 2292 0 obj <>endobj 2293 0 obj <>endobj 2294 0 obj <>endobj 2295 0 obj <>endobj 2296 0 obj <>endobj 2297 0 obj <>endobj 2298 0 obj <>endobj 2299 0 obj <>endobj 2300 0 obj <>endobj 2301 0 obj <>endobj 2302 0 obj <>endobj 2303 0 obj <>endobj 2304 0 obj <>endobj 2305 0 obj <>endobj 2306 0 obj <>endobj 2307 0 obj <>endobj 2308 0 obj <>endobj 2309 0 obj <>endobj 2310 0 obj <>endobj 2311 0 obj <>endobj 2312 0 obj <>endobj 2313 0 obj <>endobj 2314 0 obj <>endobj 2315 0 obj <>endobj 2316 0 obj <>endobj 2317 0 obj <>endobj 2318 0 obj <>endobj 2319 0 obj <>endobj 2320 0 obj <>endobj 2321 0 obj <>endobj 2322 0 obj <>endobj 2323 0 obj <>endobj 2324 0 obj <>endobj 2325 0 obj <>endobj 2326 0 obj <>endobj 2327 0 obj <>endobj 2328 0 obj <>endobj 2329 0 obj <>endobj 2330 0 obj <> endobj 2331 0 obj <> endobj 2334 0 obj <>endobj 2335 0 obj <>endobj 2336 0 obj <>endobj 2337 0 obj <>endobj 2338 0 obj <>endobj 2339 0 obj <>endobj 2340 0 obj <>endobj 2341 0 obj <>endobj 2342 0 obj <>endobj 2343 0 obj <>endobj 2344 0 obj <>endobj 2345 0 obj <>endobj 2346 0 obj <>endobj 2347 0 obj <>endobj 2348 0 obj <>endobj 2349 0 obj <>endobj 2350 0 obj <>endobj 2351 0 obj <>endobj 2352 0 obj <>endobj 2353 0 obj <>endobj 2354 0 obj <>endobj 2355 0 obj <>endobj 2356 0 obj <>endobj 2357 0 obj <>endobj 2358 0 obj <>endobj 2359 0 obj <>endobj 2360 0 obj <>endobj 2361 0 obj <>endobj 2362 0 obj <>endobj 2363 0 obj <>endobj 2364 0 obj <>endobj 2365 0 obj <>endobj 2366 0 obj <>endobj 2367 0 obj <>endobj 2368 0 obj <>endobj 2369 0 obj <>endobj 2370 0 obj <>endobj 2371 0 obj <>endobj 2372 0 obj <>endobj 2373 0 obj <>endobj 2374 0 obj <>endobj 2375 0 obj <>endobj 2376 0 obj <>endobj 2377 0 obj <>endobj 2378 0 obj <>endobj 2379 0 obj <>endobj 2380 0 obj <>endobj 2381 0 obj <>endobj 2382 0 obj <>endobj 2383 0 obj <>endobj 2384 0 obj <>endobj 2385 0 obj <>endobj 2386 0 obj <>endobj 2387 0 obj <>endobj 2388 0 obj <>endobj 2389 0 obj <>endobj 2390 0 obj <>endobj 2391 0 obj <>endobj 2392 0 obj <>endobj 2393 0 obj <>endobj 2394 0 obj <>endobj 2395 0 obj <>endobj 2396 0 obj <>endobj 2397 0 obj <>endobj 2398 0 obj <>endobj 2399 0 obj <>endobj 2400 0 obj <>endobj 2401 0 obj <>endobj 2402 0 obj <>endobj 2403 0 obj <>endobj 2404 0 obj <>endobj 2405 0 obj <>endobj 2406 0 obj <>endobj 2407 0 obj <>endobj 2408 0 obj <>endobj 2409 0 obj <>endobj 2410 0 obj <>endobj 2411 0 obj <>endobj 2412 0 obj <>endobj 2413 0 obj <>endobj 2414 0 obj <>endobj 2415 0 obj <>endobj 2416 0 obj <>endobj 2417 0 obj <>endobj 2418 0 obj <>endobj 2419 0 obj <>endobj 2420 0 obj <>endobj 2421 0 obj <>endobj 2422 0 obj <>endobj 2423 0 obj <>endobj 2424 0 obj <>endobj 2425 0 obj <>endobj 2426 0 obj <>endobj 2427 0 obj <>endobj 2428 0 obj <>endobj 2429 0 obj <>endobj 2430 0 obj <>endobj 2431 0 obj <>endobj 2432 0 obj <>endobj 2433 0 obj <>endobj 2434 0 obj <>endobj 2435 0 obj <>endobj 2436 0 obj <>endobj 2437 0 obj <>endobj 2438 0 obj <>endobj 2439 0 obj <>endobj 2440 0 obj <>endobj 2441 0 obj <>endobj 2442 0 obj <>endobj 2443 0 obj <>endobj 2444 0 obj <>endobj 2445 0 obj <>endobj 2446 0 obj <>endobj 2447 0 obj <>endobj 2448 0 obj <>endobj 2449 0 obj <>endobj 2450 0 obj <>endobj 2451 0 obj <>endobj 2452 0 obj <>endobj 2453 0 obj <>endobj 2454 0 obj <>endobj 2455 0 obj <>endobj 2456 0 obj <>endobj 2457 0 obj <>endobj 2458 0 obj <>endobj 2459 0 obj <>endobj 2460 0 obj <>endobj 2461 0 obj <>endobj 2462 0 obj <>endobj 2463 0 obj <>endobj 2464 0 obj <>endobj 2465 0 obj <>endobj 2466 0 obj <>endobj 2467 0 obj <>endobj 2468 0 obj <> endobj 2469 0 obj <> endobj 2472 0 obj <>endobj 2473 0 obj <>endobj 2474 0 obj <>endobj 2475 0 obj <>endobj 2476 0 obj <>endobj 2477 0 obj <>endobj 2478 0 obj <>endobj 2479 0 obj <>endobj 2480 0 obj <>endobj 2481 0 obj <>endobj 2482 0 obj <>endobj 2483 0 obj <>endobj 2484 0 obj <>endobj 2485 0 obj <>endobj 2486 0 obj <>endobj 2487 0 obj <>endobj 2488 0 obj <>endobj 2489 0 obj <>endobj 2490 0 obj <>endobj 2491 0 obj <>endobj 2492 0 obj <>endobj 2493 0 obj <>endobj 2494 0 obj <>endobj 2495 0 obj <>endobj 2496 0 obj <>endobj 2497 0 obj <>endobj 2498 0 obj <>endobj 2499 0 obj <>endobj 2500 0 obj <>endobj 2501 0 obj <>endobj 2502 0 obj <>endobj 2503 0 obj <>endobj 2504 0 obj <>endobj 2505 0 obj <>endobj 2506 0 obj <>endobj 2507 0 obj <>endobj 2508 0 obj <>endobj 2509 0 obj <>endobj 2510 0 obj <>endobj 2511 0 obj <>endobj 2512 0 obj <>endobj 2513 0 obj <>endobj 2514 0 obj <>endobj 2515 0 obj <>endobj 2516 0 obj <>endobj 2517 0 obj <>endobj 2518 0 obj <>endobj 2519 0 obj <>endobj 2520 0 obj <>endobj 2521 0 obj <>endobj 2522 0 obj <>endobj 2523 0 obj <>endobj 2524 0 obj <>endobj 2525 0 obj <>endobj 2526 0 obj <>endobj 2527 0 obj <>endobj 2528 0 obj <>endobj 2529 0 obj <>endobj 2530 0 obj <>endobj 2531 0 obj <>endobj 2532 0 obj <>endobj 2533 0 obj <>endobj 2534 0 obj <>endobj 2535 0 obj <>endobj 2536 0 obj <>endobj 2537 0 obj <>endobj 2538 0 obj <>endobj 2539 0 obj <>endobj 2540 0 obj <>endobj 2541 0 obj <>endobj 2542 0 obj <>endobj 2543 0 obj <>endobj 2544 0 obj <>endobj 2545 0 obj <>endobj 2546 0 obj <>endobj 2547 0 obj <>endobj 2548 0 obj <>endobj 2549 0 obj <>endobj 2550 0 obj <>endobj 2551 0 obj <>endobj 2552 0 obj <>endobj 2553 0 obj <>endobj 2554 0 obj <>endobj 2555 0 obj <>endobj 2556 0 obj <>endobj 2557 0 obj <>endobj 2558 0 obj <>endobj 2559 0 obj <>endobj 2560 0 obj <>endobj 2561 0 obj <>endobj 2562 0 obj <>endobj 2563 0 obj <>endobj 2564 0 obj <>endobj 2565 0 obj <>endobj 2566 0 obj <>endobj 2567 0 obj <>endobj 2568 0 obj <>endobj 2569 0 obj <>endobj 2570 0 obj <>endobj 2571 0 obj <>endobj 2572 0 obj <>endobj 2573 0 obj <>endobj 2574 0 obj <>endobj 2575 0 obj <>endobj 2576 0 obj <>endobj 2577 0 obj <>endobj 2578 0 obj <>endobj 2579 0 obj <>endobj 2580 0 obj <>endobj 2581 0 obj <>endobj 2582 0 obj <>endobj 2583 0 obj <>endobj 2584 0 obj <>endobj 2585 0 obj <>endobj 2586 0 obj <>endobj 2587 0 obj <>endobj 2588 0 obj <>endobj 2589 0 obj <>endobj 2590 0 obj <>endobj 2591 0 obj <>endobj 2592 0 obj <>endobj 2593 0 obj <>endobj 2594 0 obj <>endobj 2595 0 obj <>endobj 2596 0 obj <>endobj 2597 0 obj <>endobj 2598 0 obj <>endobj 2599 0 obj <>endobj 2600 0 obj <>endobj 2601 0 obj <>endobj 2602 0 obj <>endobj 2603 0 obj <>endobj 2604 0 obj <>endobj 2605 0 obj <>endobj 2606 0 obj <>endobj 2607 0 obj <>endobj 2608 0 obj <>endobj 2609 0 obj <>endobj 2610 0 obj <>endobj 2611 0 obj <>endobj 2612 0 obj <>endobj 2613 0 obj <>endobj 2614 0 obj <>endobj 2615 0 obj <>endobj 2616 0 obj <>endobj 2617 0 obj <>endobj 2618 0 obj <>endobj 2619 0 obj <> endobj 2620 0 obj <> endobj 2623 0 obj <>endobj 2624 0 obj <>endobj 2625 0 obj <>endobj 2626 0 obj <>endobj 2627 0 obj <>endobj 2628 0 obj <>endobj 2629 0 obj <>endobj 2630 0 obj <>endobj 2631 0 obj <>endobj 2632 0 obj <>endobj 2633 0 obj <>endobj 2634 0 obj <>endobj 2635 0 obj <>endobj 2636 0 obj <>endobj 2637 0 obj <>endobj 2638 0 obj <>endobj 2639 0 obj <>endobj 2640 0 obj <>endobj 2641 0 obj <>endobj 2642 0 obj <>endobj 2643 0 obj <>endobj 2644 0 obj <>endobj 2645 0 obj <>endobj 2646 0 obj <>endobj 2647 0 obj <>endobj 2648 0 obj <>endobj 2649 0 obj <>endobj 2650 0 obj <>endobj 2651 0 obj <>endobj 2652 0 obj <>endobj 2653 0 obj <>endobj 2654 0 obj <>endobj 2655 0 obj <>endobj 2656 0 obj <>endobj 2657 0 obj <>endobj 2658 0 obj <>endobj 2659 0 obj <>endobj 2660 0 obj <>endobj 2661 0 obj <>endobj 2662 0 obj <>endobj 2663 0 obj <>endobj 2664 0 obj <>endobj 2665 0 obj <>endobj 2666 0 obj <>endobj 2667 0 obj <>endobj 2668 0 obj <>endobj 2669 0 obj <>endobj 2670 0 obj <>endobj 2671 0 obj <>endobj 2672 0 obj <>endobj 2673 0 obj <>endobj 2674 0 obj <>endobj 2675 0 obj <>endobj 2676 0 obj <>endobj 2677 0 obj <>endobj 2678 0 obj <>endobj 2679 0 obj <>endobj 2680 0 obj <>endobj 2681 0 obj <>endobj 2682 0 obj <>endobj 2683 0 obj <>endobj 2684 0 obj <>endobj 2685 0 obj <>endobj 2686 0 obj <>endobj 2687 0 obj <>endobj 2688 0 obj <>endobj 2689 0 obj <>endobj 2690 0 obj <>endobj 2691 0 obj <>endobj 2692 0 obj <>endobj 2693 0 obj <>endobj 2694 0 obj <>endobj 2695 0 obj <>endobj 2696 0 obj <>endobj 2697 0 obj <>endobj 2698 0 obj <>endobj 2699 0 obj <>endobj 2700 0 obj <>endobj 2701 0 obj <>endobj 2702 0 obj <>endobj 2703 0 obj <>endobj 2704 0 obj <>endobj 2705 0 obj <>endobj 2706 0 obj <>endobj 2707 0 obj <>endobj 2708 0 obj <>endobj 2709 0 obj <>endobj 2710 0 obj <>endobj 2711 0 obj <>endobj 2712 0 obj <>endobj 2713 0 obj <>endobj 2714 0 obj <>endobj 2715 0 obj <>endobj 2716 0 obj <>endobj 2717 0 obj <>endobj 2718 0 obj <>endobj 2719 0 obj <>endobj 2720 0 obj <>endobj 2721 0 obj <>endobj 2722 0 obj <>endobj 2723 0 obj <>endobj 2724 0 obj <>endobj 2725 0 obj <>endobj 2726 0 obj <>endobj 2727 0 obj <>endobj 2728 0 obj <>endobj 2729 0 obj <>endobj 2730 0 obj <>endobj 2731 0 obj <>endobj 2732 0 obj <>endobj 2733 0 obj <>endobj 2734 0 obj <>endobj 2735 0 obj <>endobj 2736 0 obj <>endobj 2737 0 obj <>endobj 2738 0 obj <>endobj 2739 0 obj <>endobj 2740 0 obj <>endobj 2741 0 obj <>endobj 2742 0 obj <>endobj 2743 0 obj <>endobj 2744 0 obj <>endobj 2745 0 obj <>endobj 2746 0 obj <>endobj 2747 0 obj <>endobj 2748 0 obj <>endobj 2749 0 obj <>endobj 2750 0 obj <>endobj 2751 0 obj <>endobj 2752 0 obj <>endobj 2753 0 obj <>endobj 2754 0 obj <>endobj 2755 0 obj <>endobj 2756 0 obj <>endobj 2757 0 obj <>endobj 2758 0 obj <>endobj 2759 0 obj <>endobj 2760 0 obj <>endobj 2761 0 obj <>endobj 2762 0 obj <>endobj 2763 0 obj <>endobj 2764 0 obj <>endobj 2765 0 obj <>endobj 2766 0 obj <>endobj 2767 0 obj <>endobj 2768 0 obj <>endobj 2769 0 obj <>endobj 2770 0 obj <>endobj 2771 0 obj <>endobj 2772 0 obj <>endobj 2773 0 obj <>endobj 2774 0 obj <> endobj 2775 0 obj <> endobj 2778 0 obj <>endobj 2779 0 obj <>endobj 2780 0 obj <>endobj 2781 0 obj <>endobj 2782 0 obj <>endobj 2783 0 obj <>endobj 2784 0 obj <>endobj 2785 0 obj <>endobj 2786 0 obj <>endobj 2787 0 obj <>endobj 2788 0 obj <>endobj 2789 0 obj <>endobj 2790 0 obj <>endobj 2791 0 obj <>endobj 2792 0 obj <>endobj 2793 0 obj <>endobj 2794 0 obj <>endobj 2795 0 obj <>endobj 2796 0 obj <>endobj 2797 0 obj <>endobj 2798 0 obj <>endobj 2799 0 obj <>endobj 2800 0 obj <>endobj 2801 0 obj <>endobj 2802 0 obj <>endobj 2803 0 obj <>endobj 2804 0 obj <>endobj 2805 0 obj <>endobj 2806 0 obj <>endobj 2807 0 obj <>endobj 2808 0 obj <>endobj 2809 0 obj <>endobj 2810 0 obj <>endobj 2811 0 obj <>endobj 2812 0 obj <>endobj 2813 0 obj <>endobj 2814 0 obj <>endobj 2815 0 obj <>endobj 2816 0 obj <>endobj 2817 0 obj <>endobj 2818 0 obj <>endobj 2819 0 obj <>endobj 2820 0 obj <>endobj 2821 0 obj <>endobj 2822 0 obj <>endobj 2823 0 obj <>endobj 2824 0 obj <>endobj 2825 0 obj <>endobj 2826 0 obj <>endobj 2827 0 obj <>endobj 2828 0 obj <>endobj 2829 0 obj <>endobj 2830 0 obj <>endobj 2831 0 obj <>endobj 2832 0 obj <>endobj 2833 0 obj <>endobj 2834 0 obj <>endobj 2835 0 obj <>endobj 2836 0 obj <>endobj 2837 0 obj <>endobj 2838 0 obj <>endobj 2839 0 obj <>endobj 2840 0 obj <>endobj 2841 0 obj <>endobj 2842 0 obj <>endobj 2843 0 obj <>endobj 2844 0 obj <>endobj 2845 0 obj <>endobj 2846 0 obj <>endobj 2847 0 obj <>endobj 2848 0 obj <>endobj 2849 0 obj <>endobj 2850 0 obj <>endobj 2851 0 obj <>endobj 2852 0 obj <>endobj 2853 0 obj <>endobj 2854 0 obj <>endobj 2855 0 obj <>endobj 2856 0 obj <>endobj 2857 0 obj <>endobj 2858 0 obj <>endobj 2859 0 obj <>endobj 2860 0 obj <>endobj 2861 0 obj <>endobj 2862 0 obj <>endobj 2863 0 obj <>endobj 2864 0 obj <>endobj 2865 0 obj <>endobj 2866 0 obj <>endobj 2867 0 obj <>endobj 2868 0 obj <>endobj 2869 0 obj <>endobj 2870 0 obj <>endobj 2871 0 obj <>endobj 2872 0 obj <>endobj 2873 0 obj <>endobj 2874 0 obj <>endobj 2875 0 obj <>endobj 2876 0 obj <>endobj 2877 0 obj <>endobj 2878 0 obj <>endobj 2879 0 obj <>endobj 2880 0 obj <>endobj 2881 0 obj <>endobj 2882 0 obj <>endobj 2883 0 obj <>endobj 2884 0 obj <>endobj 2885 0 obj <>endobj 2886 0 obj <>endobj 2887 0 obj <>endobj 2888 0 obj <>endobj 2889 0 obj <>endobj 2890 0 obj <>endobj 2891 0 obj <>endobj 2892 0 obj <>endobj 2893 0 obj <>endobj 2894 0 obj <>endobj 2895 0 obj <>endobj 2896 0 obj <>endobj 2897 0 obj <>endobj 2898 0 obj <>endobj 2899 0 obj <>endobj 2900 0 obj <>endobj 2901 0 obj <>endobj 2902 0 obj <>endobj 2903 0 obj <>endobj 2904 0 obj <>endobj 2905 0 obj <>endobj 2906 0 obj <>endobj 2907 0 obj <>endobj 2908 0 obj <>endobj 2909 0 obj <>endobj 2910 0 obj <>endobj 2911 0 obj <>endobj 2912 0 obj <>endobj 2913 0 obj <>endobj 2914 0 obj <>endobj 2915 0 obj <>endobj 2916 0 obj <>endobj 2917 0 obj <>endobj 2918 0 obj <>endobj 2919 0 obj <>endobj 2920 0 obj <>endobj 2921 0 obj <>endobj 2922 0 obj <>endobj 2923 0 obj <>endobj 2924 0 obj <>endobj 2925 0 obj <>endobj 2926 0 obj <>endobj 2927 0 obj <>endobj 2928 0 obj <>endobj 2929 0 obj <>endobj 2930 0 obj <>endobj 2931 0 obj <>endobj 2932 0 obj <>endobj 2933 0 obj <>endobj 2934 0 obj <>endobj 2935 0 obj <>endobj 2936 0 obj <>endobj 2937 0 obj <> endobj 2938 0 obj <> endobj 2941 0 obj <>endobj 2942 0 obj <>endobj 2943 0 obj <>endobj 2944 0 obj <>endobj 2945 0 obj <>endobj 2946 0 obj <>endobj 2947 0 obj <>endobj 2948 0 obj <>endobj 2949 0 obj <>endobj 2950 0 obj <>endobj 2951 0 obj <>endobj 2952 0 obj <>endobj 2953 0 obj <>endobj 2954 0 obj <>endobj 2955 0 obj <>endobj 2956 0 obj <>endobj 2957 0 obj <>endobj 2958 0 obj <>endobj 2959 0 obj <>endobj 2960 0 obj <>endobj 2961 0 obj <>endobj 2962 0 obj <>endobj 2963 0 obj <>endobj 2964 0 obj <>endobj 2965 0 obj <>endobj 2966 0 obj <>endobj 2967 0 obj <>endobj 2968 0 obj <>endobj 2969 0 obj <>endobj 2970 0 obj <>endobj 2971 0 obj <>endobj 2972 0 obj <>endobj 2973 0 obj <>endobj 2974 0 obj <>endobj 2975 0 obj <>endobj 2976 0 obj <>endobj 2977 0 obj <>endobj 2978 0 obj <>endobj 2979 0 obj <>endobj 2980 0 obj <>endobj 2981 0 obj <>endobj 2982 0 obj <>endobj 2983 0 obj <>endobj 2984 0 obj <>endobj 2985 0 obj <>endobj 2986 0 obj <>endobj 2987 0 obj <>endobj 2988 0 obj <>endobj 2989 0 obj <>endobj 2990 0 obj <>endobj 2991 0 obj <>endobj 2992 0 obj <>endobj 2993 0 obj <>endobj 2994 0 obj <>endobj 2995 0 obj <>endobj 2996 0 obj <>endobj 2997 0 obj <>endobj 2998 0 obj <>endobj 2999 0 obj <>endobj 3000 0 obj <>endobj 3001 0 obj <>endobj 3002 0 obj <>endobj 3003 0 obj <>endobj 3004 0 obj <>endobj 3005 0 obj <>endobj 3006 0 obj <>endobj 3007 0 obj <>endobj 3008 0 obj <>endobj 3009 0 obj <>endobj 3010 0 obj <>endobj 3011 0 obj <>endobj 3012 0 obj <>endobj 3013 0 obj <>endobj 3014 0 obj <>endobj 3015 0 obj <>endobj 3016 0 obj <>endobj 3017 0 obj <>endobj 3018 0 obj <>endobj 3019 0 obj <>endobj 3020 0 obj <>endobj 3021 0 obj <>endobj 3022 0 obj <>endobj 3023 0 obj <>endobj 3024 0 obj <>endobj 3025 0 obj <>endobj 3026 0 obj <>endobj 3027 0 obj <>endobj 3028 0 obj <>endobj 3029 0 obj <>endobj 3030 0 obj <>endobj 3031 0 obj <>endobj 3032 0 obj <>endobj 3033 0 obj <>endobj 3034 0 obj <>endobj 3035 0 obj <>endobj 3036 0 obj <>endobj 3037 0 obj <>endobj 3038 0 obj <>endobj 3039 0 obj <>endobj 3040 0 obj <>endobj 3041 0 obj <>endobj 3042 0 obj <>endobj 3043 0 obj <>endobj 3044 0 obj <>endobj 3045 0 obj <>endobj 3046 0 obj <>endobj 3047 0 obj <>endobj 3048 0 obj <>endobj 3049 0 obj <>endobj 3050 0 obj <>endobj 3051 0 obj <>endobj 3052 0 obj <>endobj 3053 0 obj <>endobj 3054 0 obj <>endobj 3055 0 obj <>endobj 3056 0 obj <>endobj 3057 0 obj <>endobj 3058 0 obj <>endobj 3059 0 obj <>endobj 3060 0 obj <>endobj 3061 0 obj <>endobj 3062 0 obj <>endobj 3063 0 obj <>endobj 3064 0 obj <>endobj 3065 0 obj <>endobj 3066 0 obj <>endobj 3067 0 obj <>endobj 3068 0 obj <>endobj 3069 0 obj <>endobj 3070 0 obj <>endobj 3071 0 obj <>endobj 3072 0 obj <>endobj 3073 0 obj <>endobj 3074 0 obj <>endobj 3075 0 obj <>endobj 3076 0 obj <>endobj 3077 0 obj <>endobj 3078 0 obj <>endobj 3079 0 obj <>endobj 3080 0 obj <>endobj 3081 0 obj <> endobj 3082 0 obj <> endobj 3085 0 obj <>endobj 3086 0 obj <>endobj 3087 0 obj <>endobj 3088 0 obj <>endobj 3089 0 obj <> endobj 3090 0 obj <> endobj 714 0 obj <> endobj 3105 0 obj <> endobj 1686 0 obj <> endobj 3106 0 obj <> endobj 3107 0 obj <>stream xœ]O1ƒ0 Üó ÿ „Jí‚XèÂЪjûà8(NÂÐß—èÐá,ïN>Ë®¿öìÈGôø¢Ö±‰4û%"Á@£c¡j0ÓÎÊÄI!»›ïO X d7~×ÉçIU—²S[ ½¡9h¤¨y$ÑTUÛXÛ bó'íÁîÎzh7œÿ¡ähnq\b$N¥j©’ 8¦ß7Á‡œ‚â —éSï endstream endobj 722 0 obj <> endobj 3108 0 obj <> endobj 733 0 obj <> endobj 3109 0 obj <> endobj 938 0 obj <> endobj 3110 0 obj <> endobj 3111 0 obj <>stream xœ]‘=nÃ0 …wŸB7°ä)-é’¡EÑöú¡ ‘Åzû’TÒ¡Ã3ü™ï$=žÎ¯ç’w1~´-|Á.R.±Ám»·ÂÃ%—AM"æ°?ˆŸáêê0žÞ\ýþ© Щó»»Âø9+¥ø›ê©°E¸U ¹rá(¥=¦d(ñ_I-=áÓÃ:-¶k Ú"®¶KëDhðõÀgeYrŠÄ,KÊ) ®Ø†$Ʊ²ru™5ÎDÂ,™µ³,)g2koYˆ ¢™- ‘¦2ØÕôÎ ñG )04•G£ïæ•w~.GëÓ%Ÿ‡áÞ”ÏÍç¤#æ¤n•R5üý endstream endobj 795 0 obj <> endobj 3112 0 obj <> endobj 693 0 obj <> endobj 3113 0 obj <> endobj 813 0 obj <> endobj 678 0 obj <> endobj 3114 0 obj <> endobj 691 0 obj <> endobj 3115 0 obj <> endobj 3116 0 obj <>stream xœ]“ÍnÛ0„ïz ½IêÇ& ð’\rhQ´yE:XdûзïÌ(é!‡ÏЈ»ä µ>½¼½¾­Ë£>ýÚoùOyÔó²N{¹ßž{.õX>–µò¡ž–üøTúÍWÛªÓËÛÞÿn¥FA™ýÓ®åô»ñ¾×;tåÛTî›å²ÛúQªÁ¹4ÌsªÊ:}[jÝÑ1Ο¥¥]›çñT ]Ÿ†óL‰§j¸`•„à$}ÁY¦ I¸à/”MÎ÷»&­vI¸Ï”8ˆ@jçssŸÊ däAru±$°U¤“ÀªzsÁù–rJR[H$šGç!#Òç#MF¤‰JÔ²ïD}G‰4±åjÃs#ìGE˜&JØ'(V/ì“Ðe£D‚×AHCPÌDiâ‘h¤D‚{V1ÒçFÞUDš¨Dz‘ˆ `¡D8s’ü(†4ÖHòÚ ö lЕÁ¾$aßô<ìó® ö >(oÒ`Ÿ WÁ>A>z6Ø7E +LÞ׈q9Ï_ã[çç¾—õ¡¡×Ps”—µüÿ_l·]5¨þCÙ2 endstream endobj 1639 0 obj <> endobj 3117 0 obj <> endobj 1397 0 obj <> endobj 1627 0 obj <> endobj 3118 0 obj <> endobj 3119 0 obj <>stream xœ]‘Mn! …÷œ‚Œ!i“HˆM²É¢UÕöü˜ˆED&‹Þ¾¶§©ª.žÅÇÃ2<¦ãùtnuÑÓÛ˜Ó.ºÔ–ÞæûH¨#^jSÆê\ÓòCRÓ5t5_Bÿüê¨é–•_ç÷1Ù3kWš3ÞzH8B» rÞ•â¶üÏ2OkG,ŽšâZ)g wH–q½È‚}fL^dÁl³n©U"Â`¼ VÜ=ãÁ‹¨*i ò ¸ó"déF,ré.“àJHZAvqëEÈ·B‚2ˆ*Gðx+§ÁÁ>rÔé>¶EÒ—t9ÓÚð÷ƒúܹK“Ô7Õè†j endstream endobj 685 0 obj <> endobj 3120 0 obj <> endobj 715 0 obj <> endobj 3091 0 obj <>stream xœ}X XSgº>9çT-Ub*qI¨­Šu¯¶j­KµÖÅ¥®ìaIHX„$„ÂÖ Ê&ˆ¢÷©Úq«ZgºL÷Ú:Óvj§ß¡?sïýŒsçÞ;Ï}xžÿãäûÞÿýÞïý" ÆŽ¡Áø½1ñ2Í‚õʸHþÏùÜ47} 7Ãc7ÿ-fh³ç jûÏgÑ4alãôiÞÜÆIpù90M¤<m©kƒR•¦Ž‰ŠNòõ{g÷þ¹óæÍÿïw–¬\¹Ò7<íé‰ï[2MLT‚ïlò"E§TÅË’Vùn Ñqq1¾QqiªhoXd¤,’ÿ·}aq²Xß·câbT*eН߆¹¾¯,^¼dùõꎘøðdïne|X‚ïåJßí¾þ²È˜äøÿ{@QÔº7Ö+7¨7ªßÖ$mNÞ’²55L¾=-Â?=r‡l§< *zwÌEì;qûâ÷¿æ»|ÅÊ×W¿|Ø´`á¢ÅK^YºìUŠšIí¤^¤¨—¨]Ônj6µ‡šCí¥Þ¡æRû¨—©ýÔ<굞:Hm P‡¨·¨…Ôaj#µˆz›ZLm¢–P›©-ÔRj+µŒÚFm§^£ü©åÔj5…P>”˜šJM£$Ôxê *žZCyQÏQ©I”7%¤&S"êyêMr_ÔX*Žú\#èóÒ˜V¡G¡Ç£±»ÇÞõœä™ïù˜žM›è?1‘ÌkcxfÝ37ÇÍW0î½ñoޝÿŸöM8ýì‚g{y=~nÍsNÜ4ñò¤¥“ä“ÞõVz ã…*aÍäÙ“L¾;ùGÑ Ñßž/y~àù»Ïÿ0ÅsJÄ”VŸç|,>·Åó9‹×¹aÝ Ð8aS0´Ñ-Ê£#QFýA‡5\£’Æêá~ÙBƒî°I¬†7PœT‰šPµÍ]Á~Â’éŽÕUQ(¥è³¢ós‘¾ 3ŸUÃCfØFÑw÷ÎóôâÎ#ç}3Êå}¤ éa?Dsa"¼GC÷™Ë³P‹–m 6±Èq1òƒu±àdPqYEE9+|ØØàªjœÖY«Ú#Ź ’ë3bòH°ÁÅDZ³ªÐ)Š™Ï÷]\¹3H —x -Bnu÷Û1µÛû ,ƒÅ°K`Ý¡Â1´B$´«™Ûyuè;¬eÐa}6+T¨á«aìðìמŒn•F‹±o´³Â8`;zO~8õç…—ñ*Éü¹è-Tü|î<æåðƒ¯‡¤×öI¹Â±ÇíÕ'$¸;m¡ f*”ø9‹Ô‹³d¶r«[n˜K`Žsñ",ô›‰§ã¿ ¦€èñ‹ï¼'X$-Œ]©Û‹Wà…©ûw¤¾ ³á­#ƒ×¤ä®´g†žiœ…C³`¾(À?VsH›`Pä(Ñ´½3a0á|æèG"nÀ˜0Л&ë•ôF6*:ײnЫèÌh£Q‹LHWœ\à:\y±ø0ž‹âPsðlˆ¸{µ¶ë¢´­¡ÁÙŽ%÷†ÃêS\Ó_äÆ]&÷÷€$úøMnú—û«àïo8ŸAáÙ¦ÃÅ5ÐÄõÌkºÝdáæL`“¾±0ö£'àÒußc€¨¤]qRá´¢ *+wTU;«;èÚ‰§à‰Ê€ÝŠ„Ænt$ —Æ ¯_àfµywD^ã´¾Y„ü³M[ ¬ð¬œ.&¨ÜTŽzXî[³zÏÞ¸šƒHŒŸ_4“Ô8ãÃy ètôœ”^›%W§Ä Ö?î}‚þ´¶;×{šcKGÓÊAÇc^›"Œæ¾&T¾O «ÿ[ögß$uF«¹O˜ˆôTÒq›S•Q Aò½k»M[Ý+…\èddfÙ&ø&‘Öa:2 S…,è˜îêòAX~6‹Ý7íÅþXâÊvzÊWvxlwièÞœJ=Šéð,cH6¡{‹ÙQl¨F×XØÅ ¶ô¶ÛÊÍ•’:•ÝÔ„Ø®¦–Ráâþ˜öÀƒ2Õæ@‰ÈÍýýŸ%pñ%Ý …]#%éÐþ)I ÃnfQqZºÈB&ó×ü.y Éß ß¨é4LGGÏA|ú€®êŠw¿½šÝ*iPWªj¶³.R…8³ƒ[Ñ.hþ$=àüQ³’™]N®å ¬¢ŒEeRq2boñ_¾ådÐO¡Ò[ñ-jËFÆ'o êÿ"E¢Ä+Ýte}iY9*A¶üмfÃyc b¿¹~í뻑½~§¤›Ž*ݨƒmoqw75S$õ©•iöÖ >7Ü…ßú€Ô®Àj5½ãÕˆà­{YÕ ~Èlí¸}³çØ''%êÊTYFf +µ=R¸ðã5TGÄð´º# Ë×<¸RRNgСôÌõ<:Ü̆òŒjt–åf眎[%¬?R3wrè ‹#pDŒœÜáO¾V37sŽèÈ ñ!~£‰<åk7³Þ–^Cžé ¡wæûqœÄåýþSqÔÂc½¨×î*~¿ìZ™O#RD.¼—…a¤aÎåUP(‹3Â~…"Ũœ®s¾+…oq€†9™m3ñbZÂ,=·ÿÓÁNǹ+„bä¢Ýð$5çc:˜–¹ÎL2ùÙͬ-ÑÖ Á‘zë÷­$ëŸÕ̹õ:Bv^¼œÜ&§€Kã902¿ÊŒ4Ș—aNÛ€·ú¼!æºüRT*FöŠ2wQ²Ú Y¶j˜FK©¥ÔTT80ÇðYŸ&–q¾u}6[«ULž=¯}(Ø-° í©Ü%ú Æþ€‡î5ó±Å™‰Þa‡Ï3þZu°*­ºÎf--¯’TÙ­6dg{b:#åŠYxKð‰$ISf©‡°Ó÷þ‡ð"/—£‰í矦¡»ò*³Q2èåqoè"³S 1Y'-U)÷So›[P9rT”t[IÚz s"¯° nK©Ög^«¹aª7×åÖˆ•wŒm¨š„ÙZŠI˜ZÃ4åç4o¿áq>.&Áõ¿âëž4,âf9ºl¶¦ñ?ÐkóvÍò ž3¦ââoˆ²²,KA.gšËR¨aþ´ö<öžk¬ w©Oö´¸:jrª ‰©ÂBÀeë[á£+MªÒõ u(U®'*Êî¾qù´óÜEIåíYÔ‹ZÝ'YáOxÿe‘*.Õ Al|JsÏ•S§>ªççrr+É•j]¢Œs±¹ûÖç'ð®ktV¶–ˆ]ø S^`+°¢Æ[Ò!]Vº26'G§Õ¥ä”å•ZŠcO%ö4ªjJÛÿq×My¥¹Îx˜Œú$ÈU Sæž7SÓåùD°V»˜¨¢Ì2dGö¦Sݧ‹¬e¶²òSÛ}Zd@†Ìœ8>,g¤Ú¸Y`“‹ïaXÎË(¢VxŸ†>m*7%~RÅüñÒéðãçÄžÀ\¬yŒ=ËÓ#åÒÝck{ŽvÄ^kÝL†ˆ$~ë¶0Uë™§Ò>D¹½áUP5ä ©¢Z±:5.:6\¾'m bwð²ÍÅ1èAMõÅ„‚U3·òŽüCô…%è€Þ¸ÞÄ ÔÜ’¬‡]æ>w 0ÞƒKú_í‘o2©7á½>À?õ]„MŒjªÊÝEŽBŸi +êŸ[FZãŒOÚ¾ôƒ‰±IHlʶ•¢¢B«´°¤°³G5ι*QÔ£¸Üq´ª¾^Rßèìéüær/øÔžª¨hµ’> ȼɉy“ñ‚·"yXbf8b—íý¦ÿÜv}ÐaÏ6–JKL$—°ÂCG’º{ªÉuâÚæ3Kñô9/à—°äk?˜øðRëý+R¯ßÞUŒ_Nq-°Ècèuîo¢áRíÉ4ŒèÆgnfuEV%ºËr;ôÝ~oÙÇá@.Ηªé{9=?]” Ú©7¬æõSïfV–jëÐ}–S0P2ügóÈôkãB®€e"%mŠÍNËH‰ QèW!6† nŽgÓ0ØñLÏ&Úý}“| °~ØÏGÍ GHs)¹‘w‰Ð†4š¡ QP|«®v—\+»f# dÕW‡È}€c5ÌÍÜr3 bñ6&ôt¼#ˆ¸ 1+}ñ,©°OÿÐï—óíŽsËïD('+Ý OMJ1’™µOý;‚¨ùê•öV¬†W˜4g>’÷“>nC¯Úéí‚NØ¿KÉÍÚ$Â2â”üp$Ž npDŸ9ÑÅsa’(D0æ~–„„ùã1˜ÁŒ?ñšÁwˆø3R2ƒ‰“™Ñ‡[wɾ˽*Ÿ3(ÔhÊ%MÞêb6ªÐû,Üü¢ox1í G*͆<‹9'KbÒåQפéèr»»®œ\¾y¿&D%IŽ6‡£WÙÝ!ô¨¡î$†æG2¦_çý°Ã%L+ì°öù¸µï=ôvþï‰SÇha?™Ï95h#;LØê¯O ̱ ¬|#¿©|áfÞ¨ ®ñ+<ÀeŽm¬­jÿ´=SÛ ²Ä$‰&Ua~ ñc‡· ŸðE3Ä7µz·|ù̘&ÿã¡7Å¥p3EçñóŒð{Ê¢,˜†Ç/ß2?¦ZѨ”6hêô©o¨"dh? ?’v#‰þٸݤP‡OÝõ ¼áõ/xèz–d+½*µ¬åXKC´¿`¹K;œbᪿ©ñäù©¨ÇpLÙ®Þ'Þ3^hJWíMô[ÔØW_VÙÒ(Σ¾âL¢:ÙÂ…Ú¨ÀÃiÇ}W×5 }º~ñºz{Ôbx@$OÕ½¼®–e£pv¸ìÿݾÉê…Ø·{EYõv~÷*Ù½öÉSwí—Œ,–£¦hrIÛ`íáá·( éK³ªqtû\­sW·¸6;zP? Œßu¼íémÝÏ­Ñ¡ #·µ>+k5ß?ßüSqà@3ø÷žF  oãþ,B¥Åvkii…£ÄØo»BgnÓEƦHÓcÌk ˆ1l±×`‘÷ï`Ysˆ@<‚H^² }üd õØæì #)+ÛÅD—jP7¢¹_E¡ÑÑaÁ튾¾Žö¾Þ˜ÎPRÒ>S[µNï>â]r`üá NË)EϘ³³ÓÉže´&ÛÈÞêŒ-•MÃÓW¬ÁÞK·ÃøÝÒ›±_†¹Ñ~ñÛ‡‚×ì:è>+“¨º2ÛÓï° ¥Kݶr²¡JKƒù\z—¹—ø¿?ïA¶µIñœ{¯÷$»ÑñµSÝ·úOiåÇ%ÑŽçVÞãVîo#ÅEª9Zm5_m°†~wÔ=iÚ§KRhõe%Ö²Ò I…£¸U°ÇT®X¹Zp%ü“Ûç›Ï¶HêÚlÝè*bÝÐFQh ¢MÑßÛÙÑÛ= r ±.ÁB*®‚ÿE]™_Q`-pY*ÍHLYiF#žŒ'ûpðN Óa©IG²ÆEêÒ–Q¼ËrKÑ 4ÓèúO­U—P¶˜wÊ¡w1F”k5Uá}Pïóã/MG®ÛX~'>;$p þKáAŸÇw]„®Ö8nð‚ªR3Èq¦¢õ¼ b¿=oãñ³‚¯Ât |Á žÒ{M)úL ý†„¹JO(‡ÉÙÜúCï…œ‰¾‘vÝGwz»ú»›>DFyÄ×z“o p¾vkèN‹# ÉGÊ‘§§Æü£EaFÙDG†ÄÐLbCwñá1jún®ÝŒbQ†ÅŠ…øLòÑöçU!»5Ú+»‹JPu¡½dõ•š9g.Ïvï…òáÇ>Í4h¹?¹®ÕT–‰½†î?ýFåîhG.g!âéVžSixÊjãèæhæYmäYÍ÷u©£®º‚~쨯-«vž´s¤³Ãz¹eðèb"£Á%|pC-‰Dl·]0f4ÈøP“‹‰,2Vñ Êè0»eIÛöKâ¯G»¶£í(H%ÛÉzý¦Ó9¹-NØçüÃc±UM_°Ø³PÒçër3ñXüØSðUV[ž•‹‘Ë^Þg-"K`)Åûjæd¾ÓT©éœçƒÇá÷ðŽÊuäÛøÈ£U僼]P3§r*Lµ‡ zøŸvp‰°v8‘x ä~¨îi¬oY;ôÍðý€œ‚XL›ïÁ)†Þa±Ö?yí~' ~øfAÌ'`-öhÕ‹À×yËý‡«}xáWBÞ\žØOZâ‡gàq÷V »©¤¦YŠç¿þ~)…V¸%*ÐäZò͹Ú<bý“®Â`«Žuד*¥veÅFôRåÇZ‚yÓÃjâ=V È€_, ’E>.8ÓÝuz@v"P ·ÇÉdÁ‡ŽËÏ tw“÷º‰ÝüõK`¿pÜ‹¢áÂ¥\!Ù±£/H!CKHô€VN%j¯¯*î-r¡ò¢ªg¹£a›Ô.U²!;.U’(ÏÎ’'d[}êä.©«m©n´V…³=µAŸœ¬L/ΪI”ÔˬÆÂ0³ÅGVŸSªîIéÐUªˆaÕ¦&D9 ƒyÒÓy޼ž4ÖÌÄ&gYÂòÙ= Z¹²!¹¥¾º¼Õ)m>a³u·”åúåg¥Æ’-&”ÁÆÔ%=ÚÐx´ÊRn¬—¤öäÙsûËJ|Žêlf§²íCߌؖú†–vmÍ;ÅÒàb]qTíˆæÏm*jÜ|âÈe®¢ÃM½Ò!oæJeÕ%Éõv¬ÿû-ÐÓ£N€Ø³ÀcOuOƒ S„ȉS{B7Ù²¥ø"ƒ"Œú¨§¾ˆ ø–›Î,6[¢û~)î´7W74V’UKøË1—AWP`)°HsùFd`c›’»»›Ý—7uâ1ë÷¤EÉ%ºÀüWˆ»Œ‰é Í2æÇç‘Ç—«Ñ‰)^{âцçŠ@?t ë×éK•†]Ò¿{3!Ù¦0É*šDÂZ`}ç=Ð#Ây˜…<ò¾UOnxÒ¿ã ‘n­sèr|‘ØÜ%46þýç×#½Ö2$n¸àÒâ¯x€•ÁV´%$|CìÞäh‹Ã¿#NX ¢ÇdÓ ‚À—‰In ËE( {µIeLÈÈLBìAíUð“Bóꮜ9ëôÇsøæ!h75}E>vøyÀ^eJ°À3‘)·Ú¬Ö¢æ wY5bÝ•ÉÒaƒV¦¦û‘iÇw1‹‹ÒíÄÅr7ùM˜óZçaº§†(‘†NØ`È™E\ÿ<Þ`-üãƒÎ›èCñ¯k>ÄÔÁéQÑ’ÈÈÔå:¶…n½ÖÕrõ¡vmCTUŠM‰’Pˆvoì¡«£ÃȾ°˜Mâ–ñ’yŽ»õ±7‡Ù뀞"üì çu¿×Þ8ˆØë'"¶o‰Žž/Mg>MhO?à o·& >|Ç··O˜¾ž¥¨ÿöH[6 endstream endobj 1687 0 obj <> endobj 3092 0 obj <>stream xœÅz X×¶n!tuÅYÚVQS…#⇘8EÅňг8Š‚ óLа¦QÅ)œQ£FÅh5Æ!“ÆãõVy7¹ßÝÕ¨Ýæ˜÷’wrÞù>ªjWí½Öú׿þµ«(§”ƒƒCËÙÞ y…®[)½'tsº·ÞuLÆKáE¹ä]jFQ‡6­PkGÔÚ©´û°¯…Ï;Àí ¾=åèà“¹yRHhlXàÚu®ý|}¸0Ðvfè¨Q£\Wžºâ:9 ¢ÚP‡¨q”–ª¥ÆSí¨ÍÔªŒjO¦Ê©Ôqj)•G9SáÔje¡dTu”ò£Š©ŽÔ j9U@É©cÔ6ª•Im"à! H¤Ž9¼ïPÕ¢o‹bÇ.Ž)Žà´[2V’Gst}U:Rz†éÊh™çï¿s°eÏ– -¯´šÒª¬uŸÖ×ÚÌiÓÐ6¶íévÛe¶{Ø>¡ýƒÞ;Üröp¾"ë"ó‘ÝíèÛÉ»ËË:uªèÝygçÇ]]*\º»vmÓuP×kÝ:v«íNw÷éŽß ~·Ž]ÃÞå|8Ä]uìæjêѲǨŠ/z¾×s^ÏÆž{Íî•Ô{Lï}öÙÛ×¹orßÓnsÝ®¸ýÒol¿-ý»q/í¿ºÓ€½Û ¼6È}PÅàÊ÷Üß;&ˆL¼šÌx2ˆ‡1CÇ)ÕÉI9êBîþv€í®Ð…9¦Ü<+Þ¦Â&ZVõ ZìÛZÛm *Ql‹0j2ÓˆÉ5›sÍZS\>·iK¤y#Zˆ‡ þùmöá¡#É;#_ša521Éfäå7œÿ{FB"]”cuw ‡YúUæE×BUÛYvK˜,ÈåëvûmöAŒûÄ%ÓƒŠ‚wÆr;ãvjÕ§´;4ÛÙw; Ã"ºÎ÷òþgUk”Ênå©Íɬì;ÑyÜHr,Æ„‹aá,ÒkŽÅ]"`“Ü;}s_LEP)·¡te¦q¸Y›™ÏÈnEå* º<½§ñæ‰~Ùlf¼QC o½ýŠ´˜„%I­ˆk& ˜ÁÜ(xÇš{­HîB€<Ÿ.6¿2m¾ÉîOÏÝ´N½€ ³÷ð{л.Egw^<ÄWWÕžFß¡k«ô 3â ê¼—Ó=”kM‰V$Jý*çy!/4'Âoå¢%Ah2ã!ÅÃ~î#?m(ª8ûrE?’õ!ÁšIð­lÀ­<¤¯i§o¡'œ_ò·¯€®Þ•£ÊQ¦èÒSÔ¬Ä丹ˆñ\±÷8%jK‰7áÌÃVb«Ž÷µKªt/oX&D–ÙZk;.Àx+Ô¿ýjYS¤_3=æˆOtµKSˆoÆI˜˜ÖüÛA2!Fø¸Ó Û¨@¡5–Òv†æÓ²ÚYófOë¶puÍ1N ´Ã$¹:öä‚/Îï¬?õ’þµ¼Ã}ûVÅòÿ²[åQ»XÇ/è¦{^´tKÝB:Ù’»K¯M?v1Ï¿ºk¥*T À;”“ôYCJ‚àÝéžÐZRüv¶?F{âëÃÀ$YHÀ¦Ip]ròí‹éûM­%Çéï ÷!Ε¼.=¢[VÃD1Y7Éï\thÖu¼ÜåÛSæÒ`Þšãýk w)°kK›ßji¼gJ ó† xý{Ù<Îöø ´u-« †8ÑMo'Qª…èßx3Ñvû5E°ã¿a,³ñŸ¬¿·K›9_("&îë4÷‘`Ù›tòêÉÓi0 E’|»¹ZØk<ßÇ#á¾ä„Ý©mDÁk6ðw„õBkùªJßâ™$q»ˆ»àŽ{:74”ì;Îí,Þ\„r™•Y©Ñ¥©Õì‚%ÞáÉH‡q7~‚7o@‹ûŸ¯œ¯ç2ã »Än6/†}9":Ú’¼½ Éa(ü,15EzØYènqûÜr£ñ`ü …g’~oäQà›w¿¢[!ÒDÿ,y¨öÝœN•ÖtÚ(–çl¥ì襸?’¬Z>‘ÚÅe..—Âix$y•–?ðÐåu9>*¤ ÏÞXA/þ|ÎÞ Ä9­ú‹ªªÝ“¾ÐêÆ¹}Ws²„a¥v%‡Â¤éÅÉŽºíî6–ˆ¬Ûwþñ’å&òП®°L¤Ü%rT§+NÜ»öÞ˜ãÈÃ;º Æmp§_zC·‡Ðúð> ‰MJjZІ[½ab¤7Âs%ñ'†w*úþÚ'OÐÔ8»`óZGç…÷­òïºðàÎxä7pð.8Agã0p"ùÓ¸7~w –b ¦\Áõù%å^ÕmèKpGº` æØ!oÎyúXí¾†-ûuºì-B™bY6åæhÉY܃§11C?ž?‘›9ÜÆ\ßâoÝíÂ{ÕF¼Ø³9Á‡‡¬WZ¤ƒx9t¦þ®ñÑ£‘×zpXó»Ùüfm†x'È"zùö¥¹S='ù¼ÿõõU}Í€oä~—ç—‹à— „Ì<’kõ»j9,—Nõ7•%’Å6MCU…ûªÊ÷äíF¾ä­±"°…Oˆ}¬þgèˆ`$£p èL‚÷*|=îãö@‡±C§kRRµHã’lVY²²22ôìÁÜË–rT† t;”Œ¬V¹Ë¢+èvàÓÝ%¹*³"55]—ÊEÇi¢PRg†›YŒ%8B¿±[ŠO Ö2G…oåÖÔ°F£LŒÆo2£©xYóQކh·.6ÿû‰¶äÕ_ÜIôK Ú¢ÙS· 3ùÙUÞÎ6÷ƒ,úŽ×ÙÁ3WFÌ\ØL/°†'à³Î^kÅ‚^N&¹¹îï·øæŒ AôhèR5ãà£=uGÐ%æþÈk¤¥Êøc¼z'ˆƒAÒk—}g}ò¨êæùò•¼_ÑlÄô;møÊbÿ½\ydeòÕäÏ“KµÛ≪ÛW¸a]W)¾ƒ‡xoбéZSb¬’;Ù$æ.)¿ôlØ"çZ}õÉñˆƒþÛ¸àâÓ¸<ïœ0Ó¦B"ç wîîÚpþèÝ/ÎûÍjîd^Ñðóß62¤¼<ÿÑàl¡ý$U›úI§.^ìÅâŽvVËé‡/=â„9xŸ]T!ŸÝë,mGè0†‡ÑÄá¼\ˆ„Ñ¥ñfEn¾ÁTÌÝ´Ó6C®Ã˜¦ÈßéðÞàÞäqÞ0M^·¦aOIm×·øÑx5¬ e¤³ä°×t²ÞBcì&ZÙË¡¦b»à>¶Yb†•à+¡¤Ó„bÉnëSóU†XQÕÆ¨_Þó}›"%:Ï"%·ì‰^›h´›~eak50NüGœHå±+yøÛ×%Œd…ƒã¡„–=S½§l_·ŠÝëü9|¥ÑÆâÕêOÊ·U"fßîõ¾öÆÅ}ôÙ¥Gç¬ZµÈŸ<²aë ´mŒ \bízJ…4Þ¡„¸n hnÛNh ½Á©©·ä"ý)1|³;ûÛIÚ§);Ý%Þ4vjê>W•<²“Vvd½Y4NÂE9î=Õ¦Ô,-rIV©’µY)F5½pOÜ ÷Òht)„§fU®!;Ëhb¡'ñ¸—If@.¤u³Óô*‡­ §É”• .¹J³B›š¦R‰˜Nàá8Ý÷‹¢¦@Š<½8}32£‹…Ÿî`áH¬áz9ª‚ŒÂô×¾ùh— ßËÕ†6F\:+ÕLÂF»µ]¶50¹„R²9ITFÂ9Þù'~•ðÎ*±o¼„rü~SNzjºé¬+ÏÉÎ.ÈfáC¡@rI*+mz‡–]/iÖ_Åì>8$ª_¨ª‚*\¡UŽP/4ÊG{yÝàuçËË ·ïM¿4Š[ãôé‘ÅÞ³-ž5kÑÑóçŽ=Ïýûâ.œ—›MYzddÄ’I°§Q±˜vSªÒt/+­AŸi4¿ÄcI èˆÞ”ðAb- ·‹„VÐ ÿ¼r÷Atžy0úÆ€£' ¹gÅÕµ¬ìùÄ@ÿ^]ûßûüùýÛOXÙÔàrâ^fÊož›;yúÌÆÏ:ÑpõÜé›®r’=¿wÁg¼‡×¬1£§Ÿ»Ñxñ“»¢ „gÑЗTÝ lÈ 3+ŠK2[²Ê*ÀÐåD§·ýÿ€¤%dA¤›pPй®¶b!Û•mdùö—áÆ+œ,$ÏMiz…™kv_ ˜Ñ$IºßQ„_å1 H…>ŽóY¾xÂØ¥ãQ ŠÍRf«³S3RFÕ*ELeüÁK—ÊêNrö}€a`ÒHh‹[öÿ¦úÜüðáçõ5wyV[/_®ˆMˆß°vuÔÄLñi¸ýõ™†ÆÏŽû}¸ƒËR¡tC„˜Î0‡gÒ:rþ^pmj-¸v–U ]AËÎ?´ä0ºÂ$²ªÂ %±[ÒªÓãÙùx)Bo†° #¹hÉPæ(ÈEíâh»f°ê Z…%Ãl§¾¡ãq˜D-q•g0e²›!RòNÀaéêtò0 rÉCFSFQDv¹g[Îz8Ëŧ ¡Íà,æfÑòAˆ‚~Žp¹pÈš5å÷s9ôþòÕUÁ;ý9%Ô“ómçwUUïò·âj¼#b9–ÎCk£»—´ *gÍF“P@ÑÚ]ÑÛãw)/&_N*HÙš´-!_Ôn3¼ý>`e·<дªÔƒiE)ÆWÚf¬ôu×U ݾ±>¢.ôJ¶“ÐJúƒåâtŒ­ * )Þdš”?ÛeˆÎ%Ò5*/qÛö®gN¾rþLÐZqçÊ }%uÎI‹´âN2&]»3"ÇOÏœxCýÀü-ÿ ­Aµè7?Ñok¡| Î"Œ¦C©.ñyIy&Cq } H2Ê~ÏyÉÕ0¡dâOV]]Kþ;¯ O›7wêÔSs?k8}ºásßSž\€Ó‘ª€ÅËü—- ØøHuu‡Û Cí^¾j7ÐßßOx¸z+ÏÓg™ÉQ›UDÔ§§²MípÛ¤Ô-Rº(Í*SfvFf¶èaŠð_˜Ïÿ@l³ÎÚ7ZÓhõ9 ¬Hü£}Wçî»®A…\²uÙiYÈÅ€ ú,CfV—̬ =ÊB†Tƒ*,êä‡9[ŸL.(+=+üï’jÐ’"JB”–¢c^µìD¡ÆŠõ©„`7Ax·Ó'¶|  Cù’Åuù'\rmgWÐÊ%ñ+¢×`¢%º¬?¡(C[™û«n-VÇ–²{ rdV³‹E•£Lզ鴬R‘mˆ@.ÓæúNߘ­¨ÈyF­œ‡<ÙÑ.Oü¢®²ô`9^-ôß¹1ó–Ô_8UqàdîkÞVüoÿç¶ã½ˆþS¹âCèÁá¸â(“&ùµ/›fÛæfãÞo¿òŸ3"^,üé ”p6€„”¬”LrÑ"mªŽ  KšŽð®×šSð¢.˜üP¥¤Šò¥fè2uº.YZcª@XŸ™e­0‡Ï; ÓIà•H£‰ Œ[øãwê½·×gX²uY™C”jŽÙ¢OÏLËæ<¡}ÐèôËî¯@[1—‘ž±%³ÿAï9¿PüÉòþTX@˜¤+ÿ3O–*¾=Drèp¶æ jd¾Ÿôi…Ô!3Xµ.Y«Ò1Sme—žØ¾ÇT‹˜{g—zù,^™ÅœÝåu¸<0":8xkt·ƒ®ØZº«<¢$Pœ²Î;ÂXâf…R¥HÍHËLá®âånâ™kP/OÜ6-…(ìTƪSÆ…ìçÐb?¼ƒž¢çëš NÕ*³Ù¿2úûSÑÑOoóO V_cÅ_êl<á-Þ.xá/—º5bÇŽ­[·ïŒÜÂÁ¦NÿtN4|ñïaº»Ðd¦e¤6wJ“Ê”ÎéÓÁeåhì¤QÛS¬07eësL,éQïb'“B¯35‡.[gH5r£Á \lÎ6ÅE|¢Ó¤§¥°Øe…¸7ªìËMzqòëDOgW®Ù¿+jŠÄœÝñ5»ÒÀÑCÿýàöü‹®ý{‰bÕYö4 çäOH“a“©ì¯A¤H½>–}ÕßÚ¥æ¿Z+äËašÝZ§ÙïÐãexšÝÖÅ4læ¿Ìfü .‚÷^°rM~Š^E<¤T)S3RõÄC_þ:ؘšƒ\rrÌ9¤Ù%±G¯þ? ˜¿Ì‚è?KÍqkžwÏH¹u»!1ÉúdöE‘¯ŸˆÑÂÕõw`GõNÒîè4ºDº{³:..6ySB¢>7’Sëuæ1j…RŸ’¯áŠ•»Õ%ˆ9¼gûþêð-«2¸ÃÒWÆþý©pOkxþé¿d2îL²òŸS2ìí)yRÀrì‰Ã5ê´T¤µ:È”•cdÁ ¼Á {•Ùv‰§µHøÿ‹|·wù#ßðŽ?Zß\Úa6”çA wZ l/bg‡ÚïEؽý‚–%‡^t=ªJØ·®fUÙ,´€ñöÚo‹ûC<|`·Kô56Ž9$¿pr„ ò_½p²¦WnåÚ³`©t+I!pDc`Pa :ÈÔ/:+¯ÛRQQ|@1[Ë—ME3äèãØ©ÁË"cV¢•(°8²"¸.ö3tñßò¾j<¤ý)a[!ª!UŽ*¶îØ“UœiÌFù„žM óV,›Íb)Z¶VŸ®Ö8'š´镺m›ÐZ†\›}pÙ©ÍfSn¾&;&“ݱU0@îá¥ë·íÝf)E¼ÕÊšðxPóú•-Œ*ï/Só躸ýÄQF3Ûú¢:ϺÙ(´±~ ÉQü`3-«9oVðÔn¾kªê_~ m¦Îú¦Ã¶Z¬ à@ ¥#©‘‚{ωO!¢‚äˆÒœiÊÌгÐ値)sRÛG ×ì²Û›îðη¯B7þ8¸ãŽ5e? ^¤èž§ ̦<âŸx/¥q§a3‡rK¥hqåÒO6•'U¨ë\Ñ_G”£.à +¹Á˜oQ›’28áε¦;R™”®V+º’ë›Ù¿Ó…Í3Çq²Ÿ¼i<îÈÇ™æÔ¡“L•ü¤î–éß“aý®Å¸ý‹ âÒ±4ÊEÑ`ý^è׬jï•H€Ü*¨¬t„k¢ßeþ¡F%öåÖ—t—J%¸T™„Ôˆ‰Rj“&Mžt®Éh±¨ÉÜä—¯+öò÷÷Ãbh;^ž%=säÂÙo¾†öЦd:Ë<qÇ}æÜ%kؘð¤`+N‘c1òõlÁ¹Ok?CÌÍË3=ýbB½Ça“ÌØ[6·Öº{ Èç._á;ïÐòúúC‡êO.¯]Àý;Ü F§?%`7™xwŒF„nÐŤiRP"“lVo>u°î,+fVÕ¶²Ê¬‚ “å¡|µ!>cmVøvT)fÝÙuóTêäDcJq»G·5ŠYŠVY¢ö†¯WD¡UV™_y¦:UåU:U)´ !ëý'Cf¶†,‰„ žÁt¹Þ 7¾ìÖ´º4%Òó¦aZ aáT«ÍIDz ’r¹t™$%]«KÑ #>ýŠÎ3½|^Ò3ICnóùи#Þ( ”‚{¥;пÀ4I&ݼºŸ‡ÞY˜ÆÇBy&´$‰“™‘™‘ΕUŸ@g˜oÆ_v[°(>ØŸŠOŒEJF)ª‘¬ÌÜvWÅÑ’Óˆ¹uvñô•!þ+c¹(e|ú"ÄÄ)_5(žÜõúhÜøéCæÎ-®\Êi²S3 ¡*U*eR^ÒÞ8îDÈᤣˆéßî>‹ÇgKÏ}´çu¢>àÿbõ€ÿ®‚»Ž¯ç„¸GúôT]Bdغð¸p’LË+}&˜6 õ(,!Ð?:BH& NÌ!’Îld¶˜·£BT¬,‹¾0¿4yÚvUð…%¦\2AΫֽ«J Ô¤•BÇJG!VØôñR(Ôý?ò(pÈ“¾aº—Ÿnväágâ©ÖD´†ä¸ãx;õ9ÀîÛèh}É@*™õKöCÇ4u‘,•Â6^Žhð‡Ÿ%Û^ôûÕS•ÃO¡ÍÓ#\°#D½E³¿½¶’AÛÊ-•_[eøÙ[ˆòú|ü/J¯_H{ýâ¥ø‚ó»ßŽ k?‘bÏ%ô_Ê%wxKÚkwÒ^_H'tòøZZZöÈÖ4íÃ[è$“ÊÂÊ~ÊFÙ™¹†[Yjsÿïa=§MrŸã»õÐNc´R…¨½’óöDqÇÖ‹?I¨¢ÕWÀœ&Üí³|*já?•›ÇåµËë#Α¡´ ñu3¼qÅIîê·}”í’£6)5©:•†õ¹¸vqé,äbEJ'hƒ]Ñ‹ýJöû³m£K„%à\RRBlÉ·:غ5ߺ Eý/Eµg( endstream endobj 723 0 obj <> endobj 3093 0 obj <>stream xœR[lÛd¶»¤µ °ÑÝÚÿq¨¥b¼ ñ²¡UTHÕˆ˜ÊbhNâ¤ÞœØØgKÜ$N»6'¶sYâ\Ú4í¼NÝÚIŒ‹&1iB  xBB<ðÆ (Qû‚Ó©”GÞÎ9ß9ßwn$áè!H’<ø-ÆØpÐKc©í#;Ç{:'lï|í"¿œ|÷"ºÀp”™tŽb"œÂèÔéÓ¯#o Ùø(ºÀ0O1(Àr :÷Žçý·Ï£“ãç'Ñ8fDšCži/ÇúÐëcÂó2 ð"âž:ÈLJý,fù°4ŠÞ”$ñ±v#û¡ Œ C¬$Ù6b%é0füóˆ û¸iWÞŽø0F‚ÈÛxÈFl*/aÉ'²F¶¢gì­§=â)wu%Ö†°3ý¼o:ÄØõ{¦Ù°„0#㮎—A~V8:fëÚT‚Èî¶0-Ù›ÞWA"¤E?ÇH»¼Ý­ìχþ35-\l·–ßÍúWŸÅÃF÷.ˆöŒýÝÿ›Ð§^#‚&H zìƒÚ¿áhß;´}¦}deéáŸkf£=b%Ö·?Úè¼zoî¾¼ÙÞxɵuöAÇpïüÑ÷—bZÎ_÷®.´æ ……Å´¥|ªdÛÎ\U^N¯õÓŸ~V›5å•!×·ÉRYËWŽ‚•Z”ê”ë;”7µ|á(˜se¥¶[ÆïùU½i.–Ëu¨C+ÚºV½ZÛqÜÚyDˆfÙ›”+Šªò|ôÜÌåð!ªŠ07!“£6û†Y÷ÖŽ5Ùû[;íÞÓX_z²P/Þ©®k° ·Sµøc¦RJ@Šº!'"‘xÑâ=g_¼' \ü*™YÇyEPãßcçW½õKé³ÚÔ­„5G)}gUHÃE¸R5¥ú@¢”,dô„‘Ô¤åj ö“vÓý¹¶œ[…_àoõŽj©µH€šI©óõ•ÌI˜³ÝXŽºíuWÕ|Æ&‹%”àõKø’*k4[kw[š‘]ÈÕgó5¸–¹bi:€¦Q®jrùŒÛ4%*GøäеŠW*µZÞ¸[2r•|£øó'ØÙg›o¸‹ÙJ ’ž]cf£¤ku}°¢›zE«ê%=— zA7t=§užg âAн¼ endstream endobj 734 0 obj <> endobj 3094 0 obj <>stream xœzXWÛö ìì¨ØXÁ2ƒ±÷ ØÀŠ]‚ " ‚Hï,»°pè»K‘¦bCDQG{Ec‹ÆžX’hŒñõCLò>ãÈ}gaÇ|æû¿ë‚egΙsžz?÷s ʪeaaÁL ñ÷ ‘¾»YˆÝ[‰=,°‡(~¦èAÍ-íÔ.ÃÚY["k«íÝûlÄòNð´Du¤,-,"3·M Ž ñ÷ÛêÐßsáR§™ï ?~¼ÃÚ¨æ‡é¾[ýý6;ô#_Â}‚‚}7‡Nt˜Ffø¯sð ˆ Þ°Õa¯ôØ’5¾›\ýüƒƒƒÂúOsr1lØðÁäc´‡àÚ°­îA›ƒæ:,ôõ XòÉMŠ¢Ö¸l^65hù´àÓ·ÌqÝê:3lVøìˆ5s"×ÎZçíãá;oý|¿ú/Ú¸x“gÀ’À¥cÆö×k|ï }¼'öÔÏñ‹“ûOqr°ràªA«{ Ñ}9tXÌðØq#ãG¦¨^ÔüwV8è*;üÕsdÏe=«{^ìÙÐku¯K½•½÷Îë }rúüÖ×­ïñ]{ñÀQ€:ÁÂk`"¬·a>{ ;*¦ÐQjM|œASÊÃ0ºÔWT¨Î‹â×Óx¹X¦ÀÞ²ak»5†)d·šŸ˜D_Gd ,N ‚:Å6ºiç—B°`6캨ÃDq4ël^£¿ô¢#›®Êxèb^Ñ ré*Á˜¿-ŸQÕîÜ»Ïx¸ÛT¦­ˆØ^‚Œü•fQ,ÌúCýØ­~„»_䜜I1L°9 îx*Œƒ‘àÝ`|Õx nOdUÝ—ž/RçFñØÒ,^-ãÕx(¬V7ï€[™gl£Á Çãù)¢iÕ³D2UæÐdß0oT¸ËÌggžýÑX1ø ÐQòV†`I¾°ž²'êé×í}jl%__µ»ež¹\Àá|ó¤ ´€}Yð…qÊû—¼¸{|9†ÇŽx 1़†ª5U‘5a;6 ?Æ}Ñòé’bÑB°¸'ˆmÈ–çÅi,VõsÄp§†þ ›ßþ íAåøoÜ™_kõdz‰½úЧ÷¸§¿5<ú;ßl`‹³0þ¦ðŒ·„‡ÇÂtØ®¨ ‹óõ…IúhÉf-n>Jc'A„â°Ìª2»WHVÝ®Àþ½d>Î6ÏíE7‰'X\7‰-†ˆÙìªÚy³ÐL4‹×JïÕA33N‰»Aܺ߸¶«î4·»¢ ™üd}‚&5-YÃyÎY¶Å1¸ã{°æ¿QBÛŸÞå«ï–xds1yɈ)Ê3Ý­”¥C|œF%™ {0T€'Rp¿@$±ýúØ$óDc©Üyžfñˆ.u³.>F txû3´åUO¡íà׸ã”åÁ®K8p½È6ºˆß²#̰-C+‚†ŒeþŽ}èL²X¦äG5LJÆÅ›•¼ý©’KþIIˆ£K&sGò˜£›ñ‚„}D- áµÖÅé"ËnØïµm!bœ¦®œP¸7Šß½Wó ù¢vfw£zµ'¶$$´ë’Y>#ǸÖÔqyJÕãÂdC§z%G®£LQúJr Ÿ¯<¶þLôM’"Šç—Œ¬ØÎoÚ¾>ß#o¤A›VĨ‡$–w=~©êÁ£s›½r¸Ì˜< IXÓãw”eÄ-ñɉÑMsX­MˆÑ– F ø²Et™¡Yµ%2•y<€^´eCòR}F>‡îü}%ªß{ã„p¸¦¶äz…î­Í^–›\øq»×Ê2­>ÎqJ¯C‹Kg¡YhA¨×šå+\ÐtÆE‰GüÙÆ}u«´ºþ£D¿—õ%Îò ñmÍ à¶.ʰ|€wÐÎ×Vþò=Ї÷ÕÆ¤]zJ2ç:=zb\½œå¡‚Í)ñIDº»“è:‹„Žñ”%UOtX-†í’Á°µ Á°/Þ ¾>?º«1ìcí6J+:ÈÒbšâ$DJSþí!™)α}(+Ô¢5VÒ2E‹hUí¼Å3»-[wô Éb’ŒN:¿ô»[×ö^¸ØRÕ- ŠØï¾XÆ/så=¹+Ã0/»¾'‹f¾…£XTÂZè k-á•-L­‚Lg¦M“ZúRIãðRqS¶ç@ó$†IÖŠ¦LÑ /8IœàMÄü—lÙÓ2©Fâô³Ý',_µ£n¶fDÂNÊ{³Ï…Ü@ÌûïŸ5Uí’Àãa=©¶¢»ís"oÙç éÚßzÅ2z4ÖOƒûŠóŸŸXF¿ "Ÿ¥_AÁk\ höÞtì›{ÔÿÅŠcmßʽ\NãvnÈúÙñ‘‹¹ÄT­%1‰µ13;##›{R±7÷bîŸÙ¸‚Ÿ®œ_³šdS§ÑóGñªÓS®/}s÷êîË׸Z«™s=·N'¡ìU}îú½ãž8¥U2Ó )xÖÁT Ò¶°Oï¿ 81ï>þÒþG³‹hgX¼þ쀣+ìŠe>icŽ.ÂäàLd>4g žLÿæM6/ïÜ$6gaGéãðXðè¢zÏ ˆ…±0\‘G«–!ž¢ql‹»‚­¢Žþ,ËÌ£a,ŽçbW…šV½2Kao–†áàC±“böç9¤º%å~39í#-‰%´¤áSZR&ÓôíKZuzÆÉ«þ÷»õ»è½Ãí]mš¾œׯØ_ŸLèí4aü€þ“ž54|û´…‡D’˜¶RÚw“Mj!âoÁgÞâ_a²ä (°V›k¦ª»•M«î´˜þ·¸Â‰ôŠop&Æi;@ê:¼ëm^=x÷$¯ŠñV)£q8~#¤mbo‚Ž'89N"í‰.³½HøÞ!ÎI³˪e)ë$+ëh|EÌPôü$åv`®rÎâ:®4f4iS@¨€¸Z"+YT§+‹;à÷|âÙDüÎŽCp;lûŸ>Ðí5XŸ<˜O¼Ÿ’š–¢á×mšæŽ0…&Þ‰ûƒ¬J¾wåz‡Ì/Æ´ô$gq”©•ºÏbž¸ Çù <ô \º Œ†É˜[Ü“´TÀüŒiÜ÷„•XéÁ pxCþ(ùfì~$3¢É¢$Za,¶\£ÏÔ¼µãˆN·‡;¥E(S"‹ú£6/!‹ß”ëšç‹˜ás–Lå=FšëéKüÒIf¨»fCa×€·P€¬æfT‚ß–4µ@¿zðæÍ¸{=y¬ùGôü”1BŒd‘ÞóÛ›‹Ü\§-Åÿ÷žà•©'˜ ?²^·—TJé¥23˜y3÷.ì¿UËcVéæ¹Ø#DÚ¼MŸA5%k*« ÷#!ÍAÿ¿7“‚Ù·÷IsàìÁ ÎÏÊ’ Ýñ‚Ûù•h*ÖíIbTµIûòuÅÝŽ}µ¿¼@mHLMM×¥òÑšp’3·Ud~`höæná(&-PËœ_²ÿ‹0%ŸÉ»$oü7L_ÝteÔ”˜ªB³ý½@Oç^¸±—°Vû£h‡fg䮈Â-¦/ìb.›^E?U?ÄcM¨Ç²¦„„õ >ÓXÈfÉ&6œð|‰Ç0—ÍÑ@O€žA5s¿©ª;…n2/ÆÝÀáŒÿ]…l+ˆ†ÁÊ{·=çÍ™¸ÔÉüë"l  ÞGNmîK6R¶Fü’]ÿ%‹¾Q´ª!MüŽß»¾åÈÀæg!êÂNH˱ˆ]#x•ÎGL¯I3G®)ó9ÊW†J¸›ðMÂvmE é\öF—lÚÐÕe†ça.goé¸ôb­>1¦¶[™Û¨}JaU}ÈÒ²Xÿp÷ÝÙÐã>|`Y~r¡»1D¿¥„´,!%q{÷w½uíô³'×¼æ514—÷?b åðýïõY G“Äoì¯t[±b‡;Ëôeé×7n¾áÅø Ì¡jÈhÖº¹ÁD&÷=¤~}ÂTeŒ!± (W_Æݸ ÓfEîÃÄÆ°8{ù‘úåÜa&[wfúDË#Ê|–GãuàMÊ^ÅIrÙšgï ± vTˆmå”ÿS¢B·ð醦ÒJ(Gu£JÎ4•†dmœiòü=|ÆŒ‘#\ïþÄÁO>) Q곪É,Lÿ0 `õã@,>e-mE‹GÈ4jÝXö?Z‹¡¥SVð¶„rÛË4øŠeŠý2Þ7€Hùq'4öl Sèhì!†)Ë& 4 ¹_~Žzï(L–~Z‚Ƀ¨Æ/[*_‰t Úèþ„§«N_>\µë`·êý|x|Gfiôð•Ê BÕîßèKš§OÒõ«N/X»1|¹vjÓNo´mŽò_i:xØ.¦ åijƒ$uÛÛ^§A)ö«Æ>ŠôWDñm2o1Bzac0¶»+ÜilÕØ}‘¬x#ãí²Êd:FŽàŒþÄ/ÝH­Ì€6½,}2 %_í=qúá·'¡2Tª3¦èS²Ós“¯7ä—ù{Ïž²z ï2wÃh„O{ŽÛC›w¾ê·)/†M÷\7~-—ëÉVœÈ/ÝV\uèèöÄܽKguðbÒû÷/¾}ǩޡ[>ç§`œ¡„}tuÑôÙK§Ì;wëîÕKx\c¥zÿüúÂ).³æMœ0ûêÃ7®<“ö", I•jœ›bH,Eö¥ÈŸµ«ríÎÙ~în“´þ’S‰GIs|ÄRô‡¿ØŒÈŒX¤Fs¢Ýƒ¾\áR¹÷pMà^> .û›Í÷÷ÕÔîó1¹ñ ´–B'J Ä»“©¥;@èëØ¤yóÑ4ä[ê·/bw̾¤ ·ã‹SvÆWÄIb®»×NõØͬI=žVš’×\')[ú‹båîÍBëÒHW`¾ m•¿å߸Œ¾EÇ£l*Û¢ŸV4??<7¢€P¨ð¸ŠÝ]/_:yçÚå?é\/WÛ\$¯*KµÒ9fRd:ç·7Ôè•Íœû¤nÂ’mØäÜ”,- µ:19+ÕL¨¢cž6W—ƒì¥ƒÔ\„Rrx^2–ìæ%ÙÍú²3pIfJµ)Œ/.Ôç–9è ¥Š©°ëŸŒ—pœƒJú´åá×’_Kø Ù™‹¹¹]\ôõ­K—n}ãyÑ•÷µ:Uã»bµ¯ÏêU¾GNž:|¸ŽÇÅáò‰·ïÊ&úøxIO>RÇC>Žb ³sr‘1&Ô„\¦§rpûøÔ-J²O2¨õ™9™9’!îA5+ŽÆ±9ºœ´,dŸ‹r³³r3³ì2³2²QÊMÍUç`€åv@> 9Ù9Ho²Ò³Òȯ]j®6› "]Žin ˆ’à¯ÜtÔÃöŠ9&}é`¡|oY]Ñ9ûó]o:ieŒwÄzL Ûnã¹Ä]h'sìÈáã;Ë’£¶sUÅydWƒ}¾Ú˜”ªMÓi¹$mhQDn(²Ÿ¹ÈsöæœÄÚ©¼køšÅÈ•Qs{ꓺCÛWr[³a>›Â6 fñÊ ×/V;_ÐE‰ÿE’§’à¶8+¦XŠe¤Õh‘²q¾9)Åù¸ÏçGš7XG6øÇ ‘&í"vo ±)Y)™:d¯EÚTQÎ.MGžÐ!M¶Ö€—Ûaò¡NIM!ÝJÍÐeê2tvYÚ¼Ô\âìÌœ,@¼f)Î&[&!&:x:nåƒ[#GÔç@ﯱbçzC’‘Ô:£!?;=3-‡w…Ž¿¡ÿ ÿìÿý´—Be3¤}MäL5G\J·«ð§@˜¼ôž±Ð©þèqô€ùyÚW=—mJšË%ë´jãfNVAynw•¾1ÏëWÍZ¸Â3+xÙðÜŽõ ÜQÍï¡«wnßWZî/ ²®YÂ$"}b’:15#-3…¿‹;U:J´C@oWÜ>-%= ¥2¦Â™—·§„ûZÖèWô~ãn`z˜ôÞH²„»“˜”D¡Å¿èF8à’±Lñ–¯ÉKÈä¡Rù³ÛaX1[âA«DÓKÝ-=´ìÄÖ«ˆyð¨j¿‘XC“žž”ȇG­MðFËцÒà#µÑ—ÑUF)ÁîÆ›×_Ÿ^>ƒ[¥ì›áâÆ2Ó¯x>132˹cV º¸ôDÄ,XwðÌÕËÇŸ˜´”Øb•8›ÅöÇ4™i©È^ž$½ZŸÎg§ƒýš ØJ“DM1µúœl£ž# î¶Ò'fëôÈ>ß`ÈÏÑ妿ñÀ ìmËÉÍEùöÒy¿N“ž–Âa{oðŸ6…]I½?@ê×ø.ªïááïÛ0s.î¯àÌé¨ú~€D§ ¨™áB 3eÄk¦üd¯Æ3e-ÀL,{g&­2ôÇjŠR²Õg“ÔI©©Ùg¿ûkn^\NªÙ#¡bD'iöºÿ [[´i’«jkb‹qñ¦¹˜3_¿3éO:q•¥˜ù²|í÷I¾Ây³ØoÕ$§¥"­‰žés²Œy8’¶Å»ç%åÈ̯5‰Jjéÿ§ŽJYnÝÒ%X³ÐY²aa‘Ɇ?y#8wVêˆçÓ: ¡ôtmjªiI:7ûĤ¸Ó‹„V–¢èÌþeµüƒ•¤©þ¡›­'˜Í“ II)©q;§jÒSˆ-“H”s²‹òL9.ˆ§ˆd S£.ÆÀï,ŒœÉË)˜Â#9G%ñS` –€‚þá-‹n”~]Y·£ººì:†ª#wøW®.uCs˜J4'Ê-pu˜¿äBýý˪뢾F7LàT-¡ˆ˜Ê¢ê{ª²Ê2órPS ÖÇ.ö^=ŸÃ.J´~kˆŸ.&=YƒâQœ^[œ~HW±ù1dlþñÕ·ôEšœÈLnSVèTÍyFHܾ±â@Eþv$4½ß´ 1NÚVQd±û‚˜Rê‰ÖI†L}fF6vÇ…˜WšßEÝ“õ¦—<¸ã‡²ÊQÉ_XÉ=¦7¡1õ¼Íö'ýÛÁâŸN¶ë °YÊ˧®×ÿøt„våûP=ózôS'EA+×s‘[ãQ£6¨ù¹¹EÙ\ñÕ¯j¿FÌ£Û®^‘Aƒ‡ò8‘°»y"÷Øœ´~ó‡ýdñý‘,ò Þ¤‹LÓ¤ 8&Á¼íâñºzNÒ¿¦bס¬â }*D¤µÉðËÚº’lSï]·8Vœ——R–ÆUév#É–hm~ø­·&†£µL¿>"@¨`#Î"IµnÛÀS63#3#]ÝuøºÌü8å¶ãÒå1>\xL\Jb’¤ìÈÊ,0rûªO—_BÌãú³×ù¬‰âÓbÒ—#&:©™Í¾y÷lÖ“§Ì¶hQÙ¡U¼&'5“Э$µ:)¾0þ@4.èdüiÄ€ò—g ¼ª}½êêU¦Ù \,ÄXxN*Zª.6,dÃÖè­(Åë¿<äy¡Éq(YÊHRÖǸ”oØJPYÒ®ˆëK¶'T¡ýh_iµPR®/@zé„>ñãaUgþ${X“°†/XÜyŠ Ædÿ´äMçRâJÇîÜXG6Ú)V)¡B`q, >ð§¢âcúTª?6àDÐöz:1é°à-hiÕ3€Ä;èx½:ŸSý‘ƒr2 rí8‘1/®¸è5sšÓÏ'Vòš<“¹¤"‘P[ΟÙx&æ<1WÛï°r~Ö÷Ëõêðe|ûˆrqt9Ø”——ÓÇÛm[[ Öí(ê¿ì endstream endobj 939 0 obj <> endobj 3095 0 obj <>stream xœRMhAÞiš4h?(ØÂ;V,VTj/-µ ÒÚ·xÜŸI:d³³ìLh#žDz0Ú‹àE0gƒ´zñVRªˆ‚žõ$‚ XôPp6[œÝRÛ£·÷¾ï}ï{ïÍ ¥³CAu©•’N­ Ly×ÛáõFªW}ÕŠö)S/žŸòúº•jw¤ÚÝù´U?çížõ𧽝g”x ¿‡£×h}@ŸQýž»}Tšç š‹`œ:—æ9 _½’OŠ1ðy ybaŸÉÞ½9þÌôd°]Í‚lY·ˆSÄÀ6Ã!O]°0¨mN¨ÍR0Æ@æ`ƒH^4°à`·D“1W³96S ¶a•ÍÀ^âyjsp\*ù’dd«,eœ.q8HÇìôÁŒ|^ã/#’š—•&5Ê%,õ‡׈̀ãEøèLÂK«H_ÙÊqI8B™»pä>..h®iaö ®r´ÛZs«jiXõÏŸp†­|JåšmÊNpðœ ¦ŽŽÿ¢¹.]Ñ02é‚­»šQÄ<¹s<ËÇ3+Š]Ymùm=BUù!ž e%†PçõâÃg+b9áÓû5QÜÅj}N2363¡çÖpÏOÿ¶ý¾1Ù¸¼Ý/â÷¬çÞN|‹ïÕÕXÂû%^mF¼—¢–Ìééìh:Þª«{õ®ÑOé7¹uY,¢—vR·6Þí4EôG<áoµHl5"âÏHÒÐþ>+V÷'»$‚[þ`r©á/ÈÈa¥?”œÝŸl¯ÍŠf,ѺR‹UOTO*Ê_÷D<Ž endstream endobj 796 0 obj <> endobj 3096 0 obj <>stream xœÍz{@TÕöÿœfæ\ÅË32 ˆ Jøá3 ø ESI"a@y9é-QJ6JeÒ#!&zIŒ)ª³lBrÒIš“GõdĤ'Æ%Å%F;žéFSrš16&-ÚItrZlT¤)#-.!šòGš¢“MÑ1IiÑËÒ#3bLqÑôÔŽxô#At§ -Ý”D‰i‘q ‘F#%øGwÄŒ‘1©é¦È j¡#! öñëPj25.iIBLG|Å;,ÐNñ´Ø8ãR‡<--&šTˈñï¬Ó?¥#š—FýLïh/=mqBdZZlzbTdR$éE6“"QÑŽt‡m£SýM1)1‘dï´ÔèÔ€ôÔ´˜Äèä̤ÈèGoQƤØô”ÈĤØèGvJO‰zd†N«H½NNˆ~4:R¹tR=–Ê’øÑ`ÅEKBª*Ê™–œG:.1ÅE/NÍrˆ¢’ÓÒ“:ÆG2Hl²)-«C£8SŒ±ÓV#(=2-6Ë¡`bd|²)ÕDe3Ld¿Å¹ScSMKch:$§¦.väŒuH#%û§™â–H–8r8¤©ÖŒÖ1wâ¡ÎF³32…ÌO•§wL©ñôaÑ’ÇF&,v×?‰ÌLæMð,ê¨s8 %ƒ› Ò(ù;ä#h6'>8Æ4Àßg2Æ“©«ÁP2š$‹Jí°Ç3ñ0ÿÔ„t“‡(Ð!áÑÆJ¶OOI£ù*“ɶE<Ýo€¯gß>~©ñ‹ü>?h©eìà!C‡ ÏH›»ÑkVàì‘¡£æŒ~a̼qóŸ]0>l‹Ï- ŸøÒ¤—}"ûG{§FO‹™¾xÆ’™#bCž‰k®ÉM8X›—øê–üUI‡¶$Þ¶6åÈöuËŽî(43¯O?¾³(óÄ®âWØî’ºÒ¬=eÖúòåoìݰâTCÅéÆÊ7÷mZyfÕÙ¦êÕ6çdËd^\WÌ1®„+%ø+ç6ÈzÉt­¹ÜFY7®B&È´\%ÁbWÍmæj¸ZÈ­Ü6n;·ƒ€r'·‹Àr7WÇíáê¹½\×Èíãö|àš B_åq‡9 AéQîwœ;AÚÂä^笭§¸Óܛ܂ØsÜy‚Ù ÜÛµå.ܾ˽Ç]æÞç®pW¹kÜ¿r_çþεr7¸›Ü-‚ãÛܧÜgÜîsî.Aó?¸/¹¯¸¯ ¢ïqÿä¾åÚ¸qßq÷¹ï¹ÜÛÀ‰œÀ9;×ÎýÄý¹LÎ+äNr¥\%WËyù_ä]ä]åÎî‚wyùò=å‚\KP¯“»Ê{ËÝäzÙvig’Ë^’¥sݸç¹¹Oå¯99;y:mwº®ôP2姪ª`ÕZÕÛªÔ®ê ê•êOø1|*ŸÆoäwòw»Ôw®Ïw]Õõ{ççæn»Íï–Ü­¶Û›ÝntûAÓCó´f¬fº&Q³JS¦¹Ð½{w¯î#º—t?ê2Æ%Ëå —ï{öˆêñΟ8ÿäæ'=ùÞ“_ô”÷ôë9©çŽžW{~# J´†^š^zêÒëšn°îYQ—ãªîÐ{xocï·nÝæ¹ms;èvÝí=¯ 7êSõ§ôŸ<%{ªÛSOm7L4äŽ.>3Ü1Üwïêîé>Ò}žG®ÇN¿{€‡ØghŸ>‡û|Ýça»çsžFÏÍžµž_ôåûêû¾ØwEßk^œ×@¯^¯z]õvööóžï}Àû]ï÷¼¿ëçܯ¿š‡Ùâ9[€b »pÁj½ãP~µ‰#1S0(„Hpnm½vÆäêtš6n(7¥ŸºµÎ|¹ÊÝTÁJ—3^cëáÎ1³8ì€p'1 Âíi*x^páÞ½ªµå…;˜k3kh`ͬ9©!–Ų¤$z¬,_[RÔ¿¿®ÿ·%¥åÙV×_¥Æ6$5³¬¼¼jã=_¯oîÆÂò,æúËÔÎ:·n,.ýö[Ý·ý‹‹ ײ•®¿JuԙŠs×úÞÓiÐ×Ghƒûà j(cÒå‹ê6¼Ï‹½± c™ã·ØÞÛ ‚‡Ñ{âDsó‰±Í±±ê0s½D/»—J£WÞÐ+»è•IB›öLĉ¹s#"æÎ=qæÌ‰g >Z»—ÓoÊúÆ >w†¶µÝ¹ÓÖ6ôŽOXfnšÑ`yhAžËC “£[í^íÝíýÝm³ÀngUµZHE¹Èጷ?…Ίî’4c>¶ÒhaŒ^5ǨàäON«Ïtn3ë ÍëÌëš­Tÿ¸¶6ê4óiD76š…mð¹b­ÚßÈ.ðTõ¤ÖÁ›´Áô6‰ZMññɤ™âfHl i5¾ayãBkc¸ap[f#¯Àb)HEh:ySVgÏG}¾°´1¬Ê½íŠuC+7ÖFM“ ǵ…vCós¹ÙǬËFç0ŸI>¼-:Lo;mU;úåaÛ),F×<䎢ë d°‡@mù±’£åG+÷ »® ƒ›pÇOÍ Þô|Ó÷;@O¡+ȱ'pè㙋Ê,šÙ£BÁ'÷;VÞ²B¯Îƒ ñ°pôÑKã÷—­ 9}óÀϺ €Ýß@×´Üâ¼â¼Âx_·¯ñÕWŸx÷ê±w÷~½8®ì£Â÷rÁ5üÛøwã…¶ð4»˜aÔˆ™ÏF¢j&µà¹C~4Ñȧ£/NO Yðì:õp;œª=´©i]SÖŽ´C‹jBWÏ_ŒNƒ£_þ–ýœ€ªÿtY…žQ7zÎïrøû¾ùü¹}7}o?® ̲aä.ÑÒzR­¹_—_Ý{ž†ÒìD˜Óxp±G{Øž¢=ëÀ/î*.œ>¦ñác—JË•=^­ìçźÜáš`¾ .ÙÖè·çãè°gΪ[Òð¹Œ/ö€šGÀ?Ó!﵋ó|`´.1ó ô÷Z194dª+vÁ‰1œ|¿ù»}œÀ=†Ïx-ÄŠÚ¢™ «.Öµ49uúÍfëæ{ k¨ ý+?.Þ“ãª[Äï®r°yp.Á°í…ôÌjƒ³Ê*´©g¡Gmî~ë »™+$ªiMÜŠ*7Â%K<£ÔÐ2tY‚ucÖcV«®®îÄ唪ŒÊÔxý¥1S!—³.ìca‹ÂÂt&SÄ”úÜù»›êèïVgjC¹Ž¦Ù˜\³èb春Íb;B…Õ‚­‹±½‹‚µ/´ÿ&i¿—¿6TKØ꯿ö5†c¸ªý ×>¸}ûÁƒÛ#<=GH÷íxÐüõ°vÀ.ZaSpIíÊMÛVîÀaªÃ§aÚG-°ŽàixO·<÷\-°¾C±/úãRW(ÅQ¸ËÄAø¥kÅÚm%yÕ¼„µ§ÁW¸9åòÈ‘S¦ŒyyÊÍM•¬¤Ò9w!¡·ó4>Z # ój ¤üŸ‰÷œØÌñu™&€ò-Wp¹ý¨î˜ êl½”‹T¹©c± Ë^X³ãd+¬Á¼×¦ÐÜ)Ig98sí_b-Lú¹CÀp 0d:é'Î1ªñ]ûå8€“Ô°Ê ×«`=ÜWJãü÷VNô¶*DoñïB€õÎÖ¡w†bºÚà“­ëìqâ2Wcáœ×"vÅÔL{în<ÜE‰ûíK?°ÜÖi`f#7 f ¶í7T„äâ=ÁÞ­¡Ìñ[,ö6øà}$DÇ2&]„ò>@؈οåúnMV8MîïkQMÚX Œ"XFóÀˆeú5P¦ÖØntÌ+mhr¼o|Ò &X–Ô+Àåª÷Öß@ݯHW¯ª³Ìš€2ì>Iºz寽ţËDÁ¦$üŒz¢š÷&vÛ‰¾Ãq¬ïìm™l™ úh{ï_çO]5¿SQW¾UÐ°ÜøÐòÇ«õ~áô Ð-|?¥ªBoãûÆ÷Q˜é7{þÄÌ™¦Â嬀×?üÄ"u]¼iQüi¤á^/zýö¶¨ß»Àµ‰ï âú öõ4¡Ð$³2¶ÈfՙꦜÈMÉÏhJ­3Õ™XšÉDÛœ\·(Œ±caÖ0]érDU}åÎøÝ”\Ç^©«£mS'Qœþ`LYY&SÖŽººÒe2¼ý²P²©fkm)WUÍjVVäW䛳w3¾¹¡¡Yâ©™Ùùîù«Wæ0Þ_µªtõVV¹¶¢hgeõÅ‹ºÊÊEÕÅÕÅuåÛ¶ÕÕ±#R›QÌdZ±¢ÐT’S’Sš‘Ÿ?}º.'?£´`C^ÉÊš¢Zþ®šUo­©¬¨¬Øbf»y©‘ؤ¤ØÔ-™•†Ê‚­«KrxuѪ•«óŠ ÖfåTN¿¨Ë¯,ÝYR]R]X·b[G&‹ª3m[QWHâ’¥•§ë*sŠ2Öç­^¹ªˆ´Ía«·TTfnIe¼ÔˆÄ|v›·TV¸WTÖl­fÔëÚ¢š•,c©šCªæ“ª¤x‰©pÅŠŽ&êLGX]ݶmåuÔÑjêx%u¼š:^±vSñÖÕ¥«H[–³ru~A~Av&Kå¥F$óíÎ6çWò+VÖ°jêuiíÖšM%w–VçKªæeçç”K}p4Ña@ê_9‰‹3Šò¯.ÝY.Mc¥…ƒïàm&Ú'\$=+´¸}±ìðTâY‹ø¤ºv¯C¾L|>Õ‚=h[ 2Ãq¼ZvµS:Öü“–ÆŸšñ ¶ÙF@ºý9[þE5ôĤåÖÀ^ÃûgóšßÓñI‡Žÿ¦“R£wz•V\ÿó‹È¶T]ÏîEXƒ¿DÍ ènô®ÓA±Xgï• ÇšôŸ|5àsT®ïó,:RÚ 1ÀÞt>|þ?+ÙŸxîo*‹ORØÿ‘éDáOšî’ºŒ¶IpÐî"êŠè +zEcO ÄÀgŸf b·þ¹îü0ï|*Û˜W‘¿%å¬O2ÃnØ-:zä‚0r(D/BÙ ,€3ºA5ÑEfw£ï>Óäo)\•–™n4‡XB޲×ëš·Y7°H–”œúLHâö…gyœ D^ݰšØ-»2ÿÃþŸÄß5–o=Rm5ï²d^0^ˆd/šbW„­cGÙ–×öîþäBãò“s`.fŽL³(êlo °>³?ýzÀw|Ö«ê<ûõÈk3n Á¿` ):ÛɃÛéV&ªÅýØÃN7ítYhXÔç.þÁ®¨…Ê"â(xSWË®Š½ÅýY˜!.p%ÌbNfœ¶QUxºýˆÒ¬…ÓÚià>ítµ€äÑò3L§¤a 0nA8þóÌÃtQ‹{í-7ºDvüíBâ9ñš@~ß- ‡úâ<šîZØ+J¥î±FE¶S£^‘¨ÒÛ^q¢¶µwE/ÆüÛ\‰°Fðøu§ýU~‚}»×Ý6Æîú8J@8å‡pʃ᪎&˜S#ôHTµQàû¿Žœd­ìFQõóÅe;=Ìnü)[•HþØýM«“ж§‘³íù9Yõu†£fú gA `2„Ãçÿ(,9ÿæ7Ù-v#Ð}?9VÀˆ)‡0ú1ðað˜À&œ„øC6„œ%ò„rGÄ@a©Z,³k_³èÅϽÊ>Ÿù†ÜÂÑ g 'òÒ~ÖoâwÜv;„/Ãp5ýÊ{rÇð=®gÖÚzæÿ />~ù%¼M¯®*©bU¬άz¹Ó‰Çᯠí=ÔèT. F3y ºƒ¼&ùzfUXámY\»4î.*ÈåÜ9‰ñ¢ÞI|ÅøÓp5ËÚ”½¯ø8Í(€÷„ÏÑ2˜Ê&7r0®N7*Èá¾.€¯608800ø½[·Þ“îà@C£¶mt«ÏèÑ>Ãßšxc¹!3”૊…ŒÛߺÊ>%a³@…¦ z¨¡ <”öç,ÃÔØ„JqбýªÚ•€³ר±•Ï_´üáo6Œ·´>­£ÛÚZ[Û>uuÔvC3d(ÑWÕŒ£–ϚȆS˛͊Ïõ*\†âCHµ±yþrOÄQ8pè@ ³îݵÀ0‹â®ý9ÁÿPÑ»¯Yà¦dõJpS£,E »~»iįÔ8̨„kF¼¥¢D7õ?땸óçw ôÀ¬vTgvøÃìŠèuAt…#2OÞöÉ;W< ë…5ä DìàÁO½uUíÊ•«V­4 Ÿ#²„Ã×`)~*Iº²vÕVwðSmÆR ˆÈ¢µ$ÝZ[»Õ@å!bPm›¡”jSIR©Fw*ZL=Uà²úsœP±<6‘DU±ŸÃp©áíNvO5ºÔÀ„ˆå¡I )ªŒ À è²Z2×ïb-Ô߯,ê»øW”]›Üq-4 ðÀ®©!ËY }'ú¯ûÞn\r+òP@+êsFeøš¦ŽbO—`…]¿šÁÛµvçóKÅâ_nΆgžaÈ»²ÑÄpô:¶úõ½ì ;;äÄœ9 sŽE?âT¨k¡Ëö\f0ž–6ênâ_nA;Ü×ÍiF;~§„ „”„âøú% ˯ojØÓTÒ”| ¾qéº8ß~]„””"cCüîäSe»êê–îOÚ¿loTQÂ2²kÑeÂf«R¯ìiÔ?lQÛob™@ÚÆ=°€6`ï:®ƒ¯[ıöö±j ‘ýÏÈÙ[¦Ô?¼gÑ+'«ÉÛñ4aÊ<» ö±â q¬¯£®K,þÛ3‘ D2èÚß¹‘뤜®¥ áûÏ¥¦§Š_ 0¦ý)c{jÉ&ÔÙ7 NÜ ìðdRê°¢?ìtº/Î+dŒ€ôÒïà&$]‘tV’å~—DþQòøˆ±ºò§ÛC£ú½œÖàOpÌc$/á;Á~Ô]&†Ð wµrÿ¯ G‚²Ã0Hgù/©Ž f[!È*z§6 ñÍ/°øØ˜˜Ò.iŠ}“5575³sñùõâ°ÎÄøX6»)öqâùøf¾= ÍÍlKlóðOÑsCŸ>8‡~ŒSá©É {º‚ú<0èþ5ìÇU° GÑVuª—cæbîZl‡r,wÜõ è…‡,Ȫ‚Õ |LÇ𜌞ÞSp>jqZ.¦ÓØ“á¼á+ص°€~uk`0† 1â:Ü‚OŽFwÝ.‡Ã@𿱜 ý ¯É^-ˆZû"4 ͦ:Ú³èÍ®ûámñ‚ÍSLŽ9ÙîiO–&½ƒÎ` a¤ã†p¥d0›Á áV^‚1Y¢Rë8rÕÛN«Å/ÄÞ‚½7cp²Çrûö2 ©D1f€¿iÀ™3U0’Ñ\äÁ‚u3Ÿ`ÌîÊ XK™Õ”Ùfp†Ú RµTk$vÈ,g¬ÈTPuü°Y:‚u9ºÑöŠR(û|Nî(WŸ jM¤€‡Hb5Ò‰n Rˆ‘dRù$÷ˆ\\³†¸kÛ bž}í‰ö_ÇIº¯»¤ì™= ýo K4¤ª˜o׫ó‹%zB,eÚ‡àÄÿBáN>ô+µƒ±ÝjC‰´É“naw²5ÃÑè‚N)¼­F¨tˆóøz`æÄÕf±þW—B¬ÐB¨X¡æÿ)ЫËõ? Ò‹ËÔ°ØÉ¬]Äz»‹ú¼èxŽ&Ôÿ—EæQ‘ú.û<Õ±…Fý#ñ rpÒݸÖC(¬ÇÐÆƒÄs§݉‘âHòÇã/ {‡+IS Ì]Zá„0*?édõaÝï¬>ø÷“UûeðàÙ›¹Äg¦}Cª?F=›Íð™(ôÛÏÓ<^`ð &ÞÅ5 1î$®Åpɰ!¾ó# â}Sxûì/„í§¥>ñ³ÏZbˆƒO5ŠÇTøD8XÖR°y-Nõ£aäÜp6°` ¸¿w>®R")¬UѪëGÛëÕšŽS0ÑEÐ;£ aŒšfõC“( Ca<êçôÅX¢X7tØð Ì#þŸ7õD®ö‘¯]A>wlw\P_ú =]+×lÞ–¿…×03ØÍ|iVÀ—Zò2Uš˜ï˜ÁƒDwü(Ó+»dê± ®PÙzjq…ÞéÇLýáLET€µgý¬”-Y8æd›¥Âû6ƒ^±ÿ(Ø_UÁ+â6is„ 6­@ 9#A ná+U¤äÕ¢×À öñšÛU°¢Šƒt)(ûbzh/‡ž›2%4tÊ”s¡—/Ÿ;wÙ©>{vxËùó-Ò>ÛÐiÚÖ Ü( ¹íŠ&Ï”687òQF:‰BйÑb)}H„‘£½Q"0ÞRjð¦ßãP’Hí§IkðÂ}E/¡¯’ÒP[òa@¯ùoqpݪhƒù¤cºÒ!ÝJ@•†í4“öך±S.‡¿ÙÖ¦Kjðñy¡eJýxæúHËñõSZ^p÷ñiHjk{3ürʇÌõ‘Âî?+RþÒ[i1' ØŽí‡ÒÞb—\5ä¡Ï»ÈAUÇŽ 4IЧ“oè§–Â=b‘0Å2t‰OáI¯Ë¬ ÉÉ\;'ê^Z±!"wxz:½¹?Ý\|v=t©>ço~×þ‹ë¾Ê¾›Åf7Z §zî=^y´&7Ôu°}¼òÕ±åkåµ'7»î¯,a+_x©¦ôo¥'2jâkg›^Ž_ÊÛýp¢¹&übkjóæÃÇ«ZËug‰–Ï)Œ-,z¹,26mjbñ‘oÒjh½ŽÙ!vuÌÇéîžTØ ‹i^ßw kTÏ¢ìY)SUw°ÇPì¡Ü­úd¡Œ^†B;ÐCÙi¯ãVÅWd-?Xp‹1–á= o„/¹ Šf D¯D»—Z£ +7 ‚Û «ôià—Ö†ydî0ôÃÓՎýSZGy-1½DZ>êŸ[;.å.¾ˆ À/Œª¹÷-7ЊjUà}'(³à¸‡`œˤo¿YpØ–-øå`ô°mÓŒn?îÛ÷;Ï,«sp¾Ü(jàµCIIó0‰¦rpÃKl@Ré‚ I¡Ã"O™‰½óÁ!ËѼ áççæªî‚ø}þé«ó,«o—¾WÞt¨¡éè…Ý?,7üM,‰±ìè±ïT¿6â *ã_äM I© 6…T šƒÁ°k{ê¶ôô‰ÁPqÂg×Kèlñ~–“oϲÐ2á9b¾ âDœafìË{&¿¼ÉÕrÞOÏýbxæÁ“o”BðvZbMXôMÅ"ó‚–ÕàŸsÞôà™Òy¼¨°k„–ºã Ø 6ueÊÄÈ—ZS~xÿo놧…y¬|j ;ËJßCîñc;ÞmUÀ8¼/<¼eF÷ÓgTkúÀIአËà4m§•WT„’¡,¯&¥*Ùõ²ÏÄ©¢ÿ~§×ýß~à Ñ«ÖÔWJC™-OÀÓö"QôÄpQz£'¯ÑØaŽ0IE»Ñi Ê•“Tè¡lÓêúܽ®A0H|¦ÚýÿÆg¨a­~ûÜ=Œ®MÚœR’/U<šê…p©^¤'œ–êÅÓR½âð'Åßàðõ£Jþ˜«¤øxúReäè‹§,ÜvqŽÀ,›,›÷òâfUMr¥‘y‹Š‰Û{GÈ‹G¡¿`Od÷a˜Ù}â*ÖÐ,U‰-¶#JiŽúü|2A˜×žd±e9Ú£-¶eÿûi^¤ìøÔ±ž2.* ã¨p±¾¦©ì=0bj ñÓßþÖc›e_ÿ;_ÚHÝ*‹ âm(Ÿ¸^R‚\ûìéÿÍiÓ/u„j§M‡bH˜®ç>R²Í,.2+Ú´ä8‰ë‰µJÞ½œ£Á<ç8áò¼6mœ?*€Ú¼ÒÙ¦ÅÑf^vBò Hmµù·ÏÁva°ãNh´U7r¢ðøàÐvä—G™V[9 áR xX'æ ¥VÐO¢êR,VÐOú›†°ŽÊIO iç‰tÐöÎP’¤/¾¾NÒwÞ›—/ß”¾ûæå³â|ƒùÌIÚ¥œ/ñ‡Õ8"‘x üãä”´”Íþ-=­2) ¶=`ëÔ—Ñž: žÇôJ¦.éjLÏ'Rø<Ãtº€Þ =ŸÇ©{`ªÒ+‰>OEø0-- À¸p-o£%¶p-PŒ„|{–––(ÀX¸‘oÏPãÂH1ò¼¥åÚí÷A³ò-Q»ãc£RÃÃaÜv_CÅò]lÓvþ×GÁæXCS)@“=š4‰ù|•›ì°‰a“8€×Ø39v›Èõ|»/µÊÂøð¨TRbw‹•tÚ~ÏP±”XÎÿÇyô$ý Šö|Ñ‹‰íöv/f”t„­—¾@å¶Í"5mG0¼ýˆZ¼§í|Ól‘\\qck¢UÒl‡‹k—\Ü{´} ÜÆE°FüWbFÚ&@дiJ¦±‹¥k£³³Å¹›Lö·£=è endstream endobj 694 0 obj <> endobj 3097 0 obj <>stream xœ­˜yXS×Þïw¤I¶Ö¡5$ÚfÓÚªuªUk{œçQg™AfBÈ<¯$dB$Ì£€"((ލu®ÖÙ¶¶µÓi{n‡×žµ9‹÷Ü»BÛçœ÷9÷þwÉó@ž°÷ÎZë»~ßïç·Ä Ã1j{jF¢pƺ¼ØôÔøÐ3è úÕaôkah2Jü‡`à/Ì׈ÃG‘a`ä å¯FèÆÒ;^†·Ç@ÛKDƒQPÖ²"+[’›šœ’1%:jçÛÓ¦Mÿ×'s-Z'ùó?+…©É™“ð›üÄô¬ìŒÄ̼÷"Và«Óñ"’Ó%Ù)ˆ؄„Ä„Ðm;bÓÓ"V§¦§fggåGLYñvÄÜÙ³çÌÀ¿æoN͈ #¢²2b3#6g-ŠØ•˜,JÍø}>ÿyAË—eÆ,ÏZ‘½2gUîjáš¼µ¢uùâØ q%ñ›¤ ›·$E&§D¥nÛžž±sAÄ» ý½zÊÛöé3fΚ=gî¼wæÄÄb1‘ˆ$Þ$¶oQÄ$b1™ØNL!¢‰·‰ÄTb'C,'¦»ˆÄ b7±’˜Iì!V³ˆÕÄlb 1‡XK¬#æë‰wˆùÄFb±‰ØL,$ Á#øÄxâ1AÉD1ŠMŒ!^"^&Æâ‚KŒ#V`‰ˆ$â9C7lÚ0Ͱïœ/ŒzÁÊœÌ4²F²ŠÙ3Øeäd²—üçðŒ¯è}qÛHÆHÉÈ[£’G½ntߘ}c®¾4ý%çËã_®+ä09E¯ ¥á•A®jÜðqñáSÃ[xxÞzÞ~$ÿÁxrüúñÖ † íú'|6~uǫݯ…¿xí‰`!mMC€qíô¸ƒþÐÏrèÝŠ»3諼ê4-A|µ*^Ë—Á-~vŒCëµ Òî)?Ü™<˜Í  p«ÆªZ>H,ÔlГ2haò¡ §BïqäeަMš^øüôXØyßòI8çsú ÎÍÏÉL’È _«u»]”] úa“ó‘#XTU6¾=»6aÃÆ-è77a¦É­Ê7¾#ãËØ§-^=½Eo1LC¿òî³zá\OÕñ[—¿=Ý×HŸG%QêiÓ©h“ó¹"ÆT¨ŸX&k=Qüö#ÁÐ|éc`âÀë\” cÒ—ê@Pè•…2ôz '«êŒåÀ˵~ÏyéGå2öEƒO]¹ï7äç%ÅJPÈ…fåîPá ò³÷H=µ>w¹×GÁipéM´È%)’9dª ë øš:?{•[ã̽ü,áÁ÷áŽ3›ª»Ëø¡ñ4Ñ_7ÕB<‰?‡s~ÖŽƒm,8ŸÂÊ6Q%®—SÞXÚÒ@r¾k¨ñîÿýÊ3ˆ+@%2ÖƒO ²€Ü˜«¢1ƒ›y’­:ý65ÉùZà-îuÐe hIk€hË֡ѱ"_}iéÉê'ï gµ÷4Éùð>,ç:«JGù¤#uY”ðÀA!•*Þ£›H,¢*HÏ 2êŸÂº§a𽉋¦¢)hš3ÿBô77®5õ_¤n\ïüÜ'?ÛÚ¿@ Ìçv7$E-?4ùÀz*iGbîA@îMo?¯ñÙ©;ÔÑ ]MÝø±³$'èŸÚ7à at"·îaæ³´2µ^ ´@iËwì/‰w¦¥¢h´å¢@œñë“ãÏ¿¦¤esæmÍXø(lÃÈ…/ž„£}BÚˆ¦¯<ºÿêžÈùŠš‹zñ2ízö ={ÕÉm­ËN]¸½±&ŠÊe+…€L5õÞ;îߠš›[+C ‚Vúi+Ãa£qmêñ¾þ}ê*}ŠA24ui”Vš:]ľÈÜ{7ääó“¤kÔK¹MX\SRÒ[ûŒò÷´i37[JÁQkƒ¾Dí0Ø4@ ¤f…A0ðnA¹¤(qF?ÛÈW‚4KŠå,ä9«JŠ.`ç´)¶(,r‹” š±ñ±e¼`ÀQãÎÀÊ»{´^hh.Nà0:Ôn©ÛdcyEssA0+/[žCÅÅÆGÊâ “yga†É¶\¡1/Wò¥ì‡¸YåUK ­¡£Ìß-éÇVÆ?4mƒŒu]_ª™ÿ^Î[tú(-VÜágoµKJ@pÛ}Ϊ+PÈë0WYªÀQà²xŒ>­KÝQfVêÓË ¼P!qìŸc² %f>žŸ3Pæ<øpI»b“, Ê¢‹2hæáI*’ =½º 02îö<çXÛá$®ÍcúYn¿ÓQ J@…1` 9麪r“ÂÓËçÉ?¾÷"•Ø+kõdk0Øv¦)éýbŸÅy5)f!K[¨5PÛ øNw®Ü&›°|ÏÁµiÁƒ]ÑÔјòIîÏH;°=ýØ÷2®I=p˜qƒ½°2l f`*W^$JÕ9€¯J»ÈµËЇ=!mG{QöšÆU½{¨Ó1w³¿ÏÀÇ•»OÁ-<ÿéõ"ìÞ•2v©Åk.­&¿H€HŸ%Z&ZaÒ*•"Q¢r?~wù=Çœ‚œÇO©½Wêo€ëà|vÓ>Ž+ßq ÂÄ ›U§à?Zð½”û«áW«-ä |—ÉnЛ,Z½ !fÓ®4M®V§*`f«‰¼ÇZ̋ɤák2´)@KŠ‚²úžÖ†ï® ®Ýe2àkôîR+6#;õ ~Á|Ê ù@^ê‚8§Ü¡œ2ÖE]iÈã yºÜ}h!aƒ;}§ë*/ñý¨Nƪ–Ì߯øŸFañ³·¸U.Ð\V·Íušxðk=RÉvŠåëuü¡|Úà,tƒPluÚÜG‹xåÝÎþâ!û<ÓKsc»Â…sbèXá;×Ë e€Ô%N*?¦Ã3Ìe¬(4K'Û·œäœ˜¾ewLÚ¥¦ØWlxrßÀÿm²E)’uQ:~!û°Y<§Ù¡Á»CkÈÕ¤&¡7x’•ºT !“+ Úîœ=£![![ òINLF…¤©·:ðã-ÁhøÅï)Ž“ÒägE¹TN<òJ[©§Ž¡·ð*.ºB#÷ãucÿûºýûªŒ¦#%ú]Œ=/ž Ò“¹%V7ÞáGA±´lVñêR4 l%³l:Wíw¿Á7~´õÕ]dKN}†H®È—9•2WéÐ5Ø·…­\–žÆÓÁ×õg÷Ä¿ì6 ³hMÃvu¢~(êô‚./úÇ“áœ?N¡Ë ìÀam°«]‰¥Q¥¯Û—ÍãÙlZKymûGŽ’@[ÓÙ¯àl^#úØ–m3¹ß Š‹ë[­Ö"G‘¾ ß}Ç‚kd“¨*CˆG¦phýr_îĵ¦F£pôn|ÎãD–˜ízƒÉ¬5pÝô›n«ž«nó9³¯¨Ìnå¼iM £Ê(42Ú¬4)jO€ž[þÆÜ 眠à0®\®7è´é µZ½Óè‚é…K){±Õfóèì¼Í:“IµGÛ‘<83Ñ4wÕ‘¸k·»[áKÏ(ñû&bM3K• µ•ßÜp¼è=ø1÷°¹JRÀ»»ÐˆÕ˄٩ÒL@¦ä5öœ;òk÷ªóboKg((gýAqI¡êÈ•±J-%¸ÀkÌÅ¡Únž» M»ï__}àÒÿ³@¶ ‘\ V?{£KãÍ ØæqœAÞXG¡„š¸²PÀòBmšÉT…_Þ€/wêíY½h9¼Àƒga~C°º¤¦ã\¤ê"ü惞øZA¯Qæe(Õªcxu f·Åi±çþ¬ê¾ãÛWàq›Š ¥:—Ù È`™/”ú…“#VSªó…·TlÀTÍf±ÊÈ+’ñxlÀ¯NMÙ–F4†· gˆ%*À×µ]íT¸Tv- ärqN@ÖÔ\êù°ªo Öw]lB#yÞ¯¬u5¿Ò·š~éƒæ}‡ „s/™& “R/2ëÌ:‹Á¬ã¡WÍL#;ïaÆL·‹á 8çöî¾µ«vÆ¡a+ÿEó Ž]šdýZ-&  ·»þÐŽu1‘›¨¤ÄƒùûÒå%Õ—›~ìºGxâÈÉPØŸíô_qéMÉW÷GÐÿ߬‹v²/Â5bgÊŠì´"~Š4Nÿ ÿ’ë®s9j•T¨Üÿð@¼öô"üÌqa>úM®×î²–`öñåö ¥åëkÐpÿ2½L.I稔ù"¥Vô@gW¹å¥*‡ "©T”[UÐx gÁT¸Ô-8¦ácpŠlÊ­ÍÈ“ÉEr·* Tª\Pâ“Þ_€^C’'¶ .’ÒȲXŒÀ4–dý5XSa¨Š"Uí4d4}Õ‡Á_ãnLídTj÷ÏÛ¾ºp‰jlê¬ÀÜ]íÓ* fƒQCéfÐB_aM}0P׳¿m æí4 Íž~nûw÷Î7?¸Œ³òÞeðß¡u|…¾To§ÕL´NÆê3Õ¨p_£5Êõ³Ñ¤2Ê-&‹Ñb|}ä¥O”‹w†zµÝ¸©+—†l¿¨ÎQGЫxv3ËYô(ú"â’íøWB¬q•H¹ÍëiþÝg/;—œóðx…ìózzCÄÌBWIÆïõ:Ê¿´*z3ûÒ+Ùw¼½3Xè˧8'Ä… ‰ï`e×ÛôÀDjTzY®ÒÝuHp ¿À»Õ »á¼ÔÁNGìP[‰å$ýJ`¬ïK¸ ãJk.z“J#¤Zë))k£[á0ªþÛà“Óp¯ÁÁÛ¡JÖãUÊ>ov™@>PXô…1p˜j»$þÌãЉ¦®ìif$ ÐpE|3r`Ü“`~‰À_ûïh< 5‡¸û¶Î@Ä^4iý jû’M «ùî¾!ñ×>øöå/© Ÿ|xä.öØŒâƒôãXPÅ@“oÒk> k£#¸_³æ .EÚ øJ­Ëc·ÚíªÈi-N2()ÏÏ—IòRÛ²uûÁÇûLÈ`9[˜ˆ`5Â9w0Ô{=Éb6(£ÆŒ£×–¬ªº²¢ª#©a÷îÑÞdAF‚x_Æ4rë÷S‘#ðpƒ¶ü'á>¬_W¦9Ø£òûшÁ÷ÿEåfƒ¥¶ââö³0šW«¯3Ÿ‚›åÝÍ}çÁ%ò‡¥gÑ«deÁ•[¹Î`©«ÃÆu °NR’ö‚õyûä¤K´›°Qi­ÙE!FqUðYî8ZV5Ö}¾õœvùÐãpÎ?étúmîf– lZgvÅ¡âD¼{Ãæ|0cgUF/!P¸••…SÖã÷ûÈÕ7öÿ Ç>½ôåÕ=Ç§× ”äøôU×ym6`± Üæ2‹œß¾ùë'ü¦€>@õ±8ÿ@Ñ7\+f5›Ån)6ù ¿êÈ‹ÞÿÁ{{\«q–û+Þò®Vwèf8…žÀí¨îMQ(H¥Dqé¢T@&Šz¿írúó0ˆ=¶? £1GF¯Qª0GjtO±ÿjùªñûÊ{ †ìÌ®OX¿rzk¦Ž¤·[ º-:¾¼Žaãr™³FŠm¸³c¦Åb*ԋЄAï>«ÎôîüðÌã[WÚéó*FŒ62j;ŠWìÖ¥%?§\Vº­þËËý„uãm}ÍÏ=`—œ™ ͼ‡å­eí-­Ø™Oß-;Æcõd¬.½ÃR¬sœJŒJƒP—ý{bEâÄ ±„ÉÏÞìÖ9@+(¶{=m`"ﺎA™p •Òßbñ½®@~v,qÙ” 1èe™ÊZ$¤BF/Í ÀèãÔý0˜ Y\ašN«VI¥ò!ÒÒº]ÅvŸ«’v»Ëæ&ml«í¼o²M*›L|û,–7€Z“L/ÞƒVñd[õé@L&ùÅM=MOûùôIn¶8/#­2¿±®ºº¡1¯.;¤Š¤l µ~áÏàË_†sÒ)t ·îaæ± ó5fI•=ÏMrzDiŽô —­~;Ú—yyåÑx Ë * Êä.mïno8H.ݶuùÂw¾w[ÝV—@lKEBìX®ê’âÆZŸ±NÓ#­×7ãl`ù%d^Ï;:çjÎ7š2µW»ŽÞêhVƒ‚ª\wªmÝ-èïÛ£Býq#+ͬ0ž…DK9œaæ£7ke;„²u¡‡n?[j•ãôˆ·+=¸KöÚK=‡!ExçY·änÃM½YJ•‡šúHÕ=¥µ@¬“ »Óâö¬FÃjøúA%Ù–W›ºyv„Y‚‹0ÑdÛ¦Ì7.”óeµì:¯N®Ê›Œ8TÞ"“ZC†Ö}ž¯ãð™ Ÿ_¾pÛ¿K#Ó¤¡Q‘‚ 9Äì@ßé;§nõod‰G­2˜• µI5IÆ æg”Éêz·Þ;+p¸˜´$ŒB2m’±ÎJt¸«”is9hËà ¼xz’¥ +óžsàfCƒûNs±ÎµÛ³š‡–¢ŸÐS-à6>8Љ<¤“JÆn5zLM©ª¨ tÖ•Á2^% æÒ»™Vßànf€/ÐOêO{Ž”â€7éêèWÛM`à«0ºb`9—¯Í¿qf|€Þh"‰^ùx! ƒ Çð´_VÞ›’uH«Èm·ñã†#ÊøÈ‡J¹·ïú`pIÒN*}JˆÐ7'ŸúôfàiÝqª¡§%ÐJb;þJm€~t—Ax“«/f¾ÈZŒ^-Óœì¯÷]|˜Ë²™Ã¿gÞf…†W50¶zlÓ­ÎGpÆý‚[áœçðSz,Ž8ÚÓ îŸ.¿ôVÄòÍs£ƒ 7– ÐØ¸Õ«À<íÎðå¶F]Îü g Ç|ûðWŠóÜÌ8·à¹(‘ ‡!v©l#o|ɶKŸÜï»ý°MPd ÂE^;Ï}ÿ®´t‘·v_pú¯uïYµ#7q[fÈѤ˜ßC¿XÇøèôÞ«–rá„ê›õŸ]‡ä7·àx'0|Å—ˆÆ"¼t(b╥ώµ—¶ž™eûw­ßÅ_±yWÎ) O¼Æ½Ò±{áû¹332©œœ8)ŽÛI§ŸÝk|Ò}œª©möþ×!ùØú§ïþí—¿]zÎùêÿ×I9çá ¸™›%ådU‰ê뫪êkójr)¸wÜ|6~A¿€I|‡^Ë}ÚÓÓ.¹Í‡2Eâl©SU)”:5@ rò²w¦`±¿x-Àèú( ÎC+¸É?+¯‚Ùßìa-[z¯ßRøxŽGĬ‹˜³Qµ ü|Pº´juÙA_zûº?Ÿ³? kDk¹ð%Hœ¾v2n”^÷@¿öZáeé-yûþ'ÞážÅ`2@œT´`WDæúŒØÍ†P'¾®8Q ”aú{ý&ͼìväaÔËE“ÐŽ ô¶ò€4]’&Q)7ýI‚.L‚Ž?IP”Üšsâëþ7uýN‚³X%“Îh”‰WRÑŒ‚÷1ÐgVŠ;Û^È<½Ao6ñ³åä+©78®VøòQ8‘rÕ9|ž#¶"^‘ßê0ä…NõqgQ[²ÙælŒ]SYMÏ}æÚ#MåÇ0;{õj šF#¥×™qSNæ–KkjËËklܲm»0!E»W—þùK—ÆÄ¥æ@\îÓÞž ÿ!“¯pèx)ûO™àö« ØÝ\”Å*ÜÈ„Ù,|7¶îOâf俤gÖæ6´ÔÕ45çÔe„p{«r³úàèÿ^ʼˢG, µNº†v£å1¼ü8 þu`!7ÓQR"Þµy?vwùš»¨Ÿî=„‹|“„s#¿Ÿ*ÐeqÏ5í{G‹¢Þ¢×Å¥îdtZßç¿{Î|Kµ_;Ú||¨ €o€‹flñÉX»ó‹«ÈZž#ôO]cáã'Ù…>‚«ékܶž¶` ϶'EÇæ'Ȥb3ÊçÊIÌ\Àk©S“œÏ?ÌoݾdÎìYÛLÚÙø[Fõ¶µÞw˹÷VoŠßpHšhνʠwA=w: Ž¢×0ãXƒóWˆ×2¡µ­f>fõÀ•ÌŸXhÁu.J)bÁ~x‡Y4dÈ]tÿüWµ3'”²ªï0‘‡5e2åìó[•í™-9Á]`‰‹ßž“/q3¹•rNe¡T&LéÝ€‹ ¾ç]É;{ð•Ô–ì_ G‹ôÊÜ`UxôbµgäH‚ø?á¤Ü endstream endobj 814 0 obj <> endobj 3098 0 obj <>stream xœeRmLSW¾—ÒzXµ²í½&SaŽ nNq2ˆÀÆ"ƒ¡¶´”†ÛöB?l‘诂AYÅ ´¥Ð‚‚bü‹ÊØæËâæ6§a&ûácr®9vÑ,û±?''ïçó>σ"‘Š¢±{Uj….9CKÊsõRRU±LfPfe³ŠÓ¡”éyYÀ]…äõE/¥c8tLdßJnf‹g–ão"5 dj)s­JY¥'%{ö%­_ÿÞ‘Ô´´4Bfþ7CìTèTJ ±–ý¤–R+4ú‰L¶šdJÒLUé©\®/¶KIE5±KEª(Jk$3“ˆ))©Éì³i·J-3èˆ=ZµTCìÖ¦yD¾B®2¨‰×çü? H”V/•UÈ+U$ …ˆÉ@2‘H’|†ä#(ÍrƒD"¥ÈºŒELqŠ8—"߈Œa\|Æeõ1›|¨ Dˆæ€0#Âu€Àm}›÷$•`H’;“‚Û4B_ŸA™MÂÕY¸&_­©¢1µÉ;ö ÖŽÞæ|ç†iŒ6CLÄ5þVÐ/¸F‰0“7Öp«x’­ŸË¶©±ªëK²¡+xd)iÚ_÷¶|¨fâÎ…àóoĆUq u˜Ùí'úúæC€AWpÿ7 Øâ1Í1Ë=qF° $n¼ÀÄì¡lo}ýas4»;ÏŸœð>Äç@#ä8Ì…¶ë†³i\ß…{aÊöÉ’Ù»SῦñF¹ËB[0Á©J¿&|åÊøãi± »ÂþÖ^3MÑ…*ÈUdSejŠ¢±Ó¹ÀàßÄý7ƒÁVl‘» õjaT‚XÎO/W¯ö8ôVkqM ž ±U7 ›EÚùêY°¤‚ {¾üzn‰R—S"^³¬¥ŽM"P‡„¾^}y!õ¾2WÈɃ4f¶v÷vöýÚ1ŒwŸ›é˜öYn™Bë× ?ˆ6ƒåà“g0V ËrH=ÛrPºuo`!4‹\ñ{ý4Ö}ÒÑÔÒêtÚpÛá–FºSŸ7C¾‹7Ëùp5|nnœÉ_¸4yÚ7"è?ýåèµW‡ýåa¶xž8àh¼ ‘Ùâ…ÔþZªžÆšnwgÿãQ À‡I*°”:ÖÙEÔÙ%½Mf›³V¿7gs§¼:S§&òYÞ%05órñÝ™©Ë»½ÒUO×c‚y¿~ìêå±'·Åܾöé5ÒZZz¾¥ÊÓ–jj5t-m:6Úv+ð44;<ö³Äƒ? 4À<˜”…é˜=¿sÀCÖ`x}s矮Ң“'ší­G\-NÜÞà²ÑMÕoôŸí\• ö•äJ±´Ü$Ó¬Å2x6)wž'6-ŒujH˜h’UÐX“ý¸ûØÑ¶¶v¼£«½›î¼:o­VW«)'ïL„{|ñ…ÐàÍàsïÏ]—o7¶À{mûH@Yi8€d•±ª‘ëõ¬—':Üî‘¶nüOðXÒÕ”îQK&OÛvW}K^«íÚf-mUÕ\¼¼ø^|€¹-¬"É*¹O øÃáê@%þj z ,}½ ¢Ðh¬£±Åñ=#=7p°†ñlª+sîp°ó»Žºévd…±ZòåàŸÂ3†í E´N¤Ô]¸7xq_ÌmüCFâ_xxƒQ &zЃ ÿþm, endstream endobj 679 0 obj <> endobj 3099 0 obj <>stream xœXy\Wמ23"!*j­‚€PP¬ŠPqWÙ—(‹"¨àRÅKÝ* ¢âU l*.¨Uë†P­bëÒ¾vQûÚ*ÕžIOÚßw'±­ý~ßß!wnæÞóܳ<ç¹È‹NŒL&³ NL]”˜¥uóÏHM¦‰½dbïNb9ÁŒß} 9Š>Ì„=O­‰•œXYê-èíĉ¶pÁr»2r™lI~áØŒù9™úä”,íÀi“g8»ºúgfˆ¯¯¯6.ç¯_´‰ õÉéZG:X”˜š1?-1=k„v,};5U¯MNÍ™Ÿ²P›˜ -››š8O«Ó§êçÏÏX¤8ÖY;tðà!nôW˜>-.{¡vJlúBí­„ÿ_3 ÃèÆ¤ÏôÏ;?`A`¦naPVpö¸Eãdž,‰›š›–81)<9e²~ÊÜ©ó¦¥NO›1Lëíãë4ÐÙ%rÓ (7÷ÁC†zxz1L?f"ã˼DŽ3ý™IÌf2ãÈLaœ˜©Ì@fãÌLg\˜Œ+3“ñg1³˜±ŒÁ0îL$ȼÏè˜ÁL3„ fÆ1ÌxÆ“ a¼˜ Ì0&”ñf¦;#cz0=&…éÌX2]?&±f>`”Œ cËØ1*¦#0öLcÁŒfV3gdCeKe÷;yvZÝé±\)‘g˳ˆ·(±hWØ)\áŠÍŠËl8»Ž=ÍÙsžÜRî&ß™÷à øÆÎ½;¯íÜl)·\ly©‹®ËÜ.­zY}`µÀªÑªÕêu”õnew¥ƒ2TùÀ&Ì&ÝæˆÍ“®ÝºzuÝÒõL×G];l;ÛæÛ~bÇÙm°kVõ7( I¤T` {KaP©LÜNB:)ÀÅ-†4g±ð4¸±§N/['³Ï¡F¡”ŠîÐ%½Ôîh!´ÝU'®‰Õ‚±š>¶sªöë'êo]9:7DßÒ™?9è2îrþó'Æ«U>÷9¥á}Rj¤v½E^€l0(ПE\ƒÝ`u,d⟘k”+ÀŸ l-nU€Ž•€SÔ“èÇlí‚ ”A´þÝU¯ÚÃö1¹XÜXÝX}ø*¹Dn'|æÛÄ«ÄÛ'×_u g2›ãªbªg$<ÞgÁmðf[«Ó§MOJ×iЛE[ bU¯ïÔÌ Kœë¯Á –ž8 ð3(dÇéy¶VçÅ“ú:¢ Q÷> ƒ12ð7©)@…Ð~F××qFàèQ3Û::ζÝÓPôY`'nƒn²Fp‘> ë®­¨M­›òå:”QTqØ p%®:Qߎë×0b‡Ù<÷ðéîô>èx€×?幆œ”ÚâÅÛ—ìHà)LL/è ?BgÙ% u¥5‚†µäÓçã챉M·ö?|îeßK>£I>|l< "‘éú‰nUfö‚äè© &Q,Öžoh”‡´?Õ¹ÆeéŸhöåìÊ-Jä¡/›C‹Fùè[Iø¾‹q-@/˜õâæñ‡5{]ß³Jø6ë ¼y*{d.•ra$ @-й·â7ì°±?VÜ´ý ú·|ãêüU„OÊÛÕ¤S5HÌtÂÜZjw‹¢¨Wt—îªïÄÍðXÀÇœJCºb9ÖA9ºH†Çæ*í"ú•š2?Zòp½XMÍþÀ…̉ š˜VyC ¿ ÖhÅa—›AÀÝ9}èJ­:„SB…™Ž®IÔÒó¦RÔhrl(•A‡=„‰Õ Ȣ̨Á΢FÃ$cµÂÚnâËRÙŠc˜´Åwt c75=mÆä…‡[Ômè2–#£öÎnˆ¯O¼¸¸•ÖŸó7íÐ[#VÑ—˜mˆ{p“l `}Êá¢RZiä%°0ˆÚ‚þì·¢í£­Ùª™“¤ò™}äâ¾=Bæþ5»Éaš9è4ú":¢ã¨P´ÍSC/vÛÅý{©åó‡r’sò–.[­Y²ŠÝÊ)«zhsfL%.$ª(ñàüŠy§–4‘+äBùé³$cÓª¢¥< bq$¤ Ãã£f§¬­/+½T¨nÚQ½mëGÅÛ{š"&yïmþoîÞ‡ÕxWAyïŠÐ- d±ï(àŽÙµÜ?®8(@ìS ë‰Þà- ÷a0T€û#øý€~ÒÈãÎðýx–Ê.¿åËÔÝtSíîØôS™» /À¼ïd™|N“Ô<îØ8L"3õÓx(äÀÏ­§œ#u³ou¼0Ñ-eÊpJe_KÇÈ}›âz‰5¤DÀŒCW%µÄ¦Æ>ØEì£@w¢Œ—ùÜnfbBÄÊÕ[rÔý¸} ó÷ã¤~ÛŸïÙ¿ÿ:dT=Þ Ú1)?Kàaôðø {Ñzòrë‹P÷ô=ð„î?<¡HƒlN`Æüi„ˆ¹þúìΦ=•šâ£ŵä3rh~q¯4|ivþMp¡=™"OoÐÝxCAóñ†ÂxÃT.‹8ìflÇb»³Þf÷JÚÐBшÑéù >b±i¼âPà!öÒèýÛíGþ¢kg{ÊÃi´À Ù”ó³Jœ-8cWôö/S5CS=ã¦þ&i!§oæÑR´6÷Y·þüKS›¹¯˜àK•~’·ۛкװX/R-à.a L úô{ 6¿ÉÄ}°H(($[È6r~õ™5É/¢5çýì¨4â·Ò¾ÜvÎßÉyf°ÿ¸¨–¯N~qKó·l”R¨…šœNÏÝò¶r©j¼z¢ñÚÑ+³‹Õ…9›—“™´#iÉiJªH-Ÿ³{Ñ‘Y á<”¾meÔ “©hÉB­©l¡^€Ñìà ÂÖ’Uù+4ùKHYI‚6g—¤ðàuˆÍ*ÊÛM*×üõ;ÝkVÖ]&ß‘K‹›Sªæ‹*¦Ç6ö2»l¨Ýy×@ö®ß»lï²™DORVeä.[º|ñº›z†ø€o‘âoÒX’l` i´$léˆF* ¬h²ZÉNÀ{púËÅ_ÅÍiYÖ˜\q~øš&8ÖÑû¡â³©00Cójñ/Kª3Hxϰ)IƒLn¸¿NM•ßüÛ0£Nù^nÒìU®A¶L»/uiîyáôñöçÍñc¶¨)0ª­ Y›„,ÉŒì6uåÊ´¼µ›V©Ñ‚;¼áøÆRÂÿ§ªê‰ÆpýoÀ¦I‡‚¥ÔÄ—詈y@^`|ùWK”*ö²´y$<Ä÷¨¸”bÈ]üÌS€‹³à;˜1 ô`Mª×Ô ¥d­6.dç1'ÖÍmNýµ˜G+>#¾e“NG7G¶/xBžöòæ¦Óe—ÈC^Ìû§I›ý-ñ³É,ûÏe¢¯=l’î.®,zOâ0ñ¤4†|zQþný÷¥å hPCñŽ6º«Ž_yçòÒr³ªöÊ©#ócÔh4ÍüëY´ã^‡\E&(rá”Xõ‚³ÓŽPÖS %ñ‹¢¦ò-œò÷3Cº=Ì‘ÀxHŠ¡‘Ò_£I=(Œ ”[¤yˆ“.X½X*Zn‚ÒxÓÜÓ­ ˆ Åþ””+A ©R]nOkNæíÏ)O:;þèăŒMˆ ˆÕåú*wªš\7îË„Ç4AúþôÜ¡·÷3TNJÈŠÖlºKÈÖ£E×kk.’ä@ÎÞ9¼3NnÔÏ9*jjhHtóÝûçoPFª0÷äÏiøÅƒ†Y‚q=ú6&j ¡ý3Ý— «¤‹ ëõœDóo!/a °+£×4žvÞd°¦ßÔ³ÿÝD{á@Ñ®m»v9´§œäAîú»c×áht8æº^­êðÖOóv@‡wp†OÁA­ú/y¬?ïÛÈ£d W§N‹N þôÂù†škUÇF<&´6D Šžs¢ívãÉJ2Í )œÀC °Tõ”×€¯° e?Ž%ù´ÖÔß®¾Vö¥jÒ‘ûp^óœ{µÃhös€Ññ['°«:¶³¸LS´cûŽýå<öJ ö‹Ðªß þ^œ$ܪŸî32zFHHüÙkÏ]¥nËçB¡ì ¨å.e¥íÙZÙz”è ³Ji7±‘C´ô3‡c"QMР{ª>ó¿°}!Nœ8ö ÄðoWREI—*q¶Œi57î‘ FúÌ;±o0î½n¡AG=²}‘.{š–ºß–C±Nv»Óò¬ÅíRCð3ÏnCY²ø±Ès(«ÊÖI(qö+ƒþÕörø\ºîO/X÷ - Ø[fð|zlû½¶û†Fˆ9¾'þ/âÃ5£¥n¦zðÿêg´°ÁQvòÂuph 6p$h~Jø‡ü®nËá]‡öÕV|\MîóЇû(ØS¤{%·¬ûÝ × ‹?ôh!]= zÉà,<ð ö‚ƒì;`®dÂÿº“Y‰»h©I’&Aâ•rCŠ0ŠŒŸ7uÉ`‚}ÚîúÉ´úàÖÄG¤\«h¼R{¾ôG=Ø/}¢¿{KWíCHaQEŽ,Þ“ôqÚö‘TLû­±*cilZV4zNظäš;ëÕØ›-À~O‡½®‚ë¿õ£äó#>Õ¨¾¹YwèÄ °ô¸‹}†ëWg¤¬ˆ$øÁž+¨ÙT²moQEeIá/VêÃâ’}4š; ô^Ÿ›Åp¹0F F_ :ZB5¡qò%‡s0”…P¸øKùk‰©¬¥µË%º²a'5 °cw¯,i ü 3½|¢g†é+>Û ÉÀ°ë3oZ@ôFóë¯TŠ ò vŸòajœf? TÀIV™µ_¬.…‘¥‘ûY°´„¾]Àr‡•ôÝieÍ0ÿ̲ºr endstream endobj 692 0 obj <> endobj 3100 0 obj <>stream xœWy\SÇö¿1äæ–U“4‰bÙ”}iXÁ‚"" ‘*Öª­Õí¢ÕZ´O­K—ºU*Z‚1•>­úÞ™tBßoú|ïý÷û$ŸÜ¹73sÎýžs¾ç;<ÆlÃãñÌÃ3óJ3‹sÒÓŒw.؇GÃcø$ÿo}…` £ØõÄ Yò‘¥YÝèw}D8x´Ø@ùp†Ïã•Wï Z^PQ˜“•],wJˆ›ïÝÇ×ÉyÒ‚Í.)S\Ý=<§zy3Ì8&†qdb™ñÌ\æ=&Ž™ÀÄ3™yŒ“À83‰Ì$f>óȸ0IL3…If‚Wf¸1¡Œ;Æx0áL3•‰d¼˜÷oFÁLc¢˜éL4ãÃØ1zñž=j-;›y$óhÒ·!ˆ#ͬŽÜ‘ÀJ^@ ëö•ï/ûF‰ÒQFUÞŠ²Âòüuóé¤pòX[ LxZ½·ˆ¿Ù[¼=7Ëe”[R\R¤\½qô]Š»°Kï˜Z5|؇IÈDÏq$˜kÇ3Lìs Âë5™,Ûä/yzÙŸØ›¹~n®q] Ñ•Nf­_Z¬ÆjÞ9_? #I>x¹©ˆrF³òb"‚²1GIJq|{ðå¹w ž!E/žï…n2»6é㜕ùʘ¨?êõ{nÀA$ÄhAc¯^ªX~Hv pgÞ× &WUx’JtÑûy¸ë"É—<‚ýì鄿¢6ÄCð`&{Ã0"“‰uÁ(.7#ŠëöB¥Bòëµd±ˆžá.wMûlÀæÇZ£ûHo¨y}:Cõ ×Ð6²Öð˜æç|­¨e'îm7&g»19÷ Ñý=Í'öïÙ÷Å›¸^aUõºM«'îM@KrøqÏ„ÖhIüôÖfÕ¿íÁK5yIíÉÕ†ªA¥ŽµÆŸ eÎY ¬Ñðq$¶–l|ö#±¢Q´ž¥˜ä{2†+eªò«êJQæ¨ääe‹2wì-•®ÚùÉÎO¹©ìbÕ6ÆÐÈ|të¥*õ”ã>ÙÌ=aßæïE£Î:ÜvçXþ¼j©µ~O±>Sõè´jኯÚNlÐ'a‰„\ñ…Â2–ØNžBF„8»XºàB¾õsö;˜ƒ+ðÄM©‘>cW€1ë%3‘' *Ž[8=d bÇ‘bCÜ!éïÝÝ?Kë& ®RwâIm¢o`ñ£þ¾¤ zÃx2>8ìgƒœM<¦¼USSýùAi‡põg«6~ˆ¸¬·5Ê€<¦%¾´¶zÕÐVÆëÑa Ÿ£’^^éJÚ Ðæ:¨| ½BcNwâü2Ñ­ØÒ3ç>¥\j+~‰k}H‹Pâ‘v⦠} NB¯[ñ¿S&éBÍšÛ¹@!õÕêƒkx/žò!Q¯”L¡›ã‚jqY šl!× ¦°ÄÉàGäØAa¨Þ4Ÿ·WÓGƒËxì"xhp‘Ó .tæSö%vû‡ÁÍÈyÅ!ؽKtR;($gðwÍ’5Ö£O—ÿáÎý2¸.Ô…µÉlEIF¶´¨àcå†ùÜ#öËŸšTˆ»ry’¬Dˆ²KWF¬%æ++Ö箊.Ì[ˆÂ8q¹Ëí˜Ün­»xU*>“øÅþ¢‹»ÐŽê_rd„IÐòµ•…ÅtZ^Î’“"3·^j<Ø·C¦Ý¾{ËÁœ‰Å8tëø”«¾’€ýl3˜ `KZq0´@‹‰Ïÿe°€b¯þ¦3P/`øÂ”ˆÄÄ \X"ÛH©«––We£Q¡ªêŠ-Üá®5»ÖïEPÃÖ½ßîß³sï·'¡Jo=òmí¦…› /%ëϯþ[YCV³¢!VïX7bFiʯ_ã`D÷}xw›l:[5}qZ0âÜæÝ‡á`wQõ¤ãô’Àm”¤î ¡_‹¿Ôòq¶-¤a@«W‰dÚ<½€P€´XH7€Àˆ~'¶îÆþgì`'nÇ1ô… pÆøª· –‚9Ø¿“¨„âvø [ þú·4[‰×Qjö!õlvküAc{íIxd& ÑŒ•‰+gnq¡÷„¤§ÑÉý”mG«·lk}ýáS0½È/Z,Õòõötß©ku‚ Fçµ,¶2hoLiÐámàÕ%:•†¼Ç”%ñ6X%A>9·òxÎ㙜©#¦P ç9OÆÂD°ìi¶–Yº0+%¢EõËO—Zwh㮺MòåÀÕ›§¾æ½mظAfb=cWmÒá”BFé+$$“Œ#®¤œ”½ÂRm÷–«²î;gA€À‚ƒˆ ¦eR_3ðüX G/®ÄÍ‘J—pM/®2sà°6pèí¦çßcdù¯i¼ÔìÑšÝM_nF÷HÛ…å[VoªDœJê™gHX‡aa^¨é¦ïÕ°UÍ{¢ƒ¾>í—7$PÁ^Agv?zúÄž³ècft‘ñRrÑØ/°ƒl…Da_ë‚™3x5ÎaLDÚ84ðý£Ù]ÆÆéN™M»æ´ÂÈ(ÂïºSI²ã©—W\B·ÑÏÞæ „(xÍâÒü’¼Å L”³­xwùεß|z˜›ÆnuꊤBwö9ɉ»OœÛylìq$ݘ”GIú[g;2"aöT÷y&%sYÕgªÁZ<÷.Ì®áuôPmÇï0UvÏ_ºîÀ5+k¤õ•Û ÑRnHßi—Þ XTü~² M9?õH§Cߌ*î ¨Z[G»sOcº‡lc$ZôUêå(Ô±ÙõëöoØ–åÇf¡M}âoç{ìA4«8JIŸ 9¹Õq%TêZ[W¶¯tÇ2”Êy§f8I­¡vúÚ2()ãÝ~ćI8Cm«WšM÷ˆ¥q¢)ôR%:§ÐÁoÚ0*5»°o—lGç2‹æ¨—“/éy6þy¡ "Ä}¿\g2JÓóJòËRVÇ¢Y(aOöÉ‚ï>:ºé íÚ›Âw¤6¤·„=Ê>Ò ŸkÎk>~øº‰úão; ï7¤úª>÷àeû{·šîV¢Ë&£¯$¿S?¦æÅ -ߨ˜ Âù••|†Ð¦Ji°pÛ†Ï7î@ÜÓæ¦Ÿez+!¤™ùŒëaM‚DϪyð ¥÷ê$°Vmh÷…uƒº·Ý¢jx?öða, —1^‹Ù‡ „4 ^±d<§’2B gI!)˜äª^ZÃëÕasZXÍta«Ð98†¼“ºc_¶4ë`e#ºÄá­®ô9qú‡Àlö&HñVÚw ‡ˆ¢BîBOTš°zŠGÛÂôáÄ’E†A²  &²°“%(Uþ×Á¡Àøµ˜ÎòL-üåÒõ¶G3Ã¥dðß·×eDoñáÓ„ Î!i¥±ÉÒ¼ËiõaT· „ ”‹Ü=¡õÁCæõ+m!Ššwd‰½¡ÌÀ}Ô<™F‡cèБ…êÉï,LÇÏa–áù¯ÂuUOícïtœêçãO©K•ÀÍn' òC!™iŠÔÐ2/D$ˆXìž}RÑw#OeÔÛ/@#=tD2¯`~¦l\~þÝ@§2¾ ã(ÇzKz[c]IbÈ÷Âb–ø‘OB‰S"©âž²Ç¡¬æƒä Iøî©Dý‘ý°‘þPè°~GÒyºþ˜‘lø^*Ú¿GLõ#üˆú¬»‹¤âW32Òcýì‰ío ùoý ‘ŠPwúUßãáàkÉýs©¡É©ɧï´5Ÿ¾'#-fâWÚkñ>Ócâ=¼c®ôô\»ljÍÔ~œ ntñšúµÂ4É.Âý ¥˜Ÿ›¾¿y¦½Fƒ@Bi¸â—´›W¢3“&Ùï ïÞi®¿ôƒl# ˆŸ<E¡ÅÇ«Ú8x/“¨o„¹yEGyOK¼ú¬ÿÚ­‡¡Çú¤^çC>¬¦é5‘Ø)H$"ˆxÞ$‘/¨f½ÄNÇd˜…À ÁÔfðÓÂ8î¯eô¯#Ù’`w"x ðT@äD°ãæ±ZâØLËžžÍÈÔdâ7•Ðe´³—yQSŸ³±Må±À(C=[²nên¸ž?ÒÌ¡ò«c3?3 ɾ«oº+ú©Ç¢Êx3]G¢ÿ €è»ãõM¯Œ%I³|¡±¹ðÔ=K«òóÿwgEÛ[3U?µ7± x¯Eš7‹ÎPsš×ÇkBºªlá.SØqôÌcX ß:ÆQ¿Ž¾?Dÿ@¢ƒ^ 67‰`Ý]Þ°†pKBÖÁãæè5OóšñtWÇ×ìW©x§ú¡±ŸifF ˜ü¥É)QÅ.¦ÃÂÚD .0IM[FHK~]ø“tiKìÁpÄù™=;;™ È””)ή ƒDH<û왩§è“x°]ˇí¸Zb¨Öê“æ ó¯l%]É)Œ§¤Á'»xØ—ßfÄð»õÇï5ç_\ù÷‹ç;)Ë^-º”Ö”Ö4w8ò@á¹1…™«S7qZvó¹/¶×Õúa+â\‹›¿l"Kæ6Ÿ8M_¾–¸ÂyCÂêîÃÊ.–õ‡ÒêÑÁ PI¾f7 ZR§yÎKt›¼ðÜ«Odô\·mé®ÜcaÙ´Ê'<Õ€}vË´™øåíýkùÙ¬gtâ8ÛLþLªe7ÚRÿõÞšã§ë/!Nu6eNR…2ãCYÑÇyë£6r¦rçn¬ iö€Âðü%Ä_ þoºÇáÅ‘Brß'pÂ…n )d¡nþEK¸ixx&…¥ÀÈÃØDƒ­à!û}ó‘]ÔÒ³k‘ãÞ‹šì¿ðøƒRê÷ö¹Û–×®8‘p7ïõÛñÅk˜r×çdtRú*åÙAHÀ9Öº¸×;†¢ŽU™÷Z¨>·´ìÝjiÅ0ÿ Ž<Ç endstream endobj 1640 0 obj <> endobj 3101 0 obj <>stream xœÍ[ \SWÖÏ#æ½×Ö¥’‰€8 µÖ¥îÚV­k]ª¶.(¢€+È*! @ $@Ø.„°“ û¾ƒ¸+ˆ»u·Ví‚¶ÖZëh­½>ì÷ÝPÚ¢g¦3ú’÷îrîÿžó?çÜc °``6pŸGàĵB?WéûÊ£FXPgÒshý/ò_¦°þÎX‘Ë2ÁÀy#V³ƒ¡#Xâ!#|û*à 5Ã2REŒzÆAÆiÆyÆgŒï?1:1ö6³Æ^ÃÆb“°·±9ØBl¶sÁ¶aÞ˜“`ÁX$‡%b:¬«Ävaû°£ØyìSì ìKì±G,‹W,,-¸ã,Þ¶˜c±Ðb™…ƒÅV w‹"‹ •EŒEŠ…Á¢Ì¢Ò¢Ú¢Þb¿E›ÅI‹-®[|cqÇâG‹_™˜$sÓ–9š999¹„iÏÜÄtcz3LSÅŒaf23ƒi`3ë˜û˜­ÌÓ‹„¢/o±ÝXǵÆ?áÉ“©³fͲs éyc·Ø#ÐÇK`7}òà E~ñl»E¨4Ÿï³Ý΋"ò´suw÷p7U[ïÊ÷ðµ{߇ï# ƒìÆ.g7mÊ”©ѯ·Wùø¹IíÌ3a·J8Ën…ÝZ/ ß5àoV{K^®?¾«DìØû‹°÷—Å|±«W€‡«Ø#ÀÃ_âÊ—ô~+r û¸òÝ}<=B±ùýI€ïhþâ#ðôøˆCøB™‡ÀË#Pâçç*ö \Ý}¶»òW» 1¯ösÝ ,ïú³Âu»Dì±b»«é‘»Pìº};Äa»‡;ÂÃu•ùm`÷·åB/¡ÀÃwUWáVl¢ö»*,77½5°ª×Ó{—ûðÝ=–öz²ÌÍ5`éã.?Øî°]âçÉ÷.{òq‰Àk*æò¸˜ó“wëÌr¬ëÎÑ,cרÖõêÆáI ‡^»³Ö<µæ¦6<)¹¶wÉ—‹¹œ£yæÏ½Jø˜ûö~RÝ«×K¯Ç²£9ñÙᆳãIIŸ.f|ÑÌ{ø®4]|¡À+Pлsß|sA~¯ç³4|Ô‹O×|óR$ EÞ|s¹sý€^E„]>‘)°×Û@s-¡y€³â^o%]=J̯Åhdbsóbâtµò¤ýà'eææe!b0`-HΪ]è]PnÌŠJOÓ'%¦ÇêãòÕ9 …ïòìEk”)þÙ:UFefiQ…t›Â5lÕŠ7gͲeÑÖIK§Íž0É;cG޶{kÔž¡Aînü‘›"Ö9‰× B¼]b&¾ñúkNóöøe3Ãß7oÎâ“g,×yÃÊÍ%Wû”úyy·ûKdrCÃalgÈÉ ĘiŒ0Égø0J*†/#‚Ágø1¢†Í1bþŒ÷±ŒFCÂH`1‚±x ` ˆ15X¦Å’±,KÃÒ± ,“¡cc´0Ž3>g|e!NÕcÙX–‹0#–‡åcX!V„˜¶+Åʰr¬qnVÕ`µXV5`X¶kFL¼ÛƒíE|¼;€Äa-X+vkÃŽ †>†ÇN`'±SØiì#ì v;‡Xûv»„]Æ>Æ®`Ÿ`W±kØuÄäŸaŸ#6oÇn`7§…}ýûû»…}‡ÝƾG,ÿ#ÁäB0Žað‰ˆè}˜l¦û€&ðÐÄz5åÆjfùøü‘F_“R²â¥ô—.¾tïå—^¶~ÙéåÖWÞy%o຿R*ôÑ`ù‹!ó†üôêˆWÛ‡ºa¨ØÒÆò [¾ò·è¿}ɉ6d˜ã°Vk­ ¬#m^µùzøšáWll¿±pDÓß¹o|7:kŒpìKcëÆ­÷ðͦñÇ·MŸ8o¢tâg“ø“åS¢§ZNýdÚ¶ig¦ÛL/~kî[)oÏyûè;ï¾S3cÁ ýÌ×fÞ›6ëú»ï~7û½ÙßÎiœë7÷Ëy9óßžjÛ‚–÷Ö¾÷haÆ"΢úÅn‹-áQ±ƒ¤®ƒë`V­_­e9wþÓŠ]ÕqÊåÀ×èëDXž’@²?ÓlŒ Û™`¡ÿ:—<Çš4£|ÆqûÎçDÈK(HhL<ž˜Hø#¾ ÎaâN¼ø+âèW㬷Ƈ§ƒ:ÆA.qƒÓæy0,õŒ–+åò /ÕJ@¾•8»*/MÓÆ=ˆC+Pš9ìü[çpÎb`1=xÙ¸–ËÎC&t¾Üw!wð/r¥C_™0 ë‡ ßý'Ç/ÀŸ/( («(.*«ð/öãÁ›ÃžëÙ`8[aìà¢&Û;fr6ãÎÞgíÇQ7Ò¸·4¦ÊŠ÷-S.Â5…m—àÚ‚«¦_Vìù7¨Óë9[ñ©ÓC#Ö€í@œæU.ÊOäSÆÐ¬¹íÏV—f••ñöì)»Î]|fln¥27¶´€ ]]s'÷Ñhë½ø‰ŽÉœœ¬]Tž*) HšX9z‰¸tç—»î*ãj5É©I$ûø ø }‰3~Òëvs[VŸ»yÍ„ÉÇÞÍ«x™BNM±§ÓÈ壗ú–7œ­þj×^^–Θ–kššRS•׿´¬>ß~ýq• !§®ÈkCw•¦ÖН«šxy%ÆÌ@†@O½¢¯1b·Û™pµCO^Ç’© ™‰Y iÀ¦0-t+–`‘Jù~ )‡*=±\™.‘ƒ©XzM!U_£Ê°”³ð‡‹Lj15žC[âIÕšŠ„ŒäS†ÓcF†.9™©ÑQ±qѱj^tDlP“!¹¡Æ¢ 2ñ8¹rY|ŒÚ!z½œ^ ¢IÑš-À&<"9E“˜””ÂKÎФ€42_¡“ˆ¤RÿíU‚½‡ª.Uq+.ä|ZW&d¥I9L¸y¤ØíÌ௜¹Ž¬­ÄµVJGEØŠh4.¥žX‘„•ÞE\maí"æ­gA=“¸Aæ¡z_fšLd$d&¤²2]±‰7¸ÃSUìŠÊá«e–åÿ°bK;fÃ78›>ôÜ<·1¤ÜOD]Ì—$LÁcOD–‰+„  œ#ðvspnÛn\ œÁ6™óVÁ{`>ÉÞMÛܘk*9WÏe;--¯´½ö7‚ ²Óîæ\nšIã¡‚½W,ãvÎ=¤k5æqóó 3Ê ¬¥_å$|QÒÔÈ=Un<1Þì‰tþ •Ä¡‡ÂÙ¬•8ý*=›UÃA?ÂÁ£X¨uþ—60RK8g«vŸÇÉÞ [¼Å>¾ÒÚ䔄„dnJ" €LMVGîz9zòLËÚT‡-ÙJx¸Ã’#ó 9&KÓ3­Ù 2ÅÉ[gàå%ÿ€,Ã3*rô èbôQJk¶2¸ISd{”•ç}B¦ì©%à+F¬¹:60ádd¤ËvlYV“N5»k ª+Å/uT|¼š@< #ÕÉ©U¥µ­u<hèGéÁÔ (:ƒQPÄ9Ó™°Ü„•tü*©¢cG8? h øø”+Î’<Á)%Ð ,òn”îí`ÏÁ̇Èpnž‚œ Ñ¥•MGl’¢ãµ€Ô&%i³ÜŽÍ»Ã‹MŠê´‚ }nÝ®²Ú¢FEj£µÑê  7F- ü#¢¢¢"‘AXG£êS›ðÝ N€Xì/Ì“””ä—”ˆ „& aêíƒcê$Ô†Ö&6Q­L‰H³ñ+”ÆieyA¹j@šš +r+óæ]™£VG-˜°m%·‰NŠINJLÐ&q´5Ö]>…nAF?ºJe„.E–wÛáêv+öGÔÛœsô'8øPæ‡ B¤'’Ât&ƒøü&ñ½6v=Î!ÀÒ¨ˆ•ÑݯµÊ,pšDFòAAb Éž£a±7EmÄn·¥§6ã`—¦B›£kn(ß J!¬ÐÇ ÊRå2OŸ“¿Ó¹tÞü5þ.^nš†´jhU5ýF|ß±‘ã¸e‹£Cóֶûw>¼e÷:^‚§¦ÜÏËËOàé-(¯­-/«åu jL%þq\‰å½vhu§’z‡sž>ƒƒ-êE„*J'0 M¬'Ö&+2Á~ íé/ à"Ý`b7_=ᘤJ‡Hꯌ WÛH#Ñ ¨4r-ÉÞ”!$Ún›…î~ÛTî1ÓÉÅ8ünmw`W~f¤(—Ëæ Y¶) )Q«E¨ÇÂÍû1¨àBÅî7›åh¤nŽÈ,á¤;yYiY ÛÆ–)‘GD‡„pé1ôXM{ê;Ô^Ç(Ô€:Ÿ ³éq8„𕬔\”‡?ÔÄêcw†£ ÑY€ÌÏÎ-*’$á!Ñ‘Á<7YhŒWf§Ì™È‚œÜ¢’Ðqxpt””ç*õ‰?¤ï¬¨ñ«SîI¸]›Û„à6FgþnTX&Gp›Ì»›à è-øôV!6>•°zX¼ãŽNEú‘åƒC“ŸDf£Cá©?†F(¶éQº_äf¥SCX"®·bo{H¿ö{¶ç²óž>{[b ¢|[ãû =MŒOA`6P÷ –wï[±µwá5Î[Î,âË,z6–(ä £I¶HJÕûàBV.óPˆå2o÷u!3¹ _–\éœü5k?AOžÆ‚s pQ§»®% t”øX¥KLΠKÐ7L¾ÀŠ-ºÔ—¬u¾ùÒºnYE¿—ª¥ý¬aò@&G8ÌìŽôá Wîå ŸÚÛ3J£ØAQKýZ‹UCœšq&|„´v GУèÍ+§´®á]ñµûWÈ£;ÃÐn¾+¸±î8oÅùµãé5`ØRëÛêR1Яû°÷ƒ7DÈçðöÞ²l[r½+6ìÙq@&¸_zgç^²¡yþa@ž½þ‚|ƒdÞEu°÷á£]L R™p?3ûót4sr)qM-cHºÀä"+HÚâ‹w^9ß|¡†ÛüEÄ‘î’Ð~ Ž§Çºò£‚ÖpaKçTŽ”¶Qlt_+öõòä:ŸƒŸÃWÎ|÷yue(¿œ§ ÅRÔ‰Xãgàð3|/sàò3ôX|ï-ûò•ô]³&âKéá,zùr8ß4é˜ßI8„kÎЉ&ÄPÚtª ¦•H–-·¬Ø?ÁqÔp޶5uozeñµ}»€ýà W©£N˜¶#y+™ƒ³†Â@V®æG……ƒX ÖD¢Pá§o¯L[ú%0Ž&Åôlr.rc]ÀãU ýWUBدo3=½‚ÓÓ¿_—ÁùÚ†£d5ác¿ÊÃLË¿R@;ZâÅM,z2ŸÒ@ЂÔ#ª 7à%MÝ EUÝç\":gB ý°ÐG--c-'(-}EºZévÌjÙ%­…©ÍŠZË¢"êr‰››a GòAˆ‡\&ù‡ €dJŠ$EÊ2ÐD^=¸çô‘:ÑÒ îÑ5œ¢²kR²HvÎþ¢ c³m(——ø•t>H©¦¬q˜ï°-ÿÎî–ï8lþM^9ëm=ÀŽP_ÈWx'à¬÷¬ð­ð­ ÝÎæŠÆ«åN…;r¨9qIix¹m¨Ï­ª«®ËimਬٻƻÖ5×lÞÒ©D´Mn@¾ÐcØq:S/Ók( Ö œv¢ÿPÞLO‡—àLx N¥O"ÞÚL:<›0¸E“0?•yúTIš YŒ«à,Vç÷8TtzÑÑXÞ =YþøŽY~¡4Hú3n†?!ˆ÷P>àÀi¿x;¤ÑC¥Ó«¨AôŒ9…N·÷²ÿâÝ1 I5û"ÔÃó™0¢cç^r¥:ÒøýÃt#žµß`¨ä~ú6à¬&ƒá|#ᜠØGRóçs2p8 ~Ä¢•ðPÇDÅÄÄócP±y‹! ²²š5¤qA¿EŸ¤'Á“,zP0^_,Íò#éDlT…»F£jVFb›V•iªˆ&ß:˜FËü»ÿ¼\ø‰‡Ž79´PŠŠÏ‰@!§_§ƒ¬é±0@™­Î6 W—V™˜ÒAFâî*)±/N§ø'ý´¢×YÓ ð–J5%†”ÂcbZ"Ь?!ázŽ…A'¾*Î?˜dþ×9:ü1µ‡ý1Ý¡Zµ#E7ù º» ÷¬Ø#(ä!ƒð±R‰â5 K’¥’ì*§gª¯í6°U¶CàÍqÀì]p€ý%CnEiaÚ H.sÞ¼pÚŠÃp°3WŒ—ÓÞ¬|œ½Â©ÓÛf€œCjI^ßÙh ‰¯¯ÿøùºh닼‘G]wVòðÎú“»wJ½j¸¾:ÿl{²÷¦f÷„¡à¨žú¢£.ÂÅ™ƒ*(X°U±)P:N-¦²ôD0=ŸUŒ§íO5æä”íÖA>Þï\Þù%§N…y Û—>;°Q凩Iư|¸Áhyð$œuÁŠ=žƒg91pK‰ÇÅE ø1ب*Q‰È*‘$ùÛÎYë´È¡rû¼£;j‚sßf«¯ÐɇŸ•/åE„!Cé)YxJzR" `Ùï§]\5 .-‰Éµ½zúè…U«ky4ã4 »‹@‰McEéž#å>Ó ¸`gŸòÚƒrjx9ÜfĨw -'$Iå¬ “Ù(d>N.ó©q,=ýO"–~™•‹§]Öë#@¸8mè‡Dø÷ñvGPµÇÇP¿£ã92wÚŽvü‹B­!¿hýozôdøÇžn5…ýÈêî´¢Ôã>ã€aá3b‘Å0³4¡:p™¤ì pY—Õž„Lü€”¸©ìîV~ü‹¨ p!§¯øžòë+¤ï´'ØÚž Á¾'C ¯S;ŸgôtYþ`‡©Ói(pznc{º]ÖÓ-{½föo­Ë á xV÷±¤CµÐ¾5ŸÖïëMt¯]ÉAT7^ «œ4â_}zÿO¹H}XA8›PŠc3Úö0ãxå‹Sã%eon,VD—ÆxM·N‰NÕ¤&d›z½Ê_$ó ’iÒD<¿,¼ ¦Ø\ÝWy¨Ù·ØQaJq”Æd–ÛEMßeÅÞMQJ…òƒãéu†,]º.©Þ„T¸”¨ÕÅè#ŒŠ4/°’¤ÿAtr()‹ž/Å›.²qÙ¹’`;Q éL5<Ü@ÌK’€{$5‚`gQ«:÷²hc‡àYzdcFûP}"î¼wEi"O%tQ!Ÿ{åô±óOç7=Î~Yù†­|AнÀHYq…ê¬ØäøÌ8÷If€Ó2zªIö°:>NÅëZkéˆBø÷£Û¬Ø7à9癚ˆlá±Ö&ìóî|yÀŽáOc‚³»–ll$¡9ù†tC®—‘¦ÑhÈ¿x6çþÂé“ó?PÔv qæ!’B¬?¦Hñ‡ËŸ%£§Râó®´s;ÁÞ½%<È_¡N-ŠâªjB³ý)2thò; '.Á¡¦¥zäƒúÇh⢙/ÀEËz¸hìc.Š¢¿êÜø\\Ô½zÐÍEŽ£Á#6êp<ÿ<ëÛ]Ì • ÓMã½ ™Vì9ð5¬ ¸Ú»’-w÷FHØþ)û»è©¸ä‰–¹5Po#=sù—ôìͧèÙf=CЗÓýÞ,d}—ˆ¯ÞŸŒ”à5µÃŠ“ŸŽ2²ò¸ÌH $b¿uNôúmkèJW¾ ™ôÏÿÑ‚ÁPvûmM ûj{œÿw'Å´TF¹ÁM˜y¥ŒI½û4S8æõ»õ3OÊÁ dˆ ”‚®ô°^ÞÙˆ”ö¹ÎLY/r÷½r^yô@9ï >—÷_<‡}ã·Ë{ŽýYÞcGÐaäýŒ gµÝîÙ[×YH Otí€K$ËίÈ-ÝYûö‘a€ƒ‘ÿ6]ðÙL8§º,)¥Šë- ¾y{}gUAK=wpÇdDL?ÖI –÷ïÃ0ˆY±¯vŒ1p<4Áé‚jÚ &[ŸÍ*Ϭ*©,6ì{AsX™GÓÌ≈¦Qø¶[J\‰LWöĬªð&RŽ|ˆ¹ÀK$t&Úa}‚߯ÙN©›œÒŒÔF8ô趉ÎA®^Rîfoõø8ò{jà3òóÿ1a=ÕØùþ²8=¨c¤ëðTOsy)~0:W D Hí¯ÒCéo­ikø]œ6"?^c‘§6 »),Ho5y£”8ŸQ=»j–µ]C¢FåÆ˜]R¾.å ‰“£õ!u¡cgµµ‡“¨Ùð­ÎÙ,=~êÒKQܾ×p(#­%ñàä..êÆñ­XcBrGté’o>IvÔ—¼€9i:øc©«n»/ª†?£ðáœÏٿСSŸ÷œÑ¿-®¹†TíO·ÛÍ9šÙ¯Y±ïP‘ÇþpÌî³î¬ëΓ¬ë³ßg]w~“u}I·ýg=òÿú-†iÏ€ÞD†„Aç&2ÿê~%Ö¦ã´!Ç͇iã;ÞxŽðh íÜï#·¨ÛVìr;\…º¹ÔáÕ7!Ñë|•³sOyN y-áÑ.h~UakÔ¨Io=ᘮNçQ\OüäÚú®½kàêÍ\x„ˆÖø„D:„Úˆ"Y¡DR‚hÙœ¹×éK€%êˆ5‘¨>_O¬IVe¢ú¦#À‚#pºZÁ ÚÒª–¥ î`èÕ’R+ö£jeÍi˜G¹&8E’j-JiQª6é½ESV”xœÙÁ“†„ÈÔÑ;aÁ e†7/Þ Ú<Éõ×¶Þ¾r­xç!n}EN%¨'7í|OCs’­×'¤l`¬ª)IM‹O‰×C\V|2¨úŠ’ªR} 8Ê¢ •$Õ9œSõ©z? ¿© óZ3ßfM_S¶« %kçžÞâ+­ÙSQ,óËææzgnÀ{ój×¾ç²e@;êž“ZÎ5î~´ÔŒÇèËßtÁÑxײô‚à‹9ÇÏÞ-7#Ò)‚ Ô÷}äâ´W_8±‰~Éî¼g‚+xx\$ûW‘ 2ÏáOG U1–=üÅAã¡nž‡äz6vf$P¶«§†Æ>m‡‹Û™ÔœaðñÝÖ¶÷6óe.å^'¢]B|”ëBmdD²&=!¥ir@€µJ…SL—®:%É3A- «‰}»ó3«¹¿¿œG?|ž¼ù˜)oLÙÑ;ªá2=uêþ¸û–×î¿Ó~ýX±ôÿÐ;û– âˆÄb¡0_\ZV_V*.ðØ­0‰àDkìÅaö!6¡„6AŸ¨OH6i2d>Cž[ZöE§Žùìa0µÛlú•­d¶~ʶpžÇ®Q€ÞJpø3Ì[Dp„:‡÷eäPMôfÄshf1ˆ!þq¤6ÿ[Æ|ŸB#±ü î>ŸÞsGáËÖ»¥@o€£P¾v¢µ›<‡†ëÝ™Mäô_ñ<°"Læl*ä®'\L ¸ûIÒ·fSÃafŸ =’Ež ÝKáÈ3zËÏ‘6VÁw)6Ôèu‰Æk=&'.…kbÁ’n À†ØØEᤜ`»Ã0œ]¤G‚¶'Êu ÆN%rAqRŽd7Á¡ô&äêñ­š˜D¿ZǾ™Wð±. Ž0‚b)©ù /3!?¡J˜çV±J2Nå³a¹@NÊ´:l>IíZŠýˆà^ý€C¹Gs+êót*A.7Û?Ót‚»À[P»µxõÊõ¢Íþ<ÿ­‘^ñ³É ¾‡è³8X¨ _dÂ&KOÌÒ(3À³—@Á© {ËOÛ76À•h´?ýà³oA‡G+úïÃMa×m$ãyXHýø‡˜«®;æ:ÿ$æªû}Ìuþ71JF÷ÓÑÃ{HÖ–?´¯h°bß0t09Éxï+(þ}]_¡¾{rg‰ïG»õkŸ»Âd#|gµQ1ˆÍà “z«ÍiÙp)¢ÑÍŸ)ˆÁþé™»¶uUUõ¼*=ÎþѤH—†³)'êZ_ž¤ÛgšxÇÞ´•‚ƈ:EÔMV¥‡mäu=æ¦'žðÌ ÚÑ«±Ä&ÆjbmRU5ˆ&#"Ôá\© L¤Ã7¸¤'ÂõÖe%ÏœÜS–j£OÒ%"ÒHÕÓÛxC|F P€È…"œþ;=Øšš‰póD® µñ‹d!›ÝÔO ºmÖ ¬àÆùÏàÒvæ'ðgNJcö'iÇA™M¾4W( ‡êÇåLåÝõŸV-3ƒtXM·Í^Ds¾üô™¹ é\£É}ÒÎL¡†stš´„L@™uEC稨M“¥'–jdzp„„¢²ù@IrZ´*ƒ›­ÈPg²PŸSZdôqˆ»ð¾%¢×K¼Âì¥6ðÌëóŠÁÍ.™k´ü¤}Ycþý³o]}Ô¯Ìî£Þ(2ø7œô¦G¹=ëº6ª|jn>tÆÌÇì˜R±}çYjzUß§ï$©’$¿÷ó`H×Á»RuIL. Ÿ}ìÎt¬eäƒÒ^‡Z꾺`ŶzÖ‰ÀÕ/x\eLωÀÕÏs"Cíü¶_3ÙëpãÆç;ܘñ¯nÌx®¡ ¦_ŽÏr]:Øx¼G=WæOÛ™RÿTUó­Š“£Ð™ˆ_ xµ`EÓ¬d< V4¿V2~¬\èlé¹[À.ßìcô4þÌÛ%r»àñÝ‚®£ô5°Ò2 FÓ+ÛÝLdS©õ6‚ÄÓã5(¯ŽPGD©<ÖmÛC²ï)£ÔQÑÃAlBœ&Ždßj¡[ñåÛŽí¯/x<‹ûM³øÙŸÎâþ~Ì¢êôl…*± íÌ ðg™ãYÚöé³2ðaëkpÀ½J4ÃÄfØ4½ º{z[psëHAààÝ:ò3Ò‘[pÒÿ¾5ä§~jÈO÷*=ñCõåÁ¾çŠ‹{ÝÂéZ¡N«.m7TáhBR[þ #…-¢$©-vgQË“û8CZhYÇŒç\¡þ6°ÇÞiý‹.2uþ:ÙãÓciA;uFý‚1jÔÓÜ9Ä+ÛÊñÊìˆÐ˜xulïMºŒ&`²Z“e>- OiN$õ´›‚(ŽÉQ¦Ê NÇ[k"õ~¥ÎÙ^@näâ2?…¿Dªj‘¨ÒJSdI2@ŠƒƒwTì<»¯ ŽjåÁIÔ„¬ÊŒôBÍàÏ” ʱK´ô§‰ö­3GNTG¥G«•¢©t€õ (–ídÙ€üŒ”½)H²­r¢.&SitL‘¦H“C¦Ð­ÇB]Lz\:H·A‰ju*µLNÄ¥ªò -}Û:Ó/U‘lºR”•Y À(ëoh¥Î3I lR€6-»y¦»Ö¹;5Z#ê‚x|¶ßý_9ÛOû>ëösOÿJöyŸ>ØH­7ÂuF¼ü寔§x#wà ãÿ&ˆ¥ endstream endobj 1398 0 obj <> endobj 3102 0 obj <>stream xœ]‘[HaÇ¿qÝi¨ÍÌeÓÅœ™§ð’ „vÕ]4Г4ÃU§upu×Õõ’ ææ®—o½íEËKƒš„^ Ñ„”T…”ìÅ"©$º<øðMÌK³¦i½>Î9ÿsÎ÷ÿaÀß`¨1ZÌ,cŽÎ(4°Æ—‹B1á´Ÿ&ƒõÂOA#iƒÊãN2¨ðüµ„zN¢ö¨9È0¬Ö;¬1šê̬¾¤ŠÏÎ̉ˆŠ:{‰§ ëö+´–©dõåôéQÍŒ¦2¦¼ê­‘º ¶ˆÖêL%•´®¸˜)öÉnè L)ÌX“ÉXM‡k"ès11±ÑRˆKgË -•ôuc¹‘N£3½Å 3Ó{ù§ð/×1ed€$ Ò\2àÀ‹Eb½~Záô¶x$´Í+×GˆS]Åklõ÷\Ž~j׊[òüýÄ…‚q®×Û×kï¼KÝÆP·\9µ¹96°:í\MŸÕS«a#limÊa{0 aø£{RV’ºœng7ôª_ç<»˜^T›ª!¥sêy3´< ჶ§ÑÎt°Ò*œ?õWÎùÖRJ«ONf㋈ە{ÔËY|]kÕ“ û}ØHØ\M³‹ÜâÝãX6ÚaK›ƒ²j³ú˺ò¡Z$éÄHJ9—:_ü~}utqƒôΪâÓ2+“ ‘^2:»öñ:2;k·MP»G¡$EòØ/¨žÊ„e”§êzÜ1?.­‹˜.‹")ÊÞ]AÄÊÆàØ9ÖïõÂ^ÂcwÙÍ­™WzÙ’‰È”WŸ:¡Ûé¥<¼jêˇ¥ïø¼’™Ð Ò‡,Mû€äK@ÿò×Õ¾}W{šºê%W%[$ KóS#¡O†+J¥™mvꚸ&{ÀÅ_"n~irdªÇ†Ì¥¼IßHM‡-£‰v·Ó]êù’É\Ý꛹dÃsÓpÔA¶¶àPà q â8çÎã ~Î}}É endstream endobj 1628 0 obj <> endobj 3103 0 obj <>stream xœÕ| @S×¶öIcrN[µ–ôH¢6±­užçyžEE&ADp`žç2 L›1L!@ažçDgqžk«vnmmm{»ÝÜ÷þl{½¯­í}÷öÞ÷— ÉÞkë[ßZg­°ˆ/,k¤•»·sà, _ïƒ>Æû3™ñ,f ÌëìMÈ燥?Lá¼N˜å³G‘l0rDÁ» “ÁöW™u¯Àè1›Å«‹7øú…¸»ºMœjm±wÚŒ3ÿö›yË–-›x(ì§G&nttwõ™8ßqöòõóvö Z1q~¶——ûቮ^a~n9â|Äøg6½œ='nv÷r÷óó ™8uô‰óçÎ7 [´ËÝûPpàÄá•OÜå»l¢ÙD g×`¯ƒ¿|„ ˆ®u>ë}í6øíÛè¿)`sà– ­ÁÛB¶‡Ü!>dvx§äÈ.çÝ.æ®{Ü,Ü-=¬<­½l¼÷Þ2[<ñI×¢ãK:¿¹Û·ôã7¿}§äIJ·¾ë½×¿|Ò_œÞ-;¹‚yûûæ÷ŠO¯œ L9³êþàó«§þP÷~Õ¹5ÓÐç×–Núð‚}õŒ¿–4°¿væ}rÑ¡~Ö·zé@ÃìÏ.;6ÎùüJÓÜGWÃ[æ}ÑzMÚ1ÿÔ—m×eÝ *ß÷,üêfáÑE·¿&ˆ7‰Jb7ñaN,'&{ˆÄÛ„1™°$¦VÄTš˜FØÓ‰½Ä –XOÌ$ìˆ Ä,b±‘˜MØ›ˆ9Äfb.±…˜Gl%æÛˆÄvb!±ƒXD˜‹‰Äb±”('µ„)Á"nb¢Ÿ8DT|"…x‡8NT"•`·‰>âQOŒ#FwˆpâQCŒ'8Ä=BJœ$\ˆ:b‘Np‰»„ŒÈ'\‰âu‚$ôÄyÂh!„D&ñ8C4"âEâ="‚8KxMÄDâ%â>1@4oÄËÄâÑA¬$²‰‘ÄûDqh%V%Ä(Â@\$ÚˆÕD!1šø€PW‰vb ‘G¼B\"´ÄZ¢˜C\&:‰ âUâ q”ØOhâ&HtDÁ#ˆkDÑM tÄk ®½„#‘KÐÄ ¢‡p"Šˆ±DQFtcÁ›tfqYâ&¼àöÂ=¶ûúá g '—ó×ûßd2ù„r¥n¿È{1èÅî—,^úî娑£Fº<:jõ¨¬ÑìÑ›GŸ|eá+éc^ã5æÃW»LÌLúxf¼Ê×v¼ÖK¤‹ÆòÆš-7µ5ý€?†¯¼.H¤Œ3÷ñø  k&ðùë³^×' Do‹¾Ÿ¸p¢þ©o4¾éðæ¹·–¾U0ÉtRÇÛÛÞ–O~mrÕäËSN7õÔ´·¦NOžñÒŒ93ÊgNœy{æ÷³:g³fŸœý霴9usWϽ:/kþšùŽó‹,]°u!µ°fÑžE¿º¸`IÂÒMËL—-Xnº¼mEÜŠ‡+_^9iå¶•Ÿ­·ê»Õf«×L^ã²æÓµkO¯ýzÝ´u«Ö}±~ÎúÚ ‚ +6¸mˆÚÈÞ˜¾±x#Ü4zSü浛붌٢ۺxkÖ6Þ¶Ûz¶ÏÞ~jûÝcwx™Í6K2«Ü¹f§~ט]šÝÓwǘï4OÙ3}ËžÛ*‹ó–þ–¬­¾câFº=´mfÞгmtôde¦Û ”Ä\à‡rÑ‘!Å4Yn/Ã}:Ò>TS–œ“ªuÀ9PËmž‘í§ö2DÙ$Pb˜NÉa& IX)TÆ=˜(k=üVÿ¤…ÕÐ÷ÅmfR›)ƒ€öÞé¸P ö^€l8¢ç܇çê¼Í3DyW¸@£ŽLvÏ9’î(ÄŸ¿DÜ{kà¨þ;yšdQÞ-ZĬ£‘-š‰f ½È ÎD3¡%þšgB+h‰fÀ9h§(á ïEÑ´ EB4ÍC¦P—•ÐN€‹D£™8 eÆõ±Þ¹7Þgç2oÒiÉ™‰Y€*Ëî¡DXDÈlc))tÓ’¶)ÒlPGÁ²«½0»PÝE^ÛDÈ™fr‰ñIG´ä¾TE6è¦`ù™ã‰u^’[„wÉè¤}aîVá‚уs€N\Ï<¨ëL ç Œy²’¦<¼Áé4O+&ïÇdG€uÔ9 ÖÉåKã(ž‡¾OÞW êkêªôí  ´…5y•{—úeoÏíÕdP<¯âBm}ó88bþI´N¸ }H:bê¤øÏûK›Ö!Gy†ŠÚ¨}²Œ*lWY ÎÐ Û¸G¯‰ä¾ôýS3Ðëˆs`ËÚ#.EM!"ßÞð+à*õyçÙ«B#Ætƒl= ^z´ěD¾bnoB^ÊE¤½…Bøh* ˆÈUå,ÈÏɨJJ™ +‘Ò¡j1ÙŸ#û ½M‘­'ÁB¥rn,†Û)9?I– nQІ„SaÈ™J ¦m,kc¾iba² Æ†Ž„!œ®*$\ "4Yš¶/×.}?X–zí´Ú´Óy6@/€Ù‹ŽZœÞþ‰óc9àqÇ™{TXþºÛ¼—°Ô;5Xu{} ›‚Û>…/·û{C7 «<µ¾ºí¶òΓä‡Aoe3ú´ÉÍû0ø¡)/&ƒyÎHTƒ @Õ¨•ûECn$Øa®¢x“%0†äÈ'×&ʳÀ9 Î#k=Š”-€‚/}GÀ·á˜MN·t °vÝ&UIÖ!nr+‰N_KWœ¨ë¸Ñ½Qˆ½oí†ýuÂÑ  Ì{ ,æ*ÜHK,•!¡ÁŽ2 ìG™\f#óŽvÈ@†¢5œnFwº>¯ÀPÞž3€ßÍŸ;´mè/)s†,‚9çöJ¿}Âp!Ë”—ø-dÑ`ƒB¾&ãM ëIHïªÏž¸pªþCðøÈûŽUߖˈU‡^Çïhàò&ˆÉ»Ñ‘Î<¯'ÕteVzóà áî]Â;ÖÍ‹"zéÐ’åûm}ö(ê°ƒrØŠ9²ÖÂ]$š½Såä*sÏÖ¬ÍñL[sAï!O³75?¤y| ^m~ÍÁTùF†ÊÍ·¦U”‚¬¹Žj£žj#6Æ´€æ—.ä¦_JèÑ`q@Ï,в`åXè åzÐ\¯6ô´å¿GêJ+r«Z4_JVÄgª€ (Á^1*E˜FSTI* €°èXx#ò±dyùëò}úÎ\EÇ$”úEí— |¢8ádZb Pª)#ò h(—ôzàñä?/À·à+k>›²kë¾P¡ÍˆÆÎºÞ;=«ÐhĶ߱lïCñµ‘ùúi¬ñc®Àõ´ÄY$•¸± [ ¨­Üõò´ZãM‚«99wS±ÑkŸ Ž¼ÔŸÂ£¹˜©%»àzŽQ%øÜgÎ`ð5úêx쫹‘á± ª¸hÑtTŽH˜¦Ê‰Õ ËI­º5 èŒ,‰Í‹H—@.Jà'Gi½Ëìr]T¤Afo™°XT 2I™*VKR$³¡¡U-»NÀIÇEp63SS••Y”,0býÃ)gßf3o¹´ý&×@,³æîx’ßô]½W§‰pÉ¥§ûæ‡AI¡ÎpbSç’}¶¡®‡Dv޾[ÀJ ½;²Û›r+ë„¥Eø¼OQ£õ#BYmL>Ì‹™+ôÆâ)îp]ŸŠƒìSʽªÑÜ0bÔžDþCI(œIâ }bî»1…‘I¦“`’L¼T…ÿNa Îøšb¦0e¨““ÃÅ›̸ ³ާÃR”vªp¹D “¸GÚâÈ%äÂBfG‹¾"ãÐKœ|nÆu­ö4ÖŠB.Ò MÃZqÔ0½÷‚\æ¥2VéCzŸ ¿PÒpJ/'— Kˆq€rÂ,ÏœÇòÃ^â¦Ü!„“é‰i PõÊC"4—t®òË:Œßœ8èMôÚÍ…ð… úÎÑLß#@t´B ôÔR«wà+Ó}ãÖ±îý6F"ŒÐG fb4Ø‚6#ç04c ÁéÌz&'3'¥ÁÈò 1Ù—«ÔË2\ÁN }DÑŒ˜ƒÖˆ¹­ 'ªi?5´“äÙþšÁ&< ³ ›Ìxê—¡O$ëXÌL¸”¶_ãä³X§rŸþ°†èêø3<ú ,¨ò®s(Ø ìÀþ0g÷ý‡ü6‚eؤ×Aòó›§ Ñ"DwàL:ëNMýpùjéIVÇüW«k’Õˆ\J#K4‹]‡YUsï4ûðÈø ìpú::<öy`uZdvyIÝ lê #¬Îóø¾ÊY½ Ìå›C÷FH‚‚ÜÜ„Ùp ß­ro‡Ç×8‡Oʾhé¤[» ûõTsN©‚ËXßàcn»^xdÔ®ƒ¯ý %ƒ{Ðq“W´-ÿî’¦.¯£éÆ@ÃÇÃYªš'a=…ã´Še§vV…^ ì´â_Z G9Á@‹3Sœj§qÑGƒ'éVÐ!®õ:n_5 ˜êóöa—C{ƒ¬€=pÌs­²éôü ÀÁ£ò/›;šÛ: NêieüqÖõûpÏ<øˆné¨ÈkTO±ë&ÚG‚-JùÕÓ2Šu¦*\¦ =ùÝÁãËÍîvÂ~2&Ù]e.ð3œ”Äd,=¨Öô('Ñ'NT‘{¢ðß{iÉ=iÊlü÷Õæ#¤ž5èLã_ÔTdW—V•èZ@'h•×û—;7/-1ªœËk“7£2#~ ìJÅZ£ßW`¿OÅšg1vä‰$‰Îpà".ÏvÈžyH—e¥7ÁWO:Ͳ 9è*:ø»©fÄÕ;ÞÿËÚZ=õÄäΓÅXä~7«&s¬8RLxÙIšÄ (Ná¤$Ø ŒØlt¥–Ü–•i|7Hò[Bûùú•• ËË‚ >8#>&« Ö3¨Ù]orõ!”}mÊ›ÀXbjáÆEDHpÆÃU:Å«ÎqqI÷ï%>n^aÁ^°¢ÍŽ0¿æÜ{¨Ø9Cž©­vëç›õÁÑv nrãryfºÄìíxœÕÆê¢ñ+Iš¢šÆCòû߼kuñ¯ŠÞ5ƒ#†wÿÉðî?…ÖŒ“lä,7ÜŸš¨MÒ&f!C‚ô¬‰ ˆU)eQ2 Jµ¤ Ì ËÇA7LìÙt¾pê|SÄûÚvpͯ« æËTc)­$è¡8,ŽˆXjŒ’íXé§È4F¥Ÿ~œ„\Pf@/PE\\Í:ÃU¡Õœ"ndtpÄOø]ªe½‹îA6Ï /•ªÎ”Û‹†BH°7.nƒ1á–kÉÐÄÃI˜tjÐŒ„Ñî䨤¸¤¸ä8Aº2Yb¨ÈH•B(–B-×1ÙKwð(šmøå¥WÎv”§ ´)9I˜CÓµÈIÆmLȊŪ.*R&S ×Ñh>³”ŒMrVøDí xG‹0²6fPÇúö ük›L6 ždç¾›‰šÔ(KsƒÁ á`·%Ú9ÜÛÏ~‡×Z°ì+òë «Š®7Ö“®çeïó²:1y÷iŠ.hݽep5dݬ½Ô(,jÉ跟˜õå}¶Û ›•˜ˆÃtU¦l¿hÈŸÖ2¹Y ¶B„–4KQd‚>Šù ¯w¯ÄY¹Y"Ń£ô¬ÁÆßA1·/.?ø‚ðh?…7š2Äæ£ðcëQ ]N¦±Æ—•˜c¬ñéÄdw|ެu>Lêàk¹0€9Y}7+« +­A>›×{YïC3ãÿló&­IN7iK2ÂíE(͸6©e^[€–´I’fF Ö’ )=S­.6´æÕª­Ð –˜–F× Ò’‰ÒhÀC$|éÈéÕ{lý÷X ÃúÝK­#ð•-5£n’ÑI¶b÷+©`ôŸÚᇥF;`5v4ÛÁ„¨ü•¾èUô ñágñ©‘… ɂȕd"Cæq£ôb²?!3²fEõ2þDT‹&1#£óc‡‹¢…9ê£Éø)ñbòhŒ6¬~´ª1šj6³.ZÁÑrÀœÌ2È‚ºÞ¬Œc™Ög0-¦+åv]öЋ;|« ÙoA[{| áßÛÛuäõzfvE€ÞäØmSŸ™ÂܢݸŽh ‡ç–(O”Gcf¼Æ[çY—åhåõ!¶h:¿†Û …^yt‘6>o|¨Ï)+ª­Ð•Ö\‘§ó÷®u 0Æ8˜ñ5lãçÑÊ‹Uœ¯+©õ«°×‰Ð|ô˜Þ×.nÇ$øäø¥wó²ã£ó…ú¥ %sˆFSàÔ°üÈT)„Èâð,i¾«üéFcÈʘ¬šOaÊGlÆbp-ްÊ=âõ¶ˆXmޏ K´Ú58<‹õؘ‡Ÿãløµõ÷éíl&*…3pÎLÀy%:„é‡=ðá¿pdצÖŸÁ9GÓËôZQAneF­Q|%ÿt!âÚ eŸÉðÅSÞ…ÃåÞL† q>&Wa§‰3³ù¼ ÙAiÁã퀫«t;UÎͪÌÓ@6À :ÚÁçÍ mÖÆïå·ŒüÉ€ôöSª”˜Ô˜TA\’*5J™!ð.ñ)‹O•„䫃ÿ“*wÝœ«RE¯é´(1)±i)I‰©)ÂþMõ×ÏQhQé¿ê¥þÝŠæ1ÎÏ…UT™ß{ùup_;,/5É.yðÀ”w~Á¼H£W¹Q—âªñy~P{ôt}¾Ä-Q˜h“.«TyAaå1˦uèå5sÑ[IâTÑÄàêÑ”$ Ñ8í§(¥€²vñvp. l®5h;›D¼ý—ªe­ã»@{AU}AQaÈ£’ã“bc¢b"”BOw7©ØÜÒ·—Áщ© 6¡Œ_ G‘(Éé¢reT”J!ñJ%2…*t| D[X”¯©ýéþ‰Æ`…³¿(Ðdh@®@/Ï–FÆ„… Ñ4uØ’zæú cYvˆË5GSò¢Z/åkú€zsѾ¡O9¸ÐmðMÎhxŽVC¯jVÚu8ó:.ÀÒiîÎ=‹Wœ1¿ÿþÀùûww÷-EzÐ]ÕÖk-¼ÄÙ… QxydŽ#íeå­ÂŸ.ˆÁ}úÅ5±n>#ÿnÄfaÄþ¶ÿìc¾`¤áWá ÎN.ƒVpj¸pÔ7pô¤§<8ºÌäÄ­M7 ïe«[XÞÃV†¤«m—¨w7œž‚XË·ÎÝ®óùnŽ÷!"–{m7ýîÈ#o|#äݷݻѨ¨°Iôõ½E®À’Ú~àÀö5¶'ß?_Ør²SØ}›žÒµœ N¶7Ÿ»Ôê¸ÙÂ÷€…³0&€Ø8cŠ¡ì²¿ý*à˜òÀ"“†÷ àk¦¼AΦí7ñ³‡€‹^RÒS•ð˜Â[Ž€´ýñÉ8Õö8àNñ’«½³÷Ÿ»Ùa§Ož¸´,WWž JÈãd‘€ä„ä˜ÒJC (ºHµ,]šê•oÆ_ä:Ññà!°[°½ëÀ¥žš¼—„¼Í{kBúÇw‚æÜºªÒ"]Yé)Š×Š~è¥kš‹Æ%1à/*l»§‹‹wc×é²"8ªMxï8úAq]?8 .I 1SÏd6Àxìe6Ðê¦Ü[§A¹ Pœ( ×NË›'DSÇþÆ#ÿb7½ù\àý[Ý`­‘·‡@—4}ÔÛt,hñ€ -àvz§±$'Ýj¼¬§#w$…çƒ+Ôu¸® ­»Eªs8pyšÌýšÕ_®(=š%С½â²¢@!VÆH"%"4ù¡— TnL®±N¯ÏOï4*ÀX1Ù—Þ7õs´Ž&†+¸jg Z˜|ƯUïÁŸâ‘¼1=ÌG¿Ôï‚1ÿS@e+3¢ŒUñ ûT0 Ghút—º¿½uŽp<—Í/"½<2F_[‰¾–ÜæcÂCh bOD3ý)x Ò 462"Ò7ÐEî ¨5ö7áËý¹§ JDyúâ¬r@½ß¾­îáÀvéƒãúàv=‹ñ„Eô®Žã|×7[pöp½Ñp+‡ïxï¼d_à† qDY}Ïõ@^œ“\$8p~Üx§Òx‡ÅEB¸‡5>o·¿æÏ>`ó/ñ¸êæoáÎùTÀMzøÝ÷ØŠUߟ?ʆûa'-[æf¶Îvg 5°ÎWCP­Û© ã€úäÊÙ÷š$…^á’@YšB+eËR#Aå¹ßÛ~·ý±‹š¾¢>aÙy]WfOb› ®§=ƒC¼= åÅÅ导úG¿3ÉyùDý¦·™ò®ÿéÞÇû=dnÓAAþ¾Á¥e†ÂÒÒ ƒ¯ÚýÅïž IÚÇ_=fÿ9òÚ¹ñ×+# &B6 N`iï/Ÿâ€òÊ’âòJÿoB#~ñ;Œ¢ÞßÖ@î]6³Š‰£!›t/sÒ.ɤι›‘fѾ‘þî~¡‡ØŸëÖäRî[(½z˜Bµä¬D›ÎÀï()Ë=íÒq?ŽZXó>y#»2»®¼ºL× º@MTBÐì§G£®P0¼¯l?˜·˜BÛfÓKO„ƒÐWSs9‡ªE_Пî)ð;Á6W—URê'l'!ÃàÆIÈ?oÞL8 úgÓ øpp²žc˜”çê¦{Ÿztë¹M-€©PY“ L®“Ÿ€KO(zMyçà«ô¥®ž+ǼŽïé¡×!'4OVŠ-5åGkÊdaqqq11Âp…2„Sú°Ò*¾ú„UËú¥–v¬õÞïl*#N…x?lÛg»e}÷8z‰è¼c±'8Bíw÷¶qqÏËOIIU§ ssÔC…äûyyYžv¼ó~ÿÑ[GÅk/yƒ“a] Žyv8Ô¸ë<€?åæéåâìl8½[è^£0€ ª±¼¬ñÙŒ¼§šÖ°´ÆïŽ÷ÍœL[8`mÙêx¢¯½­¯ï@»•(Ñ®­ðvuõöqq󩨫«(¯3:ŸJþ-L€l“{­h4å¹}Þ /×´ž§©·ÆnÁîB^œG¡¸>M˜˜&ä¹%©HŸž¦Šòôu±v50whžß¯9é³mpÌ6¦‹>µ@,7M`ª zît4Á!Û¡ÀY”ë§‘Öø­GùõÜ ð•ÚpCL-ÎDx¾ƒ¢.YW`ƒ(¼HžíUHyî¦Ë­²Á QŽ›×ºeWCªh¿~ÅIp™ú {Me¡Ò¿Ûû†\]³kr« [qQ…Joræ (¾p ú—˜òì ÎÃjq&¢Ñ««ºl¯µ×çÖÖŠŽ¯¾îP—œ· ÕžtC•«£EÀçý"ÏÃ>F]JŽ•½[ß+*m*˯ÔAøÞ–µíaÉNp©õ¯æA¡¿<Õk<âND/#Þ¦cZÛõµÕ¢ÞcUwÁuŸ“ŸWÚ@‰ºÉ€¾ý+—ßÅå½õàkfN M–…8˹Ü-°¸®E©´GÈã<8^ÞPS9>$%¤ÅPøÙ9òì˜ò¨Ÿ™³Î<ÌéÇ0ñ|øÏÏíÐâøSz`zyŽ7/a‰š`wdëXO¯a±a‡‘g*ÄÜç^Ÿê%KãóŠ~¼ÈuªªþŒ±óŒ=å Z(\ÁMø8S󮚚‹¶Ó%ju1žqø×° yögÕ^‚—ØÁ {ì}ÙâÛ(ï‚NШi,ûr¿«gÆ£òöÌÐ%ÝÊjŸÖG_òí»¦Í8Rêœmû€‡ò€ÏŒG|;û/§ùV8{ØŸíR~‚›`}÷–e‹·o]¾lÛ¥÷î\¼ÃìäYûNCW›“~ðÅ&ì˜Ðù¦)o,üPNó'd¨AúxÈ_uœ¾–ÏÚ%ùûM’îkÅDÛ¾GcáŠ@—ù|uLzrFb4h•þ~!÷ðä _‘Ì«\aˆ­‚Û]U½­ž%ÖJUB¼;í%ÕJú9´Z2øßLEÎ6¬¡uòÞ½W™÷ªLZ>¹tÎ;–½LyGí™Õ4ò áöÄä(7pò³Þ±Øò²çQLJ—ªŠóÊ* šZPM]µìY¹hË–EÎ鞥k…ÎÁoì²Ý–f^°øË½ÓÅ7…<ùösÝþ'ÇŸý-W¥Y|ÏÃÁX¼Z‚½•gÚN×W/éà5ë³{Ò¨¡qY´÷9eh§º*k::j\÷Yº9-sòt›×Ó§·Öª“ùþÃaµÉüüíó•­ïŸÞ!/À—š#²ÙL%ô£†·‘0vÿR‚ -ø5 òS»Nç~êØ©þ:vÌžéØIüû޳ßëØáMÈ„QÏ úpëp:ûõog³ÿ‡ú:ÑšÁÃÏ+ž#à¸SÉŒ¥ña2‰\4nÄÓÆò|y¨v.5¹~nzÿg¦<ñõû4°‰P —zßf:È 5-½ý5{®ð>´=Z‹=,"#Æ@ñŠ?ˆkÛŒÆ[|à 8*½0^_oË qˆŸS“wÿWwBÖ‰àžÃ5"Ï2Ÿ¬]Ù¯ýûîŠêkã>Ùvú­-¶þ¶>—Èxk϶õÁ#úŸ:û²~ÑÙWú;}Y¿×Ù·ùçÎ>Þh´ñ|žÿ¿ô4 èç„™ÿ;h­Âh}ÎB4[¦¤™T(á `~Å?6ÌRd9„ÿqŒAu’žÕõ »—Òëì½ý]6.t›Ћñê§}ðv³}Ip¯gv.Å9ßZ¿›#n¯ÀwšwKÏ–­¨»vò?…2-FÙoo>dÚŽ³²˜/ikxþø3]Ðæÿ0ê>6ÒèoÔ·Z`]éwmg³s¿¥ %&)!P©8uÐ:µú Q\JPe*µùõmåuÅM@C¥Æ¤Æ¨BÂB$ÂX•ŸŸdtttTt\<ßxYFKAžù¿öÿ¹Å<#‡ÿFÁ&ê{ønª`]:záûÊOØ0.¥³.æ5Õwvœ § ª[SšAƒ¼.ÈàVkn°ÔœM;—Î ®,ÊË+ÊQeKóDŠœ˜ NUuTtŸî²Ùê · ´úîïSîKpdn§½ƒ=} ƒ+ª …Å>¢ Ú?d7 Mô®Š’úŽ«ï×7êÀ×\¾XðäP—áÞ*E8ÿ³R·²µE[³Ö€)à-ùR¿]¾fÞ®öü½³9ý»œm‘‘ÑÜ?úÕp5âGÇ*ýkó3Žó÷޵ùwkìU†û‹òÆèß)oŒýÅÒ¿wöcÅ“ÌǦ¼€?à ¿ðõF€ó8è«Á›0uúa–¬¾TíÙ “ôpO¥ ¤îÃQW™QM¦¼ûƒ¯Ó«Ülå[ñbV£Ñp \ÿiÝgý§DÝÝK¯ ΃cÑ+hÚ³éÛüåÚJubjbšèTs6s•ÎÁÍÒ,7 pnáîî66^kÀzŠ7Ŭq_w[gi{wÉ1­Þ§küãX Ópz ¾†v"G´Í \ˆ¦ÂÃWz4m_ˆxSÐ*f]¯ Œ?o/1÷ß/võ ö”KPuïñüžšQYU­¾ÈØÊµ_¦êYØeô,߯…ÂÃ?±‡ »™Jdž*ÆšN”$…¨|äî‚è°X ˆ Bs%º‚|]AZœ&F#”×F7€FJMªã # ÂJ=Å^yŠ|@äh K¤YŽjÑ‘4ÏlÿܨT~w™NݦnHÓdbÊ Í ‘Jä¾Âï€à`Et,¿„EieY•iº”\E„熆J¥¡Š”°´a¦Gªð£ä¤s8×£.´H‘(±4<4P/ëŠÕGW(uò¬hþ¡€p•Cä(‰PÁ9òÂÜŒT]ž°¼:55]™¡N­-ü;0ÉxìrÿØãÌ™¿`’ßaÌßcMc—Ðæ½?ˆ¸¿ Ô?^ñÞí1+Tþ ¬°ýVHø{VØþ»¬ðZ¿ÿÃÕ‡ÿí¼ äÁåÏË¢¹ÅƒŬn±a/2¥q=ÂójEƒ ÉJ¦JøQ1rýë)èÊ5f×qÚá6ÀfÜ A_iL:¶z¸€“Ø0 6ÒÈwôE~Ðú _è7ìO[ñ±Bûu㣬kÏlùÆËƒ/ü£ë5V8Mêk¤ï«9Šqfˆø€¶>â¤EFü=ÔÖGü.Ö^'¶1v´Zú¿ÆZ>†ÚsL\ù”4#±Ô‡â¿næ\⢰ÁÍ?Î7êàJäÀá†ópÄE8· }™$º;àH! œØgì.\llY¿m¥w‘õ–)ÑY¡e¶E¾y€:ŸÎ Ô–ø6ZÜå÷”Ö‚.êĺMB´ Ç71ÝÌí,òÛkàé(râvÃGÆÆù™h²þy@Ü΂3án¸Mƒ³•èà8×Ñ´ñ‘Íþy>|94þœ‡-–l¬/›À¹¦<§÷ÐôÅêö3?W–ƒÜ…¼Oƒ¸îÇʲÓÿ¬,O³þb"¸;ÃØ`ùÌDÍ_­žNãlfœîþ‰`+Ç@ë"x”ŒI¶Çñ~³X§£“¿>l>\Çc”Æa8ñ&†(é{êcí½ßÉ2ø¿9·â“/)‚â_έ¬èå_ËçþJeN’œá÷›•¹‚é™îWeâÏ,WÝb×`– €®ƒ§kÀC²:Wâ&úëBÒK&÷Âv˜ÄŒ«>5¬þFx¤‘ ÷c¬®03[±òÜŽ;÷Ο}çžÙ¹"÷'ºìÌwïß·ÇrÏ©S=ýÆeC›s¬F˜Àn„™´L8Gþmü(ÇH-ÿ!Ö;wÿá3ŒÜu“ýåTú«¨_à¸qŸ}1vü Ó/*¸ï¹Ál;&ùãŸ,Ž/ÿcâ}ºÖüQúw«g}{hølo¡#mcXœÝøÇËXûÐëiX¬Ë$ %r¡/¬ý1<.€ ÿarÖŒ¯~õ˪ìŸoSÄÅF}ns—1ñ¨lƒºgçüK¿…—htˆüiÔ?äŒúÏþyÔÙ,u$áý6M†¡\^HefzÓ‡çŸ?õ•pò°W½ÚÃ2~§{†âìÈÑð4\€•çXp'Φ»!¤%jipdŒ Q܇Μ64ƒnÁ9›ÖU‡ÝAA±RîP,ãv•Öcv­v?èíecg-š6‘ÓÈŸClÂþ¿‡©áhõìQØü)GqÓï_e°ŸgØÞ5&º?ͱ•þSsl›cŽ-fxŽ7vÚà“6kÅg£í‚çN˜@ó[ÖX]þ”q¢ ÉÙIÅѹ‘‚RiNð¢ùùG¤ä Å9©€ •†‡xV†õBö{'ïôú4ì1ˆxZ+ó eã:ìëwï:â·ÅMXVѪϩ‚ºÂ0/WÿàÍÆ@*+4)a=‚šGƉ¥´8(qqÛcéŒÈáª"«½ØiYïx4ð$8 ZóêjOö5`ÜÂQ<8¾L…qþôývÄAÎÈÙqâ¢EŽßÃ#Э²>댬âaRÿÜq;øÃM.ÿ±QÀ[wŸWcœŠgç 6ü­¦7çW§üV’à=qÉZÝM½®¼7|ÿfaÅå|*‹Ü–à¯ò ó “ÚL‚MaA[C/†ä‚ÍÚDËÜCeaea¥ª„áÏPñÑCóz—³Ìh½Éé ÍX/1ëq€]€>à>䨽žµý"xjÁÐDÇ‹•–чcAå˜ç_^©-9ZS&ïÊ{â3cë+l낎‚>ÐRÖt–âíß™dðíß 9Õ­T:¢ˆÆb>X©ëøñÀŽå\ÅtȆmF“oË‘‘Ù©Y))Iùê¼”Lœ¿gH=EÆ™\¨ ðHi¤,î qô¤\K®L ÏĪ”ù‚|f" 3ûç÷Ùÿø4X]ÏóŽÁnðµBLÙÁ·àK'Lyí0rð5úä_káìBîš4Åð‡2|BòÄ?~,¯]‡rI4e§»Ü`Ñé)ª,‹:O¡þŸ>Ï!Î&·1Öô¢ Ï£š€«9íåùš¼´¦äÿèhªÇÝçe_®ÜlŒ¸Ç†Ë4/Ü3veuÒÉjPBÁG¤,½dÅ "ë5¤*-I,B™$Rªœâ¨@h9<’‹1Ü`ÁbY_§å©.òÈ8àDqáJ¸ñÃOo;‚¯–ß~Ëjoða¡§»ÔS²± †ßôe]Õe@Ýï·X²Êaö’ù"´íá(˜qäðT·¸4VÔCM ó&V0‰ƒýL> ß:J^ˆ/ŽÁ@¡Š@ñCb¾Ç.E„“ŠâIÅОäëH§”€, …E'›î”ãÃh&lSÈvGKâùøyŒšlƒ+9Ü=è¯Pd©5Üí±É=" ß&@©R–ž"M=D@y7Ö%VªÄdìi†8J¸…éé:áû\8dš¹ÔÐQ@Ãð]ûWày}ÏóŽñÆÙzÆ…^k¾{ÝšÓ»oÞ8sæÚmóÓ«ÿ£\çÞý­òôS"ôÇD8vp}9¬Ð¬¥&¾%º€›âµ¡b°tøþÚ`ïÍaT9X’Vž_ž¯m4~b&Â+ù†‹[õap…‚˜O„7ûæûæû§mMÄ)ÓßïgÒô¬î1˯°Á)´ÌÚÏEŽHÇٷλòQ‰^íÇ™އ[8mðÚ;d‡M7·žùG‘­üñixí®ó5£ÀžߣOC|QäÙàF LÖK,¶¯ó U¹½ó%jcn"•…¸µ_¹}·¤¹SÔÙ\r\GÃ;}*C ÅÙŽ:Š÷àrgqýñq÷vœ˜cç(ñtzûIýƒwkcùÍ×Û«ÏêB»£™«Ô5 @äíí+݈uE9#ìŒÀ8+3I9g{úÝ«ÆIq³‹VFEÅ*ŸV.‚$yÞ­jÓNß#’Y~®6[“dl§&¤&¤‚*Ë]hÐHý„Þä\y´_ÅËGD††Ž;\áÛ\Q–SQ-LóÌV”‚B£6(4¢‡QqÑQÑ’(EœP!}QIöJ±èìÛü/±©žßÃØ¾d”~?âÛØsùïC8o&~A—z¬îH`1VðíD¢ð! $U’1¿3L}¿¿WˆÃŽãžü’ƼìJP bò"?ÜŸÝ:@eAÇù§xWµ>L֛ܿÇx|bü  /°~†ôµÒz¦ÿ{œ„ÓçC¼E‚({u¾5ÕúŠ®š¨«Š«ÂèvUGlg$$ø*¸ûçžõŠ¢Ÿ{Ö‡¹’OÓ‹[V÷àñ+¦¼ïÿQÎœÍø<'ƒ ËQüVôýœÁìÄŒ+Î`ªÚtšz ¨){ã fÓÓ ¦žé¿Ë‚ƒWØpó m¹¹ %)YÝð!?R- QÆ„`:s )âAˆĤĥW5EË›…t9¶L¥fìZ»*T¢.ôz‚2Cå#S8wÞ¼­ôh¨£½ Ü×Äv=ŽmôRÁ/ÅÛàäÁzwÃÄu4Ûð{Za\¼…Í´ÛKìDùn¹¡-Î3‘ˆßͽ ©³.ò‹@m°½Þ„ޤüzDaµý¡Êi]³]c æSÈr9zñ÷Òu: ji÷óŠ>ð-ß…/CÓ¾±C›ðÙ~ZíGlLê×èS» ‡´ël;ý4öX†Œœ3 C‚ϦÀ1ÇÚókëE}½5ŸGàJø5¯sÁíaE¶Ýwñ=*fÚÙV¸emK ꬑuz`ßÞQíÍùhýàÔL¼ÒqËš#.EÍÁ"ßcáWp|ý´ëÜáèP=c£‡VznÅK^®H9òAþÈQñÿÂGu endstream endobj 686 0 obj <> endobj 3104 0 obj <>stream xœÝ{\×Ú÷ŒëîLŒšÈf„U³KbÁÞ¢{ÅŠDDA‘βtvawaép¨K_`—Þ{GÁÞ{o)jnz¼IŒIÎCÞ÷;1ɽ1÷Þïý%ï½ß÷†zžóÚÿyæ,I F$9ÒÆSê8ËZ&uöåög²ãIvÂ0öužòýAùÃhþë„eoÉ#‡OXwÇè÷1ýë_aÛ_%&âGrBK”µD ÑE'Η‰›Ä}â!ñ9ñ5ð)rù)&'“3Éù¤9¹’´ ·V¤éBJÉ RM&’éke~ŠOw Ó©»¬wO›1cæ/Gæ-^¼Øô€âùÓu®žî¾¦Sð‡W™ŸÔÕ7h©éZ|µ§‹©»ÂÏ#ÐÔùàA׃Üm¶Î>®Þ¦ë=}<ýüd!¦S×N3?wî¼Yx³p›§ô@p éàìM·É›ZšZ»ºû8üö̆x< ™»Ì×ÕÛ}hç ,ÈÙÅ¿ÖÙ%8ÈÕep»ÖÅ9@æë2¸]7¸Ýàâà,uóq•[ Þ¸öW¯X=xxK€Ì9ÈBêŒÿû®ýù᫇¬ÚyðR×Á­óСƒƒÏpÜ|†óÐ-.¿Œãòóã\‡Î¹þ|Àý—«\‡HDúê_»5²=kýö®ó·X¸!hcð¦Í¡Î[ä,.[ÃnsÝî¶ÃÝÊÃÚs§—÷.[éî»o›.z˜¿¹xâÑ%“œ–N^6å‘Ùò‡¥WLý`å´UÓ?´Ÿ‘ê0s_ó¬”ý³?sœS27|^²r~—ê-õ‚…bÉX5rÔè ¯Ñㆽj4‚Îcø¯ŒC¾ô²ÐøuA¼‰­l;±˜˜Hì –“+b)1™°&¦; 3†˜Jì"¦¶Ätb71ƒ°#Ö3‰=ÄZb±—XGÌ&ì b±ž˜Kl æ‰ùÄ&â-b3±€ØB,$,‰·‰­Ä"baNTÆØ²Mˆa„‚o¼”ùâù—ߊY`¼ {áê…×ßözû¿y/úÎüäâÍKÆ,9¹téÒ‹Ë—}µÜyù¥«Vn]ù›0ºß  ];û†ì·Õ3ûS5Ù·Q {É$T€DlAS"ÂíEr¸WOÙ‡æU妿§çIzàK|¨´ÏÈõÓú•„EÛ&Ñr˜I ¨a6)XiTÅÝŸ¬ê€||fxÚA¶œxrt‚ÇVAÀH·znô[»/AÞwáà MÒY’Âë ÓF¥zæÌô42™¿D‚wWÂQ§îæ¥J ïòÑBv5ƒìÐL4íF6p&š wâŸép&´;Ñ 8m•$93x,2E‹Ðb4‰Ñ\4C14‡Ë 1œJF³ @ÇŽ;A¾ó®{È+`ßd2R³“s]•¥Ü+AɰŽTÙÅÓJè¡£ìÒ”¹ ‰† Ôáî’Üz@÷–ùl’ W XªÃöpÔQ{Ó#rA/ ÔgŽ'Wïó Û²Aü€ŠIÙ«ðŒ´  bÞ? nÙ?AQrÁñÄ‚”‘ _wÄGbç3Ûv‚0è2ë“«’Mô脜º”P¤ü+’@-0ÁÙ5ÿ¸x»x¬•ž²JSd‚R Ó•7÷À—áT“Ï‘iýÞ"O E¸Æ3)D&Ep*êÓS¶Êl§Ó·J8n¾tß{1 6èåÍì£f¹ÞòŸÂ¸§K e,ô*Är urêa\n$XMì ÀjµÚ<zÉáÔ}p£¸¹¡©ÎÐ ƒ.E›Oµ´Ò/wsÁѼâì²bZèS^¢kn‡Ï?V‹£™' '®I‰o?Xéb9ì 9èä­8½ Ð{UYuØ>ÃW¬ÍÒ‰»BH³Ÿ¿ÜÖq§.M;{ùG0ÿ#Le4vî ¬ÛñŸNFÐè‹ï°~ç|Ž^“¨eÌÃ33Ð눿êƒnem!ÙÑðëàýù¡ó7Äœ"ôý< ¯>åõïä”!“ Ž&Fƒ@ ‰‹ˆR¢‰(ÄM…‘±… GŠò³êRÒ@6ÈI¦õ¨^NNÌW}…Þ€ÆÈÆ­¡Àfn<ùŒžšŸ¢ÊwihKÁ©0äÜ_*JŽ b¬êb¿i#±{ðú Ö–‰‚!üAlHxD(ˆÊTeÆÞ‚=™`10÷Ùjc±Õu6@ÃÀìš…G¬ÏnþÄõKùàËžsïÒŠ¢Õë6IÍÈì48µØôú| †›>…/Áɧކ¸´‰ë¼u2ýf£†¤…aE (ÕÔ±£ÏÝyƒ ã²Ø×™¬d-ÈtƒVã ð ÀîÈȱ´pJŒ£„û‹¨UÉêp†ó¨F¯2M áˆOàp8¾jñáôŽ»%÷¨Ø”]!j›0œ¾Š©9ÙÔs»w%¢o蝹ÖM5âÑ,-ìû-${®cÂvjBBƒUÖØÁ³ì:ö;¾n ” E+ù‚¬ÞLCaqiuwþe<š¿``ÓÀw|%{Ž*ƒëøƒZ{n¥Ïž²H “ŸA’k#Ô+ã°½Éa3iðmýù“—Î4ž€¤÷mNl¸†È&ô:±T œ §ÄdEasú<­gjs2Û_ ÷<,¾¿«}!@@#,Zâ`çk±Ð.Ø(QÌWBës¬Q•QÙcþÐX¨„ìrf_¥4ë ~ò˜h8š„Œ.Ïÿìô‰ŠÃ]„e§B¹ËÕ#ó)›ÜèLÐA³ŸGRkÐû ŒWk¢ƒå^>Àøe‡¼«C.Ëåc·¯õÚ8ˆž1ìl‡Y-xÒ_>5±ŸÁåŒL°Nh" ý{szŒ6.51ÒÀÙÔ{@§Î3§K¡2Hs ^©R‡É¢°˜³a€ *#£R Ç °=•( çÑå‚8‘?P%&˩۱y*`1èê*å,ý:9ÛL†q´\n ï>äiÙqL~jVr. Ë³Â%(•{bb¶Dà(££6¤†éÀ)Su}•Yqšq*'6ÐeºÂªúƒ§³oк½’O¨¸Û`wõ¹h4{ èá¹_ÍÓƒ „á ž±T¡\ŠEŸÌ‰žÎ‰>á¢ßûEt ˜Gr!‡õzjEš*ܤ¡/œL½ •¹K°Wˆ4%v¶A]btä<\|ÝX8^…W˜x8)HLŒŠIÂqS 4)‘é´°0388Íü2k»µ;ë\ÙKN{5†‘£·ÌÎÓ'¯D.)*UŸ¢ÃÑÜ<6;-£#´Ìù‰¥Ø§ c«*ã‹Æß»xúz_`ýö& ".Ê ”å RÔV[ÕsªÆs~)–Tmì÷md°¦Oxý{à÷ ÊT:rr£uQAÀ‰FoSÞÛüÖ¢EfP·}VõqW¯¸«÷|åUpôÊ[Ýkd~åÛèRA4tç bå UЀðT…v¿n_æ~Œ¤ofÈiZ媓;$WÖá ‡ÇŽilk¤¡#ÎäæN§GÃZÍQvdQŒC[±Á?‚™8l ¯M´ ;)5V£qµq²§…"cbcâÆ„äÄÔDZxí:.XTãt¦·¥ìh½X¦ "7eå l¥„¾ º4ìí‚Ízòû§ðäSt…ˆÁ‘ÜÌɹ§Å¡¶VN݋ɉkõºH±œÓk­žZ•¡ÎÀ'Ñîaw¼è)È–âRÉik»¤P•otã!\çVÈö1q‚}‘9=øšO ëèó ¹°‡FÅ©T‘~Á>R@ônè á4EENÈW‚}4J§–¶»ÕÜZPY)îìä›SBË´Ä>CSΑ|ç<úþázRx†±V©#% åäÅ©áùàÖ ¸·òó¦aqûäÔ£¡”‹eUØe’õÇØ#‰RP— Ó9Ð$jâ5SQ®Éd˜›Ÿ²p’ÊÑ6¦Ò:d§¤ZµšžIp$j3I‰MIÎPdDg€  ÍÓ5Ã×àm“ê«ÚšTÎT-ìcÙÖaÙjÙ>ÜÊÉy7KÑ&§Þ‹Å ­¡\¨ý!þªØÌò±¦1¼ÀÇà ?çvéiHœ» ÇH8ãô*TI5ÄdÇ€0 Œ Œô›‡LÁ °@ž”ähi±˜ŽJª9>7Ò°K+×Ê3s‘½ÉT˜Ÿ˜ ²E 87³! _µQI•&fjJìàxô¹I®4S•ÒAf^nÎE1&£È|·´Ø Ò‚ô¬‚6̾4)êHM7à!°ªwhNYŸfMÊŒN¾§¾k,ìf·]fÂTqJ@ÅäwI 6ž£qÕʲà&'ý@ÏZ½×2ÈZZVl(IKJOÒJ³’2–®¬+ië­ôÝ%ÞF¡Ù[â\ƒCUžÀ‹ÚYv9žëj/>zN,ÌÛ^Ò>¾Ëߨ‚O¡98ÔûÄE…DªdQ!€ö5tJÒ°“µ7ÁQ]ôálãÕ§ÏÓáL™îÐð M 1Î’6ØÇ•_=…á\9á÷Ã.¦"±0©Üdz;ËÎÖ5—A‡ªÅ¯Ú¥kAÕ,l…a!ÑÙšç´$Z³2fÈ–¥*¹l.ôaC†Wjµ•püy‡IÓwìAT¨*9%H<%NÁ· иzµ¦W‘U×aø½Ê*ëÅš0­+¨P\ †jƒ3Mü²ýÒq¢½zí\ËJ×Ë^¹Bçå«Å™!$7¢=tÝn?/àFÛÞwüüÎýŠŽ£â–ÚÂ:ÐÎ;t¬NEL†‰mJ@(†úÆÊ̬$mR*Ð'æ%e€fЦ«­¬¯Ò5‚>PWªª£QÌÀ8¦>æØ^@\¯v·Zyñß²ªî*ÕæuôIÒá§Ì™ªÆžÚŠ0i¸È#w8HïôõØ·ÝùÒwíí+é·Bo1Hº´kÉ·Wóš {Ún_nùx°J݇&ÀIØ€†LÈqZÍâ3[Ä­Îu¡7Ù˜\]G9Á·€W¦¸ÔΠúO3 GÞèsܾn@|0Õw²Ë>·»ƒl€=p,t¯³=äý€//ªÿÚÞÓÞu¨ø4 ‡Ú;ã“·ÂmØxæÁ/˜ŽžšÂV@÷•»[HÐ^ lШ­b‡ú;»²c3Á5ÚSß:_²Ã9pû>1¦j 6°¨ÝÓ`tã1T}m,œÀîÄ¡!D†+œ®2ia}¾›[¦÷x'àæåëá£p»ÁÒ®pøŽ›®G”»f©ÓC@ ½qϾ5ó-OÀÑ{ÄA‚äÁ/-õɹùºñ¸ª×Çà')[Ú¢ÛÆCêÃß¼gs ™Ü¼yÚ¹ §Ot´œïî»7Šk½óý và²Où6ôœý'ƒ³ÿîb÷1q©;‚\Õ;8æ§'ëRtÉÙ@Tš†ú V&D†ÆjTÑ* mX±¢T•Ž“®",Ø»-è8væ.|S"üÚ®å‹@Á¬‚ýk µ˜Jkû f oGFšsY²3ý4UÇô3SPJ¥h]&ˆ…+øç±h¿LPÉR=þÜ~Íuä{¸àîç1XWXTº>[m/¡Àî„„µ\Á­ÖQ¡É.)8è4Š %MÑöÔø”„”„ÔQ¦&5ÄÑQQ±b¹úꎩ>zç#h´5©®¼qù|Ou¦H—–Ÿ‚ch¦9©­I9ñ˜ÕEG©Tèu4Ú„5§âS\#|£­ÂEÒh® £êbûõä³§ðÇ. Ù\<Í-x/'4%GK ‚p²Ûã.õ³ßâ³ ¬{Ëü)êbš¹~Ò­Áºì®.k’S†J t‰B«ß] W@òNãÕVqYGV¸7dÆä_òôƒ ANrn2NÓuÙ*É€?v©Ô–q…He™‘ NÐìgXÞÝa®šõa¢ÁTÜ?Ê@öoåz|ÎrÁ‰„¢H á1~Rd6À3A3àÇ^·¢KNôùÙ\/'9ŸëñéåTob¾ªs>Lè1Ñ `{ºþANÎaÌ´úõX7¯%?„–Ü/OϾÉä¥frÝ㊬p{ ÊàdSîL²è(Ûeh¥a#R2³µÚòÒÎÂF@w•xà@„)æÎÈHkÎõ‚t”u²²œ§a:UÓY_ÔèSE~æäNëèh«|‘LGù§HSÔE UPpÄÁ³+¬ìü­v‰§<+wG S™[Òw¨˜;¹g¤R4ú‡uC8ü`Îá€ÙØ‘8Œƒ‰õ×ÈÐô‰ 2Ÿ%¦G•$¥Š¢Šcõ ”•fçp0È©SIÙQ K뛘¢F4‰S?Ø-É×IÅ—$Ê©#q:Eó,¸k ƒj6».XÊ× Áüì*HÂCú£9YDz±YŸÃa1ƒkáï9lí0i؃?F{¸OÐÎÂ?ø¸½=ǨUUìð²áS˜öµî_…“ŠÆJ¾Æ+v @ãÀ‚Ê·:÷´8<)È«?ÇàkkÞE”cHŒ«¥¤ÎÀe"çUÐèje÷­Åóvp›Å[»>ƒsŽdVt’â‚Ú¬FŽo¤â£ ì­Û$» #5 ì@f…ÑW‹òN” ÐÞOù—УÿM>¦'Qß³' $´‚ë˜nVˆm3䋎ʫ<½B¥AY‹sÖŠ³¶gp9&ÚåŒ4(ÐGZ\SWZRSX.•ŒþA‰ÀÃ?C<¸ä+Fàïã[P][Q^]ë_!•ÀÇcÿ¥cƒˆõ®2:y×â6”]³¹‹ìd)æËcà*ýÞÚ³fˆ\²qîf½ï·sı8Øgøé6@>yïò7bá=pϳúˆVLbní.s;éÍû÷o^iwúƒ‹%§‰{ï1óO»÷€“ôéîö W;×[Ëö[»ŠãˆOÀ:žÉ®…‰$<Ê®e´mw³Î‚jQ‰¼((P® ×M+œ'FSÇþÎ<¨éd‡W‘5ŸðÎ3pxÞ ýÕÞgwÏÁWOÃÅsàKˆA/ÏŸ‚Æ£Ñ7—@âDGAû1ñ´ñLÑLžý ŠŒ’º©Ý½Òþ|ùTÁÙâ I¡¡<§Ðt/DË_ Ý 8îÜŒ 7oXƘ pÿÛÓ5p?ßJ EûùH$¨ÜñávFØÀa‚4Žh›ï^ȇZP}øp>ÏíÔr;¤‰¡Ê]7NPŒŸ‰¹:ò­øí÷xvuß_<ƒð£Z¢ð°\m·5p°®yî¥Ag‚Žú“ëçßo +ñ  TeDèÂ$¹ªô(M{;Hí·Û»Ò“w¢ì„¸ê¢þpv_r—( ×±ÞÁ!RïÒÀšêòòšê@./ÁÚHl\ÉG ¬ão­ ¡á/²¤£·Ÿa>÷€Ç.gÈ£<«œt‹²é ž–”eŒ,ÊËßÓ/Ô8‡6·jY‰ò† ©Yɶ‡¿¥•h¬à¬[GäÃzAÃÔíÜÚܦêú*};8 ¢›" í~4ê: “¨‡šnç·i´i6c~2´ô€ ×òéFô„ùÔªØl›ÜÝ–+¹’  v˜86Afpª¢(*] D!êyx޲(×ÃÓ±cÖÆŸÁ$È3zò"Z…ߣ7˜k gÁYºÏ£u¿G`°§X˜àU"oÎÐ&'gˆ…)Z’ÇgfÄF{ËÜv¹IZØûŒÐï·¸ôßVbj`nCAô(/«‰5» Ê/Ý…þÆBûGýó°»!¾)z Y~ØîfwsAc£äØñúwÁ}úªkëf±Ö›i©sw´Øàê ñvñ ÃêPÑr¬ê½æ£’ʶª¢Z@;؃‚]v.a[ ÒhaãuºÏx$0E/#¡Å1ëK݆ÆzÉÑcuÀ-Ÿ˜WTS”P º@…¶­=ûQ`rX œøèk¶ŸÉMUø‹µÄ#°¼©Ãpµ²O,ä?:^ÝÒP;>¤$eÄÑøê|un\u4­5Ø+ê5ÌMjÀîdñLGaüMNƒê£»o°ï×u|rõœw, ú ôÛ³+ä"è‹Ë×)pòÛµåí×¼8>¾ZW^XU[\š×êé;û–-ܰa¡k¦wå*±kðÛìÖE¢™—¬¿{÷lùå;b¡zó…^ÿÓã/‚S57”9&Þ.ÁØ›w‚ݵûÎu)o®=^ÑcRÖnÈíË Æå0Ò šÐM®mèéipß»ÓÃi±£X¨_¿†9‹6§,v8¸`J[ì¸xïbmç'%¿4á^ÃóaýŸÐ#´üU0ùo{„–ÿ¬G(œ £ÿ‘½oŒ·_ÿ~¸åÒîÈËpÜe’­eÇ2É›Ød7|èöõ¨êP]?Si„«%‹>3Êo=d€mdÄà»íÉlu©¡ãè©†Ý –Jlއ$Fǃ(™WšD Ëÿ’е÷vð~gytfI¢8±$±TQ Dþò?§6驯<†äÉà>—‰w•oζ\ZØý}oMýÍqŸl:;qƒ¿¯8Ä-j?°àœœ½öŒ„Zy߱̕úîs?»m§w©¼iÈgµ)Øc1qÅ.ë%sÇ.ûÿˆ2§aeÂÙOŠó²ò@È Î VFÅ)bd†¦ò‡\®Jðé0Œûþ·–bÍÑÎüDZŽþIòðc<ŒË­ÕöR·}ëx˜ô@Âæi™Ün_|Ô;·ÀdéY£ßÀ+‘wÁWàÛ¼÷*ÏW¯iºyšþP¶ÿÁ@}ÌYý¸”¿U€^EKù 8ê8z—H£¿‡ß E yõÈ¥ïk?áÁhÎä\)lk>Ôs€üâºÞ¼&ÐZÔMA¥;JwzŽÅVs—Âàڲ²üØ\e¡$"?. dÒu=5½gÛnܧ¶ ´˶È÷jö&9в7sŒÍÛ÷9c (ç’é þÐþ1¯Y0·×T4÷Üø q°_s{òÖÓ‡ýKv×E„›¼cYéQµªlcÎJ`&ªÍý¶É,¥îk­èÑ?ÌRµÂõÞ0Å­j ýŽºÁŽj3>ì_w‹Yîa§Þh´†¯Â5Ÿ6}vꌤ·÷Jå-LrçÁ±è4ÍÌrú&µ®V›œžœ!¹µüõkp»2Ljœ€G¸§§­­ÏJ\[ Í,[÷övªìn ¯:f4ûÿå#L ¸M„¯¡­È½æ ®¨Y€¦B—ë}y]O$B3´œ]ÌT%ê&Ú‡íðw»ûûÚ-¨þèñ¢¾†IU]£¡l°[?K¬žcÙ]LrXJH¬¯ÚS£ˆ‘thA˜¾¸H_œ‘—'V7Æ´àzHKiJ¢Š•^¢rŸÂˆ"@çëJ*”9ŽZÉÁ ï\ÿ‚èt“Þ*½¶KÛ’‘—ÊéReAˆ2L- H‚ƒ#bâM*(P–Q•S›¡O+9tqxAh¨R‘¦Èg{¥û?ZM¹Ë ¼šBË"2q9/W†‡T‡£$Í15½:'Æä@@x쾨ýÑa €ÎW—d¥ë ÅÕõéé™Úì,mzcɯ¼Æ¨ùË¥ï?ùÒ{MíŸà5›å5Ië5›ÿ©×¼†–À  YqpeUiIeeP©LíÇþæ¶e4·¼?«œüË]<ŠŒ™…¯ðÂFIÿª6/¯NüQ9rÿñ tÇâæÉ—I˜r™S`+ƒd›  ù]†~PvÉ ß&×RÕ±Sê5¸·ÜèˇpûCcá¥Zv!sÝ€-‘ê‰8™øé¨iê|\«Ã÷S_¤'ØJP!×.ˆÚ÷ÓéôÈü´õ.¸/újɽ‰6»ƒ]ÜÄÞžJï°uÅq&mmª»臧¬-ß7{Ñ| Z¬øì8<Ò7¬5– ëÆ¬Ú±}õʳÛïÜ>wîæ½gWü  ?plÿ<暢D VѶHpG¾*TîÌ÷WK×+èHêrrEFuQu‘®•[n„¼^Tz¥x£AQ pU‰<Þ.+’ùglL\HÑÄ~|ÖÞ|àzÓXx ΂ï3g@ibYÔùàVkŒù"ëÍ«ýBµenbiQ˜–{תT…xt_¿÷ ¢ýäP{Åip ?ä[Z"ÏuÔÓÂGו7÷î–“sö8†y»‹¥~Jÿàíºx“ö[Ýõ}©ÛÑÒ]é ‘JeÊ Xޏír &â6ð$ã0,„€ô°¬ù‡Úý`ð ٷ帷IEkan-(Åq…Q:Åt㪸¶¸ç"=Ô³0»È.7Áîû+î ?e}`83™µr +Vü-°-¥„_߃KŸ ÐÆ‹ ŠÀøÅ`G­™=õ€„ý×ypûí -%UÛò¡I”V¢‰ ÁJv i’±%ŠâÒ2ëÚbÔíbH¹Û ¦Ò3¶­Z¦-‘нKƒ²qòUE¸ ¼óðfå‘>IOwñ)pÜ”÷ìésì².E#Šéç‹›:Ïþ‡,oB‘l3#[b¶ÏÕÚWl§ ÔËÊ=Úä‡ÀCÐs$÷;Œ6D‹OBò׫ð`ðIcaÛ;¶.çÿIKñ®üÍR¼u*Õš8ZÎzP}”˜#8Õyµ·7”k‡øøË5XiÁá…¥u Í5’ß¼bûç|k©‚ýï%½ ù,¬í‚ú_»må3x•A¨çžò¯xîìŸ=Ùš;Rðaƒ¦ÀP0¤6;³íËÿĉ5p õwš{r|Pw¦î’^¤»5œî„‚)ýÇ™]ðâqêWVÞô%gçðõ/yð½þ£/èOt¡ÿwÌü+ztüϱ"Ë{€Çï~ÏŽýëIÞ2žuÐ[øû,°¼²µ$]òwßÇû¹yűÁç=ßÊ?¡{µþWÝ«¸¿í^­ÿ§Ý+ñ!Öô_"x?7-ÚÎ’ðÃþÉÿÂMš?zu$»«÷ËçëËGž”aL¿ýã1ýÑT¯ e’~ê* ÷ó÷RVT””¥KÚµ9êþÓ5è쓟VÌÂáÏÈÊÇù­pÍÿö²Yhöõÿ回çM+Û?¥iu‡%_HŸ¯-¾Òð|uñ§˜×¡aÿpîi /rÞ݆•päï¡FyRpÔÀræ.6þÙ«?8þŸûùÁÇ?ÅÃçôÚ%t^`^ÌzN£'ØúõŸÆlûyç)ûÅ òϦíäˆ?YçÇÿ”Žj$ìþÐ?qù÷bxùÅëPaÊ­‡Ú X™FU×}ß_vÚÝ«¬28±Ó~O±_¢á/ê>túû-xÄ5!BÇ 5!há9q·q¿ß‡À·p­ˆ‚qÿóV„óK;ËõO>¥€ç:€²“¼ÿ±èb]жTì*UúïÁäÞQ_z¬å§ØÌ%÷‚ÒŠ¼’Ž.ÉÉ3%u]ô RR¨µ5@ƒ fÄ£—k2GŽ|T4rAüˈ¥e endstream endobj 640 0 obj << /Title(Index) /Dest [639 0 R /XYZ null null 1] /Count -25 /Parent 5 0 R /Prev 621 0 R /First 641 0 R /Last 674 0 R >> endobj 3121 0 obj <>stream 2013-12-04T17:34:25Z 2013-12-04T17:34:25Z SDoP 0.80 Untitled endstream endobj 2 0 obj <>endobj xref 0 3122 0000000000 65535 f 0000693047 00000 n 0001082206 00000 n 0000691342 00000 n 0000644629 00000 n 0000692989 00000 n 0000693238 00000 n 0000644941 00000 n 0000693335 00000 n 0000645567 00000 n 0000693540 00000 n 0000693443 00000 n 0000645935 00000 n 0000695256 00000 n 0000693694 00000 n 0000646107 00000 n 0000693838 00000 n 0000694359 00000 n 0000693983 00000 n 0000646279 00000 n 0000694103 00000 n 0000694236 00000 n 0000694554 00000 n 0000694702 00000 n 0000694824 00000 n 0000694984 00000 n 0000646435 00000 n 0000695140 00000 n 0000646591 00000 n 0000696070 00000 n 0000647314 00000 n 0000695414 00000 n 0000695531 00000 n 0000695680 00000 n 0000647494 00000 n 0000695820 00000 n 0000647650 00000 n 0000695949 00000 n 0000647806 00000 n 0000696325 00000 n 0000648308 00000 n 0000696225 00000 n 0000648669 00000 n 0000700898 00000 n 0000697382 00000 n 0000696502 00000 n 0000696618 00000 n 0000696742 00000 n 0000696879 00000 n 0000697003 00000 n 0000648841 00000 n 0000697130 00000 n 0000697270 00000 n 0000697770 00000 n 0000649045 00000 n 0000697535 00000 n 0000697652 00000 n 0000698340 00000 n 0000649225 00000 n 0000697947 00000 n 0000698073 00000 n 0000698227 00000 n 0000649429 00000 n 0000698520 00000 n 0000698652 00000 n 0000649601 00000 n 0000698792 00000 n 0000649781 00000 n 0000698912 00000 n 0000699537 00000 n 0000699033 00000 n 0000699152 00000 n 0000649953 00000 n 0000699281 00000 n 0000699419 00000 n 0000700223 00000 n 0000699705 00000 n 0000650125 00000 n 0000699829 00000 n 0000699969 00000 n 0000700103 00000 n 0000650281 00000 n 0000700388 00000 n 0000650453 00000 n 0000700516 00000 n 0000650625 00000 n 0000700641 00000 n 0000650797 00000 n 0000700768 00000 n 0000651126 00000 n 0000706542 00000 n 0000701851 00000 n 0000701067 00000 n 0000701184 00000 n 0000651338 00000 n 0000701318 00000 n 0000701453 00000 n 0000701591 00000 n 0000701727 00000 n 0000651518 00000 n 0000702678 00000 n 0000702008 00000 n 0000702125 00000 n 0000651690 00000 n 0000702255 00000 n 0000651871 00000 n 0000702400 00000 n 0000702532 00000 n 0000652185 00000 n 0000702856 00000 n 0000703008 00000 n 0000703135 00000 n 0000652358 00000 n 0000703262 00000 n 0000703390 00000 n 0000652587 00000 n 0000703528 00000 n 0000703682 00000 n 0000652760 00000 n 0000703955 00000 n 0000703822 00000 n 0000704125 00000 n 0000652933 00000 n 0000704251 00000 n 0000704379 00000 n 0000653090 00000 n 0000706114 00000 n 0000704536 00000 n 0000653271 00000 n 0000704673 00000 n 0000653460 00000 n 0000704843 00000 n 0000704986 00000 n 0000653641 00000 n 0000705123 00000 n 0000705271 00000 n 0000705427 00000 n 0000653798 00000 n 0000705564 00000 n 0000705710 00000 n 0000654008 00000 n 0000705851 00000 n 0000654185 00000 n 0000705995 00000 n 0000706284 00000 n 0000654362 00000 n 0000706409 00000 n 0000654557 00000 n 0000709891 00000 n 0000706714 00000 n 0000654734 00000 n 0000706840 00000 n 0000706981 00000 n 0000654929 00000 n 0000707119 00000 n 0000707249 00000 n 0000707387 00000 n 0000707534 00000 n 0000655089 00000 n 0000707680 00000 n 0000707816 00000 n 0000707951 00000 n 0000655454 00000 n 0000708087 00000 n 0000655631 00000 n 0000708222 00000 n 0000655808 00000 n 0000708355 00000 n 0000655994 00000 n 0000708498 00000 n 0000708633 00000 n 0000708771 00000 n 0000708896 00000 n 0000656171 00000 n 0000709036 00000 n 0000709172 00000 n 0000709323 00000 n 0000709465 00000 n 0000709604 00000 n 0000656518 00000 n 0000709757 00000 n 0000656856 00000 n 0000730267 00000 n 0000730097 00000 n 0000710059 00000 n 0000710179 00000 n 0000710313 00000 n 0000710440 00000 n 0000657033 00000 n 0000710572 00000 n 0000710707 00000 n 0000710843 00000 n 0000710979 00000 n 0000657193 00000 n 0000711117 00000 n 0000711251 00000 n 0000711388 00000 n 0000711527 00000 n 0000711665 00000 n 0000657397 00000 n 0000711816 00000 n 0000711958 00000 n 0000657557 00000 n 0000712093 00000 n 0000712231 00000 n 0000712370 00000 n 0000712511 00000 n 0000712646 00000 n 0000712783 00000 n 0000712913 00000 n 0000713053 00000 n 0000657717 00000 n 0000713186 00000 n 0000713320 00000 n 0000713455 00000 n 0000713594 00000 n 0000657894 00000 n 0000713727 00000 n 0000713864 00000 n 0000713996 00000 n 0000714135 00000 n 0000714271 00000 n 0000714400 00000 n 0000714563 00000 n 0000714724 00000 n 0000658071 00000 n 0000714862 00000 n 0000714993 00000 n 0000715125 00000 n 0000715261 00000 n 0000715398 00000 n 0000715532 00000 n 0000658248 00000 n 0000715669 00000 n 0000715804 00000 n 0000715945 00000 n 0000716082 00000 n 0000716220 00000 n 0000716359 00000 n 0000658434 00000 n 0000716494 00000 n 0000658620 00000 n 0000716626 00000 n 0000716763 00000 n 0000716903 00000 n 0000717047 00000 n 0000658797 00000 n 0000717179 00000 n 0000658974 00000 n 0000717307 00000 n 0000717461 00000 n 0000717593 00000 n 0000717727 00000 n 0000717863 00000 n 0000659151 00000 n 0000717994 00000 n 0000718130 00000 n 0000718265 00000 n 0000718415 00000 n 0000718552 00000 n 0000659311 00000 n 0000718690 00000 n 0000718827 00000 n 0000718966 00000 n 0000659471 00000 n 0000719102 00000 n 0000719270 00000 n 0000719410 00000 n 0000659648 00000 n 0000719544 00000 n 0000719678 00000 n 0000719816 00000 n 0000719951 00000 n 0000720089 00000 n 0000659834 00000 n 0000720228 00000 n 0000720362 00000 n 0000720501 00000 n 0000720633 00000 n 0000720775 00000 n 0000720916 00000 n 0000721050 00000 n 0000721184 00000 n 0000721327 00000 n 0000721468 00000 n 0000660020 00000 n 0000721604 00000 n 0000721735 00000 n 0000721870 00000 n 0000722005 00000 n 0000722149 00000 n 0000660206 00000 n 0000722286 00000 n 0000722422 00000 n 0000722551 00000 n 0000722687 00000 n 0000722823 00000 n 0000722958 00000 n 0000723092 00000 n 0000723230 00000 n 0000660392 00000 n 0000723365 00000 n 0000723500 00000 n 0000723633 00000 n 0000660569 00000 n 0000723768 00000 n 0000723903 00000 n 0000724038 00000 n 0000724177 00000 n 0000724316 00000 n 0000724455 00000 n 0000724588 00000 n 0000660755 00000 n 0000724728 00000 n 0000724867 00000 n 0000725004 00000 n 0000660915 00000 n 0000725141 00000 n 0000725283 00000 n 0000725446 00000 n 0000661075 00000 n 0000725584 00000 n 0000725726 00000 n 0000725864 00000 n 0000726005 00000 n 0000726147 00000 n 0000661252 00000 n 0000726284 00000 n 0000726424 00000 n 0000661429 00000 n 0000726562 00000 n 0000726699 00000 n 0000726833 00000 n 0000726972 00000 n 0000661615 00000 n 0000727109 00000 n 0000727242 00000 n 0000727377 00000 n 0000727511 00000 n 0000661819 00000 n 0000727646 00000 n 0000727783 00000 n 0000727913 00000 n 0000728047 00000 n 0000728181 00000 n 0000728315 00000 n 0000662005 00000 n 0000728450 00000 n 0000728585 00000 n 0000728724 00000 n 0000728863 00000 n 0000729000 00000 n 0000729137 00000 n 0000662209 00000 n 0000729279 00000 n 0000729418 00000 n 0000729561 00000 n 0000729699 00000 n 0000729838 00000 n 0000729974 00000 n 0000662395 00000 n 0000740839 00000 n 0000730698 00000 n 0000730435 00000 n 0000730564 00000 n 0000662617 00000 n 0000730850 00000 n 0000730981 00000 n 0000731116 00000 n 0000732119 00000 n 0000662821 00000 n 0000731242 00000 n 0000731382 00000 n 0000731536 00000 n 0000662998 00000 n 0000731688 00000 n 0000731840 00000 n 0000731978 00000 n 0000737151 00000 n 0000732284 00000 n 0000663158 00000 n 0000732404 00000 n 0000732544 00000 n 0000732708 00000 n 0000732853 00000 n 0000732994 00000 n 0000663318 00000 n 0000733151 00000 n 0000733297 00000 n 0000733426 00000 n 0000663504 00000 n 0000733575 00000 n 0000733706 00000 n 0000663699 00000 n 0000733871 00000 n 0000734034 00000 n 0000734184 00000 n 0000734324 00000 n 0000663903 00000 n 0000734467 00000 n 0000664357 00000 n 0000734619 00000 n 0000734767 00000 n 0000734925 00000 n 0000664534 00000 n 0000735078 00000 n 0000735235 00000 n 0000664694 00000 n 0000735385 00000 n 0000735522 00000 n 0000735665 00000 n 0000735815 00000 n 0000664854 00000 n 0000735960 00000 n 0000665014 00000 n 0000736125 00000 n 0000665174 00000 n 0000736283 00000 n 0000736446 00000 n 0000665334 00000 n 0000736591 00000 n 0000736747 00000 n 0000736884 00000 n 0000665494 00000 n 0000737024 00000 n 0000738046 00000 n 0000737324 00000 n 0000665689 00000 n 0000737447 00000 n 0000737593 00000 n 0000737750 00000 n 0000665849 00000 n 0000737906 00000 n 0000666026 00000 n 0000738630 00000 n 0000738215 00000 n 0000738336 00000 n 0000738497 00000 n 0000666230 00000 n 0000739464 00000 n 0000666425 00000 n 0000738802 00000 n 0000666611 00000 n 0000738932 00000 n 0000739069 00000 n 0000739203 00000 n 0000739339 00000 n 0000739647 00000 n 0000666788 00000 n 0000739787 00000 n 0000740653 00000 n 0000739921 00000 n 0000667161 00000 n 0000740050 00000 n 0000740201 00000 n 0000740353 00000 n 0000667338 00000 n 0000740508 00000 n 0000667659 00000 n 0000757578 00000 n 0000741000 00000 n 0000757395 00000 n 0000741120 00000 n 0000667872 00000 n 0000741249 00000 n 0000741379 00000 n 0000741510 00000 n 0000741643 00000 n 0000741778 00000 n 0000741917 00000 n 0000668085 00000 n 0000742053 00000 n 0000742184 00000 n 0000742318 00000 n 0000742454 00000 n 0000742589 00000 n 0000742726 00000 n 0000742866 00000 n 0000668280 00000 n 0000743000 00000 n 0000743140 00000 n 0000743277 00000 n 0000743410 00000 n 0000743548 00000 n 0000743684 00000 n 0000668484 00000 n 0000743818 00000 n 0000743949 00000 n 0000744085 00000 n 0000744217 00000 n 0000744349 00000 n 0000744483 00000 n 0000744618 00000 n 0000744753 00000 n 0000668715 00000 n 0000744889 00000 n 0000745023 00000 n 0000745157 00000 n 0000745295 00000 n 0000745431 00000 n 0000668901 00000 n 0000745567 00000 n 0000745707 00000 n 0000745840 00000 n 0000745975 00000 n 0000669078 00000 n 0000746106 00000 n 0000746238 00000 n 0000669425 00000 n 0000746373 00000 n 0000746506 00000 n 0000746645 00000 n 0000746782 00000 n 0000746923 00000 n 0000669602 00000 n 0000747060 00000 n 0000747198 00000 n 0000747330 00000 n 0000669779 00000 n 0000747462 00000 n 0000747597 00000 n 0000669956 00000 n 0000747736 00000 n 0000747871 00000 n 0000748006 00000 n 0000748140 00000 n 0000748275 00000 n 0000670142 00000 n 0000748412 00000 n 0000748545 00000 n 0000748684 00000 n 0000670328 00000 n 0000748818 00000 n 0000748965 00000 n 0000749103 00000 n 0000749240 00000 n 0000670523 00000 n 0000749376 00000 n 0000749515 00000 n 0000749647 00000 n 0000749785 00000 n 0000749926 00000 n 0000750064 00000 n 0000670683 00000 n 0000750202 00000 n 0000750335 00000 n 0000750469 00000 n 0000670860 00000 n 0000750603 00000 n 0000750736 00000 n 0000750870 00000 n 0000751004 00000 n 0000751151 00000 n 0000751283 00000 n 0000671046 00000 n 0000751415 00000 n 0000671206 00000 n 0000751553 00000 n 0000751712 00000 n 0000671383 00000 n 0000751864 00000 n 0000752002 00000 n 0000752139 00000 n 0000671543 00000 n 0000752289 00000 n 0000752427 00000 n 0000671703 00000 n 0000752562 00000 n 0000752695 00000 n 0000752832 00000 n 0000752967 00000 n 0000753100 00000 n 0000671889 00000 n 0000753247 00000 n 0000753380 00000 n 0000672049 00000 n 0000753526 00000 n 0000753676 00000 n 0000672226 00000 n 0000753814 00000 n 0000753952 00000 n 0000754085 00000 n 0000754220 00000 n 0000672421 00000 n 0000754353 00000 n 0000754485 00000 n 0000754621 00000 n 0000754758 00000 n 0000754891 00000 n 0000672581 00000 n 0000755024 00000 n 0000755157 00000 n 0000755321 00000 n 0000755459 00000 n 0000672758 00000 n 0000755597 00000 n 0000755739 00000 n 0000755874 00000 n 0000756016 00000 n 0000756156 00000 n 0000756297 00000 n 0000672989 00000 n 0000756433 00000 n 0000756570 00000 n 0000673149 00000 n 0000756718 00000 n 0000756857 00000 n 0000757000 00000 n 0000757141 00000 n 0000757275 00000 n 0000673344 00000 n 0000757745 00000 n 0000674487 00000 n 0000757881 00000 n 0000675317 00000 n 0000758428 00000 n 0000758011 00000 n 0000758148 00000 n 0000675477 00000 n 0000758301 00000 n 0000676120 00000 n 0000759973 00000 n 0000758597 00000 n 0000758726 00000 n 0000676602 00000 n 0000758863 00000 n 0000676762 00000 n 0000759006 00000 n 0000676922 00000 n 0000759157 00000 n 0000759299 00000 n 0000677108 00000 n 0000759442 00000 n 0000677268 00000 n 0000759577 00000 n 0000677589 00000 n 0000759722 00000 n 0000677749 00000 n 0000759853 00000 n 0000678070 00000 n 0001080664 00000 n 0000760139 00000 n 0000760241 00000 n 0000760356 00000 n 0000760466 00000 n 0000679516 00000 n 0000760576 00000 n 0000760686 00000 n 0000680917 00000 n 0000760796 00000 n 0000760906 00000 n 0000682318 00000 n 0000761016 00000 n 0000761126 00000 n 0000761236 00000 n 0000761346 00000 n 0000761456 00000 n 0000761566 00000 n 0000683719 00000 n 0000761676 00000 n 0000761786 00000 n 0000685093 00000 n 0000761896 00000 n 0000762006 00000 n 0000686584 00000 n 0000762116 00000 n 0000762226 00000 n 0000688111 00000 n 0000762336 00000 n 0000689710 00000 n 0000762446 00000 n 0000762556 00000 n 0000762666 00000 n 0000691138 00000 n 0000762776 00000 n 0000000015 00000 n 0000000321 00000 n 0000762872 00000 n 0000977044 00000 n 0001029250 00000 n 0000762915 00000 n 0000762950 00000 n 0000644784 00000 n 0000000342 00000 n 0000000632 00000 n 0000982404 00000 n 0001068091 00000 n 0000762985 00000 n 0000763020 00000 n 0000000653 00000 n 0000002553 00000 n 0000977648 00000 n 0001034408 00000 n 0000975873 00000 n 0001019628 00000 n 0000763068 00000 n 0000763103 00000 n 0000645096 00000 n 0000002575 00000 n 0000004574 00000 n 0000763177 00000 n 0000763212 00000 n 0000645253 00000 n 0000004596 00000 n 0000006546 00000 n 0000763286 00000 n 0000763321 00000 n 0000645410 00000 n 0000006568 00000 n 0000008545 00000 n 0000763395 00000 n 0000763430 00000 n 0000008567 00000 n 0000013113 00000 n 0000970563 00000 n 0000983749 00000 n 0000763504 00000 n 0000763622 00000 n 0000763740 00000 n 0000763849 00000 n 0000763958 00000 n 0000764067 00000 n 0000972235 00000 n 0000999456 00000 n 0000764176 00000 n 0000764211 00000 n 0000645778 00000 n 0000013135 00000 n 0000016594 00000 n 0000764298 00000 n 0000764333 00000 n 0000016616 00000 n 0000020377 00000 n 0000972497 00000 n 0001000671 00000 n 0000764381 00000 n 0000764490 00000 n 0000764525 00000 n 0000020399 00000 n 0000024211 00000 n 0000764612 00000 n 0000764721 00000 n 0000764756 00000 n 0000024233 00000 n 0000027893 00000 n 0000764843 00000 n 0000764878 00000 n 0000027915 00000 n 0000029593 00000 n 0000764965 00000 n 0000765000 00000 n 0000029615 00000 n 0000032932 00000 n 0000765087 00000 n 0000765201 00000 n 0000765310 00000 n 0000765345 00000 n 0000646771 00000 n 0000032954 00000 n 0000037115 00000 n 0000765445 00000 n 0000765554 00000 n 0000765663 00000 n 0000765767 00000 n 0000765802 00000 n 0000646960 00000 n 0000037137 00000 n 0000040565 00000 n 0000765863 00000 n 0000765980 00000 n 0000766015 00000 n 0000647133 00000 n 0000040587 00000 n 0000044783 00000 n 0000766102 00000 n 0000766212 00000 n 0000766320 00000 n 0000766355 00000 n 0000044805 00000 n 0000048414 00000 n 0000766442 00000 n 0000766552 00000 n 0000766669 00000 n 0000766704 00000 n 0000048436 00000 n 0000051658 00000 n 0000766804 00000 n 0000766839 00000 n 0000051680 00000 n 0000053677 00000 n 0000766913 00000 n 0000766948 00000 n 0000053699 00000 n 0000056964 00000 n 0000767035 00000 n 0000974001 00000 n 0001009786 00000 n 0000767144 00000 n 0000767179 00000 n 0000647978 00000 n 0000056986 00000 n 0000060996 00000 n 0000767279 00000 n 0000767314 00000 n 0000648135 00000 n 0000061018 00000 n 0000065433 00000 n 0000767401 00000 n 0000767517 00000 n 0000767552 00000 n 0000065455 00000 n 0000069949 00000 n 0000767626 00000 n 0000976690 00000 n 0001027590 00000 n 0000767736 00000 n 0000767844 00000 n 0000767953 00000 n 0000767988 00000 n 0000648496 00000 n 0000069971 00000 n 0000070876 00000 n 0000768101 00000 n 0000768210 00000 n 0000768245 00000 n 0000070897 00000 n 0000074715 00000 n 0000768306 00000 n 0000768422 00000 n 0000768457 00000 n 0000074737 00000 n 0000079075 00000 n 0000768557 00000 n 0000768675 00000 n 0000768793 00000 n 0000768911 00000 n 0000769029 00000 n 0000769147 00000 n 0000769182 00000 n 0000079097 00000 n 0000082922 00000 n 0000769295 00000 n 0000769409 00000 n 0000769527 00000 n 0000769562 00000 n 0000082944 00000 n 0000086559 00000 n 0000769675 00000 n 0000769792 00000 n 0000769910 00000 n 0000770028 00000 n 0000770146 00000 n 0000770264 00000 n 0000770299 00000 n 0000086581 00000 n 0000090391 00000 n 0000770425 00000 n 0000770543 00000 n 0000770578 00000 n 0000090413 00000 n 0000095451 00000 n 0000770704 00000 n 0000770814 00000 n 0000770924 00000 n 0000770959 00000 n 0000095473 00000 n 0000099261 00000 n 0000771072 00000 n 0000771190 00000 n 0000771225 00000 n 0000099283 00000 n 0000102535 00000 n 0000771338 00000 n 0000771454 00000 n 0000771489 00000 n 0000102557 00000 n 0000106821 00000 n 0000771589 00000 n 0000771624 00000 n 0000106843 00000 n 0000110879 00000 n 0000771724 00000 n 0000771841 00000 n 0000771876 00000 n 0000110901 00000 n 0000114634 00000 n 0000771976 00000 n 0000772094 00000 n 0000772129 00000 n 0000114656 00000 n 0000118562 00000 n 0000772216 00000 n 0000772326 00000 n 0000772361 00000 n 0000118584 00000 n 0000121618 00000 n 0000772461 00000 n 0000772578 00000 n 0000772613 00000 n 0000650969 00000 n 0000121640 00000 n 0000122056 00000 n 0000772700 00000 n 0000772735 00000 n 0000122077 00000 n 0000125941 00000 n 0000772809 00000 n 0000772927 00000 n 0000773045 00000 n 0000773163 00000 n 0000773281 00000 n 0000773398 00000 n 0000773514 00000 n 0000773549 00000 n 0000125963 00000 n 0000129668 00000 n 0000773649 00000 n 0000773767 00000 n 0000773885 00000 n 0000773920 00000 n 0000129690 00000 n 0000133559 00000 n 0000774020 00000 n 0000774138 00000 n 0000774173 00000 n 0000133581 00000 n 0000137411 00000 n 0000774273 00000 n 0000774391 00000 n 0000774508 00000 n 0000774543 00000 n 0000137433 00000 n 0000140934 00000 n 0000774643 00000 n 0000774678 00000 n 0000652028 00000 n 0000140956 00000 n 0000143630 00000 n 0000973207 00000 n 0001008809 00000 n 0000774765 00000 n 0000774800 00000 n 0000143652 00000 n 0000147602 00000 n 0000774887 00000 n 0000775004 00000 n 0000775039 00000 n 0000147624 00000 n 0000152133 00000 n 0000775139 00000 n 0000775256 00000 n 0000775374 00000 n 0000775492 00000 n 0000775610 00000 n 0000775728 00000 n 0000775846 00000 n 0000775964 00000 n 0000776080 00000 n 0000776115 00000 n 0000152155 00000 n 0000156307 00000 n 0000776202 00000 n 0000776319 00000 n 0000776354 00000 n 0000156329 00000 n 0000160228 00000 n 0000776467 00000 n 0000776583 00000 n 0000776618 00000 n 0000160250 00000 n 0000163759 00000 n 0000776718 00000 n 0000776753 00000 n 0000163781 00000 n 0000167505 00000 n 0000776853 00000 n 0000776971 00000 n 0000777089 00000 n 0000777124 00000 n 0000167527 00000 n 0000171846 00000 n 0000777211 00000 n 0000777329 00000 n 0000777445 00000 n 0000777559 00000 n 0000777594 00000 n 0000171868 00000 n 0000175522 00000 n 0000777681 00000 n 0000777789 00000 n 0000777907 00000 n 0000777942 00000 n 0000175544 00000 n 0000179847 00000 n 0000778029 00000 n 0000778064 00000 n 0000179869 00000 n 0000183038 00000 n 0000778164 00000 n 0000778282 00000 n 0000778400 00000 n 0000778519 00000 n 0000778638 00000 n 0000778757 00000 n 0000778793 00000 n 0000183060 00000 n 0000187082 00000 n 0000778894 00000 n 0000779005 00000 n 0000779041 00000 n 0000187105 00000 n 0000190700 00000 n 0000779142 00000 n 0000779253 00000 n 0000779289 00000 n 0000190723 00000 n 0000193948 00000 n 0000779377 00000 n 0000779488 00000 n 0000779599 00000 n 0000779710 00000 n 0000779746 00000 n 0000193971 00000 n 0000197650 00000 n 0000779847 00000 n 0000779966 00000 n 0000780002 00000 n 0000197673 00000 n 0000201357 00000 n 0000780103 00000 n 0000780222 00000 n 0000780334 00000 n 0000780453 00000 n 0000780489 00000 n 0000201380 00000 n 0000203533 00000 n 0000780590 00000 n 0000780626 00000 n 0000203556 00000 n 0000207408 00000 n 0000780714 00000 n 0000780824 00000 n 0000780940 00000 n 0000781055 00000 n 0000781172 00000 n 0000781208 00000 n 0000655293 00000 n 0000207431 00000 n 0000211645 00000 n 0000781309 00000 n 0000781345 00000 n 0000211668 00000 n 0000215534 00000 n 0000781420 00000 n 0000781539 00000 n 0000781575 00000 n 0000215557 00000 n 0000219599 00000 n 0000781676 00000 n 0000781795 00000 n 0000781831 00000 n 0000219622 00000 n 0000223247 00000 n 0000781932 00000 n 0000782051 00000 n 0000782170 00000 n 0000782206 00000 n 0000223270 00000 n 0000226487 00000 n 0000782320 00000 n 0000782437 00000 n 0000782473 00000 n 0000226510 00000 n 0000229336 00000 n 0000782587 00000 n 0000782706 00000 n 0000782825 00000 n 0000782861 00000 n 0000656357 00000 n 0000229359 00000 n 0000232648 00000 n 0000782975 00000 n 0000783011 00000 n 0000232671 00000 n 0000236066 00000 n 0000783099 00000 n 0000783218 00000 n 0000783254 00000 n 0000656695 00000 n 0000236089 00000 n 0000237626 00000 n 0000783368 00000 n 0000783404 00000 n 0000237649 00000 n 0000241202 00000 n 0000783466 00000 n 0000783584 00000 n 0000783620 00000 n 0000241225 00000 n 0000245128 00000 n 0000783721 00000 n 0000783757 00000 n 0000245151 00000 n 0000248560 00000 n 0000783858 00000 n 0000783976 00000 n 0000784095 00000 n 0000784214 00000 n 0000784332 00000 n 0000784368 00000 n 0000248583 00000 n 0000252313 00000 n 0000784469 00000 n 0000784505 00000 n 0000252336 00000 n 0000255041 00000 n 0000784593 00000 n 0000784629 00000 n 0000255064 00000 n 0000258589 00000 n 0000784717 00000 n 0000784827 00000 n 0000784863 00000 n 0000258612 00000 n 0000261830 00000 n 0000784964 00000 n 0000785081 00000 n 0000785117 00000 n 0000261853 00000 n 0000265387 00000 n 0000785205 00000 n 0000785316 00000 n 0000785352 00000 n 0000265410 00000 n 0000268366 00000 n 0000785453 00000 n 0000785572 00000 n 0000785691 00000 n 0000785727 00000 n 0000268389 00000 n 0000272949 00000 n 0000785815 00000 n 0000785934 00000 n 0000786053 00000 n 0000786089 00000 n 0000272972 00000 n 0000276038 00000 n 0000786190 00000 n 0000786309 00000 n 0000786345 00000 n 0000276061 00000 n 0000280208 00000 n 0000786433 00000 n 0000786543 00000 n 0000786579 00000 n 0000280231 00000 n 0000283892 00000 n 0000786667 00000 n 0000786778 00000 n 0000786814 00000 n 0000283915 00000 n 0000286926 00000 n 0000786902 00000 n 0000786938 00000 n 0000286949 00000 n 0000291079 00000 n 0000787026 00000 n 0000787062 00000 n 0000291102 00000 n 0000295182 00000 n 0000787150 00000 n 0000787269 00000 n 0000787305 00000 n 0000295205 00000 n 0000298684 00000 n 0000787406 00000 n 0000787521 00000 n 0000787635 00000 n 0000787671 00000 n 0000298707 00000 n 0000301512 00000 n 0000787772 00000 n 0000787891 00000 n 0000787999 00000 n 0000788035 00000 n 0000301535 00000 n 0000305080 00000 n 0000788123 00000 n 0000788240 00000 n 0000788358 00000 n 0000788394 00000 n 0000305103 00000 n 0000308149 00000 n 0000788495 00000 n 0000788611 00000 n 0000788730 00000 n 0000788766 00000 n 0000308172 00000 n 0000311667 00000 n 0000788854 00000 n 0000788973 00000 n 0000789009 00000 n 0000311690 00000 n 0000314769 00000 n 0000789110 00000 n 0000789228 00000 n 0000789347 00000 n 0000789383 00000 n 0000314792 00000 n 0000318602 00000 n 0000789484 00000 n 0000789520 00000 n 0000318625 00000 n 0000322526 00000 n 0000789621 00000 n 0000789657 00000 n 0000322549 00000 n 0000326160 00000 n 0000789771 00000 n 0000789890 00000 n 0000789926 00000 n 0000326183 00000 n 0000330224 00000 n 0000790014 00000 n 0000790133 00000 n 0000790169 00000 n 0000330247 00000 n 0000333711 00000 n 0000790270 00000 n 0000790389 00000 n 0000790508 00000 n 0000790544 00000 n 0000333734 00000 n 0000337113 00000 n 0000790645 00000 n 0000790764 00000 n 0000790881 00000 n 0000791000 00000 n 0000791119 00000 n 0000791155 00000 n 0000337136 00000 n 0000340528 00000 n 0000791256 00000 n 0000791367 00000 n 0000791485 00000 n 0000791521 00000 n 0000340551 00000 n 0000344016 00000 n 0000791622 00000 n 0000791741 00000 n 0000791856 00000 n 0000791968 00000 n 0000792087 00000 n 0000792123 00000 n 0000344039 00000 n 0000346895 00000 n 0000792237 00000 n 0000792347 00000 n 0000792458 00000 n 0000792494 00000 n 0000346918 00000 n 0000351280 00000 n 0000792595 00000 n 0000792706 00000 n 0000792811 00000 n 0000792921 00000 n 0000793032 00000 n 0000793143 00000 n 0000793254 00000 n 0000793290 00000 n 0000351303 00000 n 0000354611 00000 n 0000793404 00000 n 0000793523 00000 n 0000793638 00000 n 0000793757 00000 n 0000793866 00000 n 0000793902 00000 n 0000354634 00000 n 0000358666 00000 n 0000794003 00000 n 0000794122 00000 n 0000794158 00000 n 0000358689 00000 n 0000362817 00000 n 0000794259 00000 n 0000794295 00000 n 0000362840 00000 n 0000366176 00000 n 0000794383 00000 n 0000794419 00000 n 0000366199 00000 n 0000370402 00000 n 0000794520 00000 n 0000794635 00000 n 0000794754 00000 n 0000794790 00000 n 0000370425 00000 n 0000374023 00000 n 0000794891 00000 n 0000795002 00000 n 0000795110 00000 n 0000795219 00000 n 0000795255 00000 n 0000374046 00000 n 0000378660 00000 n 0000795356 00000 n 0000795473 00000 n 0000795592 00000 n 0000795710 00000 n 0000795828 00000 n 0000795864 00000 n 0000378683 00000 n 0000382727 00000 n 0000795965 00000 n 0000796084 00000 n 0000796120 00000 n 0000664080 00000 n 0000382750 00000 n 0000385357 00000 n 0000796234 00000 n 0000796345 00000 n 0000796456 00000 n 0000796567 00000 n 0000796678 00000 n 0000796788 00000 n 0000796898 00000 n 0000797007 00000 n 0000797118 00000 n 0000797229 00000 n 0000797340 00000 n 0000797451 00000 n 0000797562 00000 n 0000797598 00000 n 0000385380 00000 n 0000389260 00000 n 0000797686 00000 n 0000797805 00000 n 0000797841 00000 n 0000389283 00000 n 0000391752 00000 n 0000797955 00000 n 0000797991 00000 n 0000391775 00000 n 0000395382 00000 n 0000798079 00000 n 0000798115 00000 n 0000395405 00000 n 0000400086 00000 n 0000798203 00000 n 0000798239 00000 n 0000400109 00000 n 0000404563 00000 n 0000798340 00000 n 0000798376 00000 n 0000404586 00000 n 0000408127 00000 n 0000798477 00000 n 0000798513 00000 n 0000408150 00000 n 0000411843 00000 n 0000798601 00000 n 0000798637 00000 n 0000411866 00000 n 0000415723 00000 n 0000798725 00000 n 0000798843 00000 n 0000798962 00000 n 0000799081 00000 n 0000799117 00000 n 0000415746 00000 n 0000420028 00000 n 0000799218 00000 n 0000799254 00000 n 0000420051 00000 n 0000424253 00000 n 0000799342 00000 n 0000799461 00000 n 0000799497 00000 n 0000424276 00000 n 0000427801 00000 n 0000799598 00000 n 0000799715 00000 n 0000799834 00000 n 0000799953 00000 n 0000800070 00000 n 0000800106 00000 n 0000427824 00000 n 0000430793 00000 n 0000800194 00000 n 0000800305 00000 n 0000800416 00000 n 0000800527 00000 n 0000800563 00000 n 0000430816 00000 n 0000435504 00000 n 0000800677 00000 n 0000980807 00000 n 0001051300 00000 n 0000800796 00000 n 0000800915 00000 n 0000800951 00000 n 0000435527 00000 n 0000439020 00000 n 0000801054 00000 n 0000801173 00000 n 0000801209 00000 n 0000439043 00000 n 0000443572 00000 n 0000801323 00000 n 0000801442 00000 n 0000801561 00000 n 0000801597 00000 n 0000666974 00000 n 0000443595 00000 n 0000447817 00000 n 0000801698 00000 n 0000801815 00000 n 0000801932 00000 n 0000801968 00000 n 0000447840 00000 n 0000452057 00000 n 0000802069 00000 n 0000802178 00000 n 0000802214 00000 n 0000452080 00000 n 0000456691 00000 n 0000802328 00000 n 0000802364 00000 n 0000667498 00000 n 0000456714 00000 n 0000459012 00000 n 0000802452 00000 n 0000802488 00000 n 0000459035 00000 n 0000462060 00000 n 0000802576 00000 n 0000802687 00000 n 0000802798 00000 n 0000802907 00000 n 0000803018 00000 n 0000803128 00000 n 0000803164 00000 n 0000462083 00000 n 0000465094 00000 n 0000803278 00000 n 0000803389 00000 n 0000803500 00000 n 0000803611 00000 n 0000803722 00000 n 0000803831 00000 n 0000803867 00000 n 0000465117 00000 n 0000468115 00000 n 0000803968 00000 n 0000804087 00000 n 0000804206 00000 n 0000804321 00000 n 0000804357 00000 n 0000468138 00000 n 0000471603 00000 n 0000804458 00000 n 0000804573 00000 n 0000804690 00000 n 0000804809 00000 n 0000804927 00000 n 0000804963 00000 n 0000471626 00000 n 0000474330 00000 n 0000805064 00000 n 0000805183 00000 n 0000805302 00000 n 0000805419 00000 n 0000805538 00000 n 0000805653 00000 n 0000805768 00000 n 0000805883 00000 n 0000805919 00000 n 0000474353 00000 n 0000478294 00000 n 0000806020 00000 n 0000806137 00000 n 0000806254 00000 n 0000806290 00000 n 0000478317 00000 n 0000481824 00000 n 0000806391 00000 n 0000806502 00000 n 0000806538 00000 n 0000481847 00000 n 0000486140 00000 n 0000806639 00000 n 0000806749 00000 n 0000806868 00000 n 0000806904 00000 n 0000669264 00000 n 0000486163 00000 n 0000490054 00000 n 0000807005 00000 n 0000807041 00000 n 0000490077 00000 n 0000493404 00000 n 0000807129 00000 n 0000807246 00000 n 0000807282 00000 n 0000493427 00000 n 0000497461 00000 n 0000807396 00000 n 0000807507 00000 n 0000807543 00000 n 0000497484 00000 n 0000501505 00000 n 0000807631 00000 n 0000807749 00000 n 0000807785 00000 n 0000501528 00000 n 0000505445 00000 n 0000807873 00000 n 0000807992 00000 n 0000808111 00000 n 0000808147 00000 n 0000505468 00000 n 0000509572 00000 n 0000808261 00000 n 0000808379 00000 n 0000808496 00000 n 0000808532 00000 n 0000509595 00000 n 0000513972 00000 n 0000808633 00000 n 0000808752 00000 n 0000808871 00000 n 0000808990 00000 n 0000809026 00000 n 0000513995 00000 n 0000517075 00000 n 0000809140 00000 n 0000809176 00000 n 0000517098 00000 n 0000521498 00000 n 0000809264 00000 n 0000809383 00000 n 0000809419 00000 n 0000521521 00000 n 0000525338 00000 n 0000809533 00000 n 0000809650 00000 n 0000809769 00000 n 0000809805 00000 n 0000525361 00000 n 0000528553 00000 n 0000809906 00000 n 0000809942 00000 n 0000528576 00000 n 0000532065 00000 n 0000810030 00000 n 0000810148 00000 n 0000810184 00000 n 0000532088 00000 n 0000536451 00000 n 0000810272 00000 n 0000810308 00000 n 0000536474 00000 n 0000541254 00000 n 0000810396 00000 n 0000810432 00000 n 0000541277 00000 n 0000544889 00000 n 0000810533 00000 n 0000810652 00000 n 0000810771 00000 n 0000810807 00000 n 0000544912 00000 n 0000548756 00000 n 0000810908 00000 n 0000810944 00000 n 0000548779 00000 n 0000553233 00000 n 0000811032 00000 n 0000811149 00000 n 0000811185 00000 n 0000553256 00000 n 0000557021 00000 n 0000811273 00000 n 0000811384 00000 n 0000811486 00000 n 0000811595 00000 n 0000811631 00000 n 0000557044 00000 n 0000560386 00000 n 0000811732 00000 n 0000811768 00000 n 0000560409 00000 n 0000564197 00000 n 0000811856 00000 n 0000811975 00000 n 0000812011 00000 n 0000564220 00000 n 0000566953 00000 n 0000812112 00000 n 0000812231 00000 n 0000812350 00000 n 0000812469 00000 n 0000812588 00000 n 0000812707 00000 n 0000812826 00000 n 0000812945 00000 n 0000812981 00000 n 0000566976 00000 n 0000571253 00000 n 0000813082 00000 n 0000813118 00000 n 0000571276 00000 n 0000573176 00000 n 0000813206 00000 n 0000813317 00000 n 0000813428 00000 n 0000813539 00000 n 0000813575 00000 n 0000573199 00000 n 0000575662 00000 n 0000813676 00000 n 0000813787 00000 n 0000813823 00000 n 0000673521 00000 n 0000575685 00000 n 0000576948 00000 n 0000981008 00000 n 0001052430 00000 n 0000813924 00000 n 0000813960 00000 n 0000673682 00000 n 0000576971 00000 n 0000578136 00000 n 0000814050 00000 n 0000814086 00000 n 0000673843 00000 n 0000578159 00000 n 0000579317 00000 n 0000978731 00000 n 0001039508 00000 n 0000814150 00000 n 0000814186 00000 n 0000674004 00000 n 0000579340 00000 n 0000580467 00000 n 0000814278 00000 n 0000814314 00000 n 0000674165 00000 n 0000580490 00000 n 0000581629 00000 n 0000814393 00000 n 0000814429 00000 n 0000674326 00000 n 0000581652 00000 n 0000582606 00000 n 0000814508 00000 n 0000814544 00000 n 0000582628 00000 n 0000585143 00000 n 0000814623 00000 n 0000814659 00000 n 0000674647 00000 n 0000585166 00000 n 0000586592 00000 n 0000814777 00000 n 0000814813 00000 n 0000674808 00000 n 0000586615 00000 n 0000588058 00000 n 0000814905 00000 n 0000814941 00000 n 0000674969 00000 n 0000588081 00000 n 0000589821 00000 n 0000815046 00000 n 0000815082 00000 n 0000675130 00000 n 0000589844 00000 n 0000591995 00000 n 0000815174 00000 n 0000815276 00000 n 0000815387 00000 n 0000815423 00000 n 0000592018 00000 n 0000596215 00000 n 0000971152 00000 n 0000990463 00000 n 0000815515 00000 n 0000815551 00000 n 0000596238 00000 n 0000599360 00000 n 0000815671 00000 n 0000815707 00000 n 0000675637 00000 n 0000599383 00000 n 0000600839 00000 n 0000815814 00000 n 0000815850 00000 n 0000675798 00000 n 0000600862 00000 n 0000601899 00000 n 0000815957 00000 n 0000815993 00000 n 0000675959 00000 n 0000601921 00000 n 0000602307 00000 n 0000816085 00000 n 0000816121 00000 n 0000602329 00000 n 0000604026 00000 n 0000816200 00000 n 0000816236 00000 n 0000676280 00000 n 0000604049 00000 n 0000605393 00000 n 0000816328 00000 n 0000816364 00000 n 0000676441 00000 n 0000605416 00000 n 0000606993 00000 n 0000816428 00000 n 0000816464 00000 n 0000607016 00000 n 0000608657 00000 n 0000816528 00000 n 0000816564 00000 n 0000608680 00000 n 0000610610 00000 n 0000816656 00000 n 0000816692 00000 n 0000610633 00000 n 0000612710 00000 n 0000816784 00000 n 0000816896 00000 n 0000817013 00000 n 0000817049 00000 n 0000612733 00000 n 0000614605 00000 n 0000817167 00000 n 0000817203 00000 n 0000614628 00000 n 0000616338 00000 n 0000817308 00000 n 0000817344 00000 n 0000677428 00000 n 0000616361 00000 n 0000618562 00000 n 0000817451 00000 n 0000817487 00000 n 0000618585 00000 n 0000620474 00000 n 0000817566 00000 n 0000817602 00000 n 0000620497 00000 n 0000622539 00000 n 0000817694 00000 n 0000817730 00000 n 0000677909 00000 n 0000622562 00000 n 0000623591 00000 n 0000817822 00000 n 0000817858 00000 n 0000623613 00000 n 0000625633 00000 n 0000817937 00000 n 0000818056 00000 n 0000818174 00000 n 0000818293 00000 n 0000818411 00000 n 0000818530 00000 n 0000818649 00000 n 0000818767 00000 n 0000818885 00000 n 0000819004 00000 n 0000819122 00000 n 0000819240 00000 n 0000819357 00000 n 0000819474 00000 n 0000819591 00000 n 0000819708 00000 n 0000819827 00000 n 0000819946 00000 n 0000820065 00000 n 0000820184 00000 n 0000820303 00000 n 0000820420 00000 n 0000820536 00000 n 0000820655 00000 n 0000820774 00000 n 0000820893 00000 n 0000821011 00000 n 0000821130 00000 n 0000821249 00000 n 0000821368 00000 n 0000821487 00000 n 0000821606 00000 n 0000821725 00000 n 0000821844 00000 n 0000821963 00000 n 0000822082 00000 n 0000822201 00000 n 0000822320 00000 n 0000822439 00000 n 0000822558 00000 n 0000822677 00000 n 0000822796 00000 n 0000822915 00000 n 0000823034 00000 n 0000823151 00000 n 0000823270 00000 n 0000823389 00000 n 0000823508 00000 n 0000823627 00000 n 0000823744 00000 n 0000823863 00000 n 0000823982 00000 n 0000824100 00000 n 0000824218 00000 n 0000824336 00000 n 0000824452 00000 n 0000824571 00000 n 0000824690 00000 n 0000824809 00000 n 0000824928 00000 n 0000825047 00000 n 0000825166 00000 n 0000825285 00000 n 0000825402 00000 n 0000825521 00000 n 0000825640 00000 n 0000825758 00000 n 0000825875 00000 n 0000825991 00000 n 0000826110 00000 n 0000826229 00000 n 0000826347 00000 n 0000826462 00000 n 0000826577 00000 n 0000826691 00000 n 0000826806 00000 n 0000826923 00000 n 0000827040 00000 n 0000827159 00000 n 0000827278 00000 n 0000827397 00000 n 0000827512 00000 n 0000827631 00000 n 0000827746 00000 n 0000827861 00000 n 0000827980 00000 n 0000828095 00000 n 0000828214 00000 n 0000828329 00000 n 0000828447 00000 n 0000828560 00000 n 0000828679 00000 n 0000828796 00000 n 0000828915 00000 n 0000829030 00000 n 0000829149 00000 n 0000829266 00000 n 0000829385 00000 n 0000829504 00000 n 0000829622 00000 n 0000829739 00000 n 0000829858 00000 n 0000829973 00000 n 0000830090 00000 n 0000830207 00000 n 0000830323 00000 n 0000830440 00000 n 0000830559 00000 n 0000830674 00000 n 0000830793 00000 n 0000830910 00000 n 0000831027 00000 n 0000831142 00000 n 0000831261 00000 n 0000831378 00000 n 0000831497 00000 n 0000831610 00000 n 0000831727 00000 n 0000831846 00000 n 0000831961 00000 n 0000832080 00000 n 0000832197 00000 n 0000832316 00000 n 0000832429 00000 n 0000832548 00000 n 0000832665 00000 n 0000832781 00000 n 0000832900 00000 n 0000833019 00000 n 0000833134 00000 n 0000833249 00000 n 0000833368 00000 n 0000833485 00000 n 0000833598 00000 n 0000833711 00000 n 0000833823 00000 n 0000833938 00000 n 0000834055 00000 n 0000834174 00000 n 0000834292 00000 n 0000834407 00000 n 0000834525 00000 n 0000834640 00000 n 0000834676 00000 n 0000625656 00000 n 0000628140 00000 n 0000834768 00000 n 0000834885 00000 n 0000835000 00000 n 0000835115 00000 n 0000835232 00000 n 0000835349 00000 n 0000835464 00000 n 0000835581 00000 n 0000835698 00000 n 0000835815 00000 n 0000835932 00000 n 0000836049 00000 n 0000836166 00000 n 0000836281 00000 n 0000836398 00000 n 0000836515 00000 n 0000836632 00000 n 0000836749 00000 n 0000836866 00000 n 0000836983 00000 n 0000837100 00000 n 0000837217 00000 n 0000837334 00000 n 0000837449 00000 n 0000837566 00000 n 0000837683 00000 n 0000837796 00000 n 0000837908 00000 n 0000838025 00000 n 0000838140 00000 n 0000838257 00000 n 0000838374 00000 n 0000838491 00000 n 0000838608 00000 n 0000838725 00000 n 0000838842 00000 n 0000838959 00000 n 0000839076 00000 n 0000839191 00000 n 0000839305 00000 n 0000839420 00000 n 0000839535 00000 n 0000839652 00000 n 0000839769 00000 n 0000839888 00000 n 0000840007 00000 n 0000840125 00000 n 0000840244 00000 n 0000840363 00000 n 0000840482 00000 n 0000840601 00000 n 0000840720 00000 n 0000840836 00000 n 0000840955 00000 n 0000841074 00000 n 0000841193 00000 n 0000841310 00000 n 0000841427 00000 n 0000841543 00000 n 0000841662 00000 n 0000841781 00000 n 0000841899 00000 n 0000842018 00000 n 0000842137 00000 n 0000842256 00000 n 0000842375 00000 n 0000842491 00000 n 0000842608 00000 n 0000842725 00000 n 0000842842 00000 n 0000842959 00000 n 0000843076 00000 n 0000843193 00000 n 0000843310 00000 n 0000843427 00000 n 0000843544 00000 n 0000843660 00000 n 0000843776 00000 n 0000843890 00000 n 0000844006 00000 n 0000844122 00000 n 0000844236 00000 n 0000844351 00000 n 0000844468 00000 n 0000844583 00000 n 0000844700 00000 n 0000844816 00000 n 0000844931 00000 n 0000845048 00000 n 0000845165 00000 n 0000845282 00000 n 0000845399 00000 n 0000845514 00000 n 0000845629 00000 n 0000845743 00000 n 0000845860 00000 n 0000845977 00000 n 0000846093 00000 n 0000846210 00000 n 0000846327 00000 n 0000846444 00000 n 0000846561 00000 n 0000846678 00000 n 0000846793 00000 n 0000846910 00000 n 0000847027 00000 n 0000847144 00000 n 0000847261 00000 n 0000847377 00000 n 0000847494 00000 n 0000847611 00000 n 0000847730 00000 n 0000847849 00000 n 0000847967 00000 n 0000848082 00000 n 0000848200 00000 n 0000848317 00000 n 0000848435 00000 n 0000848553 00000 n 0000848671 00000 n 0000848788 00000 n 0000848906 00000 n 0000849024 00000 n 0000849143 00000 n 0000849262 00000 n 0000849381 00000 n 0000849500 00000 n 0000849619 00000 n 0000849738 00000 n 0000849857 00000 n 0000849973 00000 n 0000850092 00000 n 0000850211 00000 n 0000850329 00000 n 0000850446 00000 n 0000850563 00000 n 0000850681 00000 n 0000850798 00000 n 0000850834 00000 n 0000628163 00000 n 0000630337 00000 n 0000850926 00000 n 0000851039 00000 n 0000851156 00000 n 0000851271 00000 n 0000851388 00000 n 0000851505 00000 n 0000851620 00000 n 0000851737 00000 n 0000851852 00000 n 0000851967 00000 n 0000852080 00000 n 0000852197 00000 n 0000852312 00000 n 0000852426 00000 n 0000852543 00000 n 0000852661 00000 n 0000852778 00000 n 0000852893 00000 n 0000853010 00000 n 0000853127 00000 n 0000853244 00000 n 0000853361 00000 n 0000853476 00000 n 0000853591 00000 n 0000853708 00000 n 0000853825 00000 n 0000853942 00000 n 0000854057 00000 n 0000854174 00000 n 0000854291 00000 n 0000854409 00000 n 0000854526 00000 n 0000854641 00000 n 0000854758 00000 n 0000854875 00000 n 0000854990 00000 n 0000855107 00000 n 0000855224 00000 n 0000855341 00000 n 0000855458 00000 n 0000855569 00000 n 0000855686 00000 n 0000855799 00000 n 0000855916 00000 n 0000856035 00000 n 0000856154 00000 n 0000856273 00000 n 0000856390 00000 n 0000856509 00000 n 0000856626 00000 n 0000856743 00000 n 0000856862 00000 n 0000856980 00000 n 0000857098 00000 n 0000857217 00000 n 0000857336 00000 n 0000857455 00000 n 0000857574 00000 n 0000857693 00000 n 0000857812 00000 n 0000857931 00000 n 0000858050 00000 n 0000858168 00000 n 0000858286 00000 n 0000858405 00000 n 0000858523 00000 n 0000858642 00000 n 0000858760 00000 n 0000858877 00000 n 0000858994 00000 n 0000859106 00000 n 0000859225 00000 n 0000859344 00000 n 0000859463 00000 n 0000859582 00000 n 0000859699 00000 n 0000859818 00000 n 0000859937 00000 n 0000860055 00000 n 0000860174 00000 n 0000860293 00000 n 0000860412 00000 n 0000860531 00000 n 0000860650 00000 n 0000860767 00000 n 0000860885 00000 n 0000861003 00000 n 0000861122 00000 n 0000861239 00000 n 0000861358 00000 n 0000861476 00000 n 0000861593 00000 n 0000861709 00000 n 0000861826 00000 n 0000861943 00000 n 0000862062 00000 n 0000862180 00000 n 0000862297 00000 n 0000862416 00000 n 0000862535 00000 n 0000862654 00000 n 0000862773 00000 n 0000862892 00000 n 0000863011 00000 n 0000863130 00000 n 0000863247 00000 n 0000863364 00000 n 0000863483 00000 n 0000863602 00000 n 0000863721 00000 n 0000863835 00000 n 0000863954 00000 n 0000864069 00000 n 0000864188 00000 n 0000864307 00000 n 0000864422 00000 n 0000864541 00000 n 0000864660 00000 n 0000864779 00000 n 0000864898 00000 n 0000865015 00000 n 0000865132 00000 n 0000865251 00000 n 0000865370 00000 n 0000865489 00000 n 0000865607 00000 n 0000865726 00000 n 0000865845 00000 n 0000865964 00000 n 0000866083 00000 n 0000866202 00000 n 0000866320 00000 n 0000866439 00000 n 0000866557 00000 n 0000866676 00000 n 0000866795 00000 n 0000866911 00000 n 0000867028 00000 n 0000867064 00000 n 0000630360 00000 n 0000632554 00000 n 0000867156 00000 n 0000867269 00000 n 0000867388 00000 n 0000867504 00000 n 0000867623 00000 n 0000867741 00000 n 0000867860 00000 n 0000867979 00000 n 0000868098 00000 n 0000868216 00000 n 0000868329 00000 n 0000868444 00000 n 0000868559 00000 n 0000868677 00000 n 0000868790 00000 n 0000868902 00000 n 0000869021 00000 n 0000869140 00000 n 0000869259 00000 n 0000869374 00000 n 0000869493 00000 n 0000869610 00000 n 0000869729 00000 n 0000869844 00000 n 0000869961 00000 n 0000870076 00000 n 0000870195 00000 n 0000870310 00000 n 0000870429 00000 n 0000870547 00000 n 0000870664 00000 n 0000870783 00000 n 0000870898 00000 n 0000871015 00000 n 0000871132 00000 n 0000871249 00000 n 0000871368 00000 n 0000871487 00000 n 0000871602 00000 n 0000871721 00000 n 0000871838 00000 n 0000871953 00000 n 0000872066 00000 n 0000872185 00000 n 0000872300 00000 n 0000872415 00000 n 0000872534 00000 n 0000872648 00000 n 0000872765 00000 n 0000872882 00000 n 0000873001 00000 n 0000873116 00000 n 0000873234 00000 n 0000873351 00000 n 0000873470 00000 n 0000873584 00000 n 0000873703 00000 n 0000873820 00000 n 0000873939 00000 n 0000874057 00000 n 0000874170 00000 n 0000874289 00000 n 0000874406 00000 n 0000874523 00000 n 0000874638 00000 n 0000874757 00000 n 0000874874 00000 n 0000874992 00000 n 0000875103 00000 n 0000875222 00000 n 0000875341 00000 n 0000875459 00000 n 0000875578 00000 n 0000875697 00000 n 0000875816 00000 n 0000875935 00000 n 0000876054 00000 n 0000876172 00000 n 0000876288 00000 n 0000876404 00000 n 0000876518 00000 n 0000876637 00000 n 0000876755 00000 n 0000876873 00000 n 0000876991 00000 n 0000877110 00000 n 0000877227 00000 n 0000877346 00000 n 0000877465 00000 n 0000877584 00000 n 0000877703 00000 n 0000877820 00000 n 0000877939 00000 n 0000878057 00000 n 0000878174 00000 n 0000878293 00000 n 0000878412 00000 n 0000878531 00000 n 0000878649 00000 n 0000878766 00000 n 0000878885 00000 n 0000879002 00000 n 0000879119 00000 n 0000879238 00000 n 0000879355 00000 n 0000879472 00000 n 0000879591 00000 n 0000879710 00000 n 0000879829 00000 n 0000879948 00000 n 0000880067 00000 n 0000880184 00000 n 0000880301 00000 n 0000880418 00000 n 0000880534 00000 n 0000880653 00000 n 0000880772 00000 n 0000880891 00000 n 0000881008 00000 n 0000881127 00000 n 0000881246 00000 n 0000881365 00000 n 0000881484 00000 n 0000881603 00000 n 0000881718 00000 n 0000881837 00000 n 0000881956 00000 n 0000882075 00000 n 0000882192 00000 n 0000882309 00000 n 0000882428 00000 n 0000882547 00000 n 0000882665 00000 n 0000882784 00000 n 0000882903 00000 n 0000883020 00000 n 0000883138 00000 n 0000883253 00000 n 0000883289 00000 n 0000632577 00000 n 0000635026 00000 n 0000883381 00000 n 0000883494 00000 n 0000883610 00000 n 0000883725 00000 n 0000883842 00000 n 0000883959 00000 n 0000884076 00000 n 0000884193 00000 n 0000884310 00000 n 0000884424 00000 n 0000884541 00000 n 0000884656 00000 n 0000884771 00000 n 0000884886 00000 n 0000885001 00000 n 0000885118 00000 n 0000885235 00000 n 0000885352 00000 n 0000885469 00000 n 0000885586 00000 n 0000885701 00000 n 0000885816 00000 n 0000885931 00000 n 0000886047 00000 n 0000886164 00000 n 0000886281 00000 n 0000886396 00000 n 0000886513 00000 n 0000886630 00000 n 0000886747 00000 n 0000886864 00000 n 0000886981 00000 n 0000887096 00000 n 0000887213 00000 n 0000887332 00000 n 0000887451 00000 n 0000887567 00000 n 0000887683 00000 n 0000887801 00000 n 0000887919 00000 n 0000888037 00000 n 0000888156 00000 n 0000888275 00000 n 0000888393 00000 n 0000888512 00000 n 0000888631 00000 n 0000888750 00000 n 0000888868 00000 n 0000888985 00000 n 0000889104 00000 n 0000889222 00000 n 0000889340 00000 n 0000889459 00000 n 0000889578 00000 n 0000889697 00000 n 0000889813 00000 n 0000889932 00000 n 0000890051 00000 n 0000890170 00000 n 0000890287 00000 n 0000890406 00000 n 0000890525 00000 n 0000890644 00000 n 0000890763 00000 n 0000890880 00000 n 0000890997 00000 n 0000891115 00000 n 0000891226 00000 n 0000891343 00000 n 0000891460 00000 n 0000891577 00000 n 0000891694 00000 n 0000891811 00000 n 0000891928 00000 n 0000892045 00000 n 0000892161 00000 n 0000892278 00000 n 0000892395 00000 n 0000892510 00000 n 0000892625 00000 n 0000892742 00000 n 0000892859 00000 n 0000892974 00000 n 0000893091 00000 n 0000893208 00000 n 0000893325 00000 n 0000893440 00000 n 0000893557 00000 n 0000893674 00000 n 0000893789 00000 n 0000893905 00000 n 0000894022 00000 n 0000894139 00000 n 0000894256 00000 n 0000894371 00000 n 0000894486 00000 n 0000894603 00000 n 0000894720 00000 n 0000894837 00000 n 0000894954 00000 n 0000895071 00000 n 0000895187 00000 n 0000895304 00000 n 0000895420 00000 n 0000895536 00000 n 0000895651 00000 n 0000895765 00000 n 0000895882 00000 n 0000895999 00000 n 0000896112 00000 n 0000896225 00000 n 0000896341 00000 n 0000896458 00000 n 0000896577 00000 n 0000896696 00000 n 0000896815 00000 n 0000896934 00000 n 0000897052 00000 n 0000897171 00000 n 0000897290 00000 n 0000897408 00000 n 0000897527 00000 n 0000897646 00000 n 0000897765 00000 n 0000897884 00000 n 0000898003 00000 n 0000898122 00000 n 0000898241 00000 n 0000898360 00000 n 0000898479 00000 n 0000898594 00000 n 0000898713 00000 n 0000898830 00000 n 0000898948 00000 n 0000899065 00000 n 0000899101 00000 n 0000635049 00000 n 0000637276 00000 n 0000899193 00000 n 0000899306 00000 n 0000899419 00000 n 0000899536 00000 n 0000899653 00000 n 0000899770 00000 n 0000899887 00000 n 0000900004 00000 n 0000900121 00000 n 0000900238 00000 n 0000900355 00000 n 0000900468 00000 n 0000900580 00000 n 0000900697 00000 n 0000900812 00000 n 0000900926 00000 n 0000901043 00000 n 0000901160 00000 n 0000901277 00000 n 0000901394 00000 n 0000901510 00000 n 0000901625 00000 n 0000901742 00000 n 0000901859 00000 n 0000901976 00000 n 0000902093 00000 n 0000902210 00000 n 0000902325 00000 n 0000902439 00000 n 0000902556 00000 n 0000902673 00000 n 0000902790 00000 n 0000902907 00000 n 0000903024 00000 n 0000903141 00000 n 0000903256 00000 n 0000903373 00000 n 0000903490 00000 n 0000903607 00000 n 0000903722 00000 n 0000903839 00000 n 0000903956 00000 n 0000904073 00000 n 0000904190 00000 n 0000904305 00000 n 0000904422 00000 n 0000904539 00000 n 0000904656 00000 n 0000904773 00000 n 0000904887 00000 n 0000905004 00000 n 0000905117 00000 n 0000905234 00000 n 0000905350 00000 n 0000905467 00000 n 0000905584 00000 n 0000905701 00000 n 0000905818 00000 n 0000905935 00000 n 0000906051 00000 n 0000906168 00000 n 0000906285 00000 n 0000906402 00000 n 0000906519 00000 n 0000906635 00000 n 0000906750 00000 n 0000906865 00000 n 0000906979 00000 n 0000907098 00000 n 0000907218 00000 n 0000907335 00000 n 0000907451 00000 n 0000907570 00000 n 0000907689 00000 n 0000907806 00000 n 0000907925 00000 n 0000908042 00000 n 0000908161 00000 n 0000908278 00000 n 0000908395 00000 n 0000908511 00000 n 0000908627 00000 n 0000908743 00000 n 0000908860 00000 n 0000908977 00000 n 0000909094 00000 n 0000909207 00000 n 0000909324 00000 n 0000909441 00000 n 0000909552 00000 n 0000909665 00000 n 0000909778 00000 n 0000909891 00000 n 0000910008 00000 n 0000910125 00000 n 0000910242 00000 n 0000910359 00000 n 0000910476 00000 n 0000910593 00000 n 0000910709 00000 n 0000910826 00000 n 0000910941 00000 n 0000911055 00000 n 0000911174 00000 n 0000911293 00000 n 0000911412 00000 n 0000911531 00000 n 0000911650 00000 n 0000911769 00000 n 0000911888 00000 n 0000912007 00000 n 0000912124 00000 n 0000912243 00000 n 0000912362 00000 n 0000912481 00000 n 0000912600 00000 n 0000912719 00000 n 0000912838 00000 n 0000912957 00000 n 0000913075 00000 n 0000913194 00000 n 0000913313 00000 n 0000913432 00000 n 0000913551 00000 n 0000913669 00000 n 0000913788 00000 n 0000913907 00000 n 0000914025 00000 n 0000914142 00000 n 0000914258 00000 n 0000914377 00000 n 0000914496 00000 n 0000914615 00000 n 0000914734 00000 n 0000914853 00000 n 0000914972 00000 n 0000915090 00000 n 0000915209 00000 n 0000915326 00000 n 0000915445 00000 n 0000915563 00000 n 0000915683 00000 n 0000915802 00000 n 0000915921 00000 n 0000916038 00000 n 0000916156 00000 n 0000916274 00000 n 0000916391 00000 n 0000916427 00000 n 0000637299 00000 n 0000639641 00000 n 0000916519 00000 n 0000916632 00000 n 0000916749 00000 n 0000916866 00000 n 0000916983 00000 n 0000917100 00000 n 0000917217 00000 n 0000917332 00000 n 0000917447 00000 n 0000917564 00000 n 0000917681 00000 n 0000917796 00000 n 0000917912 00000 n 0000918026 00000 n 0000918140 00000 n 0000918257 00000 n 0000918373 00000 n 0000918490 00000 n 0000918607 00000 n 0000918721 00000 n 0000918835 00000 n 0000918950 00000 n 0000919067 00000 n 0000919184 00000 n 0000919301 00000 n 0000919418 00000 n 0000919535 00000 n 0000919652 00000 n 0000919769 00000 n 0000919886 00000 n 0000920003 00000 n 0000920121 00000 n 0000920239 00000 n 0000920358 00000 n 0000920476 00000 n 0000920595 00000 n 0000920714 00000 n 0000920831 00000 n 0000920948 00000 n 0000921064 00000 n 0000921183 00000 n 0000921302 00000 n 0000921420 00000 n 0000921539 00000 n 0000921658 00000 n 0000921777 00000 n 0000921896 00000 n 0000922015 00000 n 0000922133 00000 n 0000922252 00000 n 0000922371 00000 n 0000922490 00000 n 0000922609 00000 n 0000922728 00000 n 0000922846 00000 n 0000922965 00000 n 0000923084 00000 n 0000923201 00000 n 0000923320 00000 n 0000923439 00000 n 0000923557 00000 n 0000923676 00000 n 0000923795 00000 n 0000923913 00000 n 0000924032 00000 n 0000924151 00000 n 0000924270 00000 n 0000924389 00000 n 0000924508 00000 n 0000924627 00000 n 0000924746 00000 n 0000924864 00000 n 0000924983 00000 n 0000925102 00000 n 0000925221 00000 n 0000925339 00000 n 0000925458 00000 n 0000925577 00000 n 0000925696 00000 n 0000925815 00000 n 0000925934 00000 n 0000926053 00000 n 0000926169 00000 n 0000926284 00000 n 0000926397 00000 n 0000926514 00000 n 0000926631 00000 n 0000926749 00000 n 0000926865 00000 n 0000926983 00000 n 0000927102 00000 n 0000927219 00000 n 0000927338 00000 n 0000927457 00000 n 0000927576 00000 n 0000927695 00000 n 0000927814 00000 n 0000927933 00000 n 0000928052 00000 n 0000928169 00000 n 0000928286 00000 n 0000928405 00000 n 0000928524 00000 n 0000928641 00000 n 0000928758 00000 n 0000928877 00000 n 0000928996 00000 n 0000929113 00000 n 0000929232 00000 n 0000929351 00000 n 0000929470 00000 n 0000929589 00000 n 0000929708 00000 n 0000929825 00000 n 0000929942 00000 n 0000930059 00000 n 0000930176 00000 n 0000930295 00000 n 0000930414 00000 n 0000930533 00000 n 0000930652 00000 n 0000930771 00000 n 0000930890 00000 n 0000931009 00000 n 0000931128 00000 n 0000931247 00000 n 0000931366 00000 n 0000931485 00000 n 0000931604 00000 n 0000931723 00000 n 0000931842 00000 n 0000931961 00000 n 0000932077 00000 n 0000932196 00000 n 0000932315 00000 n 0000932434 00000 n 0000932553 00000 n 0000932672 00000 n 0000932791 00000 n 0000932910 00000 n 0000933029 00000 n 0000933148 00000 n 0000933267 00000 n 0000933386 00000 n 0000933505 00000 n 0000933622 00000 n 0000933741 00000 n 0000933860 00000 n 0000933979 00000 n 0000934098 00000 n 0000934216 00000 n 0000934333 00000 n 0000934369 00000 n 0000639664 00000 n 0000641951 00000 n 0000934461 00000 n 0000934572 00000 n 0000934682 00000 n 0000934801 00000 n 0000934918 00000 n 0000935037 00000 n 0000935156 00000 n 0000935275 00000 n 0000935394 00000 n 0000935513 00000 n 0000935632 00000 n 0000935751 00000 n 0000935870 00000 n 0000935988 00000 n 0000936099 00000 n 0000936212 00000 n 0000936324 00000 n 0000936442 00000 n 0000936561 00000 n 0000936680 00000 n 0000936797 00000 n 0000936916 00000 n 0000937035 00000 n 0000937154 00000 n 0000937271 00000 n 0000937390 00000 n 0000937509 00000 n 0000937628 00000 n 0000937747 00000 n 0000937866 00000 n 0000937985 00000 n 0000938103 00000 n 0000938223 00000 n 0000938342 00000 n 0000938461 00000 n 0000938580 00000 n 0000938699 00000 n 0000938816 00000 n 0000938933 00000 n 0000939052 00000 n 0000939169 00000 n 0000939285 00000 n 0000939404 00000 n 0000939522 00000 n 0000939641 00000 n 0000939758 00000 n 0000939875 00000 n 0000939992 00000 n 0000940108 00000 n 0000940224 00000 n 0000940342 00000 n 0000940460 00000 n 0000940579 00000 n 0000940698 00000 n 0000940817 00000 n 0000940936 00000 n 0000941052 00000 n 0000941168 00000 n 0000941287 00000 n 0000941404 00000 n 0000941523 00000 n 0000941642 00000 n 0000941760 00000 n 0000941879 00000 n 0000941998 00000 n 0000942117 00000 n 0000942234 00000 n 0000942353 00000 n 0000942470 00000 n 0000942589 00000 n 0000942708 00000 n 0000942827 00000 n 0000942946 00000 n 0000943065 00000 n 0000943184 00000 n 0000943303 00000 n 0000943422 00000 n 0000943541 00000 n 0000943660 00000 n 0000943779 00000 n 0000943898 00000 n 0000944017 00000 n 0000944136 00000 n 0000944251 00000 n 0000944368 00000 n 0000944487 00000 n 0000944605 00000 n 0000944722 00000 n 0000944831 00000 n 0000944938 00000 n 0000945055 00000 n 0000945172 00000 n 0000945289 00000 n 0000945404 00000 n 0000945519 00000 n 0000945635 00000 n 0000945750 00000 n 0000945865 00000 n 0000945982 00000 n 0000946095 00000 n 0000946210 00000 n 0000946327 00000 n 0000946444 00000 n 0000946559 00000 n 0000946676 00000 n 0000946793 00000 n 0000946910 00000 n 0000947027 00000 n 0000947143 00000 n 0000947260 00000 n 0000947375 00000 n 0000947490 00000 n 0000947604 00000 n 0000947721 00000 n 0000947840 00000 n 0000947959 00000 n 0000948078 00000 n 0000948197 00000 n 0000948312 00000 n 0000948430 00000 n 0000948549 00000 n 0000948668 00000 n 0000948786 00000 n 0000948905 00000 n 0000949024 00000 n 0000949141 00000 n 0000949260 00000 n 0000949379 00000 n 0000949498 00000 n 0000949615 00000 n 0000949734 00000 n 0000949853 00000 n 0000949972 00000 n 0000950091 00000 n 0000950210 00000 n 0000950327 00000 n 0000950447 00000 n 0000950564 00000 n 0000950683 00000 n 0000950801 00000 n 0000950920 00000 n 0000951039 00000 n 0000951158 00000 n 0000951277 00000 n 0000951396 00000 n 0000951513 00000 n 0000951630 00000 n 0000951747 00000 n 0000951864 00000 n 0000951977 00000 n 0000952096 00000 n 0000952214 00000 n 0000952331 00000 n 0000952450 00000 n 0000952569 00000 n 0000952688 00000 n 0000952807 00000 n 0000952926 00000 n 0000953042 00000 n 0000953159 00000 n 0000953195 00000 n 0000641974 00000 n 0000644230 00000 n 0000953287 00000 n 0000953399 00000 n 0000953518 00000 n 0000953637 00000 n 0000953756 00000 n 0000953875 00000 n 0000953994 00000 n 0000954111 00000 n 0000954230 00000 n 0000954349 00000 n 0000954468 00000 n 0000954583 00000 n 0000954697 00000 n 0000954815 00000 n 0000954933 00000 n 0000955052 00000 n 0000955171 00000 n 0000955290 00000 n 0000955407 00000 n 0000955526 00000 n 0000955645 00000 n 0000955762 00000 n 0000955879 00000 n 0000955996 00000 n 0000956115 00000 n 0000956234 00000 n 0000956353 00000 n 0000956472 00000 n 0000956591 00000 n 0000956710 00000 n 0000956829 00000 n 0000956947 00000 n 0000957062 00000 n 0000957179 00000 n 0000957298 00000 n 0000957417 00000 n 0000957536 00000 n 0000957655 00000 n 0000957774 00000 n 0000957891 00000 n 0000958010 00000 n 0000958129 00000 n 0000958248 00000 n 0000958367 00000 n 0000958484 00000 n 0000958601 00000 n 0000958719 00000 n 0000958838 00000 n 0000958957 00000 n 0000959076 00000 n 0000959195 00000 n 0000959312 00000 n 0000959429 00000 n 0000959548 00000 n 0000959667 00000 n 0000959786 00000 n 0000959905 00000 n 0000960024 00000 n 0000960141 00000 n 0000960257 00000 n 0000960376 00000 n 0000960495 00000 n 0000960614 00000 n 0000960733 00000 n 0000960852 00000 n 0000960971 00000 n 0000961090 00000 n 0000961208 00000 n 0000961327 00000 n 0000961444 00000 n 0000961563 00000 n 0000961682 00000 n 0000961800 00000 n 0000961917 00000 n 0000962036 00000 n 0000962155 00000 n 0000962273 00000 n 0000962392 00000 n 0000962511 00000 n 0000962630 00000 n 0000962749 00000 n 0000962868 00000 n 0000962987 00000 n 0000963106 00000 n 0000963225 00000 n 0000963344 00000 n 0000963463 00000 n 0000963582 00000 n 0000963701 00000 n 0000963820 00000 n 0000963939 00000 n 0000964057 00000 n 0000964176 00000 n 0000964295 00000 n 0000964414 00000 n 0000964533 00000 n 0000964650 00000 n 0000964769 00000 n 0000964887 00000 n 0000965006 00000 n 0000965125 00000 n 0000965244 00000 n 0000965362 00000 n 0000965479 00000 n 0000965599 00000 n 0000965716 00000 n 0000965835 00000 n 0000965954 00000 n 0000966073 00000 n 0000966192 00000 n 0000966311 00000 n 0000966430 00000 n 0000966549 00000 n 0000966668 00000 n 0000966787 00000 n 0000966905 00000 n 0000967024 00000 n 0000967143 00000 n 0000967262 00000 n 0000967379 00000 n 0000967495 00000 n 0000967614 00000 n 0000967733 00000 n 0000967852 00000 n 0000967971 00000 n 0000968090 00000 n 0000968209 00000 n 0000968325 00000 n 0000968444 00000 n 0000968563 00000 n 0000968682 00000 n 0000968801 00000 n 0000968920 00000 n 0000969039 00000 n 0000969158 00000 n 0000969276 00000 n 0000969394 00000 n 0000969513 00000 n 0000969632 00000 n 0000969748 00000 n 0000969865 00000 n 0000969901 00000 n 0000644253 00000 n 0000644607 00000 n 0000969993 00000 n 0000970106 00000 n 0000970220 00000 n 0000970335 00000 n 0000970450 00000 n 0000970486 00000 n 0000984194 00000 n 0000991403 00000 n 0000999673 00000 n 0001001378 00000 n 0001009086 00000 n 0001011044 00000 n 0001020069 00000 n 0001027857 00000 n 0001029728 00000 n 0001034867 00000 n 0001040979 00000 n 0001051574 00000 n 0001053890 00000 n 0001069159 00000 n 0000971065 00000 n 0000971912 00000 n 0000972003 00000 n 0000972410 00000 n 0000973101 00000 n 0000973521 00000 n 0000973675 00000 n 0000974720 00000 n 0000976588 00000 n 0000977561 00000 n 0000978154 00000 n 0000978241 00000 n 0000979465 00000 n 0000981984 00000 n 0000982075 00000 n 0000983332 00000 n 0001080802 00000 n trailer << /Size 3122 /Root 1 0 R /Info 2 0 R /ID [<3AA287A15F82317697E54DADFF9049C2><3AA287A15F82317697E54DADFF9049C2>] >> startxref 1082349 %%EOF pmw-4.27/doc/Cygwin.txt0000644000222100022210000000546312247665016013126 0ustar ph10ph10 PMW with Microsoft Windows Neil Killeen, April 2008 ------------------------------ 1. Unix environment 1.1 Install the Cygwin (http://www.cygwin.com) Linux environment for windows (by downloading and running the Cygwin setup tool) Take note of the location where the Unix user home directory is located (under the "home" folder of the cygwin installation tree). 1.2 When you run the setup tool, suggest your first pass is the default packages selection 1.3 Run the setup tool again, this time selecting the following packages - gcc, make (Category "Devel") - ghostscript 2. Run cygwin 2.1 Use the desktop shortcut or Start menu 2.2 This will start a Unix terminal running the bash shell. Use standard Unix commands within it 2.3 The default location when this terminal starts is your Unix home directory (see 1.1) 3. Install pmw. 3.1 Use your Windows web browser to download the pmw tar ball (e.g. pmw.4.12.tar.gz) 3.2 Using the Unix terminal, create a directory for the pmw installation % cd ~ % mkdir pmw 3.3 Use the Windows file browser to move the downloaded tar ball into the Unix pmw directory you just created 3.4 Unpack pmw % cd ~/pmw % gunzip pmw-4.12.tar.gz % tar xvf pmw-4.12.tar % cd pmw-4.12 3.5 Follow the PMW Unix install instructions % ./configure % make % make install By default, pmw will be found in /usr/local 3.6 The binary will be called "pmw.exe" and it will be in your Unix PATH by default 4. Test the installation by trying to build one of the test source files in the pmw distribution tree % cd ~/pmw/pmw-4.12/testdist/infiles % pmw.exe -includefont Test01 Note you must provide the -includefont argument to get sensible output, which will be called Test01.ps (a postscript file) 5. Optionally convert postscript file to pdf 6.1 You may prefer to convert to pdf format rather than deal with postscript. 6.2 You can do this with the eps2pdf application in your Cygwin termninal. You can must install the Cygwin ghostscript package to make this application available. % ps2pdf Test01.ps 6. View pdf or postscript file. 6.1 Use the Windows file browser to navigate to the directory where the postscript or pdf file resides. 6.2 If the file is postscript, the Ghostview/Ghostscript application can be used to view the postscript file. You can download and install these (two separate Windows apps) from http://pages.cs.wisc.edu/~ghost 6.3 If the file is pdf, you can view this with Adobe Acrobat Reader or some other pdf viewer pmw-4.27/doc/ChangeLog0000644000222100022210000007222612247665016012700 0ustar ph10ph10Change Log for Philip's Music Writer (Linux/Unix version) --------------------------------------------------------- Version 4.27 04-December-2013 ----------------------------- 1. If a bar containing a long rest symbol is wider or narrower than normal, the |----| symbol is now drawn instead of using the font character. This means it can be made longer or shorter. In particular, it is now possible to have one long bar right across the page as is common in instrumental parts for tacet movements. 2. Updated font-handling to add the remaining Unicode characters in the Latin-A extended font, together with the infinity character, all of which are present in modern fonts. 3. The PDF index in the manual now has clickable links to the individual letter headings in the index. Version 4.26 05-March-2013 -------------------------- 1. The table out_mfstr_ps table (ancient code) was mixing small integers and pointers in the same table (space-saving back in the 1990s) which caused trouble on systems where addresses could be negative and in any case is bad style these days. In fact, the additional space used is very small. 2. Removed a number of unused variables that were thrown up by the warning -Wunused-but-set-variable in a modern gcc. 3. If a mid-stave bar at the start of a system starts with both a time change and a key change, it is now possible to have just one of them as a warning at the end of the previous system. 4. Added [no]codemultirests. Version 4.25 06-January-2013 ---------------------------- 1. Allow tremolo markings to be moved up and down (but not left and right). The syntax is odd (e.g. G\//d4\ moves a single tremolo down 4) but it is consistent with everything else. 2. In read2.c there was a local variable called oo, which could be confused with the macro oo in that module - a shorthand for offsetof. The variable is renamed, and a couple of explicit offsetof appearances now use the macro. 3. When writing a MIDI file, simple "scrubbing" (single or double tremolos) on minims and crotchets (possibly dotted) is now recognized. Previously the notes were played as single long notes. Version 4.24 23-March-2012 -------------------------- 1. There was a bug in the debugging code invoded by -dsb (used only by developers) which caused it to generate incorrect output for some ornaments. 2. On 64-bit systems, if there was more than one ornament on a note or chord (e.g. arpeggio plus fermata), only the first of them was shown. 3. Fixed a uninitialized value in the data block for certain ornaments. 4. In rare circumstances, when a specific item happened to occur right at the end of a memory block, the code for moving on to the next block was incorrect, and so the output was not right. These are specific cases: (a) Amalgamation of a right repeat immediately followed by a left repeat. (b) A final first time bar at the end of a line: the terminating jog might be missing. (c) Beam breaks on 64-bit systems. 5. The structure lengths for "assume time", "assume key", and "assume clef" were incorrect. This could lead to overwriting for "assume time" - by luck the other two were not affected. The only visible effect was small positioning variations when systems were stretched. 6. Code for advancing through a chord would have gone wrong on 64-bit systems, but for the lucky coincidence that the length of the structure involved happens to be a multiple of 8. There was a similar issue with the code for linking between multiple memory blocks. Version 4.23 ------------ 1. The only change to the program for this release is the addition of the -drawbarlines and -drawstavelines command line options. 2. Updated the documentation Makefile to ensure that (a) it uses the local versions of PMW's font metrics and PostScript header, and does not look for installed versions, when building the PMW examples; (b) the PMW fontmetrics are made available to SDoP when it processes the spec. This is done by making a fontmetrics directory containing only those files rather than just pointing SDoP at the main PMW directory, for two reasons: (1) PMW also uses a PSheader file, which SDoP picks up in error (the main reason), and (2) we want SDoP to use its own fontmetrics for other fonts. 3. Changed documentation to suggest making two symbolic links for the PMW fonts intead of a single directory link, which does not always work. Version 4.22 re-release ----------------------- There are no changes whatsoever to the code, just to the packaging and the documentation: 1. Added support for DESTDIR to the Makefile. 2. Reformatted the specification using the latest version of SDoP, which turns cross-references and index page numbers into clickable links in the PDF. 3. Added some newly contributed files to the contrib directory. Version 4.22 ------------ 1. Get rid of an "uninitialized variable" warning in paginate.c. 2. Added \..\ for staccatissimo, using new characters 194, 195 in the font, which are teardrop shapes (one inverted). As part of this, the code for parsing accents and ornaments has been reorganized to be more table driven. 3. When a syntax error is output, the file name used to be included with the line number only for included files, but now it is always included for the benefit of people who use the "compilation mode" of Emacs (or similar feature in other environments). This mode makes use of the error messages and is able to open the file at the place where the error was found during the compilation, but of course it needs the file name. 4. Tidied up the copyright string, which for some crazy reason appeared twice in the source code. Added "Built" to the date that is shown by -V etc. 5. When righttoleft was set with -eps, the bounding box values in the EPS file were incorrect whenever the magnification was not 1.0. 6. When a layout directive caused a system to be squashed to fit onto a line, underlaid words could crash into each other because of the squashing. (Bars are initially spaced to avoid underlay crashes, but this did not take account of squashing.) This problem has been alleviated by respacing lines when the squashing is above a certain threshold - in the same way as happens when systems are stretched a lot. For backwards compatibility on old files, a new directive called stretchrule has been invented, with values 0, 1, or 2; oldstretchrule (dating from a much earlier change) is equivalent to setting stretchrule to 0. The default is 2, and 1 is the situation prior to this change. 7. Related to 6, when PMW was adjusting note spacing so that underlaid syllables did not collide, it was ignoring leading and trailing # characters, treating them as spaces (which of course, they print as). However, this means that using # to move a syllable left or right did not work as expected. It now ignores leading and trailing spaces only if they are actual space characters. 8. Updated the AFM files in the fontmetrics directory to later versions that include additional characters in current versions of the text fonts. 9. When a bar was not of the correct length, the error message always said it was too long, even when it was too short. I am amazed nobody has noticed this bug before; it was introduced by change 30 of version 4.20. 10. Allow /u, /d, /l, and /r in strings for drawing calls. 11. Add -MF to allow overriding of the directory in which the music fonts are stored. 12. Process the files in the testdist directory with -includefont (requiring the new -MF option) so that the output can be directly viewed in environments where the fonts are not installed. 13. Added ||| to print an "end-of-piece" barline in the middle of a piece. 14. Added /), /(, /b, and /B for bracketing expression marks and ornaments. Version 4.21 ------------ 1. Changed an (int) cast to (long int) in the ps.c source, in order to get rid of a compiler warning in 64-bit environments. 2. Re-organized the rdargs module (argument decoding) to get rid of some 32-bit-isms that caused crashes and/or weird behaviour in 64-bit environments. 3. Added the midifornotesoff heading directive. Version 4.20 ------------ 1. Carried out a general spring clean of the code, tidying up comments, removing redundant code left over from the Risc OS days, and also re- arranging some of the control logic. 2. The code for "draw" features used an array of ints for the drawing engine implementation, casting addresses to ints for handling text and other pointers. This does not work in 64-bit environments. It has now been changed to use a union of int and void * for these items. I also added a "type" to data items so that it can be checked for the various operators (previously there was no check). This has made it possible to upgrade "pstack" so that it correctly shows text strings and says "code-block" instead of printing the address. 3. The store (memory) handling functions also used addresses cast to ints. This is no longer the case. 4. Fixed a bug in the string width measuring code which could have given wrong answers in cases where non-standard fonts were in use. 5. A related bug to (3) could have caused trouble when small caps fonts were used. 6. Fixed bugs thrown up by running the tests under valgrind. A couple of uninitialized variables, and one text string overrun while calculating a length for centering. 7. Some of the output differed in the third decimal place when the tests were run under valgrind. This was connected with floating point arithmetic, in particular, that used for drawing fancy types of slur. Some massaging of the code, especially in the way floats are converted back to ints, has been done, and now the tests produce the same output when run native or under valgrind. This was a long and tedious slog. 8. There was a typo in the AFM file for the PMW-Alpha font: character 222 had a width of 0.75 which should really be 0.15. 9. The documentation has been converted to a new production system, and the opportunity has been taken to thoroughly revise it. 10. Two MIDI bugs have been fixed: (a) When a chord was tied to a subsequent chord with more notes than the first chord, for example, (cd)_(cde), the MIDI generated for the additional notes was incorrect, often causing a long period of silence with the note played minutes later. (b) When a MIDI parameter, for example, the voice, was changed in mid-part by a directive such as [midichannel 1 midivoice "flute"], and playing was started after this directive, using the command line option -midibars, the change of parameter was not heeded. 11. When overlay was used with chords, the level was incorrectly computed, taking into account only the lowest note of the chord instead of the highest. Overlay has also been raised by one point. 12. A hairpin that continued over more than one line boundary caused PMW to crash. This could accidentally be provoked by terminating a '>' hairpin with '<' or vice versa. 13. Change 4.01/5 removed "a4" from the PostScript output because it was causing trouble with GhostScript. It seems that nowadays it is no longer an issue, and is needed for conversion to PDF, especially if the sheet size is something else, for example, A3. The action now is to include a known paper size, set from the "sheetsize" directive (default A4), between %%BeginPaperSize and %%EndPapersize lines. If the dimensions are independently set using sheetdepth or sheetwidth, this does not happen. 14. Add support for small note heads (to show optional notes) with the note option \sm\. All this does is to reduce the size of the note head. 15. Added "letter" to the list of recognized paper sizes for the "sheetsize" directive. 16. The heading directive "stavespacing 0/xxx" was not being diagnosed as an error. 17. If [sshere] or [ssnext] were specified on stave 0, or with "0" as a stave number (meaning "all staves"), and a relative change was specified (e.g. [sshere 0/+20]) the change was interpreted as absolute instead of relative. 18. Give a warning if the same stave is mentioned more than once in a stavespacing, [sshere], or [ssnext] directive. 19. Some of the warning messages were missing "Warning:" at the start. 20. The "bar length is different to the staves above" message has been changed from a serious error (which prevents PMW from generating output) to a warning - some attempt at the output will be made (see also 31). 21. No diagnosis was previously given for an unsupported code point in text. It was silently replaced. A warning message is now given. 22. The internal formatting function that is used to generate error messages went wrong if more than one substitution of a width was present (previously there were no cases of this, so the bug didn't show). 23. Added six characters to the PMW-Music font: 270 184 0.0 ledger2 a ledger line that is 2/3 thicker 275 189 0.424 halfsharp1 half sharp, Egyptian style 276 190 0.6 halfsharp2 half sharp, Turkish style 277 191 0.5 halfflat1 half flat, Egyptian style 300 192 0.5 halfflat2 half flat, Turkish style 301 193 0.6 icomma inverted comma, for right-to-left music 24. Added the ledgerstyle directive. 25. Added some simple support for half sharps and half flats, and the halfsharpstyle and halfflatstyle directives. There is no MIDI support. 26. Added the printkey directive. 27. Added the righttoleft directive (probably incompletely). 28. Changed -F so that it specifies an additional fontmetrics directory, not the only one. 29. Fixed a couple of small bugs relating to the handling of characters in text strings with codes greater than 127 in the Music font. 30. Fixed a problem with duplets and other irregular note groups that caused (for example) {GG} and {3/2GG} in 3/2 time to be treated differently, when of course they should be the same. There was also another bug that happened when very short notes were involved in certain kinds of irregular groups; PMW complained about bars being too long or too short by very small fractions of a crotchet. These fixes have also tidied up some other irregularities in this area; the documentation now tries to explain it all better. There may be differences in the way some of the rarer groupings are handled. 31. The "bar length is different to the staves above" message was given twice if it occurred in the first bar of a system other than the first, because such bars are measured twice (once for the previous system, to discover that it doesn't fit). 32. Fixed some cases when the bounding box of EPS output was incorrect. The cases all involved text. Version 4.12 ------------ 1. Transposing the key/chord name in a string such as "\tCm9" up by one semitone caused the string to be mangled and an incorrect error message to be generated, whereas other strings such as "\tCm11" worked fine. (This was a buffer length error.) 2. Transposing a key/chord name in a heading line did not always work correctly. For example, transposing Cm (C minor) up by one semitone resulted in D$m (D-flat minor) instead of C#m (C-sharp minor), even if the movement's key signature preceded the heading line. This transposition now works as long as the key signature is defined before the heading that contains the transposition. 3. Code tidies to avoid compiler warnings related to string signedness. 4. The midistart directive was in the code (from the old Acorn version) but was not documented, and didn't work as expected because no time deltas were written to the file. All the events in the midistart data are now preceded by a zero delta so that they happen at the start of playing, and the directive is documented. Version 4.11 ------------ 1. The sorting of MIDI events was not quite as intended, leading to occasional cases where a repeated note was turned on for the second time before (rather than after) being turned off (at the same point in time). Some MIDI players seem to "do the right thing" with this, but apparently others do not. The sorting has been mended. 2. A new character has been added to the PMW-Music font. Its number is 183 (decimal) or 267 (octal). The character is an "x" that is suitable for printing at the head of a guitar grid to indicate a string that is not played. Like the open and closed circles, its typographic width is exactly right to move the printing point on to the next guitar string position. 3. The heading directives playtempo, playtranspose, and playvolume, and the stave directives playtranspose and playvolume have been given synonyms with "play" replaced by "midi" because the old names (which originally referred to MIDI and non-MIDI playing) are not longer sensible. They are, however, retained for backwards compatibility. Version 4.10 ------------ 1. A major new feature: text strings are now interpreted as UTF-8 character strings using the Unicode encoding for non-Music and non-Symbol fonts (strictly, fonts that use the Adobe standard encoding by default). For backwards compatibility, a byte with a value greater than 127 that cannot form part of a valid UTF-8 sequence is interpreted as a Unicode character with its byte value. This change is almost backwards compatible. See the documentation for exact details. 2. PMW could crash for certain command lines because a vector used during argument decoding wasn't big enough. (The number of possible options has increased recently.) 3. PMW crashed if the quoted string was missing from a "heading" directive. Version 4.07 ------------ 1. Fixed some errors in the PMW-Music.afm file. These did not affect the running of PMW, but could cause trouble when using the PMW-Music font with other applications. (i) The "B" for the bounding box was missing in all but the first character. (ii) Some semicolons were not preceded by a space. This is not incorrect, as far as I can tell, but I had a report that the afm2tfm program didn't like it. 2. The Makefile contained just "RunTests" for running the tests; it should be "./RunTests". 3. Changes to the PMW-Music.pfa Postscript font: (i) There was a typo in the data for the "diminished chord sign" character (character 181) - "hlineto" instead of "hmoveto". This didn't seem to bother GhostScript or PostScript printers, but the "fontforge" utility noticed it and complained. (Note: fontforge has other problems with the font, which I have not resolved.) (ii) I have increased the thickness of the minim notehead by a small amount. 4. There is a new command line option -nowidechars (-nw) which stops PMW from using the 100-point wide stave characters when printing staves. Instead, staves are constructed entirely from the 10-point wide characters. This option is provided because it seems that some PostScript interpreters cannot deal correctly with the very wide characters. Using the standard 5-line stave, a 310-point stave is normally printed as the string FFFC. With the new option, it is printed as CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC. 5. A simple facility for specifying default options has been created. When PMW starts up, it looks in the user's home directory for a file called .pmwrc. If this file exists, its contents are read and used to modify the PMW command line. White space (spaces, tabs, or newlines) in the file are used to separate items. Each item is added to the command line, before the given arguments. Thus, for example, if you always want to make use of the -nowidechars option, all you need to do is to create a .pmwrc file that contains -nowidechars and the effect is as if you type "-nowidechars" immediately after "pmw" every time you run it. If you insert an option that requires data, the data item must also be given in the .pmwrc file. For example, the file might contain -midi /usr/tmp/pmw.midi if you always want to create MIDI output. Omitting the file name causes an error. Note that PMW does not allow options to be repeated, so if an option is present in the .pmwrc file, it cannot also be given on the command line. There is no way to override individual options that are set in the .pmwrc file. However, if the first option on the command line is "-norc", the file is not used at all. 6. A new option, -includefont, is provided to cause PMW to include the music font within the PostScript output that it generates. (If the PMW-Alpha font is used, that is also included.) If you use this option, there is no need to install the font(s) for GhostScript (or any other display program) to find. However, it does mean that each PMW output file is bigger by 37K for PMW-Music and 31K for PMW-Alpha. 7. New options -duplex and -tumble are provided to set the duplex and tumble printing options in the PostScript output. 8. A semicolon that did not immediately follow a beamable note was ignored. (Way back in pre-history, space was the beam separator, and semicolon was needed as a general separator, but this changed a very long time ago.) This meant that errors such as "b-b-[endslur];" were not diagnosed, though if a comma were used instead, there would be an error. I have now removed the use of semicolon as a general separator - hopefully it is rarely used - and stuck in explicit diagnostics for misplaced semicolons and commas. 9. Fixed an extremely obscure bug that caused the loss of some ties in a chord when the "p" facility was used. For example, for this sequence: (#a`-d-)_ p_ P+._ | (A`+.D+.) | one tie was lost between the final two chords. It is possible that other specific sequences could also have provoked the bug. 10. It is now possible to use "p" and "x" at the start of a bar to repeat the note or chord at the end of the previous bar. If there is no tie, the accidentals are repeated; if there is a tie, they are not. If there is a subsequent use of "p" or "x" after one or more tied notes, the accidentals *are* repeated, according to the usual notation convention. 11. The Makefile has been updated so that, after installing pmw, it runs a script that looks for the "gs" command and, if it finds it, writes some text about how to get GhostScript to use the music fonts. 12. The gracespacing directive has been extended to take a second, optional value. This applies when there is more than one grace note before a main note. The second value specifies the space between the grace notes. The default is the same as the space between the grace note and the main note, and that in turn defaults to 6 points. A "+" or "-" can be used to specify a change to the existing value. For example: gracespacing +2 -1 increases the space between the last gracenote and the main note by 2 points, but reduces the space between multiple gracenotes by one point. If only one number is given to gracespacing, it is used for both values. For example: gracespacing +3 increases both spaces by 3 points. 13. Added an "uninstall" target to the makefile. 14. Transpositions of an octave or more caused PMW to fail with an error message such as "Internal failure - transposition (48, 0, 60, 48)". Such transpositions should now work. 15. There is a new command line option -printgutter. This specifies a distance by which righthand (recto) page images are moved to the right, and lefthand (verso) page images are moved to the left, thus creating a "gutter" for binding when the images are printed doublesided. The -printgutter setting applies only when pages are being printed 1-up. It is ignored for any of the 2-up printing styles. Version 4.06 ------------ 1. I had screwed up spectacularly in the representation of variable length numbers in MIDI files, setting the top bits of the bytes to precisely the wrong values throughout. This meant, for instance, that any long rests in a piece threw the whole MIDI thing out, leading to chaos. Version 4.05 ------------ 1. It is now possible to specify alterative MIDIvoices and MIDIperc files by means of the command line options -MV and -MP, respectively. 2. An incorrect MIDI file was written if there was more than one stave, and there were notes tied over bar lines. An attempt to play such a file using Timidity caused it to stop at the point of error. 3. If just one bar is selected for MIDI generation, and it happens to be the end of a repeat section, PMW does not now carry on to play the repeat. 4. Added the -norepeats (synonym -nr) command line option, to suppress repeats in MIDI output. Version 4.04 ------------ 1. Internal re-arrangement of flags for each note into two 32-bit words instead of one, in order to get more flags available. 2. Added support for writing MIDI files. 3. Added support for transposing chord names in text strings by means of the \t escape sequence. Version 4.03 ------------ 1. The PostScript music font PMW-Music has been converted from a Type 3 to a Type 1 font. The file is now called PMW-Music.pfa, as per the normal convention. This font should display better on the screen, and should also be included in PDF files, thereby making the music therein display better. 2. Added three extra characters to the music font. 3. The PSheader file used a variable called PMSencoding, a hangover from the previous incarnation. Renamed as PMWencoding. 4. If *include was used when the input was the standard input, that is, not a named file, PMW crashed. It no longer crashes; however, if the included name is not absolute, it cannot make it relative to the main input (because there is no name). It just goes ahead and tries to open the file - that is, is it taken as relative to the current directory. 5. --help is now the same as -help, because some people are in the habit of using --help. 6. Arguments in macro calls are now scanned (recursively) for macro calls. For example, &a(&b) first expands &b, then uses the result as the argument for &a. The use of & as an escape now applies only to non-alphanumeric characters. 7. When cue notes and full-sized notes are vertically aligned, augmentation dots are supposed to line up. They weren't. In solving this, I've introduced two states: in the default state, the dots are spaced proportionately according to the size of the cue notes. There is a new option, invoked by [cue/dotalign] which causes them to be placed so that they align with any full-sized notes above or below on the same stave. This is useful when using the cue facility for alternative notes. Version 4.02 ------------ 1. It was still saying "Scribe" in the PostScript output instead of "Writer". 2. Added -manualfeed to set the manual feed flag in the PostScript. 3. Put back the MIDI and playing directives for compatibility with old PMS files, though they have no effect. (They were made to work later - see above.) Version 4.01 ------------ 1. Building problem. It was including one too many "/pmw" components in the path used for finding the PSheader and fontmetrics. 2. Crash if sluroverwarnings was set and the bar following a warning bar did not exist. 3. The -debug option wasn't behaving as documented (debug output to stderr). It was taking the next item on the command line as a file to write to. This is dangerous! It now behaves as documented. 4. PMW-Music change: when being processed by GhostScript, the widths of the short stave characters are now (incorrectly) set as long as the long stave characters. This gives a much better effect in the examples in the manual when converted to PDF. It may also give a better screen display. 5. The PostScript command "a4" was put in the output (this dates from very early PostScript printers). It seems to cause trouble with GhostScript, causing problems in the zoom window, and it doesn't seem to be necessary any more, so I have cut it out. Version 4.00 ------------ Version 4.00 is the first version ported from the RISC OS program to Unix-like systems. A lot of changes were made as part of the porting process. However, the following changes were also made to the application-level logic of the program itself. 1. Removed (commented out) code for playing. (This got added back in later - see above.) 2. Fixed a bug with very long arpeggio squiggles - buffer not big enough - which just doesn't show up on RISC OS. 3. A macro defined with arguments, but no text, didn't removed any arguments that were present when it was called. For example, if you had *Define X(1) @.... followed by &X(3) in the later text, "(3)" got left instead of being removed. 4. There was a place I forgot to record where the code was indirecting through a NULL pointer (for an empty string); on the Acorn this didn't produce an error. **** pmw-4.27/doc/pmw.10000644000222100022210000001737112247665016012013 0ustar ph10ph10.TH PMW 1 .SH NAME pmw - a program for typesetting music .SH SYNOPSIS .B pmw [options] [input file] .SH DESCRIPTION .rs .sp PMW (Philip's Music Writer) is a program for typesetting music. It is not an interactive program; instead, it reads a description of the music from a textual input file, which can be prepared by any text editor. The output from PMW is a PostScript file of page images of typeset music. This output uses the PMW-Music PostScript font, which must therefore be available for viewing or printing. A secondary output in the form of a MIDI file can be requested. A full description of PMW and its markup language is given in the reference manual. This man page just summarizes the command line options. .in 0 .SH OPTIONS .rs .TP 10 \fB-a4ona3\fR The pages are A4-sized; print them 2-up, assuming A3 paper. .TP \fB-a5ona4\fR The pages are A5-sized; print them 2-up, assuming A4 paper. .TP \fB-a4sideways\fR The paper is A4, but the printer feeds it sideways, so rotate the page images before printing. .TP \fB-c\fR \fI\fR Print \fI\fR copies. .TP \fB-debug\fR Write general debugging information to stderr (not currently very comprehensive). This option is of use only to the program maintainer. .TP \fB-drawbarlines\fR Instead of using characters from the font to print bar lines, generate PostScript drawing instructions. Some PostScript interpreters do not display the font bar line characters correctly on the screen when several of them are used to generate a long vertical line; drawing them instead may give a better result. \fB-dbl\fR is an abbreviation for \fB-drawbarlines\fR. .TP \fB-drawstavelines\fR Instead of using characters from the font to print stave lines, generate PostScript drawing instructions. Some PostScript interpreters do not display the font stave characters correctly on the screen; drawing them instead may give a better result. \fB-dsl\fR is an abbreviation for \fB-drawstavelines\fR. .TP \fB-dsb\fR [[\fI\fR,]\fI\fR,]\fI\fR Write debugging data for the bar to stderr. This option is of use only to the program maintainer. .TP \fB-dtp\fR \fI\fR Write debugging positioning data for the bar to stderr. If there is more than one movement (not likely while debugging at this level), the data is output for every bar with the given number. If the number is -1, data is output for all bars. This option is of use only to the program maintainer. .TP \fB-duplex\fR This option sets the PostScript option for duplex printing (see also \fB-tumble\fR). .TP \fB-eps\fR Write the output as encapsulated PostScript (useful if this is an illustration that is going to be included in some other document). .TP \fB-F\fR \fI\fR Search the given directory for fontmetrics files, before searching the default directory that was set up when PMW was built. .TP \fB-f\fR \fI\fR Specifies a format name, used when the input file is set up to output in several different formats. .TP \fB-H\fR \fI\fR Use the given file as the PostScript header file, instead of the default that was set up when PMW was built. .TP \fB-help\fR or \fB--help\fR Output a list of options, then stop. No file is read. .TP \fB-includefont\fR This option causes PMW to include the music font within the PostScript output that it generates. (If the PMW-Alpha font is used, that is also included.) If you use this option, there is no need to install the font(s) for GhostScript (or any other display program) to find. .TP \fB-MF\fR \fI\fR Search the given directory for music fonts, before searching the default directory that was set up when PMW was built. .TP \fB-MP\fR \fI\fR Use the given file as the MIDIperc file, instead of the default that was set up when PMW was built. This file translates between names and "pitches" for untuned percussion voices. .TP \fB-MV\fR \fI\fR Use the given file as the MIDIvoices file, instead of the default that was set up when PMW was built. This file translates voice names to MIDI voice numbers. .TP \fB-manualfeed\fR Set the `manualfeed' option in the generated PostScript. Most PostScript printers interpret this to mean that the paper should be taken from an alternate input tray or slot. Some also require the user to push a button before each page is printed. .TP \fB-midi\fR \fI\fR Write MIDI output to the given file (in addition to the normal PostScript output). The stave selection (see \fB-s\fR below) also applies to MIDI output. .TP \fB-midibars\fR \fI\fR If \fB-midi\fR is given, write only the given bars to the MIDI output. The range can be two numbers separated by a hyphen or a single number for just one bar. A single number followed by a hyphen plays from that bar to the end of the movement. \fB-mb\fR is an abbreviation for \fB-midibars\fR. .TP \fB-midimovement\fR \fI\fR For a multi-movement input file, this specifies the movement that is to be output as MIDI when \fB-midi\fR is given. The default is the first movement. \fB-mm\fR is an abbreviation for \fB-midimovement\fR. .TP \fB-norc\fR Do not read the caller's \fI.pmwrc\fR file. This must be the first option given. .TP \fB-norepeats\fR When generating a MIDI output file, do not repeat repeated sections of the music. \fB-nr\fR is an abbreviation for \fB-norepeats\fR. .TP \fB-nowidechars\fR This option stops PMW from using the 100-point wide stave characters when printing staves. Instead, staves are constructed entirely from the 10-point wide characters. This option is provided because it seems that some PostScript interpreters cannot deal correctly with the very wide characters. \fB-nw\fR is an abbreviation for \fB-nowidechars\fR. .TP \fB-o\fR \fI\fR Send the output to the given file, or, if "-" is given, to stdout. The default file name is the input file with the extension ".ps" replacing any existing extension, or being added if there is no extension. If there is no input file (input from stdin) the default output is to stdout. .TP \fB-p\fR \fI\fR Output only the specified pages. These can be individual page numbers, or pairs of numbers separated by a hyphen, to specify a range. Use commas to separate items in the list. .TP \fB-pamphlet\fR Output pages in pamphlet order. This is usually used in conjunction with \fB-a5ona4\fR or \-a4ona3\fR. .TP \fB-printadjust\fR \fI\fR \fI\fR Move the image on the page by (\fIx,y\fR) points. .TP \fB-printgutter\fR \fI\fR This option specifies a distance by which righthand (recto) page images are moved to the right, and lefthand (verso) page images are moved to the left, thus creating a "gutter" for binding when the images are printed doublesided. The \fB-printgutter\fR setting applies only when pages are being printed 1-up. It is ignored for any of the 2-up printing styles. .TP \fB-printscale\fR \fI\fR Scale the output image by \fI\fR. .TP \fB-printside\fR \fI\fR Output only odd or only even pages; \fI\fR must either be 1 or 2. .TP \fB-reverse\fR Output the pages in reverse order. .TP \fB-s\fR \fI\fR Output only the specified staves. These can be individual stave numbers, or pair of numbers separated by a hyphen, to specify a range. Use commas to separate items in the list. .TP \fB-t\fR \fI\fR Specify a transposition, in semitones. .TP \fB-tumble\fR When \fB-duplex\fR is set, \fB-tumble\fR causes the PostScript option for "tumbled" duplex printing. .TP \fB-V\fR or \fB--version\fR Output the PMW version number to stdout, then stop. No file is read. .TP \fB-v\fR Output verification information about the typesetting to stderr. . .SH EXAMPLES .rs .sp pmw myscore pmw -format A5 -a5ona4 -pamphlet myscore pmw -s 3 -o quartet.ps-viola quartet.pmw . .SH AUTHOR .rs .sp Philip Hazel Email local part: \fIph10\fR Email domain: \fIcam.ac.uk\fR .sp .in 0 Last updated: 26 October 2013 .br Copyright (c) 2013 Philip Hazel pmw-4.27/doc/examples/0000755000222100022210000000000012247665016012733 5ustar ph10ph10pmw-4.27/doc/examples/ex260000644000222100022210000000016712247665016013446 0ustar ph10ph10unfinished nocheck notime notespacing *1.2 [stave 1 treble 1] "\*136\-"/ol/"\*96\" E'+_ | "#"/ol/r8 E'R | [endstave] pmw-4.27/doc/examples/ex480000644000222100022210000000103012247665016013440 0ustar ph10ph10bracket notespacing *1.05 stavespacing 1/36 systemgap 40 textfont extra 1 "Courier" notime unfinished nocheck [stave 1 treble 1] {/a "\x1\{gab}"/m gab} | {2 "\x1\{2 g-a-}"/m g-a-} [space 6] | {7 "\x1\{7 f-g-...}"/m f-g-a-b-f-a-g-} | {3/7 "\x1\{3/7 f-g-...}"/m f-g-a-b-f-a-g-} | {11 "\x1\{11 g-g-...}"/m g-g-g-g-g-g-g-g-g-g-g-} | {3/11 "\x1\{3/11 g-g-...}"/m g-g-g-g-g-g-g-g-g-g-g-} | {12/11 "\x1\{12/11 g-g-...}"/m g=g=g=g=g=g=g=g=g=g=g=} [space 2] | [endstave] [stave 2 bass 0] gg | g-g-g- | gg | ggg | gggg | ggg | ggg | [endstave] pmw-4.27/doc/examples/ex500000644000222100022210000000017012247665016013435 0ustar ph10ph10unfinished righttoleft [stave 1 treble 1] "\*c\\bf\104 = "/a/ts/u2 "m\bi\f" A #g. a- | "abc" c'-b-a-g-; G | [endstave] pmw-4.27/doc/examples/ex390000644000222100022210000000157712247665016013460 0ustar ph10ph10nocheck notespacing *1.9 notime textfont extra 1 "Courier" textsizes 10 8 underlaysize 8 unfinished [stave 1 treble 1 text underlay underlayfont extra 1] "g\\/\\ g\\//\\ g\\///\\ g\\~\\ g\\~|\\ g\\~~\\ g\\~~|\\" g\/\ g\//\ g\///\ g\~\ g\~|\ g\~~\ g\~~|\ "d'\\.\\ e'\\..\\ d'.\\:\\ c'.\\::\\ e'\\\45\\\ e'\\>\\ e'\\'\\" d'\.\ e'\..\ d'.\:\ c'.\::\ e'\-\ e'\>\ e'\'\ | "(e\\ar\\gbe') (e\\ard\\gbe') (e\\aru\\gbe')" (e\ar\gbe') (e\ard\gbe') (e\aru\gbe') "e'\\d\\ e'\\f\\ g\\f!\\ a\45\\\g\\g a\45\\\g/\\g" e'\d\ e'\f\ g\f!\ a-\g\g a-\g/\g "d'\\o\\ a\\sd\\ d'\\su\\" d'\o\ a\sd\ d'\su\ [sghere +10] | "g\\sl4\\ g\\sl\45\4\\ (e\\sp\\gbe') e'\\t\\ e'\\t|\\" g\sl4\ g\sl-4\ (e\sp\gbe') e'\t\ e'\t|\ "c'\\tr\\ c'\\tr#\\ c'\\tr$\\ c'\\tr%\\ c'\\u\\ c'\\v\\ c'\\V\\" c'\tr\ c'\tr#\ c'\tr$\ c'\tr%\ c'\u\ c'\v\ c'\V\ pmw-4.27/doc/examples/ex420000644000222100022210000000063512247665016013444 0ustar ph10ph10justify top left nocheck notespacing *1.7 notime unfinished [stave 1 noclef] [alto] q [baritone] q [bass] q [cbaritone] q [contrabass] q [deepbass] q [hclef] q [mezzo] q [soprabass] q [soprano] q [tenor] q [treble] q [trebledescant] q [trebletenor] q [trebletenorb] qq |? [endstave] [newmovement thisline] clefstyle 3 justify top right notespacing *1.5 notime [stave 1 noclef] [alto] qq- [move -12] [bass] |? pmw-4.27/doc/examples/ex490000644000222100022210000000060112247665016013444 0ustar ph10ph10bracket justify top left notespacing *1.5 stavespacing 1/36 systemgap 40 textfont extra 1 "Courier" time 3/4 unfinished [stave 1 treble 1] {3/5 "\x1\{3/5 ggggg}"/m ggggg} | {6/5/a "\x1\{6/5 g-g-g-g-g-}"/m g-g-g-g-g-} | {3/5 "\x1\{3/5 ggggg}"/m ggggg} | [endstave] [stave 2 bass 0] g "correct"/c gg | g-g- "correct"/c/r10 g-g-g-g- | g-g- "incorrect"/c/r10 g-g-g-g- | [endstave] pmw-4.27/doc/examples/ex460000644000222100022210000000034212247665016013443 0ustar ph10ph10notime nocheck unfinished [stave 1 treble 1] "\rm\Style 0" #-g $-g |? [endstave] [newmovement thisline] halfsharpstyle 1 halfflatstyle 1 notime [stave 1 " " noclef 1] "\rm\Style 1" #-g $-g |? [endstave] pmw-4.27/doc/examples/ex510000644000222100022210000000013612247665016013440 0ustar ph10ph10unfinished nocheck notime [stave 1 treble 1] [omitempty] ggg |? [skip 3] |? aaa | [endstave] pmw-4.27/doc/examples/ex120000644000222100022210000000035112247665016013434 0ustar ph10ph10textfont extra 1 "Courier" notime nocheck unfinished [stave 1 treble 1 text underlay underlayfont extra 1] "g_ g\45\ G_/a g (fac'f')_ (fac'f') (fac'f')_/b (fac'f')" g_ g- G_/a g (fac'f')_(fac'f') (fac'f')_/b (fac'f') [endstave] pmw-4.27/doc/examples/ex070000644000222100022210000000046012247665016013441 0ustar ph10ph10textfont extra 1 "Courier" systemgap 50 notime nocheck unfinished [stave 1 treble 1 text underlay underlayfont extra 1] [space 8] "(cg) (C'.G.$E.C.) (f\45\g\45\) (c'\\>\\$e\35\fa)" (cg) (C'.G.$E.C.) (f-g-) (c'\>\$e#fa) "(G+\\f\\G'+) (g\45\b\45\) (a\45\c'\45\)##" (G+\f\G'+) (g-b-)(a-c'-) [endstave] pmw-4.27/doc/examples/ex290000644000222100022210000000065312247665016013451 0ustar ph10ph10unfinished nocheck notime notespacing *1.2 draw blip linegapx linegapy moveto 0 linegapx 2 mul lineto linegapx neg linegapy neg lineto 0.3 setlinewidth stroke enddraw draw ped 0 0 moveto "\**163\ " show enddraw *define ped [line/=P/b/h/ol/d4 linegap/h0/w30/draw ped] *define blip [linegap/=P/draw blip] *define ep [endline/=P] [stave 1 bass 0] r- &ped %a &blip b-_; b-; e &blip a`-_ | a`- G` &ep r-r | pmw-4.27/doc/examples/ex360000644000222100022210000000025212247665016013442 0ustar ph10ph10unfinished draw astline leftbarx -15 moveto leftbarx neg "*" stringwidth pop div 0.5 add { "*" show } repeat enddraw [stave 1 bass 0] gddg | de [draw astline] fg | pmw-4.27/doc/examples/ex030000644000222100022210000000062012247665016013433 0ustar ph10ph10textfont extra 1 "Courier" nospreadunderlay notespacing *1.6 notime nocheck unfinished [stave 1 treble 1 text underlay underlayfont extra 1] "^g\45\ ^a\45\ ^b\45\ #c'\45\;" g-a-b-c'-; [space 2] "^g\45\ #a\45\;" g-a-; [space 2] "#b\45\;" b-; [space 2] "c'\45\;" c'-; "^g\45\##r\45\ ^b\45\ #c'\45\;" [space 2] g-r-b-c'-; "^g\61\ ^a\61\ ^g\61\, ^g\61\ ^a\61\ ^g\61\" g=a=g=, g=a=g=; [endstave] pmw-4.27/doc/examples/ex100000644000222100022210000000022212247665016013427 0ustar ph10ph10notespacing *1.4 unfinished nocheck notime [stave 1 treble 1 text underlay] [space 8] "music ###music music### mu^sic" G+ G+ G+ G+ [endstave] pmw-4.27/doc/examples/ex520000644000222100022210000000015512247665016013442 0ustar ph10ph10nocheck notime unfinished [stave 1 treble 1] r [slur/co3/lu2] G`+ [slurgap/w30/r10] | [key e$] c G' [es] | pmw-4.27/doc/examples/ex450000644000222100022210000000036012247665016013442 0ustar ph10ph10*define 1 "\rm\\sc\1"/b/c *define 2 "\rm\\sc\2"/b/c *define 3 "\rm\\sc\3"/b/c *define 4 "\rm\\sc\4"/b/c notime unfinished [stave 1 alto] &1 d- &3 c'= &2 b=; &4 d'- &3 f-; &1 d= &2 b= &3 f= &4 d'=; &2 b= &3 f= &1 d- [space 4] [endstave] pmw-4.27/doc/examples/ex050000644000222100022210000000046512247665016013444 0ustar ph10ph10textfont extra 1 "Courier" notime nocheck unfinished [stave 1 treble 1 text underlay underlayfont extra 1] [ulhere -8] "{f'\45\ g'\45\ f'\45\}; {/a#f'\45\ g'\45\ f'\45\};" {f'-g'-f'-}; {/a f'-g'-f'-}; "{/b#f'\45\ g'\45\ f'\45\}; g\45\ {/a#a\61\ c'\61\ a\61\}" {/b f'-g'-f'-}; g-{/a a=c'=a=} [endstave] pmw-4.27/doc/examples/ex110000644000222100022210000000023312247665016013432 0ustar ph10ph10notespacing *1.2 nocheck notime [stave 1 treble 1] "X"/a g "X"/a/u4 g "X"/a/l6 g | "rall."/a gab | "\bi\ff"/b A. | G. "\rm\May, 1994"/b/e | [endstave] pmw-4.27/doc/examples/ex340000644000222100022210000000026512247665016013444 0ustar ph10ph10unfinished draw dot 0 headbottom 2 linebottom sub add moveto "\mf\?" show enddraw *define bd() [notes off draw dot] &&1-; [notes on] time 2/4 [stave 1 treble 1] ra | &bd(a) b-g | pmw-4.27/doc/examples/ex170000644000222100022210000000063312247665016013444 0ustar ph10ph10notespacing *1. time 3/4 bracket brace 1-4 stavespacing 1/0 2/48 3/0 [staff 1 "Piano"/m treble 1 stems up ties above] Ae' | d'_af | e_fe | D. | [endstaff] [staff 2 treble 1 stems down ties below] e_da | A#d | [smove 6]%\\ f'\\~\\ f'\\~|\\ f'\\/\\ f'\\//\\ f'\\///\\" f\.\ f\..\ f\-\ f\>\ f\~\ f\~|\ f\/\ f\//\ f\///\ [space -8] | [space 8] "#f'\\v\\ f'\\V\\ f'\\'\\ f'\\f\\ f'\\o\\" f\v\ f\V\ f\'\ f\f\ f\o\ "f'\\t\\ f'\\tr\\ f'\\u\\ f'\\d\\" f\t\ f\tr\ f\u\ f\d\ [space -8] | [endstave] pmw-4.27/doc/examples/ex040000644000222100022210000000045512247665016013442 0ustar ph10ph10textfont extra 1 "Courier" notime nocheck unfinished [stave 1 treble 1 text underlay underlayfont extra 1] [ulhere -8] "{a\45\ b\45\ a\45\} {f' g' f'}" {a-b-a-} {f'g'f'} "{g' f'\45\}; {f\61\ g\61\ a\45\ b\45\}" {g'f'-}; {f=g=a-b-} "{g. a\45\ g} {g\45\. a\61\ b\45\}" {g.a-g} {g-.a=b-} [endstave] pmw-4.27/doc/examples/ex300000644000222100022210000000035612247665016013441 0ustar ph10ph10heading 12.5 " This 10-point font is neither stretched nor compressed." 15 heading 12.5/1.2 " This 10-point font is stretched horizontally by 1.2." 15 heading 12.5/0.8 " This 10-point font is compressed horizontally by 0.8." pmw-4.27/doc/examples/ex280000644000222100022210000000017312247665016013445 0ustar ph10ph10unfinished nocheck notime notespacing *1.2 [stave 1 treble 1] [line/a/h linegap/h/"unis. \it\ad lib"] efge | bag [el] r | pmw-4.27/doc/examples/ex250000644000222100022210000000017612247665016013445 0ustar ph10ph10unfinished nocheck notime notespacing *1.2 [stave 1 treble 1] "\it\cresc.-"/ul/" ."/u1.5 gc'ga | gf "#"/ul gr | [endstave] pmw-4.27/doc/examples/ex160000644000222100022210000000020312247665016013434 0ustar ph10ph10notespacing *1.3 notime nocheck unfinished [stave 1 treble 1] < abc'd' < | February 2009 LICENCE ------- This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -- pmw-4.27/MIDIperc0000644000222100022210000000317112247665016011671 0ustar ph10ph10# This file contains translations between names and MIDI "pitches" # for untuned percussion voices. Lines that begin with #, and blank # lines, are ignored. # The default file supplied with PMS contains associations that # correspond to the General MIDI specification. # Lines must begin with three digits, followed by a space, and then # the instrument name, without any trailing spaces. # The following appear on the Yamaha TG100: 029 scratch push 030 scratch pull 031 stick 032 click noise 033 metronome click 034 metronome bell # General MIDI: 035 acoustic bass drum 036 bass drum 1 037 side stick 038 acoustic snare 039 hand clap 040 electric snare 041 low floor tom 042 closed hi hat 043 high floor tom 044 pedal hi hat 045 low tom 046 open hi hat 047 low mid tom 048 hi mid tom 049 crash cymbal 1 050 high tom 051 ride cymbal 1 052 chinese cymbal 053 ride bell 054 tambourine 055 splash cymbal 056 cowbell 057 crash cymbal 2 058 vibraslap 059 ride cymbal 2 060 hi bongo 061 low bongo 062 mute hi conga 063 open hi conga 064 low conga 065 high timbale 066 low timable 067 high agogo 068 low agogo 069 cabasa 070 maracas 071 short whistle 072 long whistle 073 short guiro 074 long guiro 075 claves 076 hi wood block 077 low wood block 078 mute cuica 079 open cuica 080 mute triangle 081 open triangle # The following are not listed as General Midi but are on the # Casio CTK-650 keyboard (names invented): 082 shake 083 morris bells 084 drumsticks 085 short disc wipe 086 double disc wipe 087 long disc wipe # The following are on the Yamaha TG100: 082 shaker 085 castanets 086 taiko-drum high 087 taiko-drum low # End of MIDI names file. pmw-4.27/mkinstalldirs0000755000222100022210000000132612247665016013160 0ustar ph10ph10#! /bin/sh # mkinstalldirs --- make directory hierarchy # Author: Noah Friedman # Created: 1993-05-16 # Public domain # $Id: mkinstalldirs,v 1.12.2.1 1998/12/26 17:32:14 bje Exp $ errstatus=0 for file do set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` shift pathcomp= for d do pathcomp="$pathcomp$d" case "$pathcomp" in -* ) pathcomp=./$pathcomp ;; esac if test ! -d "$pathcomp"; then echo "mkdir $pathcomp" mkdir "$pathcomp" || lasterr=$? if test ! -d "$pathcomp"; then errstatus=$lasterr fi fi pathcomp="$pathcomp/" done done exit $errstatus # mkinstalldirs ends here pmw-4.27/NOTICE0000644000222100022210000000140012247665016011247 0ustar ph10ph10PHILIP'S MUSIC WRITER --------------------- Copyright (c) 2003 - 2013 Philip Hazel This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -- pmw-4.27/MIDIvoices0000644000222100022210000000717512247665016012240 0ustar ph10ph10# This file contains translations between names and MIDI voice # numbers. Lines that begin with #, and blank lines, are ignored. # The default file supplied with PMS contains associations that # correspond to the General MIDI specification. However, the names # of the instruments don't seem to be standardised, especially # for some of the "effects". Hence more than one name is given for # some of them. I have used the names from the Casio CTK-650 for the # effects. # ...Names from the Yamaha TG100 added by Richard Hallas. # Lines must begin with three digits, followed by a space, and then # the instrument name, without any trailing spaces. 001 piano 001 acoustic grand piano 002 hard piano 002 bright acoustic piano 003 studio piano 003 electric grand piano 004 honky-tonk piano 005 electric piano 1 006 electric piano 2 007 harpsichord 008 clavelectro 008 clavichord 009 celesta 010 glockenspiel 011 music box 012 vibraphone 013 marimba 014 xylophone 015 tubular bells 016 dulcimer 017 electric organ 017 drawbar organ 018 jazz organ 018 percussion organ 019 rock organ 020 church organ 021 reed organ 022 accordion 023 harmonica 024 bandoneon 024 tango accordion 025 gut guitar 025 acoustic nylon guitar 026 acoustic guitar 026 acoustic steel guitar 027 jazz guitar 027 electric jazz guitar 028 electric guitar 028 electric clean guitar 029 mute guitar 029 electric muted guitar 030 overdriven guitar 030 distortion guitar 1 031 distortion guitar 2 032 guitar harmonics 033 wood bass 033 acoustic bass 034 electric bass 1 034 electric bass fingered 035 electric bass 2 035 electric bass picked 036 fretless bass 037 slap bass 1 038 slap bass 2 039 synth bass 1 040 synth bass 2 041 violin 042 viola 043 cello 044 contrabass 045 tremolo strings 046 pizzicato strings 047 harp 047 orchestral harp 048 timpani 049 strings 1 049 strings ensemble 1 050 strings 2 050 strings ensemble 2 051 synth strings 1 052 synth strings 2 053 choir 053 choir aahs 054 moon voice 054 voice oohs 054 choir oohs 055 synth voice 056 orchestra hit 056 orchestral hit 057 trumpet 058 trombone 059 tuba 060 mute trumpet 060 muted trumpet 061 french horn 062 brass 062 brass section 063 synth brass 1 064 synth brass 2 065 soprano sax 065 soprano saxophone 066 alto sax 066 alto saxophone 067 tenor sax 067 tenor saxophone 068 baritone sax 068 baritone saxophone 069 oboe 070 english horn 071 bassoon 072 clarinet 073 piccolo 074 flute 075 recorder 076 pan flute 077 blown bottle 077 bottle blow 078 shakuhachi 079 whistle 080 ocarina 081 synth lead 1 081 square 082 synth lead 2 082 saw tooth 083 synth lead 3 083 calliope 084 synth lead 4 084 power lead 084 chiff 085 synth lead 5 085 metal lead 085 charang 086 synth lead 6 086 angel choir 086 voice 087 synth lead 7 087 fifth lead 087 fifths 088 synth lead 8 088 bass lead 088 bass+lead 089 fantasy 089 new age 090 warm strings 090 warm 091 synth ensemble 091 polysynth 092 space chorus 092 choir 093 glass harmonica 093 bowed 094 illusion 094 metallic 095 country farm 095 halo 096 synth pad 096 sweep 097 pearl drop 097 rain 098 soundtrack 099 crystal 100 atmosphere 101 brightness 102 labyrinth 102 goblins 103 echoes 104 cosmic sound 104 sci-fi 105 sitar 106 banjo 107 shamisen 108 koto 109 thumb piano 109 kalimba 110 bagpipe 110 bag pipe 111 fiddle 112 shanai 113 bells 113 tinkle bell 114 agogo 115 steel drum 116 wood block 116 woodblock 117 taiko 117 taiko drum 118 tom 118 melodic tom 119 electric tom 119 synth drum 120 reverse cymbal 121 guitar fret noise 122 breath 122 breath noise 123 seashore 124 bird 124 bird tweet 125 telephone 125 telephone ring 126 helicopter 127 applause 128 gunshot 128 gun shot # End of MIDI voice names file. pmw-4.27/contrib/0000755000222100022210000000000012247665016012010 5ustar ph10ph10pmw-4.27/contrib/README0000644000222100022210000000066012247665016012672 0ustar ph10ph10All the files in this directory except two are text files, and most of them are examples of PMW input files. Comments explain what they do. The non-text files are ConcatArabChars.zip, which contains a JavaScript application for converting Arabic words into suitable PMW escape sequences, and CustomBuiltKeySig.zip, which contains another JavaScript application for generating PMW escape sequences for non-standard key signatures. pmw-4.27/contrib/AnOssia0000644000222100022210000000027312247665016013272 0ustar ph10ph10staffsize 2/0.8 suspend 2 bracket breakbarlines 1 staffspacing 1/24 [staff 1 " " treble 1] [20] R! | [endstaff] [staff 2 omitempty] [9] |[noclef 1] C C' | [8] | C C' | [endstaff] pmw-4.27/contrib/MacroCollection0000644000222100022210000000414212247665016015011 0ustar ph10ph10@ This file contains a number of macros that are described in the manual. key C time C systemgap 56 *define mf "\it\m\bi\f"/b *define hang() [slur/rr15&&2] &&1 [es] *define s8u "\it\8va-"/ol/" -| \mf\\159\"/u0.3/"\it\8"/s2 *define e8u "#"/ol/r8 *define s8d "\it\8va-"/ul/" -| \mf\\161\"/d0.3/"\it\8"/s2 *define e8d "#"/ul/r8 draw triangle 3 -4 moveto @ move to apex -3 -6 rlineto @ line to bottom left 6 0 rlineto @ horizontal line to bottom right -3 6 rlineto @ line back to apex fill @ fill it in (solid triangle) enddraw draw box -2 headleft sub accleft sub stembottom 1.3 sub moveto stemtop stembottom sub 2.6 add dup 0 exch rlineto headleft headright add accleft add 4 add dup 0 rlineto exch 0 exch neg rlineto neg 0 rlineto stroke enddraw draw bracket -2 headleft sub accleft sub headbottom linebottom add moveto -2 0 rlineto -4 headleft sub accleft sub headtop linetop sub lineto 2 0 rlineto stroke enddraw draw save headbottom originx enddraw draw connect originx sub 3 add dup 3 add 2 div 3 1 roll exch 2 sub moveto -12 lineto 3 headbottom 2 sub lineto stroke enddraw draw blip linegapx linegapy moveto 0 linegapx 2 mul lineto linegapx neg linegapy neg lineto 0.3 setlinewidth stroke enddraw draw ped 0 0 moveto "\**163\ " show enddraw *define ped [line/=P/b/h/ol/d4 linegap/h0/w30/draw ped] *define blip [linegap/=P/draw blip] *define ep [endline/=P] [staff 1 treble 1] &mf/ts "\*c\ \bi\= 88"/a/ts/u4/c g [draw triangle] g &hang(g,/ru4) &hang(g,/b/rd4) || [draw box] $a [draw box] f' [draw box] (f-g-); [space 10] [draw box] (f'-g'-); [space 6] [draw bracket] (#f-c'-); [space 6] [draw bracket] (g-#d'-) || [draw save] e c'-g-a-b- [draw connect] a || "\it\cresc-==en-==do"/ul gc'ga | gfgr | "\it\decresc.-"/ul gfef | G "#"/ul/r6 G || "\it\cresc.-"/ul/" ."/u1.5 gc'ga | gf "#"/ul gr || "\*136\-"/ol/"\*96\" E'+_ | "#"/ol/r8 E'R || @ trill with a wiggly line &s8u c'.d'-e'd' | g'g' &e8u G' | @ ottava alta &s8d c'.d'-e'd' | g'g' &e8d G' || @ ottava bassa [bass 0] r- &ped %a &blip b-_; b-; e &blip a`-_ | a`- G` &ep r-r | @ piano pedal [endstaff] pmw-4.27/contrib/pmw.vim0000644000222100022210000000455412247665016013340 0ustar ph10ph10" Vim syntax file " Filename: pmw.vim " Version: 1.0 " Maintainer: Elias Dorneles da Silveira Junior " URL: http://www.inf.ufsm.br/~eljunior/pmw/pmw.vim " Installation: Add in your ~/.vimrc the following line: " au BufNewFile,BufRead *.pmw set ft=pmw " """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" syn clear syn case ignore """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "MISC: syn keyword pmwTodo TODO FIXME XXX contained syn match pmwComment '^@.*$' contains=pmwTodo syn match pmwComment '[|]' syn match pmwNumber '\<\d\+\([,.]\d\+\)\{,1}\>' syn match pmwPercent '\<\d\+\([,.]\d\+\)\{,1}%' " mark the blank unneeded syn match pmwBlank '\s\+$' syn match pmwBar '^\s*[_=-]\{20,}\s*$' syn match pmwSpecial '[][(){}®]' syn match pmwSpecial '\<\(US\|R\)\$' """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "URL EMAIL: syn match pmwEmail '\<[A-Za-z0-9_.-]\+@\([A-Za-z0-9_-]\+\.\)\+[A-Za-z]\{2,4}\>\(?[A-Za-z0-9%&=+.,@*_-]\+\)\=' syn match pmwUrl '\<\(\(https\=\|ftp\|news\|telnet\|gopher\|wais\)://\([A-Za-z0-9._-]\+\(:[^ @]*\)\=@\)\=\|\(www[23]\=\.\|ftp\.\)\)[A-Za-z0-9%._/~:,=$@-]\+\>/*\(?[A-Za-z0-9/%&=+.,@*_-]\+\)\=\(#[A-Za-z0-9%._-]\+\)\=' """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" "FONT BEAUTIFIERS: syn match pmwBold '\*[^*[:blank:]].\{-}\*'hs=s+1,he=e-1 syn match pmwMonospace "`[^`]\+`"hs=s+1,he=e-1 " max: two lines syn match pmwParentesis "([^)]\+\(\n\)\=[^)]*)" contains=pmwUrl,pmwEmail syn match pmwQuotes '"[^"]\+\(\n\)\=[^"]*"'hs=s+1,he=e-1 " max: two words syn match pmwQuotes "'\w\+ \?\w\+'"hs=s+1,he=e-1 """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " color definitions (specific) hi pmwBar term=bold cterm=bold gui=bold hi pmwBold term=bold cterm=bold gui=bold hi pmwItalic term=italic cterm=italic gui=italic " color definitions (using Vim defaults) hi link pmwComment Comment hi link pmwQuotes String hi link pmwBlank Error hi link pmwNumber Number hi link pmwPercent Number hi link pmwTodo Todo hi link pmwEmail PreProc hi link pmwUrl PreProc hi link pmwMonospace Special hi link pmwSpecial Special hi link pmwParentesis Statement " let b:current_syntax = 'pmw' " vim:tw=0:et pmw-4.27/contrib/WipeCaes0000644000222100022210000000643112247665016013437 0ustar ph10ph10@ Here is a suggestion as to how to do caesurae that wipe out the stave @ lines underneath them. @ This first function arranges to "erase" a rectangular area. Actually, @ it's more like covering it with white paint. This means you can also use @ it to cover rectangles with other shades grey or black. @ You can call this function anywhere in a stave for all sorts of uses, @ not only the caesuara. I'll show another examples below. When you call @ this, you must give it five numbers. The first two specify the position @ of the rectangle, relative to the next note and the bottom of the stave. @ The next two numbers give the width and height of the rectangle, @ measured from the fixed position. They may be positive or negative. The @ fifth number specifies the colour of the paint, with 0 being black and 1 @ being white. A number like 0.5 is a mid shade of gray. @ You must call this function with "overdraw" rather than "draw" to @ ensure that it is called after everything else has been drawn. Otherwise @ other things (especially stave lines) may go on top of what it draws. @ See the examples in the stave below. draw erase /grey exch def /bh exch def /bw exch def moveto 0 bh rlineto bw 0 rlineto 0 bh neg rlineto bw neg 0 rlineto grey setgray fill 0 setgray enddraw @ This function uses the erase function to clear a rectangle, and then @ draws two diagonal lines in the space. This function takes only four @ numbers, the position and size of the rectangle. The width and height @ are expected to be positive, so the position is assumed to be the @ bottom lefthand corner. You can fiddle with the numbers to change @ the size of the lines and their thickness. draw caesura /h exch def /w exch def /y exch def /x exch def x y w h 1 draw erase @ The first line starts 1 point in from the left. Increase the @ number to move it to the right. x 1 add y moveto @ The line ends up 3 points further to the right and 7 points up. @ Change these numbers to vary its length and slope. 3 7 rlineto @ The second line starts 4 points in from the left. x 4 add y moveto @ It has the same length and slope as the first line. You should @ probably keep these values in step. 3 7 rlineto @ The 0.5 here specifies the thickness of the line. Make it bigger @ if you want a fatter line. 0.5 setlinewidth stroke enddraw @ This macro sets up an easy way to call the custom caesuara. It should @ be called before the end of a bar. It positions the white rectangle 10 @ points to the left, and 13 points above the bottom of the stave (so it @ wipes out only the top line). The size of the rectangle is 7 points @ wide and 8 points high. An extra 2 points of space are inserted in the @ bar. You may need to change this. *define caes [space 2 overdraw -10 13 7 8 caesura] @ The idea is that you fiddle with the numbers above until you get it @ looking how you want it. Then just use &caes whenever you need it, and @ they will all look the same. @ OK, now we've defined all this stuff, let's use it... [stave 1 treble 1] @ These bars show various ways of "painting over" rectangles R! [overdraw 0 0 8 8 1 erase] | R! [overdraw 0 0 -8 -8 0.5 erase] | rr [overdraw -6 6 16 4 0.75 erase] rr | @ This bar shows a regular caesura and the custom one aaa//a &caes | R! | [endstave] pmw-4.27/contrib/Vsquiggle0000644000222100022210000000405212247665016013702 0ustar ph10ph10@ This is a demonstration file showing how to draw a squiggly line vertically @ through a system, with a bit of white space on either side, in order to @ indicate that two bars are not consecutive. It is easiest to position it @ by reference to a bar line (which gets wiped out). The drawing function @ must be called from the bottom stave of the system. @ Philip Hazel, March 1997 heading "" draw squiggle systemdepth 19 add /h exch def @ h is the total height including the top system @ plus extra to cover the width of the top @ the and bottom stave lines. /w 12 def @ w is width of white space required. w 2 div neg -2 moveto 0 h rlineto @ Define rectangle to whitewash. w 0 rlineto 0 h neg rlineto w neg 0 rlineto 1 setgray fill @ Whitewash it. 3 -3 moveto @ Squiggle prints 3 points to the left, @ so move it 3 points right to print at @ our origin, and start it a bit below. h 2 add 4 div 1 add @ Compute number to print (each is 4 pts high). { "\*145\"/c show 0 4 rmoveto } @ Print the squiggly line by repeated printing; repeat @ the /c prevents the current point moving @ automatically because if that is done, rounding @ errors build up and the line ends up too short, @ so instead we explicitly advance 4 points each time. enddraw [stave 1 treble 1] gggg | gggg || [endstave] [stave 2 bass 0] gggg [space 4 overdraw squiggle] | [space 8] gggg || [endstave] [newmovement] heading "Just to prove it works for any system" [stave 1 treble 1] gggg | gggg || [endstave] [stave 2 treble 1] gggg | gggg || [endstave] [stave 3 alto 1] gggg | gggg || [endstave] [stave 4 bass 0] gggg [space 4 overdraw squiggle] | [space 8] gggg || [endstave] pmw-4.27/contrib/HandBells0000644000222100022210000001044312247665016013571 0ustar ph10ph10@ These are some drawing functions for handbell signs. (The circle is a @ general function also present in the circles file.) heading "" @ This function draws a circle. It must be called with four values on @ the stack: the thickness of the line, the radius, and the coordinates @ of the centre. For example: @ heading draw 0.4 20 24 0 circle @ The variables xx1 - xx4 are used as local variables. draw circle moveto 1.414 div dup 0.6 mul /xx1 exch def dup 1.4 mul /xx2 exch def dup 0.5 mul /xx3 exch def dup 2.0 mul /xx4 exch def neg dup rmoveto xx1 xx3 neg xx2 xx3 neg xx4 0 rcurveto xx1 xx1 xx1 xx2 0 xx4 rcurveto xx1 neg xx3 xx2 neg xx3 xx4 neg 0 rcurveto xx1 neg xx1 neg xx1 neg xx2 neg 0 xx4 neg rcurveto setlinewidth stroke enddraw @ Damp Sign: @ Three arguments: x and y position of the centre, and the @ scale, which is the length from the centre to the end of @ the cross arms. draw dampsign /s exch def @ s is the scale translate 0 s moveto 0 s 2 mul neg rlineto s 0 moveto s 2 mul neg 0 rlineto 0.3 setlinewidth stroke 0.3 s 0.66 mul 0 0 draw circle 0.3 s 0.33 mul 0 0 draw circle enddraw @ Echo: @ Eight arguments: x and y position of the centre of the semicirle, the @ radius of the semicircle, the length of the left-hand extension, the @ length of the right-hand extension, the width of the arrow, the @ length of the arrow, and the width of the line. draw echo /w exch def @ line width /al exch def @ arrow length /aw exch 0.5 mul def @ 1/2 arrow width /rl exch def @ right extension /ll exch def @ left extension /r exch def @ radius translate @ to centre of semicircle r neg 0 moveto 0 ll rlineto @ draw left extension r 0 moveto 0 rl rlineto currentpoint @ draw right extension w setlinewidth stroke @ vertical lines moveto aw 0 rlineto aw neg al rlineto @ triangle aw neg al neg rlineto fill r neg 0 moveto @ curved bit 0 r 1.4 mul neg r 2 mul r 1.4 mul neg r 2 mul 0 rcurveto stroke enddraw @ Gyro: @ Three arguments: x and y position of the centre of the cirle, and the @ scale, which is the radius of the semicircle. draw gyro /r exch def /t r 0.2 mul def translate 0.3 r 0 0 draw circle currentgray currentlinewidth 0 r moveto r 0.25 mul neg 0 r 0.4 mul neg r 0.03 mul neg r 0.8 mul neg r 0.4 mul neg rcurveto 1 setgray 1 setlinewidth stroke setlinewidth setgray 0 r 0.99 mul t sub moveto 0 t 2 mul rlineto t 2.5 neg t neg rlineto t 2.5 t neg rlineto fill enddraw @ Martellato: @ Three arguments: x and y position of the tip, plus a scale value, @ which is half the width of the triangle. draw mart /s exch def translate 0 0 moveto s s 3 mul rlineto s 2 mul neg 0 rlineto fill enddraw @ Macro to call signs with default positioning *define ds(24,6) [draw 3 &&1 &&2 dampsign] @ Eight arguments: x and y position of the centre of the semicirle, the @ radius of the semicircle, the length of the left-hand extension, the @ length of the right-hand extension, the width of the arrow, the @ length of the arrow, and the width of the line. @ Macro argument gives vertical position *define echo(24) [draw 3 &&1 1.6 2 8.5 3 3 0.3 echo] @ | | | | | | | | @ | | | | | | | -> width of line @ | | | | | | ----> length of arrow @ | | | | | ------> width of arrow @ | | | | ---------> right-hand length @ | | | ------------> left-hand length @ | | ---------------> radius @ | -------------------> y coordinate @ ----------------------> x coordinate *define gyro(24,5) [draw 3 &&1 &&2 gyro] *define mart(24,2) [draw 3 &&1 &&2 mart] @ Testing... Magnification 1.5 [stave 1 treble 1] g &ds g &ds g &echo g | &echo(4) q &gyro g &mart gg | [endstave] pmw-4.27/contrib/ConcatArabChars.zip0000644000222100022210000000563512247665016015523 0ustar ph10ph10PKÅ4­:åÙ-Ö‘ì ConcatArabChars.jsUT ¢@ JƒÊ'JUxõõÕY]sÓ8}N~…¦LjÉŸ!-3-Ì.;”å£Ìì°mÜÄm<¤I7vè²LÿûJ²¤#ËqZPnt®Î=ºÖ½¶'ËEQ’r–=_N³‚½=ây$/–âQr™/„òÏ‹œÿOÉu>ížv;§;gg£èìlg@î„»—éõ©ÂÄæûÄŒê¶ s8Ïnfäu:jäHÏ¢žgŽÑÆÊUÉáÅòsVy Ål†¡c­|ü•ÞÚ¼©çcV€¡cm®”Í—·ÚGˆÙ ††±ññ1­/@©‡ùŽÕZ^á(‚£ M=õ îH/FÁ“‚œk­@R¾I«‹uiÀf7)SŠxéÈ+Mš 4h~˜1(Á@™!Ÿ~ϯÊ+Ûçƒ,ˆõR>XùÐ’¼2}D탠k­P/Ò¹B €•kU¨`P+@\®µ‚½× Ä ×ZþNó…†AãP&€ò'"„ CÄBù“``b…tCh?J§•#k°pÅŒX½"¬n„ë<Ò*F#²ÙrD5*†1üÇ CÚÇ#Æ 1ÈÆÃ,qùGã!Lb­Þ „ùMsM K‚•ÐN Ë»ôR£ Kbù뺼2¨ta¸Ž Ëqª.k†áœe8 ™u@¿Î *Â÷# c ÁðϵÚ†#˜áTe8k™uª¾L5¬pª6¬¦úh¨0kUÇZ¯™ÿë•^'+ÃqÊp3ë8þ¨@¾™Ø:RéM:QÅÕ7!µŽô>³\õÈðhéD,ã´LÕàÊiéCõú0\›­#ÃqeÁÌ·Ž,’ cBoY ƤBëÈ¢§”0ß·ŽôyŠV SëH–ŸtΣT¶ŽT®Ò‹|Bž/M\¨­£ô$»Î'ËùR¯lÂiÕàïÖYQæË…èK>U.P;[G5on²E¾¸"oÓU¶à­q‘Ê‘¹šZGuæËb³#™äƒA5ÛSÆ‘m¤•±*šÚÈ”‘ÚF_™m ”Ñ·¡2¶1RÆÐ6ÆÊÙÆDce”µ³{>îv'ò."/Þ—ÇùUz1ÏȸMðìþŸ6{ÛTëשۄ7gªÎš:í²5Q82f»[Õ3š™¡l©é)Ú:Š^Z 5]µZ%Šþ‡ZM E§B­öƒšž‚¢Q Võ§›J:5uš¢øRTTŠ2IQû( 5UÊhîn•ª'Zi½­êô׋©c·ñGú›“,¿š•¤È¯Ec.Ÿòv½˜”ëT\¿í®ÄöWf 2ͯò²¨åáñ=yèÕ‚›NS-=7›3[òКhç¡÷còÐCzVz&½_7æîVýByx)ð¢MféêÍjÚ+ÿ-äfYô»_»ÏéJyôˆ[•qŸ#ê‘>ÿûU¯¢¾ÊùcrW%ÑÍ,½ÈÊ N#J79MÚœòùd—ò|R%¹ë6HNøÅep‡a¬¾¨òüÎJsy!e—ËUÖLõœgùŽ«r&7xê³Hý_n2‘óÓ¥JseÛxup&y_ì]™[SÊX•T2,¹ôîî˜äÃá˜ïÞ¹å¼DÔ¼Èíªœ˜Õ¸•›Ä¢JéiÜTàð²ÌV›ø©âçÿ|Süû’Ç<[\•³‡„¸ÊJAVdÚ û¸{ŸëyÉcÚÙãs¾°¥ÄI™–™úœN&ëë*רÛQþÙ¬b~ RBùYQå¼?9;vBËÇܧÊÏù©wΓºÛÉæEí% ¾†ÕÏž:ëÑ]{Ã¥Íë÷ÏÉþ¾ÜiME’}&®,®= ûÓîf†È¹Ø+É|µe|Â7¥Ã/HÒ“)x@ù¾sAêñÓ¢/óA˜V}«”³ÅéY]–«N>¤ÃÚ‘ ôÏû<ØÞ=Âæ»¤•H©mÿ'—{lø¯€ãfÒª¸_ØzÒ}¬È~K‘úü·óÝÚ°­J[Ø|žºˆ~ˆŠJ0ÛM5~²Ênæ¼×éíU/‹ÔsÁ½+õ`PÜ×öU£iwøâuÖ7¸d–˰Íå¥ht)ßK¹4£¦Oë®cK²Æ³Í6¾ß󶜃&ç¤Í³¼ÿÙšsÐä<ºßó–œiCg&_ :ž·äIÚ2ùžÐñ¶7ÖÔ“ÉZÆ¿oX·ñE¡`Ý¥|sa<Š_q3õ ÃHæ¼xR¨üÄ&;«g†Ö³×Åžë,qœá‰ìÃÌF®³Øq†ç´; \glS˜ÛxŠ\OÁ¦·ñºžüMvM·e¸NÇuòe>£Ø¦íÊËìú8/ʱsÌÖ;7QQÔÄZÅ͘­'¢C½-:4`3&»\Zj"µî+Ÿ¸5;gFa,[`fæçç‹l~ "®Bw„Å;9g¾[›²#® ‹¿Mƒ¾CÚI¬x¬,5êqåÎ!Š5˜‹Ðî2!¹rv¼§Öct ³êyMkåÅÎÚK‡4J˜í¶zÊònAÛg}&óãD*ä®>×Wú4û¬¯AŸd‡ú§¾Ê>eï‹ÍMyvfÓ"ºâCcüo =ý]_bä)dÇúDÿÑ—bqô UÝDL>N^‚Ta F óµÍð;>°$X+hçÒY[q!a/ÐÜØ…Tq6£"bKQ$¡™HU(ǸXÉŠÚç…`ìfÉ_ìóƒ!ÏЕ"u¦>G@Švn&VbÆûú>šþ –^/ ð éКpÔµi±Â^Ó¢Ù5»•ø#ÜûAXtbì6Êæ‚˜JPP„ï)»åÚ!kñÐ5ê_Ù!è‹ìÍ?Ï ûhì\°ibÓ–{?nÉÞ¢ĽT ÞaY¦+Åkq³+˜äF®ÝFtΑ*•Ä¥Áqœˆ« Ç_ìÕ7DÍÏKh˜È@'Pð‡l¦ª@®÷Y˜rp ÃU#ñùƒŠ²8x¸XyU 7;ÀyúšW²N²/ÿÞ™o{¢!—w'EʨñZߌI'}{ÓŽNŸã_è³Ûü6ÿÜLoˆ÷ÀZ.’YÖsˆLöð×Â?‰Ã‘ñ¹XU½K*ï‰P 37pU×”M‹Ù°)NŽyåsdç×[ûPKÅ4­:åÙ-Ö‘ì  ¤ConcatArabChars.jsUT¢@ JUxPK§€Ž:XzäÎ  ¤ÖConcatArabChars.htmlUT˜äIUxPKœë pmw-4.27/contrib/Circles0000644000222100022210000000331212247665016013316 0ustar ph10ph10@ This file contains a set of functions concerned with the drawing of @ circles. It requires PMS version 2.1 or greater. @ @ Philip Hazel @ October 1993 @ Fixed to work with grace notes 4/6/94 @ This requires PMS 3.0 or greater (for fixes therein). @ This function draws a circle. It must be called with four values on @ the stack: the thickness of the line, the radius, and the coordinates @ of the centre. For example: @ heading draw 0.4 20 24 0 circle @ The variables xx1 - xx4 are used as local variables. draw circle moveto 1.414 div dup 0.6 mul /xx1 exch def dup 1.4 mul /xx2 exch def dup 0.5 mul /xx3 exch def dup 2.0 mul /xx4 exch def neg dup rmoveto xx1 xx3 neg xx2 xx3 neg xx4 0 rcurveto xx1 xx1 xx1 xx2 0 xx4 rcurveto xx1 neg xx3 xx2 neg xx3 xx4 neg 0 rcurveto xx1 neg xx1 neg xx1 neg xx2 neg 0 xx4 neg rcurveto setlinewidth stroke enddraw @ This function draws a circle round the next notehead. It must be called @ with the line thickness value on the stack. For example: @ [draw 0.5 circlenote] g @ This works for chords as well as notes, and is best called via a macro @ with the note as its argument. The following macro has an optional @ second argument for changing the line thickness, which defaults to 0.4. *define circ(,0.4) [draw &&2 circlenote] &&1 @ Accidentals are accounted for, and this works OK for single notes. For @ some chords, however, the radius may turn out to be too big. The variables @ xx1 - xx4 are used as local variables (because it calls the circle function). draw circlenote headtop headbottom sub 2 div /xx1 exch def xx1 3.5 add accleft add headright headleft add 2 div 0.25 add headbottom xx1 add draw circle enddraw @ End of circles functions. pmw-4.27/contrib/SplitArrow0000644000222100022210000000116712247665016014046 0ustar ph10ph10@ These are some drawing functions contributed by Richard Hallas. They draw @ end-of-line splitting arrows which are different in style to the ones in @ the PMS font. Draw SplitUp @ Diagonal splitting arrow to be used at the end of a system @ 0 8 moveto 8 8 rlineto @ draw diagonal -4 0 rmoveto 4 0 rlineto 0 -4 rlineto @ draw arrowhead 0.5 setlinewidth stroke Enddraw Draw SplitDown @ Diagonal splitting arrow to be used at the end of a system @ 0 8 moveto 8 -8 rlineto @ draw diagonal -4 0 rmoveto 4 0 rlineto 0 4 rlineto @ draw arrowhead 0.5 setlinewidth stroke Enddraw pmw-4.27/contrib/WingedRepeats0000644000222100022210000000133612247665016014477 0ustar ph10ph10@ This file illustrates how to generate repeat marks with "wings" above and @ below. breakbarlines 1 bracket brace 2-3 *define leftwingtop "\mf\\176\"/bar/b0 *define leftwingbot "\mf\\177\"/bar/b0 *define rightwingtop "\mf\\177\"/a0/rot180/r2 *define rightwingbot "\mf\\176\"/a0/rot180/r2 [staff 1 treble 1] G B | (: &leftwingtop &leftwingbot C' C | G B :) &rightwingtop &rightwingbot | (: &leftwingtop &leftwingbot C' C | G B :) &rightwingtop &rightwingbot | C'+ | [endstaff] [staff 2 treble 1] R! | (: &leftwingtop R! | R! :) &rightwingtop | (: &leftwingtop R! | R! :) &rightwingtop | R! | [endstaff] [staff 3 bass 1] R! | (: &leftwingbot R! | R! :) &rightwingbot | (: &leftwingbot R! | R! :) &rightwingbot | R! | [endstaff] pmw-4.27/contrib/FigBass0000644000222100022210000001055412247665016013256 0ustar ph10ph10@ This set of macros shows one way of handling figured bass notation in PMS. @ Philip Hazel, February 1994. Updated February, April 1998, March 1999. @ There is a basic macro called b, which prints its argument below the stave, at @ the underlay level, using text size 2. This can be used directly if required, @ in simple cases, for example: @ &b(4) g &b(5) a @ To cope with two numbers in a vertical stack, the macro d is defined to move @ down an appropriate amount; it is used after the second call to b, for example, @ &b(7)&b(9)&d @ prints a 9 below a 7 under the next note. textsizes 10 9 2.5 *define d /d9 *define b() "\rm\&&1"/bu/s2 @ The effect of using the underlay level is that all the figurings on a given @ line are printed at the same level. If you don't want this, then "bu" can be @ changed to "b" to print below each individual note. If you do this, the d @ macro becomes irrelevant, since PMS automatically prints multiple @ non-underlay strings below each other. Either remove the references to &d @ below, or define it to be null, for example: @ *define d @ *define b() "\rm\&&1"/b/s2 @ The remaining macros are all defined in terms of b and d. Note that, because @ macros are handle in a single pass in PMS, you cannot nest macro calls. That @ is, you cannot use a call to one macro inside the argument of a call to @ another. That is why the accidental strings are written out explicitly in @ several cases. @ When accidentals occur as part of the figuring, they have to be printed at an @ appropriate size and positioned nicely with respect to any adjacent figures. @ These three macros are defined in terms of the b macro, and print solitary @ accidentals, at available sizes that I think look reasonable. This is a fudge @ to avoid having to define different text strings in order to use other sizes. @ The sharp and natural use the full-size music font, but reduced to the "small @ cap" size, while the flat uses the reduced music font. @ These define a flat, natural, and sharp, respectively. The same strings are @ used when an accidental is required in one of the composite figures defined @ afterwards. *define bf &b(\mu\z~v') *define bn &b(\mf\\sc\zxv\40\) *define bs &b(\mf\\sc\zxv%) @ These are shorthands for common figurings. Well, they were common in a set of @ examples that I happened to be printing when I originally defined these, and @ they have been added to subsequently. You can easily extend them further by @ copying and modifying. *define 3 &b(3) *define 3f &b(3\mu\z~v') *define 3n &b(3\mf\\sc\zxv\40\) *define 4 &b(4) *define 42 &b(4)&b(2)&d *define 4c2 &b(\mf\k)&b(2)&d @ This version built from a 4 and a + *define 4cp2 &b(4\mu\yy\135\)&b(2)&d *define 43 &b(4)&b(3)&d *define 4f &b(4\mu\z~v') *define 4f3 &b(4\mu\z~v')&b(3)&d *define 4n2 &b(4\mf\\sc\zxv\40\)&b(2)&d *define 4n3 &b(4\mf\\sc\zxv\40\)&b(3)&d *define 4s &b(4\mf\\sc\zxv%) *define 5 &b(5) *define 53 &b(5)&b(3)&d *define 54 &b(5)&b(4)&d *define 5c &b(\mf\\179\) @ This version uses a 5 and a + *define 5cp &b(5\mu\x~vyyy\135\) *define 5csb &b(\mf\\179\)&bs&d @ This version uses a 5 and a + *define 5cpsb &b(5\mu\x~vyyy\135\)&bs&d *define 5f &b(5\mu\z~v') *define 5sb &b(5)&bs&d *define 6 &b(6) *define 6c &b(\mf\s) @ This version uses a 6 and a rotated thick barline @ *define 6cp &b(6)&b(\mf\\66\)/s3/u4.5/r3.9/rot70 @ This version uses a 6 and a rotated + *define 6cp &b(6)&b(\mu\\135\)/u3.5/r2/rot25 *define 64 &b(6)&b(4)&d *define 64c &b(6)&b(\mf\k)&d @ This version uses a 4 and a + *define 64cp &b(6)&b(4\mu\yy\135\)&d *define 642 &b(6)&b(4)&d&b(2)&d&d *define 65 &b(6)&b(5)&d *define 6f &b(6\mu\z~v') *define 6fb &b(6)&bf&d *define 6f4 &b(6\mu\z~v')&b(4)&d *define 6n &b(6\mf\\sc\zxv\40\) *define 6s &b(6\mf\\sc\zxv%) *define 7 &b(7) *define 72f &b(7)&b(2\mu\z~v')&d *define 742 &b(7)&b(4)&d&b(2)&d&d *define 75 &b(7)&b(5)&d *define 75c2 &b(7)&b(\mf\\179\)&d&b(2)&d&d @ This version uses a 5 and a + *define 75cp2 &b(7)&b(5\mu\x~vyyy\135\)&d&b(2)&d&d *define 7c &b(\mf\j) *define 7nb &b(7)&bn&d *define 7s &b(7\mf\\sc\zxv%) *define 7sb &b(7)&bs&d *define 7s3 &b(7)&bs/l4&d&b(3)&d *define 7u &b(7_) *define 86 &b(8)&b(6)&d *define 95 &b(9)&b(5)&d *define 97 &b(9)&b(7)&d *define 9fsb &b(9\mu\z~v')&bs&d *define bu &b(\mf\~\rm\_) *define bus &b(\mf\~\rm\_)&bs&d @ End of figured bass macros. pmw-4.27/contrib/CropMarks0000644000222100022210000000600412247665016013634 0ustar ph10ph10@ This is an example PMS input file showing how the drawing facilities @ can be used to draw crop marks on pages. Philip Hazel, July 1994. @ Revised to do a better job, July 1995. @ ... and again, August 1995! @ These four definitions specify the position of the crop marks relative to the @ area in which PMS prints music. Zero-level for the bottom is the lowest @ possible position for a stave; the zero top level is pagelength points above. @ Note that if a heading is printed at the top of the page, its baseline is at @ the top zero level, so the actual printing extends a bit higher. The left-hand @ zero is the start of systems with no preceding text; the right-hand zero is @ linelength points to the right. @ Increase "top" to move the upper marks upwards; decrease "bottom" to move the @ bottom marks down, and similarly for left and right. *define top 72.5 *define bottom -47.5 *define left -40 *define right 40 @ Those values are, in fact, the correct values for B5 page images, when the @ following values are also set: @ Sheetwidth 499 @ Sheetdepth 709 @ Linelength 420 @ Pagelength 590 @ If the line length or page length is changed, then the top/bottom/left/right @ values must also be changed correspondingly. @ The next two definitions specify the size of the crop marks in terms of a @ distance from the defining point and the length of the line. Adjust to @ taste. *define space 10 *define line 30 @ This drawing routine draws one crop mark at a position and orientation @ specified on the stack. draw onecrop /y exch def /x exch def /s &space magnification div def /l &line magnification div def dup s mul y add x exch moveto l mul y add x exch lineto dup s mul x add y moveto l mul x add y lineto stroke enddraw @ This drawing routing draws four crop marks at positions defined above, in @ the appropriate orientations, when called in a heading directive. draw crops topleft translate -1 1 &left magnification div &top magnification div draw onecrop -1 -1 &left magnification div &bottom magnification div pagelength sub draw onecrop 1 1 &right magnification div linelength add &top magnification div draw onecrop 1 -1 &right magnification div linelength add &bottom magnification div pagelength sub draw onecrop enddraw @ These heading directives cause crop marks to be drawn on all pages. heading draw crops 0 pageheading draw crops 0 @ The remainder of this file consists of some test heading directives to print @ in relation to the crop marks. The linelength, pagelength, and sheet @ parameters are appropriate for B5 page images. To print these on A4 pages @ and have all the crop marks showing you will need to use the image @ adjustment feature of the print configuration dialogue box. @ Replace what follows with your own PMS input file. Sheetwidth 499 Sheetdepth 709 Linelength 420 Pagelength 590 heading "<|heading|>" pageheading "<|heading|>" footing "<|footing|>" pagefooting "<|footing|>" [newmovement newpage] @ force there to be two pages for testing pmw-4.27/contrib/CustomBuiltKeySig.zip0000644000222100022210000022026412247665016016130 0ustar ph10ph10PK ï#<CustomBuiltKeySig/UT bÇ?K;‘Mux õõPKK $<(GxÞMÚ'#CustomBuiltKeySig/KeySigDesign.htmlUT ž'AKª’Mux õõíZÝOÛH&Åt_‰It¥‰#QhÕÞµ:RõN„‡ÅÞ ÇÎÙ›ôo¿Ù]ÇŽ8îå"!yíùÍ÷N<¦÷æô÷“Á_çaÌ'œÿðõË †¦ýÐO4ítp ~|û ­æ |ê6·=—:šöñŒs>}¯i‹Å¢¹Ð›ž£ þÐîVK0‡ËOq6-n‘~­'ÞM70 `ZGGGŠ[Ò2jõk½ ãuƒý=³ç1=—3—7øý”ï ÂÙ×wÌ1õÆïƒOw4‰Ãmî°þoì.ì—ò™Ïà”¸f>Œ<οýèiŠ*–ëÒ 3ñ±ç§d}ö:c‹±k8£Á˜Y‘”—ÅÓ·§Â)Öc˜qÛ±ù=p,)ÌYÀ½ Ü¢nA¤[ ¤B‡º73zƒÀ¿Ò9½[ÍCôb¨ã›¦m¡ê`À%ù8™ò{²ä“C¹¸^ c¦bq&dPG,?Sg틵¢¹ê&°ç5Ùqª üÀo!‘m?à_m—Å7S¤–Â"XÑžº‹7cÛ÷äM¼õÉ›ù|cÊ»dÓ%{Ç×ÞœeTÅð&JrŸ];’:Ü×k)zᮃ³ ‡úÑp®~‰VƒhÕ:jÅËw‚ÁæÔ¡;qØqZñƒ\4ö!ó—pfý«/ÓÕF3×y&uÌS;˜Fõ©ÏæçÎ>ÚÂg#µ[{¨í\>fiBD&¤«¶,æ`’14@Áà¾=ª«í>ìÖvlk£.Ø\ã  .ô?.÷övá!/g ’îSmç ˜0ˆ!{eý²Ñ(ƒ|TµŸaêºyûºµ§”›fS‹r†É€¥^]2,D´…å*S.ð]ÁJEªÙF« 6ê|ˆa©ÒÜòÌ™×´'X‹Á¥}Õ |SxW=ÐbeKñ2› Èr¥h’¸_f² ¤ Í©{#TAÉÀ½ ‘M裥ÜÈñ4ZWûÇÙªÄuP jèõ”¢•x3\5}&e×µáãðQ»Á*YÝ ÊŸÃŸ’òNRÆÞæ&†YrÌ©3K!dÃg½c©\Ȉ ››ãÔ3?“bF¶à=ĢĦˆ¡ñ6Œà@ò1àm®}Fo»s{%ó1ž4¥¬úJÖx8°>­ÈÉX‘KÏ1võè j@ì˜î Œä‹6Pv¶Ž–œž¤J]æÐÙlrÍü}XŒmsœlÊp ¢¹ÇJO–0X)Ü;aÄRŽ‹s#¶®Õ´ì€bÐ,T„‰ËRž£¶ ]  ¯Ы:+:«T ÊÃô_w÷g(j%uÀfrf}q-v‡,xfgs«u¥ž.£$Ñn¯#4M^,5}:µ•ØçĸÒê2ù)«Cñ°Ò}3³õ5ÌÖsfo™•f—ÉO™­¯cvg3³;k˜ÝÉ™½A=Uš]&?ev(ârÌ©—ªEA™;뺵âšMZÒ{q”C}Ͳ ψ]x|,âI/U¯ì ØrGûÓR›«V¨ý…– k]…ôj…ôç(´”òë*Ô©V¨ó…–’±Z¡§|gŽ5¨ËZ™Æïeúrü´ -§0Öè3%gþ}¹äøÜ 1—œDë6Öç\Ö+ÓÅÔ,_½tââ¹n¬7ôÚ-÷ÕjAC/î³ëæù&‚^»s¿~c.øaPܯU‘ç›uª¾#2ÕÑS9šì!YønÐÓÔ°®_ëij€Ù»ö¬{¼Xö_ùÑ:ƒ˜ÈÏ|1ãä¹Çpíùó r@ÀdŽ3¥–e»7ñ}0¥fx¯ÆšJ€Xûj!–V¿gOn@¼`’Â[Ž)Ž˜5ö4n­d—ÓÄ4§ôhë¼íðê/àídyq%‡×0ZšŒŒˆž/¦°=|Ÿ„QŽ¢÷wz¶;q0Ç̼e†P-Òž ÈÑ…A”÷ x®éØæ­A¢©Ek·K@ ³ âSËö„rŠäy,§UÌ 0Û˜‚t D1†(@Ô ©D ý$‚ Sº,‡s9|H¢ÌM²8“Ç*¬É: Ò±T}W*<¦®g­}àc;Èž#hK Ô“3úþ™ç²žÞ,íŠyù®š—o‡ãör1xo¬!IÊähʼô“ŒßŠœÃ‰VQâ&¯9¿&?+Ñ­/õ¨ü†œŽF+Ü.>)€øWÑÈO+"$¿?T …DPòsE’¢©Rß6ª¬SDUPâ»H’ü\Rêð•)‘*™ªÊ3É,ÑàÉR¹¶Ë˵½-לšüL/-Õö¶T·¥ºYV¥^+ÊKUß–êóJ5ïÓ¤Tõm©nKu³¬J½Š——jg[ªÏ+Õ¼O“RílKõÿYªñ”@.Õœ@$»ãÔg>b®x#Nï-Ïuîñ9\‰ÿsƒèø{Í÷¸jEIþ«“‰¬ 41HæšeÏÅ%Wˆ{ë×þPK Œ#<CustomBuiltKeySig/images/UT èÂ?Kÿ’Mux õõPK #<Ú¸  'CustomBuiltKeySig/images/TrebleClef.pngUT éÂ?Kª’Mux õõ‰PNG  IHDR-pŠ ù³sRGB®ÎébKGDÿÿÿ ½§“ pHYs¸‹¸‹ž²PtIMEÚð´ÆÔtEXtCommentCreated with The GIMPïd%n rIDATxÚíœkLY€ÏL[(å]T]@°­ +›ÊÝ•¨øD‰ŠPÙ¨‹¸ÉFvÙ×ÝMX#|Ä>¢¨XßO¢€š(#`Ð ÚEå! PÚžý³0vf:…ÒbÂMnÒΜ{æczçÜ{ˆ_X#á lÃÐÃÐÃÐÃÐÃÐooÞ¼èèh¨®®¶¾r„öþý{”Ëå8zôh|ùò¥Uõ[Z«Õbdd$Õƒƒƒ±½½}èBÿôÓO4`cß´iÓЄ¾téÁ-°²²rhA···£¿¿?#°±/]ºthA§¥¥qŠD"¬¯¯ÐÍÍÍèêêj0''gÀ׳Š>rä´··ó’-**²¿6 Èë.úûû£Á`°ïô¨¬¬ä lìïÞ½³ïô¸zõªÅcº´º  Àä˜D"˜˜ÈÌÌ„ï¾ûH’~™ÚÚZûÎioooÚOŸ€oß¾¥ÍùË—/Ó¬ËîÝ»í7§i+`TTööö2Êž8q‚’ûùçŸí7§Õj5Ã&$IÂ?ÿüB¡QvÕªU P( ³³Ó~sº¹¹™ú aaa¬²A@\\888غ¥¥…úoV>((íÝ÷gž>}ºYyãªiWh@@A›•¿ÿ¾U ‰ÿ—à~µŽŽhll@þþþfå5 hµZJ¥àááÑoha~~~¿ߺu ¶lÙ¡¡¡——Ç)›žž¯^½€?þøfÏžmŸÅ¥¨¨£££9åîÞ½‹B¡²Ó¥¥¥ö³Ó£F¢l4×”HHHNG=&L°ßƒøÕW_A ÕjÏ744À‚ àÍ›7Ô±àà`pww·´‹‹ øúú2:uuu ååå´ãÓ¦M³„iÒ¤IÐÔÔD;¦R©`æÌ™ðìÙ3ùØØXû{.¿üò ŠÅbÊ9sæ zzz2nþ¥R)vwwÛß±½yó&644àÖ­[Q °z,iiiC#„ÐÕÕ…®®®Ìéb¹»»cSS“ý¡µZ-fddpÞ]cß¿¿ýÃb?~ÄyóæñrdcbbP¯×Ûº¥¥Å$2ÊÖ'L˜€V r™™™o˜®\¹eee¼dW¯^ 2™Ìª1uaww7oa­V 999ðéÓ'³²ÞÞÞ˜˜$I‚%×°ªÖëõ¸víZ^SÂÛÛ+**p°oè?ÿüsHó†ÎÏÏG‘HÄ úرc8ØMÈ'K•½½½œrb±@£ÑØ7%§×ë!)) 9•899ÁéÓ§aÆŒ&»ºAi\?Ãßÿmv:H$¼rå ""þöÛo(“É}z°B?{ö Åb1'°³³3^¿~£T*‘$Ilkk³=´^¯ÇèèhN`±XŒ×®]£«©©AÀû÷ïÛúøñãœÀB¡O:ŘðððÀ}ûöÙº«« 8¡÷îÝ˪022ׯ_o[èììlNà%K–pîØ¶nÝŠáááƒk§_¿~M³&{÷îeµ4žžžžžÎi‹ÇŒOŸ>µZM…݈ͬÿ³¬T€°oøöóP­1d`ζk4ÖXˆ»»;¸¹¹ ŒZ¯×£±oÚ´‰uZÄÇÇc_ÙÏ»N§Ã;wîà¢E‹8§—§§'ÆÇÇcII §>®N›ÓS¦Laõï4 ëÓh4¸páB$I’wZN(brr2¶´´ôÿAlkkcõõ¸¬EYYŽ=Úâ\¢±‡„„`MMMÿ ïݻǨ4<<œ5ùóüùsôòòê7°±7_¿~m9tnn®E[ÍÞÞ^ 0°±+ ìéé± :++ËDA¬wÀܪi|èFŒŽŽŽ¼ÀwìØatzzº‰’1cưüöÛoMä}||0== qêÔ©xàÀìììDFƒ.\ÀY³f±VÞº¹¹ñ èPÐ&JfΜÉZEÓ÷¡%W¯^M³ÉÉɸeËÚ8N‡ÙÙÙèääÄ Î'›K­R©”qucj/^¼½^O}OJJ‚£GÒò(_ý5TVVš$–RRRàðáì‹R©äï(•J“¿:))‰3ma¬ßèìì4‘yøð!º¹¹±îS6oÞÌx§I’4[Gý¹!!!ŒK7c°¤O*yݺu ‘HLdBBBàÓ§O V«uüþûÁÏŸ?çç#ídkk+ã €€êsDD£Œ³³3Èd2¨¨¨`Í׬X±Âl&˜q4kÖ,jÃôøñcÚ///Æ|7"Baa! "( puueT^QQR©üüüÏ××׃J¥29^^^ìa±íÛ·S_jjj`óæÍ´0Xßó}›T*…sçÎÁ²eË 44”QæâÅ‹PZZʪ£«« /^LU2ÛÆaüøñü¼qƒÁ€“&MâUoTUU…€ÓµÊÏÏG???·ÊÃÃÃdA3Wãdâ¹äääД=z”uð† ðûï¿g=ßÐЀ$Iâ‡Xe|||h× 0[MfÝÓÓƒ“'O¦”ÌŸ?Ÿupkk+Êår,//g•;v,°žwqq¡A'&&öÏ¿}û6µÜ T©T¬ êêêpÍš5¬Y«ùóçãž={XÇ~¾¬÷£X¬éëÅ,_¾œó'ûðá*•JFð_ý×®]k¶®É˜5`Ûó‚îîîÆ¨¨(êá8{ö¬YeL‘%¥R‰aaaŒò³gϦ=€¹¹¹õ644`hh(år•””XìÕÔÔ £££É^ùáÇ4÷léÒ¥¼Ë9ÍÆ§›››©;2räH,,,´¸ÕÃÃhonnF™LFO›6 ?~ühÝ zWW¦¦¦¢H$BGGGܵkvttð¾ÈŒ3(Ó©V«)‡ ŒÅÖÖÖÁKÉ£B¡@‚ 0((÷ïßÏ«Ø555“““q÷îÝ8bÄÊa8pàêt:ËSrˆ–½D©Óé   :7nÜ’$A¡PÀ7ß|r¹|||ÀÓÓ´Z-ttt@uu5œ?ŠŠŠ@$Áĉ!11Ö­[×ï:&âäÉ“ý.¼zûö-”••AYY­òóm¬——´µµAZZÈd2³Q*³Ð+W®´Éëªyyy0gΜ‡Ä¬QïÁ·…††âÍ›7­¢Ëf/œM™2ÅÄg´[9%ÐOž<ù² år9TUU}YÐ2™ ª««i¡‡!íïïz½žV£7ä¡…B!Œ7Îlx`Р{zzàÁƒpíÚ5(--e­€dš"Ö€¶ÈNët:Ü·oŸI=00O:evkùÃ?à?þh»z½^IIIœ¡ÚÔÔTÎtÝöíÛ1..ÎvÐäcÎÊÊbÕ±sçNœ>}ºmVDƒÁ™™™¼¦[ff&k“V«…žžÛ<ˆ*• êëëy)lkkc]ùú~‹EÐÿþû¯Å%ÊL­®®œœœl-‹y+ ¹\Îx®¼¼œ;FgMèÉ“'óÊsYYYŒ›üÚÚZP«Õ¼^-±šŽå´³³³YÇoÛ¶ ‚Àªª*Û™<•J…nnn&°Ã¹sçŠD"œ;w®í d‹‹‹Ñ××—íëë‹ýõªÕjšgm0°½½÷ìÙƒ‰½½½±¶¶Ö>U½ï޽ԔƴšŸŸFDD`TTN:% •ÿ~úô©õªz- !ôÍ‹\ºt áÑ£G V«©I’0gΈ‹‹‘Hd½"•þB3­š---àààÎÎΜ/ì h[¶áÿ2 = =Ú[°¬nªp4²IEND®B`‚PK ks"<.¹!sNN0CustomBuiltKeySig/images/HalfFlatFourthSpace.pngUT ª;?Kä’Mux õõ‰PNG  IHDRpâù{‹sRGB®ÎébKGDÿÿÿ ½§“ pHYs¸‹¸‹ž²PtIMEÚ ¼àó}tEXtCommentCreated with The GIMPïd%n¥IDAThÞíØ?Hr]ðï¹Þü›5mF 5ÔÐTCX[AФKNMŽÕ I48a4‚V:4&Tƒ ÚRZ¢Ò¥«¿wxAÞ^{,K}Þ—çôÞ«Ÿã=÷|Ïï^FD„7¿¡q”£å(Gÿ£h<‡×ë…$IµQé íàà€š››éññ‘jÑø˜VÝ¢Ñ(l6‚Á`}QY–qxxˆññq˜Íf¸Ýnär¹O¿'~K§ÓØÞÞÆÆÆnooQm™Uzssƒ½½=x½^¤R©²ý­­­?Ÿ2²,“Ëå"Ɖ¢HÊ^ät:)iÊü}yy¡ÍÍM2™L$BÄ£ÁÁAòx<”Íf«š§eh*•¢¥¥%2 þ+•JEV«•ɲü­p(COOO?Ä 9ŠÅbT,”HŸ¢ýýý477WÿljjÂÄÄŽqqq«ÕZÓD*›2ÝÝ݈D"èééc¬.1(ÁçóU<èþþ’$Án·C¥R•¶‹Å¿cMøz°iµZˆ]]]­xàåå%B¡†‡‡á÷û±¿¿_–BŒ1ÌÏÏcdd¤âo)•ÊêÖÓÕÕUjii¡©©)Z\\$‹ÅBŒ±ÒE§×ë) }?þ ‚@½½½FKÛßÞÞÈét¾»Ú-  …Ú Œ1 ƒeû$I¢¾¾¾*Š"%‰ÚT:F£ñÃ1úç8ʲŒl6[»õôWSH­V¿ë\[[[ý+‡X,Vzo6›ÑÞÞ^_4—Ë!—>/,,|*?FÏÎÎL&˜™™©oDDp¹\ "(•J¬¯¯C£ÑÔ ðûý‡Ã¡¡¡úVøÙl–L& ééi’$éËK›˜H$pwwW±cWWW( 8??/^»»»ˆD"èììÄìì컋©RS(`>ŸÜnwÅŸžžp}} ‹ÅQF‘J¥`4a0ªNWÝé}xx µµ5Òjµd³Ù(ŸÏ«røRÝ+^__166†|>LNN~‘ÿJÏ’É$Ùívòx<”Éd~\#1þè•£å臷[[[XYYi¨×ëÁžŸŸé£çu;µ‚ƒå(GÿôÀ‡Ã899i¨V«!‹EȲÜ0T–eøå(GÿøÀÏd2H§Ó -¶EŸÏ‡åååÆÞVðÀç(G9ÊQŽr”£å(G9ú?Dÿ­RæY786IEND®B`‚PK r"<ò‡òæç0CustomBuiltKeySig/images/HalfSharpThirdSpace.pngUT 9?KÐ"Lux õõë ðsçå’âb``àõôp Ò²@\ÀÁ$ý¬îRŒÅAîN ëÎɼrØ’¼Ý]þƒà‚½Ë'E8 <"‹vtƒ0ã¼M²@AöO_Wö[ŒL<’çW›«ƒÌ-q(qÎÏÍMÍ+ap.JM,IMQ(Ï,ÉPÉHUp÷ô xŸ¢šÇÀÀdçéâ’qïí­ý§+eØ?|ÿ›æpñëêˆ#Ktô˜gžÈšpv O˜õâ™w¥À"…áF‚AÂúU»ç¯TñÜR Ô7}Áë¯R‹/¾Ð )4žcÉÇ #f8ÓçÂûïËv_ÌÛ.ïn=·/çÙl_‡¥A?7Fí¬,zZ`q€•©q³žñüó†rýëýžTÊéM­h2×/žïOÐÊ# 1Y˜—3ž—ÍÚÅÑÔ`ÐQ`ñç^ï’‹îæ®¿þðûïûå)k´/½4¹õÖLª— dþÞw îÝ>R½÷ÞóÙ©ú ýç^~oy'kë…—%xúé½âϤ»yÓ²¶þJ53÷ÅçŸkÃä|Õ„EÊvÿ}ÃÝ|Páö59~½³Õ?ݼ–u¸-`a´9¿¿î{‘ û\?öõ×¹—_îtZØà¢Äè(pOüÇê«]‹~l;°GÐÎt/Cõ÷nmº¹æMÃÓ"Né§ùÛÿ|ïrQ é?ý‘Áb®ßÓoç výåÚuûmÄÞ¸ôÙgŸ¥v¹ø_†CuÊ…zõé›oº;.¾Èq.kk ÛçŸ6ÕÈñ9åÂýŽ:F‡⹓?å^&9OW?—uN MPKk#ç9çóœÏyÎûœå=ï{î9;b%Ä”Ä@ „-Ä@ íŸb;Õ@ÇcQ  öÑo@â}‹ýü·ä5Ñ€Œhˆ­k8ôöþ¿U ‡s’Â;œð¨À!9A9¤=.HÁ(6W(Öä  ß` È:Ì÷Å—¨y FðUÃÚáœWˆZÁ^€ÚŠ5º”c›Ñ-ßÑÔS[úÍO++Ðïžë®ysÚºïÔ¨gyÌx`9ˆZ´ß9>Ÿª;×uàèqºô˜e ¾Qê,{ƒOý§""ÆYáwï¬üÃ];Ë{òÙ¶b¢¶ø‰n²62B7g«Y£ãÏ9hn ÚÄËåÛH¹ýWø)™O/¾X„'“WrÁ..XtüÞÞ­C%Gêâb`|||“©Tz¹<SÐRáñ.P)ˆDBa0°ððÏì±ííàüüüáºpí8*Uƒû™®lü ˆíuýº®”ÔãÌL™÷ú”Õ¯vÒ**¦¡SB) 'ã@œõo}ºZZ Áÿ¼µjoo'àñ¨˜­e­{hï*$­Sxø$+«Ó3TaýÇÖÊõÁ2W¡ØÙOtë­®6µ¥ùzCfJI6`?·£½d0V¹ÔŠ’x!ÞГcþ|ˆt¸dˆ§«¦kð*_­üòr=¯‹Å ÷“NÈ L¤×‡åñw×ô„~¼e2á&&ô‹ÜÁÁÄáá+·~lv×!VövÖ^––VgH@{{{ÓèôëÕ\fO?pXßñöíÛæµ#‡~«‹4x’ùÒÇh¢Ñ ÏÈÁÁ77%Póø8ìäÉ“ßùü*åèíï“F™’•òJ‹'sh4ŸÆÚÚ¿ ð#GŽ´éCW†­¬¬ÚeÓ©|Þ­{t›?-Üï•ï,½ÛïPlY™^àD=½ïËç¬s1!j÷4 …*›ªMQ6†TsÅÏIM®ÍõD­~%‘HœÑQ±êhê`ËñII>‹ÃUìó÷7<† ïvo tMMŸ¸»»‹€ì4¥WWWŸñ§;hÇ4@_gg1¡¡¡ýÃÃóÙPš[y- ¤æõë¨2bÃÕ4?T4H<¬rÖvffæyß·d_×.K£˜@ªšYZ rIüöf¹ÏÎÎîr¡’„¶T]ØŒý!KÊúü…Ý ž<2@eœŽ^(©¬ŒõÈ*©«£'B[#[âÀõùƒy­'\\\'ÆðÛ|ÃGÏ€TUUÝ›îÀ–——o×ÞB¬µß—KÌ‹‹tî#ñTi¯¿øâ÷ÍÍÚ±iêÖQ<׿Úb¶ŽJ.MOS_½Ò??Âb‰óË•ÓRZµ §yC•Oi,žøøÄBÁbäO÷ø¼ßI¤lAsöQ–?­“hàÓ¦]^^ÇA™ú0|‰†Jü¥1cÂ¥K¡JŸrÌ•5°ÑþþÚ]]]ú×Z…¶wv\×ÇÇÇ£öLžãu1)J ÷d´[‚çsÏÝ}V_ŸíbL™wÖs›–eæàèa1¢¶¿«#×»’•—TµÈ++ƒ$èù¦V‰túe´¯OæÇæÒôì*×;ÎŸŽ˜þbM$j ª“§#""lmm- Y<Ïô‹ôR—]|á0¹1Ie;'ëóù™ÍöÎZÑLº6)éV.—““³ß8Dpq_Gz.]IôÈ[à;Ñt—ì]Æ`H›«7•——/»RÕjÂ!OÔÿ«ýº„%°Éx|1å0Åkk«©È÷î£Ü\äü@ÍùaèE/;{û)¦f±,ŸÏßöÌOÊëï'lÿøa&½±0œ’R–þ†ÌM´/dŒ¬ôž¯'ÿêRñšYjvƒ§«™›ÃH5J /³³//îÚC— ÷É~¤S–N§§Ù²„ å“ÃP€žÌvg%µµ¡ Bˆ_5 ¸cµAÖþþEòÜ*a11±ÝÚá›:S1Û®UÞàNâ©G¶š†7W‰nÕ~ZššÎÞÞp@a»ƒOú|€võôÈ?ÀGõy›˜˜ ljfø6ÖÇGÃâî޲±3Œ@ǶD e}`Æ?Ìñšššzãs (·€£ÕÕ2###›þOMM¤it]G$©»^.—ÁC0üçR9hÛ6±¿¿d2 Ó4¿Ãv]×qzz Ó4Ç¡ª*ÞÞÞ Ë2âñxçàÇÇŽ‘Íf‘Ífq~~UUk‰ãº¸C™¦É¯®®x*•â###\ éO–en†Ók¹°¹¹Ù0KÓé4ŠÅ",Ëj©Õ’$a}}^oãæy«ÕjÃsšÛÛ[×X4E,CoooíZµZm­¥¡P¨aËü~?Ÿššâ¾»»ËÝVÓA#Š"cˆD"ØÚÚÂää$‚Á`m°x<žÖ¶kN7VVV011ÙÙY$ hš†¥¥¥Î÷‡_MºµYZ(K hÛ6^^^¾<õv|¾8ŸÏ£P(àèèÏÏÏ(‹u!Ð6È9‡ªª8;;«…¸¦iH¥RµgdYnï³ø{u].—qqqééi\^^Â0Œö¿Ã»»»†=Ïd2888@>ŸÇÓÓ T*5}¡eY¸¿¿‡(ŠWÞáp¸áRÿááÁux3Æ I$Ic¬½ùÐ)¼pÆ|~~ž‹¢È···ùûûû÷„÷gù|>(ŠEQ033ƒññqT* " 9¶Ðõ éééÁØØP(Ðßß½½½ºg*•Ê÷…÷ÉÉ dY† X]]…®ëߎàÀÀe)¿ìh>ôù|8<<Äððpw@ǃh4ÚÒ\²___ò,ŒŽŽvÜR:Õ'@ $°yýÌu߈[7IEND®B`‚PK öq"<^øâxx/CustomBuiltKeySig/images/HalfSharpThirdLine.pngUT ï8?KÐ"Lux õõ‰PNG  IHDRpâù{‹sRGB®ÎébKGDÿÿÿ ½§“ pHYs¸‹¸‹ž²PtIMEÚ +Ê&h9tEXtCommentCreated with The GIMPïd%nÏIDAThÞíØ¿KëPðoÒ@ilÌÐÖŠÅA©C·Šh‡@u“âX—âÚ?¡ øG¨¸ûHDQ:©¥›.qÑK "ˆmú+Çåñ–—Ö>“ö¡ïèvá“Üsrν•ˆˆ0âñ‚QFe”QFe”QFeÔeH…BªÕêÈ@Ã0 ¤R)¼¼¼Œ ››ƒÄWEF.ÚjµÉdpxx8:Ô¶mT*!8§ßU®®®ðþþÞ·šÍ&LÓÄùù¹kprrR.—£ûûû¾…tyy‰ééiÄb1×èÚÚ@ŸD£Ñ X,F;;;äUpõþD„Z­†b±ˆ­­-4¯«ƒæ4“ªª€4M£z½þåœ*NÒn·qvv†““œžž¢V«Á¶mïö×éInoo @ÏŸÛ7•{å¯çñQ’‰D Ë_¯AeÐ…‹‹‹Èf³0 ‰DcccÞnïÍÍ  h4Jëëë iww׳æàø¦SSS(•JH&“ðù|ˆÇãðò¤êˆêºŽååe€eYÞ_+VVVèîî®oSB@×uŒ»³Ù,$!µZ­¾£Í0 äóylnnºF5MƒòÙ¸², Š¢  affæ?:®]µÅOom–e!#N# áââB˜¦ MÓ¼2Ýn—èàà€t]÷´÷:¢BZXX ¿ß?”†ïØêõ:ÊåòðŽ 'ÿ×tYZZÂêê*Àp>òù|$Ë2mooÓÛÛÛðNƒ~¿™L{{{¸¾¾F4E8†ªªÃÛÞÙÙYýþdÜ lGtOOO=t:¼¾¾âøøÏÏÏ®Áùùy(ÝnN§/JD°m»ïºAöm¾V0ú“QY–111á®×þíçœ~¿ÿ‘ªÕ*ÚíöÈÀ`0)N“iš#C766¸ze”QFe”QFe”Ño‰~Oä ¥phUIEND®B`‚PK |#„QQ(ÍÅ0J{ÿPBø-"0Èe©£èÕ‚„¢Z}Iì…¢¨¤)½«&±–¶¹f6ö¢nsëùù{qÝ;wïvgùŸî‡{ïsÎùíìœç킈 Lò` …¦ÐšBSh M¡)4…¦ÐšBSh M¡)4…¦ÐÿChéÕ«WáôéÓ šøý~O«855v»ž>} >|€oß¾A4åî”Ðëõ`µZ¡±±ŠŠŠÄ¥Æ4òýûwŒ•••h6›q×®]xûömŒF£‚ÀO:5çlß»w/I¿««‹¥#“ɰ¿¿Ÿº©© —.]Š‹/ædݺu888È:¢ÉdJ ½oß>–êììÄ‚‚4 x÷îÝÔÖ£¢¢‚—“Ðh4èt:yƒŸ;w.e_z½žeûŽŒŒàää$gŸÒþþ~xòä |þü™—Û÷z½°}ûv°X,¼ôC¡B€ëÃðÈÈ´¶¶B~~¾°(/‘H@$P(Ä»ÑÛ·oÁh4‚ÑhL«+“É`ãÆ`·Û¹âp¹\ ×ë3 ˜ B¼—È­[·RöÓÓÓ#Ø2åÍ'…ˆÏçã­[QQ‰„óÝÏŸ?3Ï\´Z­ †ÅÅżuKJJ`ùòåœï"‘HæÐÕÕÕü3Bé Îç …‚õl||†††Rï³™uât:qÉ’%¼Öó¦M›8MÕ\2"üyõõõ1:ñxOœ8 … !¨ÕjñÆsGy]]]LÀ”êÒétèr¹ož;wröçv»óçϳÞK¥Ò¤ÆšvwwcQQç6lÀ¡¡¡Œb‘ƒ²ú“ËåIiتU«8Çݽ{w²sùs¹ìÙ³ª««áæÍ›Ð××@ ÔÕÕAmm­`G0#\ÖcõêÕIσÁ`J%(±K:ÄšÁ¤ý7/\¸À/±[vìØÁ‚éîîfe>³ãpBnÛ¶•É“ù:-f6›áõë×IîÝãñ€Z­fÕWl6¸\.(--…Í›7³––4 ßïÏ9´ËåJº_»v-LNNÂðð0§·ÛÍöW®\Á¶¶¶œOOOƒÇãIz¦Ñh`Ñ¢E™•Åþu9…¾ÿ>X­Væ^¥RÁׯ_9½!¯Ð”"8X*>Lºojj•J•»Z^¶‹ÅP£Ñ0A©Tâ?²ê3çõéžžðz½Ìý‘#GEˆe¦+++™Y^¹reʼO”ª©òâÅ ¦<,•JñÙ³g¹-õf+‰DËÊʘYniiÉ}}:[¹~ý:\VV&¸Ð3ïУ££LÁ}ÅŠ8::*jÿ¢CÇãqܺu+âÇEŸÑ¡gêw*•Š•qü'¡{{{Q&“¡R©Ä—/_æÌ*›Í†/^Å‘ @8½^&“)w?ׯ_Ÿqà2#‡ZZZÀd2A{{;ÈåòܺÙlÿªwïÞ¡V«Åªª*ôù|ó’eýüùs,..ÆãÇ‹j‡s}çÎ4™LøèÑ#œo‘f’…œïÐô ÓÿúàÕàà ¼ÿ~aA;Nèíí]X§ÅèF¤ÐšBSh M¡)4…¦ÐšBSh M¡)4…¦ÐzAÈ?Q"9cÁšCóIEND®B`‚PK ¨s"<9ÓŸÀ;;*CustomBuiltKeySig/images/HalfFlatAbove.pngUT >>°»» ‹ÅƒÁ"‚ÛíF €ÅbA}}}Vª¬¬_WW—¤*?Ûûû;\.šššFa·Ûa6›1<<ü£æfc‚ ¤o8¦òòrjhh ŠŠ ²Z­Ÿjʈˆ8"¢tE{ii ñxÐëõŸîÒBÿ™«"ƒ2(ƒfw­ðù|xxxȰ¨¨¼ÇãÓéÌT«Õ2dPePýŠ*3??›Í–7`uu5¸××W ‡Ãùó’çY•aPeÐÿ^ðp~~ž7 F£/IDQÌTE&ø Ê  úß ~0ÄÛÛ[^›m~uu[[[ù½V0ÁgPePePePePeпú âˆ-³§IEND®B`‚PK ¾"*T8dAdAdÁ_ ŠŽŽŽŠ>̈ëëë/Åòò2‚Á`Ùù®ÎÎN[‰S©œN'¼^ï›ýn·B´´´ÀN.Ûÿa$A,«Ü¢Éf³Èår|Y0øK@Ó4­/üïB®®®p~~Žx<Žd2‰ïMÓ„a8<<ÄÖÖòù<&''ñÿ“¢(ÖµtnnÎV-]ZZB}}=zzz ë:nnnðüü\tncc#¦¦¦Ša6›-:@DÐuÇÇÇxzzzÝrrbë XåYD*•¢ºº:`{“$‰E¡X,f•–J‚µµµe‘††BÐüü<% * T*>´h„hjjB0„ªª…Bðù|A[[[ù~Xn‚,ËÀÅņ‡‡±¸¸Çó:~ÿ¡n VWWc}}½½½eš¦Áçó½Á>– $IPU•kés¹ÎÎΰ¶¶ö3Ý"ŸÏÃ0 fggaà÷û‡‹ƒ†aؾkK§Ó¸¼¼„®ëˆÇãØÛÛC"‘@¡PÀþþþ»R´x´··—ìÉd™L¦iB;Ÿ9$IBsssñÁ——*¶¥ÓiÒ4¼^ï‡ 8 d•×åp8,[ÌÑÑ2™Œ­SÞÕÕMÓ ª*†††`•÷SÝ¢ªªŠü~?MLLÐÂÂI’D»»»d'lBr:ÔßßO+++t{{ûÚ†îîîÈívÛ]¥ZQ(Âàà ÆÇÇ133EQ‰D~¦x×ÔÔ`ccãÍÊãÒÆàyO366fëVÿôôÝÝÝïzàÁÁúúú Ëryp{{ÛFÑÚÚŠééé¯"ÙŒp8LÑh”¾‚¿ã3È ƒ?®ÕÕÕÊ‚›››•mO\KdAdAdÁoˆðÖS|ÙIEND®B`‚PK Ds"<_´ZTT/CustomBuiltKeySig/images/HalfFlatThirdSpace.pngUT _;?KÐ"Lux õõ‰PNG  IHDRpâù{‹sRGB®ÎébKGDÿÿÿ ½§“ pHYs¸‹¸‹ž²PtIMEÚ ¸LÒXtEXtCommentCreated with The GIMPïd%n«IDAThÞíÙAH*]ðÿ š˜Š!„”D ‰ET»‚Z´‰v-ÊÐ2×F‹¨EQ R¸q!¶È…¢-Úh.tSA‘CMxÞêõ}¾7ï¦ö¾wrïa~Ü™;çÞËpDDøâàñ‚¡ e(CÊP†2”¡ eè_‰úý~Äãñ¦ \*•¢`0¨˜FaµZ!BC F£Êl6Ãét*&ÇãqôööÖ”û»P©TÕ}}}ä÷ûóDQTÌiÚDÊf³ðx<˜ŸŸWm#$IˆÇãØÞÞF*•‚$Ip¹\­A …°··‡ëëkÔ{˜¯ -‹XYYÁáá!J¥ÒOýíííQ¾ÒC—$‰‰™L& û3›Íäóù¨X,Ö4)‰>==Q  »ÝN<ÏÿqGCCC´¿¿Oår™ê YtccƒºººdG¥Ñhhff†R©I’DŸ YtttTt»Ý”Ëå¨R©P#ñÛ÷”ã8‚€ÝÝ]X,ŒÃf³ã¸æü¶¶6¸ÝnÄb1¤Ói,//C£Ñ4m•QÝÞÞ"ŸÏW5z<tvv‚çyœDQD¡PÀÉÉIc£äy¨Òé4677“K¥’É$òùŸO1ñææz½F£±ªM’$FtttÔjµZpår™ävv?†ËåÂìì,<ÎÏϱ°°‹Å‚ƒƒ˜L¦ú–6ƒÁPÓmQ«ÕÐëõ¸¸¸ÀÒÒœN'ÌfsýÏ¥ÖÚ+éõzêîî¦Ooʈˆ¸Z¿µžžâîîSSS5O˜_N$ö¡ ýÏ£ªL&ƒããã/Õj5T•Jïïï_†rÇ*CÊп¾à???ãáááëFÉóPÕ|ðiFhµZVðÊP†2”¡ e(CÊP†þ/Ñoû•[„?Ù¦IEND®B`‚PK ±r"<"˲sII.CustomBuiltKeySig/images/HalfFlatFirstLine.pngUT N:?KÐ"Lux õõ‰PNG  IHDRpâù{‹sRGB®ÎébKGDÿÿÿ ½§“ pHYs¸‹¸‹ž²PtIMEÚ "×*FtEXtCommentCreated with The GIMPïd%n IDAThÞíØ?Hz]ðïýy¡«$öÇŒ&±%Ê‚H2ˆr0›¢(úMNF‚C-EKઑCKa[MV4D“†“àÐRaDƒd™¡””žw*^Ó_öGí…÷<àrι|ðžsžóœË¡Âñ¿ e(CÊP†2”¡ e(CúÃàív;NOO+¶¶¶‚ooo‡R©¬ÚØØŽ]ÊP†þÏ~0ÄÃÃCÅÀÚÚZð›››C;;;YÂg(CÊÐ_nbb‚|>_Å@½^.S2™¬*‘HØ)ó@½^/...*‹šÍf¸Ýn6§¿ƒ¾¼¼àààËËËåGïïïát:ÑÑѓɄãããÏÛ_…ˆgggp¹\p»Ý¸»»ûz…ÿÙétGGGp:8<<ÄóósÞ©Tú¹„¿µµE———Z[[ÃÓÓQ(kr‡ææf …Õj5øL&ƒt:× …àñxÇ >, ÕjÁq\Îù(2™ @ïâää„FFFH÷S(d³Ùèüüœ¾y¨N§+ˆ©ÕjZ__§X,F?·LUUL&”J%&''a6›QSSSžäPWW‹Å‚@ ǹ\^ÚKñû†……tuu¡¾¾¾|7ñ÷ ƒƒƒEŠD"ðûý¸¹¹ACCº»»¡P(¾”aŠFKK ---Q"‘ ùùy’J¥9‹L&“ÑÊÊ ¥R©ï­Þ¿¡V«•zzzH¥RÑðð0õ÷÷çl+Žãhnn޲ÙléÐêêj²X,ÇßÚ}>)Š7˜çyòz½¥Cûúú(Nçõ9ΜWm³Ù~¶Oÿ:"‘(¯Ýh4æ¤ÁÛÛÛâ«7‰ X±J¥H$puu•׋ЉÞr® ǽ†X,7>>^ôZ‡!‘H “Éòú’ÉdοS©Tàù¿Ÿ˜½½½_Û2…Ân·¿Í§F£¡d2Yº9-Ùl{{{ogêââ"A(oä÷ûñ:5ƒSSSå-̲Ù,VWW‘Éd —Ëáp8 ®î’¢;;;Øß߇X,Æöö64MyëÞëëkX­Vð<‡ÃƒÁPžjð5‰FGGF±±±éééò• ¯ûull ¡P»»»0ßûæð™›x[[8ŽC4…V«…ËåBSSSéñB133ƒ`0ˆÙÙYèõzüùó³+ûæÀP†2”¡ e(C?ÿ76¢æa‡IEND®B`‚PK ›p"Ï£,®?ø…b”QFe”QFe”QF]²lÈd2–‚ Àær¹ppp`éL¾*2Ê(£øÝnº®[‹¾¼¼ •Jqà3Ê(£Œþï»Ìõõ5b±˜¥× a0ÐÛÛÛ§"Âáá!ŽŽŽ ªêêï2‡^¯wÝÚÚ‚Óéœiã…Ä(£ÿúôô„t:m Z©T‰DP(Ìg¯™ÎÏÏÏH§ÓÈçóÇ?üjµŠ\.7ƒN7770 ãcvÅb£ÑèSßV«…‹‹ sÙkÞßßg‰µZ ··· gEDsÇ/BAsÊ0 ÚÝÝ%_~$I"ŸÏG~¿ŸÌ–é…$ITU…®ë…B?{¦f°H$‚³³3x<žåNßup8تöÖ…¨,ËÐ4måùÂg ùäð;h£ÑÀÝÝ5h£Ñ@<ÇÞÞJ¥ÒzßÓ××W\^^"›Í¢ßï/÷Ê ‡C´Û홟ïyk³=H²,#•Ja~¿oooÎ ’×ëýÆæçç]QA°½½ ÆØÀ°ß¢ããã888€Ïç£ì>zß÷÷Œjš†ÝÝ],..âééɹìý²Ù,òù<žŸŸ™Þ¯Òuýë÷Î~BK¥Z­VÇÉR©„0ÆprròK¬R©àììÌ6855aoo_^^v,<>>âúúºk£$IPWWWXXXÀìì¬mtyy¹·À—$‰§R)~{{Ë Ãp6ðÝn7‰cƒà\à»Ýnlnn‚1†P(älöŠ¢ˆd2 ÆÂáðÀÉF£X__n ŽQàJ¨õC_2™äçççý|‚®ë˜œœÄÄÄ„í¾X,¡Ñhð~^ŠLÓc XYY±Ýçõz!Ð(B %t´QW¡P@½^à2Mív{h¨išø„JèÈ~³Ùtî7´Ey<[[[}½Vô[±XŒŸPB %”PB %”PB ý'ÑOÒܤgéúIEND®B`‚PK Z¿"<×8>=KK,CustomBuiltKeySig/images/FlatSecondSpace.pngUT ›Á?KÐ"Lux õõ‰PNG  IHDRp ;µsRGB®ÎébKGDÿÿÿ ½§“ pHYs¸‹¸‹ž²PtIMEÚ:3hŒª&tEXtCommentCreated with The GIMPïd%n¢IDAThÞíØAK*Qð¿9†EH£àˆD îÚ¸hÝÊ¥{©/áF·ÐF° h!îÔ 6-ú‰¶T…Z” *ΤãiõBÇô9#Ç9paäÀüã=çÜk!"Âc dAdAdð¿-¡PˆF£ÑæÀF£±Ñ”…k 2ÈàL]‚ÙlÇÇÇdžB*•Ò}a¹\F³ÙÄÅŬV«1 ¢(øúúš›œL& "(Š‚­-ƒ>7-ˆëëkòz½¤( ¼-dAóCh·Ûº-¨Ûíb2™ ÝnÃf³Í´,‹Å²ú  uGý~¿^¯¯×‹ápˆn·;ôx<ËwUUIo]]]‘$IôúúJ@€¶··iww—üXggg$Ë2-zןõk·Øßß§`0HÉd’šÍ&}||P©T"I’~ étz©nñ+€noogr///d³Ù40Ðx<^t:4ææÃá° ‚@ƒÁ`ý~¸³³£Ûíµg»Ý¾Ô¿v­}Øëõ´çP(»Ýn¨( *•Šö;.5÷ü5X­Vñùù Eçççæ–¶››­¤R)˜ÖëuÜÝÝNOO‹ÅÌ+ÞÓéñx²,ãèèÙl‚ ˜‹E”J%8N<<<@’¤ÕŠw$!Y–ç&;Z­NNN´=V.—Ñï÷áóùà÷ûWïÏÏϤªêÜäãã#òù§¿»ƒ÷ÿž'ˆˆ`c9`s1È ƒ 2È ƒ 2È ƒ¿”Òé4†m (—ˤªª} ÿ]cAaxW«Ut:ûÀëëkÜÝÝqx3È ƒ N¥†aÀÎt±XŒ*•Š} ªª¤iï 2Èà?UUÅã㣵"}SÉd’B¡YYâüüœ†žL©T‚¢(888°n{r¹\˜››Ú”e333_öÿ‹[ÊëA´áQÿùù½^oh³Ûí¢ßïãþþÞœëõzx}}…,ËðxÍonnÂëõšcEQðþþ>ù²$iø,..šã………/µd꺎v»mŽC¡„Ó›Í&E1¯6‹M7iŠÅ"t]D"隦!ŸÏÜn7ÎÎÎFNœ…B­V B¤R)ø|¾é…w»ÝÆÉÉ àððGGGÓÛ- ÃÀññ1EA8F.—;¼Ç::›Íâòò»»»¸ºº‚ÓéœÎ“·®ë”ÉdH–eJ$#õ°ú6„xzzÂÎÎjµ...°··7ÒÿÑ-ÝÞÞÆÒÒ‚Á êõ:ö÷÷'ÂøMƒ 2È 5õw4Ü…2›QIEND®B`‚PK %¾"»ˆ~žäçû÷'®ÏÙ˽ÞwÍB²"d9()))))ð¯æÌÌÌàíí-{Àççg„Ãá¬úºöÿÚívX­ÖôNi&Àùùyp‡®®.ávèõza6›F³SÒÃÃCF„B!zJÿ£âí÷ûÁóü· îîîÀó<ü~?r¯¯¯ˆÅbðz½©k©J¥"è÷…B(++ƒH”X@ BŠŠŠRF"‘¤âmµZ1<< ǃ‚‚‚„ÜÐÐ8ŽÃÂÂBê%eY6ù‚œ0 –eñq­H$‚H$˲ˆF£p»Ý(,,„B¡þÐð+++$Y|¹ÃÕÕU¬­­¥ôÀ‰UUUÐh4ÐétP«ÕÂÚÃ0(..†Z­†ÛíFee%, Äb±p~(‰ÐÑѶ¶6hµZÔÔÔ@&“a``‘H$eØ·À¼¼Ÿ‰D´‘ˆP«ÕÇ¡(Š-T’$€,T&“!¯×Kº®“ˆÏšZmüøø@­VC¥RA©TÂÒÒ677Aûý>îïïñôô„………A*…B!ñ#-‹8::Âùù9Úí6ˆHX E‘Ë寻¦ƒ/¨*‚Á Âá°ó¨ÇãA6›E4ÅÌÌ TUʲŒP(„D"××Wœžž"•JÁårÙŸßa/ðÃÃõû}""Úßß§éééÁg»5t¤SSSÎ…C§ÓÁõõµiS£Ñ€a(—˶Ör¿¥R‰vvvL›Úí6noo±¸¸Y¶—œ²,[ |ÑkúoþYÜl6ADˆD"ÎWz½Òé4æççqrr"~¤º®£^¯£X,"ŸÏãííÍd ÝÚÚB6›¶³XšÞn·ëøGÒ·,ŽÅbˆÇãH&“Ρ˜œœ„®ë¸ºº‚Ûívnz———Q(Ðjµ°½½ý=MœœÞÕÕ՟ϪÿûµB:;;£ Ó¦ççg<>>bvvÖö¨E¤iÝÝÝ™6cwwÕjUȵBõx<˜››3môz½P~¿_È~Ê—â/Ь¬¬ ‰ÿ?eTÈÖV¯×…¸,ÿŽDD0 c¤(¿2Œ2ÊèWü^¯‡N§3º+…$A½¸¸Àúú:>£Œ2Ê(£Œ2Ê(£Œ2Êèoê‚ ;áÂþÄIEND®B`‚PK µ¾" bvv6×|?+ÇcÞo«¾¾žb±ZÌîǽëëk”••¡¼¼¼ ÿñ¯‰äà ï››WA‰D\KQÁLÓt5Úx–rƒü† ëííu-Ú<Øöö¶k cŒ‡79ÈÁoyÔ___w¯S0qssÓ½éÞä 9ÈArƒä ©_ÆîÁðOó¿°IEND®B`‚PK 5¿"^®1È ƒß”ÃÜn7„h4êX.ŸŸ‡`†£É[ßRü‡A]×awQg ªªŠX,†««+g@Ã0P©T iš½¥~2™$«Û©( "‘‚Á -Øôô4„ÛÛÛ¾ ¦iX__ÇÁÁ–——m+õAQ¯×ÉçóÑùù9Ù<ðdÁÁ¡ª*ªÕ*:Î×êÒÓÓÓ¾'Z­Þßß‘ÏçñúúŠv»ËËKÜÝÝAÓ4„B!¬­­!Ce¹oòîv»8;;C*•‚¢(Ð4 ~¿ßìÈï±²²‚¹¹¹àäääàäH$hii‰nnnèùù™J¥mllóˆÇãÔjµ†JÞÁT*Eªªöœk·Ûôs5\.gÏl±¹¹ùcûcÙ•Édz¾+•Jö¼¥VÿÅÍÌÌô´½^ïhÇáÛÛ[O;‘HŒ,‹æç……,..Ž$"d³Y³½½½ —Ë5:°P(àþþL&‘N§G—Úˆ‡‡‡Ðu^¯ÇÇÇp»Ý£¯¯¯qqqQqttô©Ôö«ÇC—‰µZ"‘ ýý}2 ãÓe¢Ôh4úv¤Ùlšq£Ñ€®ëee»»»æo†¾¢!“Õ³zyyA €$IPUÝn~¿çKC)Bh6›du…³³³ØÚÚ‚¢((—Ë899Áêêê×'_Q´~†N‡¦¦¦(ÓÎÎ===ÙRêÿu¡Z­ÂårÁν Þ·`AdAdð¿?F†Èe‰÷IEND®B`‚PK yq"< ÂX+CustomBuiltKeySig/images/HalfSharpBelow.pngUT 8?KÐ"Lux õõ‰PNG  IHDRpâù{‹sRGB®ÎébKGDÿÿÿ ½§“ pHYs¸‹¸‹ž²PtIMEÚ 2Ê!ýtEXtCommentCreated with The GIMPïd%niIDAThÞíÙ1kêPðÒ‹ CtˆK‘B§(*Ž¥R2õ#8‡R(Ýü~G±K)¥Ð¡[;w H©Ò! 8¬U°’›ÓáñÞãQŸXMҡ瀋¿{®ÉÿxBD„ˆKÅ7£Œ2Ê(£Œ2Ê(£Œ2Êèš%êõ:#³Ù,„išˆÇã‘¡©T e”Ñø/// ‘‰Dâúú‘¡;;;øŒ2Ê(£ßPÊùù9ÝÞÞFš¦ e0Ðd2‰ ÝÜÜä)Ã(£ŒþøcÅÍÍ Úívd`&“ð}žç-üàÅÅÒé4ŽŽŽÖF¥”-Q‡‡‡T©T(¨Zú; rñ-Ã(£á¡RJ¸®‹««+¼¾¾®®.“ –eÑöö6åóyB¢(ÔjµVN$1ñþþþi1³Ù ­V ÷÷÷°m£Ñèï±@QÐï÷Ñëõ¾Üd,ƒrvvöéXADp]¾ï/œ±XìËh.—›¿½Óé”t]'s_BzzzZ}{—]¡®ë°, ¥R ûûû0M3Ø éw§´µµEétšŽÃmBÔj5ضn·‹B¡ðkøõseÞ›š¦áôô”cÑpQ)å´ }{{Ãåå%NNN°»»‹N§Δñ<Ç¡½½½bpí)3o!žç¡Z­âîîŽã ð?`V üP:ýï ª0 Èd2áwjY=??“”2¼³Œa(—Ëh4(‹Èf³ÈçóPÕõoí¹ÛÇÑétþÍf3šp¢#Î^FÕ4-Pt©ãñªª"™L‚~R{eù¶ÌºIEND®B`‚PK a¾"<U≉,CustomBuiltKeySig/images/SharpFourthLine.pngUT Æ¿?KÐ"Lux õõ‰PNG  IHDRp ;µsRGB®ÎébKGDÿÿÿ ½§“ pHYs¸‹¸‹ž²PtIMEÚ3èUtEXtCommentCreated with The GIMPïd%nàIDAThÞí™KHr]†_ÍC0‰H+S²¢Û¨I7¢# Ѝa$Í•!M›AÓ&•ƒfQ³.I$YB!DV˜¨‰]3´Óq£äëS?ýý/섵ÙgíµÞµö‘G!È£ñ‘g£@ ¤@ ¤@ ¤@ ¤@‹‹‹˜ššJ{½ [ Ýn‡ÝnÏí^__C«Õ"ä'¤~¿F£‘H„fé¿È«®®Ny™‰D"ðx¾&‹ý9—¸ññq\\\Àårã¸ÜÖ¡ÝnÇêê*puuØÚÚÊ>þɲivv6£.! Iss3Ñétäææ&ón‘Ê„B!jkk‰D ‘H°¹¹‰òòò„©.«¤©¯¯Gww7†AGG***099 »Ý…B‘}·())A{{;  ÌfsZóçMmccc¸»»ÃÎÎN\Èy<^öâýððð£jø|>€ÛíŽM_ …FñÓ>_VTTžR©$éÈÕãã#*++’âåå,Ë¢¬¬,%pppà8ޤzŽ âv»|:Žh4’Î>±XŒøüÔrúuv|>]ÿ»Þÿ`ÖŸMôz=Âápþ€ ¹iSSö÷÷!•J³¿ãÓ?,ÿûßizzzòv† Àg2™ò”Éd4K))ð9Ólllä VUUÁîînÞ€mmmT¼))))))0'ö dy³‡• 7½IEND®B`‚PK ïr"<´Ìq~~/CustomBuiltKeySig/images/HalfFlatFirstSpace.pngUT Á:?KÐ"Lux õõ‰PNG  IHDRpâù{‹sRGB®ÎébKGDÿÿÿ ½§“ pHYs¸‹¸‹ž²PtIMEÚ ‡‡eùtEXtCommentCreated with The GIMPïd%nÕIDAThÞíØOH:[ðïøç—ŠýÃ"Áˆ’BAëZ„´oQP»ˆ‚ ZID-ÚH`mjë¢ÜˆE›@Úf䢂ÂEåÆ?‘caeêÌy«ç{>{6¥õüî73‡ù̽sçÜãpDDøáá?†2”¡ e(CÊP†2”¡ -3Á`6›ígÑúúzô÷÷ÿ(ʱ¿Š e(Có‚ŸL&qqqñ³h(ÂÒÒ+ø e(Cú?C0::ŠL&S™Ú{||L###%“R©xžGss38Ž+}}}¥H$R2ÉãñÀf³Áç󡪪ªü­M¥R¡­­­dRCCär9Z[[¡R©þ5ïéé …æûR(Âüüþ°L&“0 à8étñx …z½¾`G’Ÿ}¦d±XH­VÓÖÖVå;‡ÜÎÏÏ1;;‹D"ýý}ôõõ}m1H¹3—ËEÇQmm-ÍÌÌP"‘(«G’„¦Óiòz½Ç©Á¾ 2”¡ e(CÊP†2ôw@ÿÿ“EU€*ŒçIEND®B`‚PK Vs"<˜¡’^^/CustomBuiltKeySig/images/HalfFlatFourthLine.pngUT ƒ;?KÐ"Lux õõ‰PNG  IHDRpâù{‹sRGB®ÎébKGDÿÿÿ ½§“ pHYs¸‹¸‹ž²PtIMEÚ +ý“Ž-tEXtCommentCreated with The GIMPïd%nµIDAThÞí™KHj]†ß­)I‚"FA°#£Q‚AÝœ8 ‚¢EÒ¨‘a“&Í–ƒ¤¨M‚‚‚¦]‰jÒUšD„Eh¦¢ûòý³8fvfþZ/ìɺð¬Ë·Þý-GD„K…ÿA Ê  Ê  Ê  Ê ÿ:4Ãb±`~~>·3ÅbE‘í)àññ»»»¹žŸŸcpp˜žžVÔ'/(ŠX]]…ÏçÃÚÚAøRÿ/AC¡055…‹‹ d|#¡O‹Å¨¨¨ˆêëëÉl6€´O§ÓQWW“q‡B¡Ð‡ƒ ƒØØØ€$IïÖk4444 ´´TÑ$[[[‘×ØØˆx<þZ‰Dà÷û±½½ Y–Ó:q‡ªª*¸\.˜Íæ/¯¬ÅbI]^Y–Éf³½»„Z­–ÚÛÛi}}A ï( Êó| Ìd2‘F£¡‰‰ ’e™²¡Ï©ÕjÅää$NOOa2™ ×ëÁq\VŒ$íÈ477£³³N§Z­6e¿³¥¼·A2;;«¨ãóó3¢Ñ(ŒF#t:ÝÏy¯,ËXYYÓéÏó(//Ïóp¹\Ù7‡™™r»Ý¤V«É`0V«M ¸ÂÂBÚÛÛûzôþ ZYYI‡ƒvvv(ÓÍÍ õööÇq¯`‹ÅB¡P({ÐÚÚZŠD")u¢(R[[[ÊŒ3?2oÕÓÓ½^ŸR¦V«Ñ××—Rvuu•½@*((x·œçyEíRŽÌþþ>’Éä‡ ‰’É$¶¶¶ÒêÏÎÎÞæ»íþ$×ÑÑAOOO6’$ ‡‡‡(++CqqqZýõõ5‚Á Àh4Âf³ýu–.—Kù‘™››K«“e™Çky½Þïy¯œœàààPSSƒþþþŸM̈ãããùùùðù|Ší0cèææ&ü~?T*ÆÆÆPWW—}üsOÃá0Y­V@ÃÃÃ$IRæ?q%PA¨»»›T* Q2™ü^æð4‘HÇã!FC£££$ŠbF™ƒâ¼÷èèKKK¸¼¼Äòò2ZZZ2Ï$>•(Šd·Û©¤¤„FFFèþþþÛ9§äá *öU%â~Íkg·Ûéáá!gÀp···”Í«ýg2¿hO”A”Aß¿Vx½^¼¼¼ä ØÔÔ„ƒ2(ƒþzÿ»»ûðQà'd0ÀUWWçôZáv»™á3(ƒ2(ƒ2(ƒ2(ƒ2(ƒ2è? ý‹5Ù9Àª'IEND®B`‚PK ÏsÏçÎÆ9ç°8ìø A(¡æ¡ªªb8Z‹¦R)ìììX‹2Æ ª*m$B ýÐi;—}Zìââ~¿Fcâõ¤X6›E:FµZ…Ý>݃ôb¹\²,£Z­bÖ±J‡]^^B–eT*5ÃD›Í&¶··¡( ŒG&¥Õj¡\.k‚ñxÜš’Y__Çùù9îïïqpp`NNlj±°°`^N¿0I’pttd6õz½¸»»3›ÓùùyS@¢Ñ(Þßß¿]¬T*x~~ÆñññÈ…NŒ1H’„ååeÝàþþ>„½½=||||»Ñn·ÑétF.~||ÄÕÕü~?VVVt£n·à‘L&¹ÏçÓºÅUUå×××|ww—;^¯×ù¤¡»á3ÆÏç‘N§Q(ÀƒÃá0§Nc¸¹¹,Ë¿0ÓJ†sŽ|>Y–q{{k6­Õjƒ#1—Ë…n·klªªª Š¢ˆL&ƒ\.g~ÃÿÂprr‚ÅÅEó¾(Š8==E8ž Ò…Š¢ˆX,†p8Œ¥¥%cû VñÖj5ÞëõþXàŠ¢Û666L¶…b±8Õ¸^¯J¥^^^t¯[[[ƒ- ñ···‰Ñ××W(Š‚­­­‰^‘HD;§zb–œÒ©PCÂ6í—íÁ`€f³‰ÕÕUÌÍÍYƒRN ý¶‘|>ïõz–ñx¶F£Á/Ç…Ë墒!”PB:*œ¡ßï[fÿ¶ÔúpB ŸPB ýé ÿéé VÛN§¶ÍÍMK’$QÃ'”PB %”PB %”PBÿIô¬Dk§ù KIEND®B`‚PK s"Ÿ±X¬j Ãág·Û!BÕPA a¯Š e(CÿçÿúúoooU[ZZÀÜÝÝU íïïgÿ?‚>??#NWu»ÝX__¯.úùù BK$ÀÃÃ~Íç󸸸ÀÄÄ:;;á÷ûK—AµX&“ÁÉÉ ¶··q~~^Öz—&“IƒAìîîâþþ¾xê´ &*Bíêꢭ­­”çy  è0tjjŠF£Ñ’×Ó¸Ýn‰DJ®["‘øãò<æææ’ƒt¹\Ð$“IšÍf¿t¼¼¼  ! É>ö8ŽC__DQ„Íf+ky ƒüô ÉNacc#œœ¤———”BÕ†,êt:¿`‚ Ц¦&º¸¸H+ߦšN§Coo/ö÷÷q{{ ³ÙŒšššÊlWäGFFàõzÑÓÓNWù=’\ãÜÜ\É?ær9¤R)¼¾¾Âh4Âd2)ž ­š²wtt„îîn´µµÁjµ¢½½v»ÇÇÇP´ûQºø6›.--ÑÙÙYª×ë©Ùl¦&“‰j4šBÂqGý~¿ºìý5™LÔétÒh4J !4›ÍÒ`0H C®¯¯§‘H¤r¨Åb¡étº¨ouuõË-æñxÔÝ2r188žç‹ÚÇÇÇ¿úx<^¹Dª««“m7Ðëõ…ߥj0···‡D"QL¥R8;;ƒÏç+ê{Çïõ;Ëž‹!¹\NI–#ŸÏËž{ssƒ|>_µÕjýöš„òn™ååeÙ¾±±±B­¬¬¨¯½J#‹áôôÐÑÑÇóó3¿ßL&ƒÚÚZlmmÉfwEÑp8Œ@ ­V‹µµ5 üì¾÷ãã333$ ÓÓÓXXXøÙÍ6!¢(âêê ¢(bccCÙ.P-*Iæççqxx¯×‹ÍÍͲîŠßÄxžG.—Ããã#vvv¯¡ê‘:$ #«Ëéßÿééé ’$U lhh€ftt´äkE%Ãår±ïH e(CÊP†2”¡ e(CÿJô}‘±,æLýIEND®B`‚PK ú½"<Ց㇇,CustomBuiltKeySig/images/SharpSecondLine.pngUT ¿?KÐ"Lux õõ‰PNG  IHDRp ;µsRGB®ÎébKGDÿÿÿ ½§“ pHYs¸‹¸‹ž²PtIMEÚ/4Á]Ù‘tEXtCommentCreated with The GIMPïd%nÞIDAThÞí˜ÍK2_Ç¿¦½ *ƒ/$”RôB›ÐEB‘¤»vEDE­l‘mÚ´h[ЦU‹"© h!f¯è¢¤ ‚B¨(CP(³"…qÆû¬ zsì×üä¡ç˜ÍœÃ|çœï !„ €V„R R R R R þJ dhh¨`‡µZ YGGGÁ²“ËåÐãR þ> Ìï÷ VZZ I{{{Áz©N§£Í› <<_¦ ‚Ž-‚ÙR8:éÚdmÕ ÙÖ‘âÒ ’‹Ž‰NÖ’AÍ‚ 8%:4DÑÖP ½çý ?üA”òÔ÷Þïß9£Ïëî9÷xrŒ1ƒÇoB %”PB %”PB¢Ýn>ŸÕjU?´ßï£V«¡ÓéPN ýsQ®T*±R©ôéEY–Q,á÷û1??¯*h2™ 8Oz½ŠÅ"Ün7VVVTEF#À¾‰÷÷wÆq+—ËL‹˜8§ƒÝ8::Ò¾z½NOOáõz±µµ…ÛÛÛ±QAé?>>p~~ŽD"V«…ixA)–L&Ñl6¡Æ¯#Ñ««+Äb1Õ0Eh6›úÌãñàííMŸŽäv»qvv†z½ŽÅÅEmr:ˆååeD£Q¬­­AEí¶w€E"¬¯¯O)Bqpp ö m·Û¸»»ûrGôÉZ­6tñóó3dYF¥RQ  pù|ž …/ß2ÕjKKK°ÙlC? ÙlBű jvvvº†¿ººÊB¡> _’$\\\ ÑhhN%IB¹\†ÏçC0Äýý½vçT’$\__#£^¯OÝG¢²,ãòòR5Lº»»‹ÇÇÇ¡Ïóêçôááá[Ðår!—Ë}¹[iRH.— '''¸¹¹Áöö6fff´+¤……ìïïcssóçáÖ*§ÇÁétªŠDAÀññ1666`6›U¿á Ã.Ä;;;Ú™L†e2™‰?==Á`0Àn·+^c±XÀu:6éća³ÙJ¥”ž‡`µZaµZ'BÍf3æææàp8h>%Tÿ¦Y¼··“É4~s ?mÿ½BªT*cÓ†(Šúý>$IÒokyžª—PB ýïþëë+^^^tí½B>ŸG:Ö µX,Ôð %”PB %”PB %”пý´|áOåÂòKIEND®B`‚PK ýp"<[CˆDD.CustomBuiltKeySig/images/NaturalThirdSpace.pngUT 7?KÐ"Lux õõ‰PNG  IHDRpâù{‹sRGB®ÎébKGDÿÿÿ ½§“ pHYs¸‹¸‹ž²PtIMEÚ :hOÂÃtEXtCommentCreated with The GIMPïd%n›IDAThÞíÚ?H2qðïïí -ÿ/‰d¨8¸ûg \Zl9)hJ8w]µÁÙQÁÉ)÷wA´Qû  ‚Eök2z_Ï·¼÷î^‚ç—;?ü~ßÇÃcœsƒëþCJ(¡„J(¡„J(¡„þc±t:mØ c ù|B<_8Y( …L&5‡­V+À*‹ñ\.Çõ*Z½„jzsscÚëõ°¿¿D"¡?Úï÷‘J¥‰DÐh4ðòò¢ .//;À9Çd2ÁÝÝæçdYF½^G³ÙÄóóóÇ{ŸžžðgÿW‡Ávww¦L§ÓÃáÜßß/ý³ÙŒX,¶Z­V—¾Çãáëëë€â‹1ƃÁ ªÀ–}£‡‡Åãv»¢(b6›¡Õjé»l6²Ù,®®®P.—±µµ¥z« ßÁDQÄÉÉ ¶··5 áo^Ed³YͰ/ÑL&ƒ³³3ccPèU?+ð?'“îè`0Àáá!ŠÅ¢~[æ3V*•P«Õ ˲>«w^Ãáð›N§ÚüÒ÷ù| ?`2™àt:1—^™ +íaÆÎÏÏÁ†Ãặ·‡n·»´Ùb±ÀëõB–e\\\¬„z<žåSFi²X,~||̯¯¯ùéé©öSæsmnnâàà’$Áçóéƒs,NC’$øý~}³wccGGG$ @@óDRD›Í&\.—±1¨'H·„j·e …‚ªÆv»ÇÇG¬ÒÏC&“ðúúª }{{ç«ô3ÆÀ9WüïT¥RáÑhTU/SûœÃüJ×ÖÖVâôp¡„ªø···†aŒ1¸Ýn°Cÿ­hµZƒ„J(¡„J(¡„JèDßsWV@úœIEND®B`‚PK ™r"<È PP*CustomBuiltKeySig/images/HalfFlatBelow.pngUT ":?KÐ"Lux õõ‰PNG  IHDRpâù{‹sRGB®ÎébKGDÿÿÿ ½§“ pHYs¸‹¸‹ž²PtIMEÚ 2{ ctEXtCommentCreated with The GIMPïd%n§IDAThÞí˜ÍK2]ƯqÆ!Ë £ÌÕ¦ „„¨À6.[eAЦ…´ŠúZXЮ]¸È"$"ÐÚE$-#¢’H¢/BÉ„>dJMû]=¾„õäÇèÃó¾ç‚9œ~œ™û\÷}GD„2K…? ePePePePePeÐ"%ÜÞÞbff¦¼ÐššX­Ö²B9vTdPeÐÿ¹áG£Qœžž–×{MLL0ÃgPePý¯W¿ß›ÍV^ÃÇãôððÀª ƒ2(ƒþ%P¥ýãGèúú:, dYVÎðÃá0–——¿ 8::ÂÙÙfggÁqœ2P"B*•ú6@–eüŠQ úAN§“ôz=¥ÓéocdY¦ËËKzyy¡\TTö&“Iìííahh&“ ¹–H¡X4…ÇãÓé„ßïÏ;»…<~îîîàr¹°²²‚ÇÇÇÂ)— ÷÷wŒŽŽbkk ±X,k¾¡¡ccc0Å%’$I´ººJ&“‰d=ÇQgg'9Nz~~¦|”½¿¿'‡ÃAÍÍÍ_ÂDQ¤ÚÞÞ¦*DŸ >Ÿªªª¾„ét:šœœ¤óós*VŸþi$ÁÛÛÛ¿]ÇA£Ñ ¢¢hll,÷ ‚«ÕŠÍÍMÌÍÍA­V£¾¾¾4†_YY‰ññqbww6› ¢(*ßá'‰Ìž3›Í0›Í€P(xzz‚,˃P©”)¿ÜÉÉ ~ I^__a0H$‰D²Hèõzð<¯¬á_]]QWWñª(h @8èt:ØíöÒwø.—+c‡ƒ¡´Ý`0$­VKÈb±P"‘ȹ´´R"Âôô4$IBSSÜnw^…¡ èÎÎÖÖÖP]] ´¶¶–öÔv}} »Ý­V ¯×‹ÞÞÞÒtƒ¿ a³ÙÀq|>zzzJwTL¥Rðx<èïï‡Á`ÀÁÁAÁÀœ²×ëõÏóÔÞÞN‹‹‹9—¯ßéÇ3Y– …`4sòUvMÇ  Ê  ú£þ¹ò€·ŒŠuíIEND®B`‚PK ‚¾" #N[SÚ(¥Èd2H&“8<<Äññ1²Ù,t]ÇÕÕ•áz299I3™ŒáÄr¹ŒB¡€ŽŽ”J%T«Õ¦ó»ººàv»ëÁ\.G?[DZ¾¾Y–ñÕ—¬­­-ŒŽŽÖ§Ôçó}ºèöö¹\Îàt:188ˆ`0ˆP(„ééix<k'¯×‹‘‘ÜÜÜ ¯¯{{{°ÛíÖ‡„ÌÌÌ`bb¡Pp¹\˜››ƒ¢(†˜!èñx‡155BxžÇöö6ÚÛÛ;+MAžçát:A –†¦`[[«¥ÿø~J¬­­!‰àääÄÚ¾T×uH’„D"ÓÓSH’„ƒƒÔj5ÀÂÂBcpcc†Àõõ5jµVVV Ë2DQÄÝÝt]o8gg¢(Öƒªªâõõµá¢R©„d2‰ËËK¨ª X]]5•jµÚøº´IÄb1 àKƒã8:44DS©TÃk:Œþ'£à8v»½½½X^^F @gg'l6›57 ÇqðûýÃøø8––– i¢Ñ¨5oO^¯ÝÝÝH§ÓH¥Rðûýv`æ”0õÎÎÎBEH’žçAiš®oï`0ÈJÿ<踿¿7UQŠÅ"(¥Èçóx~~þð›¢(PU²,w~ápØT«_©TP,ÑÓÓS÷¾wå„ã-¾½½Q3#S—ËEŸžž¨Ù5†ÃlÕèïïG,ƒÛíþV¥!ìSÈÀ2??Oóù|ëÀD"AEiÈj)ÈÀ°Õ///­ŽŽðððÀŠ7È@2 d ÈÀ¿ üðì»/ºIEND®B`‚PK Íp"<Î|úÝMM/CustomBuiltKeySig/images/NaturalSecondSpace.pngUT Â6?KÐ"Lux õõ‰PNG  IHDRpâù{‹sRGB®ÎébKGDÿÿÿ ½§“ pHYs¸‹¸‹ž²PtIMEÚ J:ÓJtEXtCommentCreated with The GIMPïd%n¤IDAThÞíÙ?kêPð'%RŒ ƒ¸ÑZ7KéàйÅ]'; E?@E ut‡–bݺôèXEˆº(¢‚nI5éétË•ª7þI.Üû¾à’ãñÉñ9ï!cŒAç:À_(B %”PB %”PB %”Ћ¿½½E§ÓÑ <;;zz §Ó©z|| ŽŽŠ„Jèøooox× ´Ùlàóù<šÍæÂÀxŸOOO˜Íf›¾Ú/6›MÜÝÝ¡T*áããc§GƒAV«Õ.N§SŒÇc8p‡K1›Í“ɤ¼¼¼7 ˜$I ¯¯¯ˆÅb8??GµZ]û#¹\@@5j2™Vï2V~, »¹¹aƒ‹Emw³ÙŒd2 Q‘Íf·ÞkyµØõõ5‰ìv;`>Ÿoß®ü ‹D"H&“ߨ^z¤•ŸG¯×3¯–ƒAjµZ\¼dAQ¼?>>ÌÝê{<j6›æ$¥än1ÅàÁÁÂá°qËbÔ„ççgT«Uþ† þ!ÐFéíííÛ ™LF›››Æ¬C»ÝEQ¾Ÿ „°Ûíæï½½=T«Ud2Nš)¥”hµZ–݆€µZ ‡‡‡ðûýPUn·¡PÅbqü?¡±»»KtuuEN§“„¤( Ð/«ÕJ©TŠÆ‰±ÀååeRU•ŽŽŽèöö–*• Åb1²Ùl_Л›c@EQ(—Ëõœœ|yÓ­­-cÀ@ @Rʾ±z½N‡C½^ïÀyÿÇXIãp8`±Xþ>77§?[­Öѵ´R©`ØFøå寯¯¸»»8Þh4ôû……Üß߯¥>ŸoèV¿V«¡×ëa~~¾o¬ÝnãññQ^ZZ‚˜e1(’ɤþý|>½¿¿Lš—6)%R©”ÞÂNOO‡¶¹_×Òl6‹R©ˆD"X__Ÿ\-ít:Øß߇”kkk8>>˜Å†ñxår.— çç瘙™™\·¸¼¼D,ƒËåÂÅÅœNçäºÅõõ5¶··±ººŠB¡€•••É´§z½ŽD"MÓ Q(°¸¸8™ÓÓìì,Òé4àìì š¦ ?Úµu:<==AUÕ_A|ÆgAdÁ¿~™»~mðIEND®B`‚PK P#<˳‰ãùù&CustomBuiltKeySig/images/FlatAbove.pngUT wÂ?KÏ"Lux õõ‰PNG  IHDRp ;µsRGB®ÎébKGDÿÿÿ ½§“ pHYs¸‹¸‹ž²PtIMEÚOÄgtEXtCommentCreated with The GIMPïd%nPIDAThÞíÖ=kê`ðÄ€`ã Ú¡‚b6­‹’©‡‚(XƒC×~€B‹‹ßÀ©…~ÛÁ,RJ‡ö8¸”"ˆ/C6Å¡ JÚBr:\·´÷ÞôÚärË9áyòò#$Ïÿ< ‡uxxH{{{´jùàq1È ƒ 2øÁççg躎étê.ØëõP­V±±±Y–‹ÅN§qyy "úý͟퇚¦Q0$I’(ûŽÉ²¬_>çSàÖÖ% jµZ´\.É0 Ò4"‘ÈôêêêkÀ@ @÷÷÷ïÎišF‚ Øh©TúšŽŸËåÉdÞÍW*D£Q{<`YÖê?M øp^ElnnÚcI’ ‚{ëˆðøøhEq oÖ¢ªªî&ÍÝÝýÍvww±³³ãhš&ÎÏÏío|vvŸÏçØn·Ñï÷'''ØÞÞþÚ¤ù¹æó9%“I@år™^^^ÜÝy×ëuŒÇcd³Y\\\@E÷ºE³ÙÄéé)EÁÍÍ B¡£ûUUÉÉ…Ýn‹Åù|–eáúúOOO(‹Ž1ðïïï;ºp6›áááN“ÉGGGH¥R•ŽªÑhÐúú:|àNK ?vÌeY Ã@0\i9yׯ ƒßôßÞÞz …BÁÓ¤áhcA¿cx›¦émxÇãqoÃ[×uî 2È ƒ+F[­Vó4ÚükkkÞ¾!‡7ƒ 2ø ·úÃáÐÛ,•e™wÞ 2È ƒ 2È ƒ 2Èà¾çsÜ—ÙdV„IEND®B`‚PK @r"<-‡8  1CustomBuiltKeySig/images/HalfSharpFourthSpace.pngUT w9?KÐ"Lux õõ‰PNG  IHDRpâù{‹sRGB®ÎébKGDÿÿÿ ½§“ pHYs¸‹¸‹ž²PtIMEÚ ;ÐG‚tEXtCommentCreated with The GIMPïd%n`IDAThÞíÙ1kêPà7;;–Ú!¥.Ñ–ú ::t,Ä?à/pïänv] ºhQª‹C'‹´ƒm©…‚¥Òâãw§[ð^-E“ô^ú}圄'çpÎË!‘ˆˆàryð Å(£Œ2Ê(£ßˆ d³YwÑ››\]]¹?½v.x!1ʨ3(a0 T*A×ugQÇ]×qpp€ýý}œ­Ê‹G£®¯¯Ñl6Q©T „€¶镊Å"5›Í¹ÆF£Ã0–>t||ŒP(´è÷û!‡ÃaL§Ó¹ŽV«µü-% GGGˆÅb+¡›››-¨ÃÃCðqù|>:==%MÓ¨Ûí’iš´NÉŸHQöööP.—Ý2™L···èõz899Ál6³uŸ.i*•âdÔY”ˆ`š¦óèÛÛ...N§‰DP¯×íß2`Yúý>žŸŸqww‡d2ùÑ·îHåÇÇG ‡Ã¹ÆZ­†jµŠ§§§…ÀÃö··W766 išFF\§ÓÁûûûÒUU] _ |$I)ŠB‰D‚îïï× ü/¡Ñh”ºÝ.M&²£.¤ÝÝ]¨ªŠx<ŽZ­Ã0F üËËKx½^@»ÝþôaÛ>ý rö2Êè?JçççT(–Þ „€išƒ¶€;;;„ôúúêÚ(eY†Ä e”ÑŸÊFívÛ5pkk òl6ûë;’“eY>£Œ2úãÿååãñØÕöœËåÏç]CƒÁ >£Œ2Ê(£Œ2Ê(£Œ2ú_¢¿ÿ)óH”žyQIEND®B`‚PK ä½"<È£ 33+CustomBuiltKeySig/images/SharpFirstLine.pngUT ܾ?KÐ"Lux õõ‰PNG  IHDRp ;µsRGB®ÎébKGDÿÿÿ ½§“ pHYs¸‹¸‹ž²PtIMEÚ/î2¥tEXtCommentCreated with The GIMPïd%nŠIDAThÞí˜MK2]ÇÿNãäK†¤X´wVA"ERD´ÉE«(úó Z„"°ˆjÓ¢”„^Y¸hQDeÑ*° Ãr2l(uÆó,žà¾o|»gâ\0«ëÌõ;çšëüÏuFG!ÐÐhlHHHHHø#º™™Í.3V«ìðð°f«3ÐÑëR þ< {||¬Œã8è|>ŸfZj³Ù¨xS R ªÑê»\.Í´Ôáp@w¯eYzZP âñ8ŠÅ¢6ÀP(„‘‘|}}©”eøüüÔ&¥‚  ½½GGG´Jÿ‡­þââbÅA¢(¢P(`ssggg¿ø... Š"ôz}Ù8‹¬$IUU)‹Eü>^–eB It:]Ù8’$¤ K¥RÄl6“H$ò‡/ ’ææf"Šb5¡ˆêßP–å²ûU`¡PÀöö6xžGoo/–––JM­Á !Èd28??G4E8† ˜žžþ3::ª ø_Š–——pyy‰l6ûwÛ¢”ãíí [[[ØßßG,ƒ(ŠØÙÙQžÿRÕ‰D€ª†aHKK ™œœ$‡‡‡%«”U2Y‹Å«ÕŠl6‹½½=ôôô€ã8õ¤Íl6£¿¿óóó888@"‘ÀÂÂêëëÑÙÙYV±h8ŽC[[¼^/VWW±¶¶¿ß¯LKK9úúúpww—Ë…××WlllÀ`0(ïD"Q:ß ƒ‡‡‚BR©~ŸN§¿;‚Jª««ƒÎét’jäêéé v»F£ñßÇÇÞßßÑÚÚZQ¼ÇoEUZë)‘L&‹ÅÐÐЀññquO‹b±ˆT*…ÛÛ[d2x½^8NLMM•íîjZa:F(B4ÅÉÉ âñ8òù<àææFyJs¹®®®‡‘Ïç1;; ¥·»’ÀÓÓSøý~$“ÉÚÚ@†)+ql¹n»Z˜^¯ÇÄƆ†088·Û­^•2 »ÝŽø|>ˆ¢¸ÞyØï÷Íýh4Šõ†aàññÑ<<àþþ~¿…B£Ñèk+ï½½=Ë•÷óó3¶··áñx01Í¥ÿ¯Í`¥èºNV›$It{{K­V‹ɲLOOO´ìu¿Û–öÒÃÃC:::¢ÝÝ]º¸¸ ÉdBßÉÒ^trr‚~¿R©„p8üý§'þï‰Aÿ?PPUÕщ/ÔëugAnm 2Èà?ø;M¹\v¬ÕjÎ~=qófAdAdAmÈ'°z‡±I/IEND®B`‚PK ºp"< ÈÃ<]].CustomBuiltKeySig/images/NaturalSecondLine.pngUT  6?KÐ"Lux õõ‰PNG  IHDRpâù{‹sRGB®ÎébKGDÿÿÿ ½§“ pHYs¸‹¸‹ž²PtIMEÚ 4½ÁFtEXtCommentCreated with The GIMPïd%n´IDAThÞíØMK*að¿¥"¦¸ié[û ~…È/ µ‰»¬l×RtiIäF„ |Ùˆ.¬­â¢ˆ¢ÓsWu¯f93÷^:g30Ï ?ÐgþsÎÈc ×þBJ(¡„J(¡„J(¡„.Xò««+¤ÓiÉ@FY¹\f÷÷÷’¡*• 2 %”ÐøõzÍfS2P¡P@~ssƒËËKÉP­VKÿSPŽãÏçÑëõÄQÙêéé‰`wwwLŒ¢Dèÿ‹ÊNOOY,{w’çy4›M¬­­A¥R êõzÈ:ëv»ï:677‘H$°µµ%(º¼¼¼X8ŒÇcV¯×¥ ‡ççg\__Ãf³áììLÜÄqܶ»»‹jµú½ve^,•J!£R©,Þ#}†%“IÁ°¹PŸÏ‡V«5ý¿YZ>¦V«çççØÞÞ?‘¬V+âñ8ªÕ*Ün7”J¥xicc@{{{‚$ÔLt}}Á`.—KÐ8œ‰F"8NáÇŠÛÛ[ …w'ƒàââÅbqêÍFÃá¡Phnpeeržç1™L~{˼?®}hêðòò2óš5™Lf~6›ÚDZ¶¿¿/~àó/vrr‚|>!†¼™h.—Ãáá¡`Ø\èÑÑÑÔ5³ÙŒáp(M7h2™FQ«Õ`±XÄÝHF£p»ÝP«Õâý¼¯˜ßï‡ÇãYû5 ðûýðz½‚a3QN‡‡‡Á±7´Ûí~{âFè÷ûx||üR³- ‡Ã,~ m·ÛP*•Ðét_+°Èo·Û¥ |šO ÕëõX]]ýúøOŸ^ %”PB %”PBÿ ô™'º¯ð3ÓIEND®B`‚PK m¿">1CustomBuiltKeySig/images/HalfSharpSecondSpace.pngUT Ã8?KÐ"Lux õõ‰PNG  IHDRpâù{‹sRGB®ÎébKGDÿÿÿ ½§“ pHYs¸‹¸‹ž²PtIMEÚ ;ΊItEXtCommentCreated with The GIMPïd%n•IDAThÞíÙ±j"Aðÿ¸«›Á@@T µ„´IÀ°ÒRÈ$/w°Kª 6‚BP‹,Å" ¢UdEVCu檓K¢—œ®Ç}lãÎðsggþκL!°å2á/¡„J(¡„J(¡„Jèš%_^^âöövk Ó鄼¿¿I’¶†Úl60zT$”PBÿóÀ||„ªª[­V+äb±ˆ›››¥TUçN§ÓtooïëÀO&“Ðu…Ba»÷t2™Ðì%”ÐÍfk¯Ûo¡º®#“Éàôô~¿í͹ü»+j·ÛxyyA­VC­V›Ÿ›N§k¡ìüü\är¹…¨ªª ‡Òáp`ggg%Ðívƒu»]1 ærÎq||Œçç祯®®‰DVB- dEQ (Ê»+”åÏ£.Ivww‡qxx—˵úøŠ5N…×ëæG(b< #jáDr8ƒ899A>Ÿc ÆmW cµZ…ÅbÜÝÝAӴ͇ÃO²—PÃÑÙl†N§ƒëëk´Z­Íþ<œC½^G @«ÕÂd2A©T‚×ë]=ð‹Å¢h4 ÷ºOOO(—Ëè÷ûïÎ%‰•QEQ sÎßýTqΑN§Ñëõ–vüØçO7ßÊÞ_I’D¥R1>{?–ÍfC,C4ÅÑÑ|>ßf&’,Ëp¹\FÈd2›[2Œ1\\\àþþÍf‘HœscŠ?} “ ñxœbPB/MÓ0—6x}}ÅÛÛ:Ž! Ùl;;;Ùlvi#MÓÀ9‡Ýn7õx<_ÿ”Ëå ë:R©”aÃKo+%”PB %”PB %”Ð5ëÿ°¢èám’IEND®B`‚PK =#<Ë­…=*CustomBuiltKeySig/images/FlatFifthLine.pngUT UÂ?KÏ"Lux õõ‰PNG  IHDRp ;µsRGB®ÎébKGDÿÿÿ ½§“ pHYs¸‹¸‹ž²PtIMEÚ9¶­YtEXtCommentCreated with The GIMPïd%n\IDAThÞíÙO«1aðó<3#ÊŸ’²±á.(B²‘p÷ÊêÖµý- ¬-Xû|€I¾YPS6¢lÝY)¹.fœwóvk^7ƽL½:§”9˜Ÿgž9Ç3ƒ!"‚…ÁÁâ ÀÛƒ±X ºÝ®uàl6ƒõzMsH ø¿ƒˆÇãñþà`0€|>@<„Ãa(—Ë ªêUßölØl6l·ÛX­VQE€“G(ÂétŠf˜Éd0™L¢,˨ª*ŽÇc|~~6 Éd???oÆãq\­V†ü~¿Çl6k@{½ÞEÐÔ–J%ðx<†œ$IP*• 9EQnsÒ¸ÝîoóOOO†m»Ý~ß:Ül6†íT*uñ3âp8¼Xsóù¾{Ÿ,Ë_Ï].pÎáÜþcÀÒéôÙ«§ÑhÁ`¼^ïÉkŠ¢Àáp€H$N§óüèDÑ\v:“¼¢(_uFñããÃTþx›Í&hš‚ @«Õ‡Ãq»Nóïûý>J’„€õz¯‰«Áív‹‰D‹Å"êº~?P×u|}}EÀ——Üívxm˜5MÃJ¥‚œs|{{ÃÃá€? S`­VÃ\.‡>ŸÛíöÕ‡ñ*0 ÓéÄB¡€‹ÅìÒmUUs>Ÿï&K F÷in,‰XvH%I6™L,ctÒH ŠFúÑqâr¹´ š7øÍûýýÝÚ¥¾ßï·v©¯i-õ $@ÙÞþþ¥cÍO“(“eÙ2sNÍ›@ $@ $@üq3C_g¶ûIEND®B`‚PK …½"::"®^>ŸzzzhiiÉ6¼mÁR©ô- Iùý~R…VVVÈ4MB|Ù-\Ý4’$AUU BÓ4hš†J¥‚‰‰ LOO£­­íçýðc„@€b±ùý~šŸŸ§§§§?¾W(\õCÛ¶··cgg±X Á`ápõí€í>…BH¥RŸw,géÿ¾½½áôô†aü(„Àýý=„˜››C__z{{±¼¼Ü˜ö$„Àåå%t]G±X„®ë0M–ea{{Ûq/û²(›ÍR0$UUI–åo#/N»Ÿø××ט™™Áþþ>á6]_Ò»»;äóyÇHww7âñ8âñ8FGG»Äe]]]Ð4 ­­­X]]ÅÁÁAcÂû£  ‘‘Z[[#Ó4ɲ¬mflG¨( ¢Ñ(’É$ÆÆÆ055…L&ƒÙÙÙß ïÏ ,„€¢(m 2è<7eY®:­D"áêaƒãSSÅÕHì껸â]K[sIEND®B`‚PK •s"<å†nÔMM.CustomBuiltKeySig/images/HalfFlatFifthLine.pngUT ù;?KÐ"Lux õõ‰PNG  IHDRpâù{‹sRGB®ÎébKGDÿÿÿ ½§“ pHYs¸‹¸‹ž²PtIMEÚ )EÇH‡tEXtCommentCreated with The GIMPïd%n¤IDAThÞíØMH*]ðÿ¨ÑE*X-B£LûXFƒ-‚QEABmJhU´n-\em"Èh٦¨P¢A`®£ˆ)+Mç]]Áô–·;Îû¾tþàÂ9Ê9Ïœ3$Ž ÿBÊPiÐååeLOO‹Š*¾úA(B(bcšÎíí-’ÉdáQ"Âññ1†††ÐÜÜŒh4*ΘæJ,ƒÛí†ÃáÀéé)A€R©o"}ìÂÕÕU8NÜÜÜnöþ¬V+\.^__³Ú+++aµZQVV–÷¸äL<'—ËEƒäüÔÖÖÒÒÒ=<<П$ ½¿¿§……ÒétÄq\$“ɈçyÚÞÞ¦xŸƒƒƒ(..½ ftïìì,ŠŠŠ¤­½_///XYYAWWôz=Ìf3l6®®®þ¸~~š‰‰ ²X,tqqAF£ñ·3Ûívç={ó*øwwwèëëCGGá÷û155¹\ˆF£ÅÙÙ™xw*—Ëicc#㺠4??ŸqÇÃÃÃß«H¹Ð––!«íññ‘”Je­««¯{Õj58ŽËº®R©PSS“QH$yˆ¿¿¿§¿ƼþÇMNNÒgO|¿ß§§'tvvfµ% x<ž4ÜÚÚŠ†††OÁþþ~(ÚÛÛÇû£p8 …Bžç³Úö÷÷Ó V«…Ífû²‹µZmþëôcA ‹Å’~Üy<q×i®z{{ÑÓÓSØ-h"‘ÀÜÜ’É$ GÞ3÷ÛèÚÚöööPUU¯×›±l ‚Øívh4x½^Ô××f7ø+———€Z­ÆÎÎL&SᎱX [[[àyF£>ŸïÛ`^ßn·“L&#½^ON§“‰ým¸¯^éD"ƒA˜Íf”””ˆ²sà~Ì{$ÅÑÑQÞçJ1¢ÓéÀuwwÓÇ v!3>>þƒÆ”¡ e(Cÿ;(×ÔÔD‘HD2pffÜõõ5¥R)ÉP•JÅž2 e(C:ªX\\ÄÛÛ›d ÏóP$“IIÏ2‚ °‚ÏP†2ôÇüp8 )7ÛJ¥œÉd’ôXa·ÛYÁg(CÊP†2”¡ e(Cú¿Dÿmí~™Ò›°IEND®B`‚PK G¿"<±x¶yy+CustomBuiltKeySig/images/FlatSecondLine.pngUT vÁ?KÐ"Lux õõ‰PNG  IHDRp ;µsRGB®ÎébKGDÿÿÿ ½§“ pHYs¸‹¸‹ž²PtIMEÚ:0äæ7tEXtCommentCreated with The GIMPïd%nÐIDAThÞíØ=K+Aà7c]Dba» Ь6 Š0–6vþ€­–6Q,c#Ú¤±°–‚hc£V! !ÄàfM&¯Åån¡ùXãÞ\”s`a“x˜33gw6@’ha(´8P@P@PÀ_ †††øúúÚ:ðáá¡¥¨€×PÀß777Q*•Z:Žƒ··7)Þ¿|||Äõõ5üÌz]0™L"‹ùºŠ¥ÒøŠw:®¹Ïžžž µF:F(ò§–š¦YóUÿååÏÏÏðoˆZkÖºâñ8#‘mÛf½~_¹‚JÕžÆ@ ðg¢•B½~²Jÿï¶øJçr¹Œûû{ÜÞÞB)…‘‘ ºsí)X'¶··‰Dè8ÏÏÏ911A¥C¡—––˜Édè5<¥ôðð‹‹‹ÐZcnn†aJ¥’É$fffÍfýa{{;MÓäÅÅ+• I2—ËqaaÁ)®®®zaCP)Å«««OmÙl–]]].hmÛþ~Jûúú0<<üéÃ0099éþÎçóž^E‚J©š«°»»Û½ïééñTàƒÑhÅb±jc&“A.—Ãüü|UôææÆ½/‹ˆF£Ÿ©TŠZ몧§§8::B"‘@0üôèZYYqÓ¸±±ÑÑQÿöáÇ8>>vÌØØXÕ>MïÃQ©T°µµ‡ÃˆÇã‡Ãÿ®–¦R)\^^ÖÖÖ`Y–ÿ¥ío š¦IŒÅbžSÙTJIb}}www°, ‰DÂs*›áþþ>ÛÚÚ8==Í|>ÏfÂhÛ6wwwÙÑÑÁååe 6uÁvvvrvv–½½½ÜÛۣ֚߉º`˲0>>Ž©©) ¿¿_Îø‹÷ÉÉ ÊårëÀ³³38Ž#ßiP@P@PÀ¾Ä©0ÅTð™IEND®B`‚PK ›¾"<Ñ» *''+CustomBuiltKeySig/images/SharpFifthLine.pngUT 6À?KÐ"Lux õõ‰PNG  IHDRp ;µsRGB®ÎébKGDÿÿÿ ½§“ pHYs¸‹¸‹ž²PtIMEÚ46†es'tEXtCommentCreated with The GIMPïd%n~IDAThÞíØMK2]ðÿq&E°(°°¢ÜE"Ù‹‚½¬ZH­…ÖÑ2úA«‚Ö}€ ZTP‘­Ä¦6FEô†‚– µ ‚lœ™ëYôøTãíÜÃÍýœ Üœ‘ó›9çÌuÎ5Œˆ&†&9ø?EA6›…,Ëæ€©T Æ‚///( %íDMÓŒÒááaÌÏÏ›7‡ªªBUUþZpð/¿;DˆF!çççˆÇãˆÅbeÛÛÛÆD„T*I’°»» MÓ‰D>žÌçóUþ„D„D"©©)Äãqd2(ŠRöÍŠße–ƒƒìïï#âôôÔLú"òù<Ùív û'Š"uuuÑÂÂÂWÝRÅ`}}= ååezxx EQè»({ѸÝnôõõ! " BUUtww#Àårýú¾GMM H$011¥¥%Øl¶ëWWWÆ,šêêjìíí¡§§‡^¯‡ãö+ñ%h·Û144dxbmmmºŠ™ûû{ØívÔÖÖ~j/‹Èf³p»Ý°Z­?ƒ···ºÀp8 ¿ßÙÙÙOíétcccØÜÜD{{ûÏCêñxt …ÍfƒÓéÄ¿ÿ¯( chjj‚ž¾ Ý-ÞÞÞL&±±±ñ{v‹b±ˆt: "ÂÌÌ nnnðøø¯×‹p8\9X,qvvI’‹Åpxxˆ|>MÓ IRe¹ô=r¹­­­Qcc#Ùl6áÇtçóùÊOmÏÏÏÇññ1^__ËjAÊŸÃB¡PÖÑÑP(„`0ˆþþ~c·'«ÕJ4==M‹‹‹d±Xèää„ô„.1F‚ ßï§õõuº»»û؆.//IJ&“º@ñ»yA Àèè("‘199ù{’w]]¶¶¶t-„²@½%X.—ÃÑÑQIÉöôôMÓ°²²‚†††ŸÁÿ*2¿:µ)ŠRR”¾—Ú²,CW_¤3z{{inn®¤½ÜEË™?¬ªªBss³®ã…!ÕSkk+®¯¯u¿§ºA—˧ÓYz(b ¢¨ÿ¾™ÞOЪª‚1‹¥²Y`ü›·Ñ!f2SAÖÒÒbê2UUÍù*å 9ø÷, ™›K£Ñ(OÞä 9XáQuuÕ\pggÇÜí‰'orƒä 9ÈArƒÄ?‘ì÷´ŸÚIEND®B`‚PK s"<~od0CustomBuiltKeySig/images/HalfFlatSecondSpace.pngUT ;?K„“Mux õõ‰PNG  IHDRpâù{‹sRGB®ÎébKGDÿÿÿ ½§“ pHYs¸‹¸‹ž²PtIMEÚ .¿Ï tEXtCommentCreated with The GIMPïd%nvIDAThÞíØKH*aðÿøˆ¨MF%ôqQFH/¨ 5¢¢m« MA­ "z¹*ÜÌ.$Z„.²Ç¬"ˆj#‘-„„ s1E‹£Dê¹;Á«×&½\îw@ùŽþÏœï|rDD(q¨ð‚¡ e(CÊP†2”¡ e(C M €Óé,-ZSS»Ý^R”cGE†2”¡ÿÊó<.//•ë½ïïïƒ9“¶··a³ÙÀqœ2½×çóÑââbÎ$¿ßÚÚZ466*óUIF´´´Ðêêê·y___rÞŽ)¤H$‚ååeLNNÊûMó…’É$®¯¯Áó<A€$I(*INNNÀózvv–zÞÓÓ‹ÅR\ôóóÇÇÇ­V ‡Ã!«“„ ‚€ûû{ÀÌÌŒì)o4ÂápÌf3666Š–q:¨¯¯‡×ëEuuµü]& ÁívçLz{{K;ËD£Qð<èìì„ÇãùÙÖFD©’ÿnÎÇãx||„ÇãÁ`ÀÂÂÔjµ¬×çÕ{WVVèââ‚ õööR(RnFÊííí¤ÓéH¯×ÓÚÚZAC‘¬­íôôápãããÐëõìo:†2ô?@5±X ¯¯¯¥E}>¦¦¦JвŽÄP†2”¡ e(CÊP†2ô_Dï]K„òXÿIEND®B`‚PK ‚p"<*³MWW-CustomBuiltKeySig/images/NaturalFirstLine.pngUT 46?KÐ"Lux õõ‰PNG  IHDRpâù{‹sRGB®ÎébKGDÿÿÿ ½§“ pHYs¸‹¸‹ž²PtIMEÚ ‚Œ«tEXtCommentCreated with The GIMPïd%n®IDAThÞíØMK*Qðÿˆˆ¥;Å…ˆ¶0Û´jÑBX»VîŠÁ>@¢AD°`ËÀ/àB” ¢ðeU¹hÕ&iU ©|A¦qÎ]\Œ j5:3^î}žå?†sÎÿÌ3cŒAåÒ`E(¡„J(¡„J(¡„:gq‡‡‡ª6P¡PZ¯×«ê[Z­VpÔ*J(¡ÿ7ª-—˪‚.— ÜÖÖ–ªÙ{||LO(¡„ºˆ¶beeEÕìÍd2à†ª¨Ùl¦[f(Ïó ê¢ñx@@]´Óéàõõ•6¡yà'“ɱ, x{{ÃÁÁìàîî.´‚ Œ ˆ¢Æ&Í[¢(lB…Ãa¶³³Ã¾+žç™(ŠLjÍ´¦Èçóp»Ýèv»Ò[E©X±XD:F½^‡F3Û>Ôþ+•JH§Ó¸»»›¿)þjP„OìööV¾N|Ú@£Ñ€ÇãÁÍÍzáðøø8\[[C$Q'‘\.ÎÎÎp¿ß¯ÌšŽjuu±X {{{ÐëõÊn$§Ó‰X,†ýý}Y°oÑÍÍM”ËeY±O´ÕjMü\Ñétx~~ž:q4öôôƒÁðcÐd2³Ûíc·L»Ý† °X,S'¼¼¼Àf³IJ¦“““éïóù¾ í‹‹ ¦ÑhØûû»äÀ×J]ápˆ««+$ eÌŸX*•BµZý}È• üápˆëëk¤R)T*eŒ(Џ¼¼”û­ÕjØÞÞž:Ñh4¢ßïË›½<ÏO|îp8pzzŠ\.§|à;d³Y<<<àèèËËËÊí^»ÝŽh4ŠP(„¥¥%e×t„ƒÁ¹ÞjbMJŒz½Îz½Þ—©r~~.o"mllPE(¡ÿÊqÜlófý ÚétÐl6±¾¾.ù ‚~½J¨¤ú¡¼7 Z¨IIEND®B`‚PK ëp"¨å™y¼÷ÎYÞË3÷ÜÃ=Ã躮Ãâø?„J(¡„J(¡„J(¡s“L&-m AF-}KŽãÀP«ø ’$¡T*Y‹^^^ZR":m°WWWCƒ­V ïïï57oð<&‰ ÕÞÇÇG||| Žúˆ8<<ÔC¡nV̼§ªªBE¼½½™ŸHªª¢R©  "‘HàóósúDš«V«Èåre`³ÙfËÞI±|>‡‡cŽÌ¸‰n· Q‘Ëå þE¶··Ç.ôx??#‰àîîFw“c÷TQÜÞÞŽyžÇÞÞž5WPžçQ,!Ë2vvvÌM¤õõuA,..š·§f`_¢>Ÿ…B»»»†b_¢©TÊÜ¶âøøx¦…Š¢@×uœŸŸÃétN¼.‹Õ4m&tpÑ4 Ó<£ßïn+&‰››Ýf³éŠ¢X×VPSL¨!¨ÛíF2™„Ãá˜þ6H¿^ÿ½ÿHOOO–‚KKK`|>Ÿ¥‰”Íf){ %”PB %”PB %”пý ?§Þw»*IEND®B`‚PK lr"<=°Ý+CustomBuiltKeySig/images/HalfSharpAbove.pngUT Ì9?KÐ"Lux õõ‰PNG  IHDRpâù{‹sRGB®ÎébKGDÿÿÿ ½§“ pHYs¸‹¸‹ž²PtIMEÚ “TrtEXtCommentCreated with The GIMPïd%n[IDAThÞíÚ?kê`ðç½ …Šì ´¸ u¡ˆvpèGpÑ î.êääâÔɵ[]Š(¢HA»²8ˆà¢8¨­Ð?‰9w»´\í­·‰·—ž2å ?Þ$ï9Iˆ "ÂŽóÿ _½»»ƒËåÂ`0تi&“ žžžøš2Êè7A­Û ^.—¨×ëh6›PUçççæ¡///€p8 UUADˆÅbÆÏt8¢R©àúúÝn÷ nÚ齺ºB.—û:7’Ýn‡ßï7ÿFB “Éàìì Á`6›Ít¡P>ŸårÉdòS3üÚñxL³ÙŒt]§ÛÛ[@Š¢Ù8S§ÓÉeQsÑù|EQÌE…€b±ˆp8 ·Ûl6kNq˜Ífèt:¸¼¼\\\¼^ߊT*EëºÇt:E»ÝÆÃÃÃÚF·‰¬'''Ð4í·µZm#‡‘Hdkôèèhs,•JàÍ&IE"’e™z½žñeðu$IÂýý=€yKÆãñ@–eÜÜÜ Z­‚ˆ°··gÌBýÈé0ºËpd”ÑíºL«Õ‚®ëïê÷û€n·‹étú)ÐëõBœžžÒóóó»W«‹$I‚ÅbùšN§!øÛ £Œ2ÊèÎ#Žéññqg ,ËÃáþÔÚŒÌÁÁwFeôÛ¿V ¨ªº30êiÚÚïHfE×u.øŒ2Êè·/ø£Ñ»|Øv8>ŸŒúåç#Éçó\ðe”QFe”QFe”Ñÿý Rq Ñ䜯IEND®B`‚PKÅ!<±Pù%F^"CustomBuiltKeySig/images/Empty.pngUT 1>Kª’Mux õõë ðsçå’âb``àõôp Ò²@\ÀÁ$ý¬îRŒÅAîN ëÎɼrØ’¼Ý]þƒà‚½Ë'E8 <"‹vtƒ0ã¼M²@AöO_Wö[ŒŒ||œâ9É2 sK\#JœóssSóJœ‹RKRSÊ3K2B2RÜ=}Þ§¨ænõtq ɸ÷öúFÎÃn‹O0èmþ#êxðŠ`Å€üPóFÇ¥Ö»…bÜ<w8|úǺï§ùÌ™Ÿå>µ66!@ÝÍc[ÃâCBßÚøÇO ù²ÿbº¦kßã®ÑÙ›Þ[dgeeýûusR¤˜·æÏEßkoK4‡³‰ˆˆ\ùؾ?wöŠUúVç7·pØihh¬H®®~_;=¿úzéÖ9Æ`­0P»Y¼ô »™ý C <]ý\Ö9%4PK +#<ßU›"",CustomBuiltKeySig/images/FlatFourthSpace.pngUT 1Â?KÐ"Lux õõ‰PNG  IHDRp ;µsRGB®ÎébKGDÿÿÿ ½§“ pHYs¸‹¸‹ž²PtIMEÚ„u~ºtEXtCommentCreated with The GIMPïd%nyIDAThÞíØ¿kêPðob£”ÒZDÄMè,)œÒÒ)Héfë_ ÒE:8ûH—¶ˆ"tu­89øcíÖ â"]´è RHýÕœ7=¼6­Ïg¯ïœ)ɹáÃ…{Ïá^ˆ6†›ƒAdA‹AMÓÐn·×+Ò'¡( % Zgð¢aAüÁÛÛ[Ód§Ó(Šø} A„ÕÀf³išÔuƒÁš¦¡X,b8¾³»»‹h4 ‡Ã±˜ÉdL“ƒè÷û "c<ãáá³Ù 0 Innn–›õW ØívÓÙÙu»]""2 ƒù|>@HEªT*K5à/AY–i<¿Ë …€âñøz:¾¢(p¹\゚œœ@’¤Å{·Û]϶0[ n·¢øëw¿ßoí>ìt:˜Ïç‹÷ÃÃCkÁZ­†··7€×ëÅé驵àýýýâ9™LbggÇ:°Õj¡T*pyyim-M§Ó˜N§ØÜÜD6›ýp¯ ¬×븻»ƒÃá@.—C(ú³ZÚëõL“³Ù º®ãç]×qqqù|ŽD"UUñÙÿ…L¯¾žŸŸát:áñx`úý>¦Ó)<¶¶¶VZlÂËË‹)¨ª*ö÷÷‘J¥‹ÅP­Vq}}óóó•û¡ðÙåÞÑÑF£&“ ¶··‘Ïç!˲uǵ««+ ‡ÃT,éõõu-Ç5¯/dðÿ…H$bëÆßˆD"öÎKƒ 2ø ïiÊå²½µTUU[k)odð;ïÉdboñÞÛÛ³·x?==q·`AdAdAÿ6~œúRä¥IEND®B`‚PK šq"<¯‹fII/CustomBuiltKeySig/images/HalfSharpFirstLine.pngUT D8?KÐ"Lux õõ‰PNG  IHDRpâù{‹sRGB®ÎébKGDÿÿÿ ½§“ pHYs¸‹¸‹ž²PtIMEÚ 4l6tEXtCommentCreated with The GIMPïd%n IDAThÞíØÏJ:Qðï -¨œÁE ÑʵÄä"’ \´Wîìz„y„¶QoÐÂU‚”¶ªÀ7haCPŒ§´{~«_ðËúyÎYÍÀ‡{æÌ¹÷Œ "BÀ±€Fe”QFe”QFe”Ñ)CÑóós``.—Ch{{®ë†¦R)e”Ñ߆nooáû~``2™„(‹ôøøZ(¸á3Ê(£ŒþÄX‘Ífɲ¬ÀÀR©aY ‡ÃÀPMÓx—a4 TJ‰››¨œÖ'¢¾ï#ŸÏãââ"øôŽF#.¤9+ŽÑét>|`8âååår*6†L&ƒÐh4ú´HþÞ{{{SRLRJ€&D¿ß']×éôô”TÅ|¡ÛíNWH_}°ÑhàþþµZ Íf¶mÿ¿úQÞ¥”ä8ŸŸÓÊÊ x¿4M›êŽE›Í&íííQ$ùS…ŽMïÓÓ.//g×¾|lº®Ã0 är¹éÔqË¿»»{O¥‚„dš&¹®;»ï4#›ÍÂ4M\]]A×u¬­­auuuvéM§Ó¸¾¾ ,,¨í!!Û¶?í©¾ïCJ Çqððð æ°½³³C­VëÓdÛ6¢Ñ¨’ôNnøžçQ,£“““_ÖðE¥”èv»¨T*0MsºùtÒÔÖï÷±¾¾Žååe8ŽƒÁ`MÓÐëõÔ~§¯¯¯¨Õj¨T*¨V«èt:h·Ûêò;© Îb—ùv! !‰D‚Ùe ÃÀÁÁvww±¹¹9›ô !(‹Ñþþ>---ÑÙÙ™²æ0v¥¨×ëØÚÚ‚”‰D*MŒEãñ8âñ8Àó< etP!D°èââ"LÓ„aÊPþõÊ(£ßŠ?êeª¶´ÿIEND®B`‚PK Éq"p{{‹³³3Äb±­J£`·¢ÃÃCœŸŸc6›¡Ûí"›Íº;µM§Sfš¦+ÅáÇ•ƒA÷ŠÃçç'>>>l“f³Öë5TUu¤ÙæEa———¶‰º®c±X  92Vü‚OèîQ§»Á¾‚jš†Éd‚ÓÓSïP:H„J(¡„J(¡îÇ,ªl®¿àIEND®B`‚PK ¯q"Ÿƒˆ`6›q¯//$FýE›íG;n6H’„v»Óé„|>/ºßïq:à÷û±Z­ápø¹À/‹³w»Ý¢ßï£×ëa¹\þÕær¹H$¾Æb1¨ŽÇã—I’Ðl6¯$"\÷H@ªT*€‹—^¯§t:MÏÔC I¡P •J!‰ÀëõÂh4ʳz5 DQ„ÓéD½^G6›…Óé|Í3siúÓé”f³I’DJ¥’ƒ½ª.Îô;ŽAFoÖv»Åx<–%"T*„B!X­Vd2™çÂa2™\…†Ã!Îç3ÊåòŸ¶Ýn‡kãî•Ñh„`µZ¿¼eÖë5‹n¥Õw£°V«ý{à p8,à€V«…(Šðù|ˆF£òmWAÀÇLJºÝ.<|{$›Í†\.‡`0"B0„N§{݃zïþËñ–ád”Ñ_€ ˆ¢µZýº/fü·‚QFe”QÙêj`<œÎ‹YIEND®B`‚PK Qq"<“±óùù)CustomBuiltKeySig/images/NaturalAbove.pngUT ¹7?KÐ"Lux õõ‰PNG  IHDRpâù{‹sRGB®ÎébKGDÿÿÿ ½§“ pHYs¸‹¸‹ž²PtIMEÚ !W„ubtEXtCommentCreated with The GIMPïd%nPIDAThÞíØ=hêPà7b̦vul©?‹‚“K'‡BÉTè"vSœ„¸©£Ci—Rh tÔ½C;éÔ¥´ÈPÐÁÿ¸‹-Ås§– ^ÛÚkÎ-ÜïƒL'‡'ç;9o cŒsÙ– ‹E\^^òEonnpwwÇý'í%”PB׎¶Z- >h»ÝF:F ÀÙÙÙÊóí«b¥R ªªâéé àv»­A;Î;6NÿzO?Dƒ2™ ÎÏÏׂ} -—ËKÇ$IÂææ&Æã±õ/’$I8<<„¦iH¥RÖI’H$ iTUÅöö¶5í‡Ãƒƒ(Н×kýžF"\\\ÀçóñK¤p8¼vÿKejµÔ0 (Š¿ßJ¥bÍ‘ù;>>Æéé)LÓ´îÈÀp8|ÇF£Ñz6•-©¶µµÅ666€¥—Çãa«–½Ùl"ŸÏ/<Ìãã# ÃXþ2Ølp¹\0Mñx|µö:ND£Ñ…ÛÛÛTEȲŒX,›Í†ëëk\]]ýqþ·ÛûÖBQÙþþ>«×ël>Ÿ¿ßsttô½ö~ô@o+ËårƒÁÚÀßÝÝÅÉÉ B¡ÐÚ°OÑl6KÙK(¡?µO&Üßßkr£ÑÀóó3ªÕêJó]×Y2™äºRáGý$”PB ýO¾2e™oàÏf3Öëõè+C(¡„Ê1ð»Ý.TUå‹2ÆðúúJO(¡„Ê1{_^^Ðï÷ù¢º®cooŸPB %”PB %”PB %ô“úr~ªEÜ–ZIEND®B`‚PK #œsžsæ""HŒ&HdAdðGƒ†aàééIxxx¯×‹ÛÛ[y–J%4 þ@P UCCChj2çMOOCœUýz:::Âìì,NNNÐÒÒb èv»?ÎðüüÐÛÛ ¯×˃æ¥ôôô`ii ÷÷÷‰ôAìíí:==¥ÁÁAjnn¦ööv²X,àõ‡éúúšêOÁP(D ”Ïç©X,R2™¤H$ò››#Ã0ÌWVV*^vyyImmm¯ Ýn¯;ËOûp~~Bˆ7÷TUÅäää›2˜ËåÌ4N§³êý®®®Š²U×´X]]­ÚÉdëëëUÑÝÝÝß/QÄb1X­ÖšØÀÀ”—Uá}hš(—ËUW‹d2ùz=22]סëzMðùùùóiqssSÑ–ÏçÉf³r8”N§ëž_*mÑhår°¸¸ˆ`0hÞÄŸáÝÝ©ªJ¨¿¿ŸJ¥5 g¸¼¼Œ««+¨ªŠ­­-8sKÛŸÕj%§ÓIûûûô•¨ÌårÔÙÙI‡‰}5êZ_²Ù,¦¦¦ i¶··1<<ü} ðÆÆFGGáóùp||üWXÍ>L¥RÔÚÚJáp˜677IÓ42#D­Cö‡‡¸\.X,Ó¶Bö©¾ò²ÿ”.— ¢»»[Z†333º®K…òû·ú 2È „ò6>>.­´MLL@ìììH}>odð¿<¾ŒÇãÒ0¿ß%‘HHÇÆÆ¸x3È ƒ 2È ƒ 2È ƒ¦Ä/¤ž¯ó)¢VIEND®B`‚PK Xr"Ñ`0 x£¡BåjfïÜÜNOO±ººª ü9Q%”ÍféööÖ30—ËA´Ûm ž¡@€· £Œ2úÓQy~~ŽN§ã¸¾¾9™L”þÒú¨lÛæÀg”QF|àw: ‡CÏ@MÓ vww½­àÀg”QFe”QFe”QF¿!ú •!ðJ# ÕºIEND®B`‚PK ,s"<Ѱèyy.CustomBuiltKeySig/images/HalfFlatThirdLine.pngUT 4;?KÊ’Mux õõ‰PNG  IHDRpâù{‹sRGB®ÎébKGDÿÿÿ ½§“ pHYs¸‹¸‹ž²PtIMEÚ in¼øtEXtCommentCreated with The GIMPïd%nÐIDAThÞíØKKj]ð¿º-# B# »iN Ä‚0LˆŒ5pØDlÐ š4Œ>€3“hø²H !(šDЪ±‚H»%^ŠLÔç¼ ÇÓE-óp8ëÁíÚ›Ÿ{ïÿ^kíÅ#"B•‹?P e(CÊP†2”¡ e(CúÍâ-,,ÐÕÕUÕ@ƒÁ®¿¿ÝÝÝUC;;;Ác¯ŠÅbƒ¨ä](ŠnllÀh4"NW%"T:ko‰\.ÎÏÏ …B˜ŸŸ‡Z­Æôô4¢ÑhIÇqåBÙlX^^†ÏçÃËËKÙ¶dôéé kkkX^^Æéé)²Ùla'ÎãÏ/íÂq'''x~~þp‡@ €h4ŠÞÞ^\__¿»OKK ¬V+±··÷)(“ÉÀ³Ùl … r¹ü~?"‘ȇ766B£Ñ ¦¦¦¬Kk6›ú¥^^^ÈívÓàà qGÞ|Ôj59ŠD"ôÕ*@=Ï»ŸÏ§ááaòz½”J¥è»ÅýžÌ_«¡¡J¥wwwðù|‹Å?×9tttÀn·Ãï÷cvv¶¬d–ýÈ(•J¸ÝnŒW쬊¢z½z½¾èpssƒ`0>Ÿ•J™LVžZ즻\.’Ëå”J¥èììŒÆÆÆH$åC&‘Hhjjª¬4—Œ®¯¯“T*¥®®.êëë£úúú‚„ët:zxx¨*‰H¥RÑææ&¥Ói""º¼¼$“ÉTÏÌÌT´³³ó¦-“T*Í£r¹œžŸŸ‹¢%=MMM0 o~ommÅÀÀ@~;#‘HTf<ï¶577ç¿‹ÅbÔÖÖ­¥@ ðáÉd±X …<ïM{$ÉRÇA¡P| Z,ðÂá0}6Ós»Ýp8Øß߇P(,h‹Çã0H&“§Ó‰‰‰‰OQ‰DRÞsú{mmmåC¤Ñhèé驤ô~¹C%",--å/«ÓéD]]ÝÏNÌŽŽŽ°»» °ÙlùÙ)h*•ÂÜÜ2™ †††àp8Þ YEÑÅÅEC£Ñ`uuõÿpüT‡ODäõzI(’N§£‹‹‹/ÍøåÇãñÀjµÂd2a{{mmm_NaÑ3•H$499IR©”ìv;½¾¾VnŽô^iµZ´··£©© ‡‡‡èééùþêÊ?³æÀ­¬¬àþþ¾j V«—Íf‘Édª†ær9¶ŽÄP†2ô_G¹ÛÛÛŠ.«+‰DžÙl&¿ß_5Ôb±°Ÿ¡ e(CÊP†2”¡ eè_‰þÝøràZ IÛIEND®B`‚PK mp"<Á) s&&)CustomBuiltKeySig/images/NaturalBelow.pngUT 6?KÐ"Lux õõ‰PNG  IHDRpâù{‹sRGB®ÎébKGDÿÿÿ ½§“ pHYs¸‹¸‹ž²PtIMEÚ 7M'tEXtCommentCreated with The GIMPïd%n}IDAThÞíÚ½j*AðÿÈfˆ_•„tZˆ¥ØY¥°ÓÞÎÂ&U@) ¨/ ØØXDM¥>¯a!H>P H6 Œbד.à½zfÝÀÍ9°ÍîìþŠ™=3ggL ~ e”QFe”QFe”QF¿"NÓãã£iàÁÁ”`0ŸÏgêõz!¸Td”QF7ªÔëuŒF#ÓÀýý}UUéááÁ44sÂg”QFý‰²"‰Ðýý½i`4…Ð4&“‰i¨ÓéäY†QFýõeÅÕÕz½ÞÜI"‚®ëPÅp0@ÑuÓétîB³ÙD­VC*•2Õu Q.—IJIÛ ½Œ2jÚjµ°É÷ŠÐv»ÓÓSÜÞÞ®Ÿ{×iÜétÉdP­Vñþþ¾yÂyyÁŸ‹í~¿"B·Û äóyT*•¿°×××Ïv_ ‡Ã‡éîînîÂh4ÂÛÛìv;†Ãá?²··«ÕºVY±4á !hww—,>F:ÞÎï‹föÙl¶röÇÆ®„œðeô?@- B¡\.×Ú÷~Ûba‰EЊIEND®B`‚PK ï#<ýACustomBuiltKeySig/UTbÇ?Kux õõPKK $<(GxÞMÚ'#´LCustomBuiltKeySig/KeySigDesign.htmlUTž'AKux õõPK Œ#<ýAöCustomBuiltKeySig/images/UTèÂ?Kux õõPK #<Ú¸  '´ICustomBuiltKeySig/images/TrebleClef.pngUTéÂ?Kux õõPK ks"<.¹!sNN0´ÅCustomBuiltKeySig/images/HalfFlatFourthSpace.pngUTª;?Kux õõPK r"<ò‡òæç0´}CustomBuiltKeySig/images/HalfSharpThirdSpace.pngUT9?Kux õõPKk#=KK,´\TCustomBuiltKeySig/images/FlatSecondSpace.pngUT›Á?Kux õõPK ã¾"<An??&´ XCustomBuiltKeySig/images/FlatBelow.pngUT¹À?Kux õõPK %¾">1´iºCustomBuiltKeySig/images/HalfSharpSecondSpace.pngUTÃ8?Kux õõPK =#<Ë­…=*´¾CustomBuiltKeySig/images/FlatFifthLine.pngUTUÂ?Kux õõPK …½"Kux õõPK +#<ßU›"",´¨ãCustomBuiltKeySig/images/FlatFourthSpace.pngUT1Â?Kux õõPK šq"<¯‹fII/´0çCustomBuiltKeySig/images/HalfSharpFirstLine.pngUTD8?Kux õõPK Éq">j4pmw-4.27/contrib/TAB0000644000222100022210000000643412247665016012350 0ustar ph10ph10@ This set of macros shows one way of causing PMS to print guitar @ tablature. The example is for a 4-line bass guitar stave; a similar @ approach can also be used for a 6-line stave. This is a complete @ PMS input file that can be processed and printed, to show how the @ macros are used. PMS version 3.10 or greater is required. @ Philip Hazel, June 1994. @ Looks good at this size magnification 1.1 @ Define some additional fonts. Homerton.Bold is used for the numbers @ printed on the tab stave, and Homerton.Medium is used for the TAB logo. @ Also define the required font sizes. The numbering size, 5.5, seems @ small, but the whole stave is to be magnified (see stavesizes below). textfont extra 1 "Homerton.Bold" textfont extra 2 "Homerton.Medium" textsizes 10 5.5 17/0.8 11 @ This draws the "TAB" logo, consisting of overlapping T, A, and B @ characters. The T and the B are printed as characters, with a single @ stroke to complete the notional A. All dimensions are multiplied by @ the relative stave size, so that it should work for any size of @ 4-line stave. Note the use of s3 and s4 to obtain fonts of the right @ size for the T and the B. draw tab stavestart 2.0 stavesize mul add 0 moveto "\x2\T"/s3 show stavestart 4.7 stavesize mul add 0 moveto "\x2\B"/s4 show stavestart 6 stavesize mul add 12 stavesize mul moveto 6.5 stavesize mul -7.5 stavesize mul rlineto 1 setlinewidth stroke enddraw @ This set of macros is used to print numbers on the stave. Each macro's @ name starts with a letter identifying the note length, and a number @ identifying the stave line, counting from the bottom. The argument is @ the digit to be printed. Macros for crotchets, minims, and quavers are @ shown here - other note lengths can be handled similarly. The effect of @ each macro is to print its argument, centred on the appropriate line, @ and then move on, by way of an invisible note of the right length. *define c1() "\x1\&&1"/s2/b0/d2 q *define c2() "\x1\&&1"/s2/b0/u2 q *define c3() "\x1\&&1"/s2/b0/u6 q *define c4() "\x1\&&1"/s2/b0/u10 q *define m1() "\x1\&&1"/s2/b0/d2 Q *define m2() "\x1\&&1"/s2/b0/u2 Q *define m3() "\x1\&&1"/s2/b0/u6 Q *define m4() "\x1\&&1"/s2/b0/u10 Q *define q1() "\x1\&&1"/s2/b0/d2 q- *define q2() "\x1\&&1"/s2/b0/u2 q- *define q3() "\x1\&&1"/s2/b0/u6 q- *define q4() "\x1\&&1"/s2/b0/u10 q- @ Other parameters - the stavespacing can be adjusted to taste, of course. @ The tab stave is magnified relative to the conventional stave. stavespacing 1/36 stavesizes 2/1.6 breakbarlines bracket brace 1-2 unfinished @ This is for the tab stave, where we don't want a time signature printtime 8/8 "" "" @ Sample bars in conventional notation [stave 1 bass 0 key G] (: Ggd-f- | Ggg-f- | Eeb`-d- | Eee-d- | [endstave] @ Tablature for the above. Note the use of "draw tab" as a stave title. @ It is given twice, because the first stave title is printed on the @ first system, and the second one on subsequent systems. [stave 2 draw tab draw tab] [stavelines 4 noclef] @ set 4-line stave and no clef [time 8/8] @ this will print as blank [barlinestyle 3] @ all bar lines invisible &m3(5) &c3(5) &q2(5) &q3(4) | &m3(5) &c3(5) &q3(5) &q3(4) | &m3(2) &c3(2) &q2(2) &q2(5) | &m3(2) &c3(2) &q3(2) &q2(5) | [endstave] pmw-4.27/contrib/psA30000644000222100022210000000354012247665016012543 0ustar ph10ph10@ This PMS input file shows how it is possible to get an A3 page printed in @ parts on an A4 PostScript printer. *define reduce 0.5 pssetup "/tophalf{-90 rotate -828 &reduce div -560 &reduce div translate 1.4 dup scale}def" pssetup "/midhalf{-90 rotate -828 &reduce div -280 &reduce div translate 1.4 dup scale}def" pssetup "/bothalf{-90 rotate -828 &reduce div 0 translate 1.4 dup scale}def" *if top psheading "tophalf" pspageheading "tophalf" *fi *if middle psheading "midhalf" pspageheading "midhalf" *fi *if bottom psheading "bothalf" pspageheading "bothalf" *fi magnification &reduce heading "|Test" footing "Footing" [stave 1 "1" treble 1] gggg [endstave] [stave 2 "2" treble 1] gggg [endstave] [stave 3 "3" treble 1] gggg [endstave] [stave 4 "4" treble 1] gggg [endstave] [stave 5 "5" treble 1] gggg [endstave] [stave 6 "6" treble 1] gggg [endstave] [stave 7 "7" treble 1] gggg [endstave] [stave 8 "8" treble 1] gggg [endstave] [stave 9 "9" treble 1] gggg [endstave] [stave 10 "10" treble 1] gggg [endstave] [stave 11 "11" treble 1] gggg [endstave] [stave 12 "12" treble 1] gggg [endstave] [stave 13 "13" treble 1] gggg [endstave] [stave 14 "14" treble 1] gggg [endstave] [stave 15 "15" treble 1] gggg [endstave] [stave 16 "16" treble 1] gggg [endstave] [stave 17 "17" treble 1] gggg [endstave] [stave 18 "18" treble 1] gggg [endstave] [stave 19 "19" treble 1] gggg [endstave] [stave 20 "20" treble 1] gggg [endstave] [stave 21 "21" treble 1] gggg [endstave] [stave 22 "22" treble 1] gggg [endstave] [stave 23 "23" treble 1] gggg [endstave] [stave 24 "24" treble 1] gggg [endstave] [stave 25 "25" treble 1] gggg [endstave] [stave 26 "26" treble 1] gggg [endstave] [stave 27 "27" treble 1] gggg [endstave] [stave 28 "28" treble 1] gggg [endstave] [stave 29 "29" treble 1] gggg [endstave] [stave 30 "30" treble 1] gggg [endstave] pmw-4.27/contrib/Brackets0000644000222100022210000000634412247665016013500 0ustar ph10ph10@ Drawing procedure for bracketing a note or a chord. @ The brackets increase their curvature and thickness in the middle @ in proportion to the note they surround. @ Contributed by Richard Hallas, January 1993. @ Square brackets and RH and LH brackets contributed by Richard @ Hallas, October 1994. @ Minor correction from Richard Hallas incorporated March 1995 Draw Bracket @ Square left-bracket enclosing note or chord @ -1 headleft sub accleft sub headbottom linebottom add moveto -2 0 rlineto -3 headleft sub accleft sub headtop linetop sub lineto 2 0 rlineto 0.5 setlinewidth stroke Enddraw Draw Rightbracket @ Square right-bracket enclosing note or chord @ 1 headright add headbottom linebottom add moveto 2 0 rlineto 3 headright add headtop linetop sub lineto -2 0 rlineto 0.5 setlinewidth stroke Enddraw Draw Notebracket @ Pair of round parentheses enclosing note or chord @ Width in the centre auto-adjusts according to size of bracket @ @ Left bracket (inside): -1 headleft sub accleft sub stembottom 1 sub moveto @ Bottom -1 headleft sub accleft sub stemtop stembottom sub 8 div 1 add sub stembottom stemtop stembottom sub 4 div add @ bezier point 1 (lower) -1 headleft sub accleft sub stemtop stembottom sub 8 div 1 add sub stemtop stemtop stembottom sub 4 div sub @ bezier point 2 (upper) -1 headleft sub accleft sub stemtop 1 add curveto @ Top @ Left bracket (outside): -1 headleft sub accleft sub stemtop stembottom sub 8 div dup 2 1 roll 0.25 mul 1.5 add add sub stemtop stemtop stembottom sub 4 div sub @ bezier point 1 (upper) -1 headleft sub accleft sub stemtop stembottom sub 8 div dup 2 1 roll 0.25 mul 1.5 add add sub stembottom stemtop stembottom sub 4 div add @ bezier point 2 (lower) -1 headleft sub accleft sub stembottom 1 sub curveto @ Bottom 0.5 setlinewidth fill @ Left bracket complete @ @ Right bracket (inside): 1 headright add stembottom 1 sub moveto @ Bottom 1 headright add stemtop stembottom sub 8 div 1 add add stembottom stemtop stembottom sub 4 div add @ bezier point 1 (lower) 1 headright add stemtop stembottom sub 8 div 1 add add stemtop stemtop stembottom sub 4 div sub @ bezier point 2 (upper) 1 headright add stemtop 1 add curveto @ Top @ Right bracket (outside): 1 headright add stemtop stembottom sub 8 div dup 2 1 roll 0.25 mul 1.5 add add add stemtop stemtop stembottom sub 4 div sub @ bezier point 1 (upper) 1 headright add stemtop stembottom sub 8 div dup 2 1 roll 0.25 mul 1.5 add add add stembottom stemtop stembottom sub 4 div add @ bezier point 2 (lower) 1 headright add stembottom 1 sub curveto @ Bottom 0.5 setlinewidth fill @ Right bracket complete Enddraw Draw RHbracket @ Square left-bracket with jog at bottom only, for piano RH on lower stave @ Requires one argument to specify length of main part of bracket @ -1 headleft sub accleft sub headbottom linebottom add moveto -2 0 rlineto 0 exch rlineto 0.5 setlinewidth stroke Enddraw Draw LHbracket @ Square left-bracket with jog at top only, for piano LH on upper stave @ Requires one argument to specify length of main part of bracket @ -1 headleft sub accleft sub headtop linetop sub moveto -2 0 rlineto 0 exch sub 0 exch rlineto 0.5 setlinewidth stroke Enddraw pmw-4.27/contrib/BarRepeats0000644000222100022210000000145012247665016013763 0ustar ph10ph10@ This is an example of how to generate "repeated bar" and "repeated @ note" signs, and also an inter-system mark. key C time C notespacing *1.1 midifornotesoff textsizes 10 11/1.8 startlinespacing 2 2 2 barnumbers line italic systemgap 56 *define separ "\mu\V"/a/bar/u16/s2 @@@"\*u\\*143\\*l\\*d\\*143\"/a/bar/u16 *define 1beat() [notes off]"\*143\"/a/c/d16 &&1[notes on] *define 1bar() [notes off] "\*144\\*143\"/a/c/d16 S! [reset] &&1 [notes on] *define 2bars() [notes off] &&1 | "\*144\\*143\\*144\\*143\"/a/bar/l6/d16 "\bf\2"/a/bar/l4/u4/s2 S! [reset] &&2 [notes on] [staff 1 " " treble 1 ] c e g c | &1bar(c e g c) | c e g c' | &1bar(cegc') || g &1beat(g) c &1beat(g) | &separ c-g-; &1beat(c-;g-;) &1beat(c-;g-;) &1beat(c-;g-;) || c e g c' | c g c' g` | &2bars(c e g c', c g c' g`) | [endstaff] pmw-4.27/Makefile.in0000644000222100022210000000427512247665016012425 0ustar ph10ph10# Makefile.in for PMW. The building work is done by a separate Makefile in # the src directory, which gets passed settings from here. mkinstalldirs = $(SHELL) mkinstalldirs # These variables get set up by the configure script. CC=@CC@ CFLAGS=@CFLAGS@ NO_PMWRC=@NO_PMWRC@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ BINDIR=$(DESTDIR)@prefix@/bin DATADIR=$(DESTDIR)@prefix@/share/pmw MANDIR=$(DESTDIR)@prefix@/man # BINDIR is the directory in which the pmw command is installed. # DATADIR is the directory in which the fontmetrics, the PostScript fonts, # and the PostScript header file are installed, in a subdirectory called pmw. # MANDIR is the directory in which the man pages are installed. # The compile commands can be very long. To make the output look better, # they are not normally echoed in full. To get full echoing, the caller # must set FULLECHO='' on the command line and call make with -e. We default # FULLECHO to '@' to suppress the full echo. Then define an abbreviation. FULLECHO = @ FE = $(FULLECHO) build:; @cd src; \ $(MAKE) all \ BINDIR=$(BINDIR) \ DATADIR=$(DATADIR) \ MANDIR=$(MANDIR) \ CC="$(CC)" \ CFLAGS="$(CFLAGS)" \ NO_PMWRC="$(NO_PMWRC)" \ FE="$(FE)" \ $(MFLAGS) clean:; cd src; $(MAKE) clean distclean:; rm Makefile config.cache config.log config.status; \ cd src; $(MAKE) clean test:; cd testdist; ./RunTests # "Standard" name for testing check: test ; install: build $(mkinstalldirs) $(BINDIR) $(mkinstalldirs) $(DATADIR) $(mkinstalldirs) $(DATADIR)/psfonts $(mkinstalldirs) $(DATADIR)/fontmetrics $(mkinstalldirs) $(MANDIR) $(mkinstalldirs) $(MANDIR)/man1 $(INSTALL) src/pmw $(BINDIR)/pmw $(INSTALL_DATA) PSheader $(DATADIR) $(INSTALL_DATA) MIDIvoices $(DATADIR) $(INSTALL_DATA) MIDIperc $(DATADIR) $(INSTALL_DATA) psfonts/PMW-Music.pfa $(DATADIR)/psfonts $(INSTALL_DATA) psfonts/PMW-Alpha $(DATADIR)/psfonts $(INSTALL_DATA) fontmetrics/* $(DATADIR)/fontmetrics $(INSTALL_DATA) doc/pmw.1 $(MANDIR)/man1 ./post-install "$(BINDIR)" "$(DATADIR)" "$(MANDIR)" uninstall:; rm -rf \ $(BINDIR)/pmw \ $(DATADIR) \ $(MANDIR)/man1/pmw.1 # End pmw-4.27/src/0000755000222100022210000000000012247665016011137 5ustar ph10ph10pmw-4.27/src/print.c0000644000222100022210000001213212247665016012436 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2008 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: September 2008 */ /* This file contains some functions for controlling printable output. */ #include "pmwhdr.h" #include "outhdr.h" /************************************************* * Initialize page list data * *************************************************/ /* This function is called at the start of the output phase. Its job is to set up the number of the first page to be printed, in print_curnumber, and to set print_curlist to point the first page selection item. Argument: TRUE if printing is to be in reverse order Returns: nothing */ void print_setup_pagelist(BOOL reverse) { print_curlist = output_pagelist; if (reverse) { if (print_curlist == NULL) print_curnumber = print_lastpage + 1; else { while (print_curlist->next != NULL) print_curlist = print_curlist->next; print_curnumber = print_curlist->last + 1; } } else { if (print_curlist == NULL) print_curnumber = main_firstpage - 1; else print_curnumber = print_curlist->first - 1; } } /************************************************* * Get next page(s) to print * *************************************************/ /* Called from the PostScript output routines. First we have a local function to get the next specified page, skipping any that do not exist. We have to handle both backwards and forward movement. Argument: nothing Returns: pointer to a pagestr, or NULL if no more. */ static pagestr * nextpage(void) { for (;;) { pagestr *yield = main_pageanchor; /* Find next page in reverse order */ if (print_reverse) { print_curnumber--; if (print_curlist == NULL) { if (print_curnumber < main_firstpage) return NULL; } else if (print_curnumber < print_curlist->first) { stave_list * p= output_pagelist; if (print_curlist == p) return NULL; while (p->next != print_curlist) p = p->next; print_curlist = p; print_curnumber = print_curlist->last; } } /* Find next page number in given order. */ else { print_curnumber++; if (print_curlist == NULL) { if (print_curnumber > print_lastpage) return NULL; } else if (print_curnumber > print_curlist->last) { if (print_curlist->next == NULL) return NULL; print_curlist = print_curlist->next; print_curnumber = print_curlist->first; } } /* If page exists, return it; otherwise loop. However, if we are in pamphlet mode with no explicit page list and the page number is past halfway and the mate exists, don't return the page. */ while (yield != NULL) { if (yield->number == print_curnumber) { if (print_pamphlet && print_curlist == NULL && print_curnumber > print_lastpage/2) { pagestr *p = main_pageanchor; int mate = print_lastpage - print_curnumber + 1; while (p != NULL) { if (p->number == mate) goto LOOP; p = p->next; } } return yield; } yield = yield->next; } LOOP:; } } /* The external function. It returns page structures for one or two pages, depending on the imposition. The yield is FALSE if there are no more pages. Arguments: p1 where to put a pointer to the first page p2 where to put a pointer to the second page Returns: FALSE if there are no more pages */ BOOL print_nextpage(pagestr **p1, pagestr **p2) { int n; BOOL swap = FALSE; *p2 = NULL; /* Loop for skipping unwanted pages (side selection). For pamphlet printing, side 1 contains odd-numbered pages less than half the total, and even-numbered pages greater than half. We may get either kind of page given. */ for (;;) { if ((*p1 = nextpage()) == NULL) return FALSE; n = (*p1)->number; if (!print_pamphlet || n <= print_lastpage/2) { if ((print_side1 && (n & 1) != 0) || (print_side2 && (n & 1) == 0)) break; } else if ((print_side1 && (n & 1) == 0) || (print_side2 && (n & 1) != 0)) break; } /* Handle 1-up printing: nothing more to do */ if (print_imposition != pc_a5ona4 && print_imposition != pc_a4ona3) return TRUE; /* Handle 2-up printing. For non-pamphlet ordering, just get the next page and set the order swap flag if required. */ if (!print_pamphlet) { if ((*p2 = nextpage()) == NULL) print_curnumber--; /* To get correct display */ swap = print_reverse; } /* For pamphlet printing, find the mate of the first page, and set the swap flag if necessary, to ensure the odd-numbered page is on the right. */ else { n = print_lastpage - n + 1; swap = (n & 1) == 0; *p2 = main_pageanchor; while (*p2 != NULL) { if ((*p2)->number == n) break; *p2 = (*p2)->next; } } /* Swap page order if necessary */ if (swap) { pagestr *temp = *p1; *p1 = *p2; *p2 = temp; } return TRUE; } /* End of print.c */ pmw-4.27/src/read4.c0000644000222100022210000016065512247665016012317 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2013 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: March 2013 */ /* This file contains part IV of the code for reading in a PMW score file. It contains code for handling stave directives. The main function is at the bottom, preceded by a table of directives, which refer to the other functions. They all have the same interface: no arguments or results. The variable read_dir is set to point to the found directive, and in its data structure there may be up to two arguments. The action of each function is either to set up a new item and add it to the list (done by store_getitem()), and if necessary, fill in its data value(s), or to set flags or variables that affect the way the stave's data is to be read. */ #include "pmwhdr.h" #include "readhdr.h" /************************************************* * Static variables * *************************************************/ static uschar real_clef[] = { clef_treble, clef_soprano, clef_mezzo, clef_alto, clef_tenor, clef_cbaritone, clef_baritone, clef_bass, clef_deepbass, clef_treble, clef_treble, clef_treble, clef_treble, clef_treble, clef_bass, clef_bass }; static int clef_octave[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, -12, -12, 12, -12 }; static int read_assumeflag = FALSE; /************************************************* * Common routine for dataless item * *************************************************/ static void p_common(void) { (void)store_getitem(read_dir->arg1); } /************************************************* * Common routine for above/below * *************************************************/ static void p_above(void) { int flag = FALSE; b_charvaluestr *p = store_getitem(read_dir->arg1); uschar word[80]; read_word(word); if (Ustrcmp(word, "above") == 0) flag = TRUE; else if (Ustrcmp(word, "below") != 0) error_moan(10, "\"above\" or \"below\""); p->value = flag; } /************************************************* * Common routine for positive dimension * *************************************************/ static void p_pvalue(void) { sigch(); if (isdigit(read_ch)) { b_intvaluestr *p = store_getitem(read_dir->arg1); p->value = read_integer(TRUE); } else error_moan(10, "Number"); } /************************************************* * Common routine for signed dimension * *************************************************/ static void p_svalue(void) { int x; b_intvaluestr *p; if (!read_expect_integer(&x, TRUE, TRUE)) return; p = store_getitem(read_dir->arg1); p->value = x; } /************************************************* * Common routine for font setting * *************************************************/ static void p_font(void) { int *p = (read_dir->arg1 == 0)? &stave_fbfont : (read_dir->arg1 == 1)? &stave_textfont : (read_dir->arg1 == 2)? &stave_ulfont : &stave_olfont; int f = font_fontword(FALSE); if (f >= 0) *p = f; } /************************************************* * Common routine for size setting * *************************************************/ static void p_size(void) { int size; int *p = (read_dir->arg1 == 0)? &stave_fbsize : (read_dir->arg1 == 1)? &stave_textsize : (read_dir->arg1 == 2)? &stave_ulsize : &stave_olsize; if (!read_expect_integer(&size, FALSE, FALSE)) return; if (--size < 0 || size >= MaxTextFont) { error_moan(39, MaxTextFont); return; } *p = size; } /************************************************* * Common routine for fixed noteheads value * *************************************************/ static void p_nh(void) { b_noteheadsstr *p = store_getitem(b_noteheads); p->value = read_dir->arg1; stave_stemflag = nf_stem; } /************************************************* * Beamacc and Beamrit * *************************************************/ static void p_beamaccrit(void) { b_charvaluestr *p = store_getitem(read_dir->arg1); sigch(); if (isdigit(read_ch)) { int n = read_integer(FALSE); if (n != 2 && n != 3) error_moan(10, "2 or 3"); else stave_accritvalue = n; } p->value = stave_accritvalue; } /************************************************* * Clef setting * *************************************************/ static void p_clef(void) { if (!read_assumeflag) { b_clefstr *p = store_getitem(b_clef); p->trueclef = read_dir->arg1; p->suppress = FALSE; } else { b_setclefstr *p = store_getitem(b_setclef); p->value = read_dir->arg1; read_assumeflag = FALSE; } stave_clef = real_clef[read_dir->arg1]; stave_clef_octave = clef_octave[read_dir->arg1]; sigch(); if (isdigit(read_ch) || read_ch == '-') { read_expect_integer(&stave_octave, FALSE, TRUE); stave_octave *= 12; } stave_lastbasenoteptr = NULL; } /************************************************* * Assume * *************************************************/ static char *assume_list[] = { "alto", "baritone", "bass", "contrabass", "deepbass", "hclef", "key", "mezzo", "noclef", "soprabass", "soprano", "tenor", "time", "treble", "trebledescant", "trebletenor", "trebletenorb" }; static void p_assume(void) { int i; read_word(read_stavedir); for (i = 0; i < (sizeof(assume_list)/sizeof(uschar *)); i++) if (Ustrcmp(read_stavedir, assume_list[i]) == 0) { read_assumeflag = TRUE; return; } read_stavedir[0] = 0; error_moan(10, "Clef, key, or time setting"); } /************************************************ * Barlinestyle * ************************************************/ static void p_barlinestyle(void) { (void)read_expect_integer(&stave_barlinestyle, FALSE, FALSE); read_barlinestyle = stave_barlinestyle; /* For current bar */ /* The default, for use with totally empty bars, is the first style given. This isn't entirely satisfactory, but copes with most cases. */ if (stavehead->barlinestyle == 255) stavehead->barlinestyle = stave_barlinestyle; } /************************************************* * Barnumber * *************************************************/ static void p_barnum(void) { b_barnumstr *p = store_getitem(b_barnum); int flag = TRUE; int x = 0; int y = 0; sigch(); if (read_ch == '/') { while (read_ch == '/') { int sign, *a = NULL, b; next_ch(); switch (read_ch) { case 'u': sign = +1; a = &y; break; case 'd': sign = -1; a = &y; break; case 'l': sign = -1; a = &x; break; case 'r': sign = +1; a = &x; break; default: sign = 0; error_moan(10, "/u, /d, /l, or /r"); break; } if (sign == 0) break; next_ch(); if (!read_expect_integer(&b, TRUE, TRUE)) break; *a = *a + sign *b; } } else if (isalpha(read_ch)) { read_word(read_stavedir); if (Ustrcmp(read_stavedir, "off") == 0) { flag = FALSE; read_stavedir[0] = 0; } } p->flag = flag; p->x = x; p->y = y; } /************************************************* * Couple * *************************************************/ static void p_couple(void) { uschar word[80]; read_word(word); if (Ustrcmp(word, "up") == 0) stave_couplestate = +1; else if (Ustrcmp(word, "down") == 0) stave_couplestate = -1; else if (Ustrcmp(word, "off") == 0) stave_couplestate = 0; else error_moan(10, "\"up\", \"down\", or \"off\""); } /************************************************* * Cue * *************************************************/ static void p_cue(void) { stave_noteflags &= ~nf_cuedotalign; stave_noteflags |= nf_cuesize; sigch(); if (read_ch == '/') { uschar word[80]; next_ch(); read_word(word); if (Ustrcmp(word, "dotalign") == 0) stave_noteflags |= nf_cuedotalign; else error_moan(10, "\"dotalign\""); } } /************************************************* * Dots * *************************************************/ static void p_dots(void) { uschar word[80]; read_word(word); if (Ustrcmp(word, "above") == 0) stave_noteflags &= ~nf_lowdot; else if (Ustrcmp(word, "below") == 0) stave_noteflags |= nf_lowdot; else error_moan(10, "\"above\" or \"below\""); } /************************************************* * Draw * *************************************************/ static void p_draw(void) { tree_node *node; int argcount = 0; drawitem args [20]; uschar word[80]; sigch(); while (isdigit(read_ch) || read_ch == '-' || read_ch == '+' || read_ch == '\"') { if (read_ch == '\"') { args[++argcount].d.ptr = read_draw_text(); args[argcount].dtype = dd_text; } else { if (!read_expect_integer(&(args[++argcount].d.val), TRUE, TRUE)) break; args[argcount].dtype = dd_number; } sigch(); } read_word(word); node = Tree_Search(draw_tree, word); if (node == NULL) error_moan(70, word); else { b_drawstr *d = store_getitem(b_draw); d->overflag = read_dir->arg1; d->item = node; if (argcount == 0) d->args = NULL; else { int i; d->args = store_Xget((argcount+1)*sizeof(drawitem)); d->args[0].dtype = dd_number; d->args[0].d.val = argcount; for (i = 1; i <= argcount; i++) d->args[i] = args[i]; } } } /************************************************* * Endcue * *************************************************/ static void p_endcue(void) { stave_noteflags &= ~(nf_cuesize|nf_cuedotalign); } /************************************************* * Endline & Endslur * *************************************************/ static void p_endline(void) { int id = 0; sigch(); if (read_ch == '/') { next_ch(); if (read_ch != '=') error_moan(10, "\"=\""); else { next_ch(); id = read_ch; next_ch(); } } if (stave_slurcount-- > 0) { b_endslurstr *p = store_getitem(b_endslur); p->id = id; } else { error_moan(17, "end of slur or line - ignored"); stave_slurcount = 0; } } /************************************************* * Endstave * *************************************************/ /* This sets the global read_endstave flag, which is detected in the stave-reading code. */ static void p_endstave(void) { read_endstave = TRUE; } /************************************************* * Footnote * *************************************************/ static void p_footnote(void) { b_footnotestr *f = store_getitem(b_footnote); f->type = b_footnote; read_headfootingtext(&(f->h), rh_footnote); } /************************************************* * Hairpins * *************************************************/ static void p_hairpins(void) { uschar word[80]; stave_hairpinflags = stave_hairpiny = 0; read_word(word); if (Ustrcmp(word, "below") == 0) stave_hairpinflags = hp_below; else if (Ustrcmp(word, "middle") == 0) stave_hairpinflags = hp_below | hp_middle; else if (Ustrcmp(word, "above") != 0) { error_moan(10, "\"above\", \"below\", or \"middle\""); return; } /* Default adjustment is allowed for all three positions */ sigch(); if (read_ch == '+' || read_ch == '-') { (void)read_expect_integer(&stave_hairpiny, TRUE, TRUE); } /* Absolute value is allowed only for above and below */ else if ((stave_hairpinflags & hp_middle) == 0 && isdigit(read_ch)) { stave_hairpinflags |= hp_abs; stave_hairpiny = read_integer(TRUE); if ((stave_hairpinflags & hp_below) != 0) stave_hairpiny = -stave_hairpiny; } } /************************************************* * Hairpinwidth * *************************************************/ static void p_hairpinwidth(void) { (void)read_expect_integer(&stave_hairpinwidth, TRUE, FALSE); } /************************************************* * Key * *************************************************/ static void p_key(void) { int warn = curmovt->keywarn; int oldkey = stave_key_tp; stave_key = read_key(); read_initbaraccs(baraccs, stave_key); stave_key_tp = transpose_key(stave_key, stave_transpose, TRUE); read_initbaraccs(baraccs_tp, stave_key_tp); read_word(read_stavedir); if (Ustrcmp(read_stavedir, "nowarn") == 0) { read_stavedir[0] = 0; warn = FALSE; } if (!read_assumeflag) { b_keystr *p = store_getitem(b_key); if (stave_key_tp == 2 || stave_key_tp == 21) { p->key = oldkey | 64; p->warn = warn; p->suppress = FALSE; p = store_getitem(b_key); } p->key = stave_key_tp; p->warn = warn; p->suppress = FALSE; } else { b_setkeystr *p = store_getitem(b_setkey); p->value = stave_key_tp; read_assumeflag = FALSE; } } /************************************************* * Justify * *************************************************/ static void p_justify(void) { uschar word[80]; sigch(); if (read_ch == '+' || read_ch == '-') { while (read_ch == '+' || read_ch == '-') { b_justifystr *p; int opt = read_ch; int side; next_ch(); read_word(word); sigch(); if (Ustrcmp(word, "top") == 0) side = just_top; else if (Ustrcmp(word, "bottom") == 0) side = just_bottom; else if (Ustrcmp(word, "left") == 0) side = just_left; else if (Ustrcmp(word, "right") == 0) side = just_right; else { error_moan(10, "\"top\", \"bottom\", \"left\", or \"right\""); return; } p = store_getitem(b_justify); p->opt = opt; p->side = side; } } else error_moan(10, "\"+\" or \"-\""); } /************************************************* * Linegap & Slurgap * *************************************************/ static void p_linegap(void) { b_linegapstr *p; tree_node *draw = NULL; gaptextstr *gaptext = NULL; drawitem *drawargs = NULL; int lineid = 0; int xadjust = 0; int hfraction = -1; int width = -1; /* Read the options */ sigch(); while (read_ch == '/') { int x; next_sigch(); switch (read_ch) { case '=': next_ch(); lineid = read_ch; next_sigch(); break; case 'd': if (Ustrncmp(read_chptr, "raw ", 4) == 0) { int argcount = 0; drawitem args[20]; uschar word[80]; read_chptr += 4; read_ch = ' '; sigch(); while (isdigit(read_ch) || read_ch == '-' || read_ch == '+' || read_ch == '\"') { if (read_ch == '\"') { args[++argcount].d.ptr = read_draw_text(); args[argcount].dtype = dd_text; } else { if (!read_expect_integer(&(args[++argcount].d.val), TRUE, TRUE)) break; args[argcount].dtype = dd_number; } sigch(); } if (argcount > 0) { int i; drawargs = store_Xget((argcount+1)*sizeof(drawitem)); drawargs[0].dtype = dd_number; drawargs[0].d.val = argcount; for (i = 1; i <= argcount; i++) drawargs[i] = args[i]; } read_word(word); draw = Tree_Search(draw_tree, word); if (draw == NULL) error_moan(70, word); } else error_moan(10, "\"draw\""); break; case 'h': next_ch(); if (isdigit(read_ch)) { if (!read_expect_integer(&x, TRUE, FALSE)) return; hfraction = x; } else hfraction = 500; break; case 'l': next_ch(); if (!read_expect_integer(&x, TRUE, FALSE)) return; xadjust -= x; break; case 'r': next_ch(); if (!read_expect_integer(&x, TRUE, FALSE)) return; xadjust += x; break; case 'w': next_ch(); if (!read_expect_integer(&x, TRUE, FALSE)) return; width = x; break; case '\"': gaptext = store_Xget(sizeof(gaptextstr)); gaptext->text = string_check(string_read()); gaptext->flags = 0; gaptext->size = 0; gaptext->x = 0; gaptext->y = 0; while (read_ch == '/') { int size; next_ch(); switch (read_ch) { case 'b': if (Ustrncmp(read_chptr, "ox", 2) == 0) { next_ch(); next_ch(); next_ch(); gaptext->flags |= text_box; } else error_moan(10, "/box, /ring, or /s"); break; case 'd': gaptext->y -= read_movevalue(); break; case 'l': gaptext->x -= read_movevalue(); break; case 's': next_ch(); read_expect_integer(&size, FALSE, FALSE); if (--size < 0 || size >= MaxTextFont) { error_moan(39, MaxTextFont); size = 0; } gaptext->size = size; break; case 'r': if (Ustrncmp(read_chptr, "ing", 3) == 0) { next_ch(); next_ch(); next_ch(); next_ch(); gaptext->flags |= text_ring; } else gaptext->x += read_movevalue(); break; case 'u': gaptext->y += read_movevalue(); break; default: error_moan(10, "/box, /ring, or /s"); break; } } break; default: error_moan(10, "=, l, r, or w"); break; } sigch(); } if (stave_slurcount <= 0) error_moan(17, "%sgap directive", (read_dir->arg1)? "slur":"line"); /* Width defaults to width of text or 4 points */ if (width < 0) { if (gaptext == NULL) width = 4000; else { int fontsize = mac_muldiv((curmovt->stavesizes)[curstave], ((curmovt->fontsizes)->fontsize_text)[gaptext->size], 1000); int *matrix = ((curmovt->fontsizes)->fontmatrix_text)[gaptext->size]; if (matrix != NULL) memcpy(font_transform, matrix, 4*sizeof(int)); width = font_stringwidth(gaptext->text, font_rm, fontsize) + fontsize; font_reset(); } } /* Get data block and fill it in. */ p = store_getitem(b_linegap); p->type = (read_dir->arg1)? b_slurgap : b_linegap; p->id = lineid; p->hfraction = hfraction; p->xadjust = xadjust; p->width = width; p->draw = draw; p->args = drawargs; p->gaptext = gaptext; } /************************************************* * Midichannel, Midipitch, Midivoice, * * Playvolume, Playtranspose * *************************************************/ /* These are all variations on the same theme. All of them create a play change item entry, with various different parameters. We start with a local subrouting that they can all use. Arguments: channel channel number void voice number note note pitch volume volumne transpose transpose value Returns: nothing */ static void makechange(int channel, int voice, int note, int volume, int transpose) { b_playchangestr *p = store_getitem(b_playchange); p->stave = curstave; p->barno = stave_barnumber; p->channel = channel; p->voice = voice; p->note = note; p->volume = volume; p->transpose = transpose; p->next = NULL; *read_lastplaychange = p; read_lastplaychange = &(p->next); } /*** Midichannel ***/ static void p_midichannel(void) { int channel; int voicenumber; int volume = 128; uschar string[80]; if (!read_expect_integer(&channel, FALSE, FALSE)) return; if (channel < 1 || channel > midi_maxchannel) { error_moan(109, midi_maxchannel); return; } if (read_plainstring(string)) { if (string[0] == 0) voicenumber = 129; else /* => no change */ { if (string[0] == '#') voicenumber = Uatoi(string+1); else voicenumber = read_getmidinumber(midi_voicenames, string, US"voice"); if (voicenumber < 1 || voicenumber > 128) { error_moan(109, "voice", 128); voicenumber = 1; } } if (read_ch == '/') { int vol; next_ch(); if (read_expect_integer(&vol, FALSE, FALSE)) { if (vol > 15) error_moan(10, "Number between 0 and 15"); else volume = vol; } } } else voicenumber = 129; makechange(channel, voicenumber - 1, 128, volume, 0); /* 128 => no change */ } /*** Midivoice ***/ static void p_midivoice(void) { int voicenumber; uschar string[80]; if (read_plainstring(string)) { if (string[0] == 0) voicenumber = 129; else /* => no change */ { if (string[0] == '#') voicenumber = Uatoi(string+1); else voicenumber = read_getmidinumber(midi_voicenames, string, US"voice"); if (voicenumber < 1 || voicenumber > 128) { error_moan(109, "voice", 128); voicenumber = 1; } } makechange(128, voicenumber - 1, 128, 128, 0); /* 128 => no change */ } else error_moan(10, "string"); } /*** Midipitch ***/ static void p_midipitch(void) { int note; uschar string[80]; if (read_plainstring(string)) { if (string[0] == 0) note = 0; /* => no more forcing */ else if (string[0] == '#') note = Uatoi(string+1); else note = read_getmidinumber(midi_percnames, string, US"percussion instrument"); makechange(128, 128, note, 128, 0); /* 128 => no change */ } else error_moan(10, "string"); } /*** Playtranspose ***/ static void p_playtranspose(void) { int transpose; if (!read_expect_integer(&transpose, FALSE, TRUE)) return; makechange(128, 128, 128, 128, transpose); } /*** Playvolume ***/ static void p_playvolume(void) { int volume; if (!read_expect_integer(&volume, FALSE, FALSE)) return; if (volume > 15) { error_moan(10, "Number between 0 and 15"); return; } makechange(128, 128, 128, volume, 0); } /************************************************************************ ************************************************************************/ /************************************************* * Move & Rmove * *************************************************/ static void p_move(void) { int x; int y = 0; b_movestr *p; if (!read_expect_integer(&x, TRUE, TRUE)) return; sigch(); if (read_ch == ',') { next_ch(); if (!read_expect_integer(&y, TRUE, TRUE)) return; } p = store_getitem(b_move); p->x = x; p->y = y; p->relative = read_dir->arg1; } /************************************************* * Name * *************************************************/ /* The stave magnification is used only if an explicit size is given; otherwise the fixed size is used. */ static void p_name(void) { sigch(); /* Handle [name ] */ if (isdigit(read_ch)) { b_namestr *p = store_getitem(b_name); p->n = read_integer(FALSE); return; } /* Else handle any number of pairs; either or both may be present in each case. */ for (;;) { uschar *ss; snamestr *p; snamestr **pp; int size = ff_offset_init; sigch(); if (read_ch != '\"' && (read_ch != 'd' || Ustrncmp(read_chptr, "raw ", 4 != 0))) break; p = store_Xget(sizeof(snamestr)); pp = &(stavehead->stave_name); while (*pp != NULL) pp = &((*pp)->next); p->next = NULL; p->text = NULL; p->drawing = NULL; p->flags = 0; /* Handle a text string */ if (read_ch == '\"') { p->text = ss = string_read(); string_check(ss); p->linecount = 1; while (*ss) if (*ss++ == '|') p->linecount += 1; while (read_ch == '/') { next_ch(); if (read_ch == 'c') { p->flags |= snf_hcentre; next_ch(); } else if (read_ch == 'm') { p->flags |= snf_vcentre; next_ch(); } else if (read_ch == 'e') { p->flags |= snf_rightjust; next_ch(); } else if (read_ch == 's') { next_ch(); if (read_expect_integer(&size, FALSE, FALSE)) { if (--size < 0 || size >= MaxTextFont) error_moan(39, MaxTextFont); } else return; } else if (read_ch == 'v') { p->flags |= snf_vertical; next_ch(); } else { error_moan(10, "/c, /e, /m, /s or /v"); return; } } p->offset = size; } /* Handle a drawing; might follow a string, so check again */ sigch(); if (read_ch == 'd' && Ustrncmp(read_chptr, "raw ", 4) == 0) { uschar word[80]; drawitem args[20]; drawitem *drawargs = NULL; int argcount = 0; tree_node *node; read_chptr += 4; read_ch = ' '; sigch(); while (isdigit(read_ch) || read_ch == '-' || read_ch == '+' || read_ch == '\"') { if (read_ch == '\"') { args[++argcount].d.ptr = read_draw_text(); args[argcount].dtype = dd_text; } else { if (!read_expect_integer(&(args[++argcount].d.val), TRUE, TRUE)) break; args[argcount].dtype = dd_number; } sigch(); } if (argcount > 0) { int i; drawargs = store_Xget((argcount+1)*sizeof(drawitem)); drawargs[0].dtype = dd_number; drawargs[0].d.val = argcount; for (i = 1; i <= argcount; i++) drawargs[i] = args[i]; } read_word(word); node = Tree_Search(draw_tree, word); if (node == NULL) error_moan(70, word); p->drawing = node; p->args = drawargs; } /* Set up to move on to another one */ *pp = p; pp = &(p->next); } } /************************************************* * Newmovement * *************************************************/ /* [newmovement] is unexpected here - give a tidy error message */ static void p_newmovement(void) { error_moan(73); /* this stops processing */ } /************************************************* * Nocheck * *************************************************/ static void p_nocheck(void) { stave_checklength = FALSE; } /************************************************* * Nocount * *************************************************/ /* Set up the bar number vector now in case of an error in this bar. However, ignore if two nocounts in the same bar (causes big trouble and can happen if a bar line is accidentally omitted). */ static void p_nocount(void) { if (!stave_hadnocount) { if (++stave_totalnocount > (curmovt->barnovector)[stave_barnumber+1]) (curmovt->barnovector)[stave_barnumber+1] = stave_totalnocount; stave_hadnocount = TRUE; } } /************************************************* * Noteheads * *************************************************/ static void p_noteheads(void) { int nh; uschar word[80]; b_noteheadsstr *p; read_word(word); stave_stemflag = nf_stem; if (Ustrcmp(word, "only") == 0) { stave_stemflag = 0; nh = nh_only; } else if (Ustrcmp(word, "direct") == 0) { stave_stemflag = 0; nh = nh_direct; } else if (Ustrcmp(word, "normal") == 0) nh = nh_normal; else if (Ustrcmp(word, "harmonic") == 0) nh = nh_harmonic; else if (Ustrcmp(word, "cross") == 0) nh = nh_cross; else if (Ustrcmp(word, "none") == 0) nh = nh_none; else { error_moan(10, "\"normal\", \"harmonic\", \"cross\", \"none\", \"only\", or \"direct\""); return; } p = store_getitem(b_noteheads); p->value = nh; } /************************************************* * Notes * *************************************************/ static void p_notes(void) { int flag = FALSE; b_charvaluestr *p = store_getitem(b_notes); uschar word[80]; read_word(word); if (Ustrcmp(word, "on") == 0) flag = TRUE; else if (Ustrcmp(word, "off") != 0) error_moan(10, "\"on\" or \"off\""); stave_notes = p->value = flag; } /************************************************* * Notespacing * *************************************************/ /* There are three possible formats */ static void p_ns(void) { sigch(); if (read_ch == '*') /* Multiplicative */ { int f; b_nsmstr *p; next_ch(); if (!read_expect_integer(&f, TRUE, FALSE)) return; if (read_ch == '/') { int d; next_ch(); if (!read_expect_integer(&d, TRUE, FALSE)) return; f = mac_fdiv(f, d); } p = store_getitem(b_nsm); p->value = f; } else if (isdigit(read_ch) || read_ch == '+' || read_ch == '-') { /* Individual additive */ int i, x; b_nsstr *p = store_getitem(b_ns); for (i = 0; i < 8; i++) p->ns[i] = 0; for (i = 0; i < 8; i++) { sigch(); if (!isdigit(read_ch) && read_ch != '+' && read_ch != '-') break; if (!read_expect_integer(&x, TRUE, TRUE)) break; p->ns[i] = x; if (read_ch == ',') next_ch(); } if (i == 1) error_moan(89); /* Single change only may be a typo: warn */ } else store_getitem(b_ens); /* Reset */ } /************************************************* * Octave * *************************************************/ static void p_octave(void) { int x; if (!read_expect_integer(&x, FALSE, TRUE)) return; stave_octave = 12*x; stave_lastbasenoteptr = NULL; } /************************************************* * Omitempty * *************************************************/ static void p_omitempty(void) { stavehead->omitempty = TRUE; } /************************************************* * Page * *************************************************/ static void p_page(void) { b_pagestr *p = store_getitem(b_page); sigch(); if (read_ch == '+') { p->relative = read_ch; next_ch(); } else p->relative = 0; read_expect_integer(&(p->value), FALSE, FALSE); } /************************************************* * Percussion * *************************************************/ static void p_percussion(void) { stavehead->stavelines = 128 + 1; /* 128 => no clefs or keys */ } /************************************************* * Printpitch * *************************************************/ static void p_printpitch(void) { sigch(); if (read_ch == '*') { stave_printpitch = 0; next_ch(); } else stave_printpitch = read_stavepitch(); } /************************************************* * Reset * *************************************************/ static void p_reset(void) { (void)store_getitem(b_reset); if (stave_beaming) read_setbeamstems(); if (stave_barlength > stave_maxbarlength) stave_maxbarlength = stave_barlength; if (!stave_resetOK) error_moan((stave_barlength == 0)? 67 : 34); else if (stave_pletlen) error_moan(35); /* We do the action anyway, to prevent spurious over-long line errors */ read_initbaraccs(baraccs, stave_key); stave_barlength = 0; stave_resetOK = FALSE; } /************************************************* * Resume * *************************************************/ static void p_resume(void) { (void)store_getitem(b_resume); stave_suspended = FALSE; } /************************************************* * Rlevel * *************************************************/ static void p_rlevel(void) { (void)read_expect_integer(&stave_restlevel, TRUE, TRUE); if (opt_oldrestlevel) stave_restlevel *= 2; } /************************************************* * Rspace & Space * *************************************************/ static void p_rspace(void) { int x; b_spacestr *p; if (!read_expect_integer(&x, TRUE, TRUE)) return; p = store_getitem(b_space); p->value = x; p->relative = read_dir->arg1; } /************************************************* * Skip * *************************************************/ static void p_skip(void) { int x; if (!read_expect_integer(&x, FALSE, FALSE)) return; /* Abandon this bar if there is nothing in it, else terminate */ if ((stavehead->barindex)[stave_barnumber] == store_nextitem()) (stavehead->barindex)[stave_barnumber] = NULL; else { b_Endstr *b = store_getitem(b_End); b->overbeam = FALSE; b->barlinestyle = stave_barlinestyle; } /* Advance to the required bar */ stave_barnumber += x; (stavehead->barindex)[stave_barnumber] = store_nextitem(); } /************************************************* * Slur and line * *************************************************/ /* The basic slur structure is quite small; separate structures are used for sets of modifications. They are chained together for convenience, and a slurmod structure is created when necessary. The sequence number 0 means "the unsplit slur" while other counts are for parts of a split slur. For backwards compatiblity, we retain the following synonyms: sly = 1ry sry = 2ly slc = 1c src = 2c A local subroutine is used to find the relevant slurmod on the chain, or to create a new one if it isn't found. Arguments: sequence the sequence number anchor points to the anchor of the chain Returns: pointer to the required slurmod */ static b_slurmodstr * findmods(int sequence, b_slurmodstr **anchor) { b_slurmodstr *m = *anchor; while (m != NULL) { if (m->sequence == sequence) return m; m = m->next; } m = store_getitem(b_slurmod); memset(m, 0, sizeof(b_slurmodstr)); m->type = b_slurmod; m->next = *anchor; *anchor = m; m->sequence = sequence; return m; } /*** Slur ***/ static void p_slur(void) { b_slurstr *p; int slurid = 0; int flags = read_dir->arg1; int ally = 0; b_slurmodstr *modchain = NULL; b_slurmodstr *mods = NULL; sigch(); /* Loop to read the many options. */ while (read_ch == '/') { int *a, *b, x; next_sigch(); /* Some things may appear only before the first split number qualifier. */ if (mods != NULL && mods->sequence != 0) { if (strchr("=abeshiow", read_ch) != NULL) error_moan(113, read_ch); } switch (read_ch) { case '=': next_ch(); slurid = read_ch; next_ch(); break; case 'a': flags &= ~(sflag_b | sflag_abs | sflag_lay); next_ch(); if (read_ch == 'o') { next_ch(); flags |= sflag_lay; } else if (isdigit(read_ch) || read_ch == '-') { if (!read_expect_integer(&x, TRUE, TRUE)) return; flags |= sflag_abs; ally += x; } break; case 'b': flags &= ~(sflag_abs | sflag_lay); flags |= sflag_b; next_ch(); if (read_ch == 'u') { next_ch(); flags |= sflag_lay; } else if (isdigit(read_ch) || read_ch == '-') { if (!read_expect_integer(&x, TRUE, TRUE)) return; flags |= sflag_abs; ally -= x; } break; case 'c': next_ch(); if (mods == NULL) mods = findmods(0, &modchain); if (read_ch == 'i' || read_ch == 'o') { int s = read_ch == 'o'? +1 : -1; next_ch(); if (!read_expect_integer(&x, TRUE, FALSE)) return; mods->c += x*s; } else if (read_ch == 'l' || read_ch == 'r') { BOOL left = read_ch == 'l'; next_ch(); if (read_ch == 'u' || read_ch == 'd' || read_ch == 'l' || read_ch == 'r') { int cc = read_ch; next_ch(); if (!read_expect_integer(&x, TRUE, FALSE)) return; switch(cc) { case 'u': if (left) mods->cly += x; else mods->cry += x; break; case 'd': if (left) mods->cly -= x; else mods->cry -= x; break; case 'l': if (left) mods->clx -= x; else mods->crx -= x; break; case 'r': if (left) mods->clx += x; else mods->crx += x; break; } } else error_moan(10, "clu, cld, cll, clr, cru, crd, crl, or crr"); } else error_moan(10, "ci, co, clu, cld, cll, clr, cru, crd, crl, or crr"); break; case 'u': next_ch(); if (!read_expect_integer(&x, TRUE, FALSE)) return; if (mods == NULL || mods->sequence == 0) ally += x; else { mods->ly += x; mods->ry += x; } break; case 'd': next_ch(); if (!read_expect_integer(&x, TRUE, FALSE)) return; if (mods == NULL || mods->sequence == 0) ally -= x; else { mods->ly -= x; mods->ry -= x; } break; case 'e': flags |= sflag_e; next_ch(); break; case 'l': case 'r': if (mods == NULL) mods = findmods(0, &modchain); a = (read_ch == 'l')? &(mods->ly) : &(mods->ry); b = (read_ch == 'l')? &(mods->lx) : &(mods->rx); next_ch(); if (read_ch != 'u' && read_ch != 'd' && read_ch != 'l' && read_ch != 'r') error_moan(10, "lu, ld, ll, lr, ru, rd, rl, or rr"); else { int s = (read_ch == 'u' || read_ch == 'r')? +1 : -1; int *z = (read_ch == 'l' || read_ch == 'r')? b : a; next_ch(); if (!read_expect_integer(&x, TRUE, FALSE)) return; *z += x*s; } break; /* The s... options are obsolete, referring to the first splitting point in a way that was limited and confusing. Keep them for compatibility, though. */ case 's': next_ch(); if (read_ch == 'l' || read_ch == 'r') { int s = 0; int *z = NULL; b_slurmodstr *tempmods; if (read_ch == 'l') { tempmods = findmods(1, &modchain); a = &(tempmods->ry); b = &(tempmods->c); } else { tempmods = findmods(2, &modchain); a = &(tempmods->ly); b = &(tempmods->c); } next_ch(); if (read_ch == 'u' || read_ch == 'd') { s = (read_ch == 'u')? +1 : -1; z = a; } else if (read_ch == 'c') { next_ch(); if (read_ch != 'i' && read_ch != 'o') error_moan(10, "slci or slco"); else { s = (read_ch == 'o')? +1 : -1; z = b; } } else error_moan(10, "u, d, ci or co"); if (z != NULL) { next_ch(); if (!read_expect_integer(&x, TRUE, FALSE)) return; *z += s*x; } } else error_moan(10, "sl.. or sr.."); break; case 'h': flags |= sflag_h; next_ch(); break; case 'i': flags |= sflag_i; next_ch(); if (read_ch == 'p') { flags |= sflag_idot; next_ch(); } break; case 'o': next_ch(); if (read_ch == 'l') flags |= sflag_ol; else if (read_ch == 'r') flags |= sflag_or; else error_moan(10, "ol or or"); next_ch(); break; case 'w': flags |= sflag_w; next_ch(); break; default: if (isdigit(read_ch)) { int n = read_integer(FALSE); if (n == 0) error_moan(37, "number greater than zero"); mods = findmods(n, &modchain); sigch(); } else error_moan(10, "=, a, b, w, ci, co, d, e, u, lu, ld, ru, rd, h, i, ol, or, or number"); break; } sigch(); } /* We don't allow wiggly with line slurs */ if ((flags & sflag_w) != 0) { if ((flags & sflag_l) != 0) error_moan(33, "lines"); } /* We don't support editorial marks on dotted or dashed slurs */ /* ... but they have been requested, even though they may end up drawing the editorial mark through a space ... if ((flags & sflag_e) != 0) { if ((flags & sflag_i) != 0) error_moan(94); } */ /* Now output the slur proper, and count for nesting check. */ p = store_getitem(b_slur); p->flags = flags; p->id = slurid; p->ally = ally; p->mods = modchain; stave_slurcount++; } /************************************************* * Smove * *************************************************/ static void p_smove(void) { b_movestr *p; if (!read_expect_integer(&stave_smove, TRUE, TRUE)) return; p = store_getitem(b_move); p->x = stave_smove; p->y = 0; p->relative = stave_smove_relative = read_dir->arg1; } /************************************************* * Stavelines * *************************************************/ static void p_stavelines(void) { int n; if (!read_expect_integer(&n, FALSE, FALSE)) return; if (n > 6) error_moan(10, "Number in the range 0-6"); else stavehead->stavelines = n; } /************************************************* * Stavespacing * *************************************************/ static void p_ss(void) { unsigned int done[stave_bitvec_size]; sigch(); mac_initstave(done, 0); for (;;) { int spacing, stave; int opt = (read_ch == '+' || read_ch == '-')? '+' : ' '; if (!read_expect_integer(&spacing, TRUE, TRUE)) return; if (read_ch != '/') stave = curstave; else { if (opt != ' ' || spacing < 0 || (spacing%1000) != 0) { error_moan(10, "Stave number"); return; } stave = spacing/1000; next_ch(); opt = (read_ch == '+' || read_ch == '-')? '+' : ' '; if (!read_expect_integer(&spacing, TRUE, TRUE)) return; } if (stave > max_stave) error_moan(42, max_stave); else { b_ssstr *p = store_getitem(read_dir->arg1); p->opt = opt; p->stave = stave; p->value = spacing; } if (mac_teststave(done, stave)) error_moan(106, stave, read_dir->name); mac_setstave(done, stave); sigch(); if (read_ch == ',') next_sigch(); if (read_ch != '+' && read_ch != '-' && !isdigit(read_ch)) break; } } /************************************************* * Stems/Ties * *************************************************/ static void p_stems(void) { int *p = (read_dir->arg1 == 1)? &stave_stemforce : &stave_ties; uschar word[80]; read_word(word); if (Ustrcmp(word, "auto") == 0) *p = 0; else if (Ustrcmp(word, "up") == 0 || Ustrcmp(word, "above") == 0) *p = +1; else if (Ustrcmp(word, "down") == 0 || Ustrcmp(word, "below") == 0) *p = -1; else error_moan(10, "\"auto\", \"above\", \"up\", \"below\", or \"down\""); } /************************************************* * Stemlength = Sl * *************************************************/ static void p_stemlength(void) { (void)read_expect_integer(&stave_stemlength, TRUE, TRUE); if (opt_oldstemlength) stave_stemlength *= 2; } /************************************************* * Suspend * *************************************************/ static void p_suspend(void) { (void)store_getitem(b_suspend); stave_suspended = TRUE; } /************************************************* * Systemgap * *************************************************/ static void p_sg(void) { b_sgstr *p; int opt, value; sigch(); opt = (read_ch == '+' || read_ch == '-')? '+' : ' '; if (!read_expect_integer(&value, TRUE, TRUE)) return; p = store_getitem(read_dir->arg1); p->opt = opt; p->value = value; } /************************************************* * Text * *************************************************/ static void p_text(void) { int sign = 1; uschar word[80]; read_word(word); stave_textabsolute = 0; if (Ustrcmp(word, "underlay") == 0) stave_textflags = text_ul; else if (Ustrcmp(word, "overlay") == 0) stave_textflags = text_ul | text_above; else if (Ustrcmp(word, "fb") == 0) stave_textflags = text_fb; else { if (Ustrcmp(word, "above") == 0) stave_textflags = text_above; else if (Ustrcmp(word, "below") == 0) { stave_textflags = 0; sign = -1; } else { error_moan(10, "\"underlay\", \"fb\", \"above\", or \"below\""); return; } /* Check for absolute setting */ sigch(); if (isdigit(read_ch)) { stave_textflags |= text_absolute; stave_textabsolute = sign*read_integer(TRUE); } } } /************************************************* * Time * *************************************************/ static void p_time(void) { int warn = curmovt->timewarn; int t = read_time(); /* returns 0 after giving error */ int tt = t; if (t == 0) return; /* If the time signature is followed by "->" then we read a second signature to which bars are to be musically stretched or compressed. */ sigch(); if (read_ch == '-' && *read_chptr == '>') { read_chptr++; next_ch(); tt = read_time(); if (tt == 0) tt = t; } /* Set up stretching numerator and denominator. So as not to waste time multiplying in the common case, indicate that with numerator == 0. */ stave_requiredbarlength = read_compute_barlength(tt); if (t == tt) stave_matchnum = 0; else { stave_matchnum = stave_requiredbarlength; stave_matchden = read_compute_barlength(t); } /* Now test for "nowarn". */ read_word(read_stavedir); if (Ustrcmp(read_stavedir, "nowarn") == 0) { read_stavedir[0] = 0; warn = FALSE; } if (!read_assumeflag) { b_timestr *p = store_getitem(b_time); p->time = t; p->warn = warn; p->suppress = !curmovt->showtime; /* Suppress if notime */ } else { b_settimestr *p = store_getitem(b_settime); p->value = t; read_assumeflag = FALSE; } } /************************************************* * Transpose * *************************************************/ /* A stave transpose does not of itself change the key signature. This is a facility, not a bug! However, we must call the routine in order to set up the letter count for transposing notes. The yield is discarded. */ static void p_transpose(void) { int x; if (!read_expect_integer(&x, FALSE, TRUE)) return; if (stave_transpose >= max_transpose) stave_transpose = 0; stave_transpose += x; (void)transpose_key(stave_key, stave_transpose, TRUE); stave_lastbasenoteptr = NULL; } /************************************************* * Transposedacc * *************************************************/ static void p_transposedacc(void) { uschar word[80]; read_word(word); if (Ustrcmp(word, "force") == 0) stave_transposedaccforce = TRUE; else if (Ustrcmp(word, "noforce") == 0) stave_transposedaccforce = FALSE; else error_moan(10, "\"force\" or \"noforce\""); } /************************************************* * Tremolo * *************************************************/ static void p_tremolo(void) { b_tremolostr *p; int count = 2; int join = 0; sigch(); while (read_ch == '/') { next_ch(); if (read_ch == 'x' || read_ch == 'j') { int *xp = (read_ch == 'x')? &count : &join; next_ch(); if (!read_expect_integer(xp, FALSE, FALSE)) return; } else error_moan(10, "\"x\" or \"j\""); sigch(); } (void)store_getitem(b_beambreak); p = store_getitem(b_tremolo); p->count = count; p->join = join; } /************************************************* * Triplets * *************************************************/ static void p_triplets(void) { int hadone = FALSE; int flag = TRUE; b_charvaluestr *p = store_getitem(b_tripsw); for (;;) { read_word(read_stavedir); if (Ustrcmp(read_stavedir, "above") == 0) { stave_pletflags &= ~plet_b; stave_pletflags |= plet_a; goto ADJUST; } else if (Ustrcmp(read_stavedir, "below") == 0) { stave_pletflags &= ~plet_a; stave_pletflags |= plet_b; ADJUST: stave_plety = 0; stave_pletflags &= ~plet_abs; sigch(); if (read_ch == '+' || read_ch == '-') (void)read_expect_integer(&stave_plety, TRUE, TRUE); else if (isdigit(read_ch)) { stave_pletflags |= plet_abs; stave_plety = read_integer(TRUE); if ((stave_pletflags & plet_b) != 0) stave_plety = -stave_plety; } } else if (Ustrcmp(read_stavedir, "auto") == 0) { stave_pletflags &= ~(plet_a | plet_b | plet_abs | plet_bn | plet_by); stave_plety = 0; } else if (Ustrcmp(read_stavedir, "bracket") == 0) { stave_pletflags &= ~plet_bn; stave_pletflags |= plet_by; } else if (Ustrcmp(read_stavedir, "nobracket") == 0) { stave_pletflags &= ~plet_by; stave_pletflags |= plet_bn; } else if (Ustrcmp(read_stavedir, "off") == 0) flag = FALSE; else if (Ustrcmp(read_stavedir, "on") == 0) flag = TRUE; else break; hadone = TRUE; } if (!hadone) error_moan(10, "\"above\", \"below\", \"auto\", \"[no]bracket\", \"on\", or \"off\""); p->value = flag; } /************************************************* * Ulevel/Olevel * *************************************************/ /* Knows that ulevelstr has the same form as olevelstr; the actual type required is in the argument. */ static void p_uolevel(void) { b_ulevelstr *p; int autoflag, value; sigch(); if (read_ch == '*') { autoflag = TRUE; next_ch(); } else { if (!read_expect_integer(&value, TRUE, TRUE)) return; autoflag = FALSE; } p = store_getitem(read_dir->arg1); p->opt = autoflag; p->value = value; } /************************************************* * Table of stave directives * *************************************************/ static dirstr read_stavedirlist[] = { { "all", p_common, b_all, TRUE }, { "alto", p_clef, clef_alto, FALSE }, { "assume", p_assume, 0, TRUE }, { "baritone", p_clef, clef_baritone, FALSE }, { "barlinestyle", p_barlinestyle, 0, TRUE }, { "barnumber", p_barnum, 0, TRUE }, { "bass", p_clef, clef_bass, FALSE }, { "beamacc", p_beamaccrit, b_beamacc, FALSE }, { "beammove", p_svalue, b_offset, TRUE }, { "beamrit", p_beamaccrit, b_beamrit, FALSE }, { "beamslope", p_svalue, b_slope, TRUE }, { "bottommargin", p_pvalue, b_pagebots, TRUE }, { "bowing", p_above, b_bowing, TRUE }, { "breakbarline", p_common, b_breakbarline, TRUE }, { "cbaritone", p_clef, clef_cbaritone, FALSE }, { "comma", p_common, b_comma, FALSE }, { "contrabass", p_clef, clef_contrabass, FALSE }, { "copyzero", p_svalue, b_zcopy, TRUE }, { "couple", p_couple, 0, TRUE }, { "cue", p_cue, 0, TRUE }, { "deepbass", p_clef, clef_deepbass, FALSE }, { "dots", p_dots, 0, TRUE }, { "draw", p_draw, FALSE, FALSE }, { "el", p_endline, 0, TRUE }, { "endcue", p_endcue, 0, TRUE }, { "endline", p_endline, 0, TRUE }, { "endslur", p_endline, 0, TRUE }, { "endstaff", p_endstave, 0, TRUE }, { "endstave", p_endstave, 0, TRUE }, { "ensure", p_pvalue, b_ensure, FALSE }, { "es", p_endline, 0, TRUE }, { "fbfont", p_font, 0, TRUE }, { "fbtextsize", p_size, 0, TRUE }, { "footnote", p_footnote, 0, TRUE }, { "h", p_nh, nh_harmonic, TRUE }, { "hairpins", p_hairpins, 0, TRUE }, { "hairpinwidth", p_hairpinwidth, 0, TRUE }, { "hclef", p_clef, clef_h, FALSE }, { "justify", p_justify, 0, TRUE }, { "key", p_key, 0, FALSE }, { "line", p_slur, sflag_l, FALSE }, { "linegap", p_linegap, FALSE, FALSE }, { "mezzo", p_clef, clef_mezzo, FALSE }, { "midichannel", p_midichannel,0, TRUE }, { "midipitch", p_midipitch, 0, TRUE }, { "miditranspose", p_playtranspose, 0, TRUE }, { "midivoice", p_midivoice, 0, TRUE }, { "midivolume", p_playvolume, 0, TRUE }, { "move", p_move, FALSE, FALSE }, { "name", p_name, 0, TRUE }, { "newline", p_common, b_newline, TRUE }, { "newmovement", p_newmovement,0, TRUE }, { "newpage", p_common, b_newpage, TRUE }, { "nocheck", p_nocheck, 0, TRUE }, { "noclef", p_clef, clef_none, FALSE }, { "nocount", p_nocount, 0, TRUE }, { "noteheads", p_noteheads, 0, TRUE }, { "notes", p_notes, 0, TRUE }, { "notespacing", p_ns, 0, TRUE }, { "ns", p_ns, 0, TRUE }, { "o", p_nh, nh_normal, TRUE }, { "octave", p_octave, 0, TRUE }, { "olevel", p_uolevel, b_olevel, TRUE }, { "olhere", p_svalue, b_olhere, TRUE }, { "oltextsize", p_size, 3, TRUE }, { "omitempty", p_omitempty, 0, TRUE }, { "overdraw", p_draw, TRUE, FALSE }, { "overlayfont", p_font, 3, TRUE }, { "page", p_page, 0, TRUE }, { "percussion", p_percussion, 0, TRUE }, { "playtranspose", p_playtranspose, 0, TRUE }, { "playvolume", p_playvolume, 0, TRUE }, { "printpitch", p_printpitch, 0, TRUE }, { "reset", p_reset, 0, TRUE }, { "resume", p_resume, 0, TRUE }, { "rlevel", p_rlevel, 0, TRUE }, { "rmove", p_move, TRUE, FALSE }, { "rsmove", p_smove, TRUE, FALSE }, { "rspace", p_rspace, TRUE, FALSE }, { "sghere", p_sg, b_sghere, TRUE }, { "sgnext", p_sg, b_sgnext, TRUE }, { "skip", p_skip, 0, TRUE }, { "sl", p_stemlength, 0, TRUE }, { "slur", p_slur, 0, FALSE }, { "slurgap", p_linegap, TRUE, FALSE }, { "smove", p_smove, FALSE, FALSE }, { "soprabass", p_clef, clef_soprabass, FALSE }, { "soprano", p_clef, clef_soprano, FALSE }, { "space", p_rspace, FALSE, FALSE }, { "sshere", p_ss, b_sshere, TRUE }, { "ssnext", p_ss, b_ssnext, TRUE }, { "stavelines", p_stavelines, 0, TRUE }, { "stemlength", p_stemlength, 0, TRUE}, { "stems", p_stems, 1, TRUE }, { "suspend", p_suspend, 0, TRUE }, { "tenor", p_clef, clef_tenor, FALSE }, { "text", p_text, 0, TRUE }, { "textfont", p_font, 1, TRUE }, { "textsize", p_size, 1, TRUE }, { "tick", p_common, b_tick, FALSE }, { "ties", p_stems, 2, TRUE }, { "time", p_time, 0, FALSE }, { "topmargin", p_pvalue, b_pagetops, TRUE }, { "transpose", p_transpose, 0, TRUE }, { "transposedacc", p_transposedacc, 0, TRUE }, { "treble", p_clef, clef_treble, FALSE }, { "trebledescant", p_clef, clef_trebledescant, FALSE }, { "trebletenor", p_clef, clef_trebletenor, FALSE }, { "trebletenorb", p_clef, clef_trebletenorB, FALSE }, { "tremolo", p_tremolo, 0, TRUE }, { "triplets", p_triplets, 0, TRUE }, { "ulevel", p_uolevel, b_ulevel, TRUE }, { "ulhere", p_svalue, b_ulhere, TRUE }, { "ultextsize", p_size, 2, TRUE }, { "unbreakbarline",p_common, b_unbreakbarline, TRUE }, { "underlayfont", p_font, 2, TRUE }, { "x", p_nh, nh_cross, TRUE }, { "xline", p_slur, sflag_x+sflag_l, FALSE }, { "xslur", p_slur, sflag_x, FALSE }, { "z", p_nh, nh_none, 0 } }; static int read_stavedirsize = sizeof(read_stavedirlist)/sizeof(dirstr); /************************************************* * Handle a stave directive * *************************************************/ /* The directive name is already in read_stavedir. If processing this one reads one word ahead, leave that word in read_stavedir for next time. Arguments: none Returns: nothing */ void read_stavedirective(void) { dirstr *first = read_stavedirlist; dirstr *last = first + read_stavedirsize; while (last > first) { int c; read_dir = first + (last-first)/2; c = Ustrcmp(read_stavedir, read_dir->name); if (c == 0) { read_stavedir[0] = 0; (read_dir->proc)(); if (!read_dir->arg2) stave_resetOK = FALSE; return; } if (c > 0) first = read_dir + 1; else last = read_dir; } error_moan(32, read_stavedir); read_stavedir[0] = 0; } /************************************************* * Read a clef name * *************************************************/ /* This function is used by the printkey heading directive. It is here so that it can use the table above for the supported clefs, thus avoiding a duplicate list. Argument: none Returns: the key */ int read_clef(void) { uschar word[256]; dirstr *first, *last; read_word(word); if (word[0] == 0) { error_moan(105); return 0; } first = read_stavedirlist; last = first + read_stavedirsize; while (last > first) { int c; dirstr *d = first + (last-first)/2; c = Ustrcmp(word, d->name); if (c == 0) { if (d->proc == p_clef) return d-> arg1; break; } if (c > 0) first = d + 1; else last = d; } error_moan(126, word); return 0; } /* End of read4.c */ pmw-4.27/src/poshdr.h0000644000222100022210000000200612247665016012605 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2008 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: September 2008 */ /* This is the header file for the bar measuring routines. */ /* To re-use one field in the pos structure without having to mess about with unions, we use this macro. */ #define posstaves stemup[0] /* Flag bits for remembering what precedes a note */ #define xf_caesura 1 #define xf_comma 2 #define xf_tick 4 #define xf_dotbar 8 #define xf_rrepeat 16 #define xf_clef 32 #define xf_lrepeat 64 #define xf_keytime 128 #define xf_grace 256 extern barposstr *pos_bp; extern BOOL pos_barstartrepeat; extern workposstr *pos_insertextras(int, int, int, int *, int *, int *, workposstr *, int, int); extern int pos_typewidth(int, int, int); extern int pos_notewidth(int); /* End of poshdr.h */ pmw-4.27/src/preprocess.c0000644000222100022210000002166212247665016013477 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2008 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: September 2008 */ /* This file contains code for handling "preprocessing" functions. */ #include "pmwhdr.h" #include "readhdr.h" /************************************************* * Deal with pre-processing directive * *************************************************/ /* We enter with read_ptr pointing to the first letter of the directive's name, so we are guaranteed to read a word. We can use normal item reading routines, but must take care not to do so at the end of a line. Arguments: none Returns: nothing */ void pre_process(void) { uschar word[256]; read_word(word); sigchNL(); DEBUG(("pre_process(%s) entered\n", word)); /* Deal with "if" */ if (Ustrcmp(word, "if") == 0) { int OK; if (read_skipdepth > 0) { read_skipdepth++; read_chptr = read_endptr; read_ch = '\n'; DEBUG(("pre_process(if) ending\n")); return; } for (;;) { OK = TRUE; word[0] = 0; if (read_ch != '\n') read_word(word); if (Ustrcmp(word, "not") == 0) { OK = !OK; sigchNL(); word[0] = 0; if (read_ch != '\n') read_word(word); } if (word[0] == 0) { error_moan(10, "Word"); break; } else { int i; if (Ustrcmp(word, "score") == 0) { for (i = 0; i < stave_bitvec_size; i++) if (curmovt->staves[i] != -1) { OK = !OK; break; } } else if (Ustrcmp(word, "part") == 0) { for (i = 0; i < stave_bitvec_size; i++) if (curmovt->staves[i] != -1) break; if (i >= stave_bitvec_size) OK = !OK; } /* For a stave list, we can't use a common routine with other directives because we mustn't stray over the end of the line! */ else if (Ustrcmp(word, "staff") == 0 || Ustrcmp(word, "stave") == 0 || Ustrcmp(word, "staves") == 0) { int map[stave_bitvec_size]; mac_initstave(map, 0); mac_setstave(map, 0); /* Staff zero is always selected */ sigchNL(); while (isdigit(read_ch)) { int s = read_integer(FALSE); int t = s; sigchNL(); if (read_ch == '-') { next_ch(); sigchNL(); if (!isdigit(read_ch)) { error_moan(10, "Number"); t = s; } else t = read_integer(FALSE); } if (t < s) error_moan(21); else if (t > max_stave) error_moan(22, max_stave+1); else { int i; for (i = s; i <= t; i++) mac_setstave(map, i); } sigchNL(); if (read_ch == ',') { next_ch(); sigchNL(); } } for (i = 0; i < stave_bitvec_size; i++) if (map[i] != curmovt->staves[i]) { OK = !OK; break; } } /* Deal with definition test */ else if (Ustrcmp(word, "undef") == 0) { sigchNL(); word[0] = 0; if (read_ch != '\n') read_word(word); if (word[0] == 0) error_moan(10, "Macro name"); else { if (Tree_Search(define_tree, word) != NULL) OK = !OK; } } /* Test if any format is set */ else if (Ustrcmp(word, "format") == 0) { if (main_format[0] == 0) OK = !OK; } /* Not recognized; take as format word */ else { if (Ustrcmp(word, main_format) != 0) OK = !OK; else main_format_tested = TRUE; } } /* See if the next thing is "or"; if not and if not newline, error. Otherwise, if it's "or" and OK == FALSE, let the loop continue. */ sigchNL(); if (read_ch == '\n') break; word[0] = 0; read_word(word); if (Ustrcmp(word, "or") != 0) { error_moan(10, "\"or\""); break; } if (OK) break; sigchNL(); } /* Decision taken; act appropriately */ if (OK) read_okdepth++; else read_skipdepth++; DEBUG(("pre_process(if) ending\n")); return; } /* Deal with "else" */ if (Ustrcmp(word, "else") == 0) { if (read_skipdepth <= 1) { if (read_skipdepth == 1) { read_skipdepth--; read_okdepth++; } else if (read_okdepth > 0) { read_skipdepth++; read_okdepth--; } else error_moan(17, "\"*else\""); } DEBUG(("pre_process(else) ending\n")); return; } /* Deal with "fi" */ if (Ustrcmp(word, "fi") == 0) { if (read_skipdepth > 0) read_skipdepth--; else if (read_okdepth > 0) read_okdepth--; else error_moan(17, "*fi"); DEBUG(("pre_process(fi) ending\n")); return; } /* Others are only looked at when not skipping */ if (read_skipdepth > 0) { DEBUG(("pre_process() ending -- skipping\n")); return; } /* Deal with defining names */ if (Ustrcmp(word, "define") == 0) { if (read_ch != '\n') /* Don't use read_word, because it */ { /* converts to lower case */ int i = 0; sigch(); if (isalnum(read_ch)) { do { word[i++] = read_ch; next_ch(); } while (isalnum(read_ch)); } word[i] = 0; } if (word[0] == 0) error_moan(10, "Macro name"); else { int len; int argcount = 0; uschar *args[20]; uschar arg[256]; tree_node *p = store_Xget(sizeof(tree_node)); p->name = store_Xget(Ustrlen(word) + 1); Ustrcpy(p->name, word); if (*(--read_chptr) == '(') { while (read_chptr < read_endptr && *read_chptr != ')') { int bracount = 0; BOOL inquotes = FALSE; uschar *s = arg; while (++read_chptr < read_endptr && ((*read_chptr != ',' && *read_chptr != ')') || bracount > 0 || inquotes)) { int ch = *read_chptr; if (ch == '&') *s++ = *(++read_chptr); else { if (ch == '\"') inquotes = !inquotes; if (!inquotes) { if (ch == '(') bracount++; else if (ch == ')') bracount--; } *s++ = ch; } } if (read_chptr >= read_endptr) error_moan(99); if (s - arg > 0) { uschar *ss = store_Xget(s - arg + 1); *s = 0; Ustrcpy(ss, arg); args[argcount++] = ss; } else args[argcount++] = NULL; } if (*read_chptr == ')') read_chptr++; } while (*read_chptr == ' ' || *read_chptr == '\t') read_chptr++; while (read_endptr[-1] == ' ' || read_endptr[-1] == '\t') read_endptr--; len = read_endptr - read_chptr; if (len <= 0 && argcount == 0) p->data = NULL; else { int i; uschar *pp = store_Xget(len + 1); macrostr *mm = store_Xget(sizeof(macrostr) + (argcount-1)*(sizeof(uschar *))); mm->argcount = argcount; p->data = (uschar *)mm; mm->text = pp; while (len-- > 0) *pp++ = *read_chptr++; *pp = 0; for (i = 0; i < argcount; i++) mm->args[i] = args[i]; } if (!Tree_InsertNode(&define_tree, p)) error_moan(14, word); read_chptr = read_endptr; read_ch = '\n'; } } /* Deal with included files */ else if (Ustrcmp(word, "include") == 0) { FILE *f; if (read_filestackptr >= max_include) { error_moan(15, max_include); return; } if (read_ch == '\n' || !read_plainstring(word)) { error_moan(10, "File name in quotes"); return; } sys_relativize(word); f = Ufopen(word, "r"); if (f == NULL) { error_moan(4, word, strerror(errno)); return; } /* Stack the current variables and replace with new ones. The size is added to the total size expected. */ read_filestack[read_filestackptr].file = input_file; read_filestack[read_filestackptr].filename = main_filename; read_filestack[read_filestackptr].linenumber = read_linenumber; read_filestack[read_filestackptr++].okdepth = read_okdepth; input_file = f; read_okdepth = 0; read_linenumber = 0; main_filename = store_copystring(word); DEBUG(("including file %s\n", main_filename)); } /* Deal with comment */ else if (Ustrcmp(word, "comment") == 0) { uschar *s = read_chptr - 1; fprintf(stderr, "%s\n", s); read_chptr = read_endptr; read_ch = '\n'; } /* Else unknown preprocessing directive */ else { error_moan(13, word); read_chptr = read_endptr; read_ch = '\n'; } /* Test for extraneous characters */ sigchNL(); if (read_ch != '\n') error_moan(16, "Extraneous characters ignored"); DEBUG(("pre_process() ending\n")); } /* End of preprocess.c */ pmw-4.27/src/font.c0000644000222100022210000010007512247665016012254 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2013 */ /* Written by Philip Hazel, starting November 1991 */ /* Re-coded for Unicode support: August 2005 */ /* This file last modified: December 2013 */ /* This file contains code for handling text fonts */ #include "pmwhdr.h" #include "readhdr.h" /* Entries in the character name to Unicode code point table */ typedef struct an2uencod { uschar *name; /* Adobe character name */ int code; /* Unicode code point */ int poffset; /* Offset for printing certain chars */ } an2uencod; /* This table translates character names from PostScript fonts that use Adobe's standard encoding into Unicode. In addition, for characters whose Unicode values are greater than LOWCHARLIMIT, it includes the offset above LOWCHARLIMIT that we use for printing these characters. */ static an2uencod an2ulist[] = { { US"A", 0x0041, -1 }, { US"AE", 0x00c6, -1 }, { US"Aacute", 0x00c1, -1 }, { US"Abreve", 0x0102, -1 }, { US"Acircumflex", 0x00c2, -1 }, { US"Adieresis", 0x00c4, -1 }, { US"Agrave", 0x00c0, -1 }, { US"Amacron", 0x0100, -1 }, { US"Aogonek", 0x0104, -1 }, { US"Aring", 0x00c5, -1 }, { US"Atilde", 0x00c3, -1 }, { US"B", 0x0042, -1 }, { US"C", 0x0043, -1 }, { US"Cacute", 0x0106, -1 }, { US"Ccaron", 0x010c, -1 }, { US"Ccedilla", 0x00c7, -1 }, { US"Ccircumflex", 0x0108, -1 }, { US"Cdotaccent", 0x010a, -1 }, { US"D", 0x0044, -1 }, { US"Dcaron", 0x010e, -1 }, { US"Dcroat", 0x0110, -1 }, { US"Delta", 0x0394, +0 }, { US"E", 0x0045, -1 }, { US"Eacute", 0x00c9, -1 }, { US"Ebreve", 0x0114, -1 }, { US"Ecaron", 0x011a, -1 }, { US"Ecircumflex", 0x00ca, -1 }, { US"Edieresis", 0x00cb, -1 }, { US"Edotaccent", 0x0116, -1 }, { US"Egrave", 0x00c8, -1 }, { US"Emacron", 0x0112, -1 }, { US"Eng", 0x014a, -1 }, { US"Eogonek", 0x0118, -1 }, { US"Eth", 0x00d0, -1 }, { US"Euro", 0x20ac, +1 }, { US"F", 0x0046, -1 }, { US"G", 0x0047, -1 }, { US"Gbreve", 0x011e, -1 }, { US"Gcircumflex", 0x011c, -1 }, { US"Gcommaaccent", 0x0122, -1 }, { US"Gdotaccent", 0x0120, -1 }, { US"H", 0x0048, -1 }, { US"Hbar", 0x0126, -1 }, { US"Hcircumflex", 0x0124, -1 }, { US"I", 0x0049, -1 }, { US"IJ", 0x0132, -1 }, { US"Iacute", 0x00cd, -1 }, { US"Ibreve", 0x012c, -1 }, { US"Icircumflex", 0x00ce, -1 }, { US"Idieresis", 0x00cf, -1 }, { US"Idotaccent", 0x0130, -1 }, { US"Igrave", 0x00cc, -1 }, { US"Imacron", 0x012a, -1 }, { US"Iogonek", 0x012e, -1 }, { US"Itilde", 0x0128, -1 }, { US"J", 0x004a, -1 }, { US"Jcircumflex", 0x0134, -1 }, { US"K", 0x004b, -1 }, { US"Kcommaaccent", 0x0136, -1 }, { US"L", 0x004c, -1 }, { US"Lacute", 0x0139, -1 }, { US"Lcaron", 0x013d, -1 }, { US"Lcommaaccent", 0x013b, -1 }, { US"Ldot", 0x013f, -1 }, { US"Lslash", 0x0141, -1 }, { US"M", 0x004d, -1 }, { US"N", 0x004e, -1 }, { US"Nacute", 0x0143, -1 }, { US"Ncaron", 0x0147, -1 }, { US"Ncommaaccent", 0x0145, -1 }, { US"Ntilde", 0x00d1, -1 }, { US"O", 0x004f, -1 }, { US"OE", 0x0152, -1 }, { US"Oacute", 0x00d3, -1 }, { US"Obreve", 0x014e, -1 }, { US"Ocircumflex", 0x00d4, -1 }, { US"Odieresis", 0x00d6, -1 }, { US"Ograve", 0x00d2, -1 }, { US"Ohungarumlaut", 0x0150, -1 }, { US"Omacron", 0x014c, -1 }, { US"Oslash", 0x00d8, -1 }, { US"Otilde", 0x00d5, -1 }, { US"P", 0x0050, -1 }, { US"Q", 0x0051, -1 }, { US"R", 0x0052, -1 }, { US"Racute", 0x0154, -1 }, { US"Rcaron", 0x0158, -1 }, { US"Rcommaaccent", 0x0156, -1 }, { US"S", 0x0053, -1 }, { US"Sacute", 0x015a, -1 }, { US"Scaron", 0x0160, -1 }, { US"Scedilla", 0x015e, -1 }, { US"Scircumflex", 0x015c, -1 }, { US"Scommaaccent", 0x0218, +2 }, { US"T", 0x0054, -1 }, { US"Tbar", 0x0166, -1 }, { US"Tcaron", 0x0164, -1 }, { US"Tcedilla", 0x0162, -1 }, { US"Tcommaaccent", 0x021a, +3 }, { US"Thorn", 0x00de, -1 }, { US"U", 0x0055, -1 }, { US"Uacute", 0x00da, -1 }, { US"Ubreve", 0x016c, -1 }, { US"Ucircumflex", 0x00db, -1 }, { US"Udieresis", 0x00dc, -1 }, { US"Ugrave", 0x00d9, -1 }, { US"Uhungarumlaut", 0x0170, -1 }, { US"Umacron", 0x016a, -1 }, { US"Uogonek", 0x0172, -1 }, { US"Uring", 0x016e, -1 }, { US"Utilde", 0x0168, -1 }, { US"V", 0x0056, -1 }, { US"W", 0x0057, -1 }, { US"Wcircumflex", 0x0174, -1 }, { US"X", 0x0058, -1 }, { US"Y", 0x0059, -1 }, { US"Yacute", 0x00dd, -1 }, { US"Ycircumflex", 0x0176, -1 }, { US"Ydieresis", 0x0178, -1 }, { US"Z", 0x005a, -1 }, { US"Zacute", 0x0179, -1 }, { US"Zcaron", 0x017d, -1 }, { US"Zdotaccent", 0x017b, -1 }, { US"a", 0x0061, -1 }, { US"aacute", 0x00e1, -1 }, { US"abreve", 0x0103, -1 }, { US"acircumflex", 0x00e2, -1 }, { US"acute", 0x00b4, -1 }, { US"adieresis", 0x00e4, -1 }, { US"ae", 0x00e6, -1 }, { US"agrave", 0x00e0, -1 }, { US"amacron", 0x0101, -1 }, { US"ampersand", 0x0026, -1 }, { US"aogonek", 0x0105, -1 }, { US"aring", 0x00e5, -1 }, { US"asciicircum", 0x005e, -1 }, { US"asciitilde", 0x007e, -1 }, { US"asterisk", 0x002a, -1 }, { US"at", 0x0040, -1 }, { US"atilde", 0x00e3, -1 }, { US"b", 0x0062, -1 }, { US"backslash", 0x005c, -1 }, { US"bar", 0x007c, -1 }, { US"braceleft", 0x007b, -1 }, { US"braceright", 0x007d, -1 }, { US"bracketleft", 0x005b, -1 }, { US"bracketright", 0x005d, -1 }, { US"breve", 0x0306, +4 }, { US"brokenbar", 0x00a6, -1 }, { US"bullet", 0x00b7, -1 }, { US"c", 0x0063, -1 }, { US"cacute", 0x0107, -1 }, { US"caron", 0x030c, +5 }, { US"ccaron", 0x010d, -1 }, { US"ccedilla", 0x00e7, -1 }, { US"ccircumflex", 0x0109, -1 }, { US"cdotaccent", 0x010b, -1 }, { US"cedilla", 0x00b8, -1 }, { US"cent", 0x00a2, -1 }, { US"circumflex", 0x0302, +6 }, { US"colon", 0x003a, -1 }, { US"comma", 0x002c, -1 }, { US"commaaccent", 0x0326, +7 }, { US"copyright", 0x00a9, -1 }, { US"currency", 0x00a4, -1 }, { US"d", 0x0064, -1 }, { US"dagger", 0x2020, +8 }, { US"daggerdbl", 0x2021, +9 }, { US"dcaron", 0x010f, -1 }, { US"dcroat", 0x0111, -1 }, { US"degree", 0x00b0, -1 }, { US"dieresis", 0x00a8, -1 }, { US"divide", 0x00f7, -1 }, { US"dollar", 0x0024, -1 }, { US"dotaccent", 0x0307, 10 }, { US"dotlessi", 0x0131, -1 }, { US"e", 0x0065, -1 }, { US"eacute", 0x00e9, -1 }, { US"ebreve", 0x0115, -1 }, { US"ecaron", 0x011b, -1 }, { US"ecircumflex", 0x00ea, -1 }, { US"edieresis", 0x00eb, -1 }, { US"edotaccent", 0x0117, -1 }, { US"egrave", 0x00e8, -1 }, { US"eight", 0x0038, -1 }, { US"ellipsis", 0x2026, 11 }, { US"emacron", 0x0113, -1 }, { US"emdash", 0x2014, 12 }, { US"endash", 0x2013, 13 }, { US"eng", 0x014b, -1 }, { US"eogonek", 0x0119, -1 }, { US"equal", 0x003d, -1 }, { US"eth", 0x00f0, -1 }, { US"exclam", 0x0021, -1 }, { US"exclamdown", 0x00a1, -1 }, { US"f", 0x0066, -1 }, { US"fi", 0xfb01, 14 }, { US"five", 0x0035, -1 }, { US"fl", 0xfb02, 15 }, { US"florin", 0x0192, 16 }, { US"four", 0x0034, -1 }, { US"fraction", 0x2044, 17 }, { US"g", 0x0067, -1 }, { US"gbreve", 0x011f, -1 }, { US"gcircumflex", 0x011d, -1 }, { US"gcommaaccent", 0x0123, -1 }, { US"gdotaccent", 0x0121, -1 }, { US"germandbls", 0x00df, -1 }, { US"grave", 0x0060, -1 }, { US"greater", 0x003e, -1 }, { US"greaterequal", 0x2265, 18 }, { US"guillemotleft", 0x00ab, -1 }, { US"guillemotright", 0x00bb, -1 }, { US"guilsinglleft", 0x2039, 19 }, { US"guilsinglright", 0x203a, 20 }, { US"h", 0x0068, -1 }, { US"hbar", 0x0127, -1 }, { US"hcircumflex", 0x0125, -1 }, { US"hungarumlaut", 0x030b, 21 }, /* 002d is "hyphen-minus"; Unicode also has separate codes for hyphen and for minus. We use the latter below. */ { US"hyphen", 0x002d, -1 }, { US"i", 0x0069, -1 }, { US"iacute", 0x00ed, -1 }, { US"ibreve", 0x012d, -1 }, { US"icircumflex", 0x00ee, -1 }, { US"idieresis", 0x00ef, -1 }, { US"igrave", 0x00ec, -1 }, { US"ij", 0x0133, -1 }, { US"imacron", 0x012b, -1 }, { US"infinity", 0x221e, 43 }, { US"iogonek", 0x012f, -1 }, { US"itilde", 0x0129, -1 }, { US"j", 0x006a, -1 }, { US"jcircumflex", 0x0135, -1 }, { US"k", 0x006b, -1 }, { US"kcommaaccent", 0x0137, -1 }, { US"kgreenlandic", 0x0138, -1 }, { US"l", 0x006c, -1 }, { US"lacute", 0x013a, -1 }, { US"lcaron", 0x013e, -1 }, { US"lcommaaccent", 0x013c, -1 }, { US"ldot", 0x0140, -1 }, { US"less", 0x003c, -1 }, { US"lessequal", 0x2264, 22 }, { US"logicalnot", 0x00ac, -1 }, { US"longs", 0x017f, -1 }, { US"lozenge", 0x25ca, 23 }, { US"lslash", 0x0142, -1 }, { US"m", 0x006d, -1 }, { US"macron", 0x00af, -1 }, { US"minus", 0x2212, 24 }, { US"mu", 0x00b5, -1 }, { US"multiply", 0x00d7, -1 }, { US"n", 0x006e, -1 }, { US"nacute", 0x0144, -1 }, { US"napostrophe", 0x0149, -1 }, { US"ncaron", 0x0148, -1 }, { US"ncommaaccent", 0x0146, -1 }, { US"nine", 0x0039, -1 }, { US"notequal", 0x2260, 25 }, { US"ntilde", 0x00f1, -1 }, { US"numbersign", 0x0023, -1 }, { US"o", 0x006f, -1 }, { US"oacute", 0x00f3, -1 }, { US"obreve", 0x014f, -1 }, { US"ocircumflex", 0x00f4, -1 }, { US"odieresis", 0x00f6, -1 }, { US"oe", 0x0153, -1 }, { US"ogonek", 0x0328, 26 }, { US"ograve", 0x00f2, -1 }, { US"ohungarumlaut", 0x0151, -1 }, { US"omacron", 0x014d, -1 }, { US"one", 0x0031, -1 }, { US"onehalf", 0x00bd, -1 }, { US"onequarter", 0x00bc, -1 }, { US"onesuperior", 0x00b9, -1 }, { US"ordfeminine", 0x00aa, -1 }, { US"ordmasculine", 0x00ba, -1 }, { US"oslash", 0x00f8, -1 }, { US"otilde", 0x00f5, -1 }, { US"p", 0x0070, -1 }, { US"paragraph", 0x00b6, -1 }, { US"parenleft", 0x0028, -1 }, { US"parenright", 0x0029, -1 }, { US"partialdiff", 0x2202, 27 }, { US"percent", 0x0025, -1 }, { US"period", 0x002e, -1 }, { US"periodcentered", 0x2027, 28 }, { US"perthousand", 0x2031, 29 }, { US"plus", 0x002b, -1 }, { US"plusminus", 0x00b1, -1 }, { US"q", 0x0071, -1 }, { US"question", 0x003f, -1 }, { US"questiondown", 0x00bf, -1 }, { US"quotedbl", 0x0022, -1 }, { US"quotedblbase", 0x201e, 30 }, { US"quotedblleft", 0x201c, 31 }, { US"quotedblright", 0x201d, 32 }, { US"quoteleft", 0x2018, 33 }, { US"quoteright", 0x2019, 34 }, { US"quotesinglbase", 0x201a, 35 }, { US"quotesingle", 0x0027, -1 }, { US"r", 0x0072, -1 }, { US"racute", 0x0155, -1 }, { US"radical", 0x221a, 36 }, { US"rcaron", 0x0159, -1 }, { US"rcommaaccent", 0x0157, -1 }, { US"registered", 0x00ae, -1 }, { US"ring", 0x030a, 37 }, { US"s", 0x0073, -1 }, { US"sacute", 0x015b, -1 }, { US"scaron", 0x0161, -1 }, { US"scedilla", 0x015f, -1 }, { US"scircumflex", 0x015d, -1 }, { US"scommaaccent", 0x0219, 38 }, { US"section", 0x00a7, -1 }, { US"semicolon", 0x003b, -1 }, { US"seven", 0x0037, -1 }, { US"six", 0x0036, -1 }, { US"slash", 0x002f, -1 }, { US"space", 0x0020, -1 }, { US"sterling", 0x00a3, -1 }, { US"summation", 0x2211, 39 }, { US"t", 0x0074, -1 }, { US"tbar", 0x0167, -1 }, { US"tcaron", 0x0165, -1 }, { US"tcedilla", 0x0163, -1 }, { US"tcommaaccent", 0x021b, 40 }, { US"thorn", 0x00fe, -1 }, { US"three", 0x0033, -1 }, { US"threequarters", 0x00be, -1 }, { US"threesuperior", 0x00b3, -1 }, { US"tilde", 0x0303, 41 }, { US"trademark", 0x2122, 42 }, { US"two", 0x0032, -1 }, { US"twosuperior", 0x00b2, -1 }, { US"u", 0x0075, -1 }, { US"uacute", 0x00fa, -1 }, { US"ubreve", 0x016d, -1 }, { US"ucircumflex", 0x00fb, -1 }, { US"udieresis", 0x00fc, -1 }, { US"ugrave", 0x00f9, -1 }, { US"uhungarumlaut", 0x0171, -1 }, { US"umacron", 0x016b, -1 }, { US"underscore", 0x005f, -1 }, { US"uogonek", 0x0173, -1 }, { US"uring", 0x016f, -1 }, { US"utilde", 0x0169, -1 }, { US"v", 0x0076, -1 }, { US"w", 0x0077, -1 }, { US"wcircumflex", 0x0175, -1 }, { US"x", 0x0078, -1 }, { US"y", 0x0079, -1 }, { US"yacute", 0x00fd, -1 }, { US"ycircumflex", 0x0177, -1 }, { US"ydieresis", 0x00ff, -1 }, { US"yen", 0x00a5, -1 }, { US"z", 0x007a, -1 }, { US"zacute", 0x017a, -1 }, { US"zcaron", 0x017e, -1 }, { US"zdotaccent", 0x017c, -1 }, { US"zero", 0x0030, -1 } }; static int an2ucount = sizeof(an2ulist)/sizeof(an2uencod); /************************************************* * Convert character name to Unicode value * *************************************************/ /* Arguments: cname the character name fname the font name (for warning) warn TRUE if warning wanted for not found mcptr if not NULL, where to put the special encoding value Returns: a Unicode code point, or -1 if not found */ static int an2u(uschar *cname, uschar *fname, BOOL warn, int *mcptr) { int top = an2ucount; int bot = 0; if (mcptr != NULL) *mcptr = -1; while (top > bot) { int mid = (top + bot)/2; an2uencod *an2u = an2ulist + mid; int c = Ustrcmp(cname, an2u->name); if (c == 0) { if (mcptr != NULL) *mcptr = an2u->poffset; return an2u->code; } if (c > 0) bot = mid + 1; else top = mid; } if (warn) error_moan(21, cname, fname); /* Warning */ return -1; } /************************************************* * Kern table sorting comparison * *************************************************/ /* This is the auxiliary routine used for comparing kern table entries when sorting them. Arguments: a pointer to kerntable structure b pointer to kerntable structure Returns difference between their "pair" values */ static int table_cmp(const void *a, const void *b) { kerntablestr *ka = (kerntablestr *)a; kerntablestr *kb = (kerntablestr *)b; return ka->pair - kb->pair; } /************************************************* * Number reader for AFM files * *************************************************/ /* Arguments: value where to return the value p character pointer Returns: new value of p */ static uschar * read_number(int *value, uschar *p) { int n = 0; int sign = 1; while (*p != 0 && *p == ' ') p++; if (*p == '-') { sign = -1; p++; } while (isdigit(*p)) n = n * 10 + *p++ - '0'; *value = n * sign; return p; } /************************************************* * Load width and kern tables for a font * *************************************************/ /* This is an externally-called function. Argument: the font id (offset in font_List) Returns: nothing */ void font_loadtables(int fontid) { FILE *f = NULL; int kerncount = 0; int finalcount = 0; int *widths, *r2ladjusts, *heights; kerntablestr *kerntable; fontstr *fs = &(font_List[fontid]); uschar *pp; uschar filename[256]; uschar line[256]; DEBUG(("Loading AFM for %s\n", fs->psname)); /* First look in any additional directory */ if (font_metrics_extra != NULL) { sprintf(CS filename, "%s/%s.afm", font_metrics_extra, fs->psname); f = Ufopen(filename, "r"); } /* Try the default directory if not yet found. */ if (f == NULL) { sprintf(CS filename, "%s/%s.afm", font_metrics_default, fs->psname); f = Ufopen(filename, "r"); if (f == NULL) /* These are hard errors */ { if (font_metrics_extra == NULL) error_moan(59, fs->psname, font_metrics_default); else error_moan(127, fs->psname, font_metrics_extra, font_metrics_default); } } widths = fs->widths = malloc(LOWCHARLIMIT * sizeof(int)); memset(widths, 0, LOWCHARLIMIT * sizeof(int)); r2ladjusts = fs->r2ladjusts = malloc(LOWCHARLIMIT * sizeof(int)); memset(r2ladjusts, 0, LOWCHARLIMIT * sizeof(int)); heights = fs->heights = NULL; fs->kerncount = 0; /* Process the AFM file. First find the start of the metrics; on the way, check for the standard encoding scheme and for fixed pitch. */ for (;;) { if (Ufgets(line, sizeof(line), f) == NULL) error_moan(122, filename, "no metric data found", ""); /* Hard */ if (memcmp(line, "EncodingScheme AdobeStandardEncoding", 36) == 0) fs->stdencoding = TRUE; if (memcmp(line, "IsFixedPitch true", 17) == 0) fs->fixedpitch = TRUE; if (memcmp(line, "StartCharMetrics", 16) == 0) break; } /* Process the metric lines for each character */ for (;;) { uschar *ppb; int width, code; int poffset = -1; int r2ladjust = 0; if (Ufgets(line, sizeof(line), f) == NULL) error_moan(122, filename, "unexpected end of metric data", ""); /* Hard */ if (memcmp(line, "EndCharMetrics", 14) == 0) break; if (memcmp(line, "C ", 2) != 0) error_moan(122, filename, "unrecognized metric data line: ", line); /* Hard */ pp = line + 2; while (memcmp(pp, "WX", 2) != 0) pp++; pp = read_number(&width, pp+2); /* Look for a bounding box, but use a new pointer, because N comes first. If a bounding box is found, compute a value by which to adjust the printing position of this character when printing right-to-left. This is used for the last character of every string, instead of the stringwidth character. | |--------| | | char | | | glyph | ^ |<-- x0 -->|--------| x0 is the side bearing (LH bbox value) ^--->|<-- x1 ------------> x1 is the right hand bbox value ^ ^ ^ ^ ^ Original print point ^ New print point is x0 + x1 to the left of the old. If it were just x1, the edge of the character would abut the original point; instead we add an additional same sized bearing on the other side. */ ppb = pp; while (*ppb != 0 && Ustrncmp(ppb, "B ", 2) != 0) ppb++; if (*ppb != 0) { int x0, x1; ppb = read_number(&x0, ppb+2); /* x-left */ ppb = read_number(&x1, ppb); /* y-bottom */ ppb = read_number(&x1, ppb); /* x-right */ r2ladjust = x1 + x0; } /* If this is a StandardEncoding font, scan the list of characters so as to get the Unicode value for this character. */ if (fs->stdencoding) { uschar *cname; while (memcmp(pp, "N ", 2) != 0) pp++; cname = (pp += 2); while (*pp != ' ') pp++; *pp = 0; code = an2u(cname, fs->psname, TRUE, &poffset); if (code < 0) continue; /* Don't try to store anything! */ } /* For other fonts, just use the character number directly. If there are unencoded characters, ignore them. These fonts include the PMW-Music font, which has some characters with vertical height movements. */ else { (void)read_number(&code, line+1); if (code < 0) continue; while (*pp != 0 && memcmp(pp, "WY", 2) != 0) pp++; if (*pp != 0) { int height; pp += 2; (void)read_number(&height, pp); if (heights == NULL) { heights = fs->heights = malloc(256 * sizeof(int)); memset(heights, 0, 256 * sizeof(int)); } heights[code] = height; } } /* Remember that this font has certain characters */ if (code == CHAR_FI) fs->hasfi = TRUE; /* Now put the widths in an appropriate place. */ if (code < LOWCHARLIMIT) { widths[code] = width; r2ladjusts[code] = r2ladjust; } else { tree_node *tc = malloc(sizeof(tree_node)); tc->name = malloc(8); tc->name[misc_ord2utf8(code, tc->name)] = 0; tc->val[0] = poffset; tc->val[1] = width; tc->val[2] = r2ladjust; (void)Tree_InsertNode(&(fs->high_tree), tc); } } /* Process kerning data (if any); when this is done, we are finished with the AFM file. */ for (;;) { if (Ufgets(line, sizeof(line), f) == NULL) { (void)fclose(f); return; /* No kerning data */ } if (memcmp(line, "StartKernPairs", 14) == 0) break; } /* Find size of kern table, and get space for it. In the past, some of Adobe's AFM files had a habit of containing a large number of kern pairs with zero amount of kern. We leave these out of the table and adjust the count for searching, but don't bother to free up the unused store (it isn't a vast amount). */ pp = line + 14; while (*pp != 0 && *pp == ' ') pp++; (void)read_number(&kerncount, pp); fs->kerns = kerntable = malloc(kerncount*sizeof(kerntablestr)); finalcount = 0; while (kerncount--) { uschar *x; int sign = 1; int value; int a = -1; int b = -1; if (Ufgets(line, sizeof(line), f) == NULL) error_moan(122, filename, "unexpected end of kerning data"); /* Hard */ if (memcmp(line, "EndKernPairs", 12) == 0) break; /* Skip blank lines */ if (Ustrlen(line) <= 1) { kerncount++; continue; } /* Process each kern */ pp = line + 4; x = pp; while (*pp != 0 && *pp != ' ') pp++; *pp++ = 0; a = an2u(x, fs->psname, FALSE, NULL); while (*pp != 0 && *pp == ' ') pp++; x = pp; while (*pp != 0 && *pp != ' ') pp++; *pp++ = 0; b = an2u(x, fs->psname, FALSE, NULL); /* Read the kern value only if we have found the characters; otherwise ignore the kern */ if (a >= 0 && b >= 0) { kerntable[finalcount].pair = (a << 16) + b; while (*pp != 0 && *pp == ' ') pp++; if (*pp == '-') { sign = -1; pp++; } (void)read_number(&value, pp); if (value != 0) kerntable[finalcount++].kwidth = value*sign; } } /* Adjust the count and sort the table into ascending order */ fs->kerncount = finalcount; /* true count */ qsort(kerntable, fs->kerncount, sizeof(kerntablestr), table_cmp); /* Finished with the AFM file */ (void)fclose(f); /* Early checking debugging code; retained in the source in case it is ever needed again. */ #ifdef NEVER debug_printf("FONT %s\n", fs->psname); { int i; for (i = 0; i < LOWCHARLIMIT; i++) { if (fs->widths[i] != 0) debug_printf("%04x %5d\n", i, fs->widths[i]); } for (i = LOWCHARLIMIT; i < 0xffff; i++) { tree_node *t; uschar key[4]; key[0] = (i >> 8) & 255; key[1] = i & 255; key[2] = 0; t = tree_search(fs->high_tree, key); if (t != NULL) debug_printf("%04x %5d %5d %5d\n", i, t->data.val[0], t->data.val[1], t->data.val[2]); } debug_printf("KERNS %d\n", fs->kerncount); for (i = 0; i < fs->kerncount; i++) { kerntablestr *k = &(fs->kerns[i]); int a = (k->pair >> 16) & 0xffff; int b = (k->pair) & 0xffff; debug_printf("%04x %04x %5d\n", a, b, k->kwidth); } } #endif } /************************************************* * Add a font to the base list * *************************************************/ /* This function is called from font_init() below, to add a single basic PostScript font to the font_List vector. Argument: Name of PostScript font Returns: nothing */ static void font_addbasefont(uschar *psfont) { fontstr *fs = &(font_List[font_basecount]); if (font_basecount >= max_fonts) { error_moan(26, max_fonts); return; } fs->psname = malloc(Ustrlen(psfont)+1); Ustrcpy(fs->psname, psfont); fs->widths = NULL; fs->high_tree = NULL; fs->heights = NULL; fs->kerns = NULL; fs->kerncount = -1; fs->stdencoding = fs->fixedpitch = fs->hasfi = FALSE; font_loadtables(font_basecount++); } /************************************************* * Set up the base list of fonts * *************************************************/ /* Called at start-up to set up the default fonts Arguments: none Returns: nothing */ void font_init(void) { font_addbasefont(US"Times-Roman"); font_addbasefont(US"Times-Italic"); font_addbasefont(US"Times-Bold"); font_addbasefont(US"Times-BoldItalic"); font_addbasefont(US"Symbol"); font_addbasefont(US"PMW-Music"); } /************************************************* * Search for given font * *************************************************/ /* This function searches the font list by the name of the font. Argument: the font name (e.g. "Times-Roman") Returns: the font id (offset in font_List) or -1 if not found */ int font_search(uschar *name) { int i; for (i = 0; i < font_count; i++) if (Ustrcmp(name, font_List[i].psname) == 0) return i; return -1; } /************************************************* * Find the width of a string * *************************************************/ /* The "height" (distance current point moves vertically) is placed in font_stringheight. For ordinary text fonts, this is only non-zero when there's a rotation, but some characters in the music font move vertically. If font_xstretch is set, it is an absolute amount of space to add to each space character. This is used when printing justified headings and footings. Arguments: s the string font the font number pointsize the font's point size Returns: the string width */ int font_stringwidth(uschar *s, int font, int pointsize) { int hwidth = 0; int vheight = 0; int spacecount = 0; int *widths, *heights; int fontid = font_table[font]; int c; int lastc = -1; int kerncount; BOOL stdencoding; fontstr *fs = &(font_List[fontid]); kerntablestr *ktable; tree_node *high_tree; widths = fs->widths; high_tree = fs->high_tree; heights = fs->heights; ktable = fs->kerns; kerncount = fs->kerncount; stdencoding = fs->stdencoding; DEBUG(("font_stringwidth %d %d \"%s\"\n", fontid, pointsize, s)); /* Open and close quotes are fudged. When kerning we have to note the kern values. */ while (*s != 0) { GETCHARINC(c, s); if (c == ' ') spacecount++; /* Deal with characters >= 256 */ if (c >= 256) { if (!stdencoding) hwidth += widths[UNKNOWN_CHAR_N]; else if (c < LOWCHARLIMIT) hwidth += widths[c]; else { tree_node *t; uschar utf[8]; utf[misc_ord2utf8(c, utf)] = 0; t = Tree_Search(high_tree, utf); if (t != NULL) hwidth += t->val[1]; else hwidth += widths[UNKNOWN_CHAR_S]; } } /* Character is < 256. Heights apply only to low-numbered characters. */ else { hwidth += widths[c]; if (heights != NULL) vheight += heights[c]; } /* Deal with kerning */ if (main_kerning && ktable != NULL && lastc >= 0 && lastc <= 0xffff && c <= 0xffff) { int top, bot, mid; unsigned int pair = (lastc << 16) | c; bot = 0; top = kerncount; while (top > bot) { kerntablestr *k; mid = (top + bot)/2; k = &(ktable[mid]); if (pair == k->pair) { hwidth += k->kwidth; break; } if (pair > k->pair) bot = mid + 1; else top = mid; } } lastc = c; } /* Scale to font size, then adjust for rotation */ hwidth = mac_muldiv(hwidth, pointsize, 1000); vheight = mac_muldiv(vheight, pointsize, 1000); font_stringheight = mac_muldiv(hwidth, font_transform[1], 65536) + mac_muldiv(vheight, font_transform[3], 65536); DEBUG(("font_stringwidth() %d %d\n", mac_muldiv(hwidth, font_transform[0], 65536) + mac_muldiv(vheight, font_transform[2], 65536), font_stringheight)); return font_xstretch * spacecount + mac_muldiv(hwidth, font_transform[0], 65536) + mac_muldiv(vheight, font_transform[2], 65536); } /************************************************* * Read a font word (+ number) * *************************************************/ /* Argument: TRUE to not give an error if the word is unrecognised Returns: font_rm, font_it, etc, or -1 on error */ int font_fontword(BOOL soft) { uschar word[100]; read_word(word); if (Ustrcmp(word, "roman") == 0) return font_rm; if (Ustrcmp(word, "italic") == 0) return font_it; if (Ustrcmp(word, "bold") == 0) return font_bf; if (Ustrcmp(word, "bolditalic") == 0) return font_bi; if (Ustrcmp(word, "symbol") == 0) return font_sy; if (Ustrcmp(word, "music") == 0) return font_mu; if (Ustrcmp(word, "bigmusic") == 0) return font_mf; if (Ustrcmp(word, "extra") == 0) { int x; if (!read_expect_integer(&x, FALSE, FALSE)) return -1; if (x >= 1 && x <= MaxExtraFont) return font_xx + x - 1; error_moan(26, MaxExtraFont); } else if (!soft) error_moan(10, "\"roman\", \"italic\", \"bold\", \"bolditalic\", or \"extra\""); return -1; } /************************************************* * Set up a font rotation * *************************************************/ /* The effect of this function is to modify the font_transform matrix by the given rotation. Argument: rotation in millidegrees Returns: nothing */ void font_rotate(int rotate) { int newmatrix[4]; double sr = sin(((double)rotate)*atan(1.0)/45000.0); double cr = cos(((double)rotate)*atan(1.0)/45000.0); font_sinr = (int)(sr * 1000.0); font_cosr = (int)(cr * 1000.0); newmatrix[0] = (int)(((double)font_transform[0])*cr - ((double)font_transform[1])*sr); newmatrix[1] = (int)(((double)font_transform[0])*sr + ((double)font_transform[1])*cr); newmatrix[2] = (int)(((double)font_transform[2])*cr - ((double)font_transform[3])*sr); newmatrix[3] = (int)(((double)font_transform[2])*sr + ((double)font_transform[3])*cr); memcpy(font_transform, newmatrix, 4*sizeof(int)); } /************************************************* * Reset font transformation * *************************************************/ /* Historical relic: the transform matrix operates in the units that RISC OS uses for its font transformations. These were chosen so that the RISC OS screen display code could use the matrix directly. There seems no reason to change this choice gratuitously. The first four matrix values have 16-bit fractions; the other two are in millipoints. Arguments: none Returns: nothing */ void font_reset(void) { font_sinr = 0; /* No rotation => angle is zero */ font_cosr = 1000; /* Fixed point 1.0 */ font_transform[0] = font_transform[3] = 65536; font_transform[1] = font_transform[2] = 0; font_transform[4] = font_transform[5] = 0; } /* End of font.c */ pmw-4.27/src/setnote.c0000644000222100022210000007002512247665016012770 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2013 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: March 2013 */ /* This file contains the main code typesetting one note or chord */ #include "pmwhdr.h" #include "pagehdr.h" #include "poshdr.h" #include "outhdr.h" /************************************************* * Static variables * *************************************************/ /* For saving beaming state while setting grace notes */ static BOOL save_beaming; static int save_beam_count; static int save_beam_firstX; static int save_beam_firstY; static int save_beam_seq; static int save_beam_slope; static int save_beam_splitOK; static int save_beam_upflag; static int save_beam_Xcorrection; /************************************************* * Main line for setting one note/chord * *************************************************/ /* The data for notes is put into global variables so they can easily be shared between the various functions. Note that chords have been sorted so that the note nearest the stem comes first. The variables n_prevtie and n_nexttie point to the incoming and outgoing ties, respectively. Argument: pointer to the first note Returns: pointer after the last note */ bstr * out_setnote(b_notestr *p) { int i; int accleftnum = 0; DEBUG(("out_setnote() start\n")); n_lastnote = p; n_notetype = p->notetype; n_pitch = p->spitch; n_length = p->length; n_acc = n_firstacc = n_lastacc = p->acc; n_accleft = n_maxaccleft = (p->accleft * main_stavemagn)/1000; n_flags = n_chordflags = p->flags; n_acflags = n_chordacflags = p->acflags; /* Set parameters for a rest. We preserve the stem up flag from the previous note. This is useful in obscure cases such as tieing over rests. A rest also kills any outstanding underlay block for underlay extension (but not for hyphens). */ if (n_pitch == 0) { ulaystr **uu = &(bar_cont->ulay); ulaystr *u = *uu; while (u != NULL) { if (u->type == '=') { *uu = u->next; store_free(u); } else uu = &(u->next); u = *uu; } n_restlevel = p->yextra; n_prevtie = n_nexttie = NULL; n_upflag = out_laststemup[out_stave]; DEBUG(("rest level=%d upflag=%d\n", n_restlevel, n_upflag)); } /* Set parameters for a note, and find the number of notes in a chord. This is needed for tie direction computations, even for single notes. At the same time we can find the maximum accidental offset for the note/chord. This is also a convenient place for setting up the next and previous tie pointers. */ else { b_notestr *tp = p; n_chordcount = 1; n_stemlength = p->yextra; n_upflag = (n_flags & nf_stemup) != 0; n_upfactor = n_upflag? (+1):(-1); n_invertleft = (!n_upflag && (n_flags & nf_invert) != 0); n_invertright = (n_upflag && (n_flags & nf_invert) != 0); /* Don't use the couplepitch macro, as want to test the distances. */ if ((n_flags & (nf_coupleU | nf_coupleD)) != 0) { if ((n_flags & nf_coupleU) != 0) { n_pitch += out_upgap - 24; if ((out_upgap & 3) != 0) error_111 = TRUE; } else { n_pitch += 24 - out_downgap; if ((out_downgap & 3) != 0) error_111 = TRUE; } } n_maxpitch = n_minpitch = n_pitch; out_notelist[0] = tp; mac_advancechord(tp); while (tp->type == b_chord) { int pitch = tp->spitch; int accleft = (tp->accleft * main_stavemagn)/1000; if (accleft > n_maxaccleft) n_maxaccleft = accleft; n_lastacc = tp->acc; mac_couplepitch(pitch, tp->flags); if (pitch > n_maxpitch) n_maxpitch = pitch; else if (pitch < n_minpitch) n_minpitch = pitch; if (n_upflag) n_invertright |= (tp->flags & nf_invert) != 0; else n_invertleft |= (tp->flags & nf_invert) != 0; n_chordflags |= tp->flags; n_chordacflags |= tp->acflags; if (abs(tp->yextra) > abs(n_stemlength)) n_stemlength = tp->yextra; out_notelist[n_chordcount++] = tp; mac_advancechord(tp); } n_prevtie = bar_cont->tie; bar_cont->tie = NULL; if (tp->type == b_tie) { n_nexttie = (b_tiestr *)tp; if (n_upflag) n_nhtied = n_nexttie->belowcount > 0; else n_nhtied = n_nexttie->abovecount > 0; } else { n_nexttie = NULL; n_nhtied = FALSE; } DEBUG(("note chordcount=%d upflag=%d\n", n_chordcount, n_upflag)); } /* Deal with grace notes. If this is the first in a sequence, preserve the beaming state; after the last, restore it. */ if (n_length == 0) { posstr *pp; if (n_gracecount == 0) { save_beam_count = beam_count; save_beam_firstX = beam_firstX; save_beam_firstY = beam_firstY; save_beam_seq = beam_seq; save_beam_slope = beam_slope; save_beam_splitOK = beam_splitOK; save_beam_upflag = beam_upflag; save_beam_Xcorrection = beam_Xcorrection; save_beaming = out_beaming; out_beaming = FALSE; out_gracenotes = TRUE; out_grace_fudge = 0; } /* Set up the font size and the vertical & horizontal corrections */ if ((n_flags & nf_cuesize) != 0) n_fontsize = (curmovt->fontsizes)->fontsize_cuegrace; else n_fontsize = (curmovt->fontsizes)->fontsize_grace; n_cueadjust = 0; n_pcorrection = (2*main_stavemagn*(10000 - n_fontsize))/10000; n_gracemoff = posx_gracefirst + n_gracecount++; n_x = out_findXoffset(out_moff + n_gracemoff); /* If there was an accidental on the next note or chord ON ANY STAVE, then the grace note position may have been set to the left of this, if there were grace notes on that stave too. We must correctly position the grace note on THIS stave. If no staves with accidentals had grace notes, then the grace note position will be the same as the accidental position, as no space will have been left for grace notes. However, if the accidentals are on chords, they may be far wider than grace notes. We must check the final grace note's position; if it is the same as the accidental's position, allow for one accidental's width (5 points). This is all very nasty. */ if (n_gracecount == 1 && (pp = out_findTentry(out_moff + posx_acc)) != NULL) { int acc_x = pp->xoff; int next_x = out_findXoffset(out_moff); int maxaccleft; b_notestr *b = misc_nextnote(p, NULL); while (b->length == 0) b = misc_nextnote(b, NULL); maxaccleft = b->accleft; mac_advancechord(b); while (b->type == b_chord) { if (b->accleft > maxaccleft) maxaccleft = b->accleft; mac_advancechord(b); } out_grace_fudge = (next_x - acc_x) - maxaccleft; if ((pp-1)->xoff + out_grace_fudge > next_x - curmovt->gracespacing[0]) out_grace_fudge = next_x - curmovt->gracespacing[0] - (pp-1)->xoff; if (out_grace_fudge < 0) out_grace_fudge = 0; } /* Incorporate any adjustment, and make relative to bar */ out_Xadjustment += out_grace_fudge; n_x += out_barx + out_Xadjustment; } /* Deal with non-grace notes, first restoring beaming state after gracenotes have been encountered. */ else { if (n_gracecount) { beam_count = save_beam_count; beam_firstX = save_beam_firstX; beam_firstY = save_beam_firstY; beam_seq = save_beam_seq; beam_slope = save_beam_slope; beam_splitOK = save_beam_splitOK; beam_upflag = save_beam_upflag; beam_Xcorrection = save_beam_Xcorrection; out_beaming = save_beaming; out_gracenotes = FALSE; out_grace_fudge = 0; } /* Sort out the font size and horizontals & vertical corrections for small notes. */ if ((n_flags & nf_cuesize) != 0) { n_fontsize = (curmovt->fontsizes)->fontsize_cue; n_cueadjust = mac_muldiv(3500 - mac_muldiv(3500, n_fontsize, 10000), main_stavemagn, 1000); n_pcorrection = (2*main_stavemagn*(10000 - n_fontsize))/10000; } /* Full-sized note */ else { n_fontsize = 10000; n_pcorrection = n_cueadjust = 0; } /* Set the horizontal position - centred rests and (semi)breves are a special case */ if ((n_flags & nf_centre) != 0) { int leftx = 4*main_stavemagn; if (out_findTentry(posx_RLright) != NULL) leftx += out_barx + out_findXoffset(posx_RLright); else if (out_findTentry(posx_timefirst) != NULL) leftx += out_barx + out_findXoffset(posx_timefirst); else if (out_findTentry(posx_keyfirst) != NULL) leftx += out_barx + out_findXoffset(posx_keyfirst); else if (out_startlinebar) { /* Move back to the key signature if no left repeat, else add width of repeat */ leftx = (out_findTentry(posx_RLleft) == NULL)? out_barx - page_leftbarspace : out_barx + 6 * main_stavemagn; } else leftx = out_lastbarlinex; if (out_manyrest == 1) { n_x = (leftx + out_barlinex)/2 - 3*main_stavemagn; /* Adjustments to centred notes to align with centred rest. */ if (n_pitch != 0) { n_x -= (((n_notetype == breve)? 12 : (n_notetype == semibreve)? 13 : 10) * main_stavemagn)/10; } else if (curmovt->breverests) { int t = bar_cont->time; int d = t & 255; int crotchets = 4 * (t >> 16); /* 4 times multiplier */ if (d != time_common && d != time_cut) crotchets = (crotchets * ((t >> 8) & 255)) / d; if (crotchets == 8 || crotchets == 12) n_notetype = breve; if (crotchets == 6 || crotchets == 12) n_flags |= nf_dot; } } else if ((n_flags & nf_hidden) == 0) /* No number if Q-type rests */ { uschar s[8]; int font = curmovt->font_longrest; int size = (((curmovt->fontsizes)->fontsize_restct)*main_stavemagn)/1000; int *matrix = (curmovt->fontsizes)->fontmatrix_restct; int i = (curmovt->codemultirests && out_manyrest < 9)? out_manyrest : 0; n_x = (leftx + out_barlinex - mac_muldiv(longrest_widths[i], main_stavemagn, 1000))/2; if (matrix != NULL) memcpy(font_transform, matrix, 4*sizeof(int)); /* Remember the mid-point where the long rest count is output to make it easier to draw a suitable sign when the bar is wide or narrow. */ n_longrestmid = out_Xadjustment + (leftx + out_barlinex)/2; sprintf(CS s, "%d", out_manyrest); out_string(s, font, size, n_longrestmid - (font_stringwidth(s, font, size))/2, out_ystave - 18*main_stavemagn - out_Yadjustment, 0); font_reset(); } } /* The normal, non-centred case. Unless outputting a grace note, search for either the first gracenote position, or (if not found) the note itself. */ else { if (curmovt->gracestyle != 0 && n_gracecount == 0) n_x = out_barx + out_findGoffset(out_moff + posx_gracefirst, out_moff) + out_Xadjustment; else n_x = out_barx + out_findXoffset(out_moff) + out_Xadjustment; if (n_pitch == 0) n_x += 1000; /* rests all need adjusting */ } n_gracecount = n_gracemoff = out_keycount = out_timecount = 0; } /* Compute accidental spacing adjustment factors. If the space between adjacent notes is large, we stretch a bit. Note that out_lastnotex is set very large and negative when the preceding object was not a note. */ if (n_maxaccleft > 0) { int accgap = n_x - out_lastnotex - n_maxaccleft; accleftnum = n_maxaccleft; if (out_lastnotex > 0 && accgap > 20*main_stavemagn) accleftnum = (11*n_maxaccleft)/10; n_accleft = (n_accleft * accleftnum)/n_maxaccleft; } /* Remember beginning of plet if necessary */ if (out_plet_x < 0) out_plet_x = n_x; /* Deal with beamed note. Take care with the messy code for keeping track of beamed sequences for plets. The variable beam_seq is maintained for this purpose: beam_seq = 0 => not in a beamed sequence -1 => at start (first note) of plet 1 => had beamed sequence in plet 2 => had rest in beamed sequence We reset 2 back to 1 if another beamed note is encountered. */ if (n_notetype >= quaver) { /* Deal with non-rests, either outside or inside beams */ if (n_pitch != 0) { /* If not beaming, see if this is the start of one, and cause the beam to be output if it is. */ if (!out_beaming && (bar_cont->flags & cf_noteheads) == 0) out_beaming = out_setupbeam(p, out_moff + n_gracemoff, FALSE, FALSE); /* If beaming, compute the correct stem length and turn the note type into a crotchet. Note that the units of n_stemlength are unmagnified; i.e. they are relative to the stave. */ if (out_beaming) { n_stemlength = (n_upfactor*(beam_firstY + mac_muldiv(beam_slope, out_findXoffset(out_moff+n_gracemoff) + out_Xadjustment + (75*main_stavemagn)/100 + (n_upflag? beam_Xcorrection : 0) - beam_firstX, 1000) - (n_pitch - 128)*main_stavemagn - (n_upfactor*14*n_fontsize*main_stavemagn)/10000)*1000)/ main_stavemagn; if (n_upflag != beam_upflag) n_stemlength += curmovt->beamdepth; n_notetype = crotchet; /* We can handle a beamed note turning into a minim by masquerade, but not anything else. */ if (n_masq == minim) n_notetype = minim; /* If beam_splitOK is true, then we can have notes on the other side of the beam. In this case there may be additional stem length adjustments to make to any note. */ if (beam_splitOK) n_stemlength += beam_stemadjusts[beam_count] * 1000; if (beam_seq != 0) beam_seq = 1; } /* Not a beamed note */ else beam_seq = 0; } /* Deal with rests. We need to check if rests at beam starts are permitted and we are not currently in a beam. See if this is the start of a beam, and if so, fudge up a note for the beam-handling code to start off with. Otherwise, check for masquerading within a beam. */ else { if (curmovt->beamendrests && !out_beaming) { b_notestr *next = misc_nextnote(p, NULL); while (next != NULL && next->spitch == 0 && next->notetype >= quaver) next = misc_nextnote(next, NULL); if (next != NULL && next->notetype >= quaver) { int save_yextra = p->yextra; int pextra = save_yextra/1000; int nextra = next->yextra/1000; int save_flags = p->flags; int save_acflags = p->acflags; p->spitch = next->spitch; /* pretend it's as for the real note */ p->yextra = next->yextra; p->flags = n_flags = next->flags; p->acflags = n_acflags = next->acflags; n_upflag = (n_flags & nf_stemup) != 0; n_upfactor = n_upflag? (+1):(-1); if (n_upflag) { int tt = ((n_notetype > squaver)? 134 : 130) + pextra; int ss = p->spitch; if (ss < 122) ss = 122; ss += nextra; if (ss < tt) p->yextra += (tt - ss)*1000; } else { int tt = ((n_notetype > quaver)? 138 : 142) + pextra; int ss = p->spitch; if (ss > 150) ss = 150; ss -= nextra; if (ss > tt) p->yextra += (ss - tt)*1000; } out_beaming = out_setupbeam(p, out_moff + n_gracemoff, FALSE, TRUE); p->spitch = 0; p->yextra = save_yextra; n_flags = p->flags = save_flags; n_acflags = p->acflags = save_acflags; } } /* Handle masquerading rests within a beam -- outside a beam they are handled with ordinary notes. Any masquerade is allowed. */ if (out_beaming && n_masq >= 0) n_notetype = n_masq; } } /* Maintain beam_seq in the cases of long notes and rests */ else if (n_notetype < quaver) beam_seq = 0; else if (beam_seq == -1) beam_seq = 0; else if (beam_seq == 1) beam_seq = 2; /* Remember whether this note was beamed or not */ DEBUG(("beaming=%d beam_seq=%d\n", out_beaming, beam_seq)); n_beamed = out_beaming; /* If not beaming, compute some automatic stem length adjustments, and alter the note type if masquerading. */ if (!out_beaming) { if (n_notetype >= minim) { int xl = curmovt->tailadjusts[n_notetype]; if ((n_ornament != NULL && n_ornament->ornament == or_trem3) || (n_upflag && (n_flags & nf_invert) != 0 && n_notetype >= quaver)) xl += 4000; /* The stems of unbeamed, uncoupled notes must reach the centre of the stave if pointing that way. */ if ((n_flags & nf_couple) == 0) { int minxl = 0; if (n_upflag) { if (n_pitch < P_0L - 2) minxl = (P_0L - 2 - n_pitch)*1000; } else { if (n_pitch > P_6L + 2) minxl = (n_pitch - P_6L - 2)*1000; } if (xl < minxl) xl = minxl; } n_stemlength += xl; } /* Deal with masquerade */ if (n_masq >= 0) n_notetype = n_masq; } /* Remember horizontal information for hairpins if needed. This must be done for both visible and invisible things. */ if (out_hairpinhalf && bar_cont->hairpin != NULL) { hairpinstr *h = bar_cont->hairpin; b_hairpinstr *hh = h->hairpin; h->x += 6*main_stavemagn + mac_muldiv(out_barx + out_findXoffset(out_moff + n_length) - h->x - 6*main_stavemagn, hh->h, 1000); out_hairpinhalf = FALSE; } /* Remember data for marks that need to know what notes are under or above them. We must do this for rests as well as for real notes, but not for invisible things. */ if ((n_flags & nf_hidden) == 0) { slurstr *ss = bar_cont->slurs; int pt = misc_ybound(FALSE, n_nexttie, TRUE, TRUE); int pb = misc_ybound(TRUE, n_nexttie, TRUE, TRUE); /* Remember data for slur(s) if first note after start. We don't want any accidental on the note to influence the bounding pitch in this case. We must, however, use the combined accent flags for computing the bounding pitches. (Note: this code is for the true start only - restarts on a new line are different, as the accidental then is wanted.) */ if (out_slurstarted) /* This flag saves unnecessary work */ { slurstr *s = ss; int flagsave = n_flags; int acflagsave = n_acflags; n_flags = n_chordflags; n_acflags = n_chordacflags; while (s != NULL) { if (s->count == 0 && s->x != 0) { int flags = (s->slur)->flags; int below = (flags & sflag_b) != 0; s->x = n_x; if (!below && (flags & sflag_l) == 0 && (n_flags & nf_stem) != 0 && n_upflag) s->x += 5*main_stavemagn; s->lastx = s->x; s->y = misc_ybound(below, n_nexttie, FALSE, TRUE); /* If the note is beamed, and the slur is on the same side as the beam, we need to put in an additional bit of space for clearance. Also, if the slur is on the opposite side to the stem, ditto. */ if (below) { if (n_upflag || out_beaming) s->y -= 1000; } else { if (!n_upflag || out_beaming) s->y += 1000; } /* Initialize max/min verticals */ s->maxy = s->miny = s->lasty = s->y; } s = s->next; } out_slurstarted = FALSE; n_flags = flagsave; n_acflags = acflagsave; } /* Remember data at the start of continued slurs. If this note is not tied onwards, take note of an incoming tie. */ if (out_moff == 0 && out_startlinebar && !out_passedreset) { slurstr *s = ss; int ptt, pbb; if (n_nexttie == NULL && n_prevtie != NULL) { ptt = misc_ybound(FALSE, n_prevtie, TRUE, TRUE); pbb = misc_ybound(TRUE, n_prevtie, TRUE, TRUE); } else { ptt = pt; pbb = pb; } while (s != NULL) { if (s->x == 0) { int below = ((s->slur)->flags & sflag_b) != 0; int pbbb = pbb; int pttt = ptt; if (below) { if (n_upflag || out_beaming) pbbb -= 1000; } else { if (!n_upflag || out_beaming) pttt += 1000; } s->lastx = n_x; s->y = s->lasty = s->maxy = s->miny = (below)? pbbb : pttt; } s = s->next; } } /* Remember data for slurs */ while (ss != NULL) { BOOL below = ((ss->slur)->flags & sflag_b) != 0; /* Compute slope from start and current slope (for use at the end). Skip if at same x offset, which can happen after a reset. */ if (ss->count != 0) /* first time is different */ { int xx = n_x - ss->lastx; if (xx > 0) ss->sloperight = mac_muldiv((below? pb : pt) - ss->lasty, 1000, xx); xx = n_x - ss->x; if (xx > 0) { int t = mac_muldiv((below? pb : pt) - ss->y, 1000, xx); if (below) { if (t < ss->slopeleft) ss->slopeleft = t; } else if (t > ss->slopeleft) ss->slopeleft = t; } /* Keep max/min y value -- note: we don't obey this for the first note as they have been set already, ignoring any accidental on the first note. We don't actually want to include the final note in here, so we actually operate one note behind here. */ if (below) { if (ss->lasty < ss->miny) ss->miny = ss->lasty; } else { if (ss->lasty > ss->maxy) ss->maxy = ss->lasty; } /* Keep the last pitch and x position, for slope calculation */ ss->lastx = n_x; ss->lasty = below? pb : pt; } /* Count notes under the slur and advance to next */ ss->count++; ss = ss->next; } /* Remember data for plet */ if (out_plet != NULL) { if (pt > out_plet_highest) out_plet_highest = pt; if (pb < out_plet_lowest) out_plet_lowest = pb; if (n_pitch > out_plet_highest_head) out_plet_highest_head = n_pitch; } /* Remember vertical data for hairpin */ if (bar_cont->hairpin != NULL) { hairpinstr *h = bar_cont->hairpin; if (pt > h->maxy) h->maxy = pt; if (pb < h->miny) h->miny = pb; } /* Remember data for numbered repeat bars; a non-scaled value is required. */ if (bar_cont->nbar != NULL) { nbarstr *b = bar_cont->nbar; if (pt > b->maxy) b->maxy = pt; } } /* Output all saved up text that was waiting to find out about this note/chord's pitch and accents, etc. We clear the above/below counts afterwards, for the benefit of end-of-bar text. They are initially cleared at the start of a bar. */ { int save_flags = n_flags; int save_acflags = n_acflags; n_flags = n_chordflags; n_acflags = n_chordacflags; for (i = 0; i < out_textqueueptr; i++) { out_textX = out_textXqueue[i]; out_text(out_textqueue[i], FALSE); } out_textqueueptr = out_textnextabove = out_textnextbelow = 0; out_textX = NULL; n_flags = save_flags; n_acflags = save_acflags; } /* Output any draw items that were waiting likewise */ if (out_drawqueueptr > 0) { draw_ox = n_x + n_cueadjust; /* Set origin */ draw_oy = 0; for (i = 0; i < out_drawqueueptr; i++) { b_drawstr *d = out_drawqueue[i]; out_dodraw(d->item, d->args, d->overflag); } out_drawqueueptr = 0; } /* Now we can reset the adjustment; it is left till after text and draw output. */ out_Xadjustment = 0; out_Yadjustment = 0; /* Set the note or rest, first setting up the stemlength that will be used for all accents etc. in a chord. */ n_orig_stemlength = n_stemlength; out_shownote(); out_lastnotex = n_x; /* Print tremolo bars if required. Note that the x-values required by ps_beam() are relative to the bar start. Ignore if inside a beam, and if this note is a rest. (The first can't be a rest if we have got this far.) We make use of the beam drawing routine. */ if (out_tremolo != NULL) { if (!out_beaming && n_pitch != 0) { int i, y; int x0 = out_tremx - out_barx + (75*main_stavemagn)/100; int x1 = n_x - out_barx + (115*main_stavemagn)/100; beam_Xcorrection = (51*main_stavemagn)/10; if (n_notetype < minim) { beam_upflag = out_tremupflag = FALSE; out_tremolo->join = 0; /* Force no join */ x0 += beam_Xcorrection; } else beam_upflag = n_upflag; y = misc_ybound(!beam_upflag, NULL, FALSE, FALSE); beam_firstY = out_tremy; if (beam_upflag) { if (out_tremupflag) { x0 += beam_Xcorrection; beam_firstY -= 3*main_stavemagn; } else beam_firstY += 2*main_stavemagn; x1 += beam_Xcorrection; y -= 3*main_stavemagn; } else /* !beam_upflag */ { if (out_tremupflag) { x0 += beam_Xcorrection; y -= main_stavemagn; beam_firstY -= 4*main_stavemagn; } y += 3*main_stavemagn; beam_firstY += 3*main_stavemagn; } beam_firstX = x0; beam_slope = mac_muldiv(y - beam_firstY, 1000, x1 - x0); /* Now draw the beams. At the end of the joined ones, shorten the x values. If the right-hand note is a semibreve (no stem) and has accidentals, shorten even further. */ for (i = 0; i < out_tremolo->count; i++) { if (i == out_tremolo->join) { int xx = (n_x - out_tremx)/5; x0 += xx; x1 -= xx; if ((n_flags & nf_stem) == 0) x1 -= n_accleft; } ps_beam(x0, x1, i, 0); } } out_tremolo = NULL; } /* Clear ornament before printing the rest of a chord */ n_ornament = NULL; /*** Finished with single note ***/ /* Deal with the remaining notes of a chord. Save and re-instate the note flags for the main note, if they are printed on the stem side, because these contain data about accents which is relevant to slurs that end on the note. */ if (n_chordcount > 1) { int lastpitch = n_pitch; int n_orig_acflags = n_acflags; b_notestr *tp = p; mac_advancechord(tp); while (tp->type == b_chord) { n_pitch = tp->spitch; n_flags = tp->flags & ~nf_appogg; /* No slashes on inside chord notes */ n_acflags = tp->acflags; n_acc = tp->acc; n_accleft = (tp->accleft*main_stavemagn)/1000; mac_couplepitch(n_pitch, n_flags); n_stemlength = (abs(n_pitch - lastpitch) - (14*n_fontsize)/10000) * 1000; if (n_stemlength < n_orig_stemlength) n_stemlength = n_orig_stemlength; if (n_accleft) n_accleft = (n_accleft * accleftnum)/n_maxaccleft; n_notetype = (n_masq >= 0)? n_masq : tp->notetype; if (n_notetype >= quaver) n_notetype = crotchet; if ((bar_cont->flags & cf_notes) != 0) out_shownote(); p = tp; /* p must be left pointing to last note */ mac_advancechord(tp); lastpitch = n_pitch; } n_stemlength = n_orig_stemlength; /* restore for slur etc. calculations */ /* Restore first accents if printed on stem side, else leave last ones */ if ((n_orig_acflags & af_opposite) != 0) n_acflags = n_orig_acflags; } /* Output a tie or glissando that ends on this note or chord */ if (n_prevtie != NULL) { int flags = n_prevtie->flags; if ((flags & (tief_slur|tief_default)) != 0) { b_notestr *prevnote = n_prevtie->note; mac_advancechord(prevnote); if (n_chordcount == 1 && prevnote->type != b_chord) out_setnotetie(n_x, FALSE, flags); else out_setchordtie(out_notelist, n_chordcount, n_x, FALSE, flags); } if ((flags & tief_gliss) != 0 && n_chordcount == 1) out_glissando(n_x, flags); } /* Cancel the dot adjustment unless a tie follows */ if (n_nexttie == NULL) n_dotxadjust = 0; /* Cancel masquerade and update last stem flag */ n_masq = -1; out_laststemup[out_stave] = n_upflag; /* Reset beaming flag if beam completed. Reset the beaming adjustments so as to ignore directives that appear in the middle of beams. This is relevant when beams may be split over a line end; adjustments at the start of the second bar are ignored unless it is at the start of a line. */ if ((out_lastnotebeamed = out_beaming) == TRUE && --beam_count <= 0) { out_beaming = beam_continued = FALSE; beam_forceslope = BIGNUMBER; beam_offsetadjust = 0; } /* Advance musical offset */ out_moff += n_length; DEBUG(("out_setnote() end\n")); return (bstr *)p; /* Pointer to last note of chord */ } /* End of setnote.c */ pmw-4.27/src/pagehdr.h0000644000222100022210000001336312247665016012730 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2013 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: March 2013 */ /* This is the header file for the pagination routines. It contains mostly definitions of shared variables. Many of the structures used are more global, and are therefore in pmwhdr. */ /* Backward offsets for non-note items in a bar. */ #define posx_acc (-1) /* accidental */ #define posx_gracelast (-2) /* grace notes use 2 to 15, in reverse order */ #define posx_gracefirst (-15) #define posx_RLright (-16) /* left repeat when printed on the right */ #define posx_timelast (-17) /* time signatures use 17 to 20, in reverse */ #define posx_timefirst (-20) #define posx_keylast (-21) /* key signatures use 21 to 24, in reverse */ #define posx_keyfirst (-24) #define posx_RLleft (-25) /* left repeat when printed on the left */ #define posx_RR (-26) #define posx_dotbar (-27) #define posx_clef (-28) #define posx_tick (-29) #define posx_comma (-30) #define posx_caesura (-31) #define posx_max (-31) #define posx_maxgrace (posx_gracelast - posx_gracefirst + 1) #define posx_maxtime (posx_timelast - posx_timefirst + 1) #define posx_maxkey (posx_keylast - posx_keyfirst + 1) extern pagedatastr *page_accepteddata; /* pointers to the data structures */ extern pagedatastr *page_nextdata; /* used while measuring */ extern pagedatastr *page_previousdata; extern int page_barcount; /* bars processed so far */ extern int page_barlinewidth; /* bar line width */ extern int page_barnumber; /* next to be processed */ extern int page_botmargin; /* value for this page */ extern contstr *page_cont; /* continuation structure */ extern int page_countsystems; /* count of systems on a page */ extern BOOL page_firstsystem; /* first system of movt */ extern headstr *page_footing; /* pending footing */ extern int page_footnotedepth; /* depth of footnotes for a system */ extern headstr *page_footnotes; /* pending footnotes */ extern int page_footnotespacing; /* current spacing off value */ extern int page_justify; /* bits for this page */ extern int page_justifyLR; /* bits for this system */ extern int page_lastbarcountbump; /* for backing off */ extern BOOL page_lastendwide; /* flag for repeat */ extern BOOL page_lastenddouble; /* flag for double bar */ extern headstr *page_lastfootnote; extern headstr *page_lastnewfootnote; extern sysblock *page_lastsystem; /* previous system */ extern int page_lastulevel; /* bottommost underlay level */ extern int page_lastwanted; /* highest wanted stave number */ extern int page_layout_stretchn; /* used for re-spacing */ extern int page_layout_stretchd; /* ditto */ extern int page_manyrest; /* multi-rest count */ extern startlinestr *page_midline; /* current mid line data */ extern int page_movtnumber; /* current movement */ extern BOOL page_movtpending; /* new movement pending */ extern int page_newfootnotedepth; /* depth of footnotes for a system */ extern headstr *page_newfootnotes; /* footnotes for a system */ extern BOOL page_newpagewanted; /* set to force newpage */ extern int page_olaysize; /* overlay size for this movement */ extern int *page_olevel; /* forced olevels */ extern int *page_olhere; /* local forcings */ extern workposstr *page_posptr; /* pointer to end of following */ extern workposstr *page_postable; /* working position table */ extern BOOL page_savehadmovt; /* temp save */ extern int page_sgnext; /* system gap for next system */ extern unsigned int page_showtimes[stave_bitvec_size]; /* which staves require time sigs */ extern int *page_ssnext; /* spacing table for next system */ extern int *page_ssehere; /* ensure table for this system */ extern int *page_ssenext; /* ensure table for next system */ extern BOOL page_startchangetime; /* flags change of ts at start line */ extern startlinestr *page_startline; /* current start line data */ extern BOOL page_startlinebar; /* flags start of line */ extern int page_stave; /* current stave */ extern unsigned int page_stavemap[stave_bitvec_size]; /* copy of movement stave bits */ extern uschar *page_sysclef; /* clef maintenance */ extern sysblock *page_sysblock; /* current block */ extern sysblock **page_sysprevptr; /* points to where to hang the next on */ extern int page_sys_botmargin; /* value set by this system */ extern int page_sys_justify; /* ditto */ extern int page_sys_topmargin; /* ditto */ extern int page_topmargin; /* value for this page */ extern int page_ulaysize; /* underlay size for this movement */ extern int *page_ulevel; /* forced ulevels */ extern int *page_ulhere; /* local forcings */ extern BOOL page_warnkey; /* warning key wanted */ extern BOOL page_warntime; /* warning time wanted */ extern int page_xxwidth; /* width of signatures only bar */ extern void page_dopageheading(headstr *); extern void page_endpage(BOOL); extern void page_justifyheading(headstr *); extern void page_newpage(headstr *, headstr *); extern int page_makepostable(BOOL); extern void page_setcont(void); extern void page_setsignatures(void); extern int page_startwidth(pagedatastr *, unsigned int *, unsigned int *); /* End of pagehdr.h */ pmw-4.27/src/pmwhdr.h0000644000222100022210000013055612247665016012623 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2013 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: March 2013 */ /* This is the main header file, imported by all other sources. */ /* ANSI C includes */ #include #include #include #include #include #include #include #include /* Unix includes */ #include #include #include /* Debugging */ #define DEBUG(x) if (debugging) debug_printf x /* Some operating systems (naughtily, imo) include a definition for "uchar" in the standard header files, so we use "uschar". Solaris has u_char in sys/types.h. This is just a typing convenience, of course. */ typedef unsigned char uschar; /* These macros save typing for the casting that is needed to cope with the mess that is "char" in ISO/ANSI C. */ #define CS (char *) #define CSS (char **) #define US (unsigned char *) #define USS (unsigned char **) /* The C library string functions expect "char *" arguments. Use macros to avoid having to write a cast each time. We do this for string and file functions; for other calls to external libraries (which are on the whole special-purpose) we just use casts. */ #define Uatoi(s) atoi(CS(s)) #define Ufgets(b,n,f) fgets(CS(b),n,f) #define Ufopen(s,t) fopen(CS(s),CS(t)) #define Ufputs(b,f) fputs(CS(b),f) #define Ustrcat(s,t) strcat(CS(s),CS(t)) #define Ustrchr(s,n) US strchr(CS(s),n) #define Ustrcmp(s,t) strcmp(CS(s),CS(t)) #define Ustrcpy(s,t) strcpy(CS(s),CS(t)) #define Ustrlen(s) (int)strlen(CS(s)) #define Ustrncat(s,t,n) strncat(CS(s),CS(t),n) #define Ustrncmp(s,t,n) strncmp(CS(s),CS(t),n) #define Ustrncpy(s,t,n) strncpy(CS(s),CS(t),n) #define Ustrstr(s, t) US strstr(CS(s),CS(t)) #define Ustrtol(s,t,b) strtol(CS(s),CSS(t),b) #define Ustrtoul(s,t,b) strtoul(CS(s),CSS(t),b) /* Define boolean types here so they can be used in included headers */ #define BOOL int #define CBOOL char /* The following value (LOWCHARLIMIT) must not be less than 256. Characters whose Unicode values are less than this limit are treated specially in two ways: (1) Each font has a table of widths of this size, so that the widths of the most common characters can be found quickly. Characters whose code points are greater than this limit have their widths stored in a tree structure instead. (2) Cloned PostScript fonts are created, with different encodings, so that characters up to this value can be directly printed without much translation. NOTE: At present, we assume that the value is less than 512, because only two fonts are used. It seems unlikely that we will ever need to extend this, but you never know. */ #define LOWCHARLIMIT 384 /* These define the characters that are substituted for unavailable characters, in standardly encoded and non-standardly encoded fonts, respectively. The first should be one that is always available in the base font, with code less that 256, because it is used unmodified in the PostScript output. */ #define UNKNOWN_CHAR_S 0x00a4 /* Currency symbol */ #define UNKNOWN_CHAR_N 0x00b4 /* Triangle in Music, multiply in Symbol */ /* Other specific Unicode characters that are needed */ #define QUOTE_LEFT 0x2018 #define QUOTE_RIGHT 0x2019 #define CHAR_FI 0xfb01 /* fi ligature */ /* Macros for loading UTF-8 characters */ /* Get the next UTF-8 character, not advancing the pointer. */ #define GETCHAR(c, ptr) \ c = *ptr; \ if ((c & 0xc0) == 0xc0) \ { \ int gcii; \ int gcaa = utf8_table4[c & 0x3f]; /* Number of additional bytes */ \ int gcss = 6*gcaa; \ c = (c & utf8_table3[gcaa]) << gcss; \ for (gcii = 1; gcii <= gcaa; gcii++) \ { \ gcss -= 6; \ c |= (ptr[gcii] & 0x3f) << gcss; \ } \ } /* Get the next UTF-8 character, advancing the pointer. */ #define GETCHARINC(c, ptr) \ c = *ptr++; \ if ((c & 0xc0) == 0xc0) \ { \ int gcaa = utf8_table4[c & 0x3f]; /* Number of additional bytes */ \ int gcss = 6*gcaa; \ c = (c & utf8_table3[gcaa]) << gcss; \ while (gcaa-- > 0) \ { \ gcss -= 6; \ c |= (*ptr++ & 0x3f) << gcss; \ } \ } /************************************************* * Structures used in barhdr.h * *************************************************/ /* We need to define certain structures before including barhdr.h. Other structures are defined later, below. */ /* Structure for describing a text item used in drawing functions */ typedef struct { int ident; int rotate; int xdelta; int ydelta; uschar *text; short int flags; short int size; } drawtextstr; /* Structure for items in encoded draw function vectors, variables, and stack. A union is needed for the value because some are integers and some are addresses. They used to be punned, stuffing pointers into ints, but this doesn't work in 64-bit environments. */ typedef struct { int dtype; /* data type, eg dd_number */ union { void *ptr; int val; } d; } drawitem; /* Types of value in draw programs, stacks, and variables; used in the dtype field in the structure above for items on the stack and for variables. */ #define dd_any 1 /* Used in the checklist for any type allowed */ #define dd_number 2 #define dd_text 3 #define dd_code 4 #define dd_varname 5 /* Structure for each node in a tree */ typedef struct tree_node { struct tree_node *left; /* pointer to left child */ struct tree_node *right; /* pointer to right child */ uschar *name; /* node name */ uschar *data; /* for string values */ int val[3]; /* for numeric values */ uschar balance; /* balancing factor */ } tree_node; /* One heading/footing line. */ typedef struct headstr { struct headstr *next; int stretch; /* amount to stretch spaces by */ int space; /* amount of space after line */ int size; /* 0 => postscript heading; < 0 => drawing */ int *matrix; /* points to transformation or NULL */ union { uschar *text; /* either a pointer to a string */ tree_node *drawing; /* or a pointer to a drawing */ } a; union { int spaceabove; /* either space above a line of text */ drawitem *args; /* or args for a drawing */ } b; int font; /* initial font */ } headstr; /* Text associated with a line or slur gap */ typedef struct { uschar *text; short int flags; short int size; int x; int y; } gaptextstr; /* Bar structures are held separately for convenience */ #include "barhdr.h" /************************************************* * Program parameters * *************************************************/ #define def_max_bars 500 /* Default max bars per movement */ #define draw_blocksize 256 /* Chunk size for draw routines */ #define draw_stacksize 100 /* Size of draw stack */ #define layout_maxsize 200 /* Max items in layout list */ #define max_beamsize 100 /* Should be large enough for anything */ #define max_chordsize 10 /* 10-note chords should be enough */ #define max_draw_variable 19 /* Max number of a draw variable */ #define max_fonts 50 /* Maximum number of different fonts */ #define max_include 10 /* Max depth of included files */ #define def_max_movements 50 /* Default max movements */ #define max_postablesize 400 /* Max number of entries */ #define read_buffersize 1000 /* Input buffer size */ #define midi_maxchannel 16 /* Maximum MIDI channel number */ /* Maximum stave is defined in terms of the length of the bit vector that maps stave presence, suspension, etc. If stave_bitvec_size is increased, some tables in tables.c must also be extended. Also, the mac_initstave, mac_anystave and mac_samestave macros below must be suitably modified. */ #define stave_bitvec_size 2 /* Number of ints in the bit vector */ #define max_stave (stave_bitvec_size * 32 - 1) /* Typesetting parameters */ #define page_leftbarspace 8000 /* Space at left of bar */ /************************************************* * Global Macros * *************************************************/ #define FALSE 0 #define TRUE 1 #define BIGNUMBER 0x7FFFFFFF #define rc_noerror 0 /* Return codes */ #define rc_warning 1 #define rc_serious 2 #define rc_failed 3 #define rc_disaster 4 #define time_common 255 #define time_cut 254 /* If MaxExtraFont is increased, check that font_IdStrings in tables.c contains sufficient identifying strings, and that ps_IdStrings in ps.c is of the right size too. If MaxTextFont is changed, the initializing table init_fontsizes in tables.c must be made to be the correct size. */ #define MaxTextFont 12 /* for different text sizes */ #define MaxExtraFont 12 /* for different faces */ /* It is helpful to have names for the vertical offsets of the various lines and spaces on the stave. The bottom line is numbered one. These pitches are the appropriate vertical offsets from the bottom line to print a note or an accidental on the relevant line or space. */ #define L_0L -6000 #define L_0S -4000 #define L_1L -2000 #define L_1S 0 #define L_2L 2000 #define L_2S 4000 #define L_3L 6000 #define L_3S 8000 #define L_4L 10000 #define L_4S 12000 #define L_5L 14000 #define L_5S 16000 #define L_6L 18000 /* Similarly, it is helpful to have names for the equivalent stave pitches. */ #define P_0L 124 #define P_0S 126 #define P_1L 128 #define P_1S 130 #define P_2L 132 #define P_2S 134 #define P_3L 136 #define P_3S 138 #define P_4L 140 #define P_4S 142 #define P_5L 144 #define P_5S 146 #define P_6L 148 /* Flags for diffent kinds of text - 16-bit field */ #define text_ul 0x0001 #define text_fb 0x0002 #define text_above 0x0004 #define text_box 0x0008 #define text_endalign 0x0010 #define text_middle 0x0020 #define text_ps 0x0040 #define text_rehearse 0x0080 #define text_ring 0x0100 #define text_baralign 0x0200 #define text_atulevel 0x0400 #define text_absolute 0x0800 #define text_centre 0x1000 #define text_timealign 0x2000 /* Flags for stave name texts */ #define snf_vcentre 0x01 #define snf_hcentre 0x02 #define snf_rightjust 0x04 #define snf_vertical 0x08 /* Clef style flags */ #define clef_oldbass 0x01 #define clef_oldalto 0x02 /* Conventional value for "no transposition" */ #define max_transpose 1000 /************************************************* * Global procedure macros * *************************************************/ #define ROUND(x) ((((x) + sizeof(void *) - 1)/sizeof(void *)) * sizeof(void *)) #define mac_fdiv(f,d) ((int)(((double)(f) * 1000.0)/((double) (d)))) #define mac_muldiv(a,b,c) \ ((int)((((double)((int)(a)))*((double)((int)(b))))/((double)((int)(c))))) #define mac_setstavesize(i) \ main_stavemagn = (curmovt->stavesizes)[i] #define mac_advancechord(ww) \ if ((ww = (b_notestr *)((uschar *)ww + length_table[b_note]))->type == b_Jump) \ ww = (b_notestr *) \ ((uschar *)(((b_Jumpstr *)ww)->next) + length_table[b_Jump]) #define mac_couplepitch(p, f) \ if ((f & (nf_coupleU | nf_coupleD)) != 0) \ p += (((f & nf_coupleU) != 0)? (out_upgap - 24):(24 - out_downgap)) #define mac_clearstave(a, z) \ a[z >> 5] &= ~main_bit[z & 0x1f] /* Needs manual adjustment when stave_bitvec_size changes */ #define mac_initstave(a, b) \ a[0] = a[1] = b #define mac_setstave(a, z) \ a[z >> 5] |= main_bit[z & 0x1f] /* Test for the presence of a stave a bitmap */ #define mac_teststave(a, z) \ ((a[z >> 5] & main_bit[z & 0x1f]) != 0) /* Test for the absence of a stave a bitmap */ #define mac_testNstave(a, z) \ ((a[z >> 5] & main_bit[z & 0x1f]) == 0) /* Test for the presence of a stave in both of two bitmaps */ #define mac_teststave2(a, b, z) \ ((a[z >> 5] & b[z >> 5] & main_bit[z & 0x1f]) != 0) /* Test for the absence of a stave in at least one of two bitmaps */ #define mac_testNstave2(a, b, z) \ ((a[z >> 5] & b[z >> 5] & main_bit[z & 0x1f]) == 0) /* Needs manual adjustment when stave_bitvec_size changes */ #define mac_anystave(a) \ ((a[0] | a[1]) != 0) /* Needs manual adjustment when stave_bitvec_size changes */ #define mac_diffstave(a, b) \ (a[0] != b[0] || a[1] != b[1]) /* Needs manual adjustment when stave_bitvec_size changes */ #define mac_samestave(a, b) \ (a[0] == b[0] && a[1] == b[1]) /************************************************* * Global enumerations * *************************************************/ /* Stem swap options */ enum { stemswap_default, stemswap_up, stemswap_down, stemswap_left, stemswap_right }; /* Justification values */ enum { just_top = 1, just_bottom = 2, just_left = 4, just_right = 8, just_all = just_top+just_bottom+just_left+just_right }; /* Clefs - real ones come first, and clef_count is the number of different ones. */ enum { clef_treble, clef_soprano, clef_mezzo, clef_alto, clef_tenor, clef_cbaritone, clef_baritone, clef_bass, clef_deepbass, clef_h, clef_none, clef_trebledescant, clef_trebletenor, clef_trebletenorB, clef_soprabass, clef_contrabass, clef_count}; /* Movement options */ enum { movt_default, movt_newpage, movt_thispage, movt_thisline, movt_nopageheading = 0x0100, movt_uselastfooting = 0x0200 }; /* Skip options for errors */ enum { skip_EOL, skip_KET, skip_BACKSLASH }; /* Notehead type options. If these are changed, the tables in shownote.c must also be changed. No stems are printed for values greater than or equal to nh_only. */ enum { nh_normal, /* conventional noteheads, with stems and beams */ nh_cross, /* X noteheads, with stems and beams */ nh_harmonic, /* diamond-shaped, with stems and beams */ nh_none, /* no noteheads, just stems and beams */ nh_only, /* conventional noteheads, no stems or beams */ nh_direct /* fancy 'w', no stems or beams */ }; /* System or heading block identification */ enum { sh_system, sh_heading }; /* Types for data in a layout vector */ enum { lv_barcount, lv_repeatcount, lv_repeatptr, lv_newpage }; /* Specific sheet sizes */ enum { sheet_unknown, sheet_A5, sheet_A4, sheet_A3, sheet_B5, sheet_letter }; /* Identifiers for each type of font. Any changes in this table must be kept in step with the list of 2-letter font ids which is kept in FontIdStrings. The running PostScript copy in ps_IdStrings must also be kept at the same size. */ enum { font_rm, font_it, font_bf, font_bi, font_sy, font_mu, font_mf, font_xx, font_tablen = font_xx + MaxExtraFont }; /* Small caps are identified by a pseudo-font in some places. */ #define font_sc 256 /************************************************* * Structure Definitions * *************************************************/ /* See further up for the structures "tree_node", "headstr", and "gaptextstr", which are used in barhdr and so have to be defined before it is included. */ /* Structure for handling macros. We can't unfortunately have a variable length vector at the end, as C doesn't support such things. */ typedef struct { int argcount; /* number of default arguments */ uschar *text; /* replacement text */ uschar *args[1]; /* vector of pointers */ } macrostr; /* Items in a kerning table, pointed to from a fontstr */ typedef struct kerntablestr { unsigned int pair; int kwidth; } kerntablestr; /* Font data read from AFM file */ typedef struct { uschar *psname; /* PostScript font name */ int *widths; /* Pointer to basic width table */ int *r2ladjusts; /* Pointer to right-to-left adjusts */ int *heights; /* Pointer to height table, if any */ int kerncount; /* Size of kern table */ tree_node *high_tree; /* Tree for data for high val chars */ kerntablestr *kerns; /* Pointer to kerning table */ BOOL stdencoding; /* True if std encoding */ BOOL fixedpitch; /* True if fixed pitch */ BOOL hasfi; /* True if has "fi" */ } fontstr; /* Structure for overall font sizes at standard magnification, and pointers to matrices for font stretching and shearing, where defined. */ typedef struct { int fontsize_music; int fontsize_grace; int fontsize_cue; int fontsize_cuegrace; int fontsize_clefs; int fontsize_barno; int fontsize_footnote; int fontsize_rehearse; int fontsize_triplet; int fontsize_repno; /* repeat bar number */ int fontsize_restct; /* long rest count */ int fontsize_trill; int fontsize_vertacc; /* vertical accidentals */ int fontsize_text[MaxTextFont]; int fontsize_tsfont; /* These fonts are sometimes accessed */ int fontsize_ulay; /* as additional text fonts, using */ int fontsize_olay; /* the offsets defined below, so if */ int fontsize_fbass; /* changing, keep the offsets in step. */ int fontsize_init; /* This one too... */ /* These must be in the same order as the font sizes, and music must be first. */ int *fontmatrix_music; int *fontmatrix_grace; int *fontmatrix_cue; int *fontmatrix_cuegrace; int *fontmatrix_clefs; int *fontmatrix_barno; int *fontmatrix_footnote; int *fontmatrix_rehearse; int *fontmatrix_triplet; int *fontmatrix_repno; int *fontmatrix_restct; int *fontmatrix_trill; int *fontmatrix_vertacc; int *fontmatrix_text[MaxTextFont]; int *fontmatrix_tsfont; int *fontmatrix_ulay; int *fontmatrix_olay; int *fontmatrix_fbass; int *fontmatrix_init; } fontsizestr; /* Offsets for special text fonts */ #define ff_offset_ts (MaxTextFont) #define ff_offset_ulay (ff_offset_ts+1) #define ff_offset_olay (ff_offset_ulay+1) #define ff_offset_fbass (ff_offset_olay+1) #define ff_offset_init (ff_offset_fbass+1) /* Data for spacing at the start of a line */ typedef struct { int clefspace; int keyspace; int timespace; int notespace; } startlinestr; /* One item in a chain of stave selections */ typedef struct stave_list { struct stave_list *next; int first; int last; } stave_list; /* One stave name text */ typedef struct snamestr { struct snamestr *next; uschar *text; tree_node *drawing; drawitem *args; /* for drawing */ uschar flags; uschar offset; uschar linecount; } snamestr; /* One printtime item */ typedef struct ptimestr { struct ptimestr *next; int time; uschar *top; uschar *bot; uschar offsettop; uschar offsetbot; } ptimestr; /* One printkey item */ typedef struct pkeystr { struct pkeystr *next; int key; int clef; uschar *string; } pkeystr; /* One transposed key masquerade item */ typedef struct trkeystr { struct trkeystr *next; int oldkey; int newkey; } trkeystr; /* Data pertaining to one stave */ typedef struct { bstr **barindex; snamestr *stave_name; int lastbar; int toppitch; int botpitch; int totalpitch; short int notecount; CBOOL omitempty; uschar stavelines; uschar barlinestyle; } stavestr; /* Layout of the items in the final position table for a bar */ typedef struct { int moff; /* musical offset of the position */ int xoff; /* horizontal offset */ } posstr; /* Layout of one item in a bar's positioning table while it is being worked on. The stemup & stemdown flags are used as stated only at the beginning of processing, when non-grace notes are the only things considered. For auxiliary items, the stemup field is re-used to track which staves have the auxiliary item. We should really use a union, but the notation is too messy! In the pos routines which use this we cheat by defining a macro "posstaves" instead. */ typedef struct { int moff; int xoff; int space; /* additional space required */ int stemup[stave_bitvec_size]; /* bitmap of staves where there is an */ /* actual stem up, aka "posstaves" */ int stemdown[stave_bitvec_size]; /* ditto for stem down */ int auxid; /* identification of auxiliary items */ /* (may be -ve) */ } workposstr; /* Layout of the entries in the vector kept for a movement's bars */ typedef struct { posstr *vector; /* points to positioning vector */ int barnoX; /* X offset for bar number */ int barnoY; /* Y offset for bar number */ short int count; /* number of entries in the vector */ short int multi; /* multi-bar rest count */ uschar posxRL; /* offset for left repeat */ uschar barnoforce; /* force/unforce flag */ } barposstr; /* Layout of structure for remembering things while measuring a line. Three versions of this are kept: previous points to the version that was current after accepting the previous bar; accepted points to the current structure after accepting a bar; next points to the values that have changed as a result of measuring the bar being checked. */ typedef struct { int xposition; /* total width of bars */ int startxposition; /* position of lhs, after stave names */ int endbar; /* end bar number */ int count; /* count of bars */ int notespacing[8]; /* notespacing values */ unsigned int notsuspend[stave_bitvec_size]; /* not suspended staves */ snamestr **stavenames; /* stave name vector */ CBOOL endkey; /* line ends with key signature */ CBOOL endtime; /* line ends with time signature */ } pagedatastr; /* Structure for keeping data about a copy of stave 0 for another stave */ struct contstr; /* Defined further down */ typedef struct zcopystr { struct zcopystr *next; struct contstr *cont; /* Holds cont ptr for this copy */ int adjust; /* Overall adjustment for this stave */ int baradjust; /* Adjustment for this bar */ int level; /* Used to hold actual level for printing */ int stavenumber; /* Stave to overprint */ } zcopystr; /* Data pertaining to a movement */ typedef struct { stavestr **stavetable; fontsizestr *fontsizes; barposstr *posvector; startlinestr *startline; zcopystr *zcopy; stave_list *bracelist; stave_list *bracketlist; stave_list *joinlist; stave_list *joindottedlist; stave_list *thinbracketlist; headstr *footing; headstr *heading; headstr *lastfooting; headstr *pagefooting; headstr *pageheading; b_playchangestr *play_changes; uschar *barnovector; uschar *hyphenstring; uschar *trillstring; uschar *play_volume; uschar *midi_channel; uschar *midi_note; uschar *midi_voice; uschar *midi_volume; int *accadjusts; int *accspacing; int *notespacing; int *layout; int *midi_start; int *play_tempo_changes; int *stavesizes; int *stave_ensure; int *stave_spacing; int *stemswaplevel; int barcount; int barlinesize; int barlinespace; int barlinestyle; int barno_interval; int barno_level; int barno_textflags; int baroffset; int beamdepth; int beamflaglength; int botmargin; int bracestyle; int breveledgerextra; int caesurastyle; int clefsize; int clefstyle; int dotspacefactor; int endlinesluradjust; int endlineslurstyle; int endlinetieadjust; int endlinetiestyle; int extenderlevel; int font_barnumber; int font_longrest; int font_rehearse; int font_repeat; int font_time; int font_triplet; int footnotesep; int gracespacing[2]; int gracestyle; int hflatstyle; int hsharpstyle; int hairpinlinewidth; int hairpinwidth; int hyphenthreshold; int justify; int key; int keyspacing; int laststave; int ledger; int leftmargin; int linelength; int maxbarcount; int maxbeamslope1; int maxbeamslope2; int movt_opt; int overlaydepth; int play_tempo; int rehearsalstyle; int repeatstyle; int shorten; int smallcapsize; int startbracketbar; int stemswaptype; int systemgap; int time; int timespacing; int topmargin; int totalnocount; int transpose; int tripletlinewidth; int truelinelength; int underlaydepth; int underlaystyle; unsigned int breakbarlines[stave_bitvec_size]; unsigned int staves[stave_bitvec_size]; unsigned int suspend[stave_bitvec_size]; int clefwidths[clef_count]; int tailadjusts[8]; CBOOL beamendrests; CBOOL breverests; CBOOL check; CBOOL checkdoublebars; CBOOL codemultirests; CBOOL fullbarend; CBOOL startjoin; CBOOL keydoublebar; CBOOL keywarn; CBOOL showtime; CBOOL showtimebase; CBOOL tiesoverwarnings; CBOOL timewarn; CBOOL startnotime; CBOOL spreadunderlay; CBOOL underlayextenders; CBOOL unfinished; signed char playtranspose[max_stave+1]; } movtstr; /* Layout of the data for an active line gap */ typedef struct gapstr { struct gapstr *next; int x; b_linegapstr *gap; } gapstr; /* Layout of the data for an active slur */ typedef struct slurstr { struct slurstr *next; b_slurstr *slur; gapstr *gaps; int x; int y; int maxy; int miny; int lastx; int lasty; int slopeleft; int sloperight; short int count; short int section; } slurstr; /* Layout of the data for an active hairpin */ typedef struct { b_hairpinstr *hairpin; int x; int maxy; int miny; } hairpinstr; /* Layout of data for an active nth time bar. There can be a chain of these when, e.g. 1 & 2 are given for the same bar. It is wasteful of store, but this is so rare it isn't worth bothering. */ typedef struct nbarstr { struct nbarstr *next; b_nbarstr *nbar; int x; int maxy; int miny; } nbarstr; /* Layout of data for a pending underlay hyphen string or extension. Also used for overlay, with levels going from olay_offset. */ typedef struct ulaystr { struct ulaystr *next; int x; /* start position */ int y; /* vertical level */ uschar type; /* '=' or '-' */ uschar level; /* underlay level */ uschar htype; /* hyphen type index */ } ulaystr; /* Layout of data for custom built "hyphen type" */ typedef struct htypestr { struct htypestr *next; uschar *string1; /* main repeat string */ uschar *string2; /* line start string */ uschar *string3; /* final case string */ int font; /* initial font */ int adjust; /* vertical adjust */ uschar size1; /* size for first string */ uschar size2; /* size for second string */ } htypestr; /* Layout of data saved when a beam extends over a bar line. Longestnote is used when the split is over a line end. */ typedef struct { int firstX; int firstY; int slope; int count; int Xcorrection; int longestnote; BOOL splitOK; BOOL upflag; }obeamstr; /* Layout of one stave's continuation data held in a vector for use at the start of each system, and while setting the stave. */ typedef struct { slurstr *slurs; /* chain of pending slurs */ hairpinstr *hairpin; /* pending hairpin */ nbarstr *nbar; /* chain of pending nth time bars */ b_tiestr *tie; /* pending tie */ ulaystr *ulay; /* pending {und,ov}erlay hyphens or extension */ obeamstr *overbeam; /* data for beam over bar line */ int tiex; /* start position for tie */ int time; /* time signature */ uschar noteheadstyle; /* sic */ uschar flags; /* see below */ uschar clef; /* current clef */ uschar key; /* current key signature */ } contstr; #define cf_bowingabove 1 #define cf_notes 2 /* on/off switch */ #define cf_triplets 4 /* on/off switch */ #define cf_noteheads 8 /* on/off switch for noteheads only */ #define cf_rdrepeat 16 /* last bar ended with double repeat */ #define cf_default (cf_bowingabove|cf_notes|cf_triplets) /* Layout of data in a system block structure. Up to and including the movement pointer it must have the same layout as a headblock, because they are held in the same chain. */ typedef struct sysblock { uschar type; /* indicates sysblock or headblock */ uschar flags; /* see below */ uschar overrun; /* overrun (whole points) */ uschar dummy2; struct sysblock *next; /* next system or headblock */ movtstr *movt; /* -> relevant movement */ /********** The following are specific to sysblock **********/ snamestr **stavenames; /* -> pointers to name structures */ contstr *cont; /* -> vector of contstrs */ int *stavespacing; /* -> vector of stave spacings */ int *ulevel; /* -> vector of underlay levels */ int *olevel; /* -> vector of overlay levels */ int systemgap; /* system gap value */ int systemdepth; /* total of stavespacings */ int xjustify; /* justify amount for whole system */ int barlinewidth; /* stretched for this system */ int startxposition; /* position after staff name text */ int joinxposition; /* position for joining signs */ int keyxposition; /* position for key signature */ int timexposition; /* position for time signature */ int firstnoteposition; /* sic */ unsigned int notsuspend[stave_bitvec_size]; /* staves not suspended in this system */ unsigned int showtimes[stave_bitvec_size]; /* staves which have starting time signatures */ short int barstart; /* starting bar number */ short int barend; /* ending bar number */ } sysblock; /* Flag bits */ #define sysblock_warnkey 1 /* print additional key signature warning bar */ #define sysblock_warntime 2 /* ditto, time signature */ #define sysblock_warn 3 /* mask for either one of the above */ #define sysblock_stretch 4 /* flag set when stretched */ #define sysblock_noadvance 8 /* don't advance vertically */ /* Layout of data in a head block structure. Up to and including the movement pointer, it must have the same layout as a sysblock, because they are held in the same chain. We avoid using a union because the notation is so long and clumsy. */ typedef struct { uschar type; /* indicates sysblock or headblock */ CBOOL pageheading; /* indicates this is a page heading */ uschar dummy2; uschar dummy3; sysblock *next; movtstr *movt; /********** The following are specific to headblock **********/ headstr *headings; } headblock; /* Layout of a head of page block */ typedef struct pagestr { struct pagestr *next; sysblock *sysblocks; /* -> chain of head+sysblocks */ headblock *footing; /* -> footing blocks */ int number; /* page number */ int topspace; /* space to insert at top of page */ int spaceleft; /* space left (used for justifying) */ int overrun; /* space required to fit another system on */ } pagestr; /* Layout of entry in music font printing structure */ typedef struct mfstr { struct mfstr *next; int x; int y; unsigned int ch; /* Holds up to 4 chars */ } mfstr; /* Layout of data structure used for saving drawing operations until the end of a stave - to ensure they are over everything else. Use a union to handle the two different types. */ struct overdrawstr_graphic { int linewidth; int gray; int ystave; int count; int data[1]; }; struct overdrawstr_text { uschar *text; int fontsize; int boxring; int xx; int yy; int matrix[4]; }; typedef struct overdrawstr { struct overdrawstr *next; BOOL texttype; union { struct overdrawstr_graphic g; struct overdrawstr_text t; } d; } overdrawstr; /************************************************* * Global variables * *************************************************/ extern movtstr *format_movt; /* Pointer to movement for formatting */ extern movtstr **movement; /* Pointer to vector of pointers */ extern movtstr *curmovt; /* Current movement */ extern pagestr *curpage; /* Current page */ extern int curstave; /* Current stave number */ extern uschar *arg_from_name; /* Name on command line */ extern uschar *arg_to_name; /* Name on command line */ extern BOOL bar_use_draw; /* Use direct drawing for bar lines */ extern uschar *copyright; extern FILE *debug_file; extern BOOL debugging; extern int draw_gap; /* +/- 1, for /a or /b gaps */ extern int draw_lgx; /* Line gap x0 value for draw */ extern int draw_lgy; /* Line gap y0 value for draw */ extern int draw_nextvariable; /* Next variable number */ extern int draw_ox; /* Draw origin coordinates */ extern int draw_oy; extern tree_node *draw_tree; /* Tree of draw routines */ extern tree_node *draw_variable_tree; /* Tree of draw variables */ extern int draw_thickness; /* Line thickness */ extern int error_count; /* Count of errors in one file */ extern int error_ptr_correction; /* For pointing within strings */ extern int error_skip; /* Skip option */ extern int font_count; /* Count of defined fonts */ extern int font_basecount; /* Ditto, as read from file */ extern uschar *font_IdStrings[]; /* 2-uschar ID strings */ extern fontstr *font_List; /* In-store list of fonts */ extern uschar *font_metrics_default; /* Default font metrics directory */ extern uschar *font_metrics_extra; /* Additional font metrics directory */ extern int font_sinr; /* Sin of rotation angle */ extern int font_cosr; /* Cos of rotation angle */ extern int font_stringheight; /* 2nd value from width function */ extern int *font_table; /* Table of font identities */ extern int font_transform[]; /* For esoteric fonts - normally unit */ extern int font_xstretch; /* Amount to stretch each space by */ extern uschar init_midi_voice[]; /* Default midi voice structure */ extern movtstr init_movtstr; /* Initializing movement structure */ extern int init_notespacing[]; /* Initial notespacing value */ extern int init_stavesizes[]; /* Initial stave sizes table */ extern zcopystr init_zcopy; /* Default stave zero copy structure */ extern FILE *input_file; /* The current input file */ extern uschar length_table[]; /* Table of item lengths */ extern int longrest_barwidths[]; /* Fixed widths for longrest bars */ extern int longrest_widths[]; /* Widths of longrest symbols */ extern int main_bit[]; /* Table of bits in a word */ extern uschar *main_caesurastrings[]; /* For printing caesuras */ extern int main_clefoffset[]; /* Offsets in tables for clefs */ extern int main_cleftypes[]; /* Types of shape indicators for next */ extern uschar *main_filename; /* Name of current file */ extern int main_firstpage; /* Number of first page */ extern int main_flatorder[]; /* Key sig table */ extern uschar *main_format; /* User-selected format */ extern BOOL main_format_tested; /* Format has been tested */ extern htypestr *main_htypes; /* Chain of hyphen types */ extern BOOL main_initialized; /* True when initialized */ extern BOOL main_kerning; /* Kerning flag */ extern int main_keysigtable[]; /* Table of sharps and flats */ extern int main_lastmovement; /* Number of last movement */ extern int main_lastpage; /* Number of last page */ extern int main_magnification; /* Overall magnification */ extern int main_max_bars; /* Max bars per staff */ extern int main_max_movements; /* Maximum number of movements */ extern int main_maxvertjustify; /* Max vertical justification */ extern uschar *main_musicchoice; /* Music file named in Choices */ extern int main_notenum; /* Multiplies length */ extern int main_noteden; /* Divides length */ extern int main_notespacing[]; /* Start of movement values */ extern pagestr *main_pageanchor; /* Anchor of page structure */ extern int main_pageinc; /* Page increments */ extern int main_pagelength; /* Virtual page length */ extern pkeystr *main_printkey; /* Chain of printkey structs */ extern ptimestr *main_printtime; /* Chain of printtime structs */ extern headstr *main_pssetup; /* PostScript set-up "headings" */ extern int main_rc; /* The final return code */ extern BOOL main_righttoleft; /* As it says */ extern int main_sharporder[]; /* Key sig order table */ extern int main_sheetheight; /* Height of paper */ extern int main_sheetwidth; /* Width of paper */ extern BOOL main_shownlogo; /* FALSE if need to show logo on error */ extern int main_stavemagn; /* Magnification for current stave */ extern int main_staves[stave_bitvec_size]; /* External stave selection */ extern int main_storetotal; /* Total store used */ extern int main_storestaves; /* Store used for staves */ extern int main_stretchrespacethresh; /* Threshold for re-spacing */ extern int main_stretchthreshnum; /* Stretching threshold */ extern int main_stretchthreshden; extern int main_totalbars; /* Total number of bars */ extern int main_tracepos; /* Debugging option */ extern int main_transpose; /* External transpose value */ extern BOOL main_transposedaccforce; /* TRUE => retain accs when transposed */ extern trkeystr *main_transposedkeys; /* Transposed keys masquerades */ extern int main_truepagelength; /* Actual page length */ extern uschar *midi_filename; /* name of MIDI file */ extern BOOL midi_for_notes_off; /* If TRUE, do MIDI even if [notes off] */ extern uschar *midi_perc; /* File name with midi perc */ extern uschar *midi_percnames; /* Percussion name => "pitch" */ extern uschar *midi_voices; /* File name with midi voices */ extern uschar *midi_voicenames; /* Voice name => voice number */ extern int music_xmovement[]; /* Table of x movement-chars */ extern int music_ymovement[]; /* Ditto y */ extern BOOL opt_landscape; /* User-settable options */ extern BOOL opt_oldbeambreak; extern BOOL opt_oldrestlevel; extern BOOL opt_oldstemlength; extern BOOL opt_print_postscript; extern int opt_sheetsize; extern int opt_stretchrule; extern int play_endbar; extern int play_movt_number; extern BOOL play_repeats; extern int play_startbar; extern stave_list *print_curlist; /* Printing selection list */ extern int print_curnumber; /* Printing page number */ extern int print_gutter; /* Gutter adjustment */ extern int print_imposition; /* Imposition option */ extern int print_lastpage; /* Logical last page number */ extern int print_image_xadjust; /* Image adjustment values */ extern int print_image_yadjust; extern int print_image_sxadjust; /* ... for sideways paper */ extern int print_image_syadjust; extern int print_magnification; /* Scaling value */ extern int print_pagefeed; /* Page feed type */ extern int print_pageorigin; /* Page origin type */ extern BOOL print_pamphlet; /* Printing options */ extern BOOL print_reverse; extern BOOL print_side1; extern BOOL print_side2; extern uschar *ps_fontdir_default; /* Default PS font directory */ extern uschar *ps_fontdir_extra; /* Additional PS font directory */ extern uschar *ps_header; /* Name of PostScript header file */ extern BOOL reading_input; /* TRUE while reading */ extern stavestr *stavehead; /* Points to current stave structure */ extern stavestr **stavetable; /* Points to pointers to stave struct */ extern int stave_bottoms[]; /* Levels of top/bottom lines of staves */ extern int stave_tops[]; extern BOOL stave_use_draw; /* Use direct drawing for staves */ extern BOOL stave_use_widechars; /* Use 100-pt chars for staves */ extern const int utf8_table1[]; /* Various tables for UTF-8 processing */ extern const int utf8_table2[]; extern const int utf8_table3[]; extern const uschar utf8_table4[]; extern int string_font; /* Final font after measuring a string */ extern BOOL verify; /* The -v option */ extern int version_fixed; /* Identity number in binary */ extern uschar version_string[]; /* Identity of program version */ /************************************************* * Global procedures * *************************************************/ extern void debug_printf(char *, ...); extern void debug_showbar(int, int, int); #ifdef Debug extern void debug_showbarpos(int, int); extern void debug_showglobals(void); extern void debug_showmovement(int); extern void debug_showpage(int); extern void debug_showstave(int, int); #endif extern uschar *define_find(uschar *); extern void error_moan(int, ...); extern int font_fontword(BOOL); extern void font_init(void); extern void font_loadtables(int); extern void font_reset(void); extern void font_rotate(int); extern int font_search(uschar *); extern int font_stringwidth(uschar *, int, int); extern int format_sprintf(uschar *, char *, ...); /* 2nd is format */ extern int format_vsprintf(uschar *, char *, va_list); /* ditto */ extern void info_printf(char *, ...); extern int init_command(int, char **, char ***, char *); extern void main_tidyup(void); extern void midi_write(); extern void misc_commoncont(bstr *); extern contstr *misc_copycontstr(contstr *, int, BOOL); extern void misc_drawslur(slurstr *, int, int, BOOL); extern void misc_freecontstr(contstr *, int); extern slurstr *misc_getendslur(bstr *); extern int misc_keywidth(int, int); extern b_notestr *misc_nextnote(b_notestr *, int *); extern int misc_ord2utf8(int, uschar *); extern slurstr *misc_setstartslur(bstr *); extern int misc_timewidth(int); extern int misc_ybound(int, b_tiestr *, BOOL, BOOL); extern void paginate_go(void); extern BOOL print_nextpage(pagestr **, pagestr **); extern void print_setup_pagelist(BOOL); extern void ps_go(void); extern void read_start(void); extern void read_go(void); extern void read_midi_translation(uschar **, uschar *); extern void *store_copy(void *); extern uschar *store_copystring(uschar *); extern void store_debug_print(void); extern void store_debug_print(void); extern void store_free(void *); extern void *store_get(int); extern void *store_getitem(int); extern void *store_nextitem(void); extern void *store_Xget(int); extern uschar *string_check(uschar *); extern uschar *string_escape(uschar *, uschar *, int *, int *); extern uschar *string_read(void); extern void string_stavestring(BOOL); extern int string_width(uschar *, int, int); extern void sys_relativize(uschar *); extern int transpose_key(int, int, BOOL); extern int transpose_note(int, int *, int *, int, BOOL, BOOL, BOOL, int); extern BOOL Tree_InsertNode(tree_node **, tree_node *); extern tree_node *Tree_Search(tree_node *, uschar *); extern void version_init(void); /* End of pmwhdr.h */ pmw-4.27/src/out1.c0000644000222100022210000005630412247665016012203 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2009 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: February 2009 */ /* This file contains code for outputting a page */ #include "pmwhdr.h" #include "pagehdr.h" #include "outhdr.h" /************************************************* * Output one string * *************************************************/ /* We return the font which is current at the end of the string. If small caps are set, font_sc (which is larger than any font number) is added to the font. This is interpreted on input as well. The y values are absolute positions downwards from the top of the page. Arguments: s the string f the font in which to start pointsize the point size x x-coordinate for the start y y-coordinate for the start boxring flags: text_box or text-ring for boxed or ringed text, else 0 Returns: the font which is current at the end */ int out_string(uschar *s, int f, int pointsize, int x, int y, int boxring) { int i = 0; int xstart = x; int ystart = y; int orig_pointsize = pointsize; fontstr *fs; register int c; uschar ss[256]; if (f >= font_sc) { pointsize = (pointsize * curmovt->smallcapsize) / 1000; f -= font_sc; } fs = &(font_List[font_table[f]]); /* Process the characters in the string */ for (;;) { int nf, r; uschar xs[80]; GETCHARINC(c, s); if (c == 0) break; /* If the string buffer is getting full, output the string so far. This leaves plenty of room for escapes (which in practice are only a few bytes long). */ if (i > 250) { ss[i] = 0; ps_string(ss, f, pointsize, &x, &y, TRUE); i = 0; } /* Until we hit the escape character, '\', simply copy chars, except for quote and grave, which turn into closing and opening quotes, and for fi, which ligatures, for standardly encoded fonts. */ if (c != '\\') { uschar utf[8]; if (fs->stdencoding) { if (c == '`') c = QUOTE_LEFT; else if (c == '\'') c = QUOTE_RIGHT; else if (c == 'f' && *s == 'i' && !fs->fixedpitch && fs->hasfi) { c = CHAR_FI; s++; } } utf[misc_ord2utf8(c, utf)] = 0; Ustrcpy(ss + i, utf); i += Ustrlen(utf); continue; } /* Interpret the escape. It may return a string to print and/or a font change, and a flag to say whether the font change is permanent or not */ s = string_escape(s, xs, &nf, &r); /* If there is a font change, first output the string so far in the old font (if there is any string). */ if (nf >= 0) { if (i) { ss[i] = 0; ps_string(ss, f, pointsize, &x, &y, TRUE); i = 0; } /* If the new font is temporary, output the escaped string and mark it as empty. Otherwise, change the current font. */ if (r) { if (xs[0]) { ps_string(xs, nf, pointsize, &x, &y, TRUE); xs[0] = 0; } } /* If the new font is "small caps", leave the font alone, but adjust the size. Otherwise reset the original size. */ else { if (nf == font_sc) { if (pointsize == orig_pointsize) pointsize = (pointsize * curmovt->smallcapsize) / 1000; } else { f = nf; pointsize = orig_pointsize; fs = &(font_List[font_table[f]]); } } } /* Join the escape string onto the string so far */ Ustrcpy(ss+i, xs); i += Ustrlen(xs); } /* If there are any pending characters, output them. We only need update the position if boxing or ringing is going to happen. */ if (i) { ss[i] = 0; ps_string(ss, f, pointsize, &x, &y, boxring != 0); } /* Deal with boxed and/or ringed strings. Messy stuff added to cope with rotated text, leaving original code alone. */ if (boxring != 0) { int y0 = out_ystave - ystart - 2*main_stavemagn; int y1 = y0 + pointsize + main_stavemagn; /* Compute length of string along string */ if (font_sinr != 0) { double xx = (double)x - (double)xstart; double yy = (double)y - (double)ystart; x = xstart + (int)(sqrt(xx*xx + yy*yy)); } x += 2*main_stavemagn - pointsize/20; /* Boxed string - note the lines() routine is stave-relative. Draw 5 lines for the box to get the corner right at the starting position. */ if ((boxring & text_box) != 0) { int xx[6], yy[6]; xx[0] = xx[3] = xx[4] = xstart - 2000; xx[1] = xx[2] = xx[5] = x; yy[0] = yy[1] = yy[4] = yy[5] = y0; yy[2] = yy[3] = y1; /* If text is rotated, rotate about the initial point */ if (font_sinr != 0) { int i; for (i = 0; i <= 5; i++) { int xxx = xx[i] - xstart; int yyy = yy[i] - out_ystave + ystart; int xxxx = mac_muldiv(xxx, font_cosr, 1000) - mac_muldiv(yyy, font_sinr, 1000); int yyyy = mac_muldiv(yyy, font_cosr, 1000) + mac_muldiv(xxx, font_sinr, 1000); xx[i] = xxxx + xstart; yy[i] = yyyy + out_ystave - ystart; } } ps_lines(xx, yy, 6, pointsize/15); } /* Ringed string - the paths routine is also stave-relative */ if ((boxring & text_ring) != 0) { int xx[13], yy[13], cc[6]; int d = (2*pointsize)/7; int w = (2*(x - xstart + 2000))/7; cc[0] = path_move; cc[1] = cc[2] = cc[3] = cc[4] = path_curve; cc[5] = path_end; xx[0] = xx[9] = xx[12] = xstart - 2000; xx[3] = xx[6] = x; xx[1] = xx[8] = xx[0] + w; xx[2] = xx[7] = xx[3] - w; xx[4] = xx[5] = xx[3] + d; xx[10] = xx[11] = xx[0] - d; yy[0] = yy[3] = yy[12] = y1; yy[6] = yy[9] = y0; yy[1] = yy[2] = yy[0] + w; yy[4] = yy[11] = yy[0] - d; yy[5] = yy[10] = yy[6] + d; yy[7] = yy[8] = yy[6] - w; /* If text is rotated, rotate about the initial point */ if (font_sinr != 0) { int i; for (i = 0; i <= 12; i++) { int xxx = xx[i] - xstart; int yyy = yy[i] - out_ystave + ystart; int xxxx = mac_muldiv(xxx, font_cosr, 1000) - mac_muldiv(yyy, font_sinr, 1000); int yyyy = mac_muldiv(yyy, font_cosr, 1000) + mac_muldiv(xxx, font_sinr, 1000); xx[i] = xxxx + xstart; yy[i] = yyyy + out_ystave - ystart; } } ps_path(xx, yy, cc, pointsize/15); } } /* Return the current font, with font_sc added if we are in small caps. */ return (pointsize == orig_pointsize)? f : f + font_sc; } /************************************************* * Output one head/foot line * *************************************************/ /* Called from out_heading below. Argument: pointer to headstr Returns: nothing */ static void out_headfootline(headstr *p) { int f = p->font; int i = 0; int *matrix = p->matrix; uschar *s = p->a.text; uschar left[256]; uschar centre[256]; uschar right[256]; if (matrix != NULL) memcpy(font_transform, matrix, 4*sizeof(int)); while (*s != 0 && *s != '|') left[i++] = *s++; left[i] = 0; i = 0; if (*s == '|') s++; while (*s != 0 && *s != '|') centre[i++] = *s++; centre[i] = 0; i = 0; if (*s == '|') s++; while (*s != 0 && *s != '|') right[i++] = *s++; right[i] = 0; if (left[0]) { int w = string_width(left, f, p->size); font_xstretch = p->stretch; /* justification stretching */ f = out_string(left, f, p->size, 0, out_yposition, 0); font_xstretch = 0; if (-2000 < out_bbox[0]) out_bbox[0] = -2000; if (w + 2000 > out_bbox[2]) out_bbox[2] = w + 2000; } if (centre[0]) { int w = string_width(centre, f, p->size); int x = (curmovt->linelength - w)/2; f = out_string(centre, f, p->size, x, out_yposition, 0); if (x - 2000 < out_bbox[0]) out_bbox[0] = x - 2000; if (x + w + 2000 > out_bbox[2]) out_bbox[2] = x + w + 2000; } if (right[0]) { int w = string_width(right, f, p->size); f = out_string(right, f, p->size, curmovt->linelength - w, out_yposition, 0); if (curmovt->linelength - w - 2000 < out_bbox[0]) out_bbox[0] = curmovt->linelength - w - 2000; if (curmovt->linelength + 4000 > out_bbox[2]) out_bbox[2] = curmovt->linelength + 4000; } font_reset(); } /************************************************* * Output heading texts * *************************************************/ /* Called from out_page() below. Argument: pointer to chain of heading blocks Returns: nothing */ static void out_heading(headblock *h) { headstr *p = h->headings; DEBUG(("out_heading() start\n")); while (p != NULL) { /* Deal with normal heading/footing */ if (p->size > 0) { int descender = (4 * p->size)/10; out_yposition += p->b.spaceabove; if (out_yposition + descender > out_bbox[1]) out_bbox[1] = out_yposition + descender; if (out_yposition - p->size < out_bbox[3]) out_bbox[3] = out_yposition - p->size; out_headfootline(p); out_yposition += p->space; } /* Deal with a drawing. The drawing code is set up for use on staves; hence we must set up out_stave as well as the origin. We set out_stave negative to control error messages. */ else if (p->size < 0) { draw_ox = draw_oy = 0; out_stave = -1; out_ystave = out_yposition; out_dodraw(p->a.drawing, p->b.args, FALSE); out_yposition += p->space; } /* Deal with PostScript heading/footing */ else ps_headfoot(p); /* Advance to next heading/footing */ p = p->next; } DEBUG(("out_heading() end\n")); } /************************************************* * Output a system * *************************************************/ /* Called from out_page() below. The system to be output is set in out_sysblock. Arguments: none Returns: nothing */ static void out_system(void) { snamestr **names = out_sysblock->stavenames; zcopystr *zcopy = curmovt->zcopy; int stave, lastystave; int leftbarx, rightbarx; DEBUG(("out_system() start\n")); out_zcopycount = 0; out_ystave = out_yposition; out_overdraw = NULL; /* Frequently used values */ out_bar = out_sysblock->barstart; out_laststave = curmovt->laststave; /* Make a copy of the continuation data - but see later for multiple stave zero copies. */ out_cont = misc_copycontstr(out_sysblock->cont, out_laststave, FALSE); /* Output the start-of-line matter on each stave, and at the same time compute the relative position of each stave. */ for (stave = 1; stave <= out_laststave; stave++) { DEBUG(("start of line matter for stave %d\n", stave)); out_depthvector[stave] = out_ystave - out_yposition; if (mac_teststave(out_sysblock->notsuspend, stave)) { stavestr *ss = curmovt->stavetable[stave]; snamestr *sname = (names==NULL)? NULL : names[stave]; /* Set current magnification */ mac_setstavesize(stave); /* Deal with stave name */ if (sname != NULL) { /* Deal with textual stave name */ if (sname->text != NULL) { int yoffset; int size = ((curmovt->fontsizes)->fontsize_text)[sname->offset]; int linedepth = size; int *matrix = ((curmovt->fontsizes)->fontmatrix_text)[sname->offset]; uschar *t = sname->text; if (matrix != NULL) memcpy(font_transform, matrix, 4*sizeof(int)); /* Find the middle point of the line(s) of text - for vertically centred text there is a fudge to get it in the middle of a brace. */ if ((sname->flags & snf_vcentre) != 0) { int gap = out_sysblock->stavespacing[stave]; int st = stave + 1; while (gap == 0 && mac_teststave(out_sysblock->notsuspend, stave)) gap = out_sysblock->stavespacing[st++]; yoffset = gap/2 - 8*main_stavemagn - 2000; } else yoffset = -8*main_stavemagn; /* Now adjust the offset according to the number of lines */ yoffset += (linedepth*4)/10 - ((sname->linecount - 1)*linedepth)/2; /* Now print the lines; if rotated, only one line, and we have to make further adjustments for the vertically centred case. */ if ((sname->flags & snf_vertical) != 0) { if ((sname->flags & snf_vcentre) != 0) yoffset += string_width(t, font_rm, size)/2 - 2000; font_rotate(90000); out_string(t, font_rm, size, out_sysblock->xjustify, out_ystave + yoffset, 0); } /* Horizontal labels */ else { int maxw = 0; uschar tt[256]; /* If both centre & right adjust flags are set, we need to find the length of the longest line of the text. Tedious, but there's no other way of doing it as far as I can see... */ if ((sname->flags & (snf_hcentre | snf_rightjust)) == (snf_hcentre | snf_rightjust)) { while (*t) { int w; int i = 0; while (*t != 0 && *t != '|') tt[i++] = *t++; tt[i] = 0; w = string_width(tt, font_rm, size); if (w > maxw) maxw = w; if (*t == '|') t++; } t = sname->text; /* Restore for printing */ } while (*t) { int i = 0; int adjust = 0; while (*t != 0 && *t != '|') tt[i++] = *t++; tt[i] = 0; if ((sname->flags & (snf_hcentre | snf_rightjust)) != 0) { int w = string_width(tt, font_rm, size); adjust = out_sysblock->startxposition - 6000 - w; if (curmovt->bracelist != NULL) adjust -= 6500; else if (curmovt->thinbracketlist != NULL) adjust -= 4000; if ((sname->flags & snf_hcentre) != 0) { if ((sname->flags & snf_rightjust) == 0) adjust /= 2; else adjust -= (maxw - w)/2; } } out_string(tt, font_rm, size, out_sysblock->xjustify + adjust, out_ystave + yoffset, 0); yoffset += linedepth; if (*t == '|') t++; } } font_reset(); } /* Deal with stave name drawing */ if (sname->drawing != NULL) { draw_ox = draw_oy = 0; out_stave = stave; out_dodraw(sname->drawing, sname->args, FALSE); } } /* No clefs, keys, etc. if the bar has no data, or if the stavelines value has the top bit set (for the old [percussion] action). */ if ((ss->barindex)[out_sysblock->barstart] != NULL) { if (ss->stavelines < 128) { out_writeclef(out_sysblock->startxposition + out_sysblock->xjustify + (curmovt->startline)->clefspace, out_ystave, out_cont[stave].clef, 10000, FALSE); if ((out_sysblock->cont[stave]).key != 2) out_writekey(out_sysblock->keyxposition + out_sysblock->xjustify, out_ystave, out_cont[stave].clef, out_cont[stave].key); } if (mac_teststave(out_sysblock->showtimes, stave)) out_writetime(out_sysblock->timexposition + out_sysblock->xjustify, out_ystave, out_cont[stave].time); } /* Advance down to next stave */ out_ystave += out_sysblock->stavespacing[stave]; } } /* Compute the levels for copies of stave 0 that are to be printed. If two or more share a level (because of suspension), keep only the last (-1 => no print). Don't print one below the system depth. There will always be at least one block on the list. */ while (zcopy != NULL) { if (zcopy->stavenumber <= out_laststave) { zcopy->level = out_depthvector[zcopy->stavenumber]; if (zcopy->level > out_sysblock->systemdepth) zcopy->level = -1; else { zcopystr *zz = curmovt->zcopy; out_zcopycount++; while (zz != zcopy) { if (zz->level == zcopy->level) { zz->level = -1; out_zcopycount--; } zz = zz->next; } } } else zcopy->level = -1; zcopy = zcopy->next; } /* If we are outputting more than one copy of stave zero, we must set up private contstr pointers for each one. */ if (out_zcopycount > 1) { zcopy = curmovt->zcopy; while (zcopy != NULL) { if (zcopy->level >= 0) zcopy->cont = (struct contstr *) misc_copycontstr(out_sysblock->cont, 0, FALSE); zcopy = zcopy->next; } } /* Output the joining signs required at the left hand side of the system of staves, unless there is only one stave. */ if (out_sysblock->systemdepth > 0) { int bracketed[stave_bitvec_size]; int bar = out_bar; DEBUG(("joining signs\n")); /* If there is an indent set, do true lefthand joins if required. Then adjust the bar number to point to the one where the rest of the joins will appear. */ if (out_sysblock->joinxposition != out_sysblock->startxposition) { if (curmovt->startjoin) { out_joinxposition = out_sysblock->startxposition + out_sysblock->xjustify; out_dojoinsign(curmovt->joinlist, NULL, join_barline, bar_single, bar, NULL); out_dojoinsign(curmovt->joindottedlist, NULL, join_barline, bar_dotted, bar, NULL); } bar += curmovt->startbracketbar; } /* Set x position for all remaining signs */ out_joinxposition = out_sysblock->joinxposition + out_sysblock->xjustify; /* Deal with solid and dotted lines */ out_dojoinsign(curmovt->joinlist, NULL, join_barline, bar_single, bar, NULL); out_dojoinsign(curmovt->joindottedlist, NULL, join_barline, bar_dotted, bar, NULL); /* Deal with (thick) brackets; bracketed gets set to the bracketed staves */ out_dojoinsign(curmovt->bracketlist, NULL, join_bracket, 0, bar, bracketed); /* Deal with thin brackets */ out_dojoinsign(curmovt->thinbracketlist, bracketed, join_thinbracket, 0, bar, NULL); /* Deal with braces */ out_dojoinsign(curmovt->bracelist, bracketed, join_brace, 0, bar, NULL); } /* Now go through the bars, outputting all the staves for each in turn. */ out_prevtieflag = 0; out_startlinebar = TRUE; out_notex = out_sysblock->startxposition; /* for slurs ending at bar start */ out_barx = out_sysblock->firstnoteposition + out_sysblock->xjustify; /* start of bar position */ out_lastbarlinex = out_barx; /* for continued nth time marks */ out_lastbarwide = FALSE; for (;;) { out_bar = out_setbar(); out_barx = out_lastbarlinex + out_sysblock->barlinewidth; if (out_bar > out_sysblock->barend) break; out_startlinebar = FALSE; out_notex = out_lastbarlinex; /* for slurs ending at bar start */ } /* Output a key or time change at line end if required, adjusting the position for a non-stretched barline. */ if ((out_sysblock->flags & sysblock_warn) != 0) { out_barx += curmovt->barlinespace - out_sysblock->barlinewidth; out_warnbar(); } /* Free the main cont data structure and any copies that have been set up for multiple stave zeros. */ misc_freecontstr(out_cont, out_laststave); if (out_zcopycount > 1) { zcopy = curmovt->zcopy; while (zcopy != NULL) { if (zcopy->level >= 0) misc_freecontstr((contstr *)zcopy->cont, 0); zcopy = zcopy->next; } } /* Now we know the final x position, we can output the staves. Nothing is output for stave 0, as it is always overprinted. Also, nothing is output for a stave with "omitempty" set, as it deals with its own stave lines. */ out_ystave = out_yposition; lastystave = -1; leftbarx = out_sysblock->startxposition + out_sysblock->xjustify; rightbarx = out_lastbarlinex; if (rightbarx > leftbarx) for (stave = 1; stave <= out_laststave; stave++) { DEBUG(("lines for stave %d\n", stave)); if (mac_teststave(out_sysblock->notsuspend, stave)) { if (out_ystave != lastystave) { stavestr *ss = curmovt->stavetable[stave]; if (!ss->omitempty && ss->stavelines > 0) { mac_setstavesize(stave); ps_stave(leftbarx, out_ystave, rightbarx, ss->stavelines & 127); lastystave = out_ystave; } } out_ystave += out_sysblock->stavespacing[stave]; } } /* If any drawing items have been saved up for execution after the stave lines have been drawn, do them now. */ while (out_overdraw != NULL) { overdrawstr *this = out_overdraw; out_overdraw = this->next; if (this->texttype) { memcpy(font_transform, this->d.t.matrix, 4*sizeof(int)); out_string(this->d.t.text, font_rm, this->d.t.fontsize, this->d.t.xx, this->d.t.yy, this->d.t.boxring); font_reset(); } else { int *v = &(this->d.g.data[0]); ps_setgray(this->d.g.gray); out_ystave = this->d.g.ystave; ps_path(v, v+this->d.g.count, v + 2*this->d.g.count, this->d.g.linewidth); store_free(this); ps_setgray(0); } } DEBUG(("out_system() end\n")); } /************************************************* * Top-level entry point for outputting a page * *************************************************/ /* The first sysblock of the page is set in out_sysblock, and the remainder are chained on. Arguments: none Return: nothing */ void out_page(void) { BOOL lastwasheading = FALSE; int topspace = curpage->topspace; DEBUG(("out_page() start\n")); /* Initialize bounding box - note in y-downwards coordinates */ out_bbox[0] = BIGNUMBER; out_bbox[2] = 0; out_bbox[1] = 0; out_bbox[3] = BIGNUMBER; /* Initialize for outputting the music */ ps_setgray(0); ps_setdash(0, 0, caj_butt); out_sysblock = curpage->sysblocks; out_yposition = out_drawstackptr = 0; font_reset(); /* Output any heading and any systems. Note that we must insert a stave's gap (plus one) between the last heading line and the first system (to account for the system depth). Note also that we insert the topspace *after* pageheadings, but *before* non-page headings. */ while (out_sysblock != NULL) { movtstr *oldmovt = curmovt; /* Call the output device (PostScript) function on change of movement; this allows, for example, a change of margin. */ curmovt = format_movt = out_sysblock->movt; if (curmovt != oldmovt) ps_newmovt(); /* Deal with a heading */ if (out_sysblock->type == sh_heading) { out_bar = 0; main_stavemagn = 1000; if (!((headblock *)out_sysblock)->pageheading) { out_yposition += topspace; topspace = 0; } out_heading((headblock *)out_sysblock); lastwasheading = TRUE; } /* Deal with a system */ else { if (lastwasheading) out_yposition += 17000; out_yposition += topspace; topspace = 0; if (out_yposition - 48000 < out_bbox[3]) out_bbox[3] = out_yposition - 48000; if (out_yposition + out_sysblock->systemdepth + 32000 > out_bbox[1]) out_bbox[1] = out_yposition + out_sysblock->systemdepth + 32000; out_system(); if (out_sysblock->xjustify - 10000 < out_bbox[0]) out_bbox[0] = out_sysblock->xjustify - 10000; if (out_lastbarlinex + 4000 > out_bbox[2]) out_bbox[2] = out_lastbarlinex + 4000; if ((out_sysblock->flags & sysblock_noadvance) == 0) out_yposition += out_sysblock->systemdepth + out_sysblock->systemgap; lastwasheading = FALSE; } out_sysblock = out_sysblock->next; } /* Deal with any footings */ if (curpage->footing != NULL) { out_bar = 0; main_stavemagn = 1000; out_yposition = main_pagelength + 20000000/main_magnification; out_heading(curpage->footing); } DEBUG(("out_page() end\n")); } /* End of out1.c */ pmw-4.27/src/tables.c0000644000222100022210000007212112247665016012560 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2013 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: March 2013 */ /* This file contains all the major tables used by the program; a few that are used in one module only are kept with that module. */ #include "pmwhdr.h" #include "readhdr.h" #include "outhdr.h" /************************************************* * Tables for UTF-8 support * *************************************************/ /* These are the breakpoints for different numbers of bytes in a UTF-8 character. */ const int utf8_table1[] = { 0x7f, 0x7ff, 0xffff, 0x1fffff, 0x3ffffff, 0x7fffffff}; /* These are the indicator bits and the mask for the data bits to set in the first byte of a character, indexed by the number of additional bytes. */ const int utf8_table2[] = { 0, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc}; const int utf8_table3[] = { 0xff, 0x1f, 0x0f, 0x07, 0x03, 0x01}; /* Table of the number of extra characters, indexed by the first character masked with 0x3f. The highest number for a valid UTF-8 character is in fact 0x3d. */ const uschar utf8_table4[] = { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 3,3,3,3,3,3,3,3,4,4,4,4,5,5,5,5 }; /************************************************* * Miscellaneous * *************************************************/ int main_bit[] = { 0x00000001, 0x00000002, 0x00000004, 0x00000008, 0x00000010, 0x00000020, 0x00000040, 0x00000080, 0x00000100, 0x00000200, 0x00000400, 0x00000800, 0x00001000, 0x00002000, 0x00004000, 0x00008000, 0x00010000, 0x00020000, 0x00040000, 0x00080000, 0x00100000, 0x00200000, 0x00400000, 0x00800000, 0x01000000, 0x02000000, 0x04000000, 0x08000000, 0x10000000, 0x20000000, 0x40000000, 0x80000000}; /* Font identification strings. This table must be lengthened if more than 12 extra faces are allowed. */ uschar *font_IdStrings[] = { US"rm", US"it", US"bf", US"bi", US"sy", US"mf", US"mf", US"xf1", US"xf2", US"xf3", US"xf4", US"xf5", US"xf6", US"xf7", US"xf8", US"xf9", US"xf10", US"xf11", US"xf12" }; /* Key signatures table giving number of sharps or flats */ int main_keysigtable[] = { /* a b c d e f g */ 3, 5, 0, 2, 4, -1, 1, /* major keys */ -100, -100, 7, -100, -100, 6, -100, /* sharpened */ -4, -2, -7, -5, -3, -100, -6, /* flattened */ 0, 2, -3, -1, 1, -4, -2, /* minor keys */ 7, -100, 4, 6, -100, 3, 5, /* sharpened */ -7, -5, -100, -100, -6, -100, -100 /* flattened */ }; /* Table giving the order of sharps and flats in key signatures, for different clefs (real clefs only). */ int main_sharporder[] = { L_5L,L_3S,L_5S,L_4L,L_2S,L_4S,L_3L, /* treble clef */ L_2S,L_1L,L_3L,L_1S,L_3S,L_2L,L_4L, /* soprano clef */ L_3S,L_2L,L_4L,L_2S,L_4S,L_3L,L_5L, /* mezzo clef */ L_4S,L_3L,L_5L,L_3S,L_2L,L_4L,L_2S, /* alto clef */ L_2L,L_4L,L_2S,L_4S,L_3L,L_5L,L_3S, /* tenor clef */ L_3L,L_1S,L_3S,L_2L,L_0S,L_2S,L_4S, /* Cbaritone clef */ L_3L,L_1S,L_3S,L_2L,L_0S,L_2S,L_4S, /* (F)baritone clef */ L_4L,L_2S,L_4S,L_3L,L_1S,L_3S,L_2L, /* bass clef */ L_5L,L_3S,L_5S,L_4L,L_2S,L_4S,L_3L}; /* deepbass clef */ int main_flatorder[] = { L_3L,L_4S,L_2S,L_4L,L_2L,L_3S,L_1S, /* treble clef */ L_4L,L_2L,L_3S,L_1S,L_3L,L_1L,L_2S, /* soprano clef */ L_1S,L_3L,L_1L,L_2S,L_4L,L_2L,L_3S, /* mezzo clef */ L_2S,L_4L,L_2L,L_3S,L_1S,L_3L,L_1L, /* alto clef */ L_3S,L_5L,L_3L,L_4S,L_2S,L_4L,L_2L, /* tenor clef */ L_4S,L_2S,L_4L,L_2L,L_3S,L_1S,L_3L, /* Cbaritone clef */ L_4S,L_2S,L_4L,L_2L,L_3S,L_1S,L_3L, /* (F)baritone clef */ L_2L,L_3S,L_1S,L_3L,L_1L,L_2S,L_0S, /* bass clef */ L_3L,L_4S,L_2S,L_4L,L_2L,L_3S,L_1S}; /* deepbass clef */ /* Table giving offsets into above for all the clefs */ int main_clefoffset[] = { 0, /* treble */ 7, /* soprano */ 14, /* mezzo */ 21, /* alto */ 28, /* tenor */ 35, /* Cbaritone */ 42, /* (F)baritone */ 49, /* bass */ 56, /* deepbass */ 0, /* hclef */ 0, /* none */ 0, /* trebledescant */ 0, /* trebletenor */ 0, /* trebletenorB */ 49, /* soprabass */ 49 }; /* contrabass */ /* Table of clef types. This is used by the clefwidth directive for altering the table of widths in the movement structure. It indicates which entries in the table are for which kinds of clef shape. */ int main_cleftypes[] = { clef_treble, clef_alto, clef_alto, clef_alto, clef_alto, clef_alto, clef_bass, clef_bass, clef_bass, clef_h, clef_none, clef_treble, clef_treble, clef_treble, clef_bass, clef_bass }; /* Table of pitch values for the seven note names */ uschar read_basicpitch[] = { 9, 11, 0, 2, 4, 5, 7 }; /* Table giving pitch increments/decrements indexed by accidental number. The values are kept with 2 added so that they will fit into the baraccs tables as bytes. The first value shouldn't be used (it represents "no accidental"), but set it as a natural just in case. */ /* - ## $ $$ % # */ uschar read_accpitch[] = { 2, 4, 1, 0, 2, 3 }; /* Table giving musical characters for accidental numbers, in order as above. */ int out_acctable[] = { 0, mc_dsharp, mc_flat, mc_dflat, mc_natural, mc_sharp, 0, mc_rdsharp, mc_rflat, mc_rdflat, mc_rnatural, mc_rsharp, 0, mc_sdsharp, mc_sflat, mc_sdflat, mc_snatural, mc_ssharp, /* Half-accidental versions, style 0; no doubles or naturals */ 0, 0, mc_hflat1, 0, 0, mc_hsharp1, 0, 0, mc_hrflat1, 0, 0, mc_hrsharp1, 0, 0, mc_hsflat1, 0, 0, mc_hssharp1, /* Half-accidental versions, style 1; no doubles or naturals */ 0, 0, mc_hflat2, 0, 0, mc_hsharp2, 0, 0, mc_hrflat2, 0, 0, mc_hrsharp2, 0, 0, mc_hsflat2, 0, 0, mc_hssharp2}; /* Default point sizes of heading texts */ int read_headingsizes[] = { 17000, 12000, 10000, 8000 }; /* Tables for accent and ornament decoding. The values of the or_xx variables are all less than 256, whereas the flag bits defined by the af_xx variables are all greater. The ordering of strings that start with the same character is important! */ accent accent_chars[] = { { US"..", af_staccatiss }, { US".", af_staccato }, { US"-", af_bar }, { US">", af_gt }, { US"v", af_wedge }, { US"V", af_tp }, { US"d", af_down }, { US"u", af_up }, { US"o", af_ring }, { US"'", af_vline }, { US"!", af_opposite }, { US"///", or_trem3 }, { US"//", or_trem2 }, { US"/", or_trem1 }, { US"~~|", or_dmord }, { US"~~", or_dimord }, { US"~|", or_mord }, { US"~", or_imord }, { US"aru", or_arpu }, { US"ard", or_arpd }, { US"ar", or_arp }, { US"sp", or_spread }, { US"tr#", or_trsh }, { US"tr$", or_trfl }, { US"tr%", or_trnat }, { US"tr", or_tr }, { US"t|", or_iturn }, { US"t", or_turn }, { US"f", or_ferm }, { NULL, 0} }; /* This table lists the accents in user numerical order, for a, followed by af_opposite for the "accent on opposite side" flag, which must be last. */ unsigned int accent_list[] = { 0, af_staccato, af_bar, af_gt, af_wedge, af_tp, af_down, af_up, af_ring, af_vline, af_staccatiss, af_opposite }; /* Movement values for music-font chars that just do movement, given at a 1-point font size */ int music_xmovement[] = { 0, 0, 0, -100, 100, -330, 0, 550, 0 }; int music_ymovement[] = { -100, -400, 400, 0, 0, 0, -200, 0, 200 }; /* Caesura strings */ uschar *main_caesurastrings[] = { US"V", US"\\\\" }; /* Characters for printing staves with different numbers of lines */ uschar out_stavechar10[] = { 0, 'G', 247, 248, 249, 'F', 250 }; uschar out_stavechar1[] = { 0, 'D', 169, 170, 171, 'C', 172 }; /* Top and bottom lines of staves */ int stave_tops[] = { 8000, 8000, 12000, 16000, 12000, 16000, 20000 }; int stave_bottoms[] = { 8000, 8000, 4000, 0, 0, 0, 0 }; /* Data for long rest bars; [0] is for general symbol, [2-8] for special symbols. */ int longrest_barwidths[] = { 50, 0, 30, 35, 30, 35, 35, 45, 40 }; int longrest_widths[] = { 30000, 0, 4000, 11500, 4000, 11500, 10700, 18200, 10700 }; /************************************************* * Structure for printing music chars * *************************************************/ /* The out_mfstr_ps table below converts from an idealized (virtual) "music font" into actual characters and positions in the real music font. The table contains pointers to mfstr structures, each of which contains an offset and a up to 4 music font characters packed into an unsigned int (i.e. a short string), also a chain pointer to another mfstr for further characters at a different offset if necessary. */ /* C clefs */ static mfstr alto = { NULL, 0, 0, '#' }; static mfstr cbaritone = { NULL, 0, 8000, '#' }; static mfstr mezzo = { NULL, 0, -4000, '#' }; static mfstr soprano = { NULL, 0, -8000, '#' }; static mfstr tenor = { NULL, 0, 4000, '#' }; /* Old-style C clefs */ static mfstr oldalto = { NULL, 0, 0, 175 }; static mfstr oldcbaritone = { NULL, 0, 8000, 175 }; static mfstr oldmezzo = { NULL, 0, -4000, 175 }; static mfstr oldsoprano = { NULL, 0, -8000, 175 }; static mfstr oldtenor = { NULL, 0, 4000, 175 }; /* Bass clefs, modern and old-style */ static mfstr bass = { NULL, 0, 0, '\"' }; static mfstr oldbass = { NULL, 0, 0, 174 }; static mfstr baritone = { NULL, 0, -4000, '\"' }; static mfstr oldbaritone = { NULL, 0, -4000, 174 }; static mfstr deepbass = { NULL, 0, 4000, '\"' }; static mfstr olddeepbass = { NULL, 0, 4000, 174 }; static mfstr cbp1 = { NULL, 2500, -6000, ']' }; static mfstr contrabass = { &cbp1, 0, 0, '\"' }; static mfstr oldcontrabass = { &cbp1, 0, 0, 174 }; static mfstr sbp1 = { NULL, 3500, 16500, ']' }; static mfstr soprabass = { &sbp1, 0, 0, '\"' }; static mfstr oldsoprabass = { &sbp1, 0, 0, 174 }; /* Treble clefs */ static mfstr treble = { NULL, 0, 0, '!' }; static mfstr ttp1 = { NULL, 4000, -12000, ']' }; static mfstr trebletenor = { &ttp1, 0, 0, '!' }; static mfstr ttp4 = { NULL, 9300, -12000, 158 }; static mfstr ttp3 = { &ttp4, 1000, -12000, 157 }; static mfstr ttp2 = { &ttp3, 4300, -12000, ']' }; static mfstr trebletenorB = { &ttp2, 0, 0, '!' }; static mfstr tdp1 = { NULL, 6000, 23000, ']' }; static mfstr trebledescant = { &tdp1, 0, 0, '!' }; /* Accidentals */ static mfstr natural = { NULL, 0, 0, '(' }; static mfstr sharp = { NULL, 0, 0, '%' }; static mfstr flat = { NULL, 0, 0, '\'' }; static mfstr doublesharp = { NULL, 0, 0, '&' }; static mfstr df1 = { NULL, 3900, 0, '\'' }; static mfstr doubleflat = { &df1, 0, 0, '\'' }; /* Round-bracketed accidentals */ static mfstr rnatural = { NULL, 0, 0, (142<<16)+('('<<8)+141 }; static mfstr rsharp = { NULL, 0, 0, (142<<16)+('%'<<8)+141 }; static mfstr rdsharp = { NULL, 0, 0, (142<<16)+('&'<<8)+141 }; static mfstr rf2 = { NULL, 8000,2000, 142 }; static mfstr rf1 = { &rf2, 3500, 0, '\'' }; static mfstr rflat = { &rf1, 0,2000, 141 }; static mfstr rdf3 = { NULL, 11900,2000, 142 }; static mfstr rdf2 = { &rdf3, 7400, 0, '\'' }; static mfstr rdf1 = { &rdf2, 3500, 0, '\'' }; static mfstr rdflat = { &rdf1, 0,2000, 141 }; /* Square-bracket accidentals */ static mfstr snatural = { NULL, 0, 0, (140<<16)+('('<<8)+139 }; static mfstr ssharp = { NULL, 0, 0, (140<<16)+('%'<<8)+139 }; static mfstr sdsharp = { NULL, 0, 0, (140<<16)+('&'<<8)+139 }; static mfstr sf2 = { NULL, 8000,2000, 140 }; static mfstr sf1 = { &sf2, 3500, 0, '\'' }; static mfstr sflat = { &sf1, 0,2000, 139 }; static mfstr sdf3 = { NULL, 11900,2000, 140 }; static mfstr sdf2 = { &sdf3, 7400, 0, '\'' }; static mfstr sdf1 = { &sdf2, 3500, 0, '\'' }; static mfstr sdflat = { &sdf1, 0,2000, 139 }; /* Half accidentals */ static mfstr halfsharp1 = { NULL, 0, 0, 189 }; static mfstr halfsharp2 = { NULL, 0, 0, 190 }; static mfstr halfflat1 = { NULL, 0, 0, 191 }; static mfstr halfflat2 = { NULL, 0, 0, 192 }; /* Round-bracketed half accidentals */ static mfstr hrsharp1 = { NULL, 0, 0, (142<<16)+(189<<8)+141 }; static mfstr hrsharp2 = { NULL, 0, 0, (142<<16)+(190<<8)+141 }; static mfstr hrf12 = { NULL, 8000, 2000, 142 }; static mfstr hrf11 = { &hrf12, 3500, 0, 191 }; static mfstr hrflat1 = { &hrf11, 0, 2000, 141 }; static mfstr hrf22 = { NULL, 8000, 2000, 142 }; static mfstr hrf21 = { &hrf22, 3500, 0, 192 }; static mfstr hrflat2 = { &hrf21, 0, 2000, 141 }; /* Square-bracketed half-accidentals */ static mfstr hssharp1 = { NULL, 0, 0, (140<<16)+(189<<8)+139 }; static mfstr hssharp2 = { NULL, 0, 0, (140<<16)+(190<<8)+139 }; static mfstr hsf12 = { NULL, 8000, 2000, 140 }; static mfstr hsf11 = { &hsf12, 3500, 0, 191 }; static mfstr hsflat1 = { &hsf11, 0, 2000, 139 }; static mfstr hsf22 = { NULL, 8000, 2000, 140 }; static mfstr hsf21 = { &hsf22, 3500, 0, 192 }; static mfstr hsflat2 = { &hsf21, 0, 2000, 139 }; /* Miscllaneous */ static mfstr common = { NULL, 0, 0, '^' }; static mfstr cut = { NULL, 0, 0, '_' }; static mfstr hclef = { NULL, 0, 0, 173 }; static mfstr longrest = { NULL, 0, 0, '0' }; /* This table is indexed by "virtual music font" character. These are defined as mc_xxx enums in outhdr.h and must be kept in step with this table. The order is arbitrary. */ mfstr *out_mftable_ps[] = { &treble, &trebletenor, &trebledescant, &bass, &contrabass, &soprabass, &cbaritone, &tenor, &alto, &mezzo, &soprano, &natural, &sharp, &doublesharp, &flat, &doubleflat, &rnatural, &rsharp, &rdsharp, &rflat, &rdflat, &snatural, &ssharp, &sdsharp, &sflat, &sdflat, &common, &cut, &longrest, &trebletenorB, &hclef, &baritone, &deepbass, &oldbass, &oldcontrabass, &oldsoprabass, &oldcbaritone, &oldtenor, &oldalto, &oldmezzo, &oldsoprano, &oldbaritone, &olddeepbass, &halfsharp1, &hrsharp1, &hssharp1, &halfsharp2, &hrsharp2, &hssharp2, &halfflat1, &hrflat1, &hsflat1, &halfflat2, &hrflat2, &hsflat2 }; /************************************************* * Movement initialization * *************************************************/ /* Accidental adjustments are initialized to zero */ static int init_accadjusts[8]; /* Accspacing is effectively the width of each accidental character, in order of height. The first entry in the table is unused; the offset relates to inverted notes. */ /* inv ## $ $$ % # */ static int init_accspacing[] = { 0, 5250, 4500, 8000, 4250, 5000 }; /* Stemswap level defaults to the third line. This table must be kept in stem with stave_bitvec_size. */ static int init_stemswaplevel[] = { P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L, P_3L}; /* Default note spacing */ int init_notespacing[] = { 30000, 30000, 22000, 16000, 12000, 10000, 10000, 10000 }; /* Default startline spacing */ static startlinestr init_startline = { 0, 0, 0, 0 }; /* Default font sizes at normal magnification; null pointers to stretch/shear matrices. */ static fontsizestr init_fontsizes = { 10000, /* music */ 7000, /* grace */ 7000, /* cue */ 5000, /* cuegrace */ 10000, /* clefs */ 10000, /* barno */ 9000, /* footnote */ 12000, /* rehearse */ 10000, /* triplet */ 10000, /* repno */ 10000, /* restct */ 10000, /* trill */ 10000, /* vertacc */ /* It doesn't seem possible in ANSI C to parameterize this initialization using MaxTextFont, so we must keep this in step with its value. */ { 10000, /* user font size 1 */ 10000, /* user font size 2 */ 10000, /* user font size 3 */ 10000, /* user font size 4 */ 10000, /* user font size 5 */ 10000, /* user font size 6 */ 10000, /* user font size 7 */ 10000, /* user font size 8 */ 10000, /* user font size 9 */ 10000, /* user font size 10 */ 10000, /* user font size 11 */ 10000, /* user font size 12 */ }, 11800, /* tsfont */ 10000, /* ulay */ 10000, /* olay */ 10000, /* fbass */ 10000, /* init */ /* Matrix pointers */ NULL, /* music */ NULL, /* grace */ NULL, /* cue */ NULL, /* cuegrace */ NULL, /* clefs */ NULL, /* footnote */ NULL, /* barno */ NULL, /* rehearse */ NULL, /* triplet */ NULL, /* repno */ NULL, /* restct */ NULL, /* trill */ NULL, /* vertacc */ /* It doesn't seem possible in ANSI C to parameterize this initialization using MaxTextFont, so we must keep this in step with its value. */ { NULL, /* user font size 1 */ NULL, /* user font size 2 */ NULL, /* user font size 3 */ NULL, /* user font size 4 */ NULL, /* user font size 5 */ NULL, /* user font size 6 */ NULL, /* user font size 7 */ NULL, /* user font size 8 */ NULL, /* user font size 9 */ NULL, /* user font size 10 */ NULL, /* user font size 11 */ NULL, /* user font size 12 */ }, NULL, /* tsfont */ NULL, /* ulay */ NULL, /* olay */ NULL, /* fbass */ NULL, /* init */ }; /* Default relative stave sizes, must keep in step with stave_bitvec_size */ int init_stavesizes[] = { 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000, 1000 }; /* Default relative stave volumes; must keep in step with stave_bitvec_size */ uschar init_play_volume[] = { 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15 }; /* Default midi channels; must keep in step with stave_bitvec_size */ uschar init_midi_channel[] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; /* Default midi forced pitch; must keep in step with stave_bitvec_size. Zero means use pitch of note (i.e. don't force). */ uschar init_midi_note[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; /* Default midi voice allocation to midi channels; 128 => don't set */ uschar init_midi_voice[] = { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 }; /* Default midi channel volumes */ uschar init_midi_volume[] = { 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15 }; /* Default stave zero copy block */ zcopystr init_zcopy = { NULL, NULL, 0, 0, 0, 1 }; /* Default stave_list item covering all staves */ static stave_list default_stave_list = { NULL, 1, BIGNUMBER }; /* Default values for the movement structure */ movtstr init_movtstr = { NULL, /* stavetable */ &init_fontsizes, /* fontsizes */ NULL, /* posvector */ &init_startline, /* startline */ &init_zcopy, /* zcopy */ NULL, /* bracelist - default is none */ &default_stave_list, /* bracketlist - default is all */ &default_stave_list, /* joinlist - default is all */ NULL, /* joindottedlist - default is none */ NULL, /* thinbracketlist - default is none */ NULL, /* footing */ NULL, /* heading */ NULL, /* lastfooting */ NULL, /* pagefooting */ NULL, /* pageheading */ NULL, /* play_changes */ NULL, /* barnovector */ US"-", /* hyphenstring */ US"\\mf\\\\136\\", /* trill string */ init_play_volume, /* play volumes */ init_midi_channel, /* midi channel for each stave */ init_midi_note, /* midi note forced for each stave */ init_midi_voice, /* voices for each MIDI channel */ init_midi_volume, /* volumes for each MIDI channel */ init_accadjusts, /* accadjusts */ init_accspacing, /* accspacing */ init_notespacing, /* notespacing */ NULL, /* layout */ NULL, /* midi_start */ NULL, /* play_tempo_changes */ init_stavesizes, /* stavesizes */ NULL, /* stave_ensure */ NULL, /* stave_spacing */ init_stemswaplevel, /* stemswaplevel */ 0, /* barcount */ 0, /* barlinesize */ 0x80000000, /* barlinespace */ 0, /* barlinestyle */ 0, /* barno_interval */ 0, /* barno_level */ 0, /* barno_textflags */ 0, /* baroffset */ 1800, /* beamdepth */ 5000, /* beamflaglength */ 0, /* botmargin */ 0, /* bracestyle */ 2300, /* breveledgerextra */ 0, /* caesurastyle */ 1000, /* clefsize */ 0, /* clefstyle */ 1200, /* dotspacefactor */ 0, /* endlinesluradjust */ 0, /* endlineslurstyle */ 0, /* endlinetieadjust */ 0, /* endlinetiestyle */ 0, /* extenderlevel */ font_rm, /* bar number font */ font_bf, /* long rest font */ font_rm, /* rehearsal marks font */ font_rm, /* repeat bar numbers font */ font_bf, /* time signature font */ font_rm, /* triplet font */ 4000, /* footnotesep */ { 6000,6000 }, /* gracespacing */ 0, /* gracestyle */ 0, /* hflatstyle */ 0, /* hsharpstyle */ 200, /* hairpinlinewidth */ 7000, /* hairpinwidth */ 50000, /* hyphenthreshold */ just_all, /* justify */ 2, /* key default = C major */ 0, /* keyspacing */ 0, /* laststave */ '=', /* ledger character */ -1, /* leftmargin */ -1, /* linelength */ 500, /* maxbarcount */ 310, /* maxbeamslope1 */ 330, /* maxbeamslope2 */ movt_default, /* movt_opt */ 11000, /* overlaydepth */ 120, /* play_tempo */ text_box, /* rehearsalstyle */ 0, /* repeatstyle */ 0, /* shorten (stems) */ 700, /* smallcapsize */ 0, /* startbracketbar */ stemswap_default, /* stemswaptype */ 44000, /* systemgap */ 0x00010404, /* time default = 1*4/4 */ 0, /* timespacing */ 10000, /* topmargin */ 0, /* totalnocount */ 0, /* transpose */ 300, /* tripletlinewidth */ 480000, /* truelinelength */ 11000, /* underlaydepth */ 0, /* underlaystyle */ { 0, 0 }, /* breakbarlines */ /*** must be kept in ***/ { -1, -1 }, /* staves */ /*** step with ***/ { 0, 0 }, /* suspend */ /*** stave_bitvec_size ***/ { 13, 15, 15, 15, 15, 15, 16, 16, 16, 15, 0, 13, 13, 13, 16, 16 }, /* clefwidths */ { 0, 0, 0, 0, 0, 0, 2000, 4000 }, /* tailadjusts */ FALSE, /* beamendrests */ FALSE, /* breverests */ TRUE, /* check */ TRUE, /* checkdoublebars */ FALSE, /* codemultirests */ TRUE, /* fullbarend */ FALSE, /* incipitjoin */ TRUE, /* keydoublebar */ TRUE, /* keywarn */ TRUE, /* showtime */ TRUE, /* showtimebase */ FALSE, /* tiesoverwarnings */ TRUE, /* timewarn */ FALSE, /* startnotime */ TRUE, /* spreadunderlay */ TRUE, /* underlayextenders */ FALSE, /* unfinished */ { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* playtranspose; must keep in */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* step with stave_bitvec_size */ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } }; /************************************************* * Bar item lengths table * *************************************************/ /* The length table is used for advancing the pointer through the packed list of structures. The lengths are rounded up to a whole number of pointers. On the Acorn, using Norcroft C, this was done by by the sizeof() operator, but it seems not to be the case with gcc. */ uschar length_table [] = { ROUND(sizeof(b_Endstr)), ROUND(sizeof(b_Jumpstr)), ROUND(sizeof(b_allstr)), ROUND(sizeof(b_barnumstr)), ROUND(sizeof(b_beamaccstr)), ROUND(sizeof(b_beambreakstr)), ROUND(sizeof(b_beambreak2str)), ROUND(sizeof(b_beamritstr)), ROUND(sizeof(b_bowingstr)), ROUND(sizeof(b_breakbarlinestr)), ROUND(sizeof(b_caesurastr)), ROUND(sizeof(b_chordstr)), ROUND(sizeof(b_clefstr)), ROUND(sizeof(b_commastr)), ROUND(sizeof(b_dbarstr)), ROUND(sizeof(b_dotbarstr)), ROUND(sizeof(b_dotrightstr)), ROUND(sizeof(b_drawstr)), ROUND(sizeof(b_dynmovestr)), ROUND(sizeof(b_ebarstr)), ROUND(sizeof(b_endpletstr)), ROUND(sizeof(b_endslurstr)), ROUND(sizeof(b_ensstr)), ROUND(sizeof(b_ensurestr)), ROUND(sizeof(b_footnotestr)), ROUND(sizeof(b_hairpinstr)), ROUND(sizeof(b_ibarstr)), ROUND(sizeof(b_justifystr)), ROUND(sizeof(b_keystr)), ROUND(sizeof(b_linegapstr)), ROUND(sizeof(b_lrepeatstr)), ROUND(sizeof(b_masqstr)), ROUND(sizeof(b_movestr)), ROUND(sizeof(b_namestr)), ROUND(sizeof(b_nbarstr)), ROUND(sizeof(b_newlinestr)), ROUND(sizeof(b_newpagestr)), ROUND(sizeof(b_nopackstr)), ROUND(sizeof(b_notestr)), ROUND(sizeof(b_noteheadsstr)), ROUND(sizeof(b_notesstr)), ROUND(sizeof(b_nsstr)), ROUND(sizeof(b_nsmstr)), ROUND(sizeof(b_offsetstr)), ROUND(sizeof(b_olevelstr)), ROUND(sizeof(b_olherestr)), ROUND(sizeof(b_ornamentstr)), ROUND(sizeof(b_pagestr)), ROUND(sizeof(b_pagebotsstr)), ROUND(sizeof(b_pagetopsstr)), ROUND(sizeof(b_playchangestr)), ROUND(sizeof(b_pletstr)), ROUND(sizeof(b_prevbarstr)), ROUND(sizeof(b_resetstr)), ROUND(sizeof(b_resumestr)), ROUND(sizeof(b_rrepeatstr)), ROUND(sizeof(b_setclefstr)), ROUND(sizeof(b_setkeystr)), ROUND(sizeof(b_settimestr)), ROUND(sizeof(b_sgstr)), ROUND(sizeof(b_sgstr)), ROUND(sizeof(b_slopestr)), ROUND(sizeof(b_slurstr)), ROUND(sizeof(b_linegapstr)), ROUND(sizeof(b_slurmodstr)), ROUND(sizeof(b_spacestr)), ROUND(sizeof(b_ssstr)), ROUND(sizeof(b_ssstr)), ROUND(sizeof(b_suspendstr)), ROUND(sizeof(b_textstr)), ROUND(sizeof(b_textXstr)), ROUND(sizeof(b_tickstr)), ROUND(sizeof(b_tiestr)), ROUND(sizeof(b_timestr)), ROUND(sizeof(b_tremolostr)), ROUND(sizeof(b_tripswstr)), ROUND(sizeof(b_ulevelstr)), ROUND(sizeof(b_ulherestr)), ROUND(sizeof(b_unbreakbarlinestr)), ROUND(sizeof(b_zcopystr)) }; /* End of tables.c */ pmw-4.27/src/main.c0000644000222100022210000005414512247665016012240 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2012 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: October 2013 */ /* This file contains initializing code, including the main program, which is the entry point to PMW. This comment is historical, left here for nostalgia purposes only: ------------------------------------------------------------------------------ PMW can be run in an windowing environment, or as a command-line program. The windowing environments are of course system-specific, but have the characteristic that they are event-driven. Thus in such an environment we hand over control to a system routine, and only get it back (if at all) when the program is finishing. For the moment, we are thinking only of the RISC OS environment, but writing as flexibly as possible, so that future ports are easier. ------------------------------------------------------------------------------ The future has arrived. This port of PMW for Unix-like systems runs only as a single command, processing a single input file (though that may include other files). Much of the old apparatus for the previous windowing version has been tidied away, but there are still a few quirks in the way the code works that hark back to the original, event-driven implementation. */ #include "rdargs.h" #include "pmwhdr.h" #include "outhdr.h" /* Keywords for the command line. If you increase the number of keys, make sure that the keyoffset field in rdargs.c is big enough. */ static char *arg_pattern = "," "a4ona3/s," "a4sideways/s," "a5ona4/s," "c/k/n," "debug/s," "dbl=drawbarlines/s," "dsl=drawstavelines/s," "dsb/k," "dtp/k/n," "duplex/s," "eps/s," "F/k," "f/k," "H/k," "-help=help/s," "includefont/s," "MF/k," "MP/k," "MV/k," "manualfeed/s," "midi/k," "mb=midibars/k," "mm=midimovement/k/n," "nr=norepeats/s," "nw=nowidechars/s," "o/k," "p/k," "pamphlet/s," "printadjust/k/2," "printgutter/k," "printscale/k," "printside/k/n," "reverse/s," "s/k," "t/k/n," "tumble/s," "-version=V/s," "v/s"; /* Offsets for command line keys */ enum { arg_aa_input, /* The only unkeyed possibility */ arg_a4ona3, arg_a4sideways, arg_a5ona4, arg_c, arg_debug, arg_drawbarlines, arg_drawstavelines, arg_dsb, arg_dtp, arg_duplex, arg_eps, arg_F, arg_f, arg_H, arg_help, arg_includefont, arg_MF, arg_MP, arg_MV, arg_manualfeed, arg_midi, arg_midibars, arg_midimovement, arg_norepeats, arg_nowidechars, arg_o, arg_p, arg_pamphlet, arg_printadjustx, arg_printadjusty, arg_printgutter, arg_printscale, arg_printside, arg_reverse, arg_s, arg_t, arg_tumble, arg_V, arg_v }; /* Parameters for debugging with -dsb option */ static int dsb_bar = -1; static int dsb_movement = -1; static int dsb_stave = -1; /************************************************* * Given help on command syntax * *************************************************/ static void givehelp(void) { printf("\nPMW version %s\n%s\n", version_string, copyright); printf("\n OPTIONS\n\n"); printf("-a4ona3 print A4 images 2-up on A3\n"); printf("-a5ona4 print A5 images 2-up on A4\n"); printf("-a4sideways assume A4 paper fed sideways\n"); printf("-c set number of copies\n"); printf("-debug write debugging info to stderr\n"); printf("-dbl synonym for -drawbarlines\n"); printf("-drawbarlines don't use characters for bar lines\n"); printf("-drawstavelines don't use characters for stave lines\n"); printf("-dsb ,, write debugging bar data (movement, stave, bar) \n"); printf("-dsl synonym for -drawstavelines\n"); printf("-dtp write debugging position data (-1 for all bars)\n"); printf("-duplex set duplex printing in the PostScript\n"); printf("-eps output encapsulated PostScript\n"); printf("-F specify fontmetrics directory\n"); printf("-f specify format name\n"); printf("-H specify PostScript header file\n"); printf("-help output this information\n"); printf("-includefont include PMW font in the output\n"); printf("-MF specify PostScript music fonts directory\n"); printf("-MP specify MIDIperc file\n"); printf("-MV specify MIDIvoices file\n"); printf("-manualfeed set manualfeed in the PostScript\n"); printf("-mb synonym for -midibars\n"); printf("-midi specify MIDI output file\n"); printf("-midibars limit MIDI output to given bar range\n"); printf("-midimovement specifies movement for MIDI output\n"); printf("-mm synonym for -midimovement\n"); #ifndef NO_PMWRC printf("-norc don't read .pmwrc (must be first option)\n"); #endif printf("-norepeats do not play repeats in MIDI output\n"); printf("-nowidechars don't use 100-point stave chars\n"); printf("-nr synonym for -norepeats\n"); printf("-nw synonym for -nowidechars\n"); printf("-o specify output file ('-' for stdout)\n"); printf("-p select pages\n"); printf("-pamphlet print pages in pamphlet order\n"); printf("-printadjust move on page by (x,y)\n"); printf("-printgutter move recto/verso pages by x/-x\n"); printf("-printscale scale the image by n\n"); printf("-printside print only odd or even sides\n"); printf("-reverse output pages in reverse order\n"); printf("-s select staves\n"); printf("-t set transposition\n"); printf("-tumble set tumble for duplex printing\n"); printf("-V output PMW version number\n"); printf("-v output verification information\n"); printf("\nDefault output is .ps when a file name is given.\n"); printf("Default output is stdout if no file name is given.\n"); printf("\n EXAMPLES\n\n"); printf("pmw myscore\n"); printf("pmw -s 1,2-4 -p 3,6-10,11 -f small -c 2 k491.pmw\n"); printf("pmw -pamphlet -a5ona4 scorefile\n"); printf("pmw -s 1 -midi zz.mid -mm 2 -mb 10-20 sonata\n"); } /************************************************* * Print routine for info display * *************************************************/ /* This could just be replaced by fprintf() to stderr nowadays, but we keep the separate function just in case in the future we want do so something else with all this output. The function is global because it is also called from setdraw.c to show the contents of the draw stack. Arguments: format a format ... data for the format Returns: nothing */ void info_printf(char *format, ...) { uschar buff[256]; va_list ap; va_start(ap, format); format_vsprintf(buff, format, ap); fprintf(stderr, "%s", CS buff); va_end(ap); } /************************************************* * Display information about music * *************************************************/ /* This function is called after pagination if the -v option is present. Arguments: none Returns: nothing */ static void display_info(void) { pagestr *p = main_pageanchor; int movt; int laststave = -1; int toppitch[max_stave+1]; int botpitch[max_stave+1]; int totalpitch[max_stave+1]; int notecount[max_stave+1]; info_printf("Data store used = "); if (main_storetotal < 10000) info_printf("%d", main_storetotal); else info_printf("%dK", main_storetotal/1024); info_printf(" (stave data "); if (main_storestaves < 10000) info_printf("%d", main_storestaves); else info_printf("%dK", main_storestaves/1024); info_printf(")\n"); /* Display information about the staves in each movement */ for (movt = 1; movt <= main_lastmovement; movt++) { int stave; movtstr *m = movement[movt]; info_printf("\nMOVEMENT %d\n\n", movt); for (stave = 0; stave <= m->laststave; stave++) { stavestr *s = (m->stavetable)[stave]; if (s == NULL) continue; /* skips stave 0 if not there */ info_printf("Stave %2d: ", stave); if (m->totalnocount == 0) info_printf("%d bar%s", s->lastbar, (s->lastbar == 1)? "":"s"); else info_printf("%d(+%d) bars", s->lastbar - m->totalnocount, m->totalnocount); if (stave > laststave) { laststave = stave; toppitch[stave] = -1; botpitch[stave] = 9999; notecount[stave] = totalpitch[stave] = 0; } if (s->notecount > 0) { info_printf(";%s range %P to %P average %P", (s->lastbar == 1)? " ":"", s->botpitch, s->toppitch, s->totalpitch/s->notecount); if (s->toppitch > toppitch[stave]) toppitch[stave] = s->toppitch; if (s->botpitch < botpitch[stave]) botpitch[stave] = s->botpitch; totalpitch[stave] += s->totalpitch; notecount[stave] += s->notecount; } info_printf("\n"); } } /* If there is more than one movement, display overall information for each stave. */ if (main_lastmovement > 1) { int stave; info_printf("\nOVERALL\n\n"); for (stave = 1; stave <= laststave; stave++) { info_printf("Stave %2d: ", stave); if (notecount[stave] > 0) info_printf("range %P to %P average %P", botpitch[stave], toppitch[stave], totalpitch[stave]/notecount[stave]); info_printf("\n"); } } /* Now display information about the page layout */ if (p != NULL) info_printf("\nPAGE LAYOUT\n\n"); while (p != NULL) { int count = 14; sysblock *s = p->sysblocks; info_printf("Page %d bars: ", p->number); while (s != NULL) { if (s->type == sh_system) { format_movt = s->movt; if (count > 65) { info_printf("\n "); count = 1; } info_printf("%b-%b%s ", s->barstart, s->barend, (s->flags & sysblock_stretch)? "":"*"); count += 6; if (s->overrun < 30) { info_printf("(%d) ", s->overrun); count += 5; } } s = s->next; } info_printf("\n Space left on page = %f", p->spaceleft); if (p->overrun > 0 && p->overrun < 100000) info_printf(" Overrun = %f", p->overrun); info_printf("\n"); p = p->next; } } /************************************************* * Convert string to stave map * *************************************************/ /* The turns strings like "1,3,4-6,10" into a bitmap. For some reason gcc gives a weird warning if ss is used directly with strtol, even with the right casts. That's why I use another variable of type char *. Arguments: ss the string endptr where to return a pointer to the char after the last used map pointer to bitmap, held as ints Returns: nothing */ static void init_strtomap(uschar *ss, uschar **endptr, int *map) { long int i; char *sss = (char *)ss; *endptr = ss; mac_initstave(map, 0); while (isdigit(*sss)) { long int s = strtol(sss, &sss, 0); long int t = s; if (*sss == '-') { sss++; t = strtol(sss, &sss, 0); } if (t < s || t > max_stave) return; /* Not reached end will give error */ for (i = s; i <= t; i++) mac_setstave(map, i); while (*sss == ',' || *sss == ' ') sss++; } *endptr = US sss; } /************************************************* * Decode command line * *************************************************/ /* -V and -help act immediately; otherwise the values from the command line options are place in appropriate global variables. Arguments: argc the (possibly modified) command line argc argv the (possibly modified) command line argv Returns: nothing */ static void decode_command(int argc, char **argv) { arg_result results[80]; int rc = rdargs(argc, argv, arg_pattern, results); if (rc != 0) error_moan(0, results[0].text, results[1].text); /* Hard */ /* Deal with -V */ if (results[arg_V].number != 0) { printf("PMW version %s\n%s\n", version_string, copyright); exit(EXIT_SUCCESS); } /* Deal with -help */ if (results[arg_help].number != 0) { givehelp(); exit(EXIT_SUCCESS); } /* Deal with verifying and debugging */ if (results[arg_v].number != 0) verify = TRUE; if (results[arg_debug].number != 0) { debug_file = stderr; debugging = TRUE; debug_printf("PMW run started\n"); } if (results[arg_dsb].text != NULL) { if (strspn(results[arg_dsb].text, "0123456789,") != strlen(results[arg_dsb].text)) error_moan(77); /* Hard */ switch (sscanf(results[arg_dsb].text, "%d,%d,%d", &dsb_movement, &dsb_stave, &dsb_bar)) { case 1: /* One value is a bar number */ dsb_bar = dsb_movement; dsb_movement = dsb_stave = 1; break; case 2: /* Two values are stave, bar */ dsb_bar = dsb_stave; dsb_stave = dsb_movement; dsb_movement = 1; break; case 3: /* Three values are movt, stave, bar */ break; default: error_moan(77); /* Hard */ break; } debug_file = stderr; } if (results[arg_dtp].presence != arg_present_not) { debug_file = stderr; main_tracepos = results[arg_dtp].number; } /* Deal with -from and -o */ if (results[arg_aa_input].text != NULL) arg_from_name = US results[arg_aa_input].text; if (results[arg_o].text != NULL) arg_to_name = US results[arg_o].text; /* Deal with overriding music fonts, fontmetrics, and psheader, MIDIperc, and MIDIvoices files */ if (results[arg_F].text != NULL) font_metrics_extra = US results[arg_F].text; if (results[arg_H].text != NULL) ps_header = US results[arg_H].text; if (results[arg_MF].text != NULL) ps_fontdir_extra = US results[arg_MF].text; if (results[arg_MP].text != NULL) midi_perc = US results[arg_MP].text; if (results[arg_MV].text != NULL) midi_voices = US results[arg_MV].text; /* Deal with MIDI output */ if (results[arg_midi].text != NULL) midi_filename = US results[arg_midi].text; if (results[arg_midibars].text != NULL) { uschar *endptr; play_startbar = Ustrtoul(results[arg_midibars].text, &endptr, 10); if (*endptr == 0) play_endbar = play_startbar; else { if (*endptr++ != '-') error_moan(123); /* Hard error */ play_endbar = Ustrtoul(endptr, &endptr, 10); if (*endptr != 0) error_moan(123); /* Hard error */ } } if (results[arg_midimovement].presence != arg_present_not) play_movt_number = results[arg_midimovement].number; /* Some BOOL options */ if (results[arg_norepeats].number != 0) play_repeats = FALSE; if (results[arg_nowidechars].number != 0) stave_use_widechars = FALSE; if (results[arg_drawstavelines].number != 0) stave_use_draw = TRUE; if (results[arg_drawbarlines].number != 0) bar_use_draw = TRUE; /* Deal with stave selection */ if (results[arg_s].text != NULL) { uschar *endptr; init_strtomap(US results[arg_s].text, &endptr, main_staves); mac_setstave(main_staves, 0); if (*endptr != 0) error_moan(74); /* Hard error */ } /* Deal with page selection */ if (results[arg_p].text != NULL) { uschar *s = US results[arg_p].text; stave_list *p; stave_list **pp = &output_pagelist; while (*s) { int first, last, n; int count = sscanf(CS s, "%d%n-%d%n", &first, &n, &last, &n); if (count == 0) error_moan(75); else /* Hard error */ { p = malloc(sizeof(stave_list)); p->first = first; if (count == 1) p->last = first; else { if (first > last) error_moan(76); /* Hard error */ else p->last = last; } p->next = NULL; *pp = p; pp = &(p->next); } s += n; if (*s == ',') s++; } } /* Deal with transposition */ if (results[arg_t].presence != arg_present_not) main_transpose = results[arg_t].number; /* Deal with format */ if (results[arg_f].text != NULL) { int i; uschar *f = US results[arg_f].text; main_format = malloc(sizeof(f) + 1); for (i = 0; i <= Ustrlen(f); i++) main_format[i] = tolower(f[i]); } /* Deal with copies */ if (results[arg_c].presence != arg_present_not) output_copies = results[arg_c].number; /* Deal with a number of printing configuration options */ if (results[arg_reverse].number != 0) print_reverse = TRUE; if (results[arg_a4sideways].number != 0) print_pagefeed = pc_a4sideways; if (results[arg_a4ona3].number != 0) print_imposition = pc_a4ona3; if (results[arg_a5ona4].number != 0) print_imposition = pc_a5ona4; if (results[arg_includefont].number != 0) output_includefont = TRUE; if (results[arg_manualfeed].number != 0) output_manualfeed = TRUE; if (results[arg_duplex].number != 0) output_duplex = TRUE; if (results[arg_tumble].number != 0) output_tumble = TRUE; if (results[arg_pamphlet].number != 0) print_pamphlet = TRUE; if (results[arg_eps].number != 0) print_imposition = pc_EPS; if (results[arg_printadjustx].text != NULL) { float d; sscanf(results[arg_printadjustx].text, "%g", &d); print_image_xadjust = (int)(1000.0 * d); } if (results[arg_printadjusty].text != NULL) { float d; sscanf(results[arg_printadjusty].text, "%g", &d); print_image_yadjust = (int)(1000.0 * d); } if (results[arg_printgutter].text != NULL) { float d; sscanf(results[arg_printgutter].text, "%g", &d); print_gutter = (int)(1000.0 * d); } if (results[arg_printscale].text != NULL) { float d; sscanf(results[arg_printscale].text, "%g", &d); print_magnification = (int)(1000.0 * d); if (print_magnification == 0) error_moan(11); /* Hard */ } if (results[arg_printside].presence != arg_present_not) { int n = results[arg_printside].number; if (n == 1) print_side2 = FALSE; else if (n == 2) print_side1 = FALSE; else error_moan(66); /* Hard */ } } /************************************************* * Entry Point * *************************************************/ int main(int argc, char **argv) { int newargc; char **newargv; uschar to_buffer[256]; verify = FALSE; ps_file = stdout; font_metrics_default = US FONTMETRICS; font_metrics_extra = NULL; ps_fontdir_default = US FONTDIR; ps_fontdir_extra = NULL; ps_header = US PSHEADER; midi_voices = US MIDIVOICES; midi_perc = US MIDIPERC; version_init(); font_List = malloc(max_fonts * sizeof(fontstr)); font_table = malloc(font_tablen * sizeof(int)); beam_stemadjusts = malloc(max_beamsize); movement = malloc((main_max_movements+1) * sizeof(movtstr *)); /* Decode the (possibly modified) command line. */ newargc = init_command(argc, argv, &newargv, arg_pattern); decode_command(newargc, newargv); if (verify) { fprintf(stderr, "PMW version %s\n", version_string); main_shownlogo = TRUE; } /* Set up default fonts */ font_init(); /* Initialize MIDI data */ read_midi_translation(&midi_voicenames, midi_voices); read_midi_translation(&midi_percnames, midi_perc); /* Initialization done */ main_initialized = TRUE; /* Sort out the input file, and possibly the name of the output file. If no input file is supplied, read stdin. Output is to stdout (default) unless overridden by -o (arg_to_name will be set). */ if (arg_from_name == NULL) { input_file = stdin; } else { main_filename = arg_from_name; input_file = Ufopen(main_filename, "r"); if (input_file == NULL) { error_moan(4, main_filename, strerror(errno)); return rc_disaster; } if (arg_to_name == NULL) { uschar *p; arg_to_name = to_buffer; Ustrcpy(arg_to_name, arg_from_name); p = arg_to_name + Ustrlen(arg_to_name); while (p > arg_to_name && p[-1] != '.' && p[-1] != '/') p--; if (p > arg_to_name && p[-1] == '.') p[-1] = 0; Ustrcat(arg_to_name, ".ps"); } } /* Read the file */ if (verify) fprintf(stderr, "Reading ...\n"); read_start(); read_go(); if (main_rc > rc_warning) return main_rc; /* Output debugging if requested */ if (dsb_movement > 0) debug_showbar(dsb_movement, dsb_stave, dsb_bar); /* Do the typesetting */ if (verify) fprintf(stderr, "Paginating ...\n"); paginate_go(); if (main_rc > rc_warning) return main_rc; /* Show pagination information if verifying */ if (verify) display_info(); /* If a file name other than "-" is set for the output, open it. Otherwise we'll be writing to stdout. */ if (arg_to_name != NULL && Ustrcmp(arg_to_name, "-") != 0) { if (verify) fprintf(stderr, "\nWriting PostScript file \"%s\" ...\n", arg_to_name); ps_file = Ufopen(arg_to_name, "w"); if (ps_file == NULL) { error_moan(4, arg_to_name, strerror(errno)); return main_rc; } } else if (verify) fprintf(stderr, "\nWriting Postscript to stdout ...\n"); /* Set up for printing, and go for it */ print_lastpage = main_lastpage; if (print_pamphlet) print_lastpage = (print_lastpage + 3) & (-4); /* This diagram shows the computed values and the positions where the origin can go in each case. In practice we take the upper value where there are two possibilities. ------------ Sideways ------------- | ------------ Upright ----------- ----- 1-up ----- ----- 2-up ----- | ---- 1-up ---- ---- 2-up ---- Port Land Port Land | Port Land Port Land x------ ------- ------- ---x--- | ----- x---- x---- ----- | 0 | | 4 | | 2 | | 6 | | | | | | | | | | ------x x------ x------ ---x--- | | 1 | | 5 | | 3 | x 7 | | | | | | | | | | | x---- ----- ----x ----- */ print_pageorigin = ((print_pagefeed == pc_a4sideways)? 0 : 1) + ((print_imposition == -1)? 0 : 2) + (opt_landscape? 4 : 0); ps_go(); if (ps_file != stdout) fclose(ps_file); /* Output warning if coupled staves were not spaced by a multiple of 4 */ if (error_111) error_moan(111); /* Write MIDI output if required */ if (midi_filename != NULL) { if (verify) fprintf(stderr, "Writing MIDI file \"%s\" ...\n", midi_filename); midi_write(); } if (verify) fprintf(stderr, "PMW done\n"); return main_rc; } /* End of main.c */ pmw-4.27/src/possubs.c0000644000222100022210000003533212247665016013007 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2013 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: March 2013 */ /* This file contains subroutines called by the code for creating a position table for a bar. */ #include "pmwhdr.h" #include "pagehdr.h" #include "poshdr.h" /************************************************* * Make space for non-note * *************************************************/ /* In fact, this is used for grace notes as well. The musical offset supplied is always negative. We have to check whether a position for the auxiliary item already exists, and if so, to adjust its place if necessary. The yield is the new value for this position. The "here" flag determines whether the item can be put to the left of the current position if there is space. Arguments: previous pointer to postable entry for the previous position, or NULL this pointer to current postable entry auxoffset offset for the non-note item (always negative) Rwidth width for the item used here TRUE if Returns: pointer to the postable entry after "this" */ static workposstr * pos_insertXpos(workposstr *previous, workposstr *this, int auxoffset, int Rwidth, int used, BOOL here) { workposstr *aux = NULL; Rwidth = mac_muldiv(Rwidth, main_stavemagn, 1000); /* See if any auxiliaries exist, and remember if this one */ if (this > page_postable) { workposstr *t = this - 1; if (t->auxid != 0) { while (t->auxid != 0 && t >= page_postable) { aux = t; t--; } } } /* If there are no auxiliaries, the space available is the sum from the previous position (if any) to this position. If previously existing auxiliaries are to the right of this one, the same thing applies. We can do a straight insert with an appropriate offset in both cases. */ if (aux == NULL || auxoffset < aux->auxid) { workposstr *t; workposstr *insertpoint = (aux == NULL)? this : aux; for (t = page_posptr; t >= insertpoint; t--) /* Move up to make space */ memcpy(t+1, t, sizeof(workposstr)); page_posptr++; /* increase the end */ this++; /* for yielding */ aux = insertpoint++; insertpoint->space = 0; /* leave space on the new insert */ aux->moff = this->moff + auxoffset; aux->auxid = auxoffset; /* identifies the aux */ aux->posstaves = page_stave; /* flags which stave */ if (here) aux->xoff = insertpoint->xoff; else { int avail = 0; if (previous != NULL) { workposstr *t = previous + 1; while (t <= aux) avail += (t++)->xoff; } avail -= Rwidth + used; if (avail < 0) insertpoint->xoff -= avail; aux->xoff = insertpoint->xoff - Rwidth; } insertpoint->xoff = Rwidth; } /* Either there are auxiliaries to the left of this one, or this one already exists. */ else { workposstr *insertpoint = aux; while (insertpoint != this) { if (insertpoint->auxid >= auxoffset) break; insertpoint++; } /* If this auxiliary already exists, test that there is enough space between it and the previous note. This works because we process the auxiliaries for one note from right to left. In the case of accidentals, we must adjust the space by the difference between this accidental's requirements and whatever is already there. */ if (insertpoint->auxid == auxoffset) { int avail = 0; workposstr *next = insertpoint + 1; workposstr *t = (previous == NULL)? page_postable : previous + 1; while (t <= insertpoint) avail += (t++)->xoff; /* For non-accidentals, check that there is enough space to the right, and increase if necessary. */ if (auxoffset != posx_acc) { if (Rwidth > next->xoff) next->xoff = Rwidth; } /* For accidentals, all we need to do is check that there is enough space on the left, since accidental printing doesn't actually use the calculated position - chords need several positions, for a start. */ else avail += next->xoff - Rwidth; /* If there is insufficient space, move *all* the auxiliaries to the right. */ avail -= used; if (avail < 0) aux->xoff -= avail; /* Flag which staves */ insertpoint->posstaves |= page_stave; } /* If this auxiliary does not exist, we must insert it. See if there is space on *all* staves between the first auxiliary and the previous note position. If there is, we can move those auxiliaries to the left of this one to the left. */ else { workposstr *t; workposstr *new = insertpoint; for (t = page_posptr; t >= insertpoint; t--) /* Move up to make a space */ memcpy(t+1, t, sizeof(workposstr)); page_posptr++; /* list is one longer now */ this++; /* for yielding */ insertpoint++; new->space = 0; new->moff = this->moff + auxoffset; new->auxid = auxoffset; /* identifies the aux */ new->posstaves = page_stave; /* flag which stave */ /* Distance from previous aux is its standard distance */ new->xoff = insertpoint->xoff; insertpoint->xoff = Rwidth; if (!here) { int avail = aux->xoff - Rwidth - used; if (avail > -Rwidth) aux->xoff -= (avail < 0)? Rwidth + avail : Rwidth; } } } return this; } /************************************************* * Insert non-note items * *************************************************/ /* This function is called to insert entries into the postable for non-note things such as accidentals and other markings. Arguments: moff music offset for the note xflags flags for various marks (comma, caesura, etc) accleft width required for accidental keyvector timevector gracevector previous pointer to the previous position item prevlength prevflags Returns: pointer to final inserted item */ workposstr * pos_insertextras(int moff, int xflags, int accleft, int *keyvector, int *timevector, int *gracevector, workposstr *previous, int prevlength, int prevflags) { workposstr *this; int rrepeatextra = 0; int used; int i; /* Find the postable entry for this note */ this = (previous == NULL)? page_postable : previous; while (this->moff < moff) this++; /* Now process the auxiliary items, in order from right to left. This makes it possible to do the best thing when more than one exists on a single note. They may come out of order when on different notes, and in this case the spacing may not be as perfect. But the likelihood is pretty rare. They are given conventional "musical offsets" that are just prior to that of the note they precede. First handle accidentals. Because these are much more common than anything else, it's worth a special test to avoid the rest of the procedure if there's nothing else to do. Note that "this" might already be pointing at an accidental entry -- so that extra space isn't inserted after it. Preserve this state of affairs. We compute "used" here specially, with a different default to the rest. */ if (accleft > 0) { used = (prevlength < 0)? 0 : pos_typewidth(7250, prevlength, prevflags); this = pos_insertXpos(previous, this, posx_acc, accleft, used, FALSE); if (xflags == 0) return this; } /* Insert positions for grace notes. This is messy. We give the widths as including the accidental widths so as to space them out correctly, but then we have to go back afterwards and correct the positions. We also have to take special action if there are already grace notes at this position, in case the accidentals are different (rare). "Used" also gets a special value for grace notes. */ if (gracevector[0] > 0) { int lastspacing = curmovt->gracespacing[0]; int first = 0; workposstr *pp = this; workposstr *p = this - 1; if (this >= page_posptr) lastspacing += ((xflags & xf_rrepeat) == 0)? 4000 : 8000; used = (prevlength < 0)? 0 : pos_typewidth(7250, prevlength, prevflags); /* As we process them from right to left, any new ones will be inserted first. When we get to pre-existing ones, save where to stop the moving scan, and instead just check existing widths. */ for (i = gracevector[0]; i >= 1; i--) { int id = posx_gracefirst + i - 1; if (pp == page_postable || p->auxid != id) { this = pos_insertXpos(previous, this, id, ((i == gracevector[0])? lastspacing : curmovt->gracespacing[1]) + gracevector[i], used, FALSE); } else { int spacing = (p->xoff == 0)? 0 : curmovt->gracespacing[1]; /* When we hit what was the last (rightmost) gracenote, but is no longer, adjust the appropriate spacing, just in case the gracespacing values are different. This is the first of the pre-existing grace notes. Remember which it was. */ if (first == 0) { int adjust = curmovt->gracespacing[1] - curmovt->gracespacing[0]; (p+1)->xoff += adjust; first = i; } if (p->xoff < spacing + gracevector[i]) p->xoff = spacing + gracevector[i]; p--; pp--; } } /* Go back from right to left and adjust positions, starting at the first additional grace note, and stopping when we get to any that were there before. */ p = this - 1; while (p->auxid == posx_acc) p--; pp = p + 1; for (i = gracevector[0]; i > first; i--) { p->xoff += gracevector[i]; pp->xoff -= gracevector[i]; pp = p--; } } /* Compute the space used by the previous note, if any, for the rest of the items. */ used = (prevlength < 0)? 0 : pos_typewidth(11000, prevlength, prevflags); /* Time Signature(s) */ for (i = timevector[0]; i >= 1; i--) this = pos_insertXpos(previous, this, posx_timefirst + i - 1, timevector[i], used, FALSE); /* Key Signature(s) */ for (i = keyvector[0]; i >= 1; i--) this = pos_insertXpos(previous, this, posx_keyfirst + i - 1, keyvector[i], used, FALSE); /* Left repeat. Check whether it is going to print on a bar line, and if not, insert a position for it, unless it is going to coincide with a right repeat. If it is on a barline, set a flag so that space can be inserted. (Can't insert here, 'cause it will then do it several times for multiple staves.) */ if ((xflags & xf_lrepeat) != 0) { if (previous == NULL && !page_startlinebar && pos_bp->posxRL == -posx_RLleft) pos_barstartrepeat = TRUE; else if (previous != NULL && (xflags & xf_rrepeat) != 0) rrepeatextra = 6500; else this = pos_insertXpos(previous, this, -pos_bp->posxRL, 12500, used, TRUE); } if ((xflags & xf_clef) != 0) this = pos_insertXpos(previous, this, posx_clef, (14 * (curmovt->fontsizes)->fontsize_clefs)/10, used, FALSE); if ((xflags & xf_rrepeat) != 0) { int x = 7500; if (this == page_posptr) page_lastendwide = TRUE; else x += 5100; this = pos_insertXpos(previous, this, posx_RR, x+rrepeatextra, used, TRUE); } if ((xflags & xf_dotbar) != 0) this = pos_insertXpos(previous, this, posx_dotbar, 6000, used, FALSE); if ((xflags & xf_tick) != 0) this = pos_insertXpos(previous, this, posx_tick, 6000, used, FALSE); if ((xflags & xf_comma) != 0) this = pos_insertXpos(previous, this, posx_comma, 6000, used, FALSE); if ((xflags & xf_caesura) != 0) this = pos_insertXpos(previous, this, posx_caesura, 13000, used, FALSE); return this; /* return for next previous */ } /************************************************* * Calculate typographic width * *************************************************/ /* This procedure calculates the magnified typographic width for a note of given length, with given flags. For a chord, the flags should be the 'or' of those for all the notes. Arguments: used the basic minimum width for the note (unmagnified) length the note's musical length (identifies the note) flags the note's flags Returns: the valued of "used" plus the calculated width */ int pos_typewidth(int used, int length, int flags) { /* Invisible notes use nothing, breves and semibreves need some extra, as do freestanding upquavers (to allow for the tail on the right). */ if ((flags & nf_hidden) != 0) return 0; if (length >= len_breve) used += 3300; else if (length >= len_semibreve) used += 800; else if ((flags & nf_fuq) != 0) used += 5000; /* Extra width for chord with inverted note and stem up, and even more if dotted. */ if ( (flags & (nf_stemup|nf_invert)) == (nf_stemup|nf_invert) && used < 12400) { used = 12400; if ((flags & (nf_dot | nf_plus)) != 0) used += 2000; } /* Extra width for dots or plus */ if ((flags & nf_plus) != 0) used += 8000; else if ((flags & nf_dot) != 0) { used += 3000; if ((flags & nf_dot2) != 0) used += 3500; } /* Allow for magnification */ return mac_muldiv(used, main_stavemagn, 1000); } /************************************************* * Calculate horizontal width * *************************************************/ /* This procedure calculates the magnified basic horizontal width required for a note of a given musical length. Argument: the note's musical length Returns: the magnified width */ int pos_notewidth(int length) { int thislength = len_breve; int type = breve; int offset; while (length < thislength) { type++; thislength /= 2; } /* Notes shorter than a hemi-demi-semiquaver can only be created by triplets or the like. These are unlikely ever to occur. Just ensure something non-crashy happens. */ if (type > hdsquaver) { offset = 0; type = hdsquaver + 1; } else offset = page_nextdata->notespacing[type]; if (length != thislength) { int extra = length - thislength; if (extra == thislength/2) { offset = mac_muldiv(offset, curmovt->dotspacefactor, 1000); } else if (extra == (3*thislength)/4) offset = mac_muldiv(offset, 3*curmovt->dotspacefactor-1000, 2000); /* We have a triplet or similar. Breve triplets are rarer than hen's teeth, so fudge the "next note" spacing to make things work. We then set the offset as a pro rata amount between the relevant two kinds of note. */ else { int nextup = (type == breve)? (3*offset)/2 : page_nextdata->notespacing[type-1]; offset += mac_muldiv(nextup-offset, extra, thislength); } } /* When we are re-evaluating bar widths because a system is being squashed, it works best if the notewidths themselves are squashed at this point. The layout of the underlay can then be better computed. */ if (page_layout_stretchn < page_layout_stretchd) offset = mac_muldiv(offset, page_layout_stretchn, page_layout_stretchd); /* Now apply the magnification factor and return */ return mac_muldiv(offset, main_stavemagn, 1000); } /* End of possubs.c */ pmw-4.27/src/version.c0000644000222100022210000000206312247665016012771 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 2013 */ /* This file contains one function, which sets up the current version string, the version in binary for comparison, and the copyright string. The version string includes the date of compilation. It is a fiddly bit of code, but we want the string in a particular format. */ #include "pmwhdr.h" #define version 4270 /* In fixed-point format */ #define COPYRIGHT US"Copyright (c) Philip Hazel 2013" void version_init(void) { uschar today[20]; copyright = COPYRIGHT; Ustrcpy(today, __DATE__); if (today[4] == ' ') today[4] = '0'; today[3] = today[6] = '-'; version_fixed = version; format_sprintf(version_string, "%f%s (Built ", version, (version%1000 == 0)? ".00" : (version%100 == 0)? "0" : ""); Ustrncat(version_string, today + 4, 3); Ustrncat(version_string, today, 4); Ustrncat(version_string, today + 7, 4); Ustrcat(version_string, ")"); } /* End of version.c */ pmw-4.27/src/misc.c0000644000222100022210000011631112247665016012241 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2008 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: December 2008 */ /* This file contains code for miscellanous functions used when paginating, displaying and printing */ #include "pmwhdr.h" #include "outhdr.h" #include "pagehdr.h" /* Tables of accidental height/depths */ /* - ## $ $$ % # */ static int accdowntab[] = { 0, 0, 0, 0, 4000, 4000 }; static int accuptab[] = { 0, 0, 4000, 4000, 4000, 4000 }; /* Tables used by the ybound function */ static int accboundtable[] = { 4000, 0, 0, 4000, 0, -4000, -4000, 0 }; static int resttable[] = { 12000, 12000, 10000, 16000, 12000, 12000, 16000, 16000, 8000, 10000, 8000, 2000, 4000, 0, 0, -4000 }; /************************************************* * Convert character value to UTF-8 * *************************************************/ /* This function takes an integer value in the range 0 - 0x7fffffff and encodes it as a UTF-8 character in 0 to 6 bytes. Arguments: cvalue the character value buffer pointer to buffer for result - at least 6 bytes long Returns: number of characters placed in the buffer */ int misc_ord2utf8(int cvalue, uschar *buffer) { register int i, j; for (i = 0; i < 6; i++) if (cvalue <= utf8_table1[i]) break; buffer += i; for (j = i; j > 0; j--) { *buffer-- = 0x80 | (cvalue & 0x3f); cvalue >>= 6; } *buffer = utf8_table2[i] | cvalue; return i + 1; } /************************************************* * Return width of key signature * *************************************************/ /* This function checks for a special string for the key signature; otherwise it finds the number of accidentals in a key signature, and returns an appropriate printing width. In both cases this is the width for a 10-point stave (appropriate adjustment happens in the calling function when needed). Arguments: key the key signature clef the clef - used only to check for a special Returns: the printing width */ int misc_keywidth(int key, int clef) { pkeystr *pk; for (pk = main_printkey; pk != NULL; pk = pk->next) { if (key == pk->key && clef == pk->clef) break; } if (pk != NULL) { return string_width(pk->string, font_mf, 10000); } else { int n = main_keysigtable[key & 63]; return abs(n) * (curmovt->accspacing)[(key>63)? ac_natural : (n>0)?ac_sharp : ac_flat]; } } /************************************************* * Return width of time signature * *************************************************/ /* This function sets up the appropriate strings for a time signature and then returns the width of the longer one. Argument: the time signature Returns: the printing width */ int misc_timewidth(int ts) { ptimestr *pt = main_printtime; int *fontvector = (curmovt->fontsizes)->fontsize_text; int offsetn, offsetd, yieldn, yieldd; uschar vn[16]; uschar vd[16]; uschar *topstring = vn; uschar *botstring = vd; /* If not printing time signatures, return zero width */ if (!curmovt->showtime) return 0; /* First see if this time signature has special strings specified for its printing. */ while (pt != NULL) { if (pt->time == ts) break; pt = pt->next; } /* If found special case, get strings and sizes from it */ if (pt != NULL) { offsetn = pt->offsettop; offsetd = pt->offsetbot; topstring = pt->top; botstring = pt->bot; } /* Default printing for this time signature. First mask off the multiplier, then check for the special cases of C and A. */ else { ts &= 0xFFFF; /* C and A have a known width */ if (ts == time_common || ts == time_cut) return 7500; /* Non-special case - set up numerator and denominator, in the time signature font. */ sprintf(CS vn, "%d", ts >> 8); sprintf(CS vd, "%d", ts & 255); offsetn = offsetd = ff_offset_ts; } /* We now have in topstring and botstring two strings to print. The yield is the greater of the two lengths, except when only the numerator is to be printed. */ yieldn = string_width(topstring, font_bf, fontvector[offsetn]); if (!curmovt->showtimebase) return yieldn; yieldd = string_width(botstring, font_bf, fontvector[offsetd]); return (yieldn > yieldd)? yieldn : yieldd; } /************************************************* * Find next note item in a bar * *************************************************/ /* If the second argument is not null, we use it to return any ornament value. We always advance by at least one item. The initial item need not be a note. Take care in case it is a Jump or End. Arguments: p pointer to the current item orn if not NULL, return the ornament that preceded the note Returns: pointer to the next note item or NULL if there isn't one */ b_notestr * misc_nextnote(b_notestr *p, int *orn) { int type = p->type; if (type > b_Jump) /* Advance only if not b_Jump or b_End */ { p = (b_notestr *)((uschar *)p + length_table[p->type]); type = p->type; } for (;;) { switch(type) { case b_End: /* In the special case of beaming over */ if (!beam_overbeam) return NULL; /* a barline, continue past the end. */ break; /* There will always be another bar. */ case b_note: return p; case b_ornament: if (orn != NULL) *orn = ((b_ornamentstr *)p)->ornament; break; case b_Jump: p = (b_notestr *)(((b_Jumpstr *)p)->next); break; } p = (b_notestr *)((uschar *)p + length_table[type]); type = p->type; } return p; /* keep compiler happy - never obeyed */ } /************************************************* * Make copy of continued data structure * *************************************************/ /* This is called at the start of outputting a system. It remembers the parameters that are current at that point. At the start of a new system, incslur is passed as TRUE, causing the section numbers of slurs to be increased. (At the start of the first system, it is FALSE.) The result of the function is a pointer to a vector of contstr structures, one for each stave. Arguments: p pointer to the current contstr count the highest stave number that we need to save (can be 0) incslur when TRUE, increment the section number for each slur Returns: pointer to a vector of contstrs */ contstr * misc_copycontstr(contstr *p, int count, BOOL incslur) { int i; int len = (count+1)*sizeof(contstr); contstr *yield = store_Xget(len); contstr *q = yield; /* Set up a copy of the vector */ memcpy(q, p, len); /* For each member of the vector, copy the chained-on data blocks */ for (i = 0; i <= count; i++) { hairpinstr *h = p->hairpin; nbarstr *nb = p->nbar; nbarstr **nbprev = &(q->nbar); slurstr *s = p->slurs; slurstr **sprev = &(q->slurs); ulaystr *u = p->ulay; ulaystr **uprev = &(q->ulay); obeamstr *o = p->overbeam; /* Copy the hairpin structure */ if (h != NULL) { hairpinstr *hh = store_Xget(sizeof(hairpinstr)); hh[0] = h[0]; q->hairpin = hh; } /* Copy the overbeam structure */ if (o != NULL) { obeamstr *oo = store_Xget(sizeof(obeamstr)); oo[0] = o[0]; q->overbeam = oo; } /* Copy the nth time bar structures */ while (nb != NULL) { nbarstr *nbb = store_Xget(sizeof(nbarstr)); nbb[0] = nb[0]; *nbprev = nbb; nbprev = &(nbb->next); nb = nb->next; } *nbprev = NULL; /* Copy the chain of slur structures. Each one may contain a sub-chain of gap structures. Increment the section number for each slur when requested - this happens when moving to a new system. */ while (s != NULL) { slurstr *ss = store_Xget(sizeof(slurstr)); gapstr *g = s->gaps; gapstr **gprev = &(ss->gaps); if (incslur) s->section += 1; ss[0] = s[0]; while (g != NULL) { gapstr *gg = store_Xget(sizeof(gapstr)); gg[0] = g[0]; *gprev = gg; gprev = &(gg->next); g = g->next; } *gprev = NULL; *sprev = ss; sprev = &(ss->next); s = s->next; } *sprev = NULL; /* Copy the chain of ulay structures */ while (u != NULL) { ulaystr *uu = store_Xget(sizeof(ulaystr)); uu[0] = u[0]; *uprev = uu; uprev = &(uu->next); u = u->next; } *uprev = NULL; /* Advance to the next pair of vector entries */ p++; q++; } return yield; } /************************************************* * Free a continued data structure * *************************************************/ /* This is called at the end of outputting a system Arguments: p pointer to the contstr vector count number of staves saved Returns: nothing */ void misc_freecontstr(contstr *p, int count) { int i; contstr *q = p; /* For each member of the vector, free the chained-on data blocks */ for (i = 0; i <= count; i++) { hairpinstr *h = q->hairpin; nbarstr *nb = q->nbar; slurstr *s = q->slurs; ulaystr *u = q->ulay; obeamstr *b = q->overbeam; if (h != NULL) store_free(h); if (b != NULL) store_free(b); while (nb != NULL) { nbarstr *nbb = nb->next; store_free(nb); nb = nbb; } while (s != NULL) { slurstr *ss = s->next; gapstr *g = s->gaps; while (g != NULL) { gapstr *gg = g->next; store_free(g); g = gg; } store_free(s); s = ss; } while (u != NULL) { ulaystr *uu = u->next; store_free(u); u = uu; } /* Advance to the next vector entry */ q++; } store_free(p); } /************************************************* * Common actions on cont data * *************************************************/ /* Certain items require the same actions when encountered in the advance scan of each system by page_setcont() as when encountered while actually outputting a system. These actions are handled in this function. Argument: pointer to the item Returns: nothing */ void misc_commoncont(bstr *p) { switch(p->type) { /* Adjust bowing flags */ case b_bowing: bar_cont->flags &= ~cf_bowingabove; if (((b_bowingstr *)p)->value) bar_cont->flags |= cf_bowingabove; break; /* Set note head style */ case b_noteheads: { int style = ((b_noteheadsstr *)p)->value; if (style >= nh_only) bar_cont->flags |= cf_noteheads; else bar_cont->flags &= ~cf_noteheads; if (style != nh_only) bar_cont->noteheadstyle = style; } break; /* Switch notes on/off */ case b_notes: bar_cont->flags &= ~cf_notes; if (((b_notesstr *)p)->value) bar_cont->flags |= cf_notes; break; /* Switch triplets on/off */ case b_tripsw: bar_cont->flags &= ~cf_triplets; if (((b_tripswstr *)p)->value) bar_cont->flags |= cf_triplets; break; /* Set slope for next beam */ case b_slope: beam_forceslope = ((b_slopestr *)p)->value; break; } } /************************************************* * See if there is pending {und,ov}erlay * *************************************************/ /* These functions are called by page_setcont() below. Argument: nothing Returns: TRUE if there is pending underlay */ static BOOL pendulay(void) { ulaystr *u = bar_cont->ulay; while (u != NULL) { if (u->level < olay_offset) return TRUE; u = u->next; } return FALSE; } /* Argument: nothing Returns: TRUE if there is pending overlay */ static BOOL pendolay(void) { ulaystr *u = bar_cont->ulay; while (u != NULL) { if (u->level >= olay_offset) return TRUE; u = u->next; } return FALSE; } /************************************************* * Shorten stem of note if appropriate * *************************************************/ /* This function is called from page_setcont(). We have to flag the note and not do it twice, to cope with repeated bars. Arguments: p the note upflag TRUE if the stem is up Returns: nothing */ static void shorten_stem(b_notestr *tp, int upflag) { int shorten = 0; if (upflag) { if (tp->spitch > 136) shorten = 250*(tp->spitch - 136); } else { if (tp->spitch < 136) shorten = 250*(136 - tp->spitch); } if (shorten != 0 && (tp->flags & nf_shortened) == 0) { tp->yextra -= (shorten <= curmovt->shorten)? shorten : curmovt->shorten; tp->flags |= nf_shortened; } } /************************************************* * Advance cont data to end of system * *************************************************/ /* This is called when paginating, when the end of a system has been chosen. The working cont structure is in page_cont. A "snapshot" copy has been taken which represents the state at the start of the system. We must now advance through the system to get ready for the next snapshot. The system we are dealing with is in page_sysblock. This pass also handles changes of stave and system spacing, setting up new data blocks as necessary. It also handles changes of page number. While we are doing this, we can compute the tiecount values to go in the tie control blocks. We cannot do this when reading in, because we don't know the stem direction at the time the tie block is created. The count value is the number of ties that take the opposite stemflag to the note. We also have to do a lot of work if we encounter a beamed-over bar line at the end of a system. Arguments: none Returns: nothing */ void page_setcont(void) { BOOL hadssnext = FALSE; BOOL hadsshere = FALSE; int bar = 0; int stave; for (stave = 0; stave <= page_lastwanted; stave++) { if (mac_teststave(curmovt->staves, stave)) { BOOL no_ulay, no_olay; bar_cont = page_cont + stave; no_ulay = !pendulay(); no_olay = !pendolay(); for (bar = page_sysblock->barstart; bar <= page_sysblock->barend; bar++) { bstr *p = ((curmovt->stavetable)[stave])->barindex[bar]; if (p != NULL && p->type != b_End) { int moff = 0; int beammoff = 0; int lastAlevel = 0; /* Above level */ int lastBlevel = 0; /* Below level */ int type = p->type; int chordcount = 0; BOOL hadulay = FALSE; BOOL hadolay = FALSE; BOOL upflag = FALSE; b_notestr *beamfirst = NULL; beam_forceslope = BIGNUMBER; for (;;) { switch(type) { case b_Jump: p = (bstr *)(((b_Jumpstr *)p)->next); break; case b_End: if (((b_Endstr *)p)->overbeam && bar == page_sysblock->barend && beamfirst != NULL) /* We have a beam that may be carried over the end of a bar. We have to fudge up various values that will be set when the beam is drawn, in order to run setupbeam() so that we can find the beam's slope. This is preserved in the cont structure for use at the start of the system. */ { barposstr *bp = curmovt->posvector + bar; out_postable = out_posptr = bp->vector; out_poslast = out_postable + bp->count - 1; out_bar = bar; out_stave = stave; out_gracenotes = FALSE; out_grace_fudge = 0; out_sysblock = page_sysblock; beam_offsetadjust = 0; n_upflag = (beamfirst->flags & nf_stemup) != 0; n_upfactor = n_upflag? (+1):(-1); (void)out_setupbeam(beamfirst, beammoff, TRUE, FALSE); } break; case b_footnote: { headstr *h = &(((b_footnotestr *)p)->h); headstr *hh = h; headstr *lh = NULL; page_justifyheading(h); while (hh != NULL) { lh = hh; page_newfootnotedepth += hh->space; hh = hh->next; } if (page_newfootnotes == NULL) page_newfootnotes = h; else { page_lastnewfootnote->next = h; h->b.spaceabove = curmovt->footnotesep; } page_lastnewfootnote = lh; } break; case b_slur: (void)misc_setstartslur(p); break; case b_endslur: { slurstr *s = misc_getendslur(p); if (s == NULL) error_moan(62, ((b_endslurstr *)p)->id, bar, stave); else store_free(s); } break; case b_tie: { b_tiestr *pp = (b_tiestr *)p; bar_cont->tie = pp; if (pp->abovecount == 0 && pp->belowcount == 0) { if (upflag) pp->belowcount = (chordcount > 1)? chordcount/2 : 1; else pp->abovecount = (chordcount+1)/2; } if (pp->abovecount == 0 && pp->belowcount < chordcount) pp->abovecount = chordcount - pp->belowcount; else if (pp->belowcount == 0 && pp->abovecount < chordcount) pp->belowcount = chordcount - pp->abovecount; /* Allow for tie below on underlay level*/ if (lastBlevel != 0 && pp->belowcount > 0) { lastBlevel -= 3500; if (page_sysblock->ulevel[stave] > lastBlevel) page_sysblock->ulevel[stave] = lastBlevel; } /* Allow for tie above on overlay level*/ if (lastAlevel != 0 && pp->abovecount > 0) { lastAlevel += 3500; if (page_sysblock->olevel[stave] < lastAlevel) page_sysblock->olevel[stave] = lastAlevel; } } break; /* For notes/chords we calculate the {und,ov}erlay pitch, and also set flags for a possible subsequent tie. Skip rests, of course, and also skip the underlay calculation for notes that neither have their own text nor have an extender or hyphens under them (indicated by the existence of ulaystr data). Keep track of the last start-of-beam note, in case we are in an end-of-line bar with a continued beam. Handle automatic stem length adjustment. */ case b_note: bar_cont->tie = NULL; if (((b_notestr *)p)->spitch != 0) { b_notestr *tp = (b_notestr *)p; int flags = tp->flags; int acflags = tp->acflags; int apitch = tp->spitch; int bpitch = tp->spitch; int acc = tp->acc; int stemlength; if (tp->notetype >= quaver) { if (beamfirst == NULL) { beamfirst = tp; beammoff = moff; } } else { beamfirst = NULL; beam_forceslope = BIGNUMBER; } upflag = (flags & nf_stemup) != 0; if (curmovt->shorten && tp->length != 0) shorten_stem(tp, upflag); stemlength = tp->yextra; chordcount = 1; mac_advancechord(tp); while (tp->type == b_chord) { chordcount++; flags |= tp->flags; acflags |= tp->acflags; if (tp->spitch > apitch) { apitch = tp->spitch; acc = tp->acc; } if (tp->spitch < bpitch) { bpitch = tp->spitch; acc = tp->acc; } if (curmovt->shorten && tp->length != 0) shorten_stem(tp, upflag); if (abs(tp->yextra) > abs(stemlength)) stemlength = tp->yextra; mac_advancechord(tp); } /* Now do the underlay/overlay stuff */ lastAlevel = (apitch - 124)*1000 + ((!upflag || (flags & nf_stem) == 0)? (5*accuptab[acc])/4 : (14000 + stemlength)); lastBlevel = (bpitch - 129)*1000 - ((hadulay || no_ulay)? page_ulaysize : 4000) - ((upflag || (flags & nf_stem) == 0)? accdowntab[acc]/2 : (13000 + stemlength)); /* Allow for dynamics */ if ((acflags & af_dynamics) != 0) { int dynextraA = accboundtable[ (((acflags & af_opposite) == 0)? 0:1) + (upflag? 2:0)]; int dynextraB = accboundtable[4 + (((acflags & af_opposite) == 0)? 0:1) + (upflag? 2:0)]; lastAlevel += dynextraA; lastBlevel += dynextraB; /* That's all if no relevant accent, or the accent falls inside the staff; otherwise make sure the level is suitably outside the staff. */ if (dynextraA != 0 && (acflags & af_dynoutside) != 0) lastAlevel += dynextraA; /* these are bigger accents */ if (dynextraB != 0 && (acflags & af_dynoutside) != 0) lastBlevel += dynextraB; /* these are bigger accents */ } /* Impose {min,max}imum level and keep {high,low}est level for the line if appropriate */ if (lastAlevel < 20000) lastAlevel = 20000; if (lastBlevel > -page_ulaysize - 1000) lastBlevel = -page_ulaysize - 1000; if (no_olay || hadolay || pendolay()) { if (page_sysblock->olevel[stave] < lastAlevel) page_sysblock->olevel[stave] = lastAlevel; } if (no_ulay || hadulay || pendulay()) { if (page_sysblock->ulevel[stave] > lastBlevel) page_sysblock->ulevel[stave] = lastBlevel; } /* Turn off value if don't want tie noticed */ if (upflag && (flags & nf_stem) != 0) lastAlevel = 0; if (!upflag && (flags & nf_stem) != 0) lastBlevel = 0; } /* Deal with rests - kill any outstanding underlay block for extensions, but not for hyphens. */ else { ulaystr **uu = &(bar_cont->ulay); ulaystr *u = *uu; while (u != NULL) { if (u->type == '=') { *uu = u->next; store_free(u); } else uu = &(u->next); u = *uu; } lastAlevel = lastBlevel = 0; if (((b_notestr *)p)->notetype < quaver) beamfirst = NULL; } /* Notes and rests dealt with */ moff += ((b_notestr *)p)->length; hadulay = hadolay = FALSE; break; /* Deal with beam breaks */ case b_beambreak: beamfirst = NULL; beam_forceslope = BIGNUMBER; break; /* Deal with resets */ case b_reset: moff = 0; break; /* Create or delete hairpin pending blocks */ case b_hairpin: { b_hairpinstr *h = (b_hairpinstr *)p; if (h->opt == 0) { if (bar_cont->hairpin != NULL) { store_free(bar_cont->hairpin); bar_cont->hairpin = NULL; } } else out_setstarthairpin(h, 0); } break; /* For nth time bars we need only keep one block, since continued cases won't be printing the numbers. */ case b_nbar: if (bar_cont->nbar == NULL) { b_nbarstr *b = (b_nbarstr *)p; out_setstartnbar(b, 0, 0); } break; case b_all: if (bar_cont->nbar != NULL) { store_free(bar_cont->nbar); bar_cont->nbar = NULL; } break; case b_setclef: bar_cont->clef = ((b_setclefstr *)p)->value; break; case b_clef: bar_cont->clef = ((b_clefstr *)p)->trueclef; break; case b_settime: bar_cont->time = ((b_settimestr *)p)->value; break; case b_time: bar_cont->time = ((b_timestr *)p)->time; break; case b_setkey: bar_cont->key = ((b_setkeystr *)p)->value; break; case b_key: bar_cont->key = ((b_keystr *)p)->key; break; case b_sghere: /* immediate change of system gap */ { b_sgstr *pp = (b_sgstr *)p; int v = pp->value; if (pp->opt == '+') page_sysblock->systemgap += v; else page_sysblock->systemgap = v; } break; case b_sgnext: /* delayed change of system gap */ { b_sgstr *pp = (b_sgstr *)p; int v = pp->value; if (pp->opt == '+') page_sgnext += v; else page_sgnext = v; } break; case b_sshere: /* immediate change of stave spacing */ { b_ssstr *pp = (b_ssstr *)p; int s = pp->stave; int v = pp->value; if (!hadsshere) { page_sysblock->stavespacing = store_copy(page_sysblock->stavespacing); hadsshere = TRUE; } if (s == 0) { int i; for (i = 1; i < page_lastwanted; i++) { if (pp->opt == '+') page_sysblock->stavespacing[i] += v; else page_sysblock->stavespacing[i] = v; } } else if (pp->opt == '+') { page_sysblock->stavespacing[s] += v; if (page_ssehere != NULL) { int i; for (i = s+1; i <= curmovt->laststave; i++) { if (mac_teststave(page_sysblock->notsuspend, i)) { page_ssehere[i] += v; break; } } } } else page_sysblock->stavespacing[s] = v; } break; case b_ssnext: /* delayed change of stave spacing */ { b_ssstr *pp = (b_ssstr *)p; int s = pp->stave; int v = pp->value; if (!hadssnext) { page_ssnext = store_copy(page_ssnext); hadssnext = TRUE; } if (s == 0) { int i; for (i = 1; i < page_lastwanted; i++) { if (pp->opt == '+') page_ssnext[i] += v; else page_ssnext[i] = v; } } else if (pp->opt == '+') page_ssnext[s] += v; else page_ssnext[s] = v; } break; /* Changes to vertical justification and page positioning are put into system-specific variables, as it isn't known at the time to which page they will apply. Changes to horizontal justification are put directly into the justifyLR variable, as they apply to this system. */ case b_justify: { b_justifystr *pp = (b_justifystr *)p; int horiz = pp->side & (just_left|just_right); int vert = pp->side & (just_top|just_bottom); if (horiz) page_justifyLR = (pp->opt == '+')? (page_justifyLR | pp->side) : (page_justifyLR & ~pp->side); if (vert) { int oldjustify = (page_sys_justify == -1)? page_justify : page_sys_justify; page_sys_justify = (pp->opt == '+')? (oldjustify | pp->side) : (oldjustify & ~pp->side); } } break; case b_page: { b_pagestr *pg = (b_pagestr *)p; int value = pg->value; if (pg->relative == '+') value += curpage->number; if (value < curpage->number) error_moan(112, value, curpage->number, bar, stave); else curpage->number = value; } break; case b_pagebots: page_sys_botmargin = ((b_pagebotsstr *)p)->value; break; case b_pagetops: page_sys_topmargin = ((b_pagetopsstr *)p)->value; break; /* The only text we are interested in here is underlay; set up or remove continuation control blocks. */ case b_text: { b_textstr *t = (b_textstr *)p; if ((t->flags & text_ul) != 0 && (t->ulen != 1 || t->string[0] != '=')) { int c = t->string[t->ulen]; ulaystr **uu = &bar_cont->ulay; ulaystr *u = *uu; /* On hitting any {und,ov}erlay, clear the field and flag so that only relevant notes are counted. Flag the type for the next note. */ if ((t->flags & text_above) == 0) { hadulay = TRUE; if (no_ulay) { page_sysblock->ulevel[stave] = 0; no_ulay = FALSE; } } else { hadolay = TRUE; if (no_olay) { page_sysblock->olevel[stave] = 0; no_olay = FALSE; } } /* Find existing control block for this level */ while (u != NULL && u->level != t->ulevel) { uu = &u->next; u = *uu; } /* If control block needed, either carry on with this one or get a new one. */ if (c == '=' || c == '-') { if (u == NULL) { u = store_Xget(sizeof(ulaystr)); u->next = NULL; u->x = u->y = 0; u->level = t->ulevel; *uu = u; } u->type = c; u->htype = t->htype; } /* Else free an existing one */ else if (u != NULL) { *uu = u->next; store_free(u); } } } break; /* Handle changes of underlay level */ case b_ulevel: { b_ulevelstr *pp = (b_ulevelstr *)p; page_ulevel[stave] = (pp->opt)? BIGNUMBER : pp->value; } break; case b_ulhere: page_ulhere[stave] = ((b_ulherestr *)p)->value; break; /* Handle changes of overlay level */ case b_olevel: { b_olevelstr *pp = (b_olevelstr *)p; page_olevel[stave] = (pp->opt)? BIGNUMBER : pp->value; } break; case b_olhere: page_olhere[stave] = ((b_olherestr *)p)->value; break; /* Suspend sets flag for start of next system */ case b_suspend: mac_clearstave(page_accepteddata->notsuspend, stave); break; /* We must cope with resume following suspend in the same system. */ case b_resume: mac_setstave(page_accepteddata->notsuspend, stave); break; /* Actions that are common to this scan and to the output scan are held in a separate function. */ default: misc_commoncont(p); break; } if (type == b_End) break; p = (bstr *)((uschar *)p + length_table[type]); type = p->type; } } } } } /* At the end of a system we must check on the {und,ov}erlay continuation control blocks. For each stave that has such a block (or blocks) we must look at the next bar. If it does not exist, is emtpy, or starts with a rest, we must kill the continuation block(s) for extender lines. Don't do this for hyphen blocks - another syllable is always expected and there are odd cases when these do go over rests, etc. We have to use a GOTO to get out of a switch within a loop. In the same loop we can deal with {und,ov}erlay levels. */ for (stave = 0; stave <= page_lastwanted; stave++) { ulaystr **uu; ulaystr *u; bar_cont = page_cont + stave; if (mac_teststave(curmovt->staves, stave) && bar_cont->ulay != NULL) { if (bar <= curmovt->barcount) { bstr *p = ((curmovt->stavetable)[stave])->barindex[bar]; if (p != NULL && p->type != b_End) { int type = p->type; while (type != b_End) { switch(type) { case b_Jump: p = (bstr *)(((b_Jumpstr *)p)->next); break; case b_note: if (((b_notestr *)p)->spitch != 0) goto NOREMOVE; else goto REMOVE; } p = (bstr *)((uschar *)p + length_table[type]); type = p->type; } } } /* Remove the underlay blocks for extender lines. */ REMOVE: uu = &(bar_cont->ulay); u = *uu; while (u != NULL) { if (u->type == '=') { *uu = u->next; store_free(u); } else uu = &(u->next); u = *uu; } } NOREMOVE: /* Handle changes to {und,ov}erlay levels */ if (page_ulevel[stave] != BIGNUMBER) page_sysblock->ulevel[stave] = page_ulevel[stave]; page_sysblock->ulevel[stave] += page_ulhere[stave]; if (page_olevel[stave] != BIGNUMBER) page_sysblock->olevel[stave] = page_olevel[stave]; page_sysblock->olevel[stave] += page_olhere[stave]; } } /************************************************** * Compute bounding y value, with accents and ties * **************************************************/ /* The parameters of the note are in the n_* variables. The yield is a y value relative to the staff base, with positive values going upwards. At the notehead end of a note, it is one point away from the notehead. We calculate in stave-points. The dynflag variable request inclusion of *all* dynamics; otherwise include only those that go inside the stave (staccato, ring, bar). This call is used when printing those that go outside the stave. Arguments: below TRUE for the bottom bound, FALSE for the top bound tie a tiestr for the note, or NULL if not tied accflag TRUE if there's an accidental dynflag TRUE if there are dynamics Returns: the y value */ int misc_ybound(BOOL below, b_tiestr *tie, BOOL accflag, BOOL dynflag) { int yield; int extra = 0; int accextra = 0; int flags = n_flags; int acflags = n_acflags; /* If this is a rest, the only parameter of interest is the rest level */ if (n_pitch == 0) return n_restlevel + resttable[n_notetype + (below? 8:0)]; /* Deal with a note; first calculate additional length for stem, if any */ if ((flags & nf_stem) != 0) { extra = mac_muldiv(n_stemlength + 12000, n_fontsize, 10000); if (n_beamed) { extra += 1000; /* Extra for all but the first note of steep downward beams when stems are up. */ if (n_upflag && beam_slope < 0 && n_lastnote != beam_first) extra += 5*abs(beam_slope); } } /* The basic value takes account of the appropriate pitch and, if relevant, any accidental. We remember, in accextra, additional space added here. It will be taken away if there is subsequent space added for an accent. */ if (below) { if (n_upflag) { extra = accflag? accdowntab[n_lastacc] : 0; accextra = -extra; } else { if (accflag && extra == 0) { extra = accdowntab[n_firstacc]; accextra = -extra; } } if (extra == 0) { extra = 1000; accextra = -extra; } yield = (n_minpitch - 130)*1000 - extra; } else { if (n_upflag) { if (accflag && extra == 0) { extra = accuptab[n_firstacc]; accextra = extra; } } else { extra = accflag? accuptab[n_lastacc] : 0; accextra = extra; } if (extra == 0) { extra = 1000; accextra = extra; } yield = (n_maxpitch - 126)*1000 + extra; } /* Allow for ties */ if (tie != NULL) { if (below) { if (tie->belowcount > 0 && (n_upflag || (flags & nf_stem) == 0)) yield -= 4000; } else { if (tie->abovecount > 0 && (!n_upflag || (flags & nf_stem) == 0)) yield += 4000; } } /* Allow for dynamics. First of all, get rid of bowing marks if they are not relevant. */ if ((bar_cont->flags & cf_bowingabove) == 0) { if (!below) acflags &= ~(af_up | af_down); } else { if (below) acflags &= ~(af_up | af_down); } if ((acflags & af_dynamics) != 0 && (dynflag || (acflags & af_dyninside) != 0)) { int oppflag, dynextra; if ((acflags & (af_dynamics - af_up - af_down)) != 0) { oppflag = ((acflags & af_opposite) == 0)? 0:1; } else { if ((bar_cont->flags & cf_bowingabove) == 0) oppflag = n_upflag? 0:1; else oppflag = n_upflag? 1:0; } dynextra = accboundtable[oppflag + (n_upflag? 2:0) + (below? 4:0)]; /* If adding space for an accent, retract space for an accidental */ if (dynextra) yield += dynextra - accextra; /* That's all if no relevant accent, or the accent falls inside the staff; otherwise make sure the pitch is suitably outside the staff. */ if (dynextra != 0 && dynflag && (acflags & af_dynoutside) != 0) { yield += dynextra; /* these are bigger accents */ if (below) { if (yield > -10000) yield = -10000; } else if (yield < 22000) yield = 22000; } } return yield; } /* End of misc.c */ pmw-4.27/src/setnbar.c0000644000222100022210000000647712247665016012757 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2008 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: September 2008 */ /* This file contains code for outputting nth time bar markings */ #include "pmwhdr.h" #include "outhdr.h" #include "pagehdr.h" /************************************************* * Deal with start of nth time bar * *************************************************/ /* This function remembers the data for the start. Arguments: nb the data for the start x the x coordinate of the start miny minimum y coordinate - used to align multiple such markings Returns: nothing */ void out_setstartnbar(b_nbarstr *nb, int x, int miny) { nbarstr *nbb = store_Xget(sizeof(nbarstr)); nbb->next = NULL; nbb->nbar = nb; nbb->x = x; nbb->maxy = -BIGNUMBER; nbb->miny = miny; bar_cont->nbar = nbb; } /************************************************* * Free store for an nth time marking * *************************************************/ /* This frees all the remembered data. Arguments: none Returns: nothing */ void out_freenbar(void) { nbarstr *nb = bar_cont->nbar; while (nb != NULL) { nbarstr *next = nb->next; store_free(nb); nb = next; } bar_cont->nbar = NULL; } /************************************************* * Draw an nth time marking * *************************************************/ /* The yield is the unmagnified y level, which is set as a minimum for a subsequent marking. We don't free the data here, as sometimes nothing is drawn (e.g. when bar lines descend), so the freeing happens elsewhere. Arguments: rightjog TRUE if a right jog is required x1 the x coordinate of the end of the mark Returns: the y level */ int out_drawnbar(BOOL rightjog, int x1) { int x[4], y[4]; int n = 0; nbarstr *nb = bar_cont->nbar; b_nbarstr *b = nb->nbar; int yield; int x0 = nb->x; int yy = (nb->maxy > 18000)? nb->maxy + 11000 : 29000; /* Minimum y keeps it aligned with previous if this is not the first */ if (yy < nb->miny) yy = nb->miny; /* Add in manual adjustment and scale to stave */ yield = yy + b->y; yy = (yield * main_stavemagn)/1000; /* Sort out the left hand end at the start of a system */ if (x0 == 0) x0 = out_sysblock->firstnoteposition - 2000 + out_sysblock->xjustify; /* Start of a new iteration; set up for a jog and output the text(s) */ else { uschar buff[80]; uschar *p = buff; uschar *comma = US""; x0 += 1500 + b->x; x[n] = x0; y[n++] = yy - 10*main_stavemagn; while (nb != NULL) { b = nb->nbar; if (b->s == NULL) p += sprintf(CS p, "%s%d", comma, b->n); else p += sprintf(CS p, "%s%s", comma, b->s); comma = US", "; nb = nb->next; } out_string(buff, curmovt->font_repeat, mac_muldiv((curmovt->fontsizes)->fontsize_repno, main_stavemagn, 1000), x0 + 4000, out_ystave - yy + 9*main_stavemagn, 0); } /* Draw the lines and return the basic level */ x[n] = x0; y[n++] = yy; x[n] = x1; y[n++] = yy; if (rightjog) { x[n] = x1; y[n++] = yy - 10*main_stavemagn; } ps_lines(x, y, n, 400); return yield; } /* End of setnbar.c */ pmw-4.27/src/read6.c0000644000222100022210000005011012247665016012301 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2008 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: September 2008 */ /* This file contains part VI of the code for reading a PMW score file - routines for setting stem flags on notes and chords, and sorting chords. */ #include "pmwhdr.h" #include "readhdr.h" typedef struct { uschar pitch; uschar inverted; uschar acc; short int accleft; short int orig_accleft; } accstr; static uschar tuckoffset[] = { 100, 6, 6, 6, 8, 100, 100, 6, 6, 6, 6, 100 }; /* when bottom is a flat */ /************************************************* * Sort the notes in a chord * *************************************************/ /* For a chord, quite a lot of work must be done once the stem direction is known. We must sort the notes into the correct order, so that the first one is the one that gets the stems, we must arrange for certain notes to be printed on the "wrong" side of the stem, and we must arrange the positioning of any accidentals. If we are sorting the last chord that has been read, we must sort stave_tiedata along with it. We must NOT do this when sorting other chords (those that were stacked up). Arguments: w point to the first note of the chord upflag TRUE for stem up Returns: nothing */ void read_sortchord(b_notestr *w, int upflag) { int SecondsExist = FALSE; int dynamics = 0; int fuq = 0; int acc_count = 0; int acc_explicit = FALSE; b_notestr *ww; b_notestr *www = NULL; b_notestr *sorttop; b_notestr sortvec[max_chordsize]; tiedata *tt; tiedata sorttievec[max_chordsize]; sorttop = sortvec; /* End of list pointer */ ww = w; /* Working pointer */ ww->type = b_chord; /* Ensure all are flagged chord pro tem */ tt = stave_tiedata; /* Working tiedata pointer */ /* Get the notes of the chord into sortvec, in ascending order, by using a simple insertion (there won't be many of them). Collect the dynamics flags as we go, and set the stem direction flag on each note. */ while (ww->type == b_chord) { b_notestr *insertptr = sortvec; tiedata *tieinsertptr = sorttievec; int pitch = ww->spitch; int flags = ww->flags; int acflags = ww->acflags; if (ww->acc) acc_count++; if ((flags & nf_accleft) != 0) acc_explicit = TRUE; dynamics |= acflags & (af_dynamics | af_opposite); fuq |= flags & nf_fuq; ww->flags = upflag | (flags & ~(nf_dotright | nf_invert | nf_stemup)); ww->acflags = acflags & ~(af_dynamics | af_opposite); while (insertptr < sorttop) { if (pitch < insertptr->spitch) break; insertptr++; tieinsertptr++; } memmove(tieinsertptr+1, tieinsertptr, (sorttop-insertptr)*sizeof(tiedata)); *tieinsertptr = *tt++; memmove(insertptr+1, insertptr, (sorttop-insertptr)*sizeof(b_notestr)); *insertptr = *ww; sorttop++; mac_advancechord(ww); } /*********************/ #ifdef SORTCHORD ww = w; debug_printf("\n"); { b_notestr *p; for (p = sortvec; p < sorttop; p++) { debug_printf("%d %d %d %d\n", ww->acc, ww->spitch, p->acc, p->spitch); mac_advancechord(ww); } } #endif /*********************/ /* Now we can scan the sorted notes to see if any of them need to be printed with their heads on the "wrong" side of their stems. (The same logic works for stemless notes.) At the same time, force the flags for augmentation dots for notes forming intervals of a second. */ ww = sortvec; while (ww < sorttop - 1) { b_notestr *wwA = ww + 1; /* Check for an interval of a second. It doesn't count if one note is coupled and the other isn't. We can also cope with two notes at the same horizontal level (usually these will have different accidentals). */ if (wwA->spitch - ww->spitch <= P_1S - P_1L && (wwA->flags & nf_couple) == (ww->flags & nf_couple)) { BOOL samelevel = wwA->spitch == ww->spitch; int count = 1; int increment, i; b_notestr *wwB = wwA + 1; b_notestr *wwL; /* Find the number of successive seconds; if the one pair are actually at the same level, we can't handle any more. */ while (wwB < sorttop && wwB->spitch - wwA->spitch <= P_1S - P_1L && (wwB->flags & nf_couple) == (wwA->flags & nf_couple)) { if (wwB->spitch == wwA->spitch) samelevel = TRUE; count++; wwA = wwB++; } if (count > 1 && samelevel) error_moan(80); count = (count + 1)/2; /* number of pairs to consider */ /* Now process all the intervals, working up if the stem is up, and down if the stem is down. This ensures that the note at the end of the stem is on the normal side of the stem. */ if (upflag) { increment = 2; wwL = ww; } else { increment = -2; wwL = wwA - 1; } /* Loop through the pairs */ for (i = 0; i < count; i++) { b_notestr *wwH = wwL + 1; /* Flag higher note of a 2nd for inverting if stem up. Note that the note may not exist if there were an even number of intervals. */ if (upflag) { if (wwH < sorttop) wwH->flags |= nf_invert; } /* Flag lower note of a 2nd for inverting if stem down. Count this as an accidental, so as to cause accidental positioning to happen if there is at least one accidental on the chord. */ else if (wwL >= sortvec) { wwL->flags |= nf_invert; acc_count++; } /* Flag bottom note for dot lowering and top for not so, provided the notes exist. (The forcible removal is for the case of re-processing after failure to print on two sides of a beam.) However, if the upper one is already flagged for dot raising, don't do this. */ if ((wwH->flags & nf_highdot) == 0) { if (wwL >= sortvec) wwL->flags |= nf_lowdot; if (wwH < sorttop) wwH->flags &= ~nf_lowdot; } /* Advance to the next pair of notes */ wwL += increment; } /* Advance to check the rest of the chord */ ww = wwB; /* Note that intervals of a 2nd exist in this chord */ SecondsExist = TRUE; } /* This interval is not a second */ else ww = wwA; } /* If found any seconds, flag all the notes in the chord to print with any dots moved right if the stem is up. */ if (SecondsExist && upflag) { ww = sortvec; while (ww < sorttop) { ww->flags |= nf_dotright; ww++; } } /* Now we scan the chord to arrange the positioning of the accidentals. This is done by using a matrix of positions which are filled in as the chord is scanned from top to bottom. We do this only if there were no explicitly positioned accidentals anywhere in the chord and there is more than one accidental (or at least one accidental and one inverted note). */ if (!acc_explicit && acc_count > 1) { int state = 0; accstr a_matrix[max_chordsize]; accstr *row = a_matrix; accstr *a_end; /* First initialize the matrix, in descending order. Copy only those notes that have accidentals or inverted noteheads. */ for (ww = sorttop-1; ww >= sortvec; ww--) { int flags = ww->flags; if (ww->acc == 0 && (flags & nf_invert) == 0) continue; row->pitch = ww->spitch; if ((flags & nf_couple) != 0) row->pitch += ((flags & nf_coupleU) != 0)? 16 : -16; row->inverted = !upflag && ((flags & nf_invert) != 0); row->acc = ww->acc; row->accleft = row->orig_accleft = ww->accleft; row++; } a_end = row; /*********************/ #ifdef SORTCHORD debug_printf("Initialized matrix\n"); row = a_matrix; while (row < a_end) { debug_printf("%d %d %d %f %f\n", row->pitch, row->inverted, row->acc, row->accleft, row->orig_accleft); row++; } #endif /*********************/ /* Now scan from top to bottom and determine offset. This algorithm works in two states. In state 0, there is clear space above, while in state 1 there may be clashes. */ row = a_matrix; while (row < a_end) { accstr *nrow = row + 1; /* pointer to next row */ #ifdef SORTCHORD debug_printf("STATE=%d row->acc=%d\n", state, row->acc); #endif /* Deal with the case when all is clear above. If there is no accidental we just have an inverted note. */ /* ---- STATE = 0 ---- */ if (state == 0) { if (row->acc != 0) /* 0 => no accidental */ { /* If note is inverted, just position the accidental to clear it. Otherwise, search down for the next inversion and see if it is clear. */ if (row->inverted) row->accleft += 6000; else /* add for invert */ { accstr *nnrow = nrow; while (nnrow < a_end) { if (nnrow->inverted) { if ((row->pitch - nnrow->pitch) < ((row->acc <= ac_dflat)? 6:8)) { row->accleft += ((row->pitch - nnrow->pitch) <= 4)? ((row->acc <= ac_dflat)? 4500 : 6000) : 4500; } break; } nnrow++; } } } /* Change to state 1 if the next note is close enough */ if (nrow < a_end && (row->pitch - nrow->pitch) < ((row->acc <= ac_dflat)? 10:12)) state = 1; } /* ---- STATE = 1 ---- */ /* Deal with the case when not clear above. If there is no accidental we are at an inverted note. Accidentals above should have been positioned clear of it. We merely need to change state if we can. */ else if (row->acc == 0) { if (nrow < a_end && (row->pitch - nrow->pitch) >= 10) state = 0; } /* There is an accidental -- we have to scan up and move it clear of previous accidentals where necessary. There will always be at least one previous row, as we can't get into state 1 when row is pointing to a_matrix. */ else { int OK = FALSE; int offset = row->accleft; /* basic offset */ if (row->inverted) offset += 6000; /* plus extra if inverted note */ while (!OK) { accstr *prow = row - 1; /* previous row */ /* Loop, checking previous accidental positions for any overlap with the current accidental. */ for(;;) /* inner loop */ { int thistop = row->pitch + ((row->acc < ac_flat)? 3 : (row->acc > ac_dflat)? 6 : 7); int thatbot = prow->pitch - ((prow->acc < ac_natural)? 3 : 6); int thisleft = offset; int thisright = offset - row->orig_accleft; int thatleft = prow->accleft; int thatright = thatleft - prow->orig_accleft; #ifdef SORTCHORD debug_printf("thistop=%d thatbot=%d\n", thistop, thatbot); debug_printf("thisleft=%f thisright=%f\n", thisleft, thisright); debug_printf("thatleft=%f thatright=%f\n", thatleft, thatright); #endif if (thistop > thatbot && ((thatleft >= thisleft && thisleft > thatright) || (thatleft > thisright && thisright >= thatright))) /* There is an overlap. Adjust the offset and break from the inner loop with OK still set FALSE. This will cause a repeat of the outer loop to check the new position. Note we insert an extra quarter point over and above the specified width. */ { offset = thatleft + row->orig_accleft + 250; break; } /* We are clear of the accidental on the previous note, but need to check if we are clear of an inverted notehead. */ if (prow->inverted) { thatbot = prow->pitch - 2; thatleft = 4500; /* extra for notehead */ thatright = 0; if (thistop > thatbot && ((thatleft >= thisleft && thisleft > thatright) || (thatleft > thisright && thisright >= thatright))) { offset = thatleft + row->orig_accleft; break; } } /* Go back one more row; if no more, or if we have gone far enough, all is well, so break the inner loop with OK set TRUE. */ if (--prow < a_matrix || prow->pitch - row->pitch > ((prow->acc <= ac_dflat)? 10 : 12)) { OK = TRUE; break; } } /* If we have come out with OK set, we are clear above, but this ain't enough. If the offset is small, we must check that the accidental will clear any subsequent inverted notehead. */ if (OK && offset < row->orig_accleft + 4500) { accstr *nnrow = nrow; #ifdef SORTCHORD debug_printf("check invert below: offset=%f row->orig_accleft=%f\n", offset, row->orig_accleft); #endif while (nnrow < a_end) { if (nnrow->inverted) { if ((row->pitch - nnrow->pitch) < ((row->acc <= ac_dflat)? 6:10)) { offset = row->orig_accleft + ((row->pitch - nnrow->pitch <= 4)? ((row->acc <= ac_dflat)? 4500 : 6000) : 4500); OK = FALSE; /* unset OK so that the outer loops once more */ } break; } nnrow++; } } } /* End of while NOT OK loop */ /* We have now positioned the accidental successfully. Check to see whether the next note is far down, and if so, reset the state. */ row->accleft = offset; if (nrow < a_end && (row->pitch - nrow->pitch) >= ((row->acc <= ac_dflat)? 10 : 12)) state = 0; } /* Move on to next (accidentalized or inverted) note */ row++; } /* We now have the basic positioning, but there is still a little optimization that can be helpful. If a natural or a (double) flat is to the left of another natural or (double) flat that is a bit above, and there is nothing in the way to the right below, we can move the accidental (and everything below it) a bit right, to "tuck it in". This code does not cope with all cases, but it catches the most common. */ row = a_matrix; while (row < a_end) { if (row->accleft > row->orig_accleft + 250 && (row->acc == ac_flat || row->acc == ac_natural || row->acc == ac_dflat)) /* Check no inverted notes or rightwards accidentals here or below */ { int OK = TRUE; accstr *nrow = row; while (nrow < a_end) { if (nrow->inverted || nrow->accleft < row->accleft) { OK = FALSE; break; } nrow++; } /* If clear below, find the rightwards accidental above */ if (OK) { accstr *prow = row - 1; while (prow >= a_matrix) { int x; if (prow->pitch - row->pitch > 10) break; x = row->accleft - prow->accleft; if ( /* Check for the nearest rightwards accidental above */ (prow->acc != 0 && x > 0 && x < 10000) || /* Check if it's an inverted note just above */ (prow->inverted && row->accleft < 9500)) { int flatbottom = (row->acc == ac_flat)? 6 : 0; if (prow->pitch - row->pitch >= tuckoffset[prow->acc + flatbottom]) { accstr *xrow = row; while (xrow < a_end) { xrow->accleft = xrow->accleft - 2000; xrow++; } } break; } prow--; } } } /* Advance to check next accidental */ row++; } /*********************/ #ifdef SORTCHORD debug_printf("Modified matrix\n"); row = a_matrix; while (row < a_end) { debug_printf("%d %d %d %f %f\n", row->pitch, row->inverted, row->acc, row->accleft, row->orig_accleft); row++; } #endif /*********************/ /* Now set the information in the accleft byte */ row = a_matrix; for (ww = sorttop-1; ww >= sortvec; ww--) { int flags = ww->flags; if (ww->acc == 0 && (flags & nf_invert) == 0) continue; ww->accleft = (row++)->accleft; } } /* Now restore the data in the correct order -- ascending for stem down, and descending for stem up. Adjust stave_tiedata if we are dealing with the last-read chord. */ ww = w; tt = stave_tiedata; if (upflag) { b_notestr *wwP; tiedata *ttP = sorttievec + (sorttop - sortvec - 1); for (wwP = sorttop-1; wwP >= sortvec; wwP--) { *ww = *wwP; www = ww; /* save last */ mac_advancechord(ww); if (w == stave_firstnoteptr) *tt++ = *ttP--; } } else { b_notestr *wwP; tiedata *ttP = sorttievec; for (wwP = sortvec; wwP < sorttop; wwP++) { *ww = *wwP; www = ww; /* save last */ mac_advancechord(ww); if (w == stave_firstnoteptr) *tt++ = *ttP++; } } /* Dynamics to non-stem end in normal case; to stem end if flagged */ if ((dynamics & af_opposite) == 0) www->acflags |= dynamics; else w->acflags |= dynamics; /* First note is "true" note; ensure it has the fuq bit if any of the notes in the chord had it. */ w->type = b_note; w->flags |= fuq; } /************************************************* * Reset stem direction for note or chord * *************************************************/ /* This reset procedure is called when PMW discovers that it cannot print a beam with notes on both sides of it, in order to reset the stem direction of some of the notes before trying again. That is why we clear out the stemup flag before resetting. Before we reset the flag for a chord, we must reset the offsets of any accidentals, unless there is an explicit setting, because when the stem of a chord is set, the accidental positions are calculated, assuming that what is there already is the basic width of the accidental. As this is an error situation, we don't have to get it perfect. Arguments: noteptr pointer flag TRUE for stem up Returns: nothing */ void read_resetstemflag(b_notestr *noteptr, int flag) { b_notestr *p = noteptr; do { if (p->acc != 0) { p->accleft += curmovt->accspacing[p->acc] - curmovt->accadjusts[p->notetype]; if ((p->flags & (nf_accrbra+nf_accsbra)) != 0) p->accleft += (p->acc == ac_dflat)? 6800 : 5300; } p->flags &= ~nf_stemup; mac_advancechord(p); } while (p->type == b_chord); mac_setstemflag(noteptr, flag); } /************************************************* * Set stem directions for unforced beam * *************************************************/ /* This function is called at the end of a beam in all cases. For beams whose stem direction is forced, there is nothing on the beam stack. This procedure is even called for single notes that might have been the start of a beam, so we use the call to set the fuq flag when the stem direction is known. If the option for the stem swap level is "right", we can't take a decision here, so the notes are transferred on to the ordinary note pending stack. Arguments: none Returns: nothing */ void read_setbeamstems(void) { if (stave_beamstackptr > 0) { int i; int flag = 0; if (stave_maxaway == stave_stemswaplevel[curstave]) { switch (curmovt->stemswaptype) { case stemswap_default: case stemswap_left: if (stave_laststemup) flag = nf_stemup; break; case stemswap_up: flag = nf_stemup; break; case stemswap_down: break; case stemswap_right: for (i = 0; i < stave_beamstackptr; i++) stave_stemstack[stave_stemstackptr++] = stave_beamstack[i]; stave_beamstackptr = 0; return; } } else if (stave_maxaway < stave_stemswaplevel[curstave]) flag = nf_stemup; for (i = 0; i < stave_beamstackptr; i++) { /* NB */ mac_setstemflag(stave_beamstack[i], flag); } stave_beamstackptr = 0; stave_laststemup = flag != 0; mac_setstackedstems(flag); } stave_beaming = FALSE; if (stave_beamcount == 1 && (stave_beamfirstnote->flags & nf_stemup) != 0) stave_beamfirstnote->flags |= nf_fuq; } /* End of read6.c */ pmw-4.27/src/setbar.c0000644000222100022210000006323612247665016012575 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2012 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: March 2012 */ /* This file contains code for outputting one bar */ #include "pmwhdr.h" #include "pagehdr.h" #include "outhdr.h" /************************************************* * Output one bar in a system * *************************************************/ /* The bar number is in out_bar. The yield is the number of the last bar output plus one, which may be greater than the value of out_bar plus one when multiple rests are involved. Arguments: none Returns: number of the next bar to be output */ int out_setbar(void) { int i; BOOL notfirst = FALSE; bstr *lastp = NULL; int numberwanted = 0; unsigned int *notsuspend = out_sysblock->notsuspend; contstr *out_cont_save = out_cont; barposstr *bp = curmovt->posvector + out_bar; zcopystr *zcopy = curmovt->zcopy; DEBUG(("out_setbar() start: bar %d\n", out_bar)); out_ystave = out_yposition + out_sysblock->systemdepth; out_downgap = 24; out_postable = out_posptr = bp->vector; out_poslast = out_postable + bp->count - 1; out_posxRL = -bp->posxRL; /* (stored positive) */ out_barlinex = out_barx + out_poslast->xoff; out_repeatonbarline = out_lastbarwide; out_lastbarwide = FALSE; out_manyrest = bp->multi; out_lineendflag = (out_bar + out_manyrest - 1) == out_sysblock->barend; for (i = 0; i < dyn_max; i++) out_dynmovef[i] = out_dynmovex[i] = out_dynmovey[i] = 0; /* Decide if a bar number is wanted. If there was a [nocount] directive in this bar, then the next entry in the bar number vector is greater than the current one. For such bars, a bar number is never printed. For other bars, the logical bar number can be obtained from the true bar number, the bar number vector, and the offset. */ if (curmovt->barnovector[out_bar+1] <= curmovt->barnovector[out_bar]) { int bn = out_bar - curmovt->barnovector[out_bar] + curmovt->baroffset; int interval = curmovt->barno_interval; if (((interval > 0 && (bn % interval) == 0) || (interval < 0 && out_startlinebar) || bp->barnoforce == 1) && bn > 1 && bp->barnoforce != 255) numberwanted = bn; } /* Deal with the data on each stave, skipping unwanted staves. We do the printing from bottom to top so that each stave's stuff gets printed before the bar line gets drawn into it from above - otherwise the wiping stuff for beams may obliterate parts of the bar lines. */ for (out_stave = out_laststave; out_stave >= 0; out_stave--) { bstr *p; obeamstr *b; int barlinestyle = curmovt->barlinestyle; stavestr *ss = curmovt->stavetable[out_stave]; int nextstave = 0; BOOL breakbarline = mac_teststave(curmovt->breakbarlines, out_stave); BOOL another; DEBUG(("stave %d\n", out_stave)); /* Skip if stave is suspended */ if (mac_testNstave(notsuspend, out_stave)) goto CHECKZCOPY; /* Do start of bar things (PostScript generates a comment) */ ps_startbar(out_bar, out_stave); /* Each stave controls its own bit of barline */ out_omitbarline = FALSE; out_barchar = bar_single; out_prevbar = NULL; /* for omitempty previous bar lines */ /* Lastp gets left pointing to the data for the top stave */ lastp = p = (ss == NULL)? NULL : ss->barindex[out_bar]; /* Set relative stave size */ mac_setstavesize(out_stave); /* Reset hairpin starting halfway flag */ out_hairpinhalf = FALSE; /* Set the gaps for coupling - must find previous printing stave. As the gaps are in pitch units, they must be made relative to the stave magnification. */ if (out_stave == 0) out_upgap = 24; else { int previous; for (previous = out_stave - 1; previous > 0; previous--) { if (mac_teststave(notsuspend, previous) && out_sysblock->stavespacing[previous] != 0) break; } out_upgap = out_sysblock->stavespacing[previous]/main_stavemagn; } out_downgap = (out_sysblock->stavespacing[out_stave])/main_stavemagn; if (out_downgap == 0) { int next; for (next = out_stave + 1; next <= out_laststave; next++) { if (mac_teststave(notsuspend, next) && out_sysblock->stavespacing[next] != 0) { out_downgap = (out_sysblock->stavespacing[next])/main_stavemagn; break; } } } /* For all but the first to be printed (i.e. the bottom stave), move up by this stave's spacing */ if (notfirst) { out_ystave -= out_sysblock->stavespacing[out_stave]; } else notfirst = TRUE; /* Set the bar_cont data before skip testing; it is required to be left to the topmost stave for bar number printing. Also, we need to empty the beam continuation data if it set up. */ bar_cont = out_cont + out_stave; /* Set up beaming variables. The value of out_overbeam must only ever be true while out_setupbeam() is computing spanning beams. Hence we make sure it is FALSE here. */ beam_forceslope = BIGNUMBER; beam_offsetadjust = beam_accrit = 0; beam_overbeam = FALSE; /* If a beam has continued over a bar line, set up the various parameters; otherwise set no beaming. */ b = bar_cont->overbeam; if (b != NULL && b->count > 0) { /* At the start of a line the beam has not been drawn. The continued flag will ensure that even one note gets a beam, and the longestnote value will be taken from this block. */ if (out_startlinebar) { out_beaming = FALSE; beam_forceslope = b->slope; } /* For a non-start of line bar, the beam has already been drawn; set up the relevant parameters for the notes. */ else { beam_firstX = b->firstX; beam_firstY = b->firstY; beam_slope = b->slope; beam_count = b->count; beam_Xcorrection = b->Xcorrection; beam_splitOK = b->splitOK; beam_upflag = b->upflag; out_beaming = TRUE; } beam_seq = 0; beam_continued = TRUE; b->count = -1; } else out_beaming = beam_continued = FALSE; /* Determine if there is a following printing stave, for the purpose of extending bar lines down. We have to look down to find it, in case it is an [omitempty] stave with no data. If any of the suspended staves we skip over have got their break barline bit set, we must break the barline here. If the current stavespacing is zero, we don't want to extend bar lines. */ /* Searching the bit maps for a bit higher than this one is tedious. Maybe there should be a macro, but I think we do it just this once... Nope, it comes again in setwarn. */ another = (notsuspend[out_stave >> 5] & (-main_bit[out_stave & 0x1f])) > main_bit[out_stave & 0x1f]; if (!another) for (i = (out_stave >> 5) + 1; i < stave_bitvec_size; i++) if (notsuspend[i] != 0) { another = TRUE; break; } if (another && out_sysblock->stavespacing[out_stave] > 0) { int i; for (i = out_stave + 1; i <= out_laststave; i++) { stavestr *sss; if (mac_testNstave(notsuspend, i)) { if (mac_teststave(curmovt->breakbarlines, i)) breakbarline = TRUE; } else { sss = curmovt->stavetable[i]; if (sss == NULL || !sss->omitempty || sss->barindex[out_bar] != NULL || (!out_lineendflag && sss->barindex[out_bar+1] != NULL)) nextstave = i; break; } } } /* Initialize miscellaneous global variables. */ out_pnum = 1; out_pden = 2; out_plet = NULL; out_tremolo = NULL; out_passedreset = out_lastnotebeamed = FALSE; out_lastnotex = -100000; /* for accidental stretching */ out_moff = out_Xadjustment = out_Yadjustment = 0; out_gracenotes = FALSE; n_gracecount = n_gracemoff = out_keycount = out_timecount = 0; out_drawqueueptr = 0; out_textqueueptr = out_textnextabove = out_textnextbelow = 0; out_textX = NULL; out_stavelines = ss->stavelines & 127; /* Without the "no clefs/keys" bit */ out_stavetop = stave_tops[out_stavelines]; out_stavebottom = stave_bottoms[out_stavelines]; n_pitch = 0; /* in case no items in the bar */ n_ornament = NULL; n_masq = -1; n_dotxadjust = 0; /* Calculate the bottom position of the bar line. We need to do this first because it is used within the bar sometimes (dotted lines, time signatures, repeats, etc.) If a [breakbarline] directive is encountered, the value will be reset to out_ystave; if [unbreakbarline] is found, the value will be reset to out_deepbarend. */ out_ybarend = out_deepybarend = out_ystave; if (nextstave > 0) { out_deepybarend += out_sysblock->stavespacing[out_stave] - 16*curmovt->stavesizes[nextstave]; if (!breakbarline) out_ybarend = out_deepybarend; } /* Loop through all items in the bar, if there are any */ if (p != NULL) { int type = p->type; while (type != b_End) { if (type == b_Jump) { p = (bstr *)(((b_Jumpstr *)p)->next); } /* Deal with a note or chord */ else if (type == b_note) { p = out_setnote((b_notestr *)p); } /* Deal with a non-note, and then switch off accidental stretching for the note which follows. */ else { out_setother(p); out_lastnotex = -100000; } /* Next item */ p = (bstr *)((uschar *)p + length_table[type]); type = p->type; } barlinestyle = ((b_Endstr *)p)->barlinestyle; } /* Non-existent bars take their barline style from the stave's default. This isn't entirely satisfactory, but copes with common cases. A value of 255 means no barlinestyle was ever set for the stave. */ else { if (ss->barlinestyle != 255) barlinestyle = ss->barlinestyle; } /* ---- End of loop through bar ---- */ /* If this was the last bar on the line, deal with things which can be continued onto the next line. */ if (out_lineendflag) { slurstr *s = bar_cont->slurs; int true_endline = out_barlinex; if (curmovt->tiesoverwarnings && (out_sysblock->flags & sysblock_warn) != 0) { if ((out_sysblock->flags & sysblock_stretch) != 0) { true_endline = curmovt->linelength; } else { if ((bp+1)->vector != NULL) /* BUG FIX 04-Apr-2003 */ true_endline += ((bp+1)->vector + 1)->xoff; } } /* Draw slurs to line end. Note that misc_drawslur frees the slur structure, and we must free the pointer so that freeing the whole cont structure works. */ bar_cont->slurs = NULL; while (s != NULL) { slurstr *ss = s->next; misc_drawslur(s, true_endline - 3000 + curmovt->endlinesluradjust, 0, TRUE); s = ss; } /* Draw ties and glissandos to line end. For glissandos, invent a right-hand pitch that is in the right direction usually. */ if ((n_prevtie = bar_cont->tie) != NULL) { int x = true_endline - 4*main_stavemagn + curmovt->endlinetieadjust; int flags = n_prevtie->flags; n_flags = n_acflags = n_accleft = 0; n_notetype = breve; n_nexttie = NULL; /* Deal with ties. For chords we have to look ahead to the start of the next line to get the list of notes in the first chord. If there isn't a next bar, or if it is empty, draw ties on all the notes. */ if ((flags & (tief_slur | tief_default)) != 0) { if (n_chordcount == 1) out_setnotetie(x, TRUE, flags); else { int count = 0; b_notestr *notelist[20]; if (out_bar < curmovt->barcount) { stavestr *ss = curmovt->stavetable[out_stave]; bstr *p = (ss == NULL)? NULL : ss->barindex[out_bar+1]; if (p != NULL) { int type = p->type; while (type != b_End) { if (type == b_Jump) p = (bstr *)(((b_Jumpstr *)p)->next); else if (type == b_note) { b_notestr *tp = (b_notestr *)p; do { notelist[count++] = tp; mac_advancechord(tp); } while (tp->type == b_chord); break; } p = (bstr *)((uschar *)p + length_table[type]); type = p->type; } } } if (count > 0) out_setchordtie(notelist, count, x, TRUE, flags); else out_setchordtie(out_notelist, n_chordcount, x, TRUE, flags); } } /* Deal with glissandos - single notes only */ if ((flags & tief_gliss) != 0 && n_chordcount == 1) { b_notestr *p = (ss == NULL)? NULL : (b_notestr *)(ss->barindex[out_bar+1]); if (p != NULL && p->type != b_note) p = misc_nextnote(p, NULL); if (p == NULL) n_pitch = (n_pitch > P_3L)? P_0S : P_5S; else n_pitch = p->spitch; out_glissando(x + (45*main_stavemagn)/10, flags); } } /* If there is a hairpin outstanding, draw an incomplete one */ if (bar_cont->hairpin != NULL) out_drawhairpin(NULL, out_barlinex - 4*main_stavemagn); /* If there is an outstanding nth-time requirement at the end of the last bar on a line, output the marking so far. We have to search the next bar to see if it starts a new one, to determine whether to draw a right-hand jog or not. */ if (bar_cont->nbar != NULL) { BOOL flag = FALSE; if (out_bar >= curmovt->barcount) flag = TRUE; else { bstr *pp = ss->barindex[out_bar+1]; if (pp != NULL) { int ttype = pp->type; while (ttype != b_End) { if (ttype == b_Jump) pp = (bstr *)(((b_Jumpstr *)pp)->next); else if (ttype == b_nbar) { flag = TRUE; break; } pp = (bstr *)((uschar *)pp + length_table[ttype]); ttype = pp->type; } } } (void)out_drawnbar(flag, out_barlinex); out_freenbar(); } /* Deal with outstanding underlay extensions or rows of hyphens at the end of the last bar on a line. In the case of hyphens, we must ensure that at least one hyphen is always output. Extension lines are drawn note by note, so a line to the last note on the stave will have been drawn. However, if the syllable continues on the next system, we would like to draw the line a bit longer. If the preceding note did not have an "=" associated with it, the extender won't have been drawn. We must cope with this case too. */ while (bar_cont->ulay != NULL) { ulaystr *u = bar_cont->ulay; BOOL contflag = FALSE; BOOL overlay = u->level >= olay_offset; int xx = u->x; int yy = u->y; int fontsize = mac_muldiv(main_stavemagn, overlay? (curmovt->fontsizes)->fontsize_olay : (curmovt->fontsizes)->fontsize_ulay, 1000); if (xx == 0) /* A complete system of hyphens or extender */ { xx = out_sysblock->firstnoteposition + out_sysblock->xjustify - 4000; yy = overlay? out_sysblock->olevel[out_stave] : out_sysblock->ulevel[out_stave]; contflag = TRUE; } /* Remove this block from the chain */ bar_cont->ulay = u->next; /* Deal with row of hyphens */ if (u->type == '-') { int xend = out_barlinex - 2000; if (xend - xx < 800) xend += 1000; if (xend - xx < 800) xend = xx + 801; /* In case xx < 0 */ if (u->htype == 0) out_hyphens(xx, xend, yy, fontsize, contflag); else out_repeatstring(xx, xend, yy, contflag, TRUE, u->htype); } /* Deal with extender line */ else if (n_pitch != 0) { BOOL extender_continues = FALSE; int xend; /* See if the syllable continues on to the next system; we assume it does if we find a note before any text; or if we find an underlay text string beginning with "=". */ if (out_bar < curmovt->barcount) { stavestr *ss = curmovt->stavetable[out_stave]; bstr *p = (ss == NULL)? NULL : ss->barindex[out_bar+1]; if (p != NULL) { int type = p->type; while (type != b_End) { if (type == b_Jump) p = (bstr *)(((b_Jumpstr *)p)->next); /* Note or chord => extender continues (unless rest) */ else if (type == b_note) { extender_continues = ((b_notestr *)p)->spitch != 0; break; } /* Underlay text before any notes means the syllable does not continue, unless it is "=". */ else if (type == b_text) { b_textstr *t = (b_textstr *)p; if ((t->flags & text_ul) != 0) { extender_continues = ((t->string)[0] == '='); break; } } /* Next item in the bar */ p = (bstr *)((uschar *)p + length_table[type]); type = p->type; } } } /* End depends on whether continuing or not */ xend = extender_continues? out_barlinex - 4000 : n_x + 5*main_stavemagn; if (xend - xx > 4000) out_extension(xx, xend, yy, fontsize); } store_free(u); } } /* --- End of processing continued items --- */ /* First of all, we must extend ybarend if it is not extended and the option to have full barlines at the end of each system is set. */ if (out_lineendflag && out_ybarend == out_ystave && curmovt->fullbarend && nextstave > 0) out_ybarend = out_deepybarend; /* If we have just printed a multi-bar rest, we must use the appropriate kind of bar line for the *last* bar. This requires a scan of the last bar. The last bar is also permitted to contain a right-hand repeat mark. If this is found, we output it at the barline position, as we know there can be no notes in the bar. Thirdly, the last bar is permitted to contain a clef at the end, or an invisible bar line. */ if (out_manyrest > 1) { bstr *p = (ss == NULL)? NULL : ss->barindex[out_bar+out_manyrest-1]; if (p != NULL) { int type = p->type; while (type != b_End) { if (type == b_Jump) p = (bstr *)(((b_Jumpstr *)p)->next); else if (type == b_dbar) out_barchar = bar_double; else if (type == b_rrepeat) { int magn = (curmovt->barlinesize > 0)? curmovt->barlinesize : main_stavemagn; out_omitbarline = out_lastbarwide = TRUE; out_writerepeat(out_barlinex - ((out_lineendflag? 68 : 50)*magn)/10, rep_right, magn); } else if (type == b_clef || type == b_ibar) { out_setother(p); } p = (bstr *)((uschar *)p + length_table[type]); type = p->type; } } } /* Now we can output appropriate bits of bar line. Do not print a barline for staff 0, or if already done for repeat, or for [omitempty] bars containing no data. Do, however, print a leading barline for non-line-starting omitempty bars with nothing preceding. */ if (out_stave != 0) { int ytop = out_ystave + ((barlinestyle == 2 || barlinestyle == 3)? 16*main_stavemagn : (ss->stavelines == 6)? - 4*main_stavemagn : 0); int ybarstart = ytop; int magn = (curmovt->barlinesize > 0)? curmovt->barlinesize : main_stavemagn; if (!out_omitbarline && (!ss->omitempty || (ss->barindex)[out_bar] != NULL)) { if ((barlinestyle == 1 || barlinestyle == 3) && out_barchar == bar_single) out_barchar = bar_dotted; if (out_ybarend >= ybarstart) { int x = 0; if (out_barchar == bar_double) x = 2*magn; else if (out_barchar == bar_thick || (out_bar + out_manyrest - 1 >= curmovt->barcount && !curmovt->unfinished)) { x = 3500; ps_barline(out_barlinex - (3*magn)/2, ybarstart, out_ybarend, bar_thick); } /* Deal with bar line styles that involve either or both of lines on the stave and lines between the staves. */ if (out_barchar == bar_thick) ps_barline(out_barlinex - x, ybarstart, out_ybarend, bar_single); else if (barlinestyle < 4 || out_barchar == bar_double) { ps_barline(out_barlinex - x, ybarstart, out_ybarend, out_barchar); } /* Deal with the special bar line styles that involve markings only on the current stave. */ else { ps_musstring((barlinestyle == 4)? US"~x\302\211yyyyyyx\302\211" : US"|\302\211yyyyyyxxxxx\302\211", 10*main_stavemagn, out_barlinex, out_ystave); } } } /* Flag wide bar line for next bar */ if (out_barchar == bar_double) out_lastbarwide = TRUE; /* For omitempty bars, output a bit of bar line at the start of the bar, if the previous bar was not printed. If we have encountered a prevbarstr in the bar, a pointer to it will have been saved. As the style may be different to the ending line, we have to compute everything again. */ if (ss->omitempty && (ss->barindex)[out_bar] != NULL) { int x = 0; if (!out_startlinebar && (ss->barindex)[out_bar - 1] == NULL) { int barchar = bar_single; int style = (ss->barlinestyle != 255)? ss->barlinestyle : curmovt->barlinestyle; if (out_prevbar != NULL) { if (out_prevbar->dbar) barchar = bar_double; if (out_prevbar->ibar) barchar = 0; style = out_prevbar->style; } ytop = (style == 2 || style == 3)? (out_ystave + 16*main_stavemagn) : out_ystave; ybarstart = ytop; if (out_ybarend >= ybarstart) { if ((style == 1 || style == 3) && barchar == bar_single) barchar = bar_dotted; if (barchar != 0) { if (style < 4 || barchar == bar_double) { if (barchar == bar_double) x = 2*main_stavemagn; ps_barline(out_lastbarlinex - x, ybarstart, out_ybarend, barchar); } else { ps_musstring((style == 4)? US"~x\302\211yyyyyyx\302\211" : US"|\302\211yyyyyyxxxxx\302\211", 10*main_stavemagn, out_lastbarlinex, out_ystave); } } } } /* For staves with [omitempty] set, we have to generate a bit of stave for this bar at this point. Other stave lines are printed as complete systems. */ if (ss->stavelines > 0) { ps_stave((!out_startlinebar)? out_lastbarlinex - x : out_sysblock->startxposition + out_sysblock->xjustify, out_ystave, out_barlinex, ss->stavelines & 127); } } } /* When we reach stave zero, we have to see which systems it is to be printed over. It can get printed several times, with vertical adjustments. If zcopy is NULL, we have completed the list. We have to maintain a separate contstr for each copy of stave zero; there is a space in the zcopy block for doing this. If this copy is required, set stave = 1 and break out of inner loop; the outer loop with then iterate for stave 0. If there is more than one stave zero being printed, we must switch in the separate contstr copies. */ CHECKZCOPY: if (out_stave <= 1) while (zcopy != NULL) { if (zcopy->level >= 0) { out_ystave = out_yposition + zcopy->level - zcopy->adjust - zcopy->baradjust; zcopy->baradjust = 0; if (out_zcopycount > 1) out_cont = (contstr *)zcopy->cont; zcopy = zcopy->next; out_stave = 1; break; } /* If this copy is not required, set stave = 0 so that if the inner loop now terminates, the outer one will too. */ out_stave = 0; zcopy = zcopy->next; } } /* Restore the contstr pointer that might have been changed when printing copies of stave zero. */ out_cont = out_cont_save; /* Output bar number if required, above the top stave */ if (numberwanted > 0) { uschar s[12]; int x = bp->barnoX; int y = 24000; int *matrix = (curmovt->fontsizes)->fontmatrix_barno; /* Adjust position for start and non-start bars */ if (out_startlinebar) { x += out_sysblock->startxposition + out_sysblock->xjustify; if (bar_cont->clef == clef_trebledescant) x += 15000; else if (bar_cont->clef == clef_soprabass) x += 9000; } else { b_notestr *next = (lastp == NULL)? NULL : (lastp->type == b_note)? (b_notestr *)lastp : misc_nextnote((b_notestr *)lastp, NULL); x += out_lastbarlinex; if (next != NULL && next->spitch > P_5L) y = (next->spitch - 120) * 1000; } /* Now print it */ y = ((y + bp->barnoY)*main_stavemagn)/1000 + curmovt->barno_level; sprintf(CS s, "%d", numberwanted); if (matrix != NULL) memcpy(font_transform, matrix, 4*sizeof(int)); out_string(s, curmovt->font_barnumber, (curmovt->fontsizes)->fontsize_barno, x, out_yposition - y, curmovt->barno_textflags); font_reset(); } /* Remember the position of the last barline, and return the number of the following bar. */ out_lastbarlinex = out_barlinex; DEBUG(("out_setbar() end\n")); return out_bar + out_manyrest; } /* End of setbar.c */ pmw-4.27/src/setother.c0000644000222100022210000004576512247665016013161 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2012 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: March 2012 */ /* This file contains code for outputting non-note items in a bar */ #include "pmwhdr.h" #include "pagehdr.h" #include "outhdr.h" static uschar rrepeat_adjust[] = {66, 50, 50, 50, 66, 65, 85, 85, 85, 65}; /************************************************* * Deal with non-note item in a bar * *************************************************/ /* This function is used for all the various non-note items. When there's a lot to do, a separate function is called. There's also a separate function for those the are handled the same way in the pagination scan (see at the end). Argument: the item's data Returns: nothing */ void out_setother(bstr *p) { int magn; DEBUG(("out_setother() start\n")); switch (p->type) { /* Set barline break just for this stave */ case b_breakbarline: out_ybarend = out_ystave; break; /* Set no barline break just for this stave */ case b_unbreakbarline: out_ybarend = out_deepybarend; break; /* Remember block containing data for previous barline for omitempty bars. */ case b_prevbar: out_prevbar = (b_prevbarstr *)p; break; /* Remember x adjustment for dots for next note */ case b_dotright: n_dotxadjust = (((b_dotrightstr *)p)->value * main_stavemagn)/1000; break; /* Remember start of tie/short slur and/or glissando */ case b_tie: bar_cont->tie = (b_tiestr *)p; bar_cont->tiex = out_lastnotex + n_dotxadjust; n_dotxadjust = 0; break; /* Remember start of long slur */ case b_slur: { slurstr *s = misc_setstartslur(p); /* The x & y position of the start of the slur gets set when the next note is processed, as a result of the slurstarted flag. However, put in some defaults for the mad case when the slur does not cross any notes. */ s->x = out_barx + out_findXoffset(out_moff); s->y = L_3L; /* The slurstarted flag tells the note processing routine to scan the slur data for any slurs with s->count set to 0, and to set their left x-coordinate according to that [moved] note, and also to set other parameters appropriately. */ out_slurstarted = TRUE; } break; /* Draw a long slur. If there is no id, draw the most recent slur. Otherwise search for the correct identity, complaining if not found, though that should have been picked up earlier during the setting up of the cont structure. */ case b_endslur: { slurstr *s = misc_getendslur(p); if (s == NULL) error_moan(62, ((b_endslurstr *)p)->id, out_bar, out_stave); else misc_drawslur(s, n_x, n_pitch, FALSE); } break; /* Deal with gaps in lines and slurs. The coordinate data has to be saved, because the vertical position of the line or slur is not yet known. */ case b_linegap: case b_slurgap: { b_linegapstr *pg = (b_linegapstr *)p; slurstr *s = bar_cont->slurs; gapstr *g; int slurid = pg->id; if (slurid != 0) { while (s != NULL) { if ((s->slur)->id == slurid) break; s = s->next; } } if (s == NULL) { error_moan(62, pg->id, out_bar, out_stave); break; } if ((s->slur->flags & sflag_l) == 0) { if (p->type == b_linegap) { error_moan(93, out_bar, out_stave); break; } } else { if (p->type == b_slurgap) { error_moan(119, out_bar, out_stave); break; } } g = store_Xget(sizeof(gapstr)); g->next = s->gaps; s->gaps = g; g->gap = pg; g->x = out_barx + out_findXoffset(out_moff) + pg->xadjust; /* Except at the end of a bar, move right to the centre of the next notehead. */ if (misc_nextnote((b_notestr *)p, NULL) != NULL) g->x += 3*main_stavemagn; } break; /* Deal with hairpins. Take special action for a hairpin that ends before the first note of a bar. */ case b_hairpin: { b_hairpinstr *h = (b_hairpinstr *)p; if (h->opt != 0) out_setstarthairpin(h, out_barx + out_findXoffset(out_moff)); else if (out_moff != 0) out_drawhairpin(h, n_x + 6*main_stavemagn); else out_drawhairpin(h, out_barx - 4*main_stavemagn); } break; /* Deal with position reset */ case b_reset: out_moff = 0; out_passedreset = TRUE; break; /* Deal with tremolo */ case b_tremolo: if (n_pitch != 0) { out_tremolo = (b_tremolostr *)p; out_tremupflag = n_upflag; out_tremx = n_x; out_tremy = misc_ybound(n_notetype < minim || !n_upflag, NULL, FALSE, FALSE); } break; /* Deal with plets */ case b_plet: out_plet = (b_pletstr *)p; beam_seq = -1; /* Maintain beaming state */ out_plet_x = -1; /* Indicates plet starting */ out_plet_highest = -BIGNUMBER; out_plet_lowest = BIGNUMBER; out_plet_highest_head = 0; out_pden = out_plet->pletlen; if (out_pden > 4) out_pnum = 2; break; case b_endplet: { int flags = out_plet->flags; if (((bar_cont->flags & cf_triplets) == 0) != ((flags & plet_x) == 0)) { int fontsize = (curmovt->fontsizes)->fontsize_triplet; int *matrix = (curmovt->fontsizes)->fontmatrix_triplet; int x0 = out_plet_x - (5*main_stavemagn)/10; int x1 = n_x + 7*main_stavemagn; int mid = (x0 + x1)/2; int yy, yyl, yyr, sx, width; BOOL above, omitline; uschar s[10]; if (matrix != NULL) memcpy(font_transform, matrix, 4*sizeof(int)); /* Determine whether above or below, either by forcing, or by beaming, or on the position of the highest notehead. */ if ((flags & (plet_a | plet_b)) != 0) above = (flags & plet_a) != 0; else if (beam_seq == 1) above = beam_upflag; else above = out_plet_highest_head < P_3L; if ((flags & (plet_by | plet_bn)) != 0) omitline = (flags & plet_bn) != 0; else omitline = (beam_seq == 1 && above == beam_upflag); /* Compute y level for the number according to the highest and lowest bits of note in between, or take absolute level if given. */ if ((flags & plet_abs) != 0) yy = above? 16000 : 0; else { if (above) yy = (out_plet_highest < 16000)? 18000 : out_plet_highest + 2000; else yy = ((out_plet_lowest > 0)? 0 : out_plet_lowest) - fontsize; } yyl = ((yy + out_plet->yleft)*main_stavemagn)/1000; /* Manual adjustment */ yyr = ((yy + out_plet->yright)*main_stavemagn)/1000; /* Manual adjustment */ yy = (yyl + yyr)/2; /* mid height */ /* Scale the font size, create the string, and find out how many digits there are in it. We scale the font size according to the stave size and also according to the size of the previous note. */ fontsize = mac_muldiv(fontsize*main_stavemagn, n_fontsize, 10000000); sprintf(CS s, "%d", out_plet->pletlen); width = string_width(s, curmovt->font_triplet, fontsize)/2; /* If beamed and no line, compute text position according to the beam; otherwise compute it as central in the line */ if (beam_seq == 1 && above == beam_upflag && omitline) { sx = (out_plet_x + n_x)/2 + out_plet->x; if (beam_upflag) sx += (51*main_stavemagn)/10; } else sx = mid + (omitline? out_plet->x : 0); /* Now output the text */ out_string(s, curmovt->font_triplet, fontsize, sx - width, out_ystave - yy, 0); font_reset(); /* Draw the line if wanted */ if (!omitline) { int slope = mac_muldiv(yyr - yyl, 1000, x1 - x0); int x[3], y[3]; int ly, ry; ly = ry = above? -2000 : 2000; if ((flags & plet_lx) != 0) ly = -ly; if ((flags & plet_rx) != 0) ry = -ry; yyl += (35*fontsize)/100; yyr += (35*fontsize)/100; x[0] = x[1] = x0; x[2] = mid - 1500 - width; y[0] = yyl + ly; y[1] = yyl; y[2] = yyl + mac_muldiv(slope, x[2] - x0, 1000); ps_lines(x, y, 3, curmovt->tripletlinewidth); x[0] = mid + 1500 + width; x[1] = x[2] = x1; y[0] = yyr - mac_muldiv(slope, x1 - x[0], 1000); y[1] = yyr; y[2] = yyr + ry; ps_lines(x, y, 3, curmovt->tripletlinewidth); } } } out_plet = NULL; out_pnum = 1; out_pden = 2; break; /* Clefs, keys, and times */ case b_setclef: bar_cont->clef = ((b_setclefstr *)p)->value; break; case b_clef: bar_cont->clef = ((b_clefstr *)p)->trueclef; if (out_stave != 0 && !((b_clefstr *)p)->suppress) out_writeclef(out_barx + out_findXoffset(out_moff + posx_clef) + out_Xadjustment, out_ystave - out_Yadjustment, ((b_clefstr *)p)->trueclef, (curmovt->fontsizes)->fontsize_clefs, TRUE); out_Xadjustment = out_Yadjustment = 0; break; case b_key: if (out_stave != 0 && !((b_keystr *)p)->suppress) { int x = out_barx + out_findXoffset(out_moff + posx_keyfirst + out_keycount++) + out_Xadjustment; if (!out_startlinebar && out_moff == 0 && curmovt->keydoublebar && !out_repeatonbarline && out_bar != curmovt->startbracketbar + 1) ps_barline(out_lastbarlinex, out_ystave, out_ybarend, bar_double); out_writekey(x, out_ystave - out_Yadjustment, bar_cont->clef, ((b_keystr *)p)->key); } out_Xadjustment = out_Yadjustment = 0; break; case b_time: if (out_stave != 0 && !((b_timestr *)p)->suppress) out_writetime(out_barx + out_findXoffset(out_moff + posx_timefirst + out_timecount++) + out_Xadjustment, out_ystave - out_Yadjustment, ((b_timestr*)p)->time); bar_cont->time = ((b_timestr *)p)->time; out_Xadjustment = out_Yadjustment = 0; break; case b_settime: bar_cont->time = ((b_settimestr *)p)->value; break; /* Dotted bar line in mid-bar */ case b_dotbar: ps_barline(out_barx+out_findXoffset(out_moff+posx_dotbar)+out_Xadjustment, out_ystave, out_ybarend, bar_dotted); out_Xadjustment = out_Yadjustment = 0; break; /* Repeat marks. For a right repeat we have to check for a following left repeat, because some styles are different when the two are simultaneous. */ case b_rrepeat: magn = (curmovt->barlinesize > 0)? curmovt->barlinesize : main_stavemagn; if (misc_nextnote((b_notestr *)p, NULL) == NULL) /* check for end of bar */ { int xadjust; int reptype = rep_right; if (out_lineendflag) xadjust = (out_bar >= curmovt->barcount)? (rrepeat_adjust[curmovt->repeatstyle + (curmovt->unfinished? 0:5)]) : 68; else { bstr *pp = ((curmovt->stavetable)[out_stave])->barindex[out_bar+1]; if (pp != NULL) { while (pp->type == b_Jump) pp = (bstr *) ((uschar *)(((b_Jumpstr *)pp)->next) + length_table[b_Jump]); if (pp->type == b_lrepeat) { reptype = rep_dright; bar_cont->flags |= cf_rdrepeat; /* Remember for next start */ } } xadjust = 50; } out_lastbarwide = TRUE; out_writerepeat(out_barlinex - (xadjust*magn)/10, reptype, magn); } /* Not at end of bar; we look at the next item to see if it is a left repeat. */ else { bstr *pp = (bstr *)((uschar *)p + length_table[p->type]); while (pp->type == b_Jump) pp = (bstr *) ((uschar *)(((b_Jumpstr *)pp)->next) + length_table[b_Jump]); out_writerepeat(out_barx + out_findXoffset(out_moff + posx_RR) + out_Xadjustment, (pp->type == b_lrepeat)? rep_dright : rep_right, magn); } out_Xadjustment = out_Yadjustment = 0; break; /* See if there is also a right repeat here. If not, we put the sign on the bar line for non-start of line bars, if there is no position for it. If the previous bar ended with a repeat, this repeat will have been found and the flag set. Note that the variable out_posxRL contains the relevant posx_RLxxx value this this particular bar. */ case b_lrepeat: magn = (curmovt->barlinesize > 0)? curmovt->barlinesize : main_stavemagn; if (out_findTentry(out_moff + posx_RR) == NULL) { if (!out_startlinebar && out_findTentry(out_moff+out_posxRL) == NULL) { out_writerepeat(out_lastbarlinex, ((bar_cont->flags & cf_rdrepeat) == 0)? rep_left : rep_dleft, magn); bar_cont->flags &= ~cf_rdrepeat; out_repeatonbarline = TRUE; } else out_writerepeat(out_barx + out_findXoffset(out_moff + out_posxRL) + out_Xadjustment, rep_left, magn); } /* Right repeat exists */ else { if (misc_nextnote((b_notestr *)p, NULL) == NULL) out_writerepeat(out_barlinex - (out_lineendflag? (18*main_stavemagn)/10 : 0), rep_dleft, magn); else out_writerepeat(out_barx + out_findXoffset(out_moff + posx_RR) + 5*main_stavemagn + out_Xadjustment, rep_dleft, magn); } out_Xadjustment = out_Yadjustment = 0; break; /* Set masquerade for next note */ case b_masq: n_masq = ((b_masqstr *)p)->value; break; /* Set ornament for next note */ case b_ornament: if (n_ornament == NULL) n_ornament = ((b_ornamentstr *)p); break; /* Deal with dynamic move and/or bracketing for next note */ case b_dynmove: { b_dynmovestr *d = (b_dynmovestr *)p; int z = d->dynamic; out_dynmovef[z] = d->bflags; out_dynmovex[z] = d->x; out_dynmovey[z] = mac_muldiv(d->y, main_stavemagn, 1000); } break; /* Pauses and breaths */ case b_comma: { int y; uschar *s; b_notestr *pp = misc_nextnote((b_notestr *)p, 0); if (main_righttoleft) { y = 19; s = US"\xc3\x81"; } else { y = 22; s = US"N"; } if (pp != NULL && pp->spitch > 148) y += pp->spitch - 148; out_string(s, font_mf, 10*main_stavemagn, out_barx + out_findXoffset(out_moff + posx_comma) + out_Xadjustment, out_ystave - y*main_stavemagn - out_Yadjustment, 0); } out_Xadjustment = out_Yadjustment = 0; break; case b_tick: { int y = 18; b_notestr *pp = misc_nextnote((b_notestr *)p, 0); if (pp != NULL && pp->spitch > 148) y += pp->spitch - 148; out_string(US"\302\200", font_mf, 10*main_stavemagn, out_barx + out_findXoffset(out_moff + posx_tick) + out_Xadjustment, out_ystave - y*main_stavemagn - out_Yadjustment, 0); } out_Xadjustment = out_Yadjustment = 0; break; case b_caesura: out_string(main_caesurastrings[curmovt->caesurastyle], font_mf, 10*main_stavemagn, out_barx + out_findXoffset(out_moff + posx_caesura) + out_Xadjustment, out_ystave - 12*main_stavemagn - out_Yadjustment, 0); out_Xadjustment = out_Yadjustment = 0; break; /* Deal with nth time bar markings; if there is already a current block, we must differentiate between a number of different cases: (1) This is an additional marking to be added to the current one (2) This is the start of the next iteration at the start of a line (3) This is the start of the next iteration in the middle of a line In case (3) we have to close off the previous marking; in case (2) we replace the previous block; in case (1) we add an additional block. */ case b_nbar: { int miny = 0; if (bar_cont->nbar != NULL) { nbarstr *bb = bar_cont->nbar; /* (1) Deal with additional marking; hang on extra block */ if (out_lastbarlinex == bb->x) { nbarstr *bbb = store_Xget(sizeof(nbarstr)); while (bb->next != NULL) bb = bb->next; bb->next = bbb; bbb->next = NULL; bbb->nbar = (b_nbarstr *)p; /* only data needed is original block */ break; /* that's all */ } /* (2) If this is a line start, the current block is superflous. Note that there will only ever be one block at the start of a line if its x-value doesn't match (i.e. it's continued). */ else if (out_startlinebar) out_freenbar(); /* (3) This is the middle of a line; close off the previous */ else { miny = out_drawnbar(TRUE, out_lastbarlinex - 1500); out_freenbar(); } } /* Now set up for this one */ out_setstartnbar((b_nbarstr *)p, out_lastbarlinex, miny); } break; case b_all: if (!out_startlinebar && bar_cont->nbar != NULL) out_drawnbar(FALSE, out_lastbarlinex); out_freenbar(); break; /* Set offset adjustment for next beam */ case b_offset: beam_offsetadjust = ((b_offsetstr *)p)->value; break; /* Set next beam as accellerando */ case b_beamacc: beam_accrit = ((b_beamaccstr *)p)->value; break; /* Set next beam as ritardando */ case b_beamrit: beam_accrit = -((b_beamritstr *)p)->value; break; /* Text at the end of a bar must be handled now; othewise we queue it to be done with the next note, when the bounding box is known. Although n_x must be set to the barline for the text, we must preserve it in case something that follows needs it, for example, an end slur. */ case b_text: if (misc_nextnote((b_notestr *)p, NULL) == NULL) { int savex = n_x; n_x = out_barlinex; out_text((b_textstr *)p, TRUE); n_x = savex; } else { out_textXqueue[out_textqueueptr] = out_textX; out_textqueue[out_textqueueptr++] = (b_textstr *)p; } out_textX = NULL; break; /* Extra text data is saved for the next text item which must immediately follow it. */ case b_textX: out_textX = (b_textXstr *)p; break; /* Draw items associated with notes must be saved, as for text items. */ case b_draw: if (misc_nextnote((b_notestr *)p, NULL) == NULL) { b_drawstr *d = (b_drawstr *)p; draw_ox = out_barlinex; draw_oy = 0; out_dodraw(d->item, d->args, d->overflag); } else out_drawqueue[out_drawqueueptr++] = (b_drawstr *)p; break; /* Double bar setting */ case b_dbar: out_barchar = bar_double; break; /* Internal end bar setting */ case b_ebar: out_barchar = bar_thick; break; /* Invisible bar setting */ case b_ibar: out_omitbarline = TRUE; break; /* Positioning adjustments - horizontal distances may or may not be scaled; vertical distances are always scaled. */ case b_move: { b_movestr *bm = (b_movestr *)p; if (bm->relative) out_Xadjustment = (bm->x * main_stavemagn)/1000; else out_Xadjustment = bm->x; out_Yadjustment = (bm->y * main_stavemagn)/1000; } break; /* Stave zero copy level adjustment - applies of stave 0 being printed at this stave's level. */ case b_zcopy: { zcopystr *z = curmovt->zcopy; while (z != NULL) { if (z->level == out_ystave - out_yposition) { z->baradjust = ((b_zcopystr *)p)->value; break; } z = z->next; } } break; /* Handle all items that are common between this scan and the pre-scan during pagination. */ default: misc_commoncont(p); break; } DEBUG(("out_setother() end\n")); } /* End of setother.c */ pmw-4.27/src/postable.c0000644000222100022210000015361012247665016013122 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2013 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: March 2013 */ /* This file contains the main code for creating a position table for a bar. It calls subroutines in possubs.c */ #include "pmwhdr.h" #include "pagehdr.h" #include "poshdr.h" /************************************************* * Construct position table for one bar * *************************************************/ /* This procedure constructs a list of pairs containing a musical offset (from the start of the bar), and a horizontal offset (from the first note position). We first check to see if we are at a place where there are many bars rest for all the relevant staves. If so, special action is taken later. We go through each stave in turn, inserting between entries where necessary and adjusting for minimum note widths. A space item in the input can cause non-standard spacing. Suspended staves are not excluded -- as they should only contain whole bar rests, they won't affect the spacing. If "resume" is encountered, we set the "notsuspend" bit. There are several passes, to ensure that the notes on any one stave are not too close together when accidentals and dots are present. There is yet another pass to adjust the spacing for any embedded clefs, key signatures, etc. The yield of the procedure is the horizontal width of the bar (excluding the bar line). If a key or time signature has been read, then the global page_xxwidth is set to the width for printing just that much of the bar, for use at the end of a line. Argument: TRUE if mis-matched bar lengths in different staves give an error (set FALSE when a bar is re-processed for a large stretch) Returns: the width of the bar */ int page_makepostable(BOOL lengthwarn) { posstr *outptr; workposstr *left; int i; int doublebar = FALSE; int restbar = TRUE; int firstrestbar = TRUE; int barnumber = page_barnumber; int forcenewline = b_End; int endbarmoff = BIGNUMBER; int MaxKeyWidth = 0; /* widest final key signature */ int MaxTimeWidth = 0; /* widest final time signature */ int Oldlastendwide = page_lastendwide; /* previous bar's value */ int Oldlastenddouble = page_lastenddouble; /* this for double bar */ int ulaymap[stave_bitvec_size]; /* map underlay staves */ int largestmagn = 0; mac_initstave(ulaymap, 0); pos_bp = curmovt->posvector + page_barnumber; pos_bp->multi = 1; /* not multibar rest */ pos_bp->posxRL = -posx_RLleft; /* default order for time/key/repeat */ pos_bp->barnoforce = 0; /* no forced bar number */ pos_bp->barnoX = 0; /* no bar number movement */ pos_bp->barnoY = 0; page_lastendwide = FALSE; /* flag wide bar line (e.g. repeat) */ page_lastenddouble = FALSE; /* this for double barline (not wide) */ page_manyrest = 0; /* not many bars rest */ page_xxwidth = 0; /* key and/or time change width */ page_warnkey = FALSE; /* no warning key read */ page_warntime = FALSE; /* no warning time read */ /* Set up initial position table entry for the barline. */ page_postable->moff = BIGNUMBER; page_postable->xoff = 0; page_postable->space = 0; mac_initstave(page_postable->stemup, 0); mac_initstave(page_postable->stemdown, 0); page_postable->auxid = 0; page_posptr = page_postable; /* last entry */ /* First we check for whole-bar rests in all the relevant staves, and count the number of successive such bars if any are found. Key and and time changes and newline/page and a number of other non-printing items are allowed in the first rest bar. So is printed text. A clef change is allowed at the start of the first bar (to allow multiple rests at the start of a piece); otherwise a clef causes the bar to be treated as the last rest bar. */ while (barnumber <= curmovt->barcount) { int rrepeatORclefORdbar = FALSE; /* Scan all the relevant staves */ for (page_stave = 0; page_stave <= page_lastwanted; page_stave++) { if (mac_teststave(curmovt->staves, page_stave)) { bstr *p = ((curmovt->stavetable)[page_stave])->barindex[barnumber]; if (p != NULL) { int type = p->type; BOOL hadnote = FALSE; while (type != b_End && restbar) { switch(type) { case b_Jump: p = (bstr *)(((b_Jumpstr *)p)->next); break; case b_note: if (((b_notestr *)p)->spitch != 0 || (((b_notestr *)p)->flags & nf_centre) == 0) restbar = FALSE; hadnote = TRUE; break; case b_comma: case b_caesura: case b_nbar: case b_slur: case b_endslur: case b_dotbar: case b_hairpin: case b_reset: case b_tick: case b_ornament: case b_nopack: restbar = FALSE; break; case b_dbar: rrepeatORclefORdbar = TRUE; break; case b_ibar: break; case b_clef: if (firstrestbar) { if (hadnote) restbar = FALSE; } else { if (!hadnote) restbar = FALSE; else rrepeatORclefORdbar = TRUE; } break; case b_rrepeat: rrepeatORclefORdbar = TRUE; break; default: if (!firstrestbar) restbar = FALSE; break; } p = (bstr *)((uschar *)p + length_table[type]); type = p->type; } } } } /* All the staves have been scanned, or a non-rest was found */ if (!restbar) break; page_manyrest++; firstrestbar = FALSE; if (rrepeatORclefORdbar) break; /* allow rrepeat or clef or double bar in last bar */ barnumber++; } /* Now set about constructing the position table. We scan the staves several times in order to do this. The first scan establishes the entries for the notes; horizontal offsets are set for the first staff, and any notes on subsequent staves that are past the last notes on the staves above. Other notes are interpolated pro rata at this stage. During this pass we also deal with non-note items that don't affect the spacing, but must be noted for other parts of the code. We also record any [space] settings for implemention right at the end. If we are handling a sequence of rest bars, we must process the last bar as well as the first, in case there are clefs at the end of the last bar. It isn't straightforward to write this as any kind of a loop, so we resort to the dreaded GOTO for simplicity. */ barnumber = page_barnumber; REPEATFIRSTSCAN: for (page_stave = 0; page_stave <= page_lastwanted; page_stave++) { if (mac_teststave(curmovt->staves, page_stave)) { int extraspace = 0; /* value of [space] */ int extraspace_set = FALSE; /* TRUE if [space] encountered */ int notjustrest = FALSE; /* TRUE if non-whole-bar-rest read */ int MaxMoff = 0; /* for resets */ bstr *p = ((curmovt->stavetable)[page_stave])->barindex[barnumber]; /* If there is any data in the bar, scan it */ if (p != NULL) { int type = p->type; int moff = 0; /* musical offset */ int moffdelta; /* delta from n*hdsq */ int auxitem = FALSE; /* last item was aux */ workposstr *pp = page_postable; /* position in page_postable */ mac_setstavesize(page_stave); /* relative size of this stave */ if (main_stavemagn > largestmagn) largestmagn = main_stavemagn; /* Loop for all items in the bar */ while (type != b_End) { switch(type) { case b_Jump: p = (bstr *)(((b_Jumpstr *)p)->next); break; /* Deal with items that are notes, ignoring grace notes in this pass */ case b_note: if (((b_notestr *)p)->length) { b_notestr *note = (b_notestr *)p; int length = note->length; int flags = note->flags; int notetype = note->notetype; int pitch = note->spitch; int upflags[stave_bitvec_size]; int downflags[stave_bitvec_size]; mac_initstave(upflags, 0); mac_initstave(downflags, 0); if (pitch != 0 || (flags & nf_centre) == 0) notjustrest = TRUE; /* Set stem direction flags for fine spacing adjustment, but only if there really is an actual stem. */ if (pitch != 0 && notetype >= minim) { if ((flags & nf_stemup) != 0) mac_setstave(upflags, page_stave); else mac_setstave(downflags, page_stave); } /* Scan up position table to this musical offset; until one stave's data has been read, the barline has a musical offset of "infinity". */ while (pp < page_posptr && pp->moff < moff) pp++; /* If we have matched at the barline, we are on a stave with a bar that is longer than any on any previous staves. We reset the barline moff to "infinity". */ if (pp->moff <= moff && pp == page_posptr) pp->moff = BIGNUMBER; /* If we are at an previously-existing entry, do nothing. Otherwise, move up the existing entries in the table and and insert a new entry. Note that that the moving up leaves the correct xoff value in the "new" entry, and it is the field in the *next* entry that must be updated. */ if (pp->moff != moff) { workposstr *q; for (q = page_posptr; q >= pp; q--) q[1] = q[0]; pp->moff = moff; pp->space = 0; pp->auxid = 0; /* If we are at the end of the bar, and the bar length is unset, set the horizontal offset to be appropriate to this note type. (Note that page_posptr is temporarily pointing one before the barline entry here.) */ if (pp == page_posptr && (page_posptr + 1)->moff == BIGNUMBER) { (page_posptr + 1)->xoff = pos_notewidth(length); } /* If we are not at the end of the bar, or if the bar length has already been set, set the horizontal offset pro rata pro tem, and adjust the next value to compensate for what has been taken off. */ else { workposstr *prev = pp - 1; workposstr *next = pp + 1; pp->xoff = mac_muldiv(next->xoff, moff - prev->moff, next->moff - prev->moff); next->xoff -= pp->xoff; } /* Move pointer to include one more entry */ page_posptr++; } /* Or in the stem flags and save extra space value if greater than what is there. */ for (i = 0; i < stave_bitvec_size; i++) { pp->stemup[i] |= upflags[i]; pp->stemdown[i] |= downflags[i]; } if (extraspace_set) { if (extraspace >= 0) { if (extraspace > pp->space) pp->space = extraspace; } else if (extraspace < pp->space) pp->space = extraspace; extraspace = 0; extraspace_set = FALSE; } /* Adjust the musical offset for the next note, and set the flag saying last item was not an aux item. */ moff += length; auxitem = FALSE; } else auxitem = TRUE; /* Grace notes are aux items */ break; /* Deal with non-note items. We deal with those that are noted for external action in this pass, and also with [space]. Those that have auxiliary positions must be noted, in order to cause a bar length check to happen. */ case b_dbar: doublebar = page_lastenddouble = TRUE; break; /* It is convenient to handle the bar number forcing item here, when we have the relevant block available. */ case b_barnum: { b_barnumstr *bn = (b_barnumstr *)p; if (!bn->flag) pos_bp->barnoforce = 255; else /* suppress */ { pos_bp->barnoforce = 1; /* force bar number */ pos_bp->barnoX = bn->x; pos_bp->barnoY = bn->y; } } break; case b_space: { b_spacestr *bs = (b_spacestr *)p; if (bs->relative) extraspace += (bs->value * main_stavemagn)/1000; else extraspace += bs->value; } extraspace_set = TRUE; break; case b_ns: { b_nsstr *bn = (b_nsstr *)p; for (i = 0; i < 8; i++) page_nextdata->notespacing[i] += bn->ns[i]; } break; case b_nsm: { int v = ((b_nsmstr *)p)->value; for (i = 0; i < 8; i++) page_nextdata->notespacing[i] = mac_muldiv(page_nextdata->notespacing[i], v, 1000); } break; case b_ens: memcpy(page_nextdata->notespacing, curmovt->notespacing, 8*sizeof(int)); break; case b_newline: case b_newpage: if (!page_startlinebar) forcenewline = type; break; case b_resume: if (mac_testNstave(page_accepteddata->notsuspend, page_stave)) mac_setstave(page_nextdata->notsuspend, page_stave); break; case b_reset: if (MaxMoff < moff) { MaxMoff = moff; page_posptr->moff = moff; } moff = 0; pp = page_postable; break; /* Changes of stave name affect the available width for the system, and so must be handled here. However, we needn't (mustn't) process them when restretching to get even widths. */ case b_name: /* change of stave name */ if (page_layout_stretchn == 1 && page_layout_stretchd == 1) { int n = ((b_namestr *)p)->n; snamestr *s = ((curmovt->stavetable)[page_stave])->stave_name; while (--n > 0 && s != NULL) s = s->next; /* Get fresh store if unchanged in this bar */ if (page_accepteddata->stavenames == page_nextdata->stavenames) page_nextdata->stavenames = store_copy(page_accepteddata->stavenames); page_nextdata->stavenames[page_stave] = s; } break; case b_text: /* remember underlay staves */ if ((((b_textstr *)p)->flags & text_ul) != 0) mac_setstave(ulaymap, page_stave); break; case b_clef: case b_time: case b_key: case b_tick: case b_comma: case b_dotbar: case b_caesura: if (moff > 0) auxitem = TRUE; break; default: if (type >= b_baditem) error_moan(57, type); break; } /* Move on to next item */ p = (bstr *)((uschar *)p + length_table[type]); type = p->type; } /* We are now at the end of the bar; set the current offset to the maximum encountered at [reset]s and handle any rounding problems caused by tuplets. */ if (moff < MaxMoff) moff = MaxMoff; /* If the current length differs from a multiple of hemidemisemiquavers by only a small amount, round it. This can happen when note lengths are divided by non-factors for tuplets. For example, in 5/8 time, if one of the quavers in {5-/6 g-g-g-g-g-g-} is turned into a hemidemisemiquaver, the bar ends up off by 1. */ moffdelta = moff % len_hdsquaver; if (moffdelta <= TUPLET_ROUND) moff -= moffdelta; else if (len_hdsquaver - moffdelta <= TUPLET_ROUND) moff += len_hdsquaver - moffdelta; /* Deal with a [space] value */ if (extraspace_set) { if (extraspace >= 0) { if (extraspace > page_posptr->space) page_posptr->space = extraspace; } else if (extraspace < page_posptr->space) page_posptr->space = extraspace; } /* If this bar was not a whole bar rest, or if it ended with something that is positioned relative to the bar line, check that it has the same length as those above it. For the first stave, endbarmoff will equal BIGNUMBER. If the lengths differ, keep the largest. Generate a warning the first time we measure the bar (when lengthwarn will be TRUE), if the length is less than the length of rest bars above, or not equal to note bars above. */ if (notjustrest || auxitem) { if (endbarmoff == BIGNUMBER) endbarmoff = 0; else { if (moff != endbarmoff && lengthwarn) error_moan(58, barnumber, page_stave, barnumber, barnumber, endbarmoff, barnumber, page_stave, moff); } if (moff > endbarmoff) endbarmoff = moff; page_posptr->moff = endbarmoff; } /* For a whole bar rest, we set the moff in the final entry if it is not set (i.e. if this is stave 1), so that subsequent staves space correctly. However, whole bar rests are not checked against other bars for length. This makes it easy to handle odd cases by using R!, though it does miss the occasional warning that might have been nice. */ else { if (page_posptr->moff == BIGNUMBER) page_posptr->moff = moff; } } /* Block for processing a stave's data */ } /* Skip for skipped staves */ } /* End of per-stave loop */ /* The previous loop has to be repeated iff page_manyrest is greater than one, in order to process the final bar of a repeat sequence. This just isn't easy to code as a standard loop. */ if (page_manyrest >= 2 && barnumber == page_barnumber) { barnumber += page_manyrest - 1; goto REPEATFIRSTSCAN; } /* If the bar contained no notes in all staves the final musical offset and spacing will not have been set. We need to set them in order to cope with other items, e.g. text or caesurae, at the end of the bar. */ if (page_posptr->moff == BIGNUMBER) { page_posptr->moff = 0; page_posptr->xoff = page_nextdata->notespacing[semibreve]; } /* Debugging: print out the basic position table */ if (main_tracepos == (-1) || main_tracepos == page_barnumber) { workposstr *t; debug_printf("-------------------------\n"); debug_printf("BAR %b BASIC POSITIONS:\n", page_barnumber); for (t = page_postable; t <= page_posptr; t++) debug_printf("%6d %6d\n", t->moff, t->xoff); } /* We have now constructed the basic position table for the bar. However, some gaps may be unacceptably narrow. We now do a series of repeat scans of the notes, gradually adjusting the spacing. */ /* The first scan adjusts for note length only, applying minimum distances that will ensure that notes do not overprint. This pass is concerned with space to the *right* of each note only -- this includes inverted notes when the stem is up. Space to the *left* is dealt with in subsequent passes. If this is a multiple rest bar we don't need to go through the whole rigmarole. The length of such bars is fixed. */ if (page_manyrest >= 2) { int i = (curmovt->codemultirests && page_manyrest < 9)? page_manyrest : 0; page_posptr->xoff = longrest_barwidths[i]*main_stavemagn; pos_bp->multi = page_manyrest; } else for (page_stave = 0; page_stave <= page_lastwanted; page_stave++) { if (mac_teststave(curmovt->staves, page_stave)) { bstr *p = ((curmovt->stavetable)[page_stave])->barindex[page_barnumber]; /* If there is any data in the bar, scan it */ if (p != NULL) { workposstr *prev = page_postable; /* previous page_postable entry */ BOOL beambreak2 = FALSE; /* secondary beambreak detected */ int length = 0, flags = 0; int minwidth = 7250; /* basic minimum width for notes */ int type = p->type; int moff = 0; /* musical offset */ int barspace = ((page_barnumber == curmovt->barcount) && !curmovt->unfinished)? 11000 : 7400; mac_setstavesize(page_stave); /* Loop for all items in the bar, including the end item, since its space value applies to the previous note. We must do the same as bar end for a [reset] which is at the bar end! */ for (;;) { int nextlength = 0; /* If we are at the end of the bar, set an appropriate minimum distance for the final note, else reset the standard. */ minwidth = (type == b_End)? barspace : 7250; /* Deal with items that are notes, and also the final barline, but skip over grace notes for now. */ if (type == b_End || (type == b_note && (nextlength = ((b_notestr *)p)->length) != 0) || (type == b_reset && moff == page_posptr->moff)) { /* Spacing checks start at the second position - note that the variable length contains the length of the *previous* note, and the flags are also those of the previous note at this point. */ if (moff != 0) { workposstr *t = prev; int extra; int n = 0; int width = 0; int wantedwidth = pos_notewidth(length); minwidth = pos_typewidth(minwidth, length, flags); if (wantedwidth < minwidth) wantedwidth = minwidth; /* Insert a small amount of space after a secondary beam break, to avoid an optical illusion. */ if (beambreak2) wantedwidth += mac_muldiv(1300, main_stavemagn, 1000); beambreak2 = FALSE; /* Scan up position table to this musical offset, accumulating horizontal widths. */ while (t < page_posptr && t->moff < moff) { n++; t++; width += t->xoff; } /* If the width is insufficient, distribute the additional space amongst all the positions between the previous note on this stave and this note. Currently just divide it evenly, but we may need to improve on that one day. The wanted width is multiplied by the layout stretch factor - this is unity for the first measuring, but greater when re-laying-out for wide stretches. */ extra = mac_muldiv(wantedwidth, page_layout_stretchn, page_layout_stretchd) - width; if (extra > 0) { int x = extra/n; workposstr *pp = prev + 1; while (pp <= t) { (pp++)->xoff += x; extra -= x; if (extra < x) x = extra; } } /* Save previous page_postable pointer */ prev = t; } /* Terminate loop if we have processed the end item */ if (type == b_End) break; /* Else if this was an end-of-bar [reset], reset the musical offset and previous pointer. No need to reset length & flags, as the first note doesn't use them. */ else if (type == b_reset) { moff = 0; prev = page_postable; } /* Adjust the musical offset, and point to next item, saving the length of this item, and other relevant parameters. */ else { length = nextlength; flags = ((b_notestr *)p)->flags; moff += length; } } /* Deal with relevant non-note items */ else switch (type) { case b_Jump: p = (bstr *)(((b_Jumpstr *)p)->next); break; case b_reset: /* not end-of-bar reset */ moff = 0; prev = page_postable; break; case b_beambreak2: beambreak2 = TRUE; break; case b_dbar: barspace = 10000; break; case b_ebar: barspace = 13000; break; /* For a chord, collect the invert and dotting flags for subsequent processing. */ case b_chord: /* 2nd and subsequent notes */ { b_chordstr *pc = (b_chordstr *)p; flags |= pc->flags & (nf_dotted + nf_invert); } break; } /* Move on to next item */ p = (bstr *)((uschar *)p + length_table[type]); type = p->type; } /* End of item on stave loop */ } /* Block for processing a stave's data */ } } /* End of per-stave loop */ /* Debugging: print out the note-spaced position table */ if (main_tracepos == (-1) || main_tracepos == page_barnumber) { workposstr *t; debug_printf("BAR %b NOTE-SPACED POSITIONS:\n", page_barnumber); for (t = page_postable; t <= page_posptr; t++) debug_printf("%6d %6d\n", t->moff, t->xoff); } /* Now we do a scan for adjacent up and down stems. We can make an adjustment with confidence only if all staves require it; otherwise it looks silly. Other cases may need manual adjustment. This scan can be done on the page_postable only, using the flag bits already set up. Take care not to shorten distance below the absolute minimum! */ for (left = page_postable; left < page_posptr - 1; left++) { workposstr *right = left + 1; if (!mac_anystave(left->stemup) && !mac_anystave(right->stemdown) && mac_anystave(left->stemdown) && mac_samestave(left->stemdown, right->stemup)) { if (right->xoff >= 11000) right->xoff -= 1000; } else if (!mac_anystave(left->stemdown) && !mac_anystave(right->stemup) && mac_anystave(left->stemup) && mac_samestave(left->stemup, right->stemdown)) right->xoff += 1000; } /* Debugging: print out the new spacings */ if (main_tracepos == (-1) || main_tracepos == page_barnumber) { workposstr *t; debug_printf("BAR %b NOTE-SPACED/STEMMED POSITIONS:\n", page_barnumber); for (t = page_postable; t <= page_posptr; t++) debug_printf("%6d %6d\n", t->moff, t->xoff); } /* Now we do a pass to insert space for things to the left of notes, like accidentals, clefs, caesuras, etc. We have to scan through to each note before handling them, as they come in a fixed (well, almost fixed) order. Use a word of flag bits to remember those that have a width associated with them, and also if anything at all has been encountered. If the bar starts with an lrepeat on the barline, a flag gets set so that we can add space afterwards. */ pos_barstartrepeat = FALSE; /* If we are handling a sequence of rest bars, we must process the last bar as well as the first, in case there are clefs at the end of the last bar. It isn't straightforward to write this as any kind of a loop, so we resort to the dreaded GOTO for simplicity. */ barnumber = page_barnumber; REPEATSPACESCAN: for (page_stave = 0; page_stave <= page_lastwanted; page_stave++) { if (mac_teststave(curmovt->staves, page_stave)) { bstr *p = ((curmovt->stavetable)[page_stave])->barindex[barnumber]; /* If there is any data in the bar, scan it */ if (p != NULL) { workposstr *previous = NULL; BOOL arp_read = FALSE; BOOL spread_read = FALSE; int type = p->type; int moff = 0; /* musical offset */ int xflags = 0; /* flags for encountered items */ int prevlength = -1; /* length of previous note */ int prevflags = 0; /* flags on previous note/chord */ int ensured = 0; int gracevector[posx_maxgrace + 1]; int timevector[posx_maxtime + 1]; int keyvector[posx_maxkey + 1]; gracevector[0] = 0; /* count of gracenotes */ timevector[0] = 0; /* count of time signatures */ keyvector[0] = 0; /* count of key signatures */ mac_setstavesize(page_stave); /* relative size of this stave */ /* Loop for all items in the bar */ while (type != b_End) { b_notestr *note; int length; switch(type) { case b_Jump: p = (bstr *)(((b_Jumpstr *)p)->next); break; /* Deal with notes */ case b_note: note = (b_notestr *)p; length = note->length; /* Count gracenotes and note something has been encountered */ if (length == 0) { fontsizestr *fontsizes = curmovt->fontsizes; int gracecount = gracevector[0] + 1; if (gracecount > posx_maxgrace) gracecount = posx_maxgrace; gracevector[gracecount] = mac_muldiv(note->accleft, fontsizes->fontsize_grace, fontsizes->fontsize_music); gracevector[0] = gracecount; xflags |= xf_grace; } /* A real note -- first collect data for accidentals, then if anything precedes the note, call a routine to do most of the work. Always update the moff and save the note item for use next time. */ else { int thisflags = 0; int accleft = 0; /* Collect the maximum accidental width for a chord, and also check for inverted notes. Update the p pointer to point to the last note of the chord, to save scanning it again. */ do { int a = note->accleft; if ((thisflags & (nf_invert | nf_stemup)) == nf_invert && a < 4500) a = 4500; if (accleft < a) accleft = a; thisflags |= note->flags; p = (bstr *)note; mac_advancechord(note); } while (note->type == b_chord); /* Having got the accidental width, we need to add a teeny bit more space on the left. */ if (accleft > 0) accleft += 600; /* Breves get their left bars printed to the left of the actual note position. We can treat this as a little bit of extra accidental space. The distance is in fact 2.3 points, but because things to the left get at least 11 points (as opposed to 7 points for notes only) we just need to ensure that something is inserted if there are no other accidentals. BUT, at the start of a bar, accidentals are shifted left, so in that case, leave a bit more. */ if (length >= len_breve && accleft == 0) accleft = (moff == 0)? 3000 : 250; /* Extra space is needed for arpeggio or spread marks. This too can be treated as extra accidental space. */ if (arp_read) { accleft += 6000; arp_read = FALSE; } if (spread_read) { accleft += 6000; spread_read = FALSE; } /* If accidental space is needed, or if there are other things to the left of the note, we call a separate procedure to do the work. This is also called at end of bar for the last space. */ if (xflags != 0 || accleft != 0) { /* Arrange to keep the widest final key/time for warning bars */ if (timevector[0] > 0) { if (timevector[timevector[0]] > MaxTimeWidth) MaxTimeWidth = timevector[timevector[0]]; } if (keyvector[0] > 0) { if (keyvector[keyvector[0]] > MaxKeyWidth) MaxKeyWidth = keyvector[keyvector[0]]; } /* Now do the insertion work */ previous = pos_insertextras(moff, xflags, accleft, keyvector, timevector, gracevector, previous, prevlength, prevflags); /* Reset all the flags for the next note */ xflags = 0; timevector[0] = 0; keyvector[0] = 0; gracevector[0] = 0; } /* If there are no extras on this note, just get previous up-to-date. */ else { if (previous == NULL) previous = page_postable; while (previous->moff < moff) previous++; } /* Handle any ensured value for this note (which previous is now pointing at) */ if (ensured > 0) { int between = 0; if (prevlength > 0) { workposstr *last = previous - 1; while (last->moff > moff - prevlength) { between += last->xoff; last--; } } if (previous->xoff + between < ensured) { previous->xoff = ensured - between; ensured = 0; } } /* Remember previous note's length and its flags */ prevlength = length; prevflags = thisflags; moff += length; } break; case b_ensure: ensured = (main_stavemagn * ((b_ensurestr *)p)->value)/1000; break; /* Deal with non-note items. Clefs, keys, and times at the starts of lines will be marked for suppression. */ case b_reset: moff = 0; previous = NULL; prevlength = -1; prevflags = 0; break; case b_lrepeat: xflags |= xf_lrepeat; /* If this repeat follows a key or time signature not at the start of a bar, move its position so that it prints after them, i.e. in the same order as in the input. */ if ((xflags & xf_keytime) != 0 || page_startchangetime) pos_bp->posxRL = -posx_RLright; break; case b_rrepeat: xflags |= xf_rrepeat; break; case b_comma: xflags |= xf_comma; break; case b_tick: xflags |= xf_tick; break; case b_caesura: xflags |= xf_caesura; break; case b_dotbar: xflags |= xf_dotbar; break; /* Clefs are the one thing that are allowed at the end of a multiple repeat bar. Fudge the spacing. Update the working copy for use with special key signatures. */ case b_clef: if (!((b_clefstr *)p)->suppress) { xflags |= xf_clef; if (barnumber != page_barnumber && moff != 0) page_posptr->xoff += 15*main_stavemagn; page_sysclef[page_stave] = ((b_clefstr *)p)->trueclef; } break; case b_setclef: page_sysclef[page_stave] = ((b_setclefstr *)p)->value; break; case b_key: { b_keystr *k = (b_keystr *)p; if (!k->suppress) { int keycount = keyvector[0] + 1; if (keycount > posx_maxkey) keycount = posx_maxkey; xflags |= xf_keytime; keyvector[keycount] = (page_startlinebar? 0 : 4000) + misc_keywidth(k->key, page_sysclef[page_stave]); keyvector[0] = keycount; if (mac_teststave(page_accepteddata->notsuspend, page_stave)) page_warnkey |= k->warn; } } break; case b_time: { b_timestr *t = (b_timestr *)p; if (!t->suppress) { int timecount = timevector[0] + 1; if (timecount > posx_maxtime) timecount = posx_maxtime; timevector[timecount] = misc_timewidth(t->time) + 5000; timevector[0] = timecount; xflags |= xf_keytime; if (curmovt->showtime && mac_teststave(page_accepteddata->notsuspend, page_stave)) page_warntime |= t->warn; } } break; case b_ornament: { b_ornamentstr *o = (b_ornamentstr *)p; if (o->ornament == or_arp || o->ornament == or_arpu || o->ornament == or_arpd) arp_read = TRUE; else if (o->ornament == or_spread) spread_read = TRUE; } break; } /* Move on to next item */ p = (bstr *)((uschar *)p + length_table[type]); type = p->type; } /* Process for auxiliaries at the end of the bar */ if (xflags != 0) pos_insertextras(moff, xflags, 0, keyvector, timevector, gracevector, previous, prevlength, prevflags); /* Handle [ensure] at end of bar */ if (ensured > 0) { int between = 0; if (prevlength > 0) { workposstr *last = page_posptr - 1; while (last->moff > moff - prevlength) { between += last->xoff; last--; } } if (page_posptr->xoff + between < ensured) page_posptr->xoff = ensured - between; } } } /* Block for processing a stave's data */ } /* End of per-stave loop */ /* The previous loop has to be repeated iff page_manyrest is greater than one, in order to process the final bar of a repeat sequence. This just isn't easy to code as a standard loop. */ if (page_manyrest >= 2 && barnumber == page_barnumber) { barnumber += page_manyrest - 1; goto REPEATSPACESCAN; } /* Add a bit of space if the bar is not the first on a line, and starts with a left repeat. */ if (pos_barstartrepeat) { page_postable->xoff += 6500; /* extra space at start bar */ page_xxwidth -= 6500; /* but not for xxwidth */ } /* Debugging: print out the postable yet again */ if (main_tracepos == (-1) || main_tracepos == page_barnumber) { workposstr *t; debug_printf("BAR %b ALL-IN POSITIONS:\n", page_barnumber); for (t = page_postable; t <= page_posptr; t++) debug_printf("%6d %6d\n", t->moff, t->xoff); } /* If enabled, we now do a scan to check that any underlaid text is not going to overprint. Assume all is well at the start and end of a bar -- we have to, since we don't do inter-bar spacing. Underlay and overlay are handled separately, but for multiple verses the widest syllable is taken. */ if (curmovt->spreadunderlay) { BOOL spreadsome = FALSE; for (page_stave = 1; page_stave <= page_lastwanted; page_stave++) if (mac_teststave(ulaymap, page_stave)) { bstr *p = ((curmovt->stavetable)[page_stave])->barindex[page_barnumber]; /* If there is any data in the bar, scan it */ if (p != NULL) { workposstr *previousO = page_postable; workposstr *previousU = page_postable; BOOL hadulay = FALSE; BOOL hadolay = FALSE; int nextleftU = 0; int nextleftO = 0; int nextrightU = 0; int nextrightO = 0; int lastrightU = 0; int lastrightO = 0; int type = p->type; int moff = 0; mac_setstavesize(page_stave); /* Loop for all items in the bar */ while (type != b_End) { if (type == b_Jump) { p = (bstr *)(((b_Jumpstr *)p)->next); } /* Deal with items that are notes. (No need to look at subsequent notes of a chord.) */ else if (type == b_note) { b_notestr *pp = (b_notestr *)p; int length = pp->length; /* Ignore grace notes and notes with no {und,ov}erlay>. We have to process underlay and overlay entirely separately. */ if (hadulay && length > 0) { workposstr *this = previousU; while (this->moff < moff) this++; /* Do nothing at bar start */ if (moff > 0) { int avail = 0; workposstr *t = previousU + 1; while (t <= this) avail += (t++)->xoff; avail -= lastrightU - nextleftU; if (avail < 0) { workposstr *tt = previousU + 1; while (tt->moff < moff + posx_max) tt++; tt->xoff -= avail; spreadsome = TRUE; } } lastrightU = nextrightU; nextleftU = nextrightU = 0; hadulay = FALSE; previousU = this; } /* Similar code for overlay */ if (hadolay && length > 0) { workposstr *this = previousO; while (this->moff < moff) this++; /* Do nothing at bar start */ if (moff > 0) { int avail = 0; workposstr *t = previousO + 1; while (t <= this) avail += (t++)->xoff; avail -= lastrightO - nextleftO; if (avail < 0) { workposstr *tt = previousO + 1; while (tt->moff < moff + posx_max) tt++; tt->xoff -= avail; spreadsome = TRUE; } } lastrightO = nextrightO; nextleftO = nextrightO = 0; hadolay = FALSE; previousO = this; } moff += length; } /* Deal with text items - only interested in underlay, and then only in syllables which aren't just "=". */ else if (type == b_text) { b_textstr *t = (b_textstr *)p; int flags = t->flags; if ((flags & text_ul) != 0 && (t->ulen != 1 || t->string[0] != '=')) { int w = 0; int left, right, j; int fontsize = mac_muldiv(main_stavemagn, ((curmovt->fontsizes)->fontsize_text)[t->size], 1000); int *matrix = ((curmovt->fontsizes)->fontmatrix_text)[t->size]; BOOL same = TRUE; uschar ss[256]; uschar *pp = t->string; uschar *qq = ss; uschar *cc = ss; left = t->x; if (matrix != NULL) memcpy(font_transform, matrix, 4*sizeof(int)); /* Have to check through and mirror the stuff done for centring. */ i = 0; for (j = 0; j < 2; j++) { int k; for (; i < t->ulen && *pp != '^'; i++) { if (*pp == '\\') { int dummy1, dummy2, len; uschar *rr = pp; uschar dummy3[80]; pp = string_escape(pp+1, dummy3, &dummy1, &dummy2); len = pp - rr; Ustrncpy(qq, rr, len); qq += len; i += len - 1; } else if (*pp == '#') { *qq++ = ' '; pp++; } else *qq++ = *pp++; } *qq = 0; if (i >= t->ulen || j == 1) break; for (k = i+1; k < t->ulen; k++) if ((t->string)[k] == '^') break; if (k >= t->ulen) break; left -= string_width(ss, t->font, fontsize); cc = qq; pp++; i++; } /* Centre if underlay style 0 or if covering one note only or if explicitly requested via ^. */ if (curmovt->underlaystyle == 0 || (*pp != '=' && (*pp != '-' || pp[1] != '='))) { w = string_width(cc, t->font, fontsize); if (w != 0) left += 3*main_stavemagn - w/2; if (*pp == '^') { same = FALSE; pp++; for (i++; i < t->ulen; i++) { if (*pp == '\\') { int dummy1, dummy2, len; uschar *rr = pp; uschar dummy3[80]; pp = string_escape(pp+1, dummy3, &dummy1, &dummy2); len = pp - rr; Ustrncpy(qq, rr, len); qq += len; i += len - 1; } else if (*pp == '#') { *qq++ = ' '; pp++; } else *qq++ = *pp++; } *qq = 0; } } else same = FALSE; /* Cut off trailing spaces, but not if they were originally # characters. */ pp = t->string + t->ulen; while (qq > ss && qq[-1] == ' ' && pp[-1] != '#') { qq--; pp--; same = FALSE; } *qq = 0; /* Fontsize/4 is the space to the next syllable */ right = left + fontsize/4 + (same? w : string_width(ss, t->font, fontsize)); /* Correct for leading spaces, but not if they were originally # characters. */ if (*ss == ' ') { pp = t->string; qq = ss; while (*pp++ != '#' && *qq++ == ' '); /* Test order matters */ *qq = 0; left += font_stringwidth(ss, t->font, fontsize); } /* Keep maximum for verses, separately for under- and overlay */ if ((flags & text_above) != 0) { if (nextleftO > left) nextleftO = left; if (nextrightO < right) nextrightO = right; hadolay = TRUE; } else { if (nextleftU > left) nextleftU = left; if (nextrightU < right) nextrightU = right; hadulay = TRUE; } font_reset(); } } /* Deal with resets */ else if (type == b_reset) { previousO = page_postable; previousU = page_postable; hadulay = FALSE; hadolay = FALSE; nextleftU = 0; nextleftO = 0; nextrightU = 0; nextrightO = 0; lastrightU = 0; lastrightO = 0; moff = 0; } /* Move on to next item */ p = (bstr *)((uschar *)p + length_table[type]); type = p->type; } } /* Block for processing a stave's data */ } /* End of per-stave loop */ if (spreadsome && (main_tracepos == (-1) || main_tracepos == page_barnumber)) { workposstr *t; debug_printf("BAR %b UNDERLAY SPREAD POSITIONS:\n", page_barnumber); for (t = page_postable; t <= page_posptr; t++) debug_printf("%6d %6d\n", t->moff, t->xoff); } } /* End of passes through the data. Do some final adjustments. */ /* If the bar ends with a double bar line, allow space for it */ if (doublebar) page_posptr->xoff += 1600; else if (page_barnumber >= curmovt->barcount && !curmovt->unfinished) page_posptr->xoff += 2000; /* If the bar starts with an accidental position, we can reduce the initial starting position to be nearer the bar line. */ if (!page_startlinebar && page_postable->auxid == posx_acc && page_barlinewidth > 3000) { int notepos = page_postable->xoff + (page_postable+1)->xoff; if (notepos > page_barlinewidth - 3000) notepos = page_barlinewidth - 3000; page_postable->xoff -= notepos; } /* If the bar starts with a clef, we can reduce the initial starting position to be nearer the bar line. This does not happen in conventional music, but is possible after an incipit and other special cases. We also add space after the clef if the next thing is a note. Finally, include the startline spacing parameters for the clef and any following signatures. */ if (page_postable->auxid == posx_clef && !page_startlinebar) { workposstr *t = page_postable; if (page_barlinewidth > 2000) { int adjust = page_barlinewidth - 2000; page_postable->xoff -= adjust; if (page_postable[1].auxid == 0) page_postable[1].xoff += adjust; } page_postable->xoff += page_startline->clefspace; while (++t <= page_posptr && posx_keyfirst <= t->auxid && t->auxid <= posx_timelast) { if (t->auxid <= posx_keylast) t->xoff += page_startline->keyspace; else t->xoff += page_startline->timespace - 4*largestmagn; } /*** This would make the spacing as at line start, but stretching makes it look bad. If ever the stretching is changed so as not to move the first note when it follows other things, instate this, and the same below. if (t <= page_posptr) t->xoff += 3*largestmagn + page_startline->notespace; ***/ } /* If the bar starts with key and/or time signatures, we can reduce the initial starting position to be nearer the bar line (provided the barlinewidth is large enough), and reduce any gaps between them. However, we must increase the position if the previous bar ended with a wide barline, or if a double barline is going to be generated for a key signature. The keyspace and timespace values are inserted before the first signature, depending on the type. We must also set the special width used for printing warning bars at the ends of lines. At the start of a line, we make the reduction for any signature, since the presence of an entry indicates a second signature. */ else if (page_postable->auxid == posx_keyfirst || page_postable->auxid == posx_timefirst) { workposstr *t = page_postable + (page_startlinebar? 0:1); page_postable->xoff += (page_postable->auxid == posx_keyfirst)? curmovt->keyspacing : curmovt->timespacing; /* Move back start for wide enough barline spacing */ if (page_barlinewidth > 3000) page_postable->xoff += 3000 - page_barlinewidth; /* Move forward start if wide bar line */ if (Oldlastendwide || (page_postable->auxid == posx_keyfirst && curmovt->keydoublebar && !Oldlastenddouble)) page_postable->xoff += 2000; /* Handle multiple signatures and compute the special width. */ page_xxwidth += page_postable->xoff; for (; t <= page_posptr && t->auxid >= posx_keyfirst && t->auxid <= posx_timelast; t++) { if (t->auxid <= posx_keylast) { t->xoff -= 3*largestmagn; if (page_warnkey) page_xxwidth += t->xoff; } else { t->xoff += page_startline->timespace - 4*largestmagn; if (page_warntime) page_xxwidth += t->xoff; } } /* Add in space for the final item. MaxTimeWidth has extra space added to it which seems to be too much in the case when a key signature could have been present, but was suppressed by [nowarn]. In that case (only), we reduce the value. This is a fudge because I don't want to mess with the rest of the code when adding the independent [nowarn] facility. */ if (!page_warnkey && MaxKeyWidth > 0) MaxTimeWidth -= 8000; page_xxwidth += (page_warnkey && page_warntime)? ((MaxKeyWidth > MaxTimeWidth)? MaxKeyWidth:MaxTimeWidth) : (page_warnkey? MaxKeyWidth : MaxTimeWidth); /* Add notespace to midline bars */ /*** This would make the spacing as at line start, but stretching makes it look bad. If ever the stretching is changed so as not to move the first note when it follows other things, instate this. if (!page_startlinebar && t <= page_posptr) t->xoff += 3*largestmagn + page_startline->notespace; ****/ /* If the keys+times are followed by a repeat, bring it nearer too, and if the thing following that is an accidental, it can come nearer. Also if a time (but not key) signature is followed by an accidental, close the gap slightly. */ if (t <= page_posptr) { if (t->auxid == posx_RLright) { (t++)->xoff -= 2000; if (t <= page_posptr && t->auxid == posx_acc) t->xoff -= 2000; } else if (posx_timefirst <= (t-1)->auxid && (t-1)->auxid <= posx_timelast && t->auxid == posx_acc) t->xoff -= 2000; } } /* We now have to check up on grace notes preceding notes with accidentals. If the grace notes are on staves that do not have accidentals, we do not need to leave more space between the grace notes and the accidentals. This copes with several common cases, but it does not do the complete job. */ for (left = page_postable; left < page_posptr; left++) { workposstr *right = left + 1; if (right->auxid == posx_acc && left->auxid >= posx_gracefirst && left->auxid <= posx_gracelast && (left->posstaves & right->posstaves) == 0) { right->xoff -= (right+1)->xoff; if (right->xoff < 0) right->xoff = 0; } } /* So far we have been working with offsets between the notes, but the final result must have offsets from the start of the bar. At the same time we can incorporate the values of any [space] directives. */ page_postable->xoff += page_postable->space; for (left = page_postable + 1; left <= page_posptr; left++) left->xoff += left->space + (left-1)->xoff; /* Debugging output */ if (main_tracepos == (-1) || main_tracepos == page_barnumber) { workposstr *t; debug_printf("BAR %b FINAL POSITIONS:\n", page_barnumber); debug_printf("%6d %6d %6d\n", page_postable->moff, 0, page_postable->xoff); for (t = page_postable + 1; t <= page_posptr; t++) debug_printf("%6d %6d %6d\n", t->moff, t->xoff - (t-1)->xoff, t->xoff); if (forcenewline != b_End) debug_printf("!! Newline forced !!\n"); } /* Now copy the retained data - (moff, xoff) pairs - into a vector which is attached to the bar's data structure. */ left = page_postable; pos_bp->count = page_posptr - page_postable + 1; outptr = pos_bp->vector = store_Xget(pos_bp->count * sizeof(posstr)); while (left <= page_posptr) { outptr->moff = left->moff; (outptr++)->xoff = (left++)->xoff; } /* Normally, return the width of the bar, up to the bar line; if a new line or page is being forced, return a large number. */ if (forcenewline == b_End) return page_posptr->xoff; else { if (forcenewline == b_newpage) page_newpagewanted = TRUE; return 10000000; } } /* End of postable.c */ pmw-4.27/src/sethairpin.c0000644000222100022210000001053012247665016013450 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2008 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: September 2008 */ /* This file contains code for outputting hairpins */ #include "pmwhdr.h" #include "outhdr.h" #include "pagehdr.h" /************************************************* * Deal with start of hairpin * *************************************************/ /* This remembers the hairpin parameters for later use. Arguments: h the hairpin data for the start of the hairpin x the x coordinate of the start of the hairpin Returns: nothing */ void out_setstarthairpin(b_hairpinstr *h, int x) { hairpinstr *hh = store_Xget(sizeof(hairpinstr)); hh->hairpin = h; hh->x = x; hh->maxy = -BIGNUMBER; hh->miny = BIGNUMBER; bar_cont->hairpin = hh; if ((h->flags & hp_bar) != 0) hh->x = out_startlinebar? (out_sysblock->timexposition + out_sysblock->xjustify) : out_lastbarlinex; /* The /bar option overrides /h */ else if ((h->flags & hp_halfway) != 0) out_hairpinhalf = TRUE; } /************************************************* * Draw a hairpin * *************************************************/ /* This actually draws the hairpin. Arguments: h1 the data for the end of the hairpin x1 the x coordinate of the end of the hairpin Returns: nothing */ void out_drawhairpin(b_hairpinstr *h1, int x1) { hairpinstr *hh = bar_cont->hairpin; b_hairpinstr *h0 = hh->hairpin; BOOL skip = FALSE; int flags = h0->flags; int abs = (flags & hp_abs) != 0; int cwidth = h0->width/2; int dwidth = cwidth; int thickness = curmovt->hairpinlinewidth; int x0 = hh->x; int offset, y0, y1, y0hole, y1hole; /* Compute basic offset from stave base */ if ((flags & hp_below) == 0) { offset = abs? 16000 : (((hh->maxy > 16000)? hh->maxy + 6000 : 22000) + (h0->width - 7000)/2); } else { offset = abs? 0 : (((hh->miny < 0)? hh->miny - 6000 : -6000) - (h0->width - 7000)/2); if ((flags & hp_middle) != 0 && out_stave < out_laststave) { int gap = out_sysblock->stavespacing[out_stave]/2; int st = out_stave + 1; while (gap == 0 && st < out_laststave) if (mac_teststave(out_sysblock->notsuspend, st)) gap = out_sysblock->stavespacing[st++]/2; gap -= 8 * main_stavemagn; if (-gap < offset) offset = -gap; } } /* At start of line, start just before first note; also set small gap at start of hairpin. If continued decrescendo, start at smaller width. */ if (x0 == 0) { x0 = out_sysblock->firstnoteposition - 4*main_stavemagn; y0 = h0->y + ((h1 == NULL)? 0 : h1->su); y0hole = main_stavemagn; dwidth = (80*dwidth)/100; } else /* not start of line */ { x0 += h0->x; y0 = h0->y; y0hole = 0; } /* Add manual right-hand adjustment; at end of line we use the left-hand value. Set small gap in decrescendo at end of line. */ if (h1 != NULL) { if ((h1->flags & hp_bar) != 0) /* /bar overrides /h */ { x1 = out_barlinex; } else if ((h1->flags & hp_halfway) != 0) { x1 += mac_muldiv(out_barx + out_findXoffset(out_moff) - x1 - 6*main_stavemagn, h1->h, 1000); } x1 += h1->x; y1 = h0->y + h1->y; y1hole = 0; } else /* end of line; reduce crescendo width a bit */ { y1 = h0->y + h0->su; y1hole = main_stavemagn; cwidth = (cwidth*80)/100; } /* Final y values */ y0 = ((y0 + offset)*main_stavemagn)/1000; y1 = ((y1 + offset)*main_stavemagn)/1000; /* Draw the hairpin, enforcing a minimum length of 10 points, except at the end of line where we can suppress a decrescendo. We can't suppress a crescendo - the user will have to fix. */ if (x1 - x0 < 10*main_stavemagn) { if (h1 != NULL || h0->opt == '<') x1 = x0 + 10*main_stavemagn; else skip = TRUE; } if (!skip) { if (h0->opt == '>') { ps_line(x0, y0 + dwidth, x1, y1 + y1hole, thickness, 0); ps_line(x0, y0 - dwidth, x1, y1 - y1hole, thickness, 0); } else { ps_line(x0, y0 + y0hole, x1, y1 + cwidth, thickness, 0); ps_line(x0, y0 - y0hole, x1, y1 - cwidth, thickness, 0); } } /* Free the dynamic store and clear its pointer. */ store_free(hh); bar_cont->hairpin = NULL; } /* End of sethairpin.c */ pmw-4.27/src/read5.c0000644000222100022210000013643512247665016012317 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2012 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: January 2013 */ /* This file contains part V of the code for reading in a PMW score file - code for reading one note. */ #include "pmwhdr.h" #include "readhdr.h" #define ornset_trill 1 #define ornset_trem 2 #define ornset_mordturn 4 /* This table is used to convert from an accidental-less note in absolute units to a stave-relative note. Only "white" notes are ever used to index into this table. */ static uschar pitch_stave[] = { 4, 0, 6, 0, 8, 10, 0, 12, 0, 14, 0, 16, 18, 0, 20, 0, 22, 24, 0, 26, 0, 28, 0, 30, 32, 0, 34, 0, 36, 38, 0, 40, 0, 42, 0, 44, 46, 0, 48, 0, 50, 52, 0, 54, 0, 56, 0, 58, 60, 0, 62, 0, 64, 66, 0, 68, 0, 70, 0, 72, 74, 0, 76, 0, 78, 80, 0, 82, 0, 84, 0, 86, 88, 0, 90, 0, 92, 94, 0, 96, 0, 98, 0,100, 102, 0,104, 0,106,108, 0,110, 0,112, 0,114, 116, 0,118, 0,120,122, 0,124, 0,126, 0,128 }; /* This table is used to convert a pitch obtained fom the above table into a pitch relative to a stave, where 128 is the bottom line on the stave. This table is for "real" clefs only. */ static uschar pitch_clef[] = { 64, 68, 72, 76, 80, 84, 84, 88, 92 }; /* Tr S M A Te cBa Ba B DB */ /* These tables give the extra "accidental left" amounts for accidentals in brackets */ /* - ## $ $$ % # */ static int rbra_left[] = { 5800, 5800, 5300, 5300, 5800, 6800 }; static int sbra_left[] = { 5800, 6800, 6300, 6300, 6800, 6800 }; /* Static variables used for communication between read_note() and post_note() */ static int maxpitch, minpitch, chordcount; static int notetype, length, stemforce; static BOOL seconds; static tiedata this_tiedata[max_chordsize]; /* This variable is set true when the only notes in a bar so far are notated using "p" and "x" and are tied to their predecessors. It is used to determine whether a following "p" or "x" should have its accidentals printed or not. */ static BOOL onlytieddup; /* Used for copying ornaments for 'x' notes */ static b_ornamentstr *last_note_ornament; /************************************************* * Read pitch for [printpitch] * *************************************************/ /* This function reads a stave-relative pitch for use by the [printpitch] directive. It is placed here because it uses the tables in this module. The character is already current on entry. Arguments: none Returns: the pitch */ int read_stavepitch(void) { int pitch; read_ch = tolower(read_ch); if ('a' > read_ch || read_ch > 'g') { error_moan(10, "note letter"); return 128; } pitch = stave_octave + 36 + read_basicpitch[read_ch - 'a']; next_ch(); while (read_ch == '\'') { pitch += 12; next_ch(); } while (read_ch == '`' ) { pitch -= 12; next_ch(); } return pitch_stave[pitch] + pitch_clef[stave_clef]; } /************************************************* * Read optional move (or bracket) for ornament * *************************************************/ /* This is also used for dynamics. Arguments: ax address of the x movement, or NULL if not allowed ay address of the y movement af address of the bflags field, or NULL if not allowed Returns: nothing */ static void ornmove(int *ax, int *ay, uschar *af) { *ay = 0; if (ax != NULL) *ax = 0; if (af != NULL) *af = 0; while (read_ch == '/') { next_ch(); switch (read_ch) { case 'u': *ay += read_movevalue(); break; case 'd': *ay -= read_movevalue(); break; case 'l': case 'r': if (ax == NULL) error_moan(10, "/u or /d"); else *ax += ((read_ch == 'r')?(+1):(-1)) * read_movevalue(); break; default: if (af == NULL) error_moan(10, "/u, /d, /l, or /r"); else switch (read_ch) { case 'b': *af &= ~(DO_SBRA|DO_SKET); *af |= DO_RBRA | DO_RKET; break; case 'B': *af &= ~(DO_RBRA|DO_RKET); *af |= DO_SBRA | DO_SKET; break; case '(': *af &= ~DO_SBRA; *af |= DO_RBRA; break; case '[': *af &= ~DO_RBRA; *af |= DO_SBRA; break; case ')': *af &= ~DO_SKET; *af |= DO_RKET; break; case ']': *af &= ~DO_RKET; *af |= DO_SKET; break; default: error_moan(10, "/u, /d, /l, /r, /b, /B, /(, /), /[, or /]"); break; } if (read_ch != '\\') next_ch(); /* \ means there was an error */ break; } } } /************************************************* * Read optional move or bracket for dynamic * *************************************************/ /* This function inserts a dynmove item into the data list. Argument: the dynamic Returns: nothing */ static void dynmove(int dynamic) { b_dynmovestr *d; if (read_ch != '/') return; d = store_getitem(b_dynmove); d->dynamic = dynamic; ornmove(&(d->x), &(d->y), &(d->bflags)); } /************************************************* * Output underlay text for one note * *************************************************/ /* This function processes underlay strings that have been saved up, inserting an appropriate b_text item into the data, with text(s) for one note. Arguments: none Returns: nothing */ static void do_underlay(void) { ulaypend **pp = &stave_pendulay; ulaypend *p = stave_pendulay; /* Loop for each "verse" */ while (p != NULL) { int endfont; uschar *s = p->string; b_textstr *q; if (p->halfway) { b_textXstr *xx = store_getitem(b_textX); xx->rotate = 0; xx->halfway = p->halfway; p->halfway = 0; } q = store_getitem(b_text); q->ulevel = p->level; q->size = p->size; q->htype = p->htype; q->font = endfont = p->font; q->flags = p->flags; q->string = s; q->x = p->x; q->y = p->y; /* If we are at an equals sign, just output the one character; otherwise search for the end of the syllable. We must correctly skip over escapes, and also find the final font, to set for the next syllable. */ if (*s == '=') s++; else { int font, revert; uschar ss[20]; for (;;) { while (*s != '\\' && *s != '-' && *s != ' ' && *s != '=' && *s != 0) s++; if (*s != '\\') break; s = string_escape(++s, ss, &font, &revert); if (font >= 0 && !revert) endfont = font; } } /* Set string count - don't include a minus sign, but skip over it */ q->ulen = s - p->string; if (*s == '-') s++; /* Skip spaces between syllables */ while (*s == ' ') s++; /* Advance to next verse, freeing the current control block if reached the end of the string. */ if (*s == 0) { *pp = p->next; store_free(p); } else { p->string = s; p->font = endfont; pp = &(p->next); } p = *pp; } } /************************************************* * Processing after reading a note * *************************************************/ /* This is called after reading an original note, or after copying a previous note using 'x'. The flag is TRUE if called after an original note or after the final copied note, in which case things that can follow a note are processed. We first have to choose a stem direction, which is tied in with the beaming and which we can't always complete at this point. Argument: TRUE for original note or last of some copies Returns: nothing */ static void post_note(BOOL final_copy) { int i; int pletending = FALSE; int stempitch = (maxpitch + minpitch)/2; /* zero for rests */ if (!stave_lastwastied) onlytieddup = FALSE; /* Set up the tie data for this note before any chord sorting, because it has to be sorted along with the chord. */ for (i = 0; i < chordcount; i++) stave_tiedata[i] = this_tiedata[i]; /* A note or rest longer than a quaver terminates a beam, unless it is a grace note */ if (notetype < quaver && stave_beaming && length > 0) read_setbeamstems(); /* Deal with non-rests and non-grace notes */ if (stempitch > 0 && length != 0) { stave_lastgracestem = 0; /* unset grace note forcing */ /* If already beaming, count notes in the beam */ if (stave_beaming) stave_beamcount++; /* Else a note shorter than a crotchet starts a beam */ else if (notetype > crotchet) { stave_beaming = TRUE; stave_beamfirstnote = stave_firstnoteptr; /* remember first note */ stave_beamcount = 1; if (stemforce == 0) stemforce = stave_stemforce; if (stemforce != 0) { stave_beamstemforce = stemforce; mac_setstackedstems((stave_beamstemforce > 0)? nf_stemup : 0); } else { stave_beamstemforce = 0; stave_maxaway = stempitch; } } /* Deal with beamed and non-beamed notes which have their stem direction forced. Note that we must call setstemflag even for down stems, because it does other work for chords. */ if (stemforce != 0 || (!stave_beaming && stave_stemforce != 0)) { int flag; if (stemforce == 0) stemforce = stave_stemforce; flag = (stemforce > 0)? nf_stemup : 0; mac_setstemflag(stave_firstnoteptr, flag); /* For non-beamed notes, set the flag for any pending queued notes, and remember the direction. We don't remember the direction for forced notes in the middle of beams -- these are usually eccentric. */ if (!stave_beaming) { mac_setstackedstems(flag); stave_laststemup = flag != 0; } } /* Deal with beamed note that does not have a forced stem - if the beam's stem direction was forced, set this note's direction. Otherwise use its pitch in computing the maxaway value, and add it to the beam stack. */ else if (stave_beaming) { /* If the previous note was tied and we are at the start of a beam, copy the stem direction of the previous note, if known. */ if (stave_lastwastied && stave_beamcount == 1 && stave_stemstackptr == 0) stave_beamstemforce = stave_laststemup? 1 : -1; if (stave_beamstemforce != 0) { /* NB */ mac_setstemflag(stave_firstnoteptr, (stave_beamstemforce > 0)? nf_stemup : 0); } else { if (abs(stempitch-P_3L) > abs(stave_maxaway-P_3L)) stave_maxaway = stempitch; stave_beamstack[stave_beamstackptr++] = stave_firstnoteptr; } } /* Deal with non-beamed note that does not have a forced stem - if the stem direction is immediately decidable, use it and empty the stack of any pending notes awaiting a decision. Otherwise add this note to the stack. Note that we must call setstemflag, even with a zero flag, because it also sorts chords and deals with inverted notes. */ else if (stave_lastwastied && stave_stemstackptr == 0 && (chordcount > 1 || stave_lasttiepitch == stave_firstnoteptr->spitch)) { /* NB */ mac_setstemflag(stave_firstnoteptr, stave_laststemup? nf_stemup : 0); } else if (stempitch != stave_stemswaplevel[curstave]) { int flag; stave_laststemup = stempitch < stave_stemswaplevel[curstave]; flag = (stave_laststemup)? nf_stemup : 0; mac_setstemflag(stave_firstnoteptr, flag); mac_setstackedstems(flag); } /* What happens to notes that are on the stemswap level depends on the type of stemswapping specified. */ else switch (curmovt->stemswaptype) { case stemswap_default: if (stave_firstinbar || stave_stemstackptr > 0) stave_stemstack[stave_stemstackptr++] = stave_firstnoteptr; else { /* NB */ mac_setstemflag(stave_firstnoteptr, stave_laststemup? nf_stemup : 0); } break; case stemswap_up: mac_setstemflag(stave_firstnoteptr, nf_stemup); break; case stemswap_down: mac_setstemflag(stave_firstnoteptr, 0); break; case stemswap_left: mac_setstemflag(stave_firstnoteptr, stave_laststemup? nf_stemup : 0); break; case stemswap_right: stave_stemstack[stave_stemstackptr++] = stave_firstnoteptr; break; } /* Subsequent notes are no longer the first in the bar */ stave_firstinbar = FALSE; } /* Grace notes are always stem up unless explicitly marked, but a single forced grace note forces all immediately following. */ else if (length == 0) { if (stemforce == 0) stemforce = stave_lastgracestem; mac_setstemflag(stave_firstnoteptr, (stemforce >= 0)? nf_stemup : 0); stave_lastgracestem = stemforce; } /* Unset grace stem forcing on a rest */ else stave_lastgracestem = 0; /* We now need to deal with ties, glissando marks, beam breaks, and the ends of plet groups. We permit the plet group ending to come before any of the other items if no space intervenes. Skip this, though, for intermediate notes of a copied set. */ if (!final_copy) return; if (read_ch == '}') { pletending = TRUE; next_ch(); } /* Deal with ties and glissandos */ if (read_ch == '_') { int acount = 0; int bcount = 0; int flags = tief_default; if (stave_ties > 0) acount = 255; else if (stave_ties < 0) bcount = 255; next_ch(); while (read_ch == '/') { next_ch(); if (read_ch == 'g') { flags &= ~tief_default; flags |= tief_gliss; } else if (read_ch == 's' || read_ch == 't') flags |= tief_slur; else if (read_ch == 'e') flags |= tief_editorial; else if (read_ch == 'i') { if (*read_chptr == 'p') { flags |= tief_dotted; next_ch(); } else flags |= tief_dashed; } else { int count = 255; if (isdigit(read_ch)) count = read_integer(FALSE); if (read_ch == 'b') { bcount = count; acount = 0; } else if (read_ch == 'a') { acount = count; bcount = 0; } else error_moan(37, "/a /b /e /g /i /p /s or /t"); flags |= tief_slur; } next_ch(); } if ((flags & tief_editorial) != 0) { if ((flags & (tief_dotted | tief_dashed)) != 0) error_moan(94); } if (minpitch == 0) error_moan(51); else { b_tiestr *p = store_getitem(b_tie); p->flags = flags; p->abovecount = acount; p->belowcount = bcount; p->note = stave_firstnoteptr; stave_lastwastied = TRUE; stave_lasttiepitch = stave_firstnoteptr->spitch; } stave_resetOK = FALSE; } else { stave_lastwastied = FALSE; stave_resetOK = TRUE; } /* If a relevant note is followed by a comma, set for a secondary beam break. If followed by a semicolon, set for a primary beam break. COMPATIBILITY FEATURE: For compatibility with the original program, if the "oldbeambreaks" option is set, use space or ! for a primary break, and semicolon for no break at all. */ if (notetype >= quaver) { if (read_ch == ',') { b_beambreak2str *b = store_getitem(b_beambreak2); next_ch(); if (isdigit(read_ch)) { b->value = read_ch - '0'; next_ch(); } else b->value = 1; } else if (!opt_oldbeambreak) { if (read_ch == ';') { next_ch(); (void)store_getitem(b_beambreak); if (stave_beaming) read_setbeamstems(); } } else { if (read_ch == ' ' || read_ch == '!') { next_ch(); (void)store_getitem(b_beambreak); if (stave_beaming) read_setbeamstems(); } } } /* If we encountered '}' previously or here, end plet group */ sigch(); if (read_ch == '}') { next_ch(); pletending = TRUE; } if (pletending) { if (stave_pletlen == 0) error_moan(52); else { stave_pletlen = 0; (void)store_getitem(b_endplet); } } /* If there was a [smove] before the note, insert the appropriate space directive. */ if (stave_smove != 0) { b_spacestr *s = store_getitem(b_space); s->value = stave_smove; s->relative = stave_smove_relative; stave_smove = 0; } /* If we had a tied chord containing seconds, generate an implicit [ensure] */ if (seconds && stave_lastwastied) { b_ensurestr *pe = store_getitem(b_ensure); pe->value = 20000; read_lastensuredtie = pe; } else read_lastensuredtie = NULL; /* Finally, update the count of notes in this chord */ stave_chordcount = chordcount; } /************************************************* * Read one note or chord * *************************************************/ /* This function is called if the stave scanner cannot interpret the current character as the start of a directive or any other non-note construction. Arguments: none Returns: nothing */ void read_note(void) { BOOL nopack = FALSE; int inchord = 0; /* Contains nf_chord when in a chord */ int item = b_note; int ornament = stave_ornament; int ornset = 0; int prevpitch = 0; int yextra; /* restlevel or stemlength */ int chordlength = 0; stave_firstnoteptr = NULL; maxpitch = 0; minpitch = 256; chordcount = 0; stemforce = 0; /* stem not forced */ seconds = FALSE; /* If we are at the start of a bar, behave for "p" and "x" as if all previous notes were tied duplicated (i.e. show accidentials unless this note is tied to its predecessor). */ if (stave_firstinbar) onlytieddup = TRUE; /* Handle exact repetition of the previous note. Repetition of the previous pitch(es) only is handled by the 'p' letter, and is mixed up with other interpretation below. */ if (read_ch == 'x') { int count = 1; next_sigch(); if (isdigit(read_ch)) count = read_integer(FALSE); if (stave_lastbasenoteptr == NULL) { error_moan(115); return; } for (; count > 0; count--) { b_notestr *old = stave_lastnoteptr; b_notestr *oldbase = stave_lastbasenoteptr; b_notestr *new; bstr *p = (bstr *)last_note_ornament; do_underlay(); if (p != NULL) while (p != (bstr *)old) { int type = p->type; if (type == b_Jump) p = (bstr *)(((b_Jumpstr *)p)->next); else if (type == b_ornament && ((b_ornamentstr *)p)->ornament < or_dsharp) { b_ornamentstr *pp = store_getitem(b_ornament); *pp = *((b_ornamentstr *)p); } p = (bstr *)((uschar *)p + length_table[type]); } stave_firstnoteptr = new = store_getitem(b_note); length = old->length; notetype = old->notetype; *new = *old; /* At bar start, or after only tied duplicates, retain the accidental; otherwise don't. The note itself is taken from the previous note (to get the length the same), but the accidentals are taken from the base note, because intermediate notes may have their accidentals disabled. */ if (onlytieddup && !stave_lastwastied) { new->acc = oldbase->acc; new->accleft = oldbase->accleft; new->flags |= nf_accleft; /* Spacing already set */ } else { new->acc = 0; new->accleft = 0; } stave_pitchtotal += new->truepitch; stave_pitchcount++; chordcount++; if (new->spitch > maxpitch) maxpitch = new->spitch; if (new->spitch < minpitch) minpitch = new->spitch; if ((old->flags & nf_chord) != 0) { mac_advancechord(old); mac_advancechord(oldbase); while (old->type == b_chord) { new = store_getitem(b_chord); *new = *old; /* At bar start, or after only tied duplicates, retain the accidental from the base note; otherwise don't. */ if (onlytieddup && !stave_lastwastied) { new->acc = oldbase->acc; new->accleft = oldbase->accleft; } else { new->acc = 0; new->accleft = 0; } if (new->spitch > maxpitch) maxpitch = new->spitch; if (new->spitch < minpitch) minpitch = new->spitch; stave_pitchtotal += new->truepitch; stave_pitchcount++; chordcount++; mac_advancechord(old); mac_advancechord(oldbase); } } new[1].type = b_End; /* Mark end for sorting */ stave_barlength += length; post_note(count <= 1); } return; } /* Not an exact repetion: handle the reading of a new note or chord. */ last_note_ornament = NULL; /* For remembering ornaments for 'x' */ /* Deal with the start of a chord */ if (read_ch == '(') { inchord = nf_chord; next_sigch(); } /* Loop to read all the notes of a chord */ for (;;) { b_notestr *noteptr; BOOL acc_invis = FALSE; BOOL acc_onenote = FALSE; BOOL duplicating = FALSE; uschar *acc_above = NULL; int flags = stave_noteflags | stave_stemflag | inchord; int acflags = 0; int transposedaccforce = stave_transposedaccforce; int acc = 0; int accleft = 0; int masq = -1; int tiedcount = -1; int transposeacc = 0; int explicit_couple = 0; int dup_octave = 0; int pitch, abspitch, orig; if (chordcount == 0) acflags |= stave_accentflags; /* Deal with accidentals */ if (read_ch == '#') { next_ch(); switch(read_ch) { case '#': acc = ac_dsharp; next_ch(); break; case '-': flags |= nf_halfacc; next_ch(); /* Fall through */ default: acc = ac_sharp; break; } } else if (read_ch == '$') { next_ch(); switch (read_ch) { case '$': acc = ac_dflat; next_ch(); break; case '-': flags |= nf_halfacc; next_ch(); /* Fall through */ default: acc = ac_flat; } } else if (read_ch == '%') { acc = ac_natural; next_ch(); } /* Save original accidental (prior to transposition) for use if this note has to be re-created for 'p'. The note letter is also saved later. */ orig = acc; /* Deal with requests for transposed accidentals */ if (read_ch == '^') { next_ch(); if (read_ch == '-') { transposedaccforce = FALSE; next_ch(); } else if (read_ch == '+') { transposedaccforce = TRUE; next_ch(); } if (read_ch == '#') { next_ch(); if (read_ch == '#') { transposeacc = ac_dsharp; next_ch(); } else transposeacc = ac_sharp; } else if (read_ch == '$') { next_ch(); if (read_ch == '$') { transposeacc = ac_dflat; next_ch(); } else transposeacc = ac_flat; } else if (read_ch == '%') { transposeacc = ac_natural; next_ch(); } } /* Deal with special forms of accidental: invisible, above/below, bracketed, and moved. */ if (acc != 0) { /* An invisible accidental may have no further options */ if (read_ch == '?') { acc_invis = TRUE; next_ch(); } else { /* Deal with a request to print the accidental above or below the note. We do this by setting it invisible, and generating a suitable ornament. This is only allowed on the first note of a chord. */ if (read_ch == 'o' || read_ch == 'u') { if (chordcount == 0) { b_ornamentstr *p = store_getitem(b_ornament); int value = ((read_ch == 'o')? or_dsharp : or_accbelow); next_ch(); ornmove(&(p->x), &(p->y), NULL); p->bflags = 0; if (read_ch == ')') { value += 1; next_ch(); } else if (read_ch == ']') { value += 2; next_ch(); } p->ornament = value; acc_above = &(p->ornament); /* To fill in the acc later */ acc_invis = TRUE; acc_onenote = TRUE; } else error_moan(96); } /* Deal with visible, normally placed, accidentals */ else { if (read_ch == ')') { flags |= nf_accrbra; next_ch(); } else if (read_ch == ']') { flags |= nf_accsbra; next_ch(); } while (read_ch == '<') { next_ch(); if (isdigit(read_ch)) accleft += read_integer(TRUE); else accleft += 5000; flags |= nf_accleft; } } } } /* Now read note letter. */ if (isupper(read_ch)) { notetype = minim; length = len_minim; } else { notetype = crotchet; length = len_crotchet; } /* Now deal with the pitch. First of all get an absolute pitch which is independent of any clef. The units are semitones and the origin is such that middle C has the value 48, which should cope with any requirements. This pitch doesn't yet contain the accidental (if any). */ read_ch = tolower(read_ch); /* Deal with duplication of previous pitch(es). This must not be in a chord and there must be no accidentals. We regenerate the pitch letter from the previous note, and the accidental if this is the start of a bar, unless after a tie. */ if (read_ch == 'p') { if (acc != 0) error_moan(114); if (inchord) { error_moan(37, "note letter"); read_ch = 'a'; } else if (stave_lastbasenoteptr == NULL) { error_moan(115); read_ch = 'r'; } else { int x = stave_lastbasenoteptr->truepitch; if (stave_transpose < max_transpose) x -= stave_transpose; dup_octave = 12 - stave_octave; while (x < 48) { x += 12; dup_octave -= 12; } while (x > 59) { x -= 12; dup_octave += 12; } /* Set the accidental - needed for transposition, even if we aren't going to print it, for cases of forcing - and the original note letter. */ orig = stave_lastbasenoteptr->orig; acc = orig & 0x0f; transposeacc = stave_lastbasenoteptr->acc; read_ch = (orig >> 4) + 'a'; /* At bar start, or after only tied duplicates, retain the accidental; otherwise make it invisible. */ if (onlytieddup && !stave_lastwastied) { if (stave_lastbasenoteptr->acc == 0) acc_invis = TRUE; accleft = stave_lastbasenoteptr->accleft; flags |= nf_accleft | (stave_lastbasenoteptr->flags & (nf_accrbra | nf_accsbra)); } else acc_invis = TRUE; duplicating = TRUE; } } /* Deal with non-rests */ if ('a' <= read_ch && read_ch <= 'g') { pitch = stave_octave + 36 + read_basicpitch[read_ch - 'a']; yextra = stave_stemlength; /* Default stem length */ orig |= (read_ch - 'a') << 4; if (!duplicating) onlytieddup = FALSE; } /* Deal with rests */ else { pitch = 0; acflags &= ~af_dynamics; /* Ignore any default dynamics */ yextra = stave_restlevel; if (read_ch == 'q') flags |= nf_hidden; else if (read_ch == 's') nopack = TRUE; else if (read_ch != 'r') { error_moan(37, inchord? "Note letter or end of chord" : "Note or rest letter"); pitch = 30; /* Take a random pitch */ inchord = FALSE; /* Terminate a chord, in case missing ')' */ } if (inchord && pitch == 0) error_moan(43); } /* If suspended and not a rest, resume automatically */ if (stave_suspended && pitch > 0) { (void)store_getitem(b_resume); stave_suspended = FALSE; } /* Pitch adjustment for octave indicators, transposition and clef, except for rests, of course. */ next_ch(); if (pitch == 0) abspitch = minpitch = 0; else /* min = max = 0 for rests */ { if (duplicating) pitch += dup_octave; else { while (read_ch == '\'') { pitch += 12; next_ch(); } while (read_ch == '`' ) { pitch -= 12; next_ch(); } } /* Get a true absolute pitch which includes the accidental. Update the table which keeps track of the current accidental state for a given input pitch. After a tie, take the default accidental from the previous note, which may have been in the previous bar. Save the information in case this note is tied. */ this_tiedata[chordcount].pitch = pitch; if (acc) { int x = read_accpitch[acc]; if (!acc_onenote) baraccs[pitch] = x; this_tiedata[chordcount].acc = x; abspitch = pitch + x - 2; } else { if (stave_lastwastied) { int i; for (i = 0; i < stave_chordcount; i++) { if (pitch == stave_tiedata[i].pitch) { int x = stave_tiedata[i].acc; abspitch = pitch + x - 2; this_tiedata[chordcount].acc = x; tiedcount = i; acc_invis = TRUE; /* Could come from transpose if previous is invisible */ goto TRANSPOSE; } } } /* Last not tied, or tie not matched up (slur) */ abspitch = pitch + baraccs[pitch] - 2; this_tiedata[chordcount].acc = baraccs[pitch]; } TRANSPOSE: /* Transpose the note and its accidental if required */ if (stave_transpose < max_transpose) { abspitch = transpose_note(abspitch, &pitch, &acc, transposeacc, transposedaccforce, acc_onenote, FALSE, tiedcount); this_tiedata[chordcount].acc_tp = baraccs_tp[pitch]; } /* If there was a half-accidental that is now a natural, change it to the opposite half-accidental, and play similar games with double sharps and flats. */ if ((flags & nf_halfacc) != 0) { if (acc == ac_none || acc == ac_natural) acc = ((orig & 0x0f) == ac_sharp)? ac_flat : ac_sharp; else if (acc == ac_dflat) { acc = ac_sharp; pitch -= 2; abspitch -= 2; } else if (acc == ac_dsharp) { acc = ac_flat; pitch += 2; abspitch += 2; } } /* Adjust absolute pitch for transposing clefs */ abspitch += stave_clef_octave; /* Keep track of the absolute pitch range, and maintain data for tessitura computation. */ if (abspitch > stave_maxpitch) stave_maxpitch = abspitch; if (abspitch < stave_minpitch) stave_minpitch = abspitch; stave_pitchtotal += abspitch; stave_pitchcount++; /* Now adjust the printing pitch to make it relative to the current clef, where a value of P_1L (=128) is the bottom line of the staff, and the note positions are 2 apart (because they are two points apart). However, the printing pitch may be explicitly forced (percussion staves), in which case the accidental must be cancelled. */ if (stave_printpitch) { pitch = stave_printpitch; acc = 0; } else pitch = pitch_stave[pitch] + pitch_clef[stave_clef]; /* Save max/min pitch per chord */ if (pitch > maxpitch) maxpitch = pitch; if (pitch < minpitch) minpitch = pitch; /* Set flags for potentially auto-coupled notes; these may be unset later by the \h\ option. */ if (pitch > P_6L) flags |= nf_coupleU; else if (pitch < P_0L) flags |= nf_coupleD; /* Flag chords containing seconds */ if (abs(pitch - prevpitch) == 2) seconds = TRUE; prevpitch = pitch; } /* If the accidental is to be printed above or below, add in its value, which is not known till after transposition. */ if (acc_above != NULL) { *acc_above += 3*(acc - 1); if ((flags & nf_halfacc) != 0) *acc_above += (acc == ac_sharp)? 6 : 12; } /* If the accidental is invisible, cancel it now that the true pitch has been determined. */ if (acc_invis) acc = 0; /* Note or rest length adjustment by modifiers */ if (read_ch == '!' && pitch == 0) { notetype = semibreve; length = stave_requiredbarlength; flags |= nf_centre; next_ch(); } else { while (read_ch == '=' ) { next_ch(); notetype += 2; length /= 4; } while (read_ch == '-' ) { next_ch(); notetype += 1; length /= 2; } while (read_ch == '+') { next_ch(); notetype -= 1; length *= 2; } } /* Set left movement for any accidental. We can't do this earlier, because transposition can alter which accidental is printed, and we need to have notetype set correctly for accadjusts. If duplicating, the movement has already been copied. */ if (acc && !duplicating) { accleft += curmovt->accspacing[acc] - curmovt->accadjusts[notetype]; if ((flags & nf_accrbra) != 0) accleft += rbra_left[acc]; else if ((flags & nf_accsbra) != 0) accleft += sbra_left[acc]; } /* Deal with non-standard lengths. */ if (stave_pletlen != 0) length = (length*stave_pletsupnum)/(stave_pletlen*stave_pletsupden); /* Deal with dotted notes. For the first note of a chord, a movement of the dot is permitted. */ if ((read_ch == '>' && *read_chptr == '.') || isdigit(read_ch)) { if (chordcount == 0) { b_dotrightstr *d = store_getitem(b_dotright); if (read_ch == '>') { next_ch(); d->value = 5000; } else { d->value = read_integer(TRUE); if (read_ch != '>' || *read_chptr != '.') error_moan(37, "\">.\" (augmentation dot movement)"); next_ch(); } } else error_moan(48, "Augmentation dot movement"); } /* Lengthen the note according to .+ . or .. */ if (read_ch == '.' ) { next_ch(); if (read_ch == '+') { next_ch(); flags |= nf_plus; length = (length*5)/4; } else { flags |= nf_dot; length = (length*3)/2; if (read_ch == '.' ) { next_ch(); flags |= nf_dot2; length = (length*7)/6; } } } /* Handle doubled or halved note lengths - note that full bar rests must be skipped (the centre flag is an indicator). */ if ((main_notenum != 1 || main_noteden != 1) && (flags & nf_centre) == 0) { int i = main_notenum; while (i > 1) { length += length; notetype--; i /= 2; } i = main_noteden; while (i > 1) { length /= 2; notetype++; i /= 2; } } /* Can't handle anything longer than a breve or shorter than a hemidemisemiquaver. */ if (notetype < 0 || notetype > 7) error_moan(103); /* Now we have the final length for the note, adjust it if necessary to allow for triplet vs duplet time signatures, etc. */ if (stave_matchnum > 0 && (flags & nf_centre) == 0) length = mac_muldiv(length, stave_matchnum, stave_matchden); /* Accents and ornaments etc. and local level for rests */ if (read_ch == '\\') { error_skip = skip_BACKSLASH; next_sigch(); while (read_ch != '\\' && read_ch != EOF) { accent *ap; switch (read_ch) { /* ----- Handle things that are not accents or ornaments ----- */ case ':': next_ch(); if (read_ch == ':') { next_ch(); flags |= nf_highdot; } else flags ^= nf_lowdot; break; case 'c': next_ch(); explicit_couple = nf_couple; break; /* This flag centres a note iff it is the first note in the bar and has the barlength. */ case 'C': next_ch(); if (stave_barlength == 0 && length == stave_requiredbarlength) flags ^= nf_centre; break; case 'g': length = 0; next_ch(); if (read_ch == '/') { flags |= nf_appogg; next_ch(); } break; case 'h': next_ch(); flags &= ~nf_couple; explicit_couple = 0; break; case 'l': /* local rest level */ next_ch(); { int y; if (read_expect_integer(&y, TRUE, TRUE)) { if (opt_oldrestlevel) y *= 2; yextra += y; } } break; case 'M': case 'm': masq = (read_ch == 'm')? crotchet : minim; flags &= ~(nf_dot|nf_dot2|nf_plus); for (;;) { next_ch(); if (read_ch == '-') masq++; else if (read_ch == '=') masq += 2; else if (read_ch == '+') masq--; else break; } if (masq < breve || masq > hdsquaver) { error_moan(45); masq = -1; } if (read_ch == '.') { next_ch(); if (read_ch == '+') { next_ch(); flags |= nf_plus; } else { flags |= nf_dot; if (read_ch == '.') { next_ch(); flags |= nf_dot2; } } } break; case 's': next_ch(); if (read_ch == 'u') { if (stemforce < 0) error_moan(46, inchord? "in chord" : ""); stemforce = 1; next_ch(); } else if (read_ch == 'd') { if (stemforce > 0) error_moan(46, inchord? "in chord" : ""); stemforce = -1; next_ch(); } else if (read_ch == 'w') { if (stave_beaming && notetype >= quaver && stave_beamstemforce != 0) { if (stemforce) error_moan(46, inchord? "in chord" : ""); stave_beamstemforce = -stave_beamstemforce; if (abs(stave_beamstemforce) == 1) stave_beamstemforce *= 2; } else error_moan(47); next_ch(); } else if (read_ch == 'l') { int y; next_ch(); if (read_expect_integer(&y, TRUE, TRUE)) { if (opt_oldstemlength) y *= 2; yextra += y; } } else if (read_ch == 'm') { next_ch(); flags |= nf_smallhead; } else if (read_ch == 'p') /* sp is an ornament */ { read_ch = 's'; read_chptr--; goto ACCORN; } else { error_moan(10, "su, sd, sw, sl, sm, or sp"); /* skips to '\' or EOL */ if (read_ch != '\\') goto ENDACCENT; } break; case 'x': next_ch(); acflags &= ~stave_accentflags; ornament = -1; break; /* ----- Handle accents and ornaments ----- */ default: ACCORN: for (ap = accent_chars; ap->string != NULL; ap++) { int i; int ln = (int)Ustrlen(ap->string); for (i = 0; i < ln; i++) if (read_chptr[i-1] != ap->string[i]) break; if (i >= ln) { read_chptr += ln - 1; next_ch(); break; } } /* Found in the table */ if (ap->string != NULL) { if (ap->flag < 256) /* Ornaments */ { switch (ap->flag) { case or_mord: case or_dmord: case or_imord: case or_dimord: case or_turn: case or_iturn: if ((ornset & ornset_mordturn) != 0) error_moan(45); /* But carry on */ else ornset |= ornset_mordturn; break; case or_trem1: case or_trem2: case or_trem3: if ((ornset & ornset_trem) != 0) error_moan(45); /* But carry on */ else ornset |= ornset_trem; break; case or_tr: case or_trsh: case or_trfl: case or_trnat: if ((ornset & ornset_trill) != 0) error_moan(45); /* But carry on */ else ornset |= ornset_trill; break; } if (chordcount == 0) { b_ornamentstr *p = store_getitem(b_ornament); if (last_note_ornament == NULL) last_note_ornament = p; p->ornament = ap->flag; p->bflags = 0; /* Tremolos have no horizontal movement or bracketing; arpeggios and spread have no bracketing, but can have arbitrary movement. Because tremelos use '/' as their character, the coding is messy. */ if (ap->flag >= or_trem1 && ap->flag <= or_trem3) { p->x = 0; /* No horizontal movement */ p->y = 0; /* Default no vertical movement */ p->bflags = 0; /* No bracketing */ ornament = -1; /* Cancel auto tremolo */ if (read_ch == '/') /* Move a trem3 */ ornmove(NULL, &(p->y), NULL); else if (ap->flag != or_trem1 && /* Move a trem1/trem2 */ (read_ch == 'u' || read_ch == 'd') && (read_chptr < read_endptr) && (isdigit(*read_chptr) || *read_chptr == '-')) { p->ornament -= 1; read_ch = '/'; read_chptr--; ornmove(NULL, &(p->y), NULL); } } else ornmove(&(p->x), &(p->y), (ap->flag >= or_arp)? NULL : &(p->bflags)); } else error_moan(48, "Ornaments"); } else /* Accents */ { if (chordcount == 0) { int i; acflags |= ap->flag; for (i = 1; i <= dyn_max; i++) { if (ap->flag == accent_list[i]) { dynmove(i-1); break; } } } else error_moan(48, "Accents"); } } /* Not found in the big table; check for a. */ else if (read_ch == 'a') { int x; next_ch(); if (read_expect_integer(&x, FALSE, FALSE)) { if (chordcount == 0) { if (x <= dyn_max) { acflags |= accent_list[x]; dynmove(x-1); } else error_moan(128, x); } else error_moan(48, "Accents"); } } /* Unknown */ else { error_moan(45); next_sigch(); } } if ((acflags & (af_staccato|af_staccatiss)) == (af_staccato|af_staccatiss)) error_moan(129); sigch(); } /* end of loop */ next_ch(); /* moves past terminating '\' */ } ENDACCENT: /* some error states jump here */ /* Rests should not have ornaments or accidentals */ if (pitch == 0 && ((ornset != 0 && (flags & nf_hidden) == 0) || acc != 0 || (acflags & af_dynamics) != 0)) error_moan(68); /* A small notehead may not be specified for a grace note. */ if (length == 0 && (flags & nf_smallhead) != 0) error_moan(108); /* Accumulate bar length and check that chord notes are all same length. If not, and the current one is a crotchet (i.e. just a lower case letter) force it to be the same as the first note. Other lengths cause an error. Output an underlay syllable if one is pending. Can't do this earlier because of grace notes. */ if (chordcount == 0) /* First note of chord */ { stave_barlength += length; chordlength = length; if (length != 0 && stave_pendulay != NULL) { if (pitch != 0 || Ustrcmp(stave_pendulay->string, "#") == 0) do_underlay(); } } else if (length != chordlength) { if (notetype == crotchet && (flags & nf_dotted) == 0) { length = chordlength; notetype = stave_firstnoteptr->notetype; flags = (flags & ~nf_dotted) | (stave_firstnoteptr->flags & nf_dotted); } else error_moan(44); } /* Allow automatic coupling flags through only if appropriately coupled, but allow explicit coupling at any time. */ if (stave_couplestate == 0) { flags = (flags & ~nf_couple) | explicit_couple; if (pitch >= 136) flags &= ~nf_coupleD; else flags &= ~nf_coupleU; } else { flags |= explicit_couple; if (stave_couplestate > 0) flags &= ~nf_coupleD; else if (stave_couplestate < 0) flags &= ~nf_coupleU; } /* Deal with never-to-be-packed-up rest bar */ if (nopack) (void) store_getitem(b_nopack); /* Output any masquerade instruction, and adjust stem flag */ if (masq >= 0) { if (masq < minim) flags &= ~nf_stem; if (chordcount == 0) { b_masqstr *p = store_getitem(b_masq); p->value = masq; } } else if (notetype < minim) flags &= ~nf_stem; /* Output any default ornament (can only happen on first note) */ if (ornament >= 0) { b_ornamentstr *p = store_getitem(b_ornament); if (last_note_ornament == NULL) last_note_ornament = p; p->ornament = ornament; p->x = p->y = 0; ornament = -1; } /* If a whole bar rest, flag it for centring unless we are in an unchecked bar. (If the rest was specified as R! then it has already been marked as a whole bar rest.) */ if (pitch == 0 && length == stave_requiredbarlength && stave_checklength) flags |= nf_centre; /* Now create a data block for the note, saving the address of the first one in a chord for exact duplications ('x') and the first one in a non-p-duplicated chord for subsequent 'p' duplications, except in the case of above/below accidentals. */ noteptr = store_getitem(item); if (stave_firstnoteptr == NULL) { stave_firstnoteptr = noteptr; if (pitch != 0) { stave_lastnoteptr = noteptr; if (!duplicating) stave_lastbasenoteptr = (acc_above != NULL)? NULL : noteptr; } } /* Insert the data for this note */ noteptr->notetype = notetype; noteptr->acc = acc; noteptr->orig = orig; noteptr->spitch = pitch; noteptr->flags = flags; noteptr->acflags = acflags; noteptr->length = length; noteptr->yextra = yextra; noteptr->accleft = accleft; noteptr->truepitch = abspitch; /* Count note, and set different item for remaining notes of chord */ chordcount++; item = b_chord; /* If we are duplicating, we must now copy the remaining notes of a chord, replacing the length and chopping off any accidentals where necessary. We must also set the relevant tiedata values. */ if (duplicating && (stave_lastbasenoteptr->flags & nf_chord) != 0) { int i = 0; b_notestr *old = stave_lastbasenoteptr; noteptr->flags |= nf_chord; mac_advancechord(old); while (i++, old->type == b_chord) { noteptr = store_getitem(item); *noteptr = *old; noteptr->notetype = notetype; /* At bar start, or after only tied duplicates, retain the accidental; otherwise don't. */ if (onlytieddup && !stave_lastwastied) { noteptr->acc = old->acc; noteptr->accleft = old->accleft; } else { noteptr->acc = 0; noteptr->accleft = 0; } noteptr->flags = (noteptr->flags & ~nf_dotted & ~nf_stem) | (flags & (nf_dotted | nf_stem)); noteptr->acflags &= ~af_dynamics; noteptr->length = length; if (noteptr->spitch > maxpitch) maxpitch = noteptr->spitch; if (noteptr->spitch < minpitch) minpitch = noteptr->spitch; stave_pitchtotal += noteptr->truepitch; stave_pitchcount++; chordcount++; mac_advancechord(old); this_tiedata[i] = stave_tiedata[i]; } noteptr[1].type = b_End; /* Mark end for sorting */ } /* Check for end of chord; when found, insert a b_End item immediately after the last note so that the function for sorting chords detects the end correctly. As there is always space for a b_Jump item after any item, this is safe to do. */ if (inchord) { sigch(); if (read_ch == ')' || read_ch == EOF) { noteptr[1].type = b_End; next_ch(); break; } /* Continuing with chord */ } else break; } /* We have now reached the end of a chord, having output all the notes therein contiguously, with any ornaments or masquerade items preceding. The remaining code is put into a separate function so it can be called from the note-copying code too. */ post_note(TRUE); } /* End of read5.c */ pmw-4.27/src/midi.c0000644000222100022210000006500412247665016012232 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2013 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: January 2013 */ /* This file contains code for writing a MIDI file */ #include "pmwhdr.h" typedef struct midi_event { int time; short int seq; uschar data[8]; } midi_event; /************************************************* * Local variables * *************************************************/ static int file_count = 0; static midi_event *events = NULL; static midi_event *next_event; static int next_event_seq; static int last_written_time; static int running_status; static uschar midi_channel[max_stave+1]; static uschar midi_channel_volume[midi_maxchannel]; static FILE *midi_file; static uschar midi_note[max_stave+1]; static int play_bar; static movtstr *play_movt; static int play_nextbar; static BOOL play_onebar_only = FALSE; static int play_staves[stave_bitvec_size] = { -1, -1 }; static int play_tempo; static int play_volume = 127; static int repeat_bar; static int repeat_count; static int repeat_endbar; static uschar stavetie[max_stave+1]; static signed char midi_transpose[max_stave+1]; static uschar stave_volume[max_stave+1]; /************************************************* * Comparison function for sorting events * *************************************************/ /* This function is passed to qsort(). Similar events at the same time should preserve their order. To do this, we give each event a sequence number that is compared if the times are equal. This function should never return zero in practice. Arguments: a pointer to an event structure b pointer to an event structure Returns: -1, 0, or +1 */ static int cf(const void *a, const void *b) { const midi_event *ma = (const midi_event *)a; const midi_event *mb = (const midi_event *)b; if (ma->time < mb->time) return -1; if (ma->time > mb->time) return +1; if (ma->seq < mb->seq) return -1; if (ma->seq > mb->seq) return +1; return 0; } /************************************************* * Find length of bar * *************************************************/ /* Scan the staves selected for playing until one with some notes in it is found. If there are none, return zero. If the bar contains only a centred rest, carry on looking for another stave in case this bar is a nocheck whole-bar rest, which might be of different length to the remaining staves' bars. Arguments: none; the required movement/bar are in play_movt and play_bar Returns: length of the bar, or zero */ static int find_barlength(void) { int stave; int yield = 0; for (stave = 1; stave <= play_movt->laststave; stave++) { BOOL notjustrest = FALSE; int length = 0; int gracecount = 0; if (mac_teststave(play_staves, stave)) { bstr *p = ((play_movt->stavetable)[stave])->barindex[play_bar]; if (p != NULL) { int moff = 0; int type = p->type; while (type != b_End) { switch(type) { case b_Jump: p = (bstr *)(((b_Jumpstr *)p)->next); break; case b_reset: if (moff > length) length = moff; moff = 0; break; case b_note: { b_notestr *note = (b_notestr *)p; moff += note->length; if (note->length == 0) gracecount++; else gracecount = 0; if (note->spitch != 0 || (note->flags & nf_centre) == 0) notjustrest = TRUE; } break; } p = (bstr *)((uschar *)p + length_table[type]); type = p->type; } /* At bar end check for longest length in case there were resets */ if (moff > length) length = moff; /* If there were grace notes at the end of the bar, increase its length by 1/10 second for each one. */ length += (gracecount*len_crotchet*play_tempo)/(60*10); /* If we have found a bar with notes in it other than a whole bar rest, we are done. Otherwise carry on, but leave length so far in yield in case there are no staves with notes. */ if (length > yield) yield = length; if (yield > 0 && notjustrest) break; } } } return yield; } /************************************************* * Find second time bar * *************************************************/ /* Starting from the bar after play_bar in play_movt, look along the stave for the second time bar. Argument: the stave to search Returns: the bar number, or 0 if there are no more bars */ static int find_second_time(int stave) { int yield = play_bar + 1; for (;;) { int type; bstr *p = ((play_movt->stavetable)[stave])->barindex[yield]; if (p == NULL) return 0; type = p->type; while (type != b_End) { switch(type) { case b_Jump: p = (bstr *)(((b_Jumpstr *)p)->next); break; case b_nbar: return yield; } p = (bstr *)((uschar *)p + length_table[type]); type = p->type; } yield++; } } /************************************************* * Write 32-bit number * *************************************************/ /* Write the most significant byte first. Argument: the number Returns: nothing */ static void write32(int n) { fputc((n>>24)&255, midi_file); fputc((n>>16)&255, midi_file); fputc((n>>8)&255, midi_file); fputc(n&255, midi_file); file_count += 4; } /************************************************* * Write 16-bit number * *************************************************/ /* Write the most significant byte first. Argument: the number Returns: nothing */ static void write16(int n) { fputc((n>>8)&255, midi_file); fputc(n&255, midi_file); file_count += 2; } /************************************************* * Write variable length number * *************************************************/ /* The number is chopped up into 7-bit chunks, and then written with the most significant chunk first. All but the last chunk have the top bit set. This copes with numbers up to 28-bits long. That's all that MIDI needs. Argument: the number Returns: nothing */ static void writevar(int n) { if (n < 0x80) { fputc(n, midi_file); file_count++; } else if (n < 0x4000) { fputc(((n>>7)&127)|0x80, midi_file); fputc(n&127, midi_file); file_count += 2; } else if (n < 0x200000) { fputc(((n>>14)&127)|0x80, midi_file); fputc(((n>>7)&127)|0x80, midi_file); fputc(n&127, midi_file); file_count += 3; } else { fputc(((n>>21)&127)|0x80, midi_file); fputc(((n>>14)&127)|0x80, midi_file); fputc(((n>>7)&127)|0x80, midi_file); fputc(n&127, midi_file); file_count += 4; } } /************************************************* * Write one byte * *************************************************/ static void writebyte(int n) { fputc(n & 255, midi_file); file_count++; } /************************************************* * Write one bar * *************************************************/ /* The bar number is in play_bar. Argument: TRUE if this is the final bar to be written Returns: nothing */ static void writebar(BOOL is_lastbar) { BOOL hadrepeat = FALSE; BOOL oknbar = TRUE; int stave; int *p = play_movt->play_tempo_changes; int this_barlength = find_barlength(); midi_event *eptr, *neptr; DEBUG(("writebar %d\n", play_bar)); /* Find the tempo for this bar */ if (p != NULL && play_bar >= *p) { while (play_bar >= *p) p += 2; if (p[-1] != play_tempo) { int temp; play_tempo = p[-1]; temp = 60000000/play_tempo; /* Microseconds per crotchet */ next_event->time = 0; next_event->seq = next_event_seq++; next_event->data[0] = 6; next_event->data[1] = 0xff; next_event->data[2] = 0x51; next_event->data[3] = 0x03; next_event->data[4] = temp >> 16; next_event->data[5] = temp >> 8; next_event->data[6] = temp; next_event++; } } /* Now scan the staves. When [notes off] appears in the input, a control is placed at the start of each bar into which it continues, so we do not have to keep track between bars. */ for (stave = 1; stave <= play_movt->laststave; stave++) { if (mac_teststave(play_staves, stave)) { bstr *p = ((play_movt->stavetable)[stave])->barindex[play_bar]; if (p != NULL) { int midi_stave_status, midi_stave_pitch, midi_stave_velocity; int playtranspose = midi_transpose[stave]; int moff = 0; int adjustlength = 0; int type = p->type; int tremolo = -1; BOOL noteson = TRUE; /* See above comment */ /* Set up midi parameters */ midi_stave_status = 0x90 + midi_channel[stave] - 1; midi_stave_pitch = midi_note[stave]; midi_stave_velocity = ((play_volume * stave_volume[stave] * midi_channel_volume[midi_channel[stave]-1])/225); /* Scan the bar's data */ while (type != b_End) { switch(type) { case b_Jump: p = (bstr *)(((b_Jumpstr *)p)->next); break; case b_reset: moff = 0; break; case b_rrepeat: if (play_repeats && moff == this_barlength && !play_onebar_only && !hadrepeat) { if (repeat_count == 1) { play_nextbar = repeat_bar; repeat_endbar = play_bar; repeat_count++; } else if (play_bar == repeat_endbar) repeat_count = 1; hadrepeat = TRUE; } break; case b_lrepeat: if (moff == 0) repeat_bar = play_bar; break; case b_nbar: if (moff == 0 && !play_onebar_only && oknbar) { b_nbarstr *b = (b_nbarstr *)p; if (b->n == 1 && repeat_count > 1) { int second = find_second_time(stave); if (second > 0) { play_bar = second; play_nextbar = play_bar + 1; repeat_bar = play_bar; repeat_count = 1; writebar(is_lastbar); } return; } else oknbar = FALSE; } break; case b_notes: noteson = ((b_notesstr *)p)->value; break; case b_playchange: { b_playchangestr *change = (b_playchangestr *)p; playtranspose += change->transpose; midi_transpose[stave] = playtranspose; /* If the relative volume parameter occurs with a change of channel, it is a channel volume change. Otherwise it is a stave volume change. */ if (change->volume < 128 && change->channel == 128) { stave_volume[stave] = change->volume; midi_stave_velocity = ((play_volume * stave_volume[stave] * midi_channel_volume[midi_channel[stave]-1])/225); } /* Other changes */ if (change->channel < 128) { midi_channel[stave] = change->channel; midi_stave_status = 0x90 + midi_channel[stave] - 1; if (change->volume < 128) midi_channel_volume[change->channel - 1] = change->volume; midi_stave_velocity = ((play_volume * stave_volume[stave] * midi_channel_volume[midi_channel[stave]-1])/225); } if (change->note < 128) midi_stave_pitch = midi_note[stave] = change->note; /* A voice change must be scheduled to occur in the correct sequence with the notes. */ if (change->voice < 128) { next_event->time = moff; next_event->seq = next_event_seq++; next_event->data[0] = 2; next_event->data[1] = 0xC0 + midi_channel[stave] - 1; next_event->data[2] = change->voice; next_event++; } } break; case b_ornament: { b_ornamentstr *orn = (b_ornamentstr *)p; if (orn->ornament == or_trem1 || orn->ornament == or_trem2) tremolo = orn->ornament; } break; case b_note: { b_notestr *note = (b_notestr *)p; BOOL thisnotetied = FALSE; int length = note->length; int nstart = 0; int scrub = 1; int scrubcount; int tiebarcount = 1; int pitchcount = 0; int pitchlist[20]; int pitchlen[20]; int pitchstart[20]; oknbar = FALSE; if (length == 0) { length = (len_crotchet*play_tempo)/(60*10); /* 1/10 sec */ adjustlength += length; } else { length -= adjustlength; adjustlength = 0; } /* nf_noplay is set when a note has already been played, because of a previous tie, which might have been in a previous bar. */ if ((noteson || midi_for_notes_off) && note->spitch != 0 && (note->flags & nf_noplay) == 0) { /* Get a list of pitches in a chord, and leave the general pointer p at the final note. */ do { pitchlist[pitchcount] = note->truepitch; pitchlen[pitchcount] = length; pitchstart[pitchcount++] = nstart; p = (bstr *)note; mac_advancechord(note); } while (note->type == b_chord); /* Advance to start of following note */ nstart += length; /* If the note is followed by a tie, find the next note or chord on the stave. If any of its notes have the same pitch as any of those in the list, extend their playing times. If there are any new notes, add them to the list, with a later starting time. We have to do this because all the notes we are accumulating will be output at the end of this bar. Set the noplay flag in the next notes, to stop them playing again later. Continue for multiple ties. */ while (note->type == b_tie) { int i, nlength; note = misc_nextnote(note, NULL); if (note == NULL && play_bar + tiebarcount <= play_movt->barcount) { note = (b_notestr *)((play_movt->stavetable)[stave])-> barindex[play_bar + tiebarcount++]; if (note != NULL && note->type != b_note) note = misc_nextnote(note, NULL); } if (note == NULL) break; nlength = note->length; do { for (i = 0; i < pitchcount; i++) { if (pitchlist[i] == note->truepitch) { pitchlen[i] += note->length; thisnotetied = TRUE; note->flags |= nf_noplay; break; } } if (i >= pitchcount) { pitchlist[pitchcount] = note->truepitch; pitchlen[pitchcount] = nlength; note->flags |= nf_noplay; pitchstart[pitchcount++] = nstart; } mac_advancechord(note); } while (note->type == b_chord); nstart += nlength; } /* Handle some common scrubbing */ if (tremolo > 0 && !thisnotetied) { int ttype = (tremolo == or_trem1)? 1 : 2; switch (length) { case len_crotchet: scrub = 2*ttype; break; case (len_crotchet*3)/2: scrub = 3*ttype; break; case len_minim: scrub = 4*ttype; break; case (len_minim*3)/2: scrub = 6*ttype; break; } } for (scrubcount = 0; scrubcount < scrub; scrubcount++) { int pc = pitchcount; /* For each required pitch, set up the events to make a sound. The lengths may be different because of tied/non-tied notes in chords, but these can only happen when not scrubbing. */ while (--pc >= 0) { int pitch = pitchlist[pc] + playtranspose; int start = moff + pitchstart[pc] + scrubcount * (pitchlen[pc]/scrub); /* We have to schedule a note on and a note off event. Use note on with zero velocity for note off, as that means running status can be used. MIDI middle C is 60; PMW uses 48, so first adjust the pitch. */ pitch = midi_stave_pitch? midi_stave_pitch : (pitch + 12); next_event->time = start; next_event->seq = next_event_seq++; next_event->data[0] = 3; next_event->data[1] = midi_stave_status; next_event->data[2] = pitch; next_event->data[3] = midi_stave_velocity; next_event++; next_event->time = start + (pitchlen[pc]/scrub); next_event->seq = next_event_seq++; next_event->data[0] = 3; next_event->data[1] = midi_stave_status; next_event->data[2] = pitch; next_event->data[3] = 0; next_event++; } } } stavetie[stave] = thisnotetied; moff += length; } tremolo = -1; break; } p = (bstr *)((uschar *)p + length_table[type]); type = p->type; } } } } /* Sort and output the items we've created, along with any events left over from the previous bar (ending tied notes). We relativize the times, and make use of running status. Stop when we hit either the end, or an event that is past the end of the bar, unless this is the last bar being played. */ qsort(events, next_event - events, sizeof(midi_event), cf); for (eptr = events; eptr < next_event; eptr++) { if (!is_lastbar && eptr->time > this_barlength) break; writevar(mac_muldiv(eptr->time - last_written_time, 24, len_crotchet)); last_written_time = eptr->time; if ((eptr->data[1] & 0xf0) == 0x90) { if (eptr->data[1] != running_status) { writebyte(eptr->data[1]); running_status = eptr->data[1]; } writebyte(eptr->data[2]); writebyte(eptr->data[3]); } else { int i; running_status = 0; for (i = 1; i <= eptr->data[0]; i++) writebyte(eptr->data[i]); } } /* If we haven't written all the items (some notes are tied over the barline), shift down the remaining events, and re-relativize them. */ neptr = events; next_event_seq = 0; for (; eptr < next_event; eptr++, neptr++) { *neptr = *eptr; neptr->time -= this_barlength; next_event_seq = neptr->seq + 1; } next_event = neptr; /* Set time for start of next bar */ last_written_time -= this_barlength; } /************************************************* * Write MIDI file * *************************************************/ /* This is the only external entry to this set of functions. The data is all in memory and global variables. Arguments: none Returns: nothing */ void midi_write(void) { int start_bar; int end_bar; int i, stave; int temp; midi_file = Ufopen(midi_filename, "w"); if (midi_file == NULL) { error_moan(4, midi_filename, strerror(errno)); return; } DEBUG(("midi_write()\n")); /* Initialize things */ if (play_movt_number <= 0) play_movt_number = 1; play_movt = movement[play_movt_number]; play_tempo = play_movt->play_tempo; start_bar = (play_startbar <= 0)? 1 : play_startbar; end_bar = (play_endbar <= 0)? play_movt->barcount : play_endbar; play_onebar_only = (start_bar == end_bar); play_volume = 127; /* PRO TEM */ /* Stave selection is the main stave selection */ for (i = 0; i < stave_bitvec_size; i++) play_staves[i] = play_movt->staves[i] & main_staves[i]; /* Initialize the tie information */ for (stave = 1; stave <= play_movt->laststave; stave++) stavetie[stave] = FALSE; /* Miscellaneous stuff */ last_written_time = 0; running_status = 0; /* Get store in which to hold a bar's events before sorting. For the first bar, it is empty at the start. */ events = malloc(sizeof(midi_event) * 1000); next_event = events; next_event_seq = 0; /* Set up the initial per-stave vectors */ memcpy(midi_channel, play_movt->midi_channel, sizeof(midi_channel)); memcpy(midi_channel_volume, play_movt->midi_volume, sizeof(midi_channel_volume)); memcpy(midi_note, play_movt->midi_note, sizeof(midi_note)); /* Write header chunk */ fprintf(midi_file, "MThd"); write32(6); /* length */ write16(0); /* format */ write16(1); /* number of tracks */ write16(24); /* ticks per crotchet (MIDI standard) */ /* Now write the track, leaving space for the length */ fprintf(midi_file, "MTrk"); write32(0); file_count = 0; /* For computing the length */ /* Output any user-supplied initialization. The user's data is a plain MIDI stream, without any time deltas. Ensure that each event is set to occur at the beginning (time zero). */ if (curmovt->midi_start != NULL) { for (i = 1; i <= play_movt->midi_start[0]; i++) { if ((play_movt->midi_start[i] & 0x80) != 0) writebyte(0); writebyte(play_movt->midi_start[i]); } } /* Default tempo - can change for specific bars */ writebyte(0); writebyte(0xff); writebyte(0x51); writebyte(0x03); temp = 60000000/play_tempo; /* Microseconds per crotchet */ writebyte(temp>>16); writebyte(temp>>8); writebyte(temp); /* Assign MIDI voices to MIDI channels if required. */ for (i = 1; i <= midi_maxchannel; i++) { if (play_movt->midi_voice[i-1] < 128) { writebyte(0); /* delta time */ writebyte(0xC0 + i - 1); writebyte(play_movt->midi_voice[i-1]); } } /* Initialize the per-stave relative volume & transpose vectors */ memcpy(stave_volume, play_movt->play_volume, sizeof(stave_volume)); memcpy(midi_transpose, play_movt->playtranspose, sizeof(midi_transpose)); /* Unless starting at the beginning, scan through the playing changes blocks that were set up by a heading directive, and update the data if the change happened before this bar. The chain is for all staves, so we must always scan to the end. */ if (start_bar > 1) { b_playchangestr *change = play_movt->play_changes; while (change != NULL) { if (change->barno < play_bar) { int stave = change->stave; /* If change volume occurs with midi channel change, it is a channel volume change, not a stave volume change. */ if (change->volume < 128 && change->channel == 128) stave_volume[stave] = change->volume; if (change->transpose) midi_transpose[stave] += change->transpose; if (change->channel < 128) { midi_channel[stave] = change->channel; if (change->volume < 128) midi_channel_volume[change->channel-1] = change->volume; } if (change->note < 128) midi_note[stave] = change->note; if (change->voice < 128) { writebyte(0); /* delta time */ writebyte(0xC0 + midi_channel[stave] - 1); writebyte(change->voice); } } change = change->next; } } /* Also, if not starting at the beginning, we must scan through the stave data for all preceding bars, in order to pick up any in-line MIDI changes. */ for (play_bar = 1; play_bar < start_bar; play_bar++) { for (stave = 1; stave <= play_movt->laststave; stave++) { bstr *p = ((play_movt->stavetable)[stave])->barindex[play_bar]; if (p != NULL && mac_teststave(play_staves, stave)) { int type = p->type; while (type != b_End) { switch(type) { case b_Jump: p = (bstr *)(((b_Jumpstr *)p)->next); break; case b_playchange: { b_playchangestr *change = (b_playchangestr *)p; midi_transpose[stave] += change->transpose; /* If the relative volume parameter occurs with a change of channel, it is a channel volume change. Otherwise it is a stave volume change. */ if (change->volume < 128 && change->channel == 128) stave_volume[stave] = change->volume; /* Other changes */ if (change->channel < 128) { midi_channel[stave] = change->channel; if (change->volume < 128) midi_channel_volume[change->channel - 1] = change->volume; } if (change->note < 128) midi_note[stave] = change->note; if (change->voice < 128) { writebyte(0); /* delta time */ writebyte(0xC0 + midi_channel[stave] - 1); writebyte(change->voice); } } break; default: break; } p = (bstr *)((uschar *)p + length_table[type]); type = p->type; } } } } /* Now write the bars */ repeat_bar = play_bar; repeat_endbar = -1; repeat_count = 1; for (play_bar = start_bar; play_bar <= end_bar;) { play_nextbar = play_bar + 1; writebar(play_bar == end_bar); play_bar = play_nextbar; } /* Mark the end of the track, and fill in its length before closing the file */ writebyte(0); writebyte(0xff); writebyte(0x2f); writebyte(0); fseek(midi_file, 18, SEEK_SET); write32(file_count); fclose(midi_file); } /* End of midi.c */ pmw-4.27/src/pagesubs.c0000644000222100022210000003102112247665016013111 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2008 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: September 2008 */ /* This file contains subroutines for the paginating code. */ #include "pmwhdr.h" #include "pagehdr.h" /************************************************* * Update times/keys for start of line * *************************************************/ /* This function is called at the start of a system, to see if the first bar contains clef, key, or time items that should be transferred into the basic setting for the bar. Arguments: none Returns: nothing */ void page_setsignatures(void) { int stave; for (stave = 0; stave <= page_lastwanted; stave++) { if (mac_teststave(curmovt->staves, stave)) { bstr *p = ((curmovt->stavetable)[stave])->barindex[page_barnumber]; if (p != NULL) { BOOL hadclef = FALSE; BOOL hadkey = FALSE; BOOL hadtime = FALSE; int type = p->type; while (type != b_End) { switch(type) { case b_Jump: p = (bstr *)(((b_Jumpstr *)p)->next); break; case b_clef: if (!hadclef) { b_clefstr *c = (b_clefstr *)p; (page_sysblock->cont[stave]).clef = c->trueclef; c->suppress = hadclef = TRUE; } break; case b_key: /* if (!hadkey) */ if (!hadkey || page_sysblock->cont[stave].key == 2 || page_sysblock->cont[stave].key == 21) { b_keystr *k = (b_keystr *)p; if (k->key <= 63 || !k->warn) { (page_sysblock->cont[stave]).key = k->key; hadkey = TRUE; } k->suppress = TRUE; } break; case b_time: if (!hadtime) { b_timestr *t = (b_timestr *)p; (page_sysblock->cont[stave]).time = t->time; t->suppress = hadtime = TRUE; mac_setstave(page_showtimes, stave); } break; case b_note: case b_lrepeat: goto NEXTSTAVE; } p = (bstr *)((uschar *)p + length_table[type]); type = p->type; } } } NEXTSTAVE: continue; } } /************************************************* * Find width of name string * *************************************************/ /* This function is called by page_startwidth() below. Multiple lines in a name string are indicated by '|'. We return the width of the widest. Arguments: s the string font the font size the font size Returns: a width */ static int page_namestringwidth(uschar *s, int font, int size) { int yield = 0; uschar ss[256]; while (*s) { int w; int i = 0; while (*s != 0 && *s != '|') ss[i++] = *s++; ss[i] = 0; w = string_width(ss, font, size); if (w > yield) yield = w; if (*s == '|') s++; } return yield; } /************************************************* * Compute width of stave names * *************************************************/ /* This function returns the width needed for names to be printed at the start of staves on a page. Two stave bitmaps are supplied: the name is counted only if the stave is selected in both bitmaps. Typically, the first map gives the staves that are active in a system, and the second is those that are currently suspended. Arguments: pagedata the page data block map the first bitmap map2 the second bitmap Returns: the maximum width needed */ int page_startwidth(pagedatastr *pagedata, unsigned int *map, unsigned int *map2) { int x = 0; int *f = (curmovt->fontsizes)->fontsize_text; int **m = (curmovt->fontsizes)->fontmatrix_text; if (pagedata->stavenames != NULL) { int i; snamestr **stavenames = pagedata->stavenames; for (i = 1; i <= page_lastwanted; i++) { if (mac_teststave2(map, map2, i)) { if (stavenames[i] != NULL) { int w = 0; snamestr *s = stavenames[i]; if ((s->flags & snf_vertical) != 0) w = 6000; else if (s->text != NULL) { int *matrix = m[s->offset]; if (matrix != NULL) memcpy(font_transform, matrix, 4*sizeof(int)); w = page_namestringwidth(s->text, font_rm, f[s->offset]); font_reset(); if (w > 0) w += 6000; /* final space if non-null */ } if (w > x) x = w; } } } } /* If there are stave names, add extra if the system is braced or has a thin bracket, to leave space between them and the names. */ if (x != 0) { if (curmovt->bracelist != NULL) x += 6500; else if (curmovt->thinbracketlist != NULL) x += 4000; } return x; } /************************************************* * Deal with a page's heading * *************************************************/ /* This function sets up a headblock and adds it to the chain of headings and systems for the page. It also subtracts the space needed for the heading lines from the space left on the page. Remember to include an additional stave depth + 1pt after any headings at the top of a page. This function is not called if there are no headings. Argument: the heading structure Returns: nothing */ void page_dopageheading(headstr *page_heading) { int used = 0; headblock *h = store_Xget(sizeof(headblock)); h->type = sh_heading; h->pageheading = (page_heading != curmovt->heading); /* Not a movt heading */ h->next = NULL; h->movt = curmovt; h->headings = page_heading; *page_sysprevptr = (sysblock *)h; page_sysprevptr = (sysblock **)(&(h->next)); while (page_heading != NULL) { used += page_heading->space; page_heading = page_heading->next; } if (curpage->spaceleft == main_pagelength) curpage->spaceleft -= 17000; curpage->spaceleft -= used; } /************************************************* * Justify a heading or footing * *************************************************/ /* This function scans a heading text and splits up the "left hand" part into two or more heading lines. For all but the last line the stretch field is set to cause the text to be printed with right justification. (Actually the last line is justified too, if it is near enough to the end.) Argument: a heading structure Returns: nothing */ void page_justifyheading(headstr *h) { while (h != NULL) { if (h->size > 0) /* Text heading (as opposed to drawing or postscript) */ { uschar *lastsplit = NULL; uschar *p = h->a.text; int spacecount = 0; int splitfont = 0; int lastwidth = 0; if (h->matrix != NULL) memcpy(font_transform, h->matrix, 4*sizeof(int)); for (;;) { if (*p == '|') break; if (*p == ' ' || *p == 0) { int width; int c = *p; *p = 0; width = string_width(h->a.text, h->font, h->size); *p = c; if (width > curmovt->linelength) { headstr *new; if (lastsplit == NULL) break; p = lastsplit; *p++ = 0; new = store_Xget(sizeof(headstr)); memcpy(new, h, sizeof(headstr)); new->a.text = p; new->font = splitfont; new->b.spaceabove = 0; new->stretch = 0; if (spacecount > 1) h->stretch = (curmovt->linelength - lastwidth)/(spacecount - 1); h->next = new; h = new; spacecount = 0; lastsplit = NULL; } else if (*p == 0) { if (curmovt->linelength - width < 5000 && spacecount > 0) h->stretch = (curmovt->linelength - width)/spacecount; break; } else { spacecount++; lastsplit = p++; lastwidth = width; splitfont = string_font; /* Set by string_width */ while (*p == ' ') { p++; spacecount++; } } } else p++; } font_reset(); /* To set no transformation */ } h = h->next; /* Loop through all headings */ } } /************************************************* * Set up a new page * *************************************************/ /* This is not called for the very first page; curpage is always set to the current page. Arguments: heading a movement heading, or NULL if not a movement start page_heading a page heading, or NULL if no page heading Returns: nothing; curpage is updated */ void page_newpage(headstr *heading, headstr *page_heading) { pagestr *newpage = store_Xget(sizeof(pagestr)); curpage->next = newpage; newpage->number = main_lastpage = curpage->number + main_pageinc; curpage = newpage; curpage->next = NULL; curpage->spaceleft = main_pagelength; curpage->overrun = 0; curpage->sysblocks = NULL; curpage->footing = NULL; page_sysprevptr = &(curpage->sysblocks); page_countsystems = 0; page_lastsystem = NULL; page_footnotes = NULL; page_footnotedepth = 0; page_justify = curmovt->justify; page_topmargin = curmovt->topmargin; page_botmargin = curmovt->botmargin; if (page_heading != NULL) page_dopageheading(page_heading); if (heading != NULL) page_dopageheading(heading); } /************************************************* * Finish off a page * *************************************************/ /* Correct the final spaceleft value (for information use), then justify the page if necessary, and set up the footnotes & footing. Argument: TRUE for the final page; causes it to use lastfooting Returns: nothing */ void page_endpage(BOOL final) { headstr *footing; int justbits = page_justify & (just_top + just_bottom); int spaceleft = (curpage->spaceleft += ((page_lastsystem == NULL)? 0 : page_lastsystem->systemgap)); /* Set up any footnotes, making sure the systemgap field on the last system is the last accepted spacing below stave value, plus 10 points. Adjust the spaceleft to allow for footnotes when justifying. */ if (page_footnotes != NULL) { headblock *h = store_Xget(sizeof(headblock)); h->type = sh_heading; h->pageheading = FALSE; h->next = NULL; h->movt = curmovt; h->headings = page_footnotes; *page_sysprevptr = (sysblock *)h; page_lastsystem->systemgap = page_footnotespacing + 10000; spaceleft -= page_footnotedepth + page_footnotespacing; } if (spaceleft < 0) spaceleft = 0; /* can happen on deep systems */ /* Deal with vertical justification data. If there are no spreading points top+bottom is the same as bottom. There is a limit to the distance between systems. */ if (justbits == just_top + just_bottom) { int topmargin = page_topmargin; int botmargin = page_botmargin; int margin = topmargin + botmargin; if (margin > spaceleft) { topmargin = mac_muldiv(topmargin, spaceleft, margin); botmargin = mac_muldiv(botmargin, spaceleft, margin); } spaceleft -= botmargin + topmargin; curpage->topspace = topmargin; if (spaceleft <= main_pagelength/2 && page_countsystems > 1) { int count = page_countsystems - 1; int insert = spaceleft/count; sysblock *s = curpage->sysblocks; if (insert > main_maxvertjustify) insert = main_maxvertjustify; while (s != NULL) /* defensive programming */ { if (s->type != sh_heading && (s->flags & sysblock_noadvance) == 0) { s->systemgap += insert; if (--count <= 0) break; } s = s->next; } } } /* Top-only justification */ else if (justbits == just_top) curpage->topspace = (page_topmargin > spaceleft)? spaceleft : page_topmargin; /* Bottom-only justification */ else if (justbits == just_bottom) { curpage->topspace = spaceleft - page_botmargin; if (curpage->topspace < 0) curpage->topspace = 0; } /* No justification => centred vertically */ else curpage->topspace = spaceleft/2; /* Set up the page footing */ if (page_footing != NULL) /* Start of movement page footing */ { footing = page_footing; page_footing = NULL; } else { footing = (final && curmovt->lastfooting != NULL)? curmovt->lastfooting : curmovt->pagefooting; } if (footing != NULL) { headblock *f = store_Xget(sizeof(headblock)); f->next = NULL; f->movt = curmovt; f->headings = footing; curpage->footing = f; } } /* End of pagesubs.c */ pmw-4.27/src/paginate.c0000644000222100022210000013305112247665016013076 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2013 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: March 2013 */ /* This file contains code for splitting the music bars into systems and making up pages from them. */ #include "pmwhdr.h" #include "pagehdr.h" enum { page_state_newmovt, page_state_newsystem, page_state_insystem, page_state_donesystem, page_state_donemovt }; /************************************************* * Pagination function * *************************************************/ /* This function is called when the music has been successfully read in to memory. Arguments: none Returns: nothing */ void paginate_go(void) { int i; int nextbarwidth; int xposition; int adjustkeyposition; int adjusttimeposition; int lengthwarn = 0; int page_layoutptr = 0; int save_notespacing[8]; int page_layoutstack[20]; int page_layoutstackptr = 0; int page_state = page_state_newmovt; BOOL page_done = FALSE; DEBUG(("paginate_go() start\n")); /* Font initialization */ font_reset(); /* To set no transformation */ font_xstretch = 0; /* No justification */ /* Set up page and line lengths in magnified units, and compute the total number of bars to be set. Once we have the line length, we can split and justify heading and footing lines. */ main_pagelength = (main_truepagelength * 1000)/main_magnification; main_totalbars = 0; for (i = 1; i <= main_lastmovement; i++) { curmovt = movement[i]; curmovt->linelength = (curmovt->truelinelength * 1000)/main_magnification; main_totalbars += curmovt->barcount; page_justifyheading(curmovt->heading); page_justifyheading(curmovt->footing); page_justifyheading(curmovt->lastfooting); } /* Get store for the three data structures */ page_accepteddata = store_Xget(sizeof(pagedatastr)); page_nextdata = store_Xget(sizeof(pagedatastr)); page_previousdata = store_Xget(sizeof(pagedatastr)); /* Other initialization */ page_barcount = 0; page_movtnumber = 1; /* Set up the first page block */ curpage = main_pageanchor = store_Xget(sizeof(pagestr)); curpage->next = NULL; curpage->number = main_lastpage = main_firstpage; curpage->spaceleft = main_pagelength; curpage->overrun = 0; curpage->sysblocks = NULL; curpage->footing = NULL; page_sysprevptr = &(curpage->sysblocks); page_countsystems = 0; page_lastsystem = NULL; page_movtpending = FALSE; curmovt = movement[page_movtnumber]; page_footing = page_footnotes = NULL; page_footnotedepth = 0; /* Set the spreading parameters for the first page */ page_botmargin = curmovt->botmargin; page_justify = curmovt->justify; page_topmargin = curmovt->topmargin; /* Working clefs while measuring. The current clef is needed only for measuring special keys, which may depend on the clef. We can't use the page_cont versions because they are not updated until after we know which bars are to be included in this system. */ page_sysclef = store_Xget(sizeof(uschar) * (max_stave + 1)); /* Loop that does the job; page_state controls which action is taken. */ while (!page_done) switch(page_state) { /****************************************************************************/ /* Deal with the start of a movement. We deal with the heading lines and then set up for paginating the rest of the movement. */ case page_state_newmovt: format_movt = curmovt; if (curmovt->barlinespace == 0x80000000) { page_barlinewidth = (curmovt->notespacing)[minim]/2 - 5000; if (page_barlinewidth < 3000) page_barlinewidth = 3000; curmovt->barlinespace = page_barlinewidth; } else page_barlinewidth = curmovt->barlinespace; memcpy(page_stavemap, curmovt->staves, stave_bitvec_size*sizeof(int)); page_ulaysize = (curmovt->fontsizes)->fontsize_ulay; page_olaysize = (curmovt->fontsizes)->fontsize_olay; /* Deal with heading texts if we know the movement is to go on this page. If we are at the top of a page, do the page heading unless it has been turned off explicitly. Also, set up a footing for this page. */ if (!page_movtpending) { if (page_movtnumber > 1 && curmovt->pageheading != NULL && (curmovt->movt_opt & movt_nopageheading) == 0 && curpage->spaceleft == main_pagelength) page_dopageheading(curmovt->pageheading); if (curmovt->heading != NULL) page_dopageheading(curmovt->heading); if (curmovt->footing != NULL) page_footing = curmovt->footing; } /* Create vector of per-bar data structures */ curmovt->posvector = (barposstr *)store_Xget(curmovt->barcount * sizeof(barposstr)) - 1; /* Now set up to process the bars. Start by finding the highest possible stave number. */ page_lastwanted = -1; { int x; for (i = stave_bitvec_size - 1; i >= 0; i--) { if ((x = curmovt->staves[i]) != 0) { page_lastwanted += i << 5; break; } } while (x) { page_lastwanted++; if (page_lastwanted >= curmovt->laststave) break; x = x >> 1; } } /* Cut back the count of staves to those requested */ curmovt->laststave = page_lastwanted; /* Initialize values in the accepted data structure */ for (i = 0; i < stave_bitvec_size; i++) page_accepteddata->notsuspend[i] = curmovt->staves[i] & (~curmovt->suspend[i]); memcpy(page_accepteddata->notespacing, curmovt->notespacing, 8*sizeof(int)); page_accepteddata->stavenames = store_Xget((page_lastwanted+1)*sizeof(uschar *)); for (i = 1; i <= page_lastwanted; i++) { snamestr *sn = ((curmovt->stavetable)[i])->stave_name; page_accepteddata->stavenames[i] = sn; } /* Stavespacing is set only if it has been mentioned */ if (curmovt->stave_spacing == NULL) { page_ssnext = store_Xget((page_lastwanted+1)*sizeof(int)); page_ssnext[0] = 0; for (i = 1; i <= page_lastwanted; i++) page_ssnext[i] = 44000; } else page_ssnext = curmovt->stave_spacing; page_sgnext = curmovt->systemgap; /* Create vectors for {und,ov}erlay level handling */ page_ulevel = store_Xget((page_lastwanted+1)*sizeof(int)); page_ulhere = store_Xget((page_lastwanted+1)*sizeof(int)); page_olevel = store_Xget((page_lastwanted+1)*sizeof(int)); page_olhere = store_Xget((page_lastwanted+1)*sizeof(int)); for (i = 0; i <= page_lastwanted; i++) page_ulevel[i] = page_olevel[i] = BIGNUMBER; /* The ensure spacing data is often NULL, but if not, set up separate "here" and "next" vectors. */ page_ssenext = curmovt->stave_ensure; page_ssehere = (page_ssenext == NULL)? NULL : store_Xget((page_lastwanted+1)*sizeof(int)); /* Set up the continuation data vector, in the default state */ page_cont = store_Xget((page_lastwanted+1)*sizeof(contstr)); for (i = 0; i <= page_lastwanted; i++) { contstr *p = page_cont + i; p->slurs = NULL; p->hairpin = NULL; p->nbar = NULL; p->ulay = NULL; p->tie = NULL; p->overbeam = NULL; p->tiex = 0; p->noteheadstyle = nh_normal; p->flags = cf_default; p->clef = clef_treble; p->time = curmovt->time; p->key = transpose_key(curmovt->key, curmovt->transpose, FALSE); } /* Final set up */ if (curmovt->startnotime) mac_initstave(page_showtimes, 0); else { mac_initstave(page_showtimes, -1); mac_clearstave(page_showtimes, 0); } page_firstsystem = TRUE; page_startline = curmovt->startline; page_state = page_state_newsystem; /* Set up for fixed layout if required */ if (curmovt->layout == NULL) page_layoutptr = -1; else { page_layoutstack[0] = BIGNUMBER; page_layoutstackptr = 1; page_layoutptr = 0; while (curmovt->layout[page_layoutptr++] == lv_repeatcount) page_layoutstack[page_layoutstackptr++] = curmovt->layout[page_layoutptr++]; } /* The left and right justification bits can be set immediately, so that they apply to all systems in the new movement. The top and bottom bits can't be changed yet, because we don't know if this movement will start on the current page. */ page_justifyLR = curmovt->justify; /* Initialize the bar number and deal with the case of no bars of music in the movement. */ if ((page_barnumber = 1) > curmovt->barcount) { page_botmargin = curmovt->botmargin; /* Normally set when we know */ page_justify = curmovt->justify; /* that the first system fits */ page_topmargin = curmovt->topmargin; /* on the page. This code copes */ page_state = page_state_donemovt; /* with a single movement file */ } break; /****************************************************************************/ /* Deal with the start of a new system. There will always be at least one bar left when control gets here. */ case page_state_newsystem: { int i; int keyxposition = 0; int timexposition = 0; int timewidth = 0; int Cmajor = TRUE; page_newpagewanted = FALSE; /* initialize flags */ page_layout_stretchn = page_layout_stretchd = 1; /* first time; no stretch */ if (page_ssenext != NULL) memcpy(page_ssehere, page_ssenext, (page_lastwanted+1)*sizeof(int)); /* Get a new system block and initialize */ page_sysblock = store_Xget(sizeof(sysblock)); page_sysblock->next = NULL; page_sysblock->type = sh_system; page_sysblock->flags = 0; page_sysblock->movt = curmovt; memcpy(page_sysblock->notsuspend, page_accepteddata->notsuspend, stave_bitvec_size*sizeof(int)); mac_initstave(page_sysblock->showtimes, 0); page_sysblock->barstart = page_barnumber; page_sysblock->barend = page_barnumber; page_sysblock->stavenames = page_accepteddata->stavenames; page_sysblock->stavespacing = page_ssnext; page_sysblock->systemgap = page_sgnext; page_sysblock->cont = misc_copycontstr(page_cont, page_lastwanted, TRUE); /* Set up working clefs at start of system; these are needed only for use when measuring the widths of special key signatures, which may depend on the clef. We can't use the page_cont values because they don't get updated dynamically ('cause we don't want to go past the bars we accept). */ for (i = 1; i <= page_lastwanted; i++) page_sysclef[i] = page_sysblock->cont[i].clef; page_sysblock->ulevel = store_Xget((page_lastwanted+1) * sizeof(int)); page_sysblock->olevel = store_Xget((page_lastwanted+1) * sizeof(int)); for (i = 0; i <= page_lastwanted; i++) { contstr *c = page_cont + i; if (c->overbeam != NULL) /* Clear continued beams for next system */ { store_free(c->overbeam); c->overbeam = NULL; } page_ulhere[i] = page_olhere[i] = 0; page_sysblock->ulevel[i] = -page_ulaysize - 1000; page_sysblock->olevel[i] = 20000; } /* Update the current key/time signatures if necessary */ page_setsignatures(); /* Initialize those fields of the current data structure that are reset for each system */ page_accepteddata->endkey = FALSE; page_accepteddata->endtime = FALSE; page_accepteddata->endbar = page_barnumber - 1; page_accepteddata->count = 0; /* Save the initial notespacing so that it can be restored for re-spacing bars when there's a big stretch factor. */ memcpy(save_notespacing, page_accepteddata->notespacing, 8*sizeof(int)); /* If all staves are suspended (can happen during part extraction with the use of [newline] or with S! bars) unsuspend the lowest numbered stave. If any staves get resumed in the system, this gets undone again later. */ if (!mac_anystave(page_sysblock->notsuspend)) for (i = 0; i < stave_bitvec_size; i++) { if (curmovt->staves[i] != 0) { page_sysblock->notsuspend[i] = curmovt->staves[i] & (-curmovt->staves[i]); break; } } /* Find the starting position of the stave */ page_accepteddata->startxposition = page_startwidth(page_accepteddata, page_stavemap, page_sysblock->notsuspend); /* Compute position for key signatures. We make them all line up vertically. The top bit in the stavelines value indicates no clefs are ever printed. This is to support the old [percussion] directive (which pre-dates [noclef]). For the moment, the value generated is relative to startxposition. */ for (i = 1; i <= page_lastwanted; i++) { stavestr *ss = curmovt->stavetable[i]; if (mac_teststave2(page_stavemap, page_sysblock->notsuspend, i) && (!ss->omitempty || (ss->barindex)[page_barnumber] != NULL)) { mac_setstavesize(i); if ((curmovt->stavetable[i])->stavelines < 127) { int clef = (page_sysblock->cont[i]).clef; int xposition = curmovt->clefwidths[clef] * main_stavemagn + page_startline->clefspace; if (xposition > keyxposition) keyxposition = xposition; } } } /* Compute the position for time signatures after the widest key signature (again relative to startxposition). Again, the top stavelines bit suppresses key signatures. */ for (i = 1; i <= page_lastwanted; i++) { if (mac_teststave2(page_stavemap, page_sysblock->notsuspend, i)) { mac_setstavesize(i); if ((curmovt->stavetable[i])->stavelines < 127) { int key = (page_sysblock->cont[i]).key; int xposition = keyxposition + (main_stavemagn * misc_keywidth(key, page_sysblock->cont[i].clef))/1000; if (xposition > timexposition) timexposition = xposition; if (key != 2) Cmajor = FALSE; } } } /* If at least one key signature is not C major, insert extra space before the key position. */ if (!Cmajor) { keyxposition += page_startline->keyspace; timexposition += page_startline->keyspace; } page_sysblock->keyxposition = keyxposition; /* If all staves are [percussion] staves, no clefs or keys get written. This can also happen for [noclef] staves with no key signature. In this case we need to put a little bit of space before the time signature or first note. */ if (timexposition == 0) timexposition += 2000; /* We are now at the position for the time signature, or first note if there is no time signature. */ if (mac_anystave(page_showtimes)) { timexposition += page_startline->timespace; for (i = 1; i <= page_lastwanted; i++) { if (mac_teststave2(page_stavemap, page_sysblock->notsuspend, i)) { int tw; mac_setstavesize(i); tw = (main_stavemagn * misc_timewidth((page_sysblock->cont[i]).time))/1000; if (tw > timewidth) timewidth = tw; } } memcpy(page_sysblock->showtimes, page_showtimes, stave_bitvec_size * sizeof(int)); mac_initstave(page_showtimes, 0); } page_sysblock->timexposition = timexposition; /* Set the first note position */ page_sysblock->firstnoteposition = timexposition + timewidth + page_leftbarspace + page_startline->notespace; /* The xposition is an absolute position, used during calculations */ page_accepteddata->xposition = page_accepteddata->startxposition + page_sysblock->firstnoteposition; /* Initialize start of line flags and accidental space insertion flag */ page_startlinebar = TRUE; /* becomes FALSE after one acceptance */ page_lastendwide = FALSE; /* at start of line */ page_lastenddouble = FALSE; /* ditto */ /* Enter the mid-system state */ page_state = page_state_insystem; } break; /****************************************************************************/ /* In the middle of a system - measure the next bar and see if it will fit. It it doesn't, and it starts with a key or time signature and there is not even enough room for that, we have to back off from accepting the previous bar. When the system is full, change state again. */ case page_state_insystem: /* Make copy of current status for MakePosTable to update */ *page_nextdata = *page_accepteddata; /* Measure the bar -- this also sets various flags such as page_warnkey and also sets page_xxwidth if there is a key and/or time signature. The lengthwarn variable is normally zero (or less), but is set to 1 after the end of a system so that re-measuring the bar, for the next system, doesn't give a length warning again. If we back up two bars, in order to fit in a key/time signature, lengthwarn is set to 2. */ nextbarwidth = page_makepostable(lengthwarn-- < 1); /* Compute position if bar were accepted */ xposition = page_accepteddata->xposition + nextbarwidth; /* If a stave has been resumed in this bar, or if a stave name has changed, it may be necessary to change the width of the stave name space (i.e. startxposition). This may make the bar unacceptable. We must also check the clef of the resumed stave, if it has a bar to print at the start of the system, because a wider clef will alter the position of the key signature. Likewise the key signature of the resumed stave, because a wider key signature will alter the position of the time signature. */ adjustkeyposition = 0; adjusttimeposition = 0; if (mac_diffstave(page_nextdata->notsuspend, page_accepteddata->notsuspend) || page_nextdata->stavenames != page_accepteddata->stavenames) { int i; int newkeyxposition = 0; int newtimexposition = 0; /* Deal with stave names */ int newstartx = page_startwidth(page_nextdata, page_stavemap, page_nextdata->notsuspend); page_nextdata->startxposition = newstartx; xposition += newstartx - page_accepteddata->startxposition; /* Deal with change of key signature position */ for (i = 1; i <= page_lastwanted; i++) { stavestr *ss = curmovt->stavetable[i]; if (mac_teststave2(page_stavemap, page_nextdata->notsuspend, i) && (!ss->omitempty || (ss->barindex)[page_sysblock->barstart] != NULL)) { mac_setstavesize(i); if ((curmovt->stavetable[i])->stavelines < 127) { int clef = (page_sysblock->cont[i]).clef; int key = (page_sysblock->cont[i]).key; int xp = curmovt->clefwidths[clef] * main_stavemagn + page_startline->clefspace; if (xp > newkeyxposition) newkeyxposition = xp; xp = newkeyxposition + (main_stavemagn * misc_keywidth(key, clef))/1000; if (xp > newtimexposition) newtimexposition = xp; } } } if (newkeyxposition > page_sysblock->keyxposition) { adjustkeyposition = newkeyxposition - page_sysblock->keyxposition; xposition += adjustkeyposition; } if (newtimexposition > page_sysblock->timexposition + adjustkeyposition) { adjusttimeposition = newtimexposition - page_sysblock->timexposition - adjustkeyposition; xposition += adjusttimeposition; } } /* Default overrun is "infinity" */ page_sysblock->overrun = 255; /* If this is not the first bar on the line, see if it will fit. We always accept one bar - it gets squashed (with a warning). If a fixed layout has been specified, accept bars until we have one more than required. */ if ((page_layoutptr < 0 && page_accepteddata->count > 0 && xposition > curmovt->linelength) || (page_layoutptr >= 0 && page_accepteddata->count >= curmovt->layout[page_layoutptr])) { int overrun = xposition - curmovt->linelength; lengthwarn = 1; /* Don't warn when we reprocess the bar */ /* See if cautionary signature(s) are needed. */ if (!page_startlinebar && (page_warnkey || page_warntime)) { xposition = page_accepteddata->xposition + page_xxwidth; /* If there is not even enough space for the end-of-line signature(s), back up to the previous bar, unless there isn't one to back up to, in which case give an overlong line warning. */ if (page_layoutptr < 0 && xposition > curmovt->linelength) { if (page_accepteddata->count > 1) { pagedatastr *temp = page_previousdata; page_previousdata = page_accepteddata; page_accepteddata = temp; page_barcount -= page_lastbarcountbump; page_barnumber -= page_lastbarcountbump; overrun = xposition - curmovt->linelength; lengthwarn++; /* Two bars not to warn for */ } else { error_moan(56, page_previousdata->endbar); overrun = 25500; } } /* Room for key/time -- set flag(s) and xposition */ else { page_accepteddata->xposition = xposition + page_barlinewidth; page_accepteddata->endkey = page_warnkey; page_accepteddata->endtime = page_warntime; } } /* Set up the overrun value as a whole number of points, rounded up */ overrun = (overrun + 999)/1000; if (overrun > 255) overrun = 255; page_sysblock->overrun = overrun; /* In all cases we've finished the system */ page_state = page_state_donesystem; } /* There is room on the line for this bar, or it is the first bar on the line, so accept it, first freeing any vectors that previous points to which are no longer needed. Give a warning for an over- flowing single bar, which will be squashed to fit. */ else { pagedatastr *temp = page_previousdata; page_previousdata = page_accepteddata; page_accepteddata = page_nextdata; page_nextdata = temp; if (page_accepteddata->count == 0 && xposition > curmovt->linelength) { error_moan(55, page_accepteddata->endbar + 1, nextbarwidth, xposition-nextbarwidth, curmovt->linelength); } /* If this bar starts with a key or time change, then bump the previous x position to account for it, as that will be what happens if we have to back off. */ if (page_xxwidth > 0 && !page_startlinebar) { page_previousdata->xposition += page_xxwidth + page_barlinewidth; page_previousdata->endkey = page_warnkey; page_previousdata->endtime = page_warntime; } else { page_previousdata->endkey = FALSE; page_previousdata->endtime = FALSE; } /* Allow for key & time signature positioning adjustment */ if (adjustkeyposition || adjusttimeposition) { page_sysblock->keyxposition += adjustkeyposition; page_sysblock->timexposition += adjustkeyposition + adjusttimeposition; page_sysblock->firstnoteposition += adjustkeyposition + adjusttimeposition; } /* Update xposition, endbar number, and counts */ page_accepteddata->xposition = xposition + page_barlinewidth; if (page_manyrest >= 2) { page_accepteddata->endbar += page_manyrest; page_barcount += page_manyrest; /* total count */ page_barnumber += page_manyrest; page_lastbarcountbump = page_manyrest; /* for backing off */ } else { page_accepteddata->endbar++; page_barcount++; page_barnumber++; page_lastbarcountbump = 1; } page_accepteddata->count += 1; /* counts printed bars */ page_startlinebar = FALSE; if (page_barnumber > curmovt->barcount) page_state = page_state_donesystem; } break; /****************************************************************************/ /* Completed a system - tidy the data structures and see if it fits onto the current page. The positions at the start of the line can be made absolute now that startxposition is known. We also perform the stretching operation on the position tables in the bars at this point. */ case page_state_donesystem: { int startxposition = page_accepteddata->startxposition; int barlinewidth = page_barlinewidth; int i, justbits, stretchn, stretchd, sysdepth, sysfootdepth; page_sysblock->stavenames = page_accepteddata->stavenames; page_sysblock->barend = page_accepteddata->endbar; /* If there are no unsuspended staves in the accepted data, then leave the sysblock alone, as it will have had one stave forced into it. Otherwise, overwrite with the accepted value, thereby turning off the fudged stave if there was one. */ if (mac_anystave(page_accepteddata->notsuspend)) for (i = 0; i < stave_bitvec_size; i++) page_sysblock->notsuspend[i] = page_accepteddata->notsuspend[i]; /* Fix various initial positions */ page_sysblock->startxposition = startxposition; page_sysblock->joinxposition = startxposition; page_sysblock->keyxposition += startxposition; page_sysblock->timexposition += startxposition; page_sysblock->firstnoteposition += startxposition; if (page_accepteddata->endkey) page_sysblock->flags |= sysblock_warnkey; if (page_accepteddata->endtime) page_sysblock->flags |= sysblock_warntime; /* Advance the continuation data to the end of the system, ready for the next one. This scan also handles changes of stave and system spacing, and local justification. Because we do not yet know if this system is going to fit on the page, any vertical justification changes that it makes are placed in page_sys_xxx variables. We initialize them to negative numbers to detect changes. There is an unfortunate chicken-and-egg situation here. We need to set the barlinewidth, as it is used when computing beam slopes for beams that cross barlines. It should really be set to the stretched value, but we can't compute the stretching factor until we've done the barcont stuff, in order to know if we have to justify or not. We cheat by setting it to the unstretched value and hoping that is near enough... */ page_sysblock->barlinewidth = barlinewidth; page_sys_topmargin = page_sys_botmargin = page_sys_justify = -1; /* The page_setcont() routine also collects footnotes and system notes. We initialize the various variables before calling it. */ page_newfootnotes = NULL; page_newfootnotedepth = 0; page_setcont(); /* Set up the xposition of the end of the line and the justify bits, and compute the spreading parameters. We spread if the line is wider than a proportion of the linewidth as set by the stretchthresh variables, or if it's too long (when the "spreading" is actually squashing). Note that left/right justification bits are taken from this system's flags, if there were any. */ xposition = page_accepteddata->xposition - barlinewidth; justbits = page_justifyLR & (just_left + just_right); /* Left + right justification */ if ((justbits == just_left + just_right && xposition - page_sysblock->startxposition > (main_stretchthreshnum* (curmovt->linelength - page_sysblock->startxposition)) / main_stretchthreshden) || xposition > curmovt->linelength) { int i = 0; int save_xxwidth = page_xxwidth; int xxadjust = page_sysblock->firstnoteposition + ((page_accepteddata->endkey || page_accepteddata->endtime)? page_xxwidth + barlinewidth : 0); stretchn = curmovt->linelength - xxadjust; stretchd = xposition - xxadjust; page_sysblock->xjustify = 0; page_sysblock->flags |= sysblock_stretch; /* If the stretching factor is large enough, throw away the position tables and re-format all the bars using the known stretching factor. They should not get any wider. Then compute revised stretching factors. Repeat if necessary, up to 4 times. Note that we have to keep re-stretching the barlinewidth. From release 4.22 we also do this when the stretching is actually squashing by a large enough amount, which can happen when the layout directive forces more bars onto a line than would normally fit. This is necessary when there is underlay, where words might crash when a bar is squashed. (While testing this, it turns out that the squashing version also sometimes kicks in after a stretching time round the loop, which sometimes overdoes things, it seems. It does no harm.) There's an option to prevent this new logic from happening, for old files. It currently selects between three states: do nothing, do it only for over-stretching, do it for both over-stretching and squashing. */ page_layout_stretchn = stretchn; page_layout_stretchd = stretchn; /* sic - see below - it changes cumulatively */ while (i++ < 4 && ( (mac_muldiv(stretchd, 1000, stretchn) > main_stretchrespacethresh && opt_stretchrule >= 2) || (mac_muldiv(stretchn, 1000, stretchd) > main_stretchrespacethresh && opt_stretchrule >= 1) )) { int j; page_layout_stretchd = mac_muldiv(page_layout_stretchd, stretchd, stretchn); xposition = page_sysblock->firstnoteposition; page_startlinebar = TRUE; /* becomes FALSE after one acceptance */ page_lastendwide = FALSE; /* at start of line */ page_lastenddouble = FALSE; /* ditto */ barlinewidth = mac_muldiv(barlinewidth, stretchn, stretchd); memcpy(page_nextdata->notespacing, save_notespacing, 8*sizeof(int)); /* Reset clefs at system start */ for (j = 1; j <= page_lastwanted; j++) page_sysclef[j] = page_sysblock->cont[j].clef; for (page_barnumber = page_sysblock->barstart; page_barnumber <= page_sysblock->barend; page_barnumber++) { barposstr *bp = curmovt->posvector + page_barnumber; store_free(bp->vector); xposition += page_makepostable(FALSE) + barlinewidth; page_startlinebar = FALSE; if (page_manyrest >= 2) page_barnumber += page_manyrest - 1; } xposition -= barlinewidth; if (page_accepteddata->endkey || page_accepteddata->endtime) xposition += save_xxwidth + curmovt->barlinespace; /* Unstretched barlinewidth */ stretchd = xposition - xxadjust; if (main_tracepos == (-1) || (page_sysblock->barstart <= main_tracepos && page_sysblock->barend >= main_tracepos)) debug_printf("i=%d bars %d-%d old=%d new=%d\n", i, page_sysblock->barstart, page_sysblock->barend, mac_muldiv(page_layout_stretchn, 1000, page_layout_stretchd), mac_muldiv(stretchn, 1000, stretchd)); } } /* Deal with right only or no justification */ else { stretchn = stretchd = 1; if ((justbits & just_left) == 0) { int xjustify = curmovt->linelength - xposition; if (justbits == 0) xjustify /= 2; page_sysblock->xjustify = xjustify; } else page_sysblock->xjustify = 0; } /* The barline width for the system is the final stretched value. */ page_sysblock->barlinewidth = mac_muldiv(barlinewidth, stretchn, stretchd); /* Now apply the stretching operation to the bars in the system. Key and time signatures and left repeats at the start of a bar are not stretched. Grace notes are kept at the same distance from their successors. */ for (i = page_sysblock->barstart; i <= page_sysblock->barend; i++) { barposstr *bp = curmovt->posvector + i; posstr *p = bp->vector; int count = bp->count; /* If this is the first bar of a multi-rest, make a correction to the value of i to skip the others. */ i += bp->multi - 1; /* Skip over any clefs, key signatures or time signatures at the start of the bar. For big stretches, it is in fact not enough to do this, as the stretched barlinewidth can make their positioning look silly. We move them to the left in this case. This is probably less relevant now that we re-lay-out lines to get the stretching factor down. */ /***** PRO TEM remove fix to retain previous state pending revised stretching. In this state, clefs are not tested here (they don't normally occur at line starts). We need a revised stretching algorithm to keep the first note fixed even after clefs, keys, and times. ****/ if ((p->moff <= posx_timelast && p->moff >= posx_keyfirst)) /*** || p->moff == posx_clef) ***/ { int n = 9; while ((count > 0 && p->moff >= posx_keyfirst && p->moff <= posx_timelast) || p->moff == posx_clef) { p->xoff -= ((page_sysblock->barlinewidth - page_barlinewidth)*n)/10; if (n > 2) n -= 2; p++; count--; } } /* Else skip over any grace notes and accidentals, and also the first note, which we do not want to move. But if there is nothing in the bar, don't skip over the first (= last) item. */ else { while (count > 0 && p->moff < 0) { p++; count--; } if (count > 1) { p++; count--; } } /* Now stretch the remaining items, dealing specially with grace notes, which are identified by finding the next full note and checking the offset. Also deal specially with clefs. */ while (count-- > 0) { int old; posstr *pp = p; while (count > 0 && (pp+1)->moff - pp->moff <= -posx_max) { pp++; count--; } old = pp->xoff; pp->xoff = mac_muldiv(pp->xoff, stretchn, stretchd); while (p < pp) { int d = -(pp->moff - p->moff); int rightmost = p->xoff + pp->xoff - old; int leftmost = mac_muldiv(p->xoff, stretchn, stretchd); /* Clef positions are stretched just a bit if they are the last thing in the bar. Otherwise, the position used is halfway between an unstretched and stretched position. */ if (d == posx_clef) p->xoff = (count == 0)? rightmost - (rightmost - leftmost)/5 : (rightmost+leftmost)/2; /* Grace notes are never stretched at all; other things are stretched a bit, but not the full amount. */ else if (d >= posx_gracefirst && d <= posx_gracelast) p->xoff = rightmost; else p->xoff = (rightmost + leftmost)/2; p++; } p++; } } /* If this was the first system of a movement, re-compute the stave name structure to use the second name. Also, if an indent is set for the brackets and braces, adjust the position of the joining signs. */ if (page_firstsystem) { int j; page_firstsystem = FALSE; page_accepteddata->stavenames = store_Xget((page_lastwanted+1)*sizeof(uschar *)); for (j = 1; j <= page_lastwanted; j++) { snamestr *sn = ((curmovt->stavetable)[j])->stave_name; page_accepteddata->stavenames[j] = (sn != NULL)? sn->next : NULL; } if (curmovt->startbracketbar >= page_sysblock->barstart && curmovt->startbracketbar < page_sysblock->barend) { int i; int blw = 0; page_sysblock->joinxposition = page_sysblock->firstnoteposition; for (i = page_sysblock->barstart; i <= curmovt->startbracketbar; i++) { barposstr *bp = curmovt->posvector + i; posstr *p = bp->vector; page_sysblock->joinxposition += p[bp->count-1].xoff + blw; blw = page_sysblock->barlinewidth; } } } /* Check that the stavespacing vector conforms to the ensure values, and if not, make a new one that does. At the same time, compute the total depth of the system. If an unsuspended stave has a zero stave spacing, make sure that the following stave is not suspended. */ sysdepth = 0; for (i = 1; i <= page_lastwanted; i++) { if (mac_teststave2(page_stavemap, page_sysblock->notsuspend, i)) { int j = i; int next = i+1; while (j < page_lastwanted && page_sysblock->stavespacing[j++] == 0) { mac_setstave(page_sysblock->notsuspend, j); } while (next <= page_lastwanted && mac_testNstave2(page_stavemap, page_sysblock->notsuspend, next)) next++; if (next <= page_lastwanted) { if (page_ssehere != NULL && page_sysblock->stavespacing[i] < page_ssehere[next]) { if (page_sysblock->stavespacing == page_ssnext) page_sysblock->stavespacing = store_copy(page_ssnext); page_sysblock->stavespacing[i] = page_ssehere[next]; } sysdepth += page_sysblock->stavespacing[i]; } page_lastulevel = page_sysblock->ulevel[i]; } } page_sysblock->systemdepth = sysdepth; /* Compute a testing depth consisting of the system depth plus the total depth of any footnotes, and space below the current system. And space between the current footnotes and any new ones. */ sysfootdepth = sysdepth + page_footnotedepth + page_newfootnotedepth; if (page_footnotedepth + page_newfootnotedepth > 0) { sysfootdepth += - page_lastulevel; if (page_footnotedepth > 0 && page_newfootnotedepth > 0) sysfootdepth += curmovt->footnotesep; } /* If this system is deeper than the page depth, we can't handle it. After the error, it will cause a new page to be started, but it will never be printed. */ if (sysfootdepth > main_pagelength) { int overflow = sysfootdepth - main_pagelength; error_moan(64, page_sysblock->barstart, page_movtnumber, overflow, (overflow == 1000)? "" : "s"); } /* If we have a new movement pending, find the depth of the headings and see if the headings plus this system will fit on the current page. If the system depth is zero, we have a single-stave system, in which case we insist on there being room for another one as well. */ if (page_movtpending) { headstr *h = curmovt->heading; int depth = (h == NULL)? 0 : 17000; while (h != NULL) { depth += h->space; h = h->next; } depth += (sysfootdepth == 0)? page_sysblock->systemgap : sysfootdepth; /* If no room, terminate the page and start a new one. We must arrange that footings are printed from the *previous* movement, but take the option for lastfooting and pageheading from the *current* movement. */ if (curpage->spaceleft < depth) { BOOL ph = ((curmovt->movt_opt) & movt_nopageheading) == 0; BOOL lf = ((curmovt->movt_opt) & movt_uselastfooting) != 0; curmovt = movement[page_movtnumber - 1]; page_endpage(lf); curmovt = movement[page_movtnumber]; page_newpage(curmovt->heading, ph? curmovt->pageheading : NULL); } /* There is room: output the new heading on this page, and set the justification parameters from the new movement. (The horizontal ones will have been set already, but the vertical ones can't be changed until the page is known.) We also change the bottom margin, but leave the top margin until the next page. */ else { page_justify = curmovt->justify; page_botmargin = curmovt->botmargin; if (curmovt->heading != NULL) { page_dopageheading(curmovt->heading); curpage->spaceleft -= 17000; } } /* Set up a new footing, if present. Note that if there isn't one, and we didn't start a new page, and there is one still set up from the previous movement already (in page_footing), then it will still get printed at the bottom of this page. */ if (curmovt->footing != NULL) page_footing = curmovt->footing; /* Cancel pending flag */ page_movtpending = FALSE; } /* If this system does not fit on the page, start a new one. */ if (curpage->spaceleft < sysfootdepth) { curpage->overrun = sysfootdepth - curpage->spaceleft; page_endpage(FALSE); page_newpage(NULL, curmovt->pageheading); } /* Connect the system to the chain and keep count of the number of vertically spreadable systems on the page. */ *page_sysprevptr = page_sysblock; page_sysprevptr = &(page_sysblock->next); page_countsystems++; /* If there were any footnotes, connect them to the page's footnote list for inclusion at the end. Save the current spacing value for use if the page does actually end here. */ if (page_newfootnotes != NULL) { if (page_footnotes == NULL) page_footnotes = page_newfootnotes; else { page_lastfootnote->next = page_newfootnotes; page_newfootnotes->b.spaceabove = curmovt->footnotesep; page_footnotedepth += curmovt->footnotesep; } page_lastfootnote = page_lastnewfootnote; page_footnotedepth += page_newfootnotedepth; } page_footnotespacing = - page_lastulevel; /* Update the space left on the page; just take off the space for the music (the system), not the footnotes. They'll be considered again with the next system. */ curpage->spaceleft -= sysdepth + page_sysblock->systemgap; page_state = page_state_newsystem; page_lastsystem = page_sysblock; /* Update the vertical justification parameters if they changed in this system. */ if (page_sys_justify != -1) page_justify = page_sys_justify; if (page_sys_topmargin != -1) page_topmargin = page_sys_topmargin; if (page_sys_botmargin != -1) page_botmargin = page_sys_botmargin; /* If we have an explicit layout, deal with advancing the pointer and checking for a forced new page. */ if (page_layoutptr >= 0) { page_layoutptr++; for (;;) { while (curmovt->layout[page_layoutptr] == lv_newpage) { page_layoutptr++; if (page_barnumber <= curmovt->barcount) page_newpagewanted = TRUE; } if (curmovt->layout[page_layoutptr] == lv_repeatptr) { if ((page_layoutstack[page_layoutstackptr-1] -= 1) > 0) page_layoutptr = curmovt->layout[page_layoutptr+1]; else { page_layoutstackptr--; page_layoutptr += 2; } } else { while (curmovt->layout[page_layoutptr++] == lv_repeatcount) page_layoutstack[page_layoutstackptr++] = curmovt->layout[page_layoutptr++]; break; } } } /* If a new page was forced after this system, set it up. This can only happen via [newpage] if there are more bars; hence it can't also be a movement end. Via explicit layout, it is also only set if there are more bars. */ if (page_newpagewanted) { page_endpage(FALSE); page_newpage(NULL, curmovt->pageheading); } /* Handle the end of a movement */ if (page_barnumber > curmovt->barcount) page_state = page_state_donemovt; } break; /****************************************************************************/ /* Completed a movement. Tidy the data structures and deal with the end of the whole piece or with starting a subsequent movement. */ case page_state_donemovt: misc_freecontstr(page_cont, page_lastwanted); if (page_ssehere != NULL) store_free(page_ssehere); store_free(page_ulevel); store_free(page_ulhere); store_free(page_olevel); store_free(page_olhere); /* End of the last movement */ if (page_movtnumber++ >= main_lastmovement) { page_endpage(TRUE); page_done = TRUE; } /* There is another movement to follow. If it contains no staves, we must deal with the headings here. */ else { movtstr *nextmovt = movement[page_movtnumber]; int movt_opt = (nextmovt->movt_opt & ~(movt_nopageheading | movt_uselastfooting)); /* Deal with the case of no staves in the movement; we must decide now whether it fits on the page or not if nothing is specified. */ if (nextmovt->barcount < 1 && movt_opt == movt_default) { headstr *h = nextmovt->heading; int depth = 0; while (h != NULL) { depth += h->space; h = h->next; } movt_opt = (curpage->spaceleft < depth)? movt_newpage : movt_thispage; } /* Handle forced new page; set page_heading NULL to prevent any heading output, which will be done by the start-of-movt code. */ if (movt_opt == movt_newpage) { page_endpage((nextmovt->movt_opt & movt_uselastfooting) != 0); curmovt = nextmovt; page_newpage(NULL, NULL); } /* If no page option was specified, we can't decide whether to start a new page until after the next system has been read. We just set a flag for the work to be done then. For the very special case of "thisline", we remove and vertical advance from the last system. Another system of the same depth will then always fit. We must also reduce the count of spreadable systems, since this one should not get additional space added to it! */ else { curmovt = nextmovt; if (movt_opt == movt_thisline && page_lastsystem != NULL) { curpage->spaceleft += page_lastsystem->systemdepth + page_lastsystem->systemgap; page_lastsystem->flags |= sysblock_noadvance; page_countsystems--; } if (movt_opt != movt_thispage) page_movtpending = TRUE; } /* Change state */ page_state = page_state_newmovt; } break; } store_free(page_accepteddata); store_free(page_nextdata); store_free(page_previousdata); DEBUG(("paginate_go() end\n")); } /* End of paginate.c */ pmw-4.27/src/format.c0000644000222100022210000002715412247665016012604 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2009 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: January 2009 */ /* This file contains routines for formatting PMW-specific items of data for printing, often in error messages. */ #include "pmwhdr.h" static uschar *nlsharp[] = { US" C", US"#C", US" D", US"#D", US" E", US" F", US"#F", US" G", US"#G", US" A", US"#A", US" B" }; static uschar *nlflat[] = { US" C", US"$D", US" D", US"$E", US" E", US" F", US"$G", US" G", US"$A", US" A", US"$B", US" B" }; static uschar *octavestring[] = { US"```", US"``", US"`", US"", US"'", US"''", US"'''", US"''''" }; static int notelengths[] = { len_semibreve, len_minim, len_crotchet, len_quaver, len_squaver, len_dsquaver, len_hdsquaver }; static uschar *notenames[] = { US"semibreve", US"minim", US"crotchet", US"quaver", US"semiquaver", US"demisemiquaver", US"hemidemisemiquaver" }; static uschar notefactor[] = { 2, 3, 5, 7, 11 }; /************************************************* * Format a note length * *************************************************/ /* This function is used for "%l" formats in error messages. It turns a note length into text, e.g. "4 crotchets". Arguments: buff where to put the text length the note length Returns: number of bytes placed in the buffer */ static int format_length(uschar *buff, int length) { int i; int count = 0; int number = -1; uschar *name = NULL; /* Search for a whole number of a particular note type */ for (i = 0; i < sizeof(notelengths)/sizeof(int); i++) { if (length%notelengths[i] == 0) { number = length/notelengths[i]; name = notenames[i]; break; } } /* If integral, it's a simple print */ if (number >= 0) count = sprintf(CS buff, "%d %s%s", number, name, (number==1)?"":"s"); /* Otherwise, compute the fraction of a crotchet */ else { int d = len_crotchet; name = US"of a crotchet"; if (length > len_crotchet) { count += sprintf(CS buff, "%d ", length/len_crotchet); length = length%len_crotchet; name = US"crotchets"; } for (i = 0; i < sizeof(notefactor); i++) { int x = notefactor[i]; while (d%x == 0 && length%x == 0) { d /= x; length /= x; } } count += sprintf(CS buff+count, "%d/%d %s", length, d, name); } return count; } /************************************************* * Format a fixed-point number * *************************************************/ /* All dimensions are held in fixed point with 3 decimal places. Some other numbers are held this way too. This function is used for "%f" formats by format_vsprintf() below. The number is right-justified to the field width if the width is sufficiently large. Arguments: buff where to put the result n the fixed point number width the field width Returns: number of bytes placed in the buffer */ static int format_fixed(uschar *buff, int n, int width) { int spacecount; int count = 0; div_t qr; uschar tbuff[40]; if (n < 0) { tbuff[count++] = '-'; n = -n; } qr = div(n, 1000); count += sprintf(CS tbuff + count, "%d", qr.quot); if (qr.rem) { int r = qr.rem; uschar *z; if (r < 10) z = US".00"; else if (r < 100) z = US".0"; else z = US"."; if ((r%100) == 0) r /= 100; else if ((r%10) == 0) r /= 10; count += sprintf(CS tbuff + count, "%s%d", z, r); } spacecount = width - count; if (spacecount <= 0) spacecount = 0; else Ustrcpy(buff, " "); Ustrcpy(buff+spacecount, tbuff); return count + spacecount; } /************************************************* * Format a key signature * *************************************************/ /* This is used for "%k" format items. Arguments: buff buffer for the result key the key signature Returns: the number of bytes placed in the buffer */ static int format_key(uschar *buff, int key) { uschar *a = US""; uschar *m = US""; uschar *c = (key > 63)? US" cancel" : US""; key &= 63; if (key >= 21) { m = US"m"; key -= 21; } if (key >= 14) { a = US"$"; key -= 14; } else if (key >= 7) { a = US"#"; key -= 7; } return sprintf(CS buff, "%c%s%s%s", "ABCDEFG"[key], a, m, c); } /************************************************* * Format a time signature * *************************************************/ /* This is used for "%t" format items. Arguments: buff buffer for the result time the time signature Returns: the number of bytes placed in the buffer */ static int format_time(uschar *buff, int time) { int count = 0; int m = (time & 0xFF0000) >> 16; int n = (time & 0xFF00) >> 8; int d = time & 255; if (m != 1) count += sprintf(CS buff, "%d*", m); if (d == time_common) return count + sprintf(CS buff+count, "C"); if (d == time_cut) return count + sprintf(CS buff+count, "A"); return count + sprintf(CS buff+count, "%d/%d", n, d); } /************************************************* * Format a stave/page list * *************************************************/ /* This is used for "%L" format items. Arguments: buff buffer for the result p the list pointer Returns: the number of bytes placed in the buffer */ static int format_list(uschar *buff, stave_list *p) { int count = 0; uschar *c = US""; while (p != NULL) { if (p->first == p->last) count += sprintf(CS buff+count, "%s%d", c, p->first); else count += sprintf(CS buff+count, "%s%d-%d", c, p->first, p->last); c = US","; p = p->next; } return count; } /************************************************* * Format a bar number * *************************************************/ /* PMW keeps "true" bar numbers from 1 onwards. However, the existence of the [nocount] directive defines a different set of bar numbers as seen by the user. This procedure prints user bar numbers; for uncounted bars it prints ".". Before calling format_vsprintf with a "%b" item, the caller should set format_movt to point to the relevant movement block. Arguments: buff buffer for the result n the bar number Returns: the number of bytes placed in the buffer */ static int format_barnumber(uschar *buff, int n) { int a, b, p; if (format_movt->barnovector[n+1] <= format_movt->barnovector[n]) return sprintf(CS buff, "%d", n - format_movt->barnovector[n] + format_movt->baroffset); p = n - 1; while (p > 0 && format_movt->barnovector[p] < format_movt->barnovector[p+1]) p--; a = p - format_movt->barnovector[p] + format_movt->baroffset; b = n - p; if (a == 0) b--; if (b == 0) return sprintf(CS buff, "%d", a); else return sprintf(CS buff, "%d.%d", a, b); } /************************************************* * Format a movement phrase * *************************************************/ /* This is used for "%M" format items. If there is only one movement in existence, it returns a null string; otherwise it returns "in movement ". If we can't find the movement (a case that should never happen) return nothing, as that is less misleading! Argument: buffer for the result Returns: the number of bytes placed in the buffer */ static int format_movement(uschar *buff) { int movtnumber = 1; if (movement[2] == NULL) return 0; /* Only movement 1 exists */ while (format_movt != movement[movtnumber]) { if (movement[++movtnumber] == NULL) return 0; } return sprintf(CS buff, " in movement %d", movtnumber); } /************************************************* * Format an absolute pitch * *************************************************/ /* This is used for "%P" format items. It is used when printing out information about a stave. Zero means unset. As for barnumbers, format_movt must point to the relevant movement. This is simply to have a look at the key signature in order to decide whether to show "black" notes as sharps or flats. Arguments: buff buffer for result pitch the pitch Returns: the number of bytes placed in the buffer */ static int format_pitch(uschar *buff, int pitch) { int c; if (pitch) { int octave = (pitch/12); int note = pitch%12; uschar **letters = (main_keysigtable[format_movt->key] >= 0)? nlsharp : nlflat; c = sprintf(CS buff, "%s%s", letters[note], octavestring[octave]); while (c < 5) sprintf(CS buff+c++, " "); } else c = sprintf(CS buff, "unset"); return c; } /************************************************* * Format using a format string (ap arguments) * *************************************************/ /* This function is a private vsprintf() that recognizes a number of additional formatting codes (e.g. "%b" for a bar number). It is mainly used for error and informational output. Arguments: buff where to put the formatted string format the format string ap the va_list variable for any arguments Returns: the number of bytes placed in the buffer */ int format_vsprintf(uschar *buff, char *format, va_list ap) { uschar *p = buff; while (*format) { int width = 0; BOOL lz = FALSE; if (*format == '%') { if (isdigit(*(++format))) { lz = *format == '0'; do { width = width*10 + *format++ - '0'; } while (isdigit(*format)); } switch (*format) { case 'b': p += format_barnumber(p, va_arg(ap, int)); break; case 'B': p += sprintf(CS p, "%s", va_arg(ap, int)? "true" : "false"); break; case 'c': p += sprintf(CS p, "%c", va_arg(ap, int)); break; case 'd': p += sprintf(CS p, lz? "%0*d":"%*d", width, va_arg(ap, int)); width = 0; break; case 'f': p += format_fixed(p, va_arg(ap, int), width); break; case 'g': p += sprintf(CS p, lz? "%0*g":"%*g", width, va_arg(ap, double)); width = 0; break; case 'k': p += format_key(p, va_arg(ap, int)); break; case 'l': p += format_length(p, va_arg(ap, int)); break; case 'L': p += format_list(p, va_arg(ap, stave_list *)); break; case 'M': p += format_movement(p); break; case 'P': p += format_pitch(p, va_arg(ap, int)); break; case 'p': p += sprintf(CS p, "%p", va_arg(ap, uschar *)); break; case 's': p += sprintf(CS p, "%s", va_arg(ap, uschar *)); break; case 't': p += format_time(p, va_arg(ap, int)); break; case 'x': p += sprintf(CS p, lz? "%0*x":"%*x", width, va_arg(ap, int)); break; case 'X': p += sprintf(CS p, lz? "%0*X":"%*X", width, va_arg(ap, int)); break; default: *p++ = *format; break; } format++; } else *p++ = *format++; } *p = 0; return p - buff; } /************************************************* * Format using a format string (... arguments) * *************************************************/ /* This function is a private sprintf() that recognizes a number of additional formatting codes (e.g. "%b" for a bar number). It is mainly used for error and informational output. Arguments: buff where to put the formatted string format the format string ... any arguments for the format Returns: the number of bytes placed in the buffer */ int format_sprintf(uschar *buff, char *format, ...) { va_list ap; va_start(ap, format); return format_vsprintf(buff, format, ap); } /* End of format.c */ pmw-4.27/src/ps.c0000644000222100022210000014471212247665016011736 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2013 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: March 2013 */ /* This file contains code for outputting things in PostScript */ #include "pmwhdr.h" #include "outhdr.h" /************************************************ * Static variables * ************************************************/ static BOOL ps_EPS = FALSE; static BOOL ps_slurA = FALSE; static int ps_caj = 0; static int ps_chcount; static int ps_curfont; static int ps_curfontsize; static BOOL ps_curfontX; static int ps_gray; static int ps_sheetwidth; static int ps_xmargin; static int ps_ymax; static uschar *ps_IdStrings[font_tablen+1]; static int ps_curfonttransform[6]; /************************************************ * Macros * ************************************************/ /* Coordinate translation for character output */ #define psxtran(x) ((x) + ps_xmargin) #define psytran(y) (ps_ymax - (y)) /************************************************* * Write to PS file, wrapping * *************************************************/ /* To keep the PostScript readable we wrap it mostly at 72 characters wide. Arguments: format a format string ... arguments for the format Returns: nothing */ static void ps_printf(char *format, ...) { int len; uschar buff[256]; uschar *p = buff; va_list ap; va_start(ap, format); format_vsprintf(buff, format, ap); len = Ustrlen(buff); va_end(ap); if (ps_chcount > 0 && ps_chcount + len > 72) { fputc('\n', ps_file); ps_chcount = 0; } if (ps_chcount == 0 && *p == ' ') { p++; len--; } Ufputs(p, ps_file); if (p[len-1] == '\n') ps_chcount = 0; else ps_chcount += len; } /************************************************* * Check whether font needs changing * *************************************************/ /* The X argument is used when the character is > 255, indicating that we want the second version of the font, with the alternative encoding. Arguments: f font number s the font size X TRUE if it's the extended font we want Returns: TRUE if the font needs changing */ static BOOL ps_needchangefont(int f, int s, BOOL X) { int i; if (f != ps_curfont || X != ps_curfontX || s != ps_curfontsize) return TRUE; for (i = 0; i <= 5; i++) if (font_transform[i] != ps_curfonttransform[i]) return TRUE; return FALSE; } /************************************************* * Make a given font current * *************************************************/ /* This function is called when we know that a font change is needed. Arguments: f current font number s the font size X TRUE if it's the extended font we want Returns: nothing */ static void ps_setfont(int f, int s, BOOL X) { ps_curfont = f; ps_curfontX = X; ps_curfontsize = s; memcpy(ps_curfonttransform, font_transform, 6*sizeof(int)); /* Transformation is null: don't waste time/space by writing it */ if (font_transform[0] == 65536 && font_transform[1] == 0 && font_transform[2] == 0 && font_transform[3] == 65536 && font_transform[4] == 0 && font_transform[5] == 0) ps_printf(" %s%s %f ss%s", ps_IdStrings[f], X? "X" : "", s, main_righttoleft? "r" : ""); /* A genuine transform is set */ else ps_printf(" %s%s [%f %f %f %f %f %f] sm%s", ps_IdStrings[f], X? "X" : "", mac_muldiv(font_transform[0], s, 65536), mac_muldiv(font_transform[1], s, 65536), mac_muldiv(font_transform[2], s, 65536), mac_muldiv(font_transform[3], s, 65536), mac_muldiv(font_transform[4], s, 1000), mac_muldiv(font_transform[5], s, 1000), main_righttoleft? "r" : ""); } /************************************************* * End a text string * *************************************************/ /* This function writes the terminating ')' and an appropriate command. Arguments: absolute TRUE if the coordinates are absolute, else relative w extra space width x x-coordinate y y-coordinate */ static void ps_endstring(BOOL absolute, int w, int x, int y) { fputc(')', ps_file); /* Does not check ps_chcount */ ps_chcount++; if (absolute) { if (w != 0) ps_printf("%f %f %f ws", w, psxtran(x), psytran(y)); else ps_printf("%f %f s", psxtran(x), psytran(y)); } else if (x == 0 && y == 0) /* Relative, but no movement */ { if (w != 0) ps_printf("%f wsh", w); else ps_printf("sh"); } else { if (w != 0) ps_printf("%f %f %f wrs", w, x, y); else ps_printf("%f %f rs", x, y); } } /************************************************* * Basic string output code * *************************************************/ /* This function scans a string's characters and converts to the appropriate output encoding for the PostScript fonts. Arguments: s the string, in UTF-8 format f the font pointsize the font size absolute TRUE if the coordinates are absolute, else relative x the x coordinate y the y coordinate w extra width for spaces (for justifying) Returns: nothing */ static void ps_basic_string(uschar *s, int f, int pointsize, BOOL absolute, int x, int y, int w) { int font = font_table[f]; kerntablestr *ktable; fontstr *fs = &(font_List[font]); BOOL instring = FALSE; BOOL stdencoding = fs->stdencoding; uschar *p = s; uschar *endp = s + Ustrlen(s); ktable = fs->kerns; /* Check top/bottom of bbox for EPS. Allow 0.4*pointsize for descenders below and pointsize above. */ if (ps_EPS) { int descender = (4 * pointsize)/10; if (y + descender > out_bbox[1]) out_bbox[1] = y + descender; if (y - pointsize < out_bbox[3]) out_bbox[3] = y - pointsize; } /* When printing right-to-left, we need to find the complete length of the string so that we can print it from the other end, since the fonts still work left-to-right. We also need the length for EPS output, in order to set the bounding box. Finding the length requires a preliminary scan of the whole thing, somewhat repeating the printing scan below, but it was too messy to try to conflate the code. */ if (main_righttoleft || ps_EPS) { int swidth = 0; int last_width = 0; int last_r2ladjust = 0; for (;;) { int c; GETCHARINC(c, p); if (c == 0) break; if (c >= 256) { if (!stdencoding) { last_width = fs->widths[UNKNOWN_CHAR_N]; last_r2ladjust = fs->r2ladjusts[UNKNOWN_CHAR_N]; } else if (c < LOWCHARLIMIT) { last_width = fs->widths[c]; last_r2ladjust = fs->r2ladjusts[c]; } else { uschar utf[8]; tree_node *t; utf[misc_ord2utf8(c, utf)] = 0; t = Tree_Search(fs->high_tree, utf); if (t == NULL) { last_width = fs->widths[UNKNOWN_CHAR_S]; last_r2ladjust = fs->r2ladjusts[UNKNOWN_CHAR_S]; } else { last_width = t->val[1]; last_r2ladjust = t->val[2]; } } } else { int cj = c; /* Fudges for various special cases in the music font, where the adjustment bounding box is taken from another character. */ if (f == font_mf) { switch(c) { case 'J': /* Additional stem characters - adjust as for note */ case 'K': case 'o': case 'p': case 'q': case 'r': cj = '5'; break; case '7': /* Up quaver - adjust as for down quaver */ cj = '8'; break; case '9': /* Up semiquaver - adjust as for down semiquaver */ cj = ':'; break; default: break; } } last_width = fs->widths[c]; last_r2ladjust = fs->r2ladjusts[cj]; } /* Amass the total string width */ swidth += last_width; /* If there is another character, scan the kerning table */ if (main_kerning && fs->kerncount > 0 && *p != 0) { int bot = 0; int top = fs->kerncount; int cc; unsigned int pair; GETCHAR(cc, p); pair = (c << 16) | cc; while (bot < top) { kerntablestr *k; int mid = (bot + top)/2; k = &(ktable[mid]); if (pair == k->pair) { swidth += k->kwidth; break; } if (pair < k->pair) top = mid; else bot = mid + 1; } } } /* For right-to-left, adjust the printing position for the string by the length of the string, adjusted for the actual bounding box of the final character, and scaled to the font size. For EPS output, adjust the bounding box. Both may, of course, happen. */ if (main_righttoleft) x += mac_muldiv(swidth - last_width + last_r2ladjust, pointsize, 1000); if (ps_EPS) { swidth = mac_muldiv(swidth, pointsize, 1000); if (x + swidth > out_bbox[2]) out_bbox[2] = x + swidth; } } /* Scan the string and generate the output. */ p = s; for (;;) { int c, pc; BOOL extended = FALSE; GETCHARINC(c, p); if (c == 0) break; pc = c; /* The character value to print */ /* For standardly encoded fonts, code points >= 256 and < LOWCHARLIMIT are encoded in the second of the two PostScript fonts, using the Unicode encoding less 256. The remaining code points have to be converted to some of the remaining characters in the PostScript font, which are encoded arbitrarily, i.e. not using the Unicode encoding (some of their Unicode values are quite large). To find this encoding, we search for the character in the widths tree for the font, where the offset is also stored. */ if (c >= 256) { if (!stdencoding) { pc = UNKNOWN_CHAR_N; /* Known to be < 256 */ error_moan(78, c, UNKNOWN_CHAR_N); } else if (c < LOWCHARLIMIT) { pc = c - 256; extended = TRUE; } else { uschar utf[8]; tree_node *t; utf[misc_ord2utf8(c, utf)] = 0; t = Tree_Search(fs->high_tree, utf); if (t == NULL) { pc = UNKNOWN_CHAR_S; error_moan(79, c, UNKNOWN_CHAR_S); } else { pc = LOWCHARLIMIT + t->val[0] - 256; extended = TRUE; } } } /* Change between base and extended font if necessary */ if (ps_needchangefont(f, pointsize, extended)) { if (instring) { ps_endstring(absolute, w, x, y); x = y = 0; absolute = instring = FALSE; } ps_setfont(f, pointsize, extended); } /* Arrange to print the byte */ if (!instring) { if (ps_chcount > 0 && ps_chcount + endp - p > 72) { fputc('\n', ps_file); ps_chcount = 0; } fputc('(', ps_file); ps_chcount++; instring = TRUE; } if (pc == '(' || pc == ')' || pc == '\\') ps_chcount += fprintf(ps_file, "\\%c", pc); else if (pc >= 32 && pc <= 126) { fputc(c, ps_file); ps_chcount++; } else ps_chcount += fprintf(ps_file, "\\%03o", pc); /* If there is another character, scan the kerning table */ if (main_kerning && fs->kerncount > 0 && *p != 0) { int xadjust = 0, yadjust = 0; int bot = 0; int top = fs->kerncount; int cc; unsigned int pair; GETCHAR(cc, p); pair = (c << 16) | cc; while (bot < top) { kerntablestr *k; int mid = (bot + top)/2; k = &(ktable[mid]); if (pair == k->pair) { xadjust = k->kwidth; break; } if (pair < k->pair) top = mid; else bot = mid + 1; } /* If a kern was found, scale the adjustment to the font size, and for the string rotation and transformation, if any. Then close the previous substring and arrange that the next be output relative if this is the first. */ if (xadjust != 0) { xadjust = mac_muldiv(xadjust, pointsize, 1000); yadjust = mac_muldiv(xadjust, font_transform[1], 65536); xadjust = mac_muldiv(xadjust, font_transform[0], 65536); ps_endstring(absolute, w, x, y); absolute = FALSE; instring = FALSE; x = main_righttoleft? -xadjust : xadjust; y = yadjust; } } } if (instring) ps_endstring(absolute, w, x, y); } /************************************************* * Output a string with space stretching * *************************************************/ /* Arguments: s the string font the font pointsize the pointsize for the font x the absolute x coordinate y the absolute y coordinate w the extra space for each space Returns: nothing */ void ps_wtext(uschar *s, int font, int pointsize, int x, int y, int w) { ps_basic_string(s, font, pointsize, TRUE, x, y, w); } /************************************************* * Output string in music font * *************************************************/ /* There are two versions, one with absolute coordinates, and one with relative coordinates, to save having to pass a flag each time (most of the calls are with absolute coordinates). Arguments: s the string pointsize the pointsize for the font x the absolute x coordinate y the absolute y coordinate Returns: nothing */ void ps_musstring(uschar *s, int pointsize, int x, int y) { ps_basic_string(s, font_mf, pointsize, TRUE, x, y, 0); } void ps_relmusstring(uschar *s, int pointsize, int x, int y) { ps_basic_string(s, font_mf, pointsize, FALSE, x, y, 0); } /************************************************* * Output a text string and change origin * *************************************************/ /* The x and y coordinates are updated if requested - note that y goes downwards. Arguments: s the string font the font pointsize the pointsize for the font x pointer to the absolute x coordinate y pointer to the absolute y coordinate update if TRUE, update the x,y positions Returns: nothing */ void ps_string(uschar *s, int f, int pointsize, int *x, int *y, BOOL update) { BOOL skip = FALSE; int truepointsize = (f == font_mu)? (pointsize*9)/10 : pointsize; /* Output the string, unless it is a music font string consisting only of printing point moving characters. */ if (f == font_mu || f == font_mf) { uschar *ss = s; skip = TRUE; while (*ss) { int ch; GETCHARINC(ch, ss); if (ch < 118 || (ch > 126 && ch < 185) || ch > 188) { skip = FALSE; /* break; */ } } } if (!skip) ps_basic_string(s, f, truepointsize, TRUE, *x, *y, font_xstretch); /* Now arrange to return the new current point if required */ if (update) { *x += font_stringwidth(s, f, pointsize); *y -= font_stringheight; } } /************************************************* * Output a bar line * *************************************************/ /* Arguments: x the x coordinate ytop the top of the barline ybot the bottom of the barline type the type of barline Returns: nothing */ void ps_barline(int x, int ytop, int ybot, int type) { int magn = (curmovt->barlinesize > 0)? curmovt->barlinesize : main_stavemagn; /* Normally, solid barlines and dashed ones of a single stave's depth are done with characters from the music font, except when the barline size is greater than the stave magnification and it's just one stave deep. However, the bar_use_draw option forces all bar lines to be drawn. */ if (!bar_use_draw && (type != bar_dotted || ytop == ybot) && (magn <= main_stavemagn || ytop != ybot)) { if (main_righttoleft) x += mac_muldiv(font_List[font_mu].r2ladjusts[type], 10*magn, 1000); if (ps_needchangefont(font_mf, 10*magn, FALSE)) ps_setfont(font_mf, 10*magn, FALSE); if (magn != main_stavemagn) ytop += 16*(magn - main_stavemagn); if (ytop != ybot) ps_printf(" %f %f(%c)%f %f b", 16*magn, psytran(ybot), type, psxtran(x), psytran(ytop)); else ps_printf("(%c)%f %f s", type, psxtran(x), psytran(ytop)); } /* Long dashed lines have to be drawn, as do other lines if they are shorter than the character - this happens if barlinesize is greater than the stave magnification - or if bar_use_draw is set. */ else { int half_thickness = (type == bar_thick)? magn : (type == bar_dotted)? magn/5 : (magn*3)/20; int yadjust = main_stavemagn/5; x += half_thickness; if (type == bar_dotted) ps_printf(" %f %f %f %f %f [%f %f] dl", psxtran(x), psytran(ytop - 16*main_stavemagn - yadjust), psxtran(x), psytran(ybot - yadjust), 2*half_thickness, 7*half_thickness, 7*half_thickness); else { ps_printf(" %f %f %f %f %f l", psxtran(x), psytran(ytop - 16*main_stavemagn - yadjust), psxtran(x), psytran(ybot - yadjust), 2*half_thickness); if (type == bar_double) { int xx = x + 2*magn; ps_printf(" %f %f %f %f %f l", psxtran(xx), psytran(ytop - 16*main_stavemagn - yadjust), psxtran(xx), psytran(ybot - yadjust), 2*half_thickness); } } } } /************************************************* * Output a brace * *************************************************/ /* Arguments: x the x coordinate ytop the y coordinate of the top of the brace ybot the y coordinate of the bottom of the brace magn the magnification Returns: nothing */ void ps_brace(int x, int ytop, int ybot, int magn) { ps_printf(" %f %f %f br%s", ((ybot-ytop+16*magn)*23)/12000, psxtran(x)+1500, psytran((ytop-16*magn+ybot)/2), (curmovt->bracestyle)? "2":""); } /************************************************* * Output a bracket * *************************************************/ /* Arguments: x the x coordinate ytop the y coordinate of the top of the bracket ybot the y coordinate of the bottom of the bracket magn the magnification Returns: nothing */ void ps_bracket(int x, int ytop, int ybot, int magn) { ps_printf(" %f %f %f k", psxtran(x), psytran(ytop)+16*magn, psytran(ybot)); } /************************************************* * Output a stave's lines * *************************************************/ /* The stavelines parameter will always be > 0. There is now an option to draw the stave lines rather than using characters for them (the default). This helps with screen displays that are using anti-aliasing. It has been reported that some PostScript interpreters can't handle the 100-point wide characters, so there is an option to use only the 10-point characters. Assume staves are always at least one character long. Arguments: leftx the x-coordinate of the stave start y the y-coordinate of the stave start rightx the x-coordinate of the stave end stavelines the number of stave lines Returns: nothing */ void ps_stave(int leftx, int y, int rightx, int stavelines) { uschar sbuff[8]; uschar buff[256]; int ch, i; int chwidth = 0; int x = leftx; /* Output the stave using PostScript drawing primitives. */ if (stave_use_draw) { int gap; int thickness = (3*main_stavemagn)/10; if (ps_chcount > 0) ps_printf("\n"); switch(stavelines) { case 1: y -= 4*main_stavemagn; case 2: y -= 4*main_stavemagn; case 3: gap = 8*main_stavemagn; break; default: gap = 4*main_stavemagn; break; } ps_printf("%f %f %f %f %f %d ST\n", psxtran(x), psytran(y), rightx - leftx, thickness, gap, stavelines); ps_chcount = 0; return; } /* Output the stave using music font characters */ if (stave_use_widechars) { ch = out_stavechar10[stavelines]; i = 100; } else { ch = out_stavechar1[stavelines]; i = 10; } /* Select appropriate size of music font */ if (ps_needchangefont(font_mf, 10*main_stavemagn, FALSE)) ps_setfont(font_mf, 10*main_stavemagn, FALSE); /* Build character string of (optionally) 100-point & 10-point chars; some of them are non-printing and have to be octal-escaped. */ Ustrcpy(buff, "("); for (; i >= 10; i /= 10) { if (ch < 127) { sbuff[0] = ch; sbuff[1] = 0; } else sprintf(CS sbuff, "\\%03o", ch); chwidth = i*main_stavemagn; while (rightx - x >= chwidth) { Ustrcat(buff, sbuff); x += chwidth; } ch = out_stavechar1[stavelines]; } /* Now print it, forcing it onto a separate line (for human legibility). We use BIGNUMBER/2 because the routine adds the length to ps_chcount to check for overflow. */ Ustrcat(buff, ")"); if (ps_chcount) ps_chcount = BIGNUMBER/2; ps_printf("%s%f %f s", buff, psxtran(main_righttoleft? x:leftx), psytran(y)); /* If there's a fraction of 10 points left, deal with it */ if (x < rightx) ps_printf(" (%s)%f %f s", sbuff, psxtran(main_righttoleft? rightx : (rightx - chwidth)), psytran(y)); ps_printf("\n"); ps_chcount = 0; } /************************************************* * Output one musical character * *************************************************/ /* Certain musical characters are given identity numbers in a virtual music font that may or may not correspond directly to characters in the actual music font. The table called out_mftable_ps[] defines how they are to be printed. Arguments: x the x coordinate y the y coordinate ch the character's identity number pointsize the point size Returns: nothing */ void ps_muschar(int x, int y, int ch, int pointsize) { uschar s[10]; mfstr *p; int xfudge = 0; /* There may be a chain of strings/displacements */ for (p = out_mftable_ps[ch]; p != NULL; p = p->next) { unsigned int c = p->ch; int i = 0; int nxfudge = 0; /* Nasty fudge for bracketed accidentals in right-to-left mode: when the brackets come as individual values, swap them round and fudge the spacing of the remaining chars. This is needed for flats, in practice. */ if (main_righttoleft) switch (c) { case 139: c = 140; nxfudge = -1600; break; case 140: c = 139; break; case 141: c = 142; nxfudge = -1600; break; case 142: c = 141; break; default: break; } /* Extract up to 4 music font characters from c */ while (c) { i += misc_ord2utf8(c & 255, s + i); c >>= 8; } s[i] = 0; ps_basic_string(s, font_mf, pointsize, TRUE, x + mac_muldiv(p->x, pointsize, 10000) + xfudge, y - mac_muldiv(p->y, pointsize, 10000), 0); xfudge += nxfudge; } } /************************************************* * Output a beam line * *************************************************/ /* This function is called several times for a multi-line beam, with the level number increasing each time. Information about the slope and other features is in beam_* variables. Arguments: x0 starting x coordinate, relative to start of bar x1 ending x coordinate, relative to start of bar level level number levelchange set nonzero for accellerando and ritardando beams Returns: nothing */ void ps_beam(int x0, int x1, int level, int levelchange) { int y0, y1; int sign = (beam_upflag)? (+1) : (-1); int depth = -main_stavemagn*((n_fontsize * sign * (int)(((double)curmovt->beamdepth) / cos(atan((double)beam_slope/1000.0))))/10000)/1000; y1 = y0 = out_ystave - beam_firstY + mac_muldiv(n_fontsize, (level - 1) * sign * 3 * main_stavemagn, 10000); y0 -= mac_muldiv(x0-beam_firstX, beam_slope, 1000); y1 -= mac_muldiv(x1-beam_firstX, beam_slope, 1000); /* For accellerando and ritardando beams, adjust the ends, and make a little bit thinner. */ if (levelchange != 0) { int adjust = mac_muldiv(n_fontsize, abs(levelchange) * sign * 4 * main_stavemagn, 10000); depth = (depth*17)/20; if (levelchange < 0) { y0 += adjust; y1 += adjust/8; } else { y0 += adjust/8; y1 += adjust; } } /* Get absolute x values and write the PostScript */ x0 += out_barx; x1 += out_barx; /* When printing right-to-left, adjust by one note's printing adjustment. The value can't just be read from the font, as it needs fiddling, so we just fudge a fixed value. */ if (main_righttoleft) { int adjust = sign * mac_muldiv(n_fontsize/2, main_stavemagn, 1000); x0 -= adjust; x1 -= adjust; } ps_printf(" %f %f %f %f %f m", depth, psxtran(x1), psytran(y1), psxtran(x0), psytran(y0)); } /************************************************* * Output a slur * *************************************************/ /* This was the original way of drawing slurs. Additional complication in slurs has resulted in a function called out_slur() that uses more primitive output functions, and which could in principle be used for all slurs. However, we retain ps_slur for complete, non-dashed, curved slurs for compatibility and to keep the size of the PostScript down. Arguments: x0 start x coordinate y0 start y coordinate x1 end x coordinate y1 end y coordinate flags slur flags co "centre out" adjustment Returns: nothing */ void ps_slur(int x0, int y0, int x1, int y1, int flags, int co) { int length = x1 - x0; y0 = out_ystave - y0; y1 = out_ystave - y1; x0 += 3*main_stavemagn; x1 += 3*main_stavemagn; co = ((co + ((length > 20000)? 6000 : (length*6)/20)) * main_stavemagn)/1000; if ((out_slurclx | out_slurcly | out_slurcrx | out_slurcry) != 0) { ps_printf(" %f %f %f %f cA", out_slurclx, out_slurcly, out_slurcrx, out_slurcry); ps_slurA = TRUE; } else if (ps_slurA) { ps_printf(" 0 0 0 0 cA"); /* default extra control movements */ ps_slurA = FALSE; } /* Keeping these as two separate calls enables the output to be split; changing would require test output to be reset. */ ps_printf(" %f %f %f %f", psxtran(x0), psytran(y0), psxtran(x1), psytran(y1)); ps_printf(" %f cv%s%s", ((flags & sflag_b) != 0)? (-co) : co, ((flags & sflag_w) == 0)? "" : "w", ((flags & sflag_e) == 0)? "" : "e"); } /************************************************* * Output a straight line * *************************************************/ /* Arguments: x0 start x coordinate y0 start y coordinate x1 end x coordinate y1 end y coordinate thickness line thickness flags for various kinds of line Returns: nothing */ void ps_line(int x0, int y0, int x1, int y1, int thickness, int flags) { uschar *reset = US""; double xx = (double)((int)(x1 - x0)); double yy = (double)((int)(y1 - y0)); int len = (int)(sqrt(xx*xx + yy*yy)); int dashlength = 0; int gaplength = 0; int dashcount, spacecount; /* Handle "editorial" lines: won't exist if dashed or dotted */ if ((flags & tief_editorial) != 0) { ps_printf(" GS %f %f T %f R 0 2.0 Mt 0 -2.0 Lt S GR", psxtran((x0+x1)/2), psytran(out_ystave - (y0+y1)/2), (int)(atan2(yy, xx)*180000.0/3.14159)); } /* Compute new dash parameters if required */ if ((flags & tief_dashed) != 0) { dashlength = 3*main_stavemagn; dashcount = (len/dashlength) | 1; spacecount = dashcount/2; if (dashcount != 1) { gaplength = (len - ((dashcount+1)*dashlength)/2)/spacecount; ps_printf("[%f %f] 0 Sd", dashlength, gaplength); reset = US"[] 0 Sd"; } } else if ((flags & tief_dotted) != 0) { dashlength = 100; dashcount = (len + 4*main_stavemagn)/(4*main_stavemagn + dashlength); if (dashcount > 1) { gaplength = (len - dashcount * dashlength)/(dashcount - 1); ps_printf(" 1 Slc[%f %f] 0 Sd", dashlength, gaplength); thickness = main_stavemagn; reset = US" 0 Slc[] 0 Sd"; } } /* If just set dash parameters, take note of the save flag. */ if (gaplength > 0) { if ((flags & tief_savedash) != 0) { reset = US""; out_dashlength = dashlength; out_dashgaplength = gaplength; } else out_dashlength = out_dashgaplength = 0; } /* Do the line */ ps_printf(" %f %f %f %f %f l%s", psxtran(x1), psytran(out_ystave - y1), psxtran(x0), psytran(out_ystave - y0), thickness, reset); } /************************************************* * Output a series of lines * *************************************************/ /* This is only used for sequences of plain lines (no dashes, etc.) Arguments: x vector of x coordinates y vector of y coordinates count number of vector elements thickness line thickness Returns: nothing */ void ps_lines(int *x, int *y, int count, int thickness) { int i; for (i = count - 1; i > 0; i--) ps_printf(" %f %f", psxtran(x[i]), psytran(out_ystave - y[i])); ps_printf(" %d %f %f %f ll", count - 1, psxtran(x[0]), psytran(out_ystave - y[0]), thickness); } /************************************************* * Output and stroke or fill a path * *************************************************/ /* The path can contain moves, lines, and curves. We generate in-line PostScript for this one, using the saved grey level. Arguments: x vector of x coordinates y vector of y coordinates c vector of move/line/curve operators thickness thickness of the lines for stroke; negative for fill Returns: nothing */ void ps_path(int *x, int *y, int *c, int thickness) { while (*c) switch(*c++) { case path_move: ps_printf(" %f %f Mt", psxtran(*x++), psytran(out_ystave - *y++)); break; case path_line: ps_printf(" %f %f Lt", psxtran(*x++), psytran(out_ystave - *y++)); break; case path_curve: ps_printf(" %f %f %f %f %f %f Ct", psxtran(x[0]), psytran(out_ystave - y[0]), psxtran(x[1]), psytran(out_ystave - y[1]), psxtran(x[2]), psytran(out_ystave - y[2])); x += 3; y += 3; break; } if (ps_gray != 0) ps_printf(" %f Sg", ps_gray); if (thickness >= 0) ps_printf(" %f Slw S", thickness); else ps_printf(" F"); if (ps_gray != 0) ps_printf(" 0 Sg"); } /************************************************* * Output and stroke or fill an absolute path * *************************************************/ /* This function (similar to the one above) is used for fancy slurs, when the coordinate system has been rotated and translated so that its origin is at the centre of the slur with the x axis joining the endpoints. The coordinates must therefore not use psxtran/psytran. Arguments: x vector of x coordinates y vector of y coordinates c vector of move/line/curve operators thickness thickness of the lines for stroke; negative for fill only Returns: nothing */ void ps_abspath(int *x, int *y, int *c, int thickness) { while (*c) switch(*c++) { case path_move: ps_printf(" %f %f Mt", *x++, *y++); break; case path_line: ps_printf(" %f %f Lt", *x++, *y++); break; case path_curve: ps_printf(" %f %f %f %f %f %f Ct", x[0], y[0], x[1], y[1], x[2], y[2]); x += 3; y += 3; break; } if (ps_gray != 0) ps_printf(" %f Sg", ps_gray); if (thickness >= 0) ps_printf(" %f Slw S", thickness); else ps_printf(" F"); if (ps_gray != 0) ps_printf(" 0 Sg"); } /************************************************* * Output a PostScript string * *************************************************/ /* This function is called to output a user-supplied PostScript string. Arguments: s the string x the x coordinate y the y coordinate Returns: nothing */ void ps_pstext(uschar *s, int x, int y) { ps_printf(" GS %f %f T\n%%User PostScript\n%s", psxtran(x), psytran(y), s); fprintf(ps_file, "\n%%End user PostScript\nGR\n"); ps_chcount = 0; } /************************************************* * Set gray level * *************************************************/ /* All that happens here is that the gray level is remembered for later use. Argument: the gray level Returns: nothing */ void ps_setgray(int gray) { ps_gray = gray; } /************************************************* * Set dash and capandjoin * *************************************************/ /* The set values are remembered so that repetition is avoided. Arguments: dashlength the dash length gaplength the gap length caj the cap-and-join value Returns: nothing */ void ps_setdash(int dashlength, int gaplength, int caj) { if (dashlength != out_dashlength || gaplength != out_dashgaplength) { if (dashlength == 0 && gaplength == 0) ps_printf("[] 0 Sd"); else ps_printf("[%f %f] 0 Sd", dashlength, gaplength); out_dashlength = dashlength; out_dashgaplength = gaplength; } if (caj != ps_caj) { if ((caj & caj_round) == caj_round) ps_printf(" 1 Slc"); else if ((caj & caj_square) == caj_square) ps_printf(" 2 Slc"); else ps_printf(" 0 Slc"); if ((caj & caj_round_join) == caj_round_join) ps_printf(" 1 Slj"); else if ((caj & caj_bevel_join) == caj_bevel_join) ps_printf(" 2 Slj"); else ps_printf(" 0 Slj"); ps_caj = caj; } } /************************************************* * Gsave and Grestore * *************************************************/ /* These functions are called from setslur.c when the coordinate system is translated and rotated for the drawing of a fancy slur. They translate directly into PostScript shorthand for gsave and grestore. Arguments: none Returns: nothing */ void ps_gsave(void) { ps_printf(" GS"); } void ps_grestore(void) { ps_printf(" GR"); } /************************************************* * Rotate * *************************************************/ /* This function rotates the coordinate system. Argument: the amount to rotate, in radians Returns: nothing */ void ps_rotate(double r) { if (r != 0.0) ps_printf(" %f R", (int)((r/(4.0 * atan(1.0)))*180000.0)); } /************************************************* * Translate * *************************************************/ /* This function translates the coordinate system. Arguments: x x coordinate of the new origin y y coordinate of the new origin Returns: nothing */ void ps_translate(int x, int y) { ps_printf(" %f %f T", psxtran(x), psytran(out_ystave - y)); } /************************************************* * Handle new movement * *************************************************/ /* The only thing this function does is to compute the value of the lefthand margin, which may change between movements. There is a fudge to the computation for the default value, in order to keep it the same as it was before the sheetwidth sizes were adjusted to be precisely the paper size, at least for A4 paper. Arguments: none Returns: nothing */ void ps_newmovt(void) { if (curmovt->leftmargin < 0) /* Default (not set by user) */ { ps_xmargin = (ps_sheetwidth - curmovt->linelength)/2 + 13000000/(2*main_magnification); if (ps_xmargin < 20000) ps_xmargin = 20000; } else ps_xmargin = curmovt->leftmargin; } /************************************************* * Start a given bar for a given stave * *************************************************/ /* Force a new line and output an identifying comment. Arguments: barnumber the bar number stave the stave */ void ps_startbar(int barnumber, int stave) { if (ps_chcount != 0) ps_chcount = BIGNUMBER/2; ps_printf("%%%b/%d\n", barnumber, stave); ps_chcount = 0; } /************************************************* * Include a file in the PostScript output * *************************************************/ /* This function is called for the main header file, and also for user-supplied head/foot or setup files. Certain lines in the header are included only for EPS files. They are flagged in the header file with %EPS. Otherwise, if a line starts with %, it is copied only if it starts with %%. Blank lines are omitted. Arguments: s the file name relativize if TRUE, relativize non-absolute path to the current input file Returns: nothing */ static void ps_include(uschar *s, BOOL relativize) { FILE *f; uschar name[256]; Ustrcpy(name, s); if (relativize) sys_relativize(name); f = Ufopen(name, "r"); if (f != NULL) { uschar buff[256]; while (Ufgets(buff, 256, f) != NULL) { if (ps_EPS && Ustrncmp(buff, "%EPS ", 5) == 0) Ufputs(buff+5, ps_file); else if (buff[0] != '\n' && (buff[0] != '%' || buff[1] == '%')) Ufputs(buff, ps_file); } if (buff[Ustrlen(buff)-1] != '\n') fputc('\n', ps_file); fclose(f); ps_chcount = 0; } else error_moan(4, name, strerror(errno)); } /************************************************* * Output PostScript head/foot * *************************************************/ /* Output literal PostScript for a heading/footing. If the first character is '<', the remainder is the name of a file. Otherwise, it is literal PostScript. Argument: pointer to a headstr Returns: nothing */ void ps_headfoot(headstr *p) { fprintf(ps_file, "\n%%User PostScript\n"); if (p->a.text[0] == '<') ps_include(p->a.text + 1, TRUE); else fprintf(ps_file, "%s\n", p->a.text); fprintf(ps_file, "%%End user PostScript\n"); ps_chcount = 0; } /************************************************* * Include a Music font in the output * *************************************************/ /* This function is called if either PMW-Music or PMW-Alpha is to be included in the output. Argument: the name of the font Returns: nothing */ static void include_font(char *name) { FILE *f = NULL; uschar buff[256]; /* First look in any additional directory */ if (ps_fontdir_extra != NULL) { sprintf(CS buff, "%s/%s", ps_fontdir_extra, name); f = Ufopen(buff, "r"); } /* Try the default directory if not yet found. */ if (f == NULL) { sprintf(CS buff, "%s/%s", ps_fontdir_default, name); f = Ufopen(buff, "r"); if (f == NULL) /* These are hard errors */ { if (ps_fontdir_extra == NULL) error_moan(7, buff, strerror(errno)); else error_moan(130, name, ps_fontdir_extra, ps_fontdir_default); } } while (Ufgets(buff, sizeof(buff), f) != NULL) { if (Ustrncmp(buff, "%%BeginResource:", 16) == 0) { fprintf(ps_file, "%s", CS buff); break; } } while (Ufgets(buff, sizeof(buff), f) != NULL) { fprintf(ps_file, "%s", CS buff); if (Ustrncmp(buff, "%%EndResource", 13) == 0) break; } } /************************************************* * Produce PostScript output * *************************************************/ /* This is the controlling function for generating PostScript output. If the print_imposition has the special value pc_EPS, we are producing EPS PostScript, and a number of page-related parameters are then ignored. Arguments: none Returns: nothing */ void ps_go(void) { BOOL used_pmw_music = FALSE; BOOL used_pmw_alpha = FALSE; time_t timer; int i, w = 0, d = 0; int count = 0; int fcount = 1; int scaled_main_sheetwidth = mac_muldiv(main_sheetwidth, print_magnification, 1000); /* Initialize the current page number and page list data */ ps_EPS = (print_imposition == pc_EPS); print_setup_pagelist(ps_EPS? FALSE : print_reverse); /* Set the top of page y coordinate; the PostScript is relative to the usual bottom of page origin. Before the invention of the imposition parameter, we computed this from the pagelength, but with some minima imposed. For compatibility, keep this unchanged for cases when imposition is defaulted. For EPS, we use the sheetsize, whatever it may be. */ if (ps_EPS) ps_ymax = main_truepagelength + 50000; else { if (opt_landscape) { if (main_truepagelength < 492000) ps_ymax = mac_muldiv(526000, 1000, print_magnification); else ps_ymax = main_truepagelength + 34000; } else { if (main_truepagelength < 720000) ps_ymax = mac_muldiv(770000, 1000, print_magnification); else ps_ymax = main_truepagelength + 50000; } /* Take the opportunity of setting true paper sizes for imposing */ switch(print_imposition) { case pc_a5ona4: w = 595000; d = 842000; ps_ymax = main_truepagelength + 50000; break; case pc_a4ona3: w = 842000; d = 1190000; ps_ymax = main_truepagelength + 50000; break; } } /* Adjust paper size to the magnification */ ps_sheetwidth = mac_muldiv(main_sheetwidth, 1000, main_magnification); ps_ymax = mac_muldiv(ps_ymax, 1000, main_magnification); /* Initializing stuff at the start of the PostScript file. We are attempting to keep to the 3.0 structuring conventions. Initial comments ("header") come first. */ time (&timer); fprintf(ps_file, "%%!PS-Adobe-3.0%s\n", ps_EPS? " EPSF-3.0" : ""); fprintf(ps_file, "%%%%Creator: Philip's Music Writer %s\n", version_string); fprintf(ps_file, "%%%%CreationDate: %s", ctime(&timer)); if (ps_EPS) fprintf(ps_file, "%%%%BoundingBox: (atend)\n"); else fprintf(ps_file, "%%%%Pages: (atend)\n"); fprintf(ps_file, "%%%%DocumentNeededResources: font "); for (i = 0; i < font_tablen; i++) { int j; for (j = 0; j < i; j++) if (font_table[i] == font_table[j]) break; if (j == i) { if (++fcount > 3) { fprintf(ps_file, "\n%%%%+ font "); fcount = 1; } fprintf(ps_file, "%s ", font_List[font_table[i]].psname); /* Remember which music fonts have been used */ if (Ustrcmp(font_List[font_table[i]].psname, "PMW-Music") == 0) used_pmw_music = TRUE; if (Ustrcmp(font_List[font_table[i]].psname, "PMW-Alpha") == 0) used_pmw_alpha = TRUE; } ps_IdStrings[i] = font_IdStrings[j]; } fprintf(ps_file, "\n"); if (output_includefont && (used_pmw_music || used_pmw_alpha)) { fprintf(ps_file, "%%%%DocumentSuppliedResources: font%s%s\n", used_pmw_music? " PMW-Music":"", used_pmw_alpha? " PMW-Alpha":""); } if (!ps_EPS) fprintf(ps_file, "%%%%Requirements: numcopies(%d)\n", output_copies); fprintf(ps_file, "%%%%EndComments\n\n"); /* Deal with a known paper size */ switch (opt_sheetsize) { case sheet_A3: fprintf(ps_file, "%%%%BeginPaperSize: a3\na3\n%%%%EndPaperSize\n\n"); break; case sheet_A4: fprintf(ps_file, "%%%%BeginPaperSize: a4\na4\n%%%%EndPaperSize\n\n"); break; case sheet_A5: fprintf(ps_file, "%%%%BeginPaperSize: a5\na5\n%%%%EndPaperSize\n\n"); break; case sheet_B5: fprintf(ps_file, "%%%%BeginPaperSize: b5\nb5\n%%%%EndPaperSize\n\n"); break; case sheet_letter: fprintf(ps_file, "%%%%BeginPaperSize: letter\nletter\n%%%%EndPaperSize\n\n"); break; default: break; } /* Next, the file's prologue */ fprintf(ps_file, "%%%%BeginProlog\n"); /* If there is a header file, copy it now. Its name is NOT relative to the main input file. (If it is not absolute, it is taken relative to the current directory.) */ if (ps_header != NULL) ps_include(ps_header, FALSE); /* Deal with any requested PostScript setup */ if (main_pssetup != NULL) { headstr *h = main_pssetup; fprintf(ps_file, "\n%% Included pssetup strings and/or files\n"); while (h != NULL) { if (h->a.text[0] == '<') ps_include(h->a.text + 1, TRUE); else fprintf(ps_file, "%s\n", h->a.text); h = h->next; } fprintf(ps_file, "\n"); } fprintf(ps_file, "%%%%EndProlog\n\n"); /* The setup section sets up the printing device. We include the font finding in here, as it seems the right place. If output_includefont is set, include the music font(s) in the output file. */ fprintf(ps_file, "%%%%BeginSetup\n"); if (output_includefont) { if (used_pmw_music) include_font("/PMW-Music.pfa"); if (used_pmw_alpha) include_font("/PMW-Alpha"); } /* Now list the other fonts */ for (i = 0; i < font_tablen; i++) { int j; for (j = 0; j < i; j++) if (font_table[i] == font_table[j]) break; if (j == i) { fontstr *f = font_List + font_table[i]; uschar *s = f->psname; fprintf(ps_file, "%%%%IncludeResource: font %s\n", s); fprintf(ps_file, "/%s /%sX /%s inf\n", font_IdStrings[i], font_IdStrings[i], s); } } /* Unless EPS, we used to select A4 paper, but only once (to allow concatenated files). However, this seems to give trouble with Ghostview for doing magnify windows, and it doesn't seem to affect modern PostScript printers anyway. So it is no longer done. Select the number of copies if not 1, set manual feed if the flag is set, deal with duplex and tumble options, and end the setup section. */ if (!ps_EPS) { /********* fprintf(ps_file, "currentdict /a4_done known not {a4 /a4_done true def} if\n"); **********/ if (output_copies != 1) fprintf(ps_file, "/#copies %d def\n", output_copies); if (output_manualfeed || output_duplex) { fprintf(ps_file, "statusdict begin"); if (output_manualfeed) fprintf(ps_file, " /manualfeed true def"); if (output_duplex) { fprintf(ps_file, " true setduplexmode"); if (output_tumble) fprintf(ps_file, " true settumble"); } fprintf(ps_file, " end\n"); } } fprintf(ps_file, "%%%%EndSetup\n\n"); /* Now the requested pages. The print_nextpage function returns one or two pages. When printing 2-up either one of them may be null. */ for (;;) { int scaled = 1000; BOOL recto = FALSE; sysblock *s; pagestr *ps_1stpage, *ps_2ndpage; if (!print_nextpage(&ps_1stpage, &ps_2ndpage)) break; if (ps_1stpage != NULL && ps_2ndpage != NULL) fprintf(ps_file, "%%%%Page: %d&%d %d\n", ps_1stpage->number, ps_2ndpage->number, ++count); else if (ps_1stpage != NULL) { fprintf(ps_file, "%%%%Page: %d %d\n", ps_1stpage->number, ++count); recto = (ps_1stpage->number & 1) != 0; } else { fprintf(ps_file, "%%%%Page: %d %d\n", ps_2ndpage->number, ++count); recto = (ps_2ndpage->number & 1) != 0; } fprintf(ps_file, "%%%%BeginPageSetup\n/pagesave save def\n"); ps_curfont = -1; ps_curfontX = FALSE; ps_chcount = 0; ps_caj = 0; if (ps_EPS) { if (main_righttoleft) ps_printf("%f 0 T -1 1 scale\n", main_sheetwidth); if (main_magnification != 1000) ps_printf("%f dup scale\n", main_magnification); } else { if (main_righttoleft) { pagestr *temp = ps_1stpage; ps_1stpage = ps_2ndpage; ps_2ndpage = temp; } /* Move the origin to the desired position. The values 1 (upright, 1-up, portrait), 2 (sideways, 2-up, portrait), and 4 (sideways, 1-up, landscape) use bottom left, i.e. no translation, but we have to generate an adjustment for type 2 if sheetwidth isn't half the paper size. The gutter facility is available only when printing 1-up. */ switch (print_pageorigin) { case 0: /* A4 Sideways, 1-up, portrait */ ps_printf("0 %f T -90 R\n", 595000); if (print_gutter != 0) ps_printf("%f 0 T\n", recto? print_gutter : -print_gutter); break; case 1: /* Upright, 1-up, portrait */ if (print_gutter != 0) ps_printf("%f 0 T\n", recto? print_gutter : -print_gutter); break; case 2: /* Sideways, 2-up, portrait */ if (d/2 != scaled_main_sheetwidth) ps_printf("%f 0 T\n", (d/2 - scaled_main_sheetwidth)/(print_pamphlet? 1:2)); break; case 3: /* Upright, 2-up, portrait */ ps_printf("0 %f T -90 R\n", d - (d/2 - scaled_main_sheetwidth)/(print_pamphlet? 1:2)); break; case 4: /* A4 Sideways, 1-up, landscape */ if (print_gutter != 0) ps_printf("%f 0 T\n", recto? print_gutter : -print_gutter); break; case 5: /* Upright, 1-up, landscape; page size defined by sheetsize */ /* Sheetwidth is original sheet height */ ps_printf("0 %f T -90 R\n", scaled_main_sheetwidth); break; case 6: /* A4 Sideways, 2-up, landscape */ ps_printf("%f %f T -90 R\n", d/2, w); break; case 7: /* Upright, 2-up, landscape */ ps_printf("0 %f T\n", d/2); break; } if (print_image_xadjust != 0 || print_image_yadjust != 0) ps_printf("%f %f T\n", print_image_xadjust, print_image_yadjust); if (main_righttoleft) ps_printf("%f 0 T -1 1 scale\n", scaled_main_sheetwidth); if (main_magnification != 1000 || print_magnification != 1000) { scaled = mac_muldiv(main_magnification, print_magnification, 1000); ps_printf("%f dup scale\n", scaled); } } /* End of setup */ fprintf(ps_file, "%%%%EndPageSetup\n"); s = curpage->sysblocks; if (s != NULL) curmovt = s->movt; ps_newmovt(); /* When printing 2-up, we may get one or both pages; when not printing 2-up, we may get either page given, but not both. */ if (ps_1stpage != NULL) { curpage = ps_1stpage; out_page(); } if (ps_2ndpage != NULL) { if (ps_chcount > 0) fprintf(ps_file, "\n"); if (print_imposition == pc_a5ona4 || print_imposition == pc_a4ona3) { int sign = main_righttoleft? -1 : +1; int dd = mac_muldiv(d, 500, scaled); if (opt_landscape) ps_printf("0 %f T\n", -dd); else ps_printf("%f 0 T\n", sign * (print_pamphlet? mac_muldiv(main_sheetwidth, 1000, main_magnification) : dd)); } curpage = ps_2ndpage; out_page(); } /* EPS files are permitted to contain showpage, and this is actually useful because it means an EPS file can be printed or displayed. So we don't cut out showpage. */ fprintf(ps_file, "\npagesave restore showpage\n\n"); } /* Do PostScript trailer */ fprintf(ps_file, "%%%%Trailer\n"); if (ps_EPS) { if (main_righttoleft) ps_printf("%%%%BoundingBox: %f %f %f %f\n", main_sheetwidth - mac_muldiv(psxtran(out_bbox[2]), main_magnification, 1000), mac_muldiv(psytran(out_bbox[1]), main_magnification, 1000), main_sheetwidth - mac_muldiv(psxtran(out_bbox[0]), main_magnification, 1000), mac_muldiv(psytran(out_bbox[3]), main_magnification, 1000)); else ps_printf("%%%%BoundingBox: %f %f %f %f\n", mac_muldiv(psxtran(out_bbox[0]), main_magnification, 1000), mac_muldiv(psytran(out_bbox[1]), main_magnification, 1000), mac_muldiv(psxtran(out_bbox[2]), main_magnification, 1000), mac_muldiv(psytran(out_bbox[3]), main_magnification, 1000)); } else fprintf(ps_file, "%%%%Pages: %d\n", count); } /* End of ps.c */ pmw-4.27/src/read1.c0000644000222100022210000010425412247665016012305 0ustar ph10ph10#/************************************************* * The PMW Music Typesetter - 2nd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2010 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: December 2010 */ /* This file contains part I of the code for reading in a PMW score file. */ #include "pmwhdr.h" #include "readhdr.h" #include "pagehdr.h" #include "outhdr.h" /************************************************* * Local static variables * *************************************************/ static int read_count; static int read_staves[stave_bitvec_size]; /* Map of staves actually read */ static int read_prevstave; /* Previous stave number */ static BOOL read_in_quotes; static BOOL read_stavestart; /* True if expecting staff start */ /* A dummy page structure specially for the string escape mechanism which is called to check strings and may need to handle a page number. */ static pagestr dummy_page = { NULL, NULL, NULL, 1, 0, 0, 0 }; /************************************************* * Expand string with macros substitutions * *************************************************/ /* This is called for input lines, and also for the arguments of nested macro calls. It copies the input string, expanding any macros encountered. If a comment character is encountered, the rest of the line is copied, for error messages, but the returned end value does not include the comment. Arguments: inptr point to the start of the string inend point one past the end of the string outbuffer where to put the expanded line outlen length of the output buffer addNL if TRUE, add a newline character on the end Returns: pointer one past the end of the active part of the expanded string in outbuffer */ static uschar * expand_string(uschar *inptr, uschar *inend, uschar *outbuffer, int outlen, BOOL addNL) { uschar *temp = outbuffer; uschar *comment = NULL; while (inptr < inend) { int ch = *inptr++; /* Keep track of quotes; can't have comments in quotes */ if (ch == '\"') { read_in_quotes = !read_in_quotes; *temp++ = ch; } /* After a comment character, just copy over the rest of the input (for error messages) noting where the comment started. */ else if (!read_in_quotes && ch == '@') { comment = temp; *temp++ = ch; while (inptr < inend) *temp++ = *inptr++; break; } /* Deal with defined insertions, possibly with arguments */ else if (ch == '&') { if (*inptr == '&') *temp++ = *inptr++; else { int i = 0; uschar name[20]; if (isalnum(*inptr)) { tree_node *s; name[i++] = *inptr++; while (isalnum(*inptr)) name[i++] = *inptr++; name[i] = 0; if ((s = Tree_Search(define_tree, name)) != NULL) { if (s->data != NULL) { macrostr *mm = (macrostr *)s->data; int k = Ustrlen(mm->text); /* Optimize the case with no arguments */ if (mm->argcount == 0) { if (outlen - 2 - (temp - next_buffer) < k + (inend - inptr)) error_moan(88); /* hard error - buffer overflow */ Ustrcpy(temp, mm->text); temp += k; } /* Otherwise have to process char by char, and read arguments, if any. */ else { int i; int argcount = mm->argcount; uschar *pp = mm->text; uschar *args[20]; uschar argbuff[2048]; uschar *ap = argbuff; /* Set up the default arguments */ for (i = 0; i < argcount; i++) args[i] = mm->args[i]; /* Read given arguments, if any, increasing the count if more than the default number. */ if (*inptr == '(') { for (i = 0;; i++) { int bracount = 0; BOOL inquotes = FALSE; uschar *s = ap; while (++inptr < inend && ((*inptr != ',' && *inptr != ')') || bracount > 0 || inquotes)) { int ch = *inptr; if (ch == '&' && !isalnum(inptr[1])) *ap++ = *(++inptr); else { if (ch == '\"') inquotes = !inquotes; if (!inquotes) { if (ch == '(') bracount++; else if (ch == ')') bracount--; } *ap++ = ch; } } if (inptr >= inend) error_moan(99); if (i >= argcount) { args[i] = NULL; argcount++; } if (ap - s > 0) { *ap++ = 0; args[i] = s; } if (inptr >= inend || *inptr == ')') { inptr++; break; } } } /* Process the arguments for nested macro calls */ for (i = 0; i < argcount; i++) { uschar *new_ap; if (args[i] == NULL || Ustrchr(args[i], '&') == NULL) continue; new_ap = expand_string(args[i], args[i] + Ustrlen(args[i]), ap, argbuff + sizeof(argbuff) - ap, FALSE); args[i] = ap; ap = new_ap + 1; /* final zero must remain */ } /* Now copy the replacement, inserting the args */ while (*pp != 0) { if (*pp == '&' && isdigit(pp[1])) { int arg = 0; while (isdigit(*(++pp))) arg = arg*10 + *pp - '0'; if (*pp == ';') pp++; if (--arg < argcount) { uschar *s = args[arg]; if (s != NULL) { if (read_buffersize - 2 - (temp - next_buffer) < Ustrlen(s)) error_moan(88); /* hard */ Ustrcpy(temp, s); temp += Ustrlen(s); } } } else { if (temp - next_buffer + 2 >= outlen) error_moan(88); /* hard error - buffer overflow */ *temp++ = *pp++; } } } } } else error_moan(9, name); /* Couldn't find name */ if (*inptr == ';') inptr++; } else error_moan(8); /* Bad uschar after '&' */ } } /* Otherwise it is a normal character */ else *temp++ = ch; } /* For whole lines, keep buffer as a NL-terminated string for debugging */ if (addNL) { temp[0] = '\n'; temp[1] = 0; } else *temp = 0; /* Return the end of the active data */ return comment? comment : temp; } /************************************************* * Read next character * *************************************************/ /* This function updates the global variable read_ch with the next character, including a newline at the end of each line. It deals with macro expansions and preprocessing directives, and it skips comments. Arguments: none Returns: nothing */ void next_ch(void) { for (;;) /* Loop until a character is obtained or very end is reached */ { int len; /* Test for more chars in the current line. If not, return '\n' at end of line (it's not in the data because that may actually end with an '@' for a comment). */ if (read_chptr < read_endptr) { read_ch = *read_chptr++; return; } if (read_chptr++ == read_endptr) { read_ch = '\n'; return; } /* Copy the line just finished into the previous buffer, for use by the error printing routine, unless this line was empty. */ if (this_buffer[0] != 0 && this_buffer[0] != '\n') { uschar *temp = prev_buffer; prev_buffer = this_buffer; this_buffer = temp; } /* Get next line; at end of file, check for missing "fi"s and deal with included files. */ for (;;) { if (input_file != NULL) { if (Ufgets(this_buffer, read_buffersize - 4, input_file) != NULL) break; fclose(input_file); input_file = NULL; } Ustrcpy(this_buffer, "--- End of file ---"); /* for reflection */ read_chptr = this_buffer + 19; /* just in case */ read_endptr = read_chptr + 1; /* nothing left */ if (read_skipdepth > 0 || read_okdepth > 0) error_moan(18); /* Real end */ if (read_filestackptr <= 0) { read_EOF = TRUE; read_ch = EOF; return; } /* Pop stack at end of included file */ DEBUG(("end of %s: popping include stack\n", main_filename)); store_free(main_filename); main_filename = read_filestack[--read_filestackptr].filename; input_file = read_filestack[read_filestackptr].file; read_linenumber = read_filestack[read_filestackptr].linenumber; read_okdepth = read_filestack[read_filestackptr].okdepth; read_skipdepth = 0; } /* Another line has been read; take care with the final one which may not have a newline on the end. */ read_linenumber++; len = Ustrlen(this_buffer); read_count += len; read_chptr = this_buffer; read_endptr = this_buffer + len; if (len >= read_buffersize - 5) error_moan(81); /* give-up error */ if (len > 0 && read_endptr[-1] == '\n') read_endptr--; /* Scan the line for comment and defined names, copying into the next buffer. The working buffer is always this_buffer, so that error messages can reflect it. However, if skipping lines, skip this processing too. */ if (read_skipdepth <= 0) { uschar *temp; read_endptr = expand_string(read_chptr, read_endptr, next_buffer, read_buffersize, TRUE); /* Swap this buffer and next buffer, initialize pointer. */ temp = this_buffer; this_buffer = next_buffer; next_buffer = temp; read_chptr = this_buffer; } /* If this buffer begins with '*', it is a pre-processing directive. We process it, and treat as a null line. Set up read_ch before preprocessing, so that code can call normal item reading routines. Clear the in-quotes flag, because a *define can legitimately have unmatched quotes, and no preprocessor directive can in any case have a quoted string that runs over onto the next line. */ while (*read_chptr == ' ' || *read_chptr == '\t') read_chptr++; if (*read_chptr++ == '*') { if (isalpha(read_ch = *read_chptr++)) pre_process(); else error_moan(12); read_chptr = read_endptr; read_in_quotes = FALSE; } else read_chptr = (read_skipdepth > 0)? read_endptr : this_buffer; } } /************************************************* * Read next word * *************************************************/ /* Argument: where to put the word Returns: nothing */ void read_word(uschar *word) { int i = 0; sigch(); if (isalpha(read_ch)) { do { word[i++] = tolower(read_ch); next_ch(); } while (isalnum(read_ch)); } word[i] = 0; } /************************************************* * Read plain string * *************************************************/ /* This procedure is used for reading file names and the like in heading directives. These are in quotes, but are not to be interpreted as PMW strings. Argument: where to put the string Returns: TRUE if OK, FALSE if quote missing */ BOOL read_plainstring(uschar *s) { sigch(); if (read_ch != '\"') return FALSE; next_ch(); while (read_ch != '\"' && read_ch != '\n') { *s++ = read_ch; next_ch(); } *s = 0; if (read_ch == '\"') next_ch(); else error_moan(16, "Terminating quote missing"); return TRUE; } /************************************************* * Read integer or fixed point number * *************************************************/ /* Called when the first character is known to be a digit or a dot. Argument: TRUE to read a fixed point number; FALSE for an integer Returns: the value */ int read_integer(BOOL fixed) { int yield = 0; while (isdigit(read_ch)) { yield = yield*10 + read_ch - '0'; next_ch(); } if (fixed) { yield *= 1000; if (read_ch == '.') { int d = 100; while (next_ch(), isdigit(read_ch)) { yield += (read_ch - '0')*d; d /= 10; } } } return yield; } /************************************************* * Read an expected int or fixed * *************************************************/ /* This is called when the first character hasn't been checked, and an error indication is required if the value is missing. Arguments: yield where to put the value fixed TRUE for a fixed point value, FALSE for an integer allowsign TRUE if a sign is permitted Returns: TRUE if OK, FALSE on error */ BOOL read_expect_integer(int *yield, int fixed, int allowsign) { int sign = 1; sigch(); if (allowsign) { if (read_ch == '+') next_ch(); else if (read_ch == '-') { sign = -1; next_ch(); } } if (!isdigit(read_ch)) { error_moan(10, allowsign? "Number" : "Unsigned number"); return FALSE; } *yield = sign * read_integer(fixed); return TRUE; } /************************************************* * Read an expected movement dimension * *************************************************/ /* This function is called after /u, /d, /l, or /r has been read. Arguments: none Returns: the value, or zero after an error */ int read_movevalue(void) { int x; next_ch(); return (read_expect_integer(&x, TRUE, FALSE))? x : 0; } /************************************************* * Read key signature * *************************************************/ /* Arguments: none Returns: the keysignature or zero on error */ int read_key(void) { int key = 0; sigch(); read_ch = tolower(read_ch); if ('a' <= read_ch && read_ch <= 'g') { key = read_ch - 'a'; next_ch(); if (read_ch == '#') { key += 7; next_ch(); } else if (read_ch == '$') { key += 14; next_ch(); } if (tolower(read_ch) == 'm') { key += 21; next_ch(); } if (main_keysigtable[key] == -100) { key = 2; error_moan(24); } } else error_moan(10, "Key signature"); return key; } /************************************************* * Double/halve time signature * *************************************************/ /* The global variables main_notenum and main_noteden contain the numerator and denominator of any time scaling that has been set up. Argument: the time signature Returns: the scaled time signature */ int read_scaletime(int ts) { int m, n, d; if (main_notenum == 1 && main_noteden == 1) return ts; m = (ts & 0xffff0000) >> 16; /* multiplier */ n = (ts & 0x0000ff00) >> 8; /* numerator */ d = (ts & 0x000000ff); /* denominator */ if (d == time_common || d == time_cut) { m *= main_notenum; if (main_noteden > 1) { if (m%main_noteden == 0) m /= main_noteden; else error_moan(102); } return (m << 16) | d; } d *= main_noteden; if (d % main_notenum == 0) d /= main_notenum; else n *= main_notenum; return (m << 16) + (n << 8) + d; } /************************************************* * Read time signature * *************************************************/ /* Return zero on any error. A time signature can be of the form m*n/d. Arguments: none Returns: the packed up time signature */ int read_time(void) { int gotnum = FALSE; int m, n, d; sigch(); if (isdigit(read_ch)) { (void)read_expect_integer(&m, FALSE, FALSE); sigch(); if (read_ch == '*') next_ch(); else { n = m; m = 1; gotnum = TRUE; } } else m = 1; if (!gotnum) { read_ch = tolower(read_ch); if (read_ch == 'a' || read_ch == 'c') { int type = (read_ch == 'c')? time_common : time_cut; next_ch(); return read_scaletime((m << 16) | type); } if (!read_expect_integer(&n, FALSE, FALSE)) return 0; } sigch(); if (read_ch != '/') { error_moan(10, "\"/\""); return 0; } next_ch(); if (!read_expect_integer(&d, FALSE, FALSE)) return 0; if (d < 1 || d > 64 || d != (d & (-d))) error_moan(87); /* hard error */ return read_scaletime((m << 16) | (n << 8) | d); } /************************************************* * Compute barlength from time signature * *************************************************/ /* Argument: the time signature Returns: the bar length */ int read_compute_barlength(int ts) { int m = (ts >> 16) & 255; int n = (ts >> 8) & 255; int d = ts & 255; if (d == time_common) n = d = 4; else if (d == time_cut) n = d = 2; return n * m * (len_semibreve/d); } /************************************************* * Get MIDI number from string * *************************************************/ /* This function scans a list of MIDI voice or percussion names to find the number for a given name. If we are not generating MIDI (midi_filename is NULL), there is no search, but we do not give an error. Just return zero. Arguments: list the list of MIDI names string the string to search for text text for use in the error message Returns: the MIDI number */ int read_getmidinumber(uschar *list, uschar *string, uschar *text) { int yield = -1; if (list != NULL) while (*list) { int len = Ustrlen(list); if (Ustrcmp(list, string) == 0) { yield = list[len+1]; break; } list += len + 2; } if (yield < 0) { if (midi_filename != NULL) error_moan(110, text, string); yield = 0; } return yield; } /************************************************* * Start of movement initialization * *************************************************/ /* This function resets values that must be reset at the start of every movement. Other per-movement data is initialized to default values (the init_movtstr variable) for the first movement, then copied to subsequent movements. Argument: option for type of movement (same page, new page, etc) Returns: nothing */ static void init_movt(int opt) { int i; curmovt->stavetable = store_Xget((max_stave+1) * sizeof(stavestr *)); stavetable = curmovt->stavetable; for (i = 0; i <= max_stave; i++) stavetable[i] = NULL; curmovt->barcount = 0; curmovt->baroffset = 0; curmovt->barnovector = NULL; /* Got when first stave encountered */ curmovt->heading = curmovt->footing = NULL; curmovt->key = 2; /* C major */ curmovt->laststave = -1; curmovt->movt_opt = opt; curmovt->notespacing = store_Xget(8*sizeof(int)); memcpy(curmovt->notespacing, main_notespacing, 8*sizeof(int)); curmovt->layout = NULL; curmovt->play_changes = NULL; curmovt->play_tempo_changes = NULL; curmovt->posvector = NULL; curmovt->showtime = TRUE; curmovt->startbracketbar = 0; curmovt->startnotime = FALSE; memcpy(curmovt->staves, main_staves, stave_bitvec_size*sizeof(int)); curmovt->time = 0x00010404; /* 1*4/4 */ curmovt->transpose = main_transpose; curmovt->unfinished = FALSE; read_copied_fontsizestr = FALSE; read_headcount = 1; /* Very first size for first movement only */ read_headmap = 0; read_lastplaychange = &(curmovt->play_changes); main_notenum = main_noteden = 1; read_prevstave = 0; /* previous stave (fudged when stave 0 read) */ mac_initstave(curmovt->suspend, 0); mac_initstave(read_staves, 0); error_skip = skip_EOL; /* Where to skip for some errors */ /* In case there are transposed text strings in the headers, ensure the appropriate stave data is fudged. */ stave_key = curmovt->key; stave_transpose = curmovt->transpose; stave_key_tp = transpose_key(stave_key, stave_transpose, TRUE); } /************************************************* * Handle end of movement * *************************************************/ /* Called to tidy up at the end of each movement. Arguments: none Returns: nothing */ static void read_endmovement(void) { int i; for (i = 0; i < stave_bitvec_size; i++) curmovt->staves[i] &= read_staves[i]; /* Disable those not read */ /* If there was a playtempo directive, adjust the bar numbers so that they are internal rather than external values */ if (curmovt->play_tempo_changes != NULL) { int *p = curmovt->play_tempo_changes; while (*p < BIGNUMBER) { uschar *bv = curmovt->barnovector; int i; int n = (*p)/1000 - curmovt->baroffset; int f = (*p)%1000; if ((f%10) == 0) { f = ((f%100) == 0)? (f/100) : (f/10); } if (n <= 0) n = 1; else { for (i = 1; i <= n; i++) if (bv[i] < bv[i+1]) n++; } *p = n + f; p += 2; } } } /************************************************* * Top-level reading control * *************************************************/ /* Called from the main control function. This function reads the input stream, alternating between heading directives and music staves for the different movements that are present. Arguments: none Returns: nothing */ void read_go(void) { DEBUG(("read_go() start\n")); /* Deal with reading the heading part of a movement. We jump back here when a new movement is encountered. */ READ_HEADING: for (;;) { next_heading(); if (main_rc >= rc_failed) break; /* The appearance of '[' indicates the start of the stave data. Set up things that can't be done till now. */ if (read_ch == '[') { int j; curmovt->barnovector = store_Xget(curmovt->maxbarcount+1); for (j = 0; j <= curmovt->maxbarcount; j++) curmovt->barnovector[j] = 0; read_stavestart = TRUE; error_skip = skip_KET; /* Where to skip for some errors */ break; } /* End of file before any staff data has been read. */ else if (read_ch == EOF) break; } /* Loop to deal with reading the stave part of a movement. */ if (main_rc < rc_failed) for (;;) { sigch(); if (read_ch == EOF || main_rc >= rc_failed) break; /* Deal with starting a new stave or movement. */ if (read_stavestart) { uschar word[100]; if (read_ch != '[') { error_moan(29); break; } next_ch(); read_word(word); /* It's another stave. Check that a valid number is given. If so, set up the index for its bars and get ready to read the rest of the data. */ if (Ustrcmp(word, "stave") == 0 || Ustrcmp(word, "staff") == 0) { int k; if (!read_expect_integer(&curstave, FALSE, FALSE)) { error_moan(30, "Stave number"); /* Failed */ break; } /* Error if number too big or stave supplied twice */ if (curstave > max_stave) { error_moan(22, max_stave+1); break; } if (stavetable[curstave] != NULL) { error_moan(31, curstave); break; } /* Staves must be in order; missing staves are inserted as empty, except for stave 0, which is just omitted. This is historical really. The rest of PMW assumes contiguous staves, and to allow some to be missing, it is less boat-rocking to do it this way. */ if (curstave == 0) read_prevstave = -1; for (k = read_prevstave+1; k <= curstave; k++) { int j; mac_setstave(read_staves, k); if (k > curmovt->laststave) curmovt->laststave = k; /* Set up the data structure for the stave */ stavehead = stavetable[k] = store_Xget(sizeof(stavestr)); stavehead->stave_name = NULL; stavehead->lastbar = 0; stavehead->toppitch = -1; stavehead->botpitch = 9999; stavehead->totalpitch = 0; stavehead->notecount = 0; stavehead->omitempty = FALSE; stavehead->stavelines = 5; stavehead->barlinestyle = 255; /* "unset" */ barvector = stavehead->barindex = store_Xget((curmovt->maxbarcount+1) * sizeof(bstr *)); for (j = 0; j <= curmovt->maxbarcount; j++) barvector[j] = NULL; } read_prevstave = curstave; /* Initialize miscellaneous variables */ stave_accritvalue = 3; stave_couplestate = stave_octave = 0; stave_notes = TRUE; stave_noteflags = (curstave == 0)? nf_hidden : 0; stave_matchnum = 0; /* indicates "unset" */ stave_totalnocount = stave_slurcount = stave_hairpinbegun = stave_hairpiny = 0; stave_stemforce = stave_ties = stave_textflags = 0; stave_textabsolute = 0; stave_accentflags = stave_restlevel = stave_stemlength = 0; stave_pletflags = stave_plety = 0; stave_ornament = -1; stave_printpitch = 0; stave_stemflag = nf_stem; stave_pendulay = NULL; stave_hairpinflags = hp_below; stave_hairpinwidth = curmovt->hairpinwidth; stave_clef = clef_treble; stave_clef_octave = 0; stave_barlinestyle = curmovt->barlinestyle; stave_transposedaccforce = main_transposedaccforce; stave_transpose = curmovt->transpose; stave_key = curmovt->key; /* Original key */ /* We have to call transpose_key in order to get the value for the letter transformation set, even if there is a forced key signature */ stave_key_tp = transpose_key(stave_key, stave_transpose, TRUE); stave_requiredbarlength = read_compute_barlength(curmovt->time); stave_beaming = stave_lastwastied = stave_lastwasdouble = FALSE; stave_laststemup = TRUE; stave_smove = stave_octave = 0; stave_minpitch = 999; stave_maxpitch = stave_pitchtotal = stave_pitchcount = 0; stave_lastbasenoteptr = NULL; stave_fbfont = stave_ulfont = stave_olfont = font_rm; stave_textfont = font_it; stave_textsize = 0; stave_olsize = ff_offset_olay; stave_ulsize = ff_offset_ulay; stave_fbsize = ff_offset_fbass; stave_suspended = mac_teststave(curmovt->suspend, curstave); stave_stemswaplevel = curmovt->stemswaplevel; read_prev_had_dbar = read_prev_had_ibar = FALSE; read_prev_barlinestyle = stave_barlinestyle; /* Set the bar number, and enter the normal reading state, with a pre-fixed "name" directive if necessary. */ stave_barnumber = 1; read_stavestart = read_endstave = FALSE; sigch(); if (read_ch == '\"' || (read_ch == 'd' && Ustrncmp(read_chptr, "raw ", 4) == 0)) Ustrcpy(read_stavedir, "name"); else read_stavedir[0] = 0; read_chptr--; read_ch = '['; } /* It's another movement. Check for options, set up a new movement control block, and change state. */ else if (Ustrcmp(word, "newmovement") == 0) { int opt = movt_default; int ph = 0; int lf = 0; movtstr *newcurmovt; if (main_lastmovement >= main_max_movements) { error_moan(120, main_max_movements); break; } /* disaster */ sigch(); while (read_ch != ']') { read_word(word); sigch(); if (Ustrcmp(word, "thispage") == 0) opt = movt_thispage; else if (Ustrcmp(word, "thisline") == 0) opt = movt_thisline; else if (Ustrcmp(word, "newpage") == 0) opt = movt_newpage; else if (Ustrcmp(word, "nopageheading") == 0) ph = movt_nopageheading; else if (Ustrcmp(word, "uselastfooting") == 0) lf = movt_uselastfooting; else error_moan(10, "\"thispage\", \"thisline\", \"newpage\", \"nopageheading\", or \"uselastfooting\""); } next_ch(); read_endmovement(); /* Tidy up */ newcurmovt = movement[++main_lastmovement] = store_Xget(sizeof(movtstr)); *newcurmovt = *curmovt; format_movt = curmovt = newcurmovt; init_movt(opt | ph | lf); goto READ_HEADING; /* Jump back to start of function */ } /* It's a disastrous error */ else { error_moan(29); break; } } /* Otherwise we are in the middle of reading a stave's data. Read another bar. FALSE is yielded at the end of the staff. */ else { int oldnocount = stave_totalnocount; BOOL more = read_bar(); int nocount = (stave_totalnocount > oldnocount)? 1:0; /* If there was a repeat count in the bar, set up additional pointers to the repeated part of the bar and handle nocounts. */ while (stave_barrepeatcount--) { if (++stave_barnumber > curmovt->maxbarcount) { error_moan(36, curmovt->maxbarcount); more = FALSE; break; } if (stave_totalnocount > (curmovt->barnovector)[stave_barnumber]) (curmovt->barnovector)[stave_barnumber] = stave_totalnocount; stave_totalnocount += nocount; (stavehead->barindex)[stave_barnumber] = stave_barrepeatptr; } /* Increase the bar number and set the high water mark if there is more or if this is a non-empty end-of-stave bar. */ if (more || (stavehead->barindex)[stave_barnumber] != NULL) stavehead->lastbar = stave_barnumber++; /* Deal with reaching the end of the stave */ if (!more) { if (stavehead->lastbar > curmovt->barcount) curmovt->barcount = stavehead->lastbar; if (stave_pitchcount) { stavehead->toppitch = stave_maxpitch; stavehead->botpitch = stave_minpitch; stavehead->totalpitch = stave_pitchtotal; stavehead->notecount = stave_pitchcount; } else stavehead->toppitch = stavehead->botpitch = 0; if (stave_totalnocount > curmovt->totalnocount) curmovt->totalnocount = stave_totalnocount; if (stave_pendulay != NULL) { error_moan(65, curstave); /* Give warning */ while (stave_pendulay != NULL) { ulaypend *next = stave_pendulay->next; store_free(stave_pendulay); stave_pendulay = next; } } read_stavestart = TRUE; /* Flag to expect a new stave or movement */ } } } read_endmovement(); /* Terminate the final movement */ store_free(next_buffer); store_free(this_buffer); store_free(prev_buffer); store_free(read_stavedir); if (input_file != NULL) fclose(input_file); while (read_filestackptr > 0) fclose(read_filestack[--read_filestackptr].file); /* Warn if the format word was never tested. By giving the error after resetting reading_input, it won't try to reflect the input line. */ reading_input = FALSE; if (main_format[0] != 0 && !main_format_tested) error_moan(104, main_format); DEBUG(("read_go() end\n")); } /************************************************* * Set up for reading routines * *************************************************/ /* This function is called at the start of reading. Arguments: none Returns: nothing */ void read_start(void) { int i; /* Stack for included files */ read_filestack = store_Xget(max_include*sizeof(filestr)); /* Set up buffers for line reading */ read_stavedir = store_Xget(64); next_buffer = store_Xget(read_buffersize); this_buffer = store_Xget(read_buffersize); prev_buffer = store_Xget(read_buffersize); this_buffer[0] = prev_buffer[0] = 0; /* Variables for controlling reading of the file */ read_filestackptr = 0; read_linenumber = read_count = error_count = main_rc = 0; read_skipdepth = read_okdepth = 0; read_EOF = FALSE; read_in_quotes = FALSE; read_chptr = this_buffer + 1; read_endptr = this_buffer; read_ch = ' '; /* Default start of movement note spacing */ memcpy(main_notespacing, init_notespacing, 8*sizeof(int)); /* Initialize movement table for first movement */ for (i = 0; i <= main_max_movements; i++) movement[i] = NULL; curmovt = movement[1] = store_Xget(sizeof(movtstr)); *curmovt = init_movtstr; /* Default settings */ init_movt(movt_default); /* Reset things that need resetting */ read_headcount = 0; /* First size for movement 1 only */ /* Set available fonts to those read from the font list file, and set the default font allocations. */ font_count = font_basecount; font_table[font_rm] = font_search(US"Times-Roman"); font_table[font_it] = font_search(US"Times-Italic"); font_table[font_bf] = font_search(US"Times-Bold"); font_table[font_bi] = font_search(US"Times-BoldItalic"); font_table[font_sy] = font_search(US"Symbol"); font_table[font_mf] = font_search(main_musicchoice); font_table[font_mu] = font_search(main_musicchoice); for (i = font_xx; i < font_xx + MaxExtraFont; i++) font_table[i] = font_search(US"Times-Roman"); if (font_table[font_rm] < 0 || font_table[font_mf] < 0) error_moan(25); /* Hard */ /* Point current page at a dummy (relevant for string escape checking) */ curpage = &dummy_page; /* Miscellaneous start-of-file initialization */ baraccs = store_Xget(baraccs_len); baraccs_tp = store_Xget(baraccs_len); stave_tiedata = store_Xget(max_chordsize * sizeof(tiedata)); stave_beamstack = store_Xget(beamstacksize); stave_stemstack = store_Xget(stemstacksize); page_postable = store_Xget(max_postablesize * sizeof(workposstr)); define_tree = draw_tree = draw_variable_tree = NULL; draw_thickness = 500; draw_nextvariable = 0; opt_landscape = opt_oldbeambreak = opt_oldrestlevel = opt_oldstemlength = FALSE; main_firstpage = main_pageinc = 1; main_format_tested = FALSE; main_htypes = NULL; main_kerning = TRUE; main_lastmovement = 1; main_magnification = 1000; main_maxvertjustify = 60000; main_pageanchor = NULL; main_printkey = NULL; main_printtime = NULL; main_pssetup = NULL; main_sheetheight = 842000; main_sheetwidth = 595000; opt_sheetsize = sheet_A4; opt_stretchrule = 2; /* The latest rule */ main_transposedaccforce = TRUE; main_transposedkeys = NULL; main_truepagelength = 720000; draw_lgx = draw_lgy = 0; out_depthvector = store_Xget((max_stave+1) * sizeof(int *)); font_reset(); /* To set no transformation */ font_xstretch = 0; /* No justification */ /* Finally, enter the reading state. This affects the form of error messages. */ reading_input = TRUE; } /* End of read1.c */ pmw-4.27/src/globals.c0000644000222100022210000002524312247665016012734 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2013 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: October 2013 */ /* This file contains all the global data */ #include "pmwhdr.h" #include "readhdr.h" #include "outhdr.h" #include "pagehdr.h" #include "poshdr.h" bstr **barvector; movtstr *format_movt; movtstr **movement; movtstr *curmovt; pagestr *curpage; int curstave; FILE *input_file = NULL; FILE *debug_file = NULL; BOOL debugging = FALSE; filestr *read_filestack; int read_filestackptr; uschar *arg_from_name = NULL; uschar *arg_to_name = NULL; uschar *baraccs = NULL; uschar *baraccs_tp = NULL; contstr *bar_cont; b_notestr *beam_first; b_notestr *beam_last; uschar *beam_stemadjusts; BOOL bar_use_draw = FALSE; int beam_accrit; BOOL beam_continued; int beam_count; int beam_firstmoff; int beam_firstpitch; int beam_firstX; int beam_firstY; int beam_forceslope; int beam_lastmoff; int beam_offset; int beam_offsetadjust; int beam_overbeam; int beam_seq; int beam_slope; int beam_splitOK; int beam_upflag; int beam_Xcorrection; uschar *copyright; tree_node *define_tree; tree_node *draw_tree; tree_node *draw_variable_tree; int draw_gap = 0; int draw_lgx; int draw_lgy; int draw_nextvariable; int draw_ox; int draw_oy; int draw_thickness; int error_count; int error_ptr_correction = 0; int error_skip; BOOL error_111 = FALSE; int font_basecount = 0; int font_count; fontstr *font_List; uschar *font_metrics_default; uschar *font_metrics_extra; int font_sinr; int font_cosr; int font_stringheight; int *font_table; int font_transform[6]; int font_xstretch; uschar *main_filename; int main_firstpage; int *main_fonttable; uschar *main_format = US""; BOOL main_format_tested; htypestr *main_htypes; int main_initialized = FALSE; BOOL main_kerning; int main_lastmovement = 0; int main_lastpage; int main_magnification; int main_max_bars = def_max_bars; int main_max_movements = def_max_movements; int main_maxvertjustify; uschar *main_musicchoice = US"PMW-Music"; int main_notenum; int main_noteden; int main_notespacing[8]; pagestr *main_pageanchor; int main_pageinc; int main_pagelength; pkeystr *main_printkey; ptimestr *main_printtime; headstr *main_pssetup; int main_rc = 0; BOOL main_righttoleft = FALSE; int main_sheetheight; int main_sheetwidth; BOOL main_shownlogo = FALSE; int main_stavemagn; int main_staves[stave_bitvec_size] = { -1, -1 }; int main_storetotal = 0; int main_storestaves = 0; int main_stretchrespacethresh = 1075; int main_stretchthreshnum = 1; int main_stretchthreshden = 2; int main_totalbars; int main_tracepos = (-2); int main_transpose = max_transpose; BOOL main_transposedaccforce; trkeystr *main_transposedkeys; int main_truepagelength; uschar *midi_filename = NULL; BOOL midi_for_notes_off = FALSE; uschar *midi_perc = NULL; uschar *midi_percnames = NULL; BOOL midi_poly = TRUE; uschar *midi_voices = NULL; uschar *midi_voicenames = NULL; int n_acc; int n_accleft; BOOL n_beamed; int n_cueadjust; int n_chordcount; int n_chordflags; int n_chordacflags; int n_dotxadjust; int n_firstacc; int n_flags; int n_acflags; int n_fontsize; int n_gracecount; int n_gracemoff; BOOL n_nhtied; BOOL n_invertleft; BOOL n_invertright; int n_lastacc; b_notestr *n_lastnote; int n_length; int n_longrestmid; int n_masq; int n_maxaccleft; int n_maxpitch; int n_minpitch; b_tiestr *n_nexttie; int n_notetype; int n_orig_stemlength; b_ornamentstr *n_ornament; int n_pcorrection; int n_pitch; b_tiestr *n_prevtie; int n_restlevel; int n_stemlength; int n_upflag; int n_upfactor; int n_x; BOOL opt_landscape; BOOL opt_oldbeambreak; BOOL opt_oldrestlevel; BOOL opt_oldstemlength; BOOL opt_print_postscript = FALSE; int opt_sheetsize = sheet_unknown; int opt_stretchrule; int out_bar; int out_barchar; int out_barlinex; int out_barx; int out_bbox[4]; int out_beaming; contstr *out_cont; int out_dashlength; int out_dashgaplength; int out_deepybarend; int *out_depthvector; int out_downgap; b_drawstr *out_drawqueue[20]; int out_drawqueueptr; int out_drawstackptr; int out_dynmovef[dyn_max]; int out_dynmovex[dyn_max]; int out_dynmovey[dyn_max]; BOOL out_gracefound; int out_grace_fudge; BOOL out_gracenotes; BOOL out_hairpinhalf; int out_joinxposition; int out_keycount; int out_lastbarlinex; BOOL out_lastbarwide; BOOL out_lastnotebeamed; int out_lastnotex; int out_laststave; uschar out_laststemup[max_stave+1]; BOOL out_lineendflag; BOOL out_makedraw = FALSE; int out_manyrest; int out_moff; b_notestr *out_notelist[20]; int out_notex; BOOL out_omitbarline; overdrawstr *out_overdraw; BOOL out_passedreset; int out_pden; b_pletstr *out_plet; int out_plet_highest; int out_plet_highest_head; int out_plet_lowest; int out_plet_x; int out_pnum; posstr *out_poslast; posstr *out_posptr; posstr *out_postable; int out_posxRL; b_prevbarstr *out_prevbar; int out_prevtieflag; BOOL out_repeatonbarline; int out_slurclx = 0; int out_slurcly = 0; int out_slurcrx = 0; int out_slurcry = 0; BOOL out_slurstarted; BOOL out_startlinebar; int out_stave; int out_stavelines; int out_stavebottom; int out_stavetop; sysblock *out_sysblock; int out_textnextabove; int out_textnextbelow; b_textstr *out_textqueue[20]; b_textXstr *out_textXqueue[20]; int out_textqueueptr; b_textXstr *out_textX; int out_timecount; b_tremolostr *out_tremolo; BOOL out_tremupflag; int out_tremx; int out_tremy; int out_upgap; int out_ybarend; int out_Xadjustment; int out_Yadjustment; int out_zcopycount; int out_yposition; int out_ystave; int output_copies = 1; BOOL output_duplex = FALSE; BOOL output_includefont = FALSE; BOOL output_manualfeed = FALSE; stave_list *output_pagelist = NULL; BOOL output_tumble = FALSE; pagedatastr *page_accepteddata; pagedatastr *page_nextdata; pagedatastr *page_previousdata; int page_barcount; int page_barlinewidth; int page_barnumber; int page_botmargin; contstr *page_cont; int page_countsystems; BOOL page_firstsystem; headstr *page_footing; int page_footnotedepth; headstr *page_footnotes; int page_footnotespacing; int page_justify; int page_justifyLR; int page_lastbarcountbump; BOOL page_lastendwide; BOOL page_lastenddouble; headstr *page_lastfootnote; headstr *page_lastnewfootnote; sysblock *page_lastsystem; int page_lastulevel; int page_lastwanted; int page_layout_stretchd; int page_layout_stretchn; int page_manyrest; int page_movtnumber; BOOL page_movtpending; int page_newfootnotedepth; headstr *page_newfootnotes; BOOL page_newpagewanted; int page_olaysize; int *page_olevel; int *page_olhere; workposstr *page_posptr; workposstr *page_postable; BOOL page_savehadmovt; int page_sgnext; unsigned int page_showtimes[stave_bitvec_size]; int *page_ssnext; int *page_ssehere; int *page_ssenext; BOOL page_startchangetime; startlinestr *page_startline; BOOL page_startlinebar; int page_stave; unsigned int page_stavemap[stave_bitvec_size]; uschar *page_sysclef; sysblock *page_sysblock; sysblock **page_sysprevptr; int page_sys_botmargin; int page_sys_justify; int page_sys_topmargin; int page_topmargin; int page_ulaysize; int *page_ulevel; int *page_ulhere; BOOL page_warnkey; BOOL page_warntime; int page_xxwidth; int play_endbar = -1; int play_movt_number = -1; BOOL play_repeats = TRUE; int play_startbar = -1; barposstr *pos_bp; BOOL pos_barstartrepeat; stave_list *print_curlist; int print_curnumber; int print_gutter = 0; int print_imposition = -1; int print_lastpage; int print_image_xadjust = 0; int print_image_yadjust = 0; int print_image_sxadjust = 0; int print_image_syadjust = 0; int print_magnification = 1000; int print_pagefeed = -1; int print_pageorigin; BOOL print_pamphlet = FALSE; BOOL print_reverse = FALSE; BOOL print_side1 = TRUE; BOOL print_side2 = TRUE; int print_xpageoffset = 72000; int print_ypageoffset = 53000; FILE *ps_file; uschar *ps_fontdir_default; uschar *ps_fontdir_extra; uschar *ps_header = NULL; BOOL reading_input = FALSE; int read_barlinestyle; int read_ch; uschar *read_chptr; BOOL read_copied_fontsizestr; dirstr *read_dir; uschar *read_endptr; BOOL read_endstave; BOOL read_EOF; int read_headcount; int read_headmap; b_ensurestr *read_lastensuredtie; b_playchangestr **read_lastplaychange; int read_linenumber; int read_okdepth; int read_prev_had_dbar; int read_prev_had_ibar; int read_prev_barlinestyle; int read_skipdepth; uschar *read_stavedir; stavestr *stavehead; stavestr **stavetable; int stave_accentflags; int stave_accritvalue; int stave_barlength; int stave_barlinestyle; int stave_barnumber; int stave_barrepeatcount; bstr *stave_barrepeatptr; int stave_beamcount; b_notestr *stave_beamfirstnote; BOOL stave_beaming; b_notestr **stave_beamstack; int stave_beamstackptr; int stave_beamstemforce; BOOL stave_checklength; int stave_chordcount; int stave_clef; int stave_clef_octave; BOOL stave_copy_accs; int stave_couplestate; int stave_fbfont; int stave_fbsize; BOOL stave_firstinbar; b_notestr *stave_firstnoteptr; BOOL stave_hadnocount; int stave_hairpinbegun; int stave_hairpinflags; int stave_hairpinsru; int stave_hairpinwidth; int stave_hairpiny; int stave_key; int stave_key_tp; int stave_lastgracestem; b_notestr *stave_lastbasenoteptr; b_notestr *stave_lastnoteptr; BOOL stave_laststemup; int stave_lasttiepitch; BOOL stave_lastwasdouble; BOOL stave_lastwastied; int stave_matchnum; int stave_matchden; int stave_maxaway; int stave_maxpitch; int stave_minpitch; BOOL stave_notes; int stave_octave; int stave_olfont; int stave_olsize; int stave_ornament; BOOL stave_overbeam; ulaypend *stave_pendulay; int stave_pitchcount; int stave_pitchtotal; int stave_pletflags; int stave_pletlen; int stave_pletsupnum; int stave_pletsupden; int stave_plety; int stave_printpitch; int stave_requiredbarlength; BOOL stave_resetOK; int stave_restlevel; int stave_maxbarlength; int stave_noteflags; int stave_slurcount; int stave_smove; BOOL stave_smove_relative; int stave_stemflag; int stave_stemforce; int stave_stemlength; b_notestr **stave_stemstack; int stave_stemstackptr; int *stave_stemswaplevel; BOOL stave_suspended; int stave_textabsolute; int stave_textflags; int stave_textfont; int stave_textsize; tiedata *stave_tiedata; int stave_ties; int stave_totalnocount; int stave_transpose; int stave_transpose_letter; BOOL stave_transposedaccforce; int stave_ulfont; int stave_ulsize; BOOL stave_use_draw = FALSE; BOOL stave_use_widechars = TRUE; int string_font; uschar *next_buffer; uschar *this_buffer; uschar *prev_buffer; BOOL verify; int version_fixed; uschar version_string[40]; /* End of globals.c */ pmw-4.27/src/setbeam.c0000644000222100022210000011337112247665016012731 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2013 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: March 2013 */ /* This file contains code for setting up and outputting beams */ #include "pmwhdr.h" #include "pagehdr.h" #include "readhdr.h" #include "outhdr.h" /************************************************* * Static variables * *************************************************/ static int retryslopes[] = { 100, 50, 0, -50, -100, -300 }; static int minoffset; /************************************************* * Determine slope for beam * *************************************************/ /* This procedure is called only when there are more than two notes in the beam. It is a totally heuristic function, but it seems to produce reasonable slopes pretty nearly all the time. Arguments: none Returns: slope */ static int findslope(void) { b_notestr *left = beam_first; int leftpitch = left->spitch; int rightpitch = beam_last->spitch; int slope, thisrun, runindex, lastrunindex, lasttype; int interval; int lastinterval = 0; int thispitch, nextpitch, max, min, firstslope; int runs[3]; BOOL downs_less_than_up, ups_less_than_down; mac_couplepitch(leftpitch, left->flags); mac_couplepitch(rightpitch, beam_last->flags); /* If the two ends of the beam are at the same pitch, draw a level beam. */ if (leftpitch == rightpitch) return 0; /* Otherwise do some analysis */ firstslope = beam_upflag? (-1) : (+1); /* in case rest first */ slope = thisrun = 0; thispitch = leftpitch; lastrunindex = -1; lasttype = left->notetype; max = 0; min = BIGNUMBER; runs[0] = runs[1] = runs[2] = 0; /* equal, up, down */ downs_less_than_up = ups_less_than_down = TRUE; while (left != beam_last) { b_notestr *next = misc_nextnote(left, NULL); nextpitch = next->spitch; /* Totally ignore grace/non-grace as required */ if ((out_gracenotes && next->length != 0) || (!out_gracenotes && next->length == 0)) { left = next; continue; } /* Skip over rests, but keep the note type */ if (nextpitch != 0) { mac_couplepitch(nextpitch, next->flags); if (left == beam_first) firstslope = nextpitch - thispitch; if (next != beam_last) { if (nextpitch > max) max = nextpitch; /* Max/min of all but the first */ if (nextpitch < min) min = nextpitch; /* and last notes */ } interval = nextpitch - thispitch; runindex = (interval == 0)? 0 : (interval > 0)? 1 : 2; /* Slope is same as previous */ if (runindex == lastrunindex) { if (next->notetype >= lasttype || (beam_upflag && runindex == 1) || (!beam_upflag && runindex == 2)) thisrun++; } /* Slope is different from previous */ else { if (lastrunindex >= 0) { if (thisrun > runs[lastrunindex]) runs[lastrunindex] = thisrun; if (interval > 0 && interval >= abs(lastinterval)) ups_less_than_down = FALSE; if (interval < 0 && abs(interval) >= lastinterval) downs_less_than_up = FALSE; } thisrun = 1; lastrunindex = runindex; } /* Save for next note */ lastinterval = interval; thispitch = nextpitch; } lasttype = next->notetype; left = next; } if (lastrunindex >= 0 && thisrun > runs[lastrunindex]) runs[lastrunindex] = thisrun; /* This is the heuristic algorithm that produces a default slope */ if (runs[1] > runs[0] && runs[1] > runs[2]) slope = curmovt->maxbeamslope2; else if (runs[2] > runs[0] && runs[2] > runs[1]) slope = - curmovt->maxbeamslope2; /* Some special cases override the heuristic */ if (leftpitch > rightpitch) { if (beam_upflag && leftpitch - rightpitch >= 4 && max <= rightpitch + 2) slope = - curmovt->maxbeamslope2; else if (!beam_upflag && min <= rightpitch) slope = 0; else if (slope > 0) slope = 0; } else { if (!beam_upflag && rightpitch - leftpitch >= 4 && min >= rightpitch - 2) slope = curmovt->maxbeamslope2; else if (beam_upflag && max >= rightpitch) slope = 0; else if (slope < 0) slope = 0; } if (beam_upflag) { if (slope < 0 && (firstslope >= 0 || runs[1] > 2 || !ups_less_than_down)) return 0; } else { if (slope > 0 && (firstslope <= 0 || runs[2] > 2 || !downs_less_than_up)) return 0; } return slope; } /************************************************* * Compute Beam Offset * *************************************************/ /* The original code dealt only with beams where all the notes had stems in the same direction. The addition of logic to deal with other cases leaves this code alone, but adds additional computations to compute the two offsets for the two sets of notes. If this is successful, then a middle position is chosen at the end. Arguments: ornament the first note's ornament, or -1 lastopposite TRUE if the last note's stem goes the opposite way adjusts x-adjustments for the notes longestnote longest note in the beam Returns: FALSE if notes on opposite sides are wanted, but cannot be handled; otherwise TRUE. */ static BOOL ComputeBeamOffset(int ornament, BOOL lastopposite, int *adjusts, int longestnote) { b_notestr *thisnote = beam_first; BOOL forcelength = TRUE; int diff_thisoffset; int diff_thatoffset = BIGNUMBER; /* => unset */ int hemidemisemiquavers = FALSE; int moff = beam_firstmoff; int adjustptr = 0; int xfirst = out_findXoffset(beam_firstmoff) + adjusts[0]; int yadjust = beam_first->yextra; int yfirstpitch = beam_first->spitch; int yfirst; mac_couplepitch(yfirstpitch, beam_first->flags); yfirst = (yfirstpitch - 130)*main_stavemagn; beam_splitOK = TRUE; /* Initialize from the first note, forcing a stem length if not coupled. */ if (beam_upflag) { beam_offset = diff_thisoffset = yadjust; if ((beam_first->flags & nf_coupleD) == 0) { forcelength = FALSE; if (yfirstpitch < 122) beam_offset += (122 - yfirstpitch)*main_stavemagn; } } else { beam_offset = diff_thisoffset = -yadjust; if ((beam_first->flags & nf_coupleU) == 0) { forcelength = FALSE; if (yfirstpitch > 150) beam_offset -= (yfirstpitch - 150)*main_stavemagn; } } minoffset = abs(beam_offset) + 8000; /* Loop through the beam */ for (;;) { BOOL note_upflag = (thisnote->flags & nf_stemup) != 0; int xnote = out_findXoffset(moff) - ((lastopposite && thisnote == beam_last)? beam_Xcorrection : 0) + adjusts[adjustptr]; int thatynote; int ybasic = yfirst + mac_muldiv(beam_slope, xnote-xfirst, 1000); int ybeam = ybasic + beam_offset; int thisybeam = ybasic + diff_thisoffset; int ypitch = thisnote->spitch; int ynote; mac_couplepitch(ypitch, thisnote->flags); yadjust = thisnote->yextra; if (ornament == or_trem2) yadjust += ((ypitch & 2) == 0)? 4000 : 2000; else if (ornament == or_trem3) yadjust += ((ypitch & 2) == 0)? 8000 : 6000; ynote = (ypitch - 130)*main_stavemagn + n_upfactor*yadjust; /* If this is the first note of the beam, it might really be a rest in disguise. We can tell this from the true pitch. If so, adjust for longestnote. */ if (thisnote->truepitch == 0) { ynote = ynote + n_upfactor*(longestnote - quaver)*4*main_stavemagn; } /* Else if this is the first non-coupled note, force a stem length. We don't force for more than one note in a beam, because that leads to excessively long stems. */ else if (forcelength) { if (beam_upflag) { if ((thisnote->flags & nf_coupleD) == 0) { forcelength = FALSE; if (ynote < L_0L - 2000) ynote += (L_0L - 2000) - ynote; } } else { if ((thisnote->flags & nf_coupleU) == 0) { forcelength = FALSE; if (ynote > L_6L + 2000) ynote -= ynote - (L_6L+2000); } } } thatynote = ynote - 2*n_upfactor*yadjust; if (thisnote->notetype == hdsquaver) hemidemisemiquavers = TRUE; if (beam_upflag) { int m; if (ynote > ybeam) beam_offset += ynote - ybeam; m = ybasic + beam_offset - ynote + yadjust + 8000; if (m < minoffset) minoffset = m; } else { int m; if (ynote < ybeam) beam_offset -= ybeam - ynote; m = ynote - (ybasic + beam_offset) + yadjust + 8000; if (m < minoffset) minoffset = m; } if (note_upflag == beam_upflag) { if (beam_upflag) { if (ynote > thisybeam) diff_thisoffset += ynote - thisybeam; } else if (ynote < thisybeam) diff_thisoffset -= thisybeam - ynote; } else if (beam_splitOK) { int thatybeam; /* If this is the first opposed note, calculate an initial offset, else adjust the offset. */ if (diff_thatoffset == BIGNUMBER) diff_thatoffset = (thatynote - n_upfactor*28000) - ybasic; else { thatybeam = ybasic + diff_thatoffset + n_upfactor*28000; if (!beam_upflag) { if (thatynote > thatybeam) diff_thatoffset += thatynote - thatybeam; } else if (thatynote < thatybeam) diff_thatoffset -= thatybeam - thatynote; } } /* If this is a split beam, check that it's still possible */ if (beam_splitOK && diff_thatoffset != BIGNUMBER && ((beam_upflag && diff_thatoffset < diff_thisoffset) || (!beam_upflag && diff_thatoffset > diff_thisoffset))) return FALSE; /* We're done if this is the last note */ if (thisnote == beam_last) break; /* Advance to next note, skipping grace notes unless we are doing a grace note beam. If we hit a rest, deal with it and then if it is the last note of the beam, exit from both loops */ for (;;) { adjustptr++; moff += thisnote->length; thisnote = misc_nextnote(thisnote, &ornament); if (out_gracenotes) moff++; else if (thisnote->length == 0) continue; /* Not a rest - go round the outer loop again */ if (thisnote->spitch != 0) break; /* Deal with rests */ xnote = out_findXoffset(moff) - adjusts[adjustptr]; ybasic = yfirst + mac_muldiv(beam_slope, xnote-xfirst, 1000); ybeam = ybasic + beam_offset; if (beam_upflag) { int yrest = (thisnote->yextra*main_stavemagn)/1000; if (thisnote->notetype > squaver) yrest += 4*main_stavemagn; if (longestnote > quaver) yrest += (longestnote - quaver)*4*main_stavemagn; if (yrest > ybeam) beam_offset += yrest - ybeam; } else { int yrest = 12*main_stavemagn + (thisnote->yextra*main_stavemagn)/1000; if (thisnote->notetype > quaver) yrest -= 4*main_stavemagn; if (longestnote > quaver) yrest -= (longestnote - quaver)*4*main_stavemagn; if (yrest < ybeam) beam_offset -= ybeam - yrest; } /* At the end of the beam, break out of 2 loops. Otherwise, go round the inner loop again. */ if (thisnote == beam_last) goto ENDBEAMLOOP; } } ENDBEAMLOOP: /* Hemidemisemiquavers require some additional space */ if (hemidemisemiquavers) { beam_offset += n_upfactor*1000; diff_thisoffset += n_upfactor*1000; if (diff_thatoffset != BIGNUMBER) diff_thatoffset -= n_upfactor*1000; } /* If notes on the other side of the beam have been successfully processed, use the compromise offset. The flag is still TRUE if none have been encountered, so we set it FALSE to save wasting time with additional processing in later routines. */ if (beam_splitOK && diff_thatoffset != BIGNUMBER) beam_offset = (diff_thisoffset + diff_thatoffset)/2; else beam_splitOK = FALSE; /* this is the normal case! */ return TRUE; } /************************************************* * Draw a set of beams * *************************************************/ /* The coordinates for the start of the beam are in global variables (for use when computing stem lengths). Arguments: xright x-coordinate for the right-hand end adjusts the x-adjusts for the notes longestnote the longest note in the beam lastopposite TRUE if the last note is on the opposite side rightbreak2 flag for funny stub (see comment below) Returns: nothing */ static void DrawBeams(int xright, int *adjusts, int longestnote, BOOL lastopposite, BOOL rightbreak2) { int level, i; int lastlen = (len_minim*out_pnum)/out_pden; int throughlevel = longestnote - quaver + 1; int thisnotetype = longestnote + 1; int sladjust = mac_muldiv(75*main_stavemagn, n_fontsize, 1000000) + n_cueadjust; int sradjust = mac_muldiv(115*main_stavemagn, n_fontsize, 1000000) + n_cueadjust; uschar taildirflags[max_beamsize]; /* Add possible cue note adjustment into endpoints */ beam_firstX += n_cueadjust; xright += n_cueadjust; /* Adjust parameters for cue or grace notes */ if (n_fontsize != 10000) { int adjust = (14*(10000 - n_fontsize))/10; if (beam_upflag) beam_firstY -= adjust; else beam_firstY += adjust; } /* If we have drawn more than one beam, and there are notes on the other side of it, we must lengthen all of their stems. This code is obeyed even for one beam, as it then correctly sets the values to zero. */ if (beam_splitOK) { int adjust = (throughlevel-1)*3; b_notestr *p = beam_first; for (i = beam_count; i >= 1 ; i--) { beam_stemadjusts[i] = (((p->flags & nf_stemup) != 0) == beam_upflag)? 0 : adjust; p = misc_nextnote(p, NULL); while (p != NULL && p->spitch == 0) { p = misc_nextnote(p, NULL); i--; } } } /* If this is an accellerando or ritardando beam, just draw the appropriate lines; there should not be any beamlets, etc. The number of lines is in the beam_accrit variable (2 or 3); its sign indicates an acc or a rit. */ if (beam_accrit != 0) { int count = abs(beam_accrit); int sign = beam_accrit/count; for (i = 0; i < count; i++) { ps_beam(beam_firstX, xright, 1, i*sign); } beam_accrit = 0; return; } /* "Normal" beams - first draw beams which go right through all notes */ for (i = 1; i <= throughlevel; i++) { ps_beam(beam_firstX, xright, i, 0); lastlen /= 2; } /* Clear the flags which remember about subtail directions and opposites */ for (i = 0; i <= beam_count; i++) taildirflags[i] = 0; /* Now scan the notes and add internal beams or beamlets - thisnotetype contains the notetype for the beam under consideration. */ for (level = throughlevel+1; level <= 4; level++) { b_notestr *left = beam_first; b_notestr *postleft = left; int donesomething = FALSE; int notenumber = 1; int leftmoff = beam_firstmoff; int rightmoff = leftmoff; int adjustptr = 0; int firstbreak2 = FALSE; int leftdone = FALSE; int leftextended = FALSE; int rightextended = FALSE; /* Determine whether there is a second-level break after the very first note - this is a special (unusual) case */ do mac_advancechord(postleft); while (postleft->type == b_chord); if (postleft->type == b_tie) { postleft = (b_notestr *)((uschar *)postleft + length_table[b_tie]); if (postleft->type == b_Jump) postleft = (b_notestr *) ((uschar *)(((b_Jumpstr *)postleft)->next) + length_table[b_Jump]); } firstbreak2 = (postleft->type == b_beambreak2); /* Now scan the beam */ while (left != beam_last) { b_notestr *right = misc_nextnote(left, NULL); b_notestr *postright; int rightadjustptr = adjustptr + 1; int left_up = (left->flags & nf_stemup) != 0; int leftnotetype = left->notetype; int rightnotetype, right_up; rightmoff += left->length; /* Rests under beams are totally ignored, except that they must cause a beam break if longer than the note on their left; if beamendrests is on, a beam can end on a rest. We must also skip over grace notes when not doing a grace beam. */ while ((right->spitch == 0 && right != beam_last) || (right->length == 0 && !out_gracenotes)) { rightmoff += right->length; right = misc_nextnote(right, NULL); rightadjustptr++; } /* Set parameters for the right note, and find out if there is a secondary break after it. */ right_up = (right->spitch == 0)? left_up : (right->flags & nf_stemup) != 0; rightnotetype = right->notetype; postright = right; do mac_advancechord(postright); while (postright->type == b_chord); if (postright->type == b_tie) { postright = (b_notestr *)((uschar *)postright + length_table[b_tie]); if (postright->type == b_Jump) postright = (b_notestr *) ((uschar *)(((b_Jumpstr *)postright)->next) + length_table[b_Jump]); } rightbreak2 = (postright->type == b_beambreak2); /* Check for rest beyond right note and see if it requires a beam break. */ if (right != beam_last) { b_notestr *afterright = misc_nextnote(right, NULL); if (afterright->spitch == 0 && afterright->notetype < rightnotetype) rightbreak2 = TRUE; } /* If both notes longer than current, do nothing */ if (leftnotetype >= thisnotetype || rightnotetype >= thisnotetype) { int skipnote = FALSE; int XLadjust = 0; int XRadjust = 0; int Dlevel = level; donesomething = TRUE; /* note to keep going */ /* If both notes are shorter or equal to the current notetype, draw a complete beam at this level, unless we are at the first note and there is a beam break after it, or the notes are on opposite sides of the beam and are of different lengths or if the right note is a rest at the end of a bar. The right note can be a rest only at the end of the beam, either because of a continued beam at system end, or because of beamendrests. In the latter case we want to draw complete beamlets. */ if (leftnotetype >= thisnotetype && rightnotetype >= thisnotetype && !firstbreak2 && (left_up == right_up || leftnotetype == rightnotetype) && (right->spitch != 0 || !beam_overbeam || !out_lineendflag)) { int ns = beam_count - notenumber; /* for addressing stemadjusts */ int useopposite = FALSE; int xr; /* If the first note already has a beamlet drawn on the opposite side, then we must use the opposite side. */ if ((taildirflags[notenumber] & 4) != 0) useopposite = TRUE; else { /* If both notes are on the opposite side of the beam, draw the the beamlet on the opposite side. */ if (left_up != beam_upflag && right_up != beam_upflag) useopposite = TRUE; /* If the notes are on different sides of the beam, use the notehead side of the left-hand note, except at the very start of a beam. */ else if (left_up != right_up) useopposite = left_up != beam_upflag || left == beam_first; } /* If using the opposite side, adjust beamlet vertical position and flag the notes as having opposite side beamlets. Adjust stem lengths where necessary. Note that the stem length adjust vector goes back- wards. The value of ns addresses the righthand note. */ if (useopposite) { Dlevel = throughlevel - level + 1; taildirflags[notenumber] |= 4; taildirflags[notenumber+1] |= 4; if (left_up == beam_upflag && !leftextended) beam_stemadjusts[ns+1] += 3; if (right_up == beam_upflag) { beam_stemadjusts[ns] += 3; rightextended = TRUE; } } /* If not using the opposite side, there may still be stem length adjustments for notes with stems the other way. */ else { if (left_up != beam_upflag && !leftextended) beam_stemadjusts[ns+1] += 3; if (right_up != beam_upflag) { beam_stemadjusts[ns] += 3; rightextended = TRUE; } } /* Make adjustments to the x positions in all cases. Note that we test for a left-hand rest by the true pitch, as its spitch has been fudged to be like a real note. */ if (left_up && left->truepitch != 0) XLadjust = beam_Xcorrection; if (right_up || right->spitch == 0) XRadjust = beam_Xcorrection; /* If the right note is a rest, we must be at the end of a beam, beaming over a rest, so make the right hand end the same as the end of the main beams. */ xr = (right->spitch == 0)? xright : out_findXoffset(rightmoff) + sradjust + adjusts[rightadjustptr] + XRadjust; /* Now generate the beam */ ps_beam( out_findXoffset(leftmoff) + sladjust + adjusts[adjustptr] + XLadjust, xr, Dlevel, 0); taildirflags[notenumber] |= 1; taildirflags[notenumber+1] |= 2; leftdone = TRUE; } /* Only one note is shorter than the current note type, or, exceptionally, both are, but are on different sides of the beam and are of different lengths. Don't draw anything if the relevant note is a rest. */ else { /* If the left-hand note requires a beam at this level, then give it the part beam, pointing right, unless its beam has already been drawn. Note that the rest test must be on truepitch. We must set the correct flag for the final type, because on the screen the ends get moved left/right as a result of it (and printer driver output). */ if (leftnotetype >= thisnotetype && !leftdone && left->truepitch != 0) { int x = out_findXoffset(leftmoff) + adjusts[adjustptr] + sladjust + (left_up? beam_Xcorrection : 0); if (left_up != beam_upflag) Dlevel = throughlevel - level + 1; ps_beam(x, x + mac_muldiv(curmovt->beamflaglength, main_stavemagn, 1000), Dlevel, 0); taildirflags[notenumber] |= 1; } /* If the right hand note requires a beam at this level, give it a part beam pointing left, and then skip a note. Same comment about the flags. */ if (rightnotetype >= thisnotetype && right->spitch != 0 && (right == beam_last || rightbreak2 || ((misc_nextnote(right, NULL))->notetype < rightnotetype && (rightmoff%lastlen != 0 || (taildirflags[notenumber+1] & 3) == 2)))) { int x = out_findXoffset(rightmoff) + adjusts[rightadjustptr] + sradjust + (right_up? beam_Xcorrection : 0); if (right_up != beam_upflag) Dlevel = throughlevel - level + 1; ps_beam(x - mac_muldiv(curmovt->beamflaglength, main_stavemagn, 1000), x, Dlevel, 0); taildirflags[notenumber+1] |= 2; skipnote = TRUE; } leftdone = FALSE; /* New left note has no leftwards beam(let) */ } /* Skip a note if flag has been set to do so or if secondary break */ if ((skipnote || rightbreak2) && right != beam_last) { left = right; leftmoff = rightmoff; right = misc_nextnote(right, NULL); rightmoff += left->length; rightadjustptr++; while ((right->spitch == 0 && right != beam_last) || (right->length == 0 && !out_gracenotes)) { rightmoff += right->length; right = misc_nextnote(right, NULL); rightadjustptr++; } leftdone = FALSE; leftextended = rightextended; rightextended = FALSE; notenumber++; } } /* Advance left to end of group and loop for next pair */ left = right; leftextended = rightextended; rightextended = FALSE; leftmoff = rightmoff; adjustptr = rightadjustptr; notenumber++; /* If we have had a break after the first note of the beam, set up as though just done a pair, in case it's a 2-note beam (weird notation!), and then clear the flag. */ if (firstbreak2) { rightbreak2 = TRUE; firstbreak2 = FALSE; } } /* If there was a beam break immediately before the last note of the beamed group, then we need to draw a short beam pointing to the left on the last note. This is an unusual special case; normally beam breaks occur in the middle of groups. It can also occur at the start of a stave on a continued beam that has only one note in the new bar. Check for a rest, as this can happen when a beam over a barline occurs at the end of a system and the last thing in the first bar is a rest. Can also happen when beamendrests is set. */ if (rightbreak2 && left->notetype >= thisnotetype && left->spitch != 0) { int x = out_findXoffset(leftmoff) + adjusts[adjustptr] + sradjust + ((beam_upflag && !lastopposite)? beam_Xcorrection: 0); ps_beam(x - mac_muldiv(curmovt->beamflaglength, main_stavemagn, 1000), x, level, 0); } /* Move on to next note type and loop, unless seen no shorter notes */ thisnotetype++; lastlen /= 2; if (!donesomething) break; } } /************************************************* * Set up Beaming * *************************************************/ /* This function is called at the start of a potential sequence of beamed notes. It must test whether beaming is possible, and if so, output the beams and set the beam line parameters for adjusting the tails of the actual notes. Various other parameters are also set up. This function is also called during paginating, from page_setcont(), when it discovers the flag for beams crossing bar lines at the end of a system. The purpose of this is to determine the slope for the beam so that it can be set up in the bar_cont->overbeam structure for the start of the next system. Various global variables are fudged up when this happens, and the "nodraw" flag is set true. Arguments: p point to the start of the beam moff the musical offset nodraw see comment above (if TRUE, don't draw) restatstart TRUE if there is a rest at the start of the beam Returns: TRUE if beaming is set up; FALSE otherwise. */ BOOL out_setupbeam(b_notestr *p, int moff, BOOL nodraw, BOOL restatstart) { b_notestr *pp = p + 1; b_notestr *lastp = p; b_notestr *lastinbar = NULL; int overbarcount = 0; int type = pp->type; int currentmoff = moff; int longestnote = p->notetype; /* a secondary beam break forces this */ int i, xright, yright; BOOL lastopposite; BOOL rightbreak2 = FALSE; int adjust = 0; int lastadjust = 0; int lastmoff = 0; int lastmoffinbar = 0; int pendingrests = 0; int trailingrests = 0; int adjustptr = 1; int adjusts[50]; DEBUG(("out_setupbeam() start\n")); adjusts[0] = out_Xadjustment; beam_count = 1; beam_first = beam_last = p; beam_firstmoff = beam_lastmoff = moff; beam_overbeam = FALSE; /* The stem direction is determined when the notes are read in. */ beam_upflag = n_upflag; /* Scan to find end of beam. We have to use gotos to jump out of the loop from within the switch. */ for (;;) { int included; switch (type) { case b_End: if (!((b_Endstr *)pp)->overbeam || beam_overbeam) goto ENDBEAM; /* The bar line has been flagged for continuation of a beam over it. If a subsequent bar exists, its data will follow on immediately after this one's, so we can just allow the continuation to happen, after noting the fact. */ if (out_bar < curmovt->barcount) { stavestr *ss = curmovt->stavetable[out_stave]; if (ss == NULL || ss->barindex[out_bar+1] == NULL) goto ENDBEAM; beam_overbeam = TRUE; overbarcount = adjust = 0; lastinbar = lastp; /* May point to a rest */ lastmoffinbar = lastmoff; } break; case b_Jump: pp = (b_notestr *)(((b_Jumpstr *)pp)->next); break; case b_note: included = TRUE; if (out_gracenotes) { if (pp->length != 0) goto ENDBEAM; } else { if (pp->length == 0) included = FALSE; } if (included) { int notetype = pp->notetype; if (notetype < quaver) goto ENDBEAM; if (lastp->length != 0) currentmoff += lastp->length; else currentmoff++; adjusts[adjustptr] = lastadjust = adjust + out_grace_fudge; if (pp->spitch != 0 || curmovt->beamendrests) { beam_lastmoff = currentmoff; beam_last = pp; if (notetype < longestnote) longestnote = notetype; /* for full beams */ if (pp->spitch == 0) trailingrests++; else trailingrests = 0; pendingrests = 0; } else pendingrests++; beam_count++; overbarcount++; lastp = pp; lastmoff = currentmoff; } adjustptr++; adjust = 0; break; case b_beambreak: case b_reset: goto ENDBEAM; case b_beambreak2: { int j = quaver - 1 + ((b_beambreak2str *)pp)->value; if (j < longestnote) longestnote = j; } break; /* Set up move amount in case the next thing is a note. We need to keep track of movements to get the beams moved too. */ case b_move: adjust = ((b_movestr *)pp)->x; break; /* Miscellaneous things that are permitted in the middle of beams. If it's a printing thing, cancel any pending move, since that will apply to the thing, not the following note. */ case b_dotbar: case b_clef: case b_lrepeat: case b_rrepeat: case b_comma: case b_caesura: case b_tick: adjust = 0; break; } /* Move on to the next item */ pp = (b_notestr *)((uschar *)pp + length_table[type]); type = pp->type; } /* Label to jump to to get out of the switch in the loop */ ENDBEAM: /* Correct the count for rests that might have been beamed over, but weren't. */ beam_count -= pendingrests; /* There must be at least two notes, except in the case of a continued beam at the start of a system. In this case, a forced slope will be set. */ if (beam_last == beam_first && !beam_continued) { DEBUG(("out_setupbeam() FALSE\n")); return FALSE; } /* Catch the case where beaming over the barline wasn't. If it's the paginating case, just return. */ if (beam_overbeam && overbarcount <= 0) { if (nodraw) { DEBUG(("out_setupbeam() FALSE\n")); return FALSE; } beam_overbeam = FALSE; } /* Note if the last note's stem goes the opposite way. A rest must be treated as an upstem so that the beam gets drawn past it. */ if (beam_last->spitch == 0) lastopposite = !beam_upflag; else lastopposite = (((beam_last->flags) & nf_stemup) != 0) != beam_upflag; /* Compute the xcorrection for any notes with stems up, and for notes on the opposite side of the beam. */ beam_Xcorrection = mac_muldiv(51*main_stavemagn, n_fontsize, 100000); /* Set up the coordinates of the left-hand end of the beam, relative to the stave base and the start of the bar (with the y coordinate going upwards). The x correction of 0.75 point is required because the downward stems start that far from the note's origin. */ beam_firstX = out_findXoffset(beam_firstmoff) + adjusts[0] + mac_muldiv(n_fontsize, 75*main_stavemagn, 1000000); beam_firstpitch = p->spitch; if (beam_upflag && !restatstart) beam_firstX += beam_Xcorrection; mac_couplepitch(beam_firstpitch, p->flags); beam_firstY = (beam_firstpitch - 128 + n_upfactor*14)*main_stavemagn; /* This "loop", which computes a slope and an offset, is obeyed twice if on the first pass we fail to arrange for notes on the opposite side of the beam, and therefore have to do it all again. Exit should always be via "break", but code it with a counter, just in case. */ for (i = 0; i < 2; i++) { int j, pitchright; BOOL offsetOK = FALSE; /* Set up coordinates of end notes and default parameters. The 0.115 point correction is the 0.75 pt offset to the left of a downward stem, plus the 0.4pt thickness of stems. */ xright = out_findXoffset(beam_lastmoff) + lastadjust + mac_muldiv(n_fontsize, 115*main_stavemagn, 1000000); if (beam_upflag != lastopposite) xright += beam_Xcorrection; pitchright = beam_last->spitch; mac_couplepitch(pitchright, beam_last->flags); yright = (pitchright - 128 + (((beam_last->flags & nf_stemup) != 0)? 14 : -14))*main_stavemagn; /* Now we must select a slope for the beam. First check to see if something has been forced. */ if (beam_forceslope != BIGNUMBER) beam_slope = beam_forceslope; /* If there is only one real note in the beam (can happen with leading and/or trailing rests) the slope is horizontal. */ else if (beam_count - trailingrests < 2) beam_slope = 0; /* If there are only two notes in the beam, we are just going to join the ends of their stems. If the stems are in the same direction, calculate a slope without taking into account any stem extensions. Then an extension on either note moves the beam outwards, without changing its slope. For stems in opposite directions, however, we must take note of the stem extensions, and further fudge the right-hand y coordinate because the beam offset will be taken from the left-hand note's stem extension. For non-opposite notes whose stems stick out above or below the stave, we shorten the stems slightly if they are not already so shortened. */ else if (beam_count == 2) { int yyright = yright; int yyleft = beam_firstY; if (lastopposite) { int yleftadjust = beam_first->yextra; int yrightadjust = beam_last->yextra; yyleft += n_upfactor*yleftadjust; yyright -= n_upfactor*yrightadjust; yright -= n_upfactor*(yleftadjust + yrightadjust); } beam_slope = mac_muldiv(1000, yyright-yyleft, xright-beam_firstX); /* Apply a maximum slope */ if (abs(beam_slope) > curmovt->maxbeamslope1) beam_slope = (beam_slope/abs(beam_slope))*curmovt->maxbeamslope1; } /* More than two notes in the beam. Select a slope using the heuristics in the findslope() routine with some additional constraints. */ else { int slope = findslope(); int yslope = beam_firstY + mac_muldiv(slope, xright-beam_firstX, 1000); /* If the slope supplied by the heuristic is zero, or if it is less than the slope of the line joining the end notes, use it. Otherwise join the end notes. (Not strictly true for split-sided beams.) */ if (slope == 0 || (slope > 0 && yslope < yright) || (slope < 0 && yslope > yright)) yright = yslope; beam_slope = mac_muldiv(1000, yright-beam_firstY, xright-beam_firstX); /* When the final note is on the other side of the beam, it is helpful to keep the slope down to a smaller maximum to enable more cases to be fitted in without retries. */ if (lastopposite && abs(beam_slope) > 200) beam_slope = mac_muldiv(beam_slope, 200, abs(beam_slope)); } /* Inner loop for retrying with a smaller maximum slope when we fail to find an offset for a beam with notes on either side of it. For ordinary beams, the loop will be broken on the first pass. */ for (j = 0; j < 5; j++) { int ornament = (n_ornament == NULL)? -1 : n_ornament->ornament; if ((offsetOK = ComputeBeamOffset(ornament, lastopposite, adjusts, longestnote)) == TRUE) break; beam_slope = n_upfactor*retryslopes[j]; } /* Break out of the outer loop if we have successfully found an offset. Otherwise, we have to put all notes on the same side of the beam, and give an error message. Then try again -- success is now assured! */ if (offsetOK) break; else { b_notestr *p = beam_first; int flag = beam_upflag? nf_stemup : 0; for (;;) { if ((p->flags & nf_stemup) != flag) read_resetstemflag(p, flag); if (p == beam_last) break; p = misc_nextnote(p, NULL); } error_moan(61, out_bar, out_stave); lastopposite = FALSE; } } /* Reset the forced slope */ beam_forceslope = BIGNUMBER; /* Incorporate the computed and manual adjustment offset into the first y position. */ if (beam_upflag) { if (beam_offsetadjust < -minoffset) beam_offsetadjust = -minoffset; } else if (beam_offsetadjust > minoffset) beam_offsetadjust = minoffset; beam_firstY += beam_offset + beam_offsetadjust; beam_offsetadjust = 0; /* If beam_continued is set, it means we are drawing a continued beam at the start of a new system. We need to extend it a little bit to the left. Do this by adjusting firstX and firstY. Also set the longestnote value for the whole beam, to control how many beams are extended left, and set rightbreak2 so that if there is only one note, and it is shorter than the main beams, a stub to the left is drawn. */ if (beam_continued) { int adjust = 4 * main_stavemagn; if (beam_upflag) adjust += beam_Xcorrection; beam_firstX -= adjust; beam_firstY -= (beam_slope * adjust) / 1000; longestnote = (bar_cont->overbeam)->longestnote; if (beam_count == 1) rightbreak2 = TRUE; } /* Now we can draw the beams, adjusting for grace or cue notes. We don't draw in the case of being called while paginating, while if we are at the end of a line and drawing a continued beam, we must chop it. */ if (!nodraw) { if (beam_overbeam && out_lineendflag) { beam_lastmoff = lastmoffinbar; beam_last = lastinbar; xright = out_barlinex - 300 - out_barx; } DrawBeams(xright, adjusts, longestnote, lastopposite, rightbreak2); } /* If this beam extends over the bar line, set up the data for the start of the next bar, and cancel the special flag, because it affects the behaviour of various subroutines. */ if (beam_overbeam) { obeamstr *b; if (bar_cont->overbeam == NULL) bar_cont->overbeam = store_Xget(sizeof(obeamstr)); b = bar_cont->overbeam; b->firstX = beam_firstX - out_poslast->xoff - out_sysblock->barlinewidth; b->firstY = beam_firstY; b->slope = beam_slope; b->count = overbarcount; b->longestnote = longestnote; b->Xcorrection = beam_Xcorrection; b->splitOK = beam_splitOK; b->upflag = beam_upflag; beam_overbeam = FALSE; } /* A yield of TRUE indicates that beaming is now in force */ DEBUG(("out_setupbeam() TRUE\n")); return TRUE; } /* End of setbeam.c */ pmw-4.27/src/rdargs.c0000644000222100022210000003765312247665016012603 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2009 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: April 2009 */ /************************************************* * Command Line Decoding Routines (rdargs) * *************************************************/ /* Command line argument decoding. These routines are not specific to PMW. They provide a generalized means of decoding a command line that consists of keyword/value pairs. The style is very much that of the Tripos operating system. The externally-visible routine is called rdargs(), and it takes the following arguments: (1) int argc and (2) char **argv are passed on directly from main(); (3) char *keystring is a string of keywords, possibly qualified, in the form keyitem[,keyitem]* where each keyitem is of the form keyname[=keyname][/a][/k][/n|/s][/] Keynames separated by '=' are synonyms. The flags are as follows: /a Item must always be present in the command line. /k Item, if present, must be keyed. /n Item expects numeric argument(s). /s Item has no argument; it is a switch. / Item may have up to arguments, where is a single digit. A default value can be given for a numerical argument by following /n with '=' and a number, e.g. /n=0. The default will be returned if the keyword is present without a numeric value following it. A typical string might be "from/a,to/k,debug=d/s". Non-keyed items may only appear in the command line if all preceding keyed items in the keylist have been satisfied. A key may be specified as a single question mark. When this is done, any keyword specified on the command line is accepted, and its value is the particular keyword. This provides a method for dealing with Unix options strings starting with a minus and containing an arbitrary collection of characters. A question mark must always be the last keyword, since anything matches it, and the key string is searched from left to right. (4) arg_results *results is a pointer to a vector of structures of type arg_results. There must be as many elements in the vector as there are keyitems in the string, plus extras for any that expect multiple arguments, and in any event, there must be a minimum of three, as in the event of certain errors, the space is used for constructing error messages and returning pointers to them. Each element contains: (a) int presence, which, on successful return, contains one of the values arg_present_not item was not present on the command line arg_present_keyed item was present and was keyed arg_present_unkeyed item was present and was not keyed (b) int number and char *text, which contains either a number, for a numerical or switch argument, or a pointer for a string. For non-existent arguments the number field is set to zero (i.e. FALSE for switches) and the text field is set to NULL. The presence field need only be inspected for numerical arguments if it is necessary to distinguish between zero supplied explicitly and zero defaulted. For multiply-valued items, the maximum number of results slots is reserved. For example, if the keystring is "from/4", then slots 0 to 3 are associated with the potential four values for the "from" argument. How many there are can be detected by inspecting the presence values. Unkeyed multiple values cannot be split by keyed values, e.g. the string "a b -to c d" is not a valid for a keystring "from/3,to/k". The "d" item will be faulted. If rdargs is successful, it returns zero. Otherwise it returns non-zero, and the first two results elements contain pointers in their text fields to two error message strings. If the error involves a particular keyword, the first string contains that keyword. The yield value is -1 if the error is not related to a particular input line string; otherwise it contains the index of the string at fault. */ #include #include #include #include "rdargs.h" #define FALSE 0 #define TRUE 1 /* Flags for key types */ #define rdargflag_a 1*256 #define rdargflag_k 2*256 #define rdargflag_s 4*256 #define rdargflag_n 8*256 #define rdargflag_q 16*256 #define rdargflag_d 32*256 /* Mask for presence value of control word */ #define argflag_presence_mask 255 /************************************************* * Search keystring for i-th keyword * *************************************************/ /* Given the index of a key (counting from zero), find the name of the key. This routine is used only for generating the name in cases of error. Arguments: number key number keys the key string word a vector in which to place the name Returns: word */ static char * findkey(int number, char *keys, char *word) { int ch, i; int j = 0; int k = 0; word[k++] = '-'; for (i = 0; i < number; i++) while (keys[j++] != ','); while ((ch = keys[j++]) != 0 && ch != ',' && ch != '/' && ch != '=') word[k++] = ch; word[k] = 0; return word; } /************************************************* * Search keystring for keyword * *************************************************/ /* Given a keyword starting with "-", find its index in the keystring. Keys are separated by ',' in the string, and there may be syonyms separated by '='. Arguments: keys the keystring s the argument Returns: the key index number, or -1 if not found */ static int findarg(char *keys, char *s) { int matching = TRUE; int argnum = 0; int i = 0; int j = 1; int ch; while ((ch = keys[i++]) != 0) { if (matching) { if (ch == '?') return argnum; if ((ch == '=' || ch == '/' || ch == ',') && s[j] == 0) return argnum; if (ch != s[j++]) matching = FALSE; } if (ch == ',' || ch == '=') { matching = TRUE; j = 1; if (ch == ',') argnum++; } } if (matching && s[j] == 0) return argnum; return -1; } /************************************************* * Set up for error return * *************************************************/ /* Copy the keyword name and error message into the first two return string slots. This function is the value of many "return" statements when errors are detected. Arguments: results pointer to the results vector arg argument name message error message Returns: 1, suitable for passing back as an error return */ static int arg_error(arg_result *results, char *arg, char *message) { results[0].text = arg; results[1].text = message; return 1; } /************************************************* * Set up zero or more values * *************************************************/ /* Zero values are allowed only if the defaulted flag is set. Arguments: argc the main argc value argv the main argv value a_argindex pointer to the argument index value, updated a_argnum pointer to the results index value, updated argflags argument type flags plus value count results the results vector arg the key name (for error message) present_value the value to set in the presence field of the result (arg_present_keyed or arg_present_unkeyed) Returns: zero on success, non-zero for error */ static int arg_setup_values(int argc, char **argv, int *a_argindex, int *a_argnum, int argflags, arg_result *results, char *arg, int present_value) { int argnum = *a_argnum; int argindex = *a_argindex; int argcount = (argflags & 0x00FF0000) >> 16; /* max args */ if (argcount == 0) argcount = 1; /* default is 1 */ /* Loop to deal with the arguments */ for (;;) { char *nextstring; results[argnum].presence = present_value; /* Deal with a numerical or string value -- but if the first time for a defaulted item, skip so as to let the optional test work. */ if ((argflags & rdargflag_d) != 0) /* Default value exists */ { argflags &= ~rdargflag_d; argcount++; /* Go round the loop once more */ } else if ((argflags & rdargflag_n) != 0) /* Numeric value */ { char *endptr; results[argnum++].number = (int)strtol(argv[argindex++], &endptr, 0); if (*endptr) return arg_error(results, arg, "requires a numerical argument"), argindex; } else results[argnum++].text = argv[argindex++]; /* If there are no more arguments on the line, or if we have read the maximum number for this keyword, break out of the loop. */ if (argindex >= argc || (--argcount) < 1) break; /* Examine the next item on the line. If a numerical argument is expected and it begins with a digit or a minus sign, followed by a digit, accept it. Otherwise accept it as a string unless it begins with a minus sign. */ nextstring = argv[argindex]; if ((argflags & rdargflag_n) != 0) { if (!isdigit(nextstring[0]) && (nextstring[0] != '-' || !isdigit(nextstring[1]))) break; } else if (nextstring[0] == '-') break; } *a_argnum = argnum; /* Update where we are on the line */ *a_argindex = argindex; return 0; } /************************************************* * Decode argument line * *************************************************/ /* This is the procedure that is visible to the outside world. See comments at the head of the file for a specification. Arguments: argc the argc value from main() argv the argv value from main() keystring the defining keystring results where to put the results Returns: zero on success, non-zero on failure */ int rdargs(int argc, char **argv, char *keystring, arg_result *results) { int keyoffset[64]; int argmax = 0; int argindex = 1; int argcount = 1; int keynumber = 0; int i, ch; /* We first scan the key string and create, in the presence field, flags indicating which kind of key it is. The flags are disjoint from the presence flags, which occupy the bottom byte. The assumption is that there is at least one key! */ results[0].presence = arg_present_not; results[0].number = 0; results[0].text = NULL; keyoffset[0] = 0; i = -1; while ((ch = keystring[++i]) != 0) { if (ch == '?') results[argmax].presence |= rdargflag_q; else if (ch == '/') switch(keystring[++i]) { case 'a': results[argmax].presence |= rdargflag_a; break; case 'k': results[argmax].presence |= rdargflag_k; break; case 's': results[argmax].presence |= rdargflag_s; break; case 'n': { results[argmax].presence |= rdargflag_n; if (keystring[i+1] == '=') { int n; results[argmax].presence |= rdargflag_d; /* flag default exists */ if (sscanf(keystring+i+2, "%d%n", &(results[argmax].number), &n) == 0) return arg_error(results, findkey(keynumber, keystring, (char *)(results+2)), "is followed by an unknown option"), -1; i += n + 1; } break; } default: if (isdigit(keystring[i])) { argcount = keystring[i] - '0'; if (argcount == 0) argcount = 1; results[argmax].presence |= argcount << 16; } else return arg_error(results, findkey(keynumber, keystring, (char *)(results+2)), "is followed by an unknown option"), -1; } else if (ch == ',') { int j; for (j = 1; j < argcount; j++) { results[++argmax].presence = argflag_presence_mask; results[argmax].number = 0; results[argmax].text = NULL; } results[++argmax].presence = arg_present_not; results[argmax].number = 0; results[argmax].text = NULL; keynumber++; keyoffset[keynumber] = argmax; argcount = 1; } } /* Check that no keyword has been specified with incompatible qualifiers */ for (i = 0; i <= argmax; i++) { int argflags = results[i].presence; int keynumber = 0, j; for (j = 0; j < 30; j++) if (keyoffset[j] == i) { keynumber = j; break; } if ((argflags & (rdargflag_s + rdargflag_n)) == rdargflag_s + rdargflag_n) return arg_error(results, findkey(keynumber, keystring, (char *)(results+2)), "is defined both as a switch and as a key for a numerical value"), -1; if ((argflags & rdargflag_s) && (argflags & 0x00FF0000) > 0x00010000) return arg_error(results, findkey(keynumber, keystring, (char *)(results+2)), "is defined as a switch with multiple arguments"), -1; } /* Loop checking items from the command line and assigning them to the appropriate arguments. */ while (argindex < argc) { char *arg = argv[argindex]; /* Key: find which and get its argument, if any */ if (arg[0] == '-') { int argnum = findarg(keystring, arg); int argflags; /* Check for unrecognized key */ if (argnum < 0) return arg_error(results, arg, "unknown"), argindex; /* Adjust argnum for previous keys with multiple values */ argnum = keyoffset[argnum]; /* Extract key type flags and and advance to point to the argument value(s). */ argflags = results[argnum].presence; if ((argflags & rdargflag_q) == 0) argindex++; /* Check for multiple occurrences */ if ((argflags & argflag_presence_mask) != 0) return arg_error(results, arg, "keyword specified twice"), argindex; /* If a switch, set value TRUE, otherwise check that at least one argument value is present if required, and then call the routine which sets up values, as specified. */ if ((argflags & rdargflag_s) != 0) { results[argnum].presence = arg_present_keyed; results[argnum].number = TRUE; } else { int rc; if (argindex >= argc && (argflags & rdargflag_d) == 0) return arg_error(results, arg, "requires an argument value"), argindex; rc = arg_setup_values(argc, argv, &argindex, &argnum, argflags, results, arg, arg_present_keyed); if (rc != 0) return rc; /* Error occurred */ } } /* Non-key: scan flags for the first unused normal or mandatory key which precedes any keyed items other than switches. This means that unkeyed items can only appear after any preceding keyed items have been explicitly specified. */ else { int rc; int argflags = 0; int argnum = -1; /* Scan argument list */ for (i = 0; i <= argmax; i++) { argflags = results[i].presence; /* If unused keyed item, break (error), else if not key, it's usable */ if ((argflags & argflag_presence_mask) == arg_present_not) { if ((argflags & rdargflag_k) != 0) break; if ((argflags & rdargflag_s) == 0) { argnum = i; break; } } } /* Check for usable item found */ if (argnum < 0) return arg_error(results, arg, "requires a keyword"), argindex; /* Set presence bit and call subroutine to set up argument value(s) as specified. */ rc = arg_setup_values(argc, argv, &argindex, &argnum, argflags, results, arg, arg_present_unkeyed); if (rc != 0) return rc; /* Error detected */ } } /* End of string reached: check for missing mandatory args. Other missing args have their values and the presence word set zero. */ for (i = 0; i <= argmax; i++) { int argflags = results[i].presence; int p = argflags & argflag_presence_mask; if (p == arg_present_not || p == argflag_presence_mask) { if ((argflags & rdargflag_a) == 0) { results[i].number = 0; results[i].presence = 0; } else { int keynumber = 0, j; for (j = 0; j < 30; j++) if (keyoffset[j] == i) { keynumber = j; break; } arg_error(results, findkey(keynumber, keystring, (char *)(results+2)), "is a mandatory keyword which is always required"); return 1; } } } /* Indicate successful decoding */ return 0; } /* End of rdargs.c */ pmw-4.27/src/string.c0000644000222100022210000011650212247665016012616 0ustar ph10ph10/************************************************* * The PMS Music Typesetter - 2nd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2013 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: December 2013 */ /* This file contains code for reading and processing strings. */ #include "pmwhdr.h" #include "readhdr.h" #define string_start_size 64 static BOOL in_string_check = FALSE; static uschar *music_escapes = US"bsmcQq#$%> 0) { if ((*(++pp) & 0xc0) != 0x80) return -1; } return n + 1; } /************************************************* * Read a string of any length * *************************************************/ /* The string may extend over more than one line; newlines count as spaces. Strings are expected to be in UTF-8 format, but for backwards compatibility, any non-UTF-8 bytes are taken as single 8-bit characters and converted to UTF-8. Arguments: none Returns: pointer to store containing the string */ uschar * string_read(void) { int p = 0; int size = string_start_size; uschar *s; sigch(); if (read_ch != '\"') { error_moan(10, "String in quotes"); return NULL; } s = store_Xget(size); next_ch(); while (read_ch != '\"' && read_ch != EOF) { /* Handle bytes with the top bit set */ if (read_ch > 0x7f) { uschar buffer[8]; uschar *pp = read_chptr - 1; /* Starting byte */ int n = check_utf8(pp); /* Length of UTF-8 character */ /* This byte is not the start of a UTF-8 character; convert it to a UTF-8 string. */ if (n < 1) { n = misc_ord2utf8(read_ch, buffer); pp = buffer; } /* This is a UTF-8 character; advance the character pointer */ else read_chptr += n - 1; /* Add the bytes to the string. */ memcpy(s+p, pp, n); p += n; } /* Bytes without the top bit are always one-byte characters. */ else s[p++] = (read_ch == '\n')? ' ' : read_ch; /* Ensure there's enough room for another full-length UTF-8 character */ if (p >= size-6) { int increment = (size > 1024)? 1024 : size; uschar *ss = store_Xget(size + increment); memcpy(ss, s, size); store_free(s); s = ss; size += increment; } next_ch(); } s[p] = 0; if (read_ch == EOF) { error_moan(23); return NULL; } next_ch(); return s; } /************************************************* * Check the escapes in a string & transpose * *************************************************/ /* This is called for all but PostScript strings on reading, so that any errors are given at that time. We set a flag (in_string_check) while handling escapes to ensure that the \a^ -> \a@ fudge works correctly. Character codes are checked for supported values, and those that are not supported in standardly encoded fonts are converted to use the Symbol font where possible. Another job of this function is to look for note letter transpositions in the string and to carry them at at this time. Other escapes are re-processed later, at output time. Argument: the string, in dynamic store Returns: the string, may be modified and/or copied */ uschar * string_check(uschar *s) { int c; uschar *ss, *tt; /* If there are any transposed note names in the string, we must build a new string with the transpositions done. */ if ((tt = Ustrstr(s, "\\t")) != NULL) { int p = tt - s; int size = Ustrlen(s) * 2 + 14; ss = store_Xget(size); memcpy(ss, s, p); for (s = tt; *s != 0; s++) { int i, pitch, abspitch; int note, acc; if (p >= size - 10) { int increment = (size > 1024)? 1024 : size; uschar *sss = store_Xget(size + increment); memcpy(sss, ss, size); store_free(ss); ss = sss; size += increment; } if (*s != '\\' || s[1] != 't' || s[2] < 'A' || s[2] > 'G') { ss[p++] = *s; continue; } note = s[2]; s += 2; acc = ac_none; if (s[1] == '#') acc = ac_sharp; else if (s[1] == '$') acc = ac_flat; else if (s[1] == '%') acc = ac_natural; if (acc != ac_none) s++; pitch = 36 + read_basicpitch[note - 'A']; abspitch = pitch + read_accpitch[acc] - 2; /* If we are not in a stave, the appropriate values for the transposing function should have been fudged up by the heading reading code. */ if (stave_transpose < max_transpose) abspitch = transpose_note( abspitch, /* input absolute pitch */ &pitch, /* for output new pitch */ &acc, /* for output accidental */ 0, /* do not force an output accidental */ TRUE, /* force addidental - not relevant for text */ TRUE, /* single note - not relevant for text */ TRUE, /* texttranspose */ 0); /* tie count - not relevant for text */ /* Retrieve a pitch within an octave */ pitch %= 12; for (i = 0; i < 6; i++) { if (pitch == read_basicpitch[i]) break; } ss[p++] = 'A' + i; /* Handle accidentals. Double sharps and double flats are never seen, so change to the appropriate enharmonic note. We should only ever get "sensible" double accidentals. */ switch (acc) { case ac_sharp: Ustrcpy(ss+p, "\\*u*#*d*<\\"); p += 10; break; case ac_flat: Ustrcpy(ss+p, "\\*$*<\\"); p += 6; break; #ifdef NEVER /* This code retains a natural if that note is sharpened or flattened in the new key signature, but in practice that isn't what is actually seen in printed music, where naturals never occur in chord names. */ case ac_natural: knumacc = main_keysigtable[stave_key_tp]; /* Number of accidentals */ if (abs(knumacc) <= 7) /* Something odd otherwise */ { uschar *nlist = (knumacc > 0)? US"FCGDAEB" : US"BEADGCF"; for (i = 0; i < abs(knumacc); i++) { if (ss[p-1] == nlist[i]) break; } if (i < abs(knumacc)) { Ustrcpy(ss+p, "\\*%*<\\"); p += 6; } } break; #endif case ac_dsharp: if (ss[p-1] == 'G') ss[p-1] = 'A'; else ss[p-1] += 1; break; case ac_dflat: if (ss[p-1] == 'A') ss[p-1] = 'G'; else ss[p-1] -= 1; break; } } ss[p] = 0; s = ss; } /* Now do an escape check on the (new) string, but don't make any changes to it. This gets any errors early. The setting of in_string_check is tested in string_escape() to cause an error for \@, which is used internally. */ ss = s; /* The string to return */ in_string_check = TRUE; while ((c = *s++) != 0) { if (c == '\\') { int nf, r; uschar xs[80]; s = string_escape(s, xs, &nf, &r); } } in_string_check = FALSE; return ss; } /************************************************* * Get an integer in a string * *************************************************/ /* The pointer is updated to point past the end of the number. Argument: pointer to pointer to the first digit (updated) Returns: the integer */ static int string_integer(uschar **p) { uschar *s = *p; int n = 0; while (isdigit(*s)) n = (n * 10) + (*s++ - '0'); if (n < 32 || n > 255) { error_moan(53); n = 32; } *p = s; return n; } /************************************************* * Decode string escape * *************************************************/ /* This function is called during the checking process when a string is first read (to catch escape errors early), in which case in_string_check is TRUE. It is also called again later when the string is processed for real. On entry, the pointer is past the initial '\'; return it past the whole escape. The data returned is: In ss, a string to be printed, which can be empty; In font, a font to change to before printing, set to -1 for no change; a pseudo-font is used for small caps; In revert, a flag saying whether to revert to the old font after printing - FALSE for font change escapes and TRUE for special uschar escapes. This function is now a horrible mess. It could do with a good Spring Clean. Arguments: s the escape, after the initial '\' ss where to return string data ) see font where to return font data ) comment revert where to return font revert data ) above Returns: see above */ uschar * string_escape(uschar *s, uschar *ss, int *font, int *revert) { uschar *escape_uschar = s - 1; uschar *error_argS = NULL; uschar escbuffer[8]; int error_argN = 0; int error_number = 54; int unicode = -1; int bot, top, ee; *font = -1; *ss = 0; *revert = FALSE; /* Deal with font changes */ if (Ustrncmp(s, "rm\\", 3) == 0) { *font = font_rm; return s+3; } if (Ustrncmp(s, "it\\", 3) == 0) { *font = font_it; return s+3; } if (Ustrncmp(s, "bf\\", 3) == 0) { *font = font_bf; return s+3; } if (Ustrncmp(s, "bi\\", 3) == 0) { *font = font_bi; return s+3; } if (Ustrncmp(s, "sy\\", 3) == 0) { *font = font_sy; return s+3; } if (Ustrncmp(s, "mu\\", 3) == 0) { *font = font_mu; return s+3; } if (Ustrncmp(s, "mf\\", 3) == 0) { *font = font_mf; return s+3; } if (Ustrncmp(s, "sc\\", 3) == 0) { *font = font_sc; return s+3; } /* 'x' is overloaded: if it is followed by a small number, it's a font change to an extra font. Otherwise it is a character number, specified in hexadecimal, which we deal with later on. */ if (*s == 'x' && isdigit(s[1])) { if (s[2] == '\\') { *font = font_xx + s[1] - '1'; return s+3; } else if (isdigit(s[2]) && s[3] == '\\') { int n = 10*(s[1] - '0') + s[2] - '0'; if (n <= MaxExtraFont) { *font = font_xx + n - 1; return s+4; } } } /* If not a font change, deal with other escapes */ *revert = TRUE; /* Deal with ligatures */ if (Ustrncmp(s, "fi", 2) == 0) { unicode = 0xfb01; s += 2; } else if (Ustrncmp(s, "fl", 2) == 0) { unicode = 0xfb02; s += 2; } else if (Ustrncmp(s, "ss", 2) == 0) { unicode = 0x00df; s += 2; } else if (Ustrncmp(s, "---", 3) == 0) { unicode = 0x2014; s += 3; } else if (Ustrncmp(s, "--", 2) == 0) { unicode = 0x2013; s += 2; } else switch (*s) { case 0: /* Backslash as last uschar is ignored */ break; case '@': /* starts within-string comment */ while (*(++s) != '\\' && *s != 0); if (*s == '\\') s++; break; case '\\': *ss++ = *s++; /* \\ gives \ */ break; case '\'': /* \' gives ascii quote */ case '`': /* \` gives ascii grave */ *ss++ = *s; s++; break; case '*': /* \* escapes into the music font */ if (*(++s) == '*') { *font = font_mf; s++; } else *font = font_mu; /* Loop for multiple musical escapes */ for (;;) { uschar *p; if ((p = Ustrchr(music_escapes, *s)) != NULL) { int n = p - music_escapes; *ss++ = music_escape_values[n]; if (*(++s) == '.' && n <= 4) /* Allow '.' after bsmcq */ { *ss++ = 63; s++; } } else if (isdigit(*s)) ss += misc_ord2utf8(string_integer(&s), ss); else if (*s == 'x' && isxdigit(s[1])) { int ucode = 0; s++;; while (isxdigit(*s)) { if (isdigit(*s)) ucode = (ucode << 4) | (*s - '0'); else ucode = (ucode << 4) | (tolower(*s) - 'a' + 10); s++; } ss += misc_ord2utf8(ucode, ss); } else { error_argS = US"after \\* or \\** a music character code or number is"; break; } if (*s == '\\') { s++; break; } if (*s++ != '*') { error_argS = US"\"\\\" or \"*\""; break; } if (*font == font_mf && *s++ != '*') { error_argS = US"\"*\""; break; } } break; /* Non-musical escapes */ case '?': unicode = 0x00bf; s++; break; /* Spanish question mark */ case 'p': if (*(++s) == '\\') { ss += sprintf(CS ss, "%d", curpage->number); s++; } else if (*s == 'o' && s[1] == '\\') { if ((curpage->number & 1) != 0) ss += sprintf(CS ss, "%d", curpage->number); s += 2; } else if (*s == 'e' && s[1] == '\\') { if ((curpage->number & 1) == 0) ss += sprintf(CS ss, "%d", curpage->number); s += 2; } else error_argS = US"\\p\\, \\po\\, or \\pe\\"; break; case 's': if (Ustrncmp(s+1, "e\\", 2) == 0) { s += 3; if ((curpage->number & 1) == 0) for (;;) { while (*s != '\\' && *s != 0) s++; if (*s == 0) break; if (Ustrncmp(++s, "e\\", 2) == 0) { s += 2; break; } } } else if (Ustrncmp(s+1, "o\\", 2) == 0) { s += 3; if ((curpage->number & 1) != 0) for (;;) { while (*s != '\\' && *s != 0) s++; if (*s == 0) break; if (Ustrncmp(++s, "o\\", 2) == 0) { s += 2; break; } } } else if (isdigit(s[1])) { s++; *font = font_sy; *ss++ = string_integer(&s); if (*s++ != '\\') error_argS = US"\\"; } else if (s[1] == 'x' && isxdigit(s[2])) { *font = font_sy; unicode = 0; s += 2; while (isxdigit(*s)) { if (isdigit(*s)) unicode = (unicode << 4) | (*s - '0'); else unicode = (unicode << 4) | (tolower(*s) - 'a' + 10); s++; } if (*s++ != '\\') error_argS = US"\\"; } else goto ACCENTED; break; /* The case of \x for a font change to an extra font is handled above; here we handle it as an escape for a Unicode character. */ case 'x': unicode = 0; s++; while (isxdigit(*s)) { if (isdigit(*s)) unicode = (unicode << 4) | (*s - '0'); else unicode = (unicode << 4) | (tolower(*s) - 'a' + 10); s++; } if (*s != '\\') { error_number = 27; error_argN = *s; } else s++; break; /* 's' is not in this list because of \se\ and \so\. There will be a goto from above when \s is followed by something else. */ case 'a': case 'c': case 'd': case 'e': case 'g': case 'h': case 'i': case 'j': case 'l': case 'n': case 'o': case 'r': case 't': case 'u': case 'w': case 'y': case 'z': case 'A': case 'C': case 'D': case 'E': case 'G': case 'H': case 'J': case 'I': case 'L': case 'N': case 'O': case 'R': case 'S': case 'T': case 'U': case 'W': case 'Y': case 'Z': ACCENTED: ee = *s << 8; /* There is a problem with escapes using circumflex, because this is also used to split up underlay strings for centering. This is dealt with as follows: All strings are checked as they are read. If we are in the string_check() function, \@ is an error, because it is not defined for the user to use. After that test, if we see \^ we turn it into \@. Thus, when the string is interpreted for escapes when actually being processed for display, it will see \@ and not \^. */ if (*(++s) == '@' && in_string_check) { error_number = 125; error_argS = s - 1; break; } if (*s == '^') *s = '@'; /* Should only ever see when checking */ ee |= *s++; /* Pick up a 2-character escape code */ /* \c] == \C] is special; it gives copyright from the Symbol font */ if (ee == ('c' << 8) + ']' || ee == ('C' << 8) + ']') { *font = font_sy; *ss++ = 211; break; } /* The rest can be handled by a table, which turns them into Unicode */ bot = 0; top = esctabcount; while (bot < top) { int mid = (bot + top)/2; if (ee == esctab[mid].escape) { unicode = esctab[mid].unicode; break; } if (ee < esctab[mid].escape) top = mid; else bot = mid + 1; } if (unicode < 0) { error_number = 125; Ustrncpy(escbuffer, s - 3, 3); escbuffer[3] = 0; error_argS = escbuffer; } break; /* A decimal number is allowed for a character number */ default: if (isdigit(*s)) { unicode = 0; while (isdigit(*s)) unicode = unicode * 10 + *s++ -'0'; if (*s != '\\') error_argS = US"\"\\\""; else s++; } else { error_number = 40; error_argN = *s; } break; } /* If there has been an error, output the message with an appropriate correction so the point is at the right place for strings that are all on one line. Then skip to the end of the string. Errors should only occur during the reading phase when this routine is called for checking. Flatten the original '\' character, to prevent a second error, which otherwise happens when an underlay string is split. Also any subsequent ones.*/ if (error_argS != NULL || error_argN != 0) { *escape_uschar = '/'; while (*s) { *s++ = '/'; error_ptr_correction++; } error_ptr_correction += 1; if (error_argS != NULL) error_moan(error_number, error_argS); if (error_argN != 0) error_moan(error_number, error_argN); } /* If there is a value in unicode, convert it to a string */ if (unicode >= 0) ss += misc_ord2utf8(unicode, ss); /* Terminate the output string and return */ *ss = 0; return s; } /************************************************* * Read string in stave and handle options * *************************************************/ /* A b_textstr item is added to the stave data. Argument: TRUE for a rehearsal "letter" Returns: nothing */ void string_stavestring(BOOL rehearse) { b_textstr *p; BOOL hadab = FALSE; int rotate = 0; int halfway = 0; int htype = 0; int size = -1; int flags = stave_textflags; int adjustx = 0; int adjusty = 0; int fontid; uschar *s = string_read(); if (s == NULL) return; /* Note that two successive slashes are a caesura, not a bad string option. */ while (read_ch == '/' && *read_chptr != '/') { next_ch(); switch(read_ch) { case 'a': hadab = TRUE; flags &= ~(text_ul|text_fb|text_ps|text_middle|text_atulevel|text_absolute); flags |= text_above; next_ch(); if (read_ch == 'o') { flags |= text_atulevel; next_ch(); } else if (isdigit(read_ch)) { flags |= text_absolute; adjusty = read_integer(TRUE); } break; case 'b': next_ch(); if (read_ch == 'o' && *read_chptr == 'x') { flags |= text_box; next_ch(); next_ch(); } else if (read_ch == 'a' && *read_chptr == 'r') { flags |= text_baralign; next_ch(); next_ch(); } else /* /b or /bu */ { hadab = TRUE; flags &= ~(text_ul | text_fb | text_above | text_ps | text_middle | text_atulevel | text_absolute); if (read_ch == 'u') { flags |= text_atulevel; next_ch(); } else if (isdigit(read_ch)) { flags |= text_absolute; adjusty = -read_integer(TRUE); } } break; case 'c': flags &= ~text_endalign; flags |= text_centre; next_ch(); break; case 'd': adjusty -= read_movevalue(); break; case 'e': flags &= ~text_centre; flags |= text_endalign; next_ch(); break; case 'f': next_ch(); if (read_ch == 'b') { flags &= ~(text_ul | text_above | text_ps | text_middle | text_atulevel); flags |= text_fb; } else error_moan(37, "/fb"); next_ch(); break; case 'h': next_ch(); halfway = 500; if (isdigit(read_ch)) halfway = read_integer(TRUE); break; case 'l': adjustx -= read_movevalue(); break; case 'm': flags &= ~(text_ul|text_fb|text_above|text_ps|text_atulevel|text_absolute); flags |= text_middle; next_ch(); break; case 'n': next_ch(); if (read_ch == 'c') flags &= ~text_centre; else if (read_ch == 'e') flags &= ~text_endalign; else error_moan(37, "/nc or /ne"); next_ch(); break; case 'o': next_ch(); if (read_ch == 'l') { flags &= ~(text_fb | text_ps); flags |= text_ul | text_above; } else error_moan(37, "/ol"); next_ch(); break; case 'p': next_ch(); if (read_ch == 's') { flags &= ~(text_above | text_fb | text_ul | text_middle | text_atulevel | text_absolute); flags |= text_ps; } else error_moan(37, "/ps"); next_ch(); break; case 'r': if (read_chptr[0] == 'i' && read_chptr[1] == 'n' && read_chptr[2] == 'g') { flags |= text_ring; next_ch(); next_ch(); next_ch(); next_ch(); } else if (read_chptr[0] == 'o' && read_chptr[1] == 't') { next_ch(); next_ch(); next_ch(); read_expect_integer(&rotate, TRUE, TRUE); } else adjustx += read_movevalue(); break; case 's': next_ch(); if (read_expect_integer(&size, FALSE, FALSE)) { if (--size < 0 || size >= MaxTextFont) { error_moan(39, MaxTextFont); size = 0; } } break; case 't': next_ch(); if (read_ch == 's') flags |= text_timealign; else error_moan(37, "/ts"); next_ch(); break; case 'u': if (isdigit(*read_chptr)) adjusty += read_movevalue(); else { next_ch(); if (read_ch == 'l') { flags &= ~(text_fb | text_above | text_ps); flags |= text_ul; } else error_moan(37, "/u or /ul"); next_ch(); } break; default: error_moan(37, "/a, /ao, /b, /bar, /box, /bu, /d, /e, /fb, " "/h, /l, /m, /ol, /ps, /r, /ring, /s, /u or /ul"); next_ch(); break; /* The second/third string stuff for underlay/overlay must come last. The only way to get out of a case within a loop is by GOTO. */ case '\"': { int adjust = 0; int size1, size2; int *sizeptr = &size1; uschar *s1 = string_read(); /* Repeated hyphen replacement string */ uschar *s2 = NULL; /* Extra string at start of continuation */ uschar *s3 = NULL; /* Final string at end of "hyphens" */ if (size < 0) size1 = ((flags & text_above) == 0)? stave_ulsize : stave_olsize; else size1 = size; size2 = size1; /* Don't bother if there's been some kind of error. Otherwise, split the string at '|' if there is one. The final part is stored as a "third" extra string. */ if (s1 != NULL) { for (s3 = s1; *s3; s3++) { if (*s3 == '|') { *s3++ = 0; break; } } if (*s3 == 0) s3 = NULL; /* Now read options, and possibly third string, which, paradoxically, is stored as s2. */ while (read_ch == '/' && *read_chptr != '/') { next_ch(); switch (read_ch) { case 'd': adjust -= read_movevalue(); break; case 's': next_ch(); if (read_expect_integer(sizeptr, FALSE, FALSE)) { if ((*sizeptr -= 1) < 0 || *sizeptr >= MaxTextFont) { error_moan(39, MaxTextFont); *sizeptr = 0; } } break; case 'u': adjust += read_movevalue(); break; case '\"': if (s2 != NULL) error_moan(92); s2 = string_read(); sizeptr = &size2; break; default: error_moan(37, "/d, /s, /u, or string"); next_ch(); break; } } /* Only applies to {und,ov}erlay. Set up a hyphen-type block, or point to an identical one. */ if ((flags & text_ul) == 0) error_moan(90); else { int font = ((flags & text_above) == 0)? stave_ulfont : stave_olfont; htypestr *h = main_htypes; htypestr **hh = &main_htypes; htype++; while (h != NULL) { if (Ustrcmp(h->string1, s1) == 0 && ((h->string2 == NULL && s2 == NULL) || (h->string2 != NULL && s2 != NULL && Ustrcmp(h->string2, s2) == 0)) && ((h->string3 == NULL && s3 == NULL) || (h->string3 != NULL && s3 != NULL && Ustrcmp(h->string3, s3) == 0)) && h->adjust == adjust && h->font == font && h->size1 == size1 && h->size2 == size2) break; hh = &(h->next); h = *hh; htype++; } if (h == NULL) { h = store_Xget(sizeof(htypestr)); *hh = h; h->next = NULL; h->string1 = s1; h->string2 = s2; h->string3 = s3; h->font = font; h->adjust = adjust; h->size1 = size1; h->size2 = size2; } } } } goto ENDSTRING; } sigch(); } ENDSTRING: /* Unless this is a PostScript string, check its escapes */ if ((flags & text_ps) == 0) s = string_check(s); /* If the absolute flag is set and we have not had /a or /b, then add in the default absolute position. */ if ((flags & text_absolute) != 0 && !hadab) adjusty += stave_textabsolute; /* If size unset, over-ride it for underlay, overlay, or figured bass */ if (size < 0) { if ((flags & text_ul) != 0) size = ((flags & text_above) == 0)? stave_ulsize : stave_olsize; else if ((flags & text_fb) != 0) size = stave_fbsize; else size = stave_textsize; } /* Over-ride flags if requested for rehearsal strings, and sort out the default font for the rest if necessary. */ if (rehearse) { flags = text_rehearse | text_above; fontid = curmovt->font_rehearse; } else { fontid = ((flags & text_ul) != 0)? (((flags & text_above) == 0)? stave_ulfont : stave_olfont) : ((flags & text_fb) != 0)? stave_fbfont : stave_textfont; } /* If this is a non-{und,ov}erlay string, create the text block immediately, preceded by an extras block if required. */ if ((flags & text_ul) == 0) { if (rotate || halfway) { b_textXstr *pp = store_getitem(b_textX); pp->rotate = rotate; pp->halfway = halfway; } p = store_getitem(b_text); p->size = size; p->font = fontid; p->flags = flags; p->string = s; p->x = adjustx; p->y = adjusty; } /* Otherwise, create a block on the underlay chain to hold the string until it is all parcelled out to the succeeding notes. Give an error if rotation is attempted. */ else { BOOL overlay = (flags & text_above) != 0; int count = overlay? olay_offset : 0; ulaypend **pp = &stave_pendulay; ulaypend *p = stave_pendulay; ulaypend *q; if (rotate) error_moan(98, "supported", "for underlay or overlay"); while (p != NULL) { if (p->level > count) break; if (overlay) { if (p->level >= olay_offset) count++; } else if (p->level < olay_offset) count++; pp = &(p->next); p = p->next; } q = store_Xget(sizeof(ulaypend)); q->next = p; *pp = q; q->level = count; q->size = size; q->htype = htype; q->font = fontid; q->flags = flags; q->string = s; q->x = adjustx; q->y = adjusty; q->halfway = halfway; } } /************************************************* * Get width of a PMW string * *************************************************/ /* This almost duplicates code in out_string(), and yet it seems hard to find a tidy way of combining them. The initial font may have font_sc added for small caps. The final font is left in string_font for use if needed. Arguments: s the string f the font number pointsize the font size Returns: the width (fixed point) */ int string_width(uschar *s, int f, int pointsize) { int yield = 0; int yield_height = 0; int orig_pointsize = pointsize; fontstr *fs; register int c; uschar ss[256]; uschar *pp = ss; DEBUG(("string_width() \"%s\" font %d size %d\n", s, f, pointsize)); if (f >= font_sc) { pointsize = (pointsize * curmovt->smallcapsize) / 1000; f -= font_sc; } fs = &(font_List[font_table[f]]); while ((c = *s++) != 0) { int nf, r; uschar xs[80]; /* If the string buffer is getting full, measure the string so far. This leaves plenty of room for escapes (which in practice are only a few chars). */ if (pp - ss > 240) { *pp = 0; yield += font_stringwidth(ss, f, pointsize); yield_height += font_stringheight; pp = ss; } /* Until we hit the escape character, simply copy bytes, except that we must turn ` and ' into open and close quotes, and fi into the ligature, for fonts with standard encoding. */ if (c != '\\') { if (fs->stdencoding) { if (c == '`') c = QUOTE_LEFT; else if (c == '\'') c = QUOTE_RIGHT; else if (c == 'f' && *s == 'i' && !fs->fixedpitch && fs->hasfi) { c = CHAR_FI; s++; } } if (c > 127) { uschar utf[8]; utf[misc_ord2utf8(c, utf)] = 0; Ustrcpy(pp, utf); pp += Ustrlen(utf); } else *pp++ = c; continue; } /* Interpret the escape. It may return a string to print and/or a font change, and a flag to say whether the font change is permanent or not */ s = string_escape(s, xs, &nf, &r); /* If there is a font change, first measure the string so far in the old font (if any). */ if (nf >= 0) { if (pp != ss) { *pp = 0; yield += font_stringwidth(ss, f, pointsize); yield_height += font_stringheight; pp = ss; } /* If the new font is temporary, measure the escaped string and mark it as empty. Otherwise, change the current font. */ if (r) { yield += font_stringwidth(xs, nf, pointsize); yield_height += font_stringheight; xs[0] = 0; } /* If the new font is "small caps", leave the font alone, but adjust the size. Otherwise reset the original size. */ else { if (nf == font_sc) { if (pointsize == orig_pointsize) pointsize = (pointsize * curmovt->smallcapsize) / 1000; } else { f = nf; pointsize = orig_pointsize; fs = &(font_List[font_table[f]]); } } } /* Join the escape string onto the string so far */ Ustrcpy(pp, xs); pp += Ustrlen(xs); } /* Catch any pending characters at the end */ if (pp != ss) { *pp = 0; yield += font_stringwidth(ss, f, pointsize); yield_height += font_stringheight; } string_font = f; /* stash away final font */ font_stringheight = yield_height; /* put total height in known place */ DEBUG(("string_width() = %d\n", yield)); return yield; } /* End of string.c */ pmw-4.27/src/setdraw.c0000644000222100022210000012712412247665016012763 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2010 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: December 2010 */ /* This file contains code for supporting the "draw" directives in PMW. It contains both the code for reading in the definition of a draw funtion, and the code for executing it. */ #include "pmwhdr.h" #include "readhdr.h" #include "outhdr.h" #define magic 0x74657874 /* Types of entry in draw items; note that the table of required data on the stack (stack_rqd) in must be kept in step with this. Also remember to add any new operators into the check_ptr() function. */ enum { dr_accleft, dr_add, dr_and, dr_barnumber, dr_bra, dr_copy, dr_currentgray, dr_currentlinewidth, dr_currentpoint, dr_curveto, dr_cvs, dr_def, dr_div, dr_draw, dr_dup, dr_end, dr_eq, dr_exch, dr_exit, dr_false, dr_fill, dr_fillretain, dr_fontsize, dr_gaptype, dr_ge, dr_gt, dr_headbottom, dr_headleft, dr_headright, dr_headtop, dr_if, dr_ifelse, dr_jump, dr_ket, dr_le, dr_leftbarx, dr_linebottom, dr_linegapx, dr_linegapy, dr_linelength, dr_lineto, dr_linetop, dr_loop, dr_lt, dr_magnification, dr_moveto, dr_mul, dr_ne, dr_neg, dr_not, dr_number, dr_or, dr_origin, dr_originx, dr_originy, dr_pagelength, dr_pagenumber, dr_pop, dr_pstack, dr_rcurveto, dr_repeat, dr_rlineto, dr_rmoveto, dr_roll, dr_setgray, dr_setlinewidth, dr_show, dr_stavesize, dr_stavespace, dr_stavestart, dr_stembottom, dr_stemtop, dr_stringwidth, dr_stroke, dr_sub, dr_systemdepth, dr_text, dr_topleft, dr_translate, dr_true, dr_varname, dr_varref, dr_xor }; /* This table contains the number and type of entries required to be on the stack for each operator. Up to 8 values are catered for (though the maximum used is 6). Each entry uses one nibble, starting from the least significant end of the word. The values are the dd_* values defined in pmwhdr, namely: dd_any 1 any type of data dd_number 2 number dd_text 3 string dd_code 4 code fragment dd_varname 5 variable name */ static unsigned int stack_rqd[] = { 0, /* accleft */ 0x00000022, /* add */ 0x00000022, /* and */ 0, /* barnumber */ 0, /* bra */ 0x00000001, /* copy */ 0, /* currentgray */ 0, /* currentlinewidth */ 0, /* currentpoint */ 0x00222222, /* curveto */ 0x00000023, /* cvs */ 0x00000051, /* def */ 0x00000022, /* div */ 0, /* draw */ 0x00000001, /* dup */ 0, /* end */ 0x00000022, /* eq */ 0x00000011, /* exch */ 0, /* exit */ 0, /* false */ 0, /* fill */ 0, /* fillretain */ 0x00000003, /* fontsize */ 0, /* gaptype */ 0x00000022, /* ge */ 0x00000022, /* gt */ 0, /* headbottom */ 0, /* headleft */ 0, /* headright */ 0, /* headtop */ 0x00000024, /* if */ 0x00000244, /* ifelse */ 0, /* jump */ 0, /* ket */ 0x00000022, /* le */ 0, /* leftbarx */ 0, /* linebottom */ 0, /* linegapx */ 0, /* linegapy */ 0, /* linelength */ 0x00000022, /* lineto */ 0, /* linetop */ 0x00000004, /* loop */ 0x00000022, /* lt */ 0, /* magnification */ 0x00000022, /* moveto */ 0x00000022, /* mul */ 0x00000022, /* ne */ 0x00000002, /* neg */ 0x00000002, /* not */ 0, /* number */ 0x00000022, /* or */ 0, /* origin */ 0, /* originx */ 0, /* originy */ 0, /* pagelength */ 0, /* pagenumber */ 0x00000001, /* pop */ 0, /* pstack: no checking done */ 0x00222222, /* rcurveto */ 0x00000024, /* repeat */ 0x00000022, /* rlineto */ 0x00000022, /* rmoveto */ 0x00000022, /* roll */ 0x00000002, /* setgray */ 0x00000002, /* setlinewidth */ 0x00000003, /* show */ 0, /* stavesize */ 0, /* stavespace */ 0, /* stavestart */ 0, /* stembottom */ 0, /* stemtop */ 0x00000003, /* stringwidth */ 0, /* stroke */ 0x00000022, /* sub */ 0, /* systemdepth */ 0, /* text */ 0, /* topleft */ 0x00000022, /* translate */ 0, /* true */ 0, /* varname */ 0, /* varref */ 0x00000022 /* xor */ }; /************************************************* * Variables * *************************************************/ static BOOL currentpoint; static int gray; static int level; static int xp, yp, cp; static drawitem draw_variables[max_draw_variable + 1]; static drawitem draw_stack[draw_stacksize]; /************************************************* * Table of operators/variables etc * *************************************************/ typedef struct { char *name; int value; } draw_op; /* This table is used for compiling operators, and also for finding a name to print in an error message. The names that don't correspond to operator names are enclosed in <> so they don't affect the first usage. */ static draw_op draw_operators[] = { { "", dr_number }, { "", dr_text }, { "", dr_varname }, { "", dr_varref }, { "accleft", dr_accleft }, { "add", dr_add }, { "and", dr_and }, { "barnumber", dr_barnumber }, { "copy", dr_copy }, { "currentgray", dr_currentgray }, { "currentlinewidth", dr_currentlinewidth }, { "currentpoint", dr_currentpoint }, { "curveto", dr_curveto }, { "cvs", dr_cvs }, { "def", dr_def }, { "div", dr_div }, { "dup", dr_dup }, { "eq", dr_eq }, { "exch", dr_exch }, { "exit", dr_exit }, { "false", dr_false }, { "fill", dr_fill }, { "fillretain", dr_fillretain }, { "fontsize", dr_fontsize }, { "gaptype", dr_gaptype }, { "ge", dr_ge }, { "gt", dr_gt }, { "headbottom", dr_headbottom }, { "headleft", dr_headleft }, { "headright", dr_headright }, { "headtop", dr_headtop }, { "if", dr_if }, { "ifelse", dr_ifelse}, { "le", dr_le }, { "leftbarx", dr_leftbarx }, { "linebottom", dr_linebottom }, { "linegapx", dr_linegapx }, { "linegapy", dr_linegapy }, { "linelength", dr_linelength }, { "lineto", dr_lineto }, { "linetop", dr_linetop }, { "loop", dr_loop }, { "lt", dr_lt }, { "magnification",dr_magnification}, { "moveto", dr_moveto }, { "mul", dr_mul }, { "ne", dr_ne }, { "neg", dr_neg }, { "not", dr_not }, { "or", dr_or }, { "origin", dr_origin }, { "originx", dr_originx }, { "originy", dr_originy }, { "pagelength", dr_pagelength }, { "pagenumber", dr_pagenumber }, { "pop", dr_pop }, { "pstack", dr_pstack }, { "rcurveto", dr_rcurveto }, { "repeat", dr_repeat }, { "rlineto", dr_rlineto }, { "rmoveto", dr_rmoveto }, { "roll", dr_roll }, { "setgray", dr_setgray }, { "setlinewidth", dr_setlinewidth }, { "show", dr_show }, { "stavesize", dr_stavesize }, { "stavespace", dr_stavespace }, { "stavestart", dr_stavestart }, { "stembottom", dr_stembottom }, { "stemtop", dr_stemtop }, { "stringwidth", dr_stringwidth }, { "stroke", dr_stroke }, { "sub", dr_sub }, { "systemdepth", dr_systemdepth }, { "topleft", dr_topleft }, { "translate", dr_translate }, { "true", dr_true }, { "xor", dr_xor } }; static int draw_operator_count = sizeof(draw_operators)/sizeof(draw_op); /************************************************* * Print out the stack contents * *************************************************/ /* This function is called by "pstack" and is also used after some errors. Arguments: s1 introductory string s2 terminating string Returns: nothing */ static void do_pstack(char *s1, char *s2) { int i; drawtextstr *d; info_printf("%s", s1); for (i = 0; i < out_drawstackptr; i++) { switch (draw_stack[i].dtype) { case dd_text: d = draw_stack[i].d.ptr; if (d->ident != magic) info_printf(" "); else { info_printf("\"%s\"", d->text); if (d->xdelta != 0) info_printf("/%c%f", (d->xdelta > 0)? 'r':'l', d->xdelta); if (d->ydelta != 0) info_printf("/%c%f", (d->ydelta > 0)? 'u':'d', d->ydelta); if (d->size != 0) info_printf("/s%d", d->size + 1); if (d->rotate != 0) info_printf("/rot%f", d->rotate); if ((d->flags & text_box) != 0) info_printf("/box"); if ((d->flags & text_centre) != 0) info_printf("/c"); if ((d->flags & text_endalign) != 0) info_printf("/e"); if ((d->flags & text_ring) != 0) info_printf("/ring"); info_printf(" "); } break; case dd_code: info_printf(" "); break; default: info_printf("%f ", draw_stack[i].d.val); break; } } info_printf("\n%s", s2); } /************************************************* * Read a draw text string * *************************************************/ /* This is also called when reading arguments for draw calls. It reads the string and parameters into a store block, and yields its address. Arguments: none Returns: pointer to a textstr */ drawtextstr * read_draw_text(void) { drawtextstr *textptr = store_Xget(sizeof(drawtextstr)); textptr->ident = magic; /* magic number to identify */ textptr->text = string_check(string_read()); textptr->xdelta = 0; textptr->ydelta = 0; textptr->flags = 0; textptr->size = 0; textptr->rotate = 0; while (read_ch == '/') { int delta, size; next_ch(); switch (read_ch) { case 'b': if (Ustrncmp(read_chptr, "ox", 2) == 0) { next_ch(); next_ch(); next_ch(); textptr->flags |= text_box; } else error_moan(10, "/box, /c, /e, /ring, /rot, or /s"); break; case 'c': textptr->flags &= ~text_endalign; textptr->flags |= text_centre; next_ch(); break; case 'd': next_ch(); if (read_expect_integer(&delta, TRUE, TRUE)) textptr->ydelta -= delta; break; case 'e': textptr->flags &= ~text_centre; textptr->flags |= text_endalign; next_ch(); break; case 'l': next_ch(); if (read_expect_integer(&delta, TRUE, TRUE)) textptr->xdelta -= delta; break; case 'n': next_ch(); if (read_ch == 'c') textptr->flags &= ~text_centre; else if (read_ch == 'e') textptr->flags &= ~text_endalign; else error_moan(37, "/nc or /ne"); next_ch(); break; case 's': next_ch(); if (read_expect_integer(&size, FALSE, FALSE)) { if (--size < 0 || size >= MaxTextFont) { error_moan(39, MaxTextFont); size = 0; } textptr->size = size; } break; case 'r': if (Ustrncmp(read_chptr, "ot", 2) == 0) { int rotate; next_ch(); next_ch(); next_ch(); if (read_expect_integer(&rotate, TRUE, TRUE)) textptr->rotate = rotate; break; } else if (Ustrncmp(read_chptr, "ing", 3) == 0) { next_ch(); next_ch(); next_ch(); next_ch(); textptr->flags |= text_ring; break; } else { next_ch(); if (read_expect_integer(&delta, TRUE, TRUE)) textptr->xdelta += delta; } break; case 'u': next_ch(); if (read_expect_integer(&delta, TRUE, TRUE)) textptr->ydelta += delta; break; default: error_moan(10, "/box, /c, /d, /e, /l, /r, /ring, /rot, /s, or /u"); break; } } return textptr; } /************************************************* * Read a Draw function * *************************************************/ /* The function sets up a structure representing the function, and adds it to the tree of draw functions. Arguments: none Returns: nothing */ void read_draw(void) { tree_node *node = store_Xget(sizeof(tree_node)); drawitem *ptr; int left; int bracount = 0; uschar word[80]; read_word(word); if (word[0] == 0) { error_moan(10, "name"); return; } node->name = store_copystring(word); node->data = store_Xget(draw_blocksize); ptr = (drawitem *)node->data; left = draw_blocksize/sizeof(drawitem); /* Loop to read the contents of the draw function */ for (;;) { int type = -1; int value = 0; void *pointer = NULL; sigch(); /* Deal with numerical values; data put into "value" */ if (isdigit(read_ch) || read_ch == '-' || read_ch == '+') { type = dr_number; (void)read_expect_integer(&value, TRUE, TRUE); } /* Deal with strings; data put into "pointer" */ else if (read_ch == '\"') { type = dr_text; pointer = read_draw_text(); } /* Deal with brackets; no data */ else if (read_ch == '{') { next_ch(); bracount++; type = dr_bra; } else if (read_ch == '}') { next_ch(); type = dr_ket; if (--bracount < 0) error_moan(118, node->name); } /* Deal with variable names; data put into "value" is the variable index */ else if (read_ch == '/') { tree_node *node; type = dr_varname; next_ch(); read_word(word); if (word[0] == 0) error_moan(37, "Variable name"); else { node = Tree_Search(draw_variable_tree, word); if (node == NULL) { if (draw_nextvariable > max_draw_variable) { error_moan(100, max_draw_variable + 1); draw_nextvariable--; } value = draw_nextvariable++; node = store_Xget(sizeof(tree_node)); node->name = store_copystring(word); node->val[0] = value; Tree_InsertNode(&draw_variable_tree, node); } else value = node->val[0]; } } /* Else it must be a command word */ else if (isalpha(read_ch)) { read_word(word); if (Ustrcmp(word, "enddraw") == 0) { ptr->d.val = dr_end; break; } /* Deal with "subroutine" call; value put into "pointer" */ if (Ustrcmp(word, "draw") == 0) { tree_node *node; type = dr_draw; read_word(word); node = Tree_Search(draw_tree, word); if (node == NULL) error_moan(70, word); else pointer = node; } /* Deal with normal operators and variables */ else { draw_op *first = draw_operators; draw_op *last = first + draw_operator_count; /* Search for a standard variable or operator; if found, the type is set but there is no data. */ while (last > first) { int c; draw_op *middle = first + (last - first)/2; c = Ustrcmp(middle->name, word); if (c == 0) { type = middle->value; break; } if (c > 0) last = middle; else first = middle + 1; } } /* If haven't matched a standard variable or operator, try for a user variable. If found, the variable number is put into "value". */ if (type < 0) { tree_node *node = Tree_Search(draw_variable_tree, word); if (node != NULL) { type = dr_varref; value = node->val[0]; } } /* Grumble if unrecognized word */ if (type < 0) error_moan(69, word); } /* Grumble if unrecognized input */ else { error_moan(10, "number, string, name, or curly bracket"); break; } /* Extend to new block if necessary */ if (left < 4) { (ptr++)->d.val = dr_jump; ptr->d.ptr = store_Xget(draw_blocksize); ptr = (drawitem *)(ptr->d.ptr); left = draw_blocksize/sizeof(drawitem); } /* Add this item to the "program". Numbers, variable names, and variable references have a numerical argument; strings and draw subroutine calls have an address argument. */ (ptr++)->d.val = type; left--; if (type == dr_number || type == dr_varname || type == dr_varref) { (ptr++)->d.val = value; left--; } else if (type == dr_text || type == dr_draw) { (ptr++)->d.ptr = pointer; left--; } } /* Insert into tree; give error if duplicate */ if (!Tree_InsertNode(&draw_tree, node)) error_moan(14, node->name); } /************************************************* * Generate an error while drawing * *************************************************/ /* Arguments: n the error number s a text string to pass to the error function t the current drawing function node (for the name) Returns: nothing */ static void draw_error(int n, char *s, tree_node *t) { uschar buff[80]; if (out_stave < 0) Ustrcpy(buff, "in a heading or footing"); else format_sprintf(buff, "in bar %b of stave %d%M", out_bar, out_stave); error_moan(n, s, t->name, buff); } /************************************************* * Scale for a normal or grace/cue note * *************************************************/ /* This function is called for dimensions that are relative to the current note. For normal notes, it just returns its argument. Otherwise, it scales appropriately for cue notes and grace notes. Argument: the dimension to be scaled Returns: the scaled dimension */ static int cuegrace_scale(int value) { /* Not grace note */ if (n_length != 0) { return ((n_flags & nf_cuesize) == 0)? value : mac_muldiv(value, (curmovt->fontsizes)->fontsize_cue, 10000); } /* Grace note */ else { int size = ((n_flags & nf_cuesize) != 0)? (curmovt->fontsizes)->fontsize_cuegrace : (curmovt->fontsizes)->fontsize_grace; return mac_muldiv(value, size, 10000); } } /************************************************* * Set up an overdraw saved block for graphic * *************************************************/ /* This function saves the parameters of a graphic so that it can be drawn at the end of the stave (overdrawn). Arguments: thickness the line thickness x vector of x coordinates y vector of y coordinates c vector of control verbs (move, draw, etc) Returns: nothing */ static void setup_overdraw(int thickness, int *x, int *y, int *c) { int *pp; overdrawstr *last = out_overdraw; overdrawstr *new = store_Xget(sizeof(overdrawstr) + sizeof(int)*(3*cp)); if (last == NULL) out_overdraw = new; else { while (last->next != NULL) last = last->next; last->next = new; } new->next = NULL; new->texttype = FALSE; new->d.g.gray = gray; new->d.g.linewidth = thickness; new->d.g.ystave = out_ystave; new->d.g.count = cp; pp = &(new->d.g.data[0]); memcpy(pp, x, cp*sizeof(int)); memcpy(pp+cp, y, cp*sizeof(int)); memcpy(pp+cp+cp, c, cp*sizeof(int)); } /************************************************* * Check validity of program pointer * *************************************************/ /* This function checks the validity of the argument of a conditional or looping command, which is a sequence of draw commands, ending at the current command pointer. Arguments: p the pointer to the conditional or looping command t the node of the draw subfunction argument start Returns: TRUE if all is well; FALSE otherwise */ static BOOL check_ptr(drawitem *p, tree_node *t) { drawitem *pp = (drawitem *)t->data; while (pp != p && pp->d.val != dr_end) { switch ((pp++)->d.val) { case dr_jump: pp = (drawitem *)(pp->d.ptr); break; case dr_draw: /* These have data in the stream, so skip one */ case dr_number: case dr_text: case dr_varname: case dr_varref: pp++; break; case dr_accleft: /* These have no data */ case dr_add: case dr_and: case dr_barnumber: case dr_bra: case dr_copy: case dr_currentgray: case dr_currentlinewidth: case dr_currentpoint: case dr_curveto: case dr_cvs: case dr_def: case dr_div: case dr_dup: case dr_end: case dr_eq: case dr_exch: case dr_exit: case dr_false: case dr_fill: case dr_fillretain: case dr_fontsize: case dr_gaptype: case dr_ge: case dr_gt: case dr_headbottom: case dr_headleft: case dr_headright: case dr_headtop: case dr_if: case dr_ifelse: case dr_ket: case dr_le: case dr_leftbarx: case dr_linebottom: case dr_linegapx: case dr_linegapy: case dr_linelength: case dr_lineto: case dr_linetop: case dr_loop: case dr_lt: case dr_magnification: case dr_moveto: case dr_mul: case dr_ne: case dr_neg: case dr_not: case dr_or: case dr_origin: case dr_originx: case dr_originy: case dr_pagelength: case dr_pagenumber: case dr_pop: case dr_pstack: case dr_rcurveto: case dr_repeat: case dr_rlineto: case dr_rmoveto: case dr_roll: case dr_setgray: case dr_setlinewidth: case dr_show: case dr_stavesize: case dr_stavespace: case dr_stavestart: case dr_stembottom: case dr_stemtop: case dr_stringwidth: case dr_stroke: case dr_sub: case dr_systemdepth: case dr_topleft: case dr_translate: case dr_true: case dr_xor: break; default: { char buff[20]; sprintf(buff, " (bad value %d) ", pp[-1].d.val); draw_error(117, buff, t); } return FALSE; } } if (p == pp) return TRUE; draw_error(117, " (ended too soon) ", t); return FALSE; } /************************************************* * Interpret a draw function - recursive call * *************************************************/ /* This recursive function is called from the external interface. Arguments: t the node for the function p vector of draw commands; if NULL, take from node pointer x vector for storing x path coordinates y vector for storing y path coordinates c vector for storing path drawing commands overflag true if drawing is to overprint the stave Returns: TRUE if all is well; FALSE on error */ static BOOL sub_draw(tree_node *t, drawitem *p, int *x, int *y, int *c, BOOL overflag) { if (p == NULL) p = (drawitem *)t->data; if (level > 20) draw_error(84, " ", t); while (p->d.val != dr_end) { int errornumber = 0; if (out_drawstackptr > draw_stacksize - 4) errornumber = 121; else { int c = 0; unsigned int x = stack_rqd[p->d.val]; while (x != 0) { c++; if (out_drawstackptr < c) { errornumber = 71; /* Insufficient items on stack */ break; } if ((x & 0x0f) != dd_any && (x & 0x0f) != draw_stack[out_drawstackptr - c].dtype) { errornumber = 6; /* Wrong type of item on stack */ break; } x >>= 4; } } if (errornumber != 0) { int i; uschar *s = US"???"; for (i = 0; i < draw_operator_count; i++) if (draw_operators[i].value == p->d.val) { s = US draw_operators[i].name; break; } draw_error(errornumber, CS s, t); do_pstack("** Draw stack contents when error detected:\n", "\n"); return FALSE; } switch ((p++)->d.val) { case dr_jump: p = (drawitem *)(p->d.ptr); break; case dr_bra: { int count = 1; draw_stack[out_drawstackptr].dtype = dd_code; draw_stack[out_drawstackptr++].d.ptr = p; while (p->d.val != dr_end && (p->d.val != dr_ket || --count > 0)) { int type = (p++)->d.val; if (type == dr_jump) p = (drawitem *)(p->d.ptr); else if (type == dr_bra) count++; else if (type == dr_draw || type == dr_varref || type == dr_number || type == dr_text || type == dr_varname) p++; } if (p->d.val != dr_ket) draw_error(116, " ", t); else p++; } break; case dr_ket: return TRUE; case dr_if: { drawitem *pp = draw_stack[--out_drawstackptr].d.ptr; if (!check_ptr(pp, t)) return FALSE; if (draw_stack[--out_drawstackptr].d.val != 0 && !sub_draw(t, pp, x, y, c, overflag)) return FALSE; } break; case dr_ifelse: { drawitem *pp2 = draw_stack[--out_drawstackptr].d.ptr; drawitem *pp1 = draw_stack[--out_drawstackptr].d.ptr; if (!check_ptr(pp1, t) || !check_ptr(pp2, t)) return FALSE; if (!sub_draw(t, (draw_stack[--out_drawstackptr].d.val != 0)? pp1 : pp2, x, y, c, overflag)) return FALSE; } break; case dr_number: draw_stack[out_drawstackptr].dtype = dd_number; draw_stack[out_drawstackptr++].d.val = (p++)->d.val; break; case dr_text: draw_stack[out_drawstackptr].dtype = dd_text; draw_stack[out_drawstackptr++].d.ptr = (p++)->d.ptr; break; case dr_varname: draw_stack[out_drawstackptr].dtype = dd_varname; draw_stack[out_drawstackptr++].d.val = (p++)->d.val; break; case dr_varref: draw_stack[out_drawstackptr++] = draw_variables[(p++)->d.val]; break; case dr_accleft: draw_stack[out_drawstackptr].dtype = dd_number; draw_stack[out_drawstackptr++].d.val = n_maxaccleft; break; case dr_add: draw_stack[out_drawstackptr-2].d.val += draw_stack[out_drawstackptr-1].d.val; out_drawstackptr--; break; case dr_and: { int a1 = draw_stack[--out_drawstackptr].d.val / 1000; int a2 = draw_stack[--out_drawstackptr].d.val / 1000; draw_stack[out_drawstackptr++].d.val = (a1 & a2)*1000; } break; case dr_barnumber: { int a = 0, b = 0; uschar buff[20]; format_movt = curmovt; format_sprintf(buff, "%b", out_bar); sscanf(CS buff, "%d.%d", &a, &b); if (b < 10) b *= 100; else if (b < 100) b *= 10; draw_stack[out_drawstackptr].dtype = dd_number; draw_stack[out_drawstackptr++].d.val = a * 1000 + b; } break; case dr_copy: { int count = draw_stack[--out_drawstackptr].d.val / 1000; if (out_drawstackptr < count) { draw_error(71, "copy", t); break; } memcpy(draw_stack + out_drawstackptr, draw_stack + out_drawstackptr - count, count * sizeof(drawitem)); out_drawstackptr += count; } break; case dr_currentgray: draw_stack[out_drawstackptr].dtype = dd_number; draw_stack[out_drawstackptr++].d.val = gray; break; case dr_currentlinewidth: draw_stack[out_drawstackptr].dtype = dd_number; draw_stack[out_drawstackptr++].d.val = draw_thickness; break; case dr_currentpoint: if (cp <= 0) draw_error(72, "currentpoint", t); draw_stack[out_drawstackptr].dtype = dd_number; draw_stack[out_drawstackptr++].d.val = x[xp-1] - draw_ox; draw_stack[out_drawstackptr].dtype = dd_number; draw_stack[out_drawstackptr++].d.val = y[yp-1] - draw_oy; break; case dr_curveto: { int i; if (!currentpoint) draw_error(72, "curveto", t); for (i = 6; i >= 2; i -= 2) { x[xp++] = draw_ox + draw_stack[out_drawstackptr - i].d.val; y[yp++] = draw_oy + draw_stack[out_drawstackptr - i + 1].d.val; } out_drawstackptr -= 6; c[cp++] = path_curve; } break; case dr_cvs: { drawtextstr *d = (drawtextstr *)(draw_stack[--out_drawstackptr].d.ptr); int n = draw_stack[--out_drawstackptr].d.val; if (d->ident != magic) draw_error(82, "cvs", t); format_sprintf(d->text, "%f", n); draw_stack[out_drawstackptr].dtype = dd_text; draw_stack[out_drawstackptr++].d.ptr = d; } break; case dr_def: { int n = draw_stack[out_drawstackptr-2].d.val; if (n < 0 || n > max_draw_variable) draw_error(101, "", t); else draw_variables[n] = draw_stack[out_drawstackptr-1]; } out_drawstackptr -= 2; break; case dr_div: if (draw_stack[out_drawstackptr-1].d.val == 0) { draw_error(95, "", t); } else { draw_stack[out_drawstackptr-2].d.val = mac_muldiv(draw_stack[out_drawstackptr-2].d.val, 1000, draw_stack[out_drawstackptr-1].d.val); out_drawstackptr--; } break; case dr_draw: level++; (void)sub_draw((tree_node *)((p++)->d.ptr), NULL, x, y, c, overflag); level--; break; case dr_dup: draw_stack[out_drawstackptr] = draw_stack[out_drawstackptr-1]; out_drawstackptr++; break; case dr_eq: draw_stack[out_drawstackptr-2].d.val = (draw_stack[out_drawstackptr-2].d.val == draw_stack[out_drawstackptr-1].d.val)? 1000 : 0; out_drawstackptr--; break; case dr_exch: { drawitem temp = draw_stack[out_drawstackptr-1]; draw_stack[out_drawstackptr-1] = draw_stack[out_drawstackptr-2]; draw_stack[out_drawstackptr-2] = temp; } break; case dr_exit: return FALSE; case dr_fill: if (!currentpoint) draw_error(72, "fill", t); c[cp++] = path_end; if (overflag) setup_overdraw(-1, x, y, c); else ps_path(x, y, c, -1); cp = xp = yp = 0; currentpoint = FALSE; break; case dr_fillretain: if (!currentpoint) draw_error(72, "fillretain", t); c[cp++] = path_end; if (overflag) setup_overdraw(-1, x, y, c); else ps_path(x, y, c, -1); break; case dr_fontsize: { drawtextstr *d = (drawtextstr *)(draw_stack[--out_drawstackptr].d.ptr); if (d->ident != magic) draw_error(82, "fontsize", t); draw_stack[out_drawstackptr].dtype = dd_number; draw_stack[out_drawstackptr++].d.val = ((curmovt->fontsizes)->fontsize_text)[d->size]; } break; case dr_false: draw_stack[out_drawstackptr].dtype = dd_number; draw_stack[out_drawstackptr++].d.val = 0; break; case dr_gaptype: draw_stack[out_drawstackptr].dtype = dd_number; draw_stack[out_drawstackptr++].d.val = draw_gap; break; case dr_ge: draw_stack[out_drawstackptr-2].d.val = (draw_stack[out_drawstackptr-2].d.val >= draw_stack[out_drawstackptr-1].d.val)? 1000 : 0; out_drawstackptr--; break; case dr_gt: draw_stack[out_drawstackptr-2].d.val = (draw_stack[out_drawstackptr-2].d.val > draw_stack[out_drawstackptr-1].d.val)? 1000 : 0; out_drawstackptr--; break; case dr_headbottom: draw_stack[out_drawstackptr].dtype = dd_number; draw_stack[out_drawstackptr++].d.val = (n_minpitch - 128)*main_stavemagn - cuegrace_scale(2*main_stavemagn); break; case dr_headleft: draw_stack[out_drawstackptr].dtype = dd_number; draw_stack[out_drawstackptr++].d.val = n_invertleft? cuegrace_scale(6*main_stavemagn) : 0; break; case dr_headright: draw_stack[out_drawstackptr].dtype = dd_number; draw_stack[out_drawstackptr++].d.val = cuegrace_scale((n_invertright? 12 : 6)*main_stavemagn); break; case dr_headtop: draw_stack[out_drawstackptr].dtype = dd_number; draw_stack[out_drawstackptr++].d.val = (n_maxpitch - 128)*main_stavemagn + cuegrace_scale(2*main_stavemagn); break; case dr_le: draw_stack[out_drawstackptr-2].d.val = (draw_stack[out_drawstackptr-2].d.val <= draw_stack[out_drawstackptr-1].d.val)? 1000 : 0; out_drawstackptr--; break; case dr_leftbarx: draw_stack[out_drawstackptr].dtype = dd_number; draw_stack[out_drawstackptr].d.val = out_lastbarlinex - draw_ox; if (out_startlinebar) draw_stack[out_drawstackptr].d.val -= 6000; out_drawstackptr++; break; case dr_linebottom: draw_stack[out_drawstackptr].dtype = dd_number; draw_stack[out_drawstackptr++].d.val = (n_minpitch & 2)? 2*main_stavemagn : 0; break; case dr_linegapx: draw_stack[out_drawstackptr].dtype = dd_number; draw_stack[out_drawstackptr++].d.val = draw_lgx; break; case dr_linegapy: draw_stack[out_drawstackptr].dtype = dd_number; draw_stack[out_drawstackptr++].d.val = draw_lgy; break; case dr_linelength: draw_stack[out_drawstackptr].dtype = dd_number; draw_stack[out_drawstackptr++].d.val = curmovt->linelength; break; case dr_lineto: if (!currentpoint) draw_error(72, "lineto", t); y[yp++] = draw_oy + draw_stack[--out_drawstackptr].d.val; x[xp++] = draw_ox + draw_stack[--out_drawstackptr].d.val; c[cp++] = path_line; break; case dr_linetop: draw_stack[out_drawstackptr].dtype = dd_number; draw_stack[out_drawstackptr++].d.val = (n_maxpitch & 2)? 2*main_stavemagn : 0; break; case dr_loop: { int count = 1000; drawitem *pp = draw_stack[--out_drawstackptr].d.ptr; if (!check_ptr(pp, t)) return FALSE; while (count-- > 0 && sub_draw(t, pp, x, y, c, overflag)); } break; case dr_lt: draw_stack[out_drawstackptr-2].d.val = (draw_stack[out_drawstackptr-2].d.val < draw_stack[out_drawstackptr-1].d.val)? 1000 : 0; out_drawstackptr--; break; case dr_magnification: draw_stack[out_drawstackptr].dtype = dd_number; draw_stack[out_drawstackptr++].d.val = main_magnification; break; case dr_moveto: y[yp++] = draw_oy + draw_stack[--out_drawstackptr].d.val; x[xp++] = draw_ox + draw_stack[--out_drawstackptr].d.val; c[cp++] = path_move; currentpoint = TRUE; break; case dr_mul: draw_stack[out_drawstackptr-2].d.val = mac_muldiv(draw_stack[out_drawstackptr-1].d.val, draw_stack[out_drawstackptr-2].d.val, 1000); out_drawstackptr--; break; case dr_ne: draw_stack[out_drawstackptr-2].d.val = (draw_stack[out_drawstackptr-2].d.val != draw_stack[out_drawstackptr-1].d.val)? 1000 : 0; out_drawstackptr--; break; case dr_neg: draw_stack[out_drawstackptr-1].d.val = -draw_stack[out_drawstackptr-1].d.val; break; case dr_not: draw_stack[out_drawstackptr-1].d.val = (~(draw_stack[out_drawstackptr-1].d.val/1000))*1000; break; case dr_or: { int a1 = draw_stack[--out_drawstackptr].d.val / 1000; int a2 = draw_stack[--out_drawstackptr].d.val / 1000; draw_stack[out_drawstackptr++].d.val = (a1 | a2)*1000; } break; case dr_origin: case dr_originx: draw_stack[out_drawstackptr].dtype = dd_number; draw_stack[out_drawstackptr++].d.val = draw_ox; break; case dr_originy: draw_stack[out_drawstackptr].dtype = dd_number; draw_stack[out_drawstackptr++].d.val = draw_oy; break; case dr_pagelength: draw_stack[out_drawstackptr].dtype = dd_number; draw_stack[out_drawstackptr++].d.val = main_pagelength; break; case dr_pagenumber: draw_stack[out_drawstackptr].dtype = dd_number; draw_stack[out_drawstackptr++].d.val = curpage->number * 1000; break; case dr_topleft: draw_stack[out_drawstackptr].dtype = dd_number; draw_stack[out_drawstackptr++].d.val = - draw_ox; draw_stack[out_drawstackptr].dtype = dd_number; draw_stack[out_drawstackptr++].d.val = out_ystave - draw_oy; break; case dr_pop: out_drawstackptr--; break; case dr_pstack: do_pstack("Draw stack contents (pstack command):\n", ""); break; case dr_rcurveto: { int i; if (!currentpoint) draw_error(72, "rcurveto", t); for (i = 0; i <= 2; i++) { x[xp+i] = x[xp-1] + draw_stack[out_drawstackptr + 2*i - 6].d.val; y[yp+i] = y[yp-1] + draw_stack[out_drawstackptr + 2*i - 5].d.val; } xp += 3; yp += 3; out_drawstackptr -= 6; c[cp++] = path_curve; } break; case dr_repeat: { drawitem *pp = draw_stack[--out_drawstackptr].d.ptr; int count = draw_stack[--out_drawstackptr].d.val / 1000; if (!check_ptr(pp, t)) return FALSE; while (count-- > 0 && sub_draw(t, pp, x, y, c, overflag)); } break; case dr_rlineto: if (!currentpoint) draw_error(72, "rlineto", t); y[yp] = y[yp-1] + draw_stack[--out_drawstackptr].d.val; yp++; x[xp] = x[xp-1] + draw_stack[--out_drawstackptr].d.val; xp++; c[cp++] = path_line; break; case dr_rmoveto: if (!currentpoint) draw_error(72, "rmoveto", t); y[yp] = y[yp-1] + draw_stack[--out_drawstackptr].d.val; yp++; x[xp] = x[xp-1] + draw_stack[--out_drawstackptr].d.val; xp++; c[cp++] = path_move; break; case dr_roll: { int i, j; int amount = (draw_stack[--out_drawstackptr].d.val)/1000; int count = (draw_stack[--out_drawstackptr].d.val)/1000; if (out_drawstackptr < count) draw_error(71, "roll", t); if (amount > 0) for (i = 0; i < amount; i++) { drawitem temp = draw_stack[out_drawstackptr - 1]; for (j = 1; j < count; j++) draw_stack[out_drawstackptr-j] = draw_stack[out_drawstackptr-j-1]; draw_stack[out_drawstackptr - count] = temp; } else for (i = 0; i < -amount; i++) { drawitem temp = draw_stack[out_drawstackptr - count]; for (j = count; j > 1; j--) draw_stack[out_drawstackptr-j] = draw_stack[out_drawstackptr-j+1]; draw_stack[out_drawstackptr - 1] = temp; } } break; case dr_setgray: gray = draw_stack[--out_drawstackptr].d.val; ps_setgray(gray); break; case dr_setlinewidth: draw_thickness = mac_muldiv(draw_stack[--out_drawstackptr].d.val, main_stavemagn, 1000); break; case dr_stringwidth: case dr_show: { int *matrix; int xx, yy, width, flags, unscaled_fontsize, fontsize; int boxring = 0; drawtextstr *d = draw_stack[--out_drawstackptr].d.ptr; if (d->ident != magic) draw_error(82, "show", t); unscaled_fontsize = ((curmovt->fontsizes)->fontsize_text)[d->size]; fontsize = mac_muldiv(main_stavemagn, unscaled_fontsize, 1000); matrix = ((curmovt->fontsizes)->fontmatrix_text)[d->size]; if (matrix != NULL) memcpy(font_transform, matrix, 4*sizeof(int)); if (d->rotate) font_rotate(d->rotate); width = string_width(d->text, font_rm, fontsize); /* If stringwidth, just return values */ if (p[-1].d.val == dr_stringwidth) { draw_stack[out_drawstackptr].dtype = dd_number; draw_stack[out_drawstackptr++].d.val = width; draw_stack[out_drawstackptr].dtype = dd_number; draw_stack[out_drawstackptr++].d.val = font_stringheight; } /* Else carry on to do the showing */ else { if (!currentpoint) draw_error(72, "show", t); xx = x[xp-1] + d->xdelta; yy = y[yp-1] + d->ydelta; flags = d->flags; boxring = flags & (text_box | text_ring); if ((flags & text_centre) != 0) { xx -= width/2; yy -= font_stringheight/2; } else if ((flags & text_endalign) != 0) { xx -= width; yy -= font_stringheight; } else { y[yp++] = yy + font_stringheight; x[xp++] = xx + width; c[cp++] = path_move; } if (overflag) { overdrawstr *last = out_overdraw; overdrawstr *new = store_Xget(sizeof(overdrawstr)); if (last == NULL) out_overdraw = new; else { while (last->next != NULL) last = last->next; last->next = new; } new->next = NULL; new->texttype = TRUE; new->d.t.text = d->text; new->d.t.fontsize = fontsize; new->d.t.boxring = boxring; new->d.t.xx = xx; new->d.t.yy = out_ystave - yy; memcpy(new->d.t.matrix, font_transform, 4*sizeof(int)); } else out_string(d->text, font_rm, fontsize, xx, out_ystave - yy, boxring); } font_reset(); } break; case dr_stavesize: draw_stack[out_drawstackptr].dtype = dd_number; draw_stack[out_drawstackptr++].d.val = main_stavemagn; break; case dr_stavestart: draw_stack[out_drawstackptr].dtype = dd_number; draw_stack[out_drawstackptr++].d.val = (out_stave < 0)? 0 : (out_sysblock->startxposition + out_sysblock->xjustify - draw_ox); break; case dr_stavespace: draw_stack[out_drawstackptr].dtype = dd_number; draw_stack[out_drawstackptr++].d.val = out_sysblock->stavespacing[out_stave]; break; case dr_stembottom: draw_stack[out_drawstackptr].dtype = dd_number; draw_stack[out_drawstackptr].d.val = (n_minpitch - 130)*1000; if ((n_flags & (nf_stem | nf_stemup)) == nf_stem) draw_stack[out_drawstackptr].d.val -= cuegrace_scale(12000 + n_stemlength); draw_stack[out_drawstackptr].d.val = mac_muldiv(draw_stack[out_drawstackptr].d.val, main_stavemagn, 1000); out_drawstackptr++; break; case dr_stemtop: draw_stack[out_drawstackptr].dtype = dd_number; draw_stack[out_drawstackptr].d.val = (n_maxpitch - 126)*1000; if ((n_flags & (nf_stem | nf_stemup)) == (nf_stem | nf_stemup)) draw_stack[out_drawstackptr].d.val += cuegrace_scale(12000+ n_stemlength); draw_stack[out_drawstackptr].d.val = mac_muldiv(draw_stack[out_drawstackptr].d.val, main_stavemagn, 1000); out_drawstackptr++; break; /*** Code is common with dr_show above case dr_stringwidth: ***/ case dr_stroke: if (!currentpoint) draw_error(72, "stroke", t); c[cp++] = path_end; if (overflag) setup_overdraw(draw_thickness, x, y, c); else ps_path(x, y, c, draw_thickness); cp = xp = yp = 0; currentpoint = FALSE; break; case dr_systemdepth: draw_stack[out_drawstackptr].dtype = dd_number; draw_stack[out_drawstackptr++].d.val = out_sysblock->systemdepth; break; case dr_sub: draw_stack[out_drawstackptr-2].d.val -= draw_stack[out_drawstackptr-1].d.val; out_drawstackptr--; break; case dr_translate: draw_oy += draw_stack[--out_drawstackptr].d.val; draw_ox += draw_stack[--out_drawstackptr].d.val; break; case dr_true: draw_stack[out_drawstackptr].dtype = dd_number; draw_stack[out_drawstackptr++].d.val = 1000; break; case dr_xor: { int a1 = draw_stack[--out_drawstackptr].d.val / 1000; int a2 = draw_stack[--out_drawstackptr].d.val / 1000; draw_stack[out_drawstackptr++].d.val = (a1 ^ a2)*1000; } break; } } return TRUE; } /************************************************* * Prime stack and interpret a draw function * *************************************************/ /* This is the external interface to the drawing action. Arguments: t the node of the drawing function args vector of arguments overflag TRUE if drawing is to be saved till after the stave is done Returns: nothing */ void out_dodraw(tree_node *t, drawitem *args, BOOL overflag) { int x[100]; int y[100]; int c[100]; if (args != NULL) { int i; for (i = 1; i <= args[0].d.val; i++) draw_stack[out_drawstackptr++] = args[i]; } xp = yp = cp = level = gray = 0; currentpoint = FALSE; ps_setgray(0); (void)sub_draw(t, NULL, x, y, c, overflag); ps_setgray(0); } /* End of setdraw.c */ pmw-4.27/src/setslur.c0000644000222100022210000011237012247665016013010 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2008 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: October 2008 */ /* This file contains code for miscellanous functions used for drawing slurs. */ #include "pmwhdr.h" #include "outhdr.h" #include "pagehdr.h" /************************************************* * Set up start of slur processing * *************************************************/ /* This is called when processing [slur], both while setting up the cont structure, and while actually outputting. Argument: the slur start item Returns: the slur processing structure that was set up */ slurstr * misc_setstartslur(bstr *p) { b_slurstr *pp = (b_slurstr *)p; slurstr *s = store_Xget(sizeof(slurstr)); s->slur = pp; s->maxy = -BIGNUMBER; s->miny = BIGNUMBER; s->gaps = NULL; s->section = 1; s->lastx = s->x = s->count = s->slopeleft = s->sloperight = 0; /* Put in a default y value in case the slur doesn't cross anything visible */ s->lasty = s->y = ((pp->flags & sflag_b) == 0)? 16000 : 0; /* If this was a crossing slur, we place it second on the stack, if possible. Otherwise put it at th top. */ if ((pp->flags & sflag_x) != 0 && bar_cont->slurs != NULL) { s->next = (bar_cont->slurs)->next; (bar_cont->slurs)->next = s; } else { s->next = bar_cont->slurs; bar_cont->slurs = s; } return s; } /************************************************* * Find and unchain given slur * *************************************************/ /* This is called when processing [endslur], both while setting up the cont structure, and while actually outputting. If [endslur] has an id, we seek that slur, yielding NULL if not found; otherwise the first on the chain is yielded. Argument: the endslur item Returns: the found slur structure, removed from the chain of active slurs */ slurstr * misc_getendslur(bstr *p) { slurstr *s = bar_cont->slurs; int slurid = ((b_endslurstr *)p)->id; if (slurid != 0) { slurstr **ss = &(bar_cont->slurs); BOOL found = FALSE; while (s != NULL) { if ((s->slur)->id == slurid) { found = TRUE; *ss = s->next; break; } ss = &(s->next); s = *ss; } if (!found) return NULL; } else bar_cont->slurs = s->next; return s; } /************************************************* * Find Bezier parameter fraction * *************************************************/ /* Given the coefficients of a Bezier curve, its x coordinate end points, and a fraction, compute the value of t (0 <= t <= 1) for which the x coordinate on the curve is the same as the x coordinate of the point that is the fraction of the x-distance between the end points. This is used when drawing partial curves. The code in this function had to be massaged carefully to ensure that exactly the same result is obtained when run native and under valgrind, in order to make the tests run clean. The differences were only in the 3rd decimal place, insignificant in the actual output, but of course the comparisons failed. Arguments: f the fraction a, b, c the Bezier coefficients x0, x1 the endpoint x coordinates Returns: the t value */ static double bezfraction(double f, double a, double b, double c, double x0, double x1) { double wanted = x0 + (x1 - x0)*f; /* The wanted x coordinate */ double start = 0.0; double stop = 1.0; double step = 0.1; /* Outer repeat loop */ for (;;) { double t; /* Inner loop covers the current range */ for (t = start; t < stop + step; t += step) { double x = ((a*t + b)*t + c)*t + x0; /* Make sure that -0.0 is actually 0.0; this can be different when running valgrind. */ if (fabs(x) < 0.000001) x = 0.0; /* If stepped past the wanted point, set new bounds and a smaller step unless we are close enough. */ if (x >= wanted) { if (fabs(x - wanted) < 10.0 || step < 0.001) return t; start = t - step; stop = t; step /= 10.0; break; } } /* If didn't reach it, return the right point */ if (t >= stop + step) return stop; } return f; /* Should never be obeyed */ } /************************************************* * Get coordinates of slur gap * *************************************************/ /* For a drawing function we need the coordinates of the end points and the midpoint of a gap in the normal coordinate system. This is very tedious to compute. The results are returned in a static vector. We have to repeat a lot of the work needed for actually drawing the relevant portion of the slur. Arguments: ix0, iy0 the start coordinates of the part-slur ix1, iy1 the end coordinates of the part slur flags slur flags co co parameter start t-value for start of gap (fixed point) stop t-value for end of gap (fixed point) Returns: vector of left, middle, right coordinates */ static int coords[6]; static int * getgapcoords(int ix0, int iy0, int ix1, int iy1, int flags, int co, int start, int stop) { int above, wiggly; int ox, oy; double xx, yy, w, v; double x0, x1, x2, x3, y0, y1, y2, y3; double a, b, c, f, g; double xxl, xxr, yyl, yyr, sa, ca; /* Compute values needed for curved slur drawing. */ above = ((flags & sflag_b) == 0)? (+1) : (-1); wiggly = ((flags & sflag_w) == 0)? (+1) : (-1); xx = (double)ix1 - (double)ix0; yy = (double)iy1 - (double)iy0; w = sqrt(xx*xx + yy*yy); sa = yy/w; /* sine */ ca = xx/w; /* cosine */ w /= 2.0; v = w*0.6667; if (v > 10000.0) v = 10000.0; co = (above * (co + ((xx > 20000)? 6000 : (int)(xx * 0.3))) * main_stavemagn)/1000; f = ((double)start)/1000.0; g = ((double)stop)/1000.0; /* Calculate the origin of the coordinate system where the slur would be drawn. We don't actually have to translate or rotate, since we are not actually going to draw anything here. */ ox = (ix0+ix1+6*main_stavemagn)/2; oy = (iy0+iy1)/2; /* Set up traditional Bezier coordinates for the complete slur. */ x0 = -w; x1 = v - w + (double)out_slurclx; x2 = w - v + (double)out_slurcrx; x3 = +w; y0 = 0.05; y1 = (double)(int)(co + out_slurcly); y2 = (double)(int)(co*wiggly + out_slurcry); y3 = 0.05; /* Calculate the coefficients for the original x parametric equation. */ a = x3 - x0 + 3.0*(x1 - x2); b = 3.0*(x2 - 2.0*x1 + x0); c = 3.0*(x1 - x0); /* The given fractions are fractions along the line joining the two end points. These do not correspond linearly with the parameter t of the complete curve, so we have to calculate new fractional values. */ if (f > 0.0 && f < 1.0) f = bezfraction(f, a, b, c, x0, x3); if (g > 0.0 && g < 1.0) g = bezfraction(g, a, b, c, x0, x3); /* Now calculate the new Bezier point coordinates for ends of the portion of the slur that we want. */ xxl = x0 + ((a*f + b)*f + c)*f; xxr = x0 + ((a*g + b)*g + c)*g; /* Now do exactly the same for the y points */ a = y3 - y0 + 3.0*(y1 - y2); b = 3.0*(y2 - 2.0*y1 + y0); c = 3.0*(y1 - y0); yyl = y0 + ((a*f + b)*f + c)*f; yyr = y0 + ((a*g + b)*g + c)*g; /* Now we have to get those coordinates back into the normal coordinate system. First rotate, then remove the effect of the translation. */ coords[0] = (int)(xxl * ca - yyl * sa) + ox; coords[1] = (int)(yyl * ca + xxl * sa) + oy; coords[4] = (int)(xxr * ca - yyr * sa) + ox; coords[5] = (int)(yyr * ca + xxr * sa) + oy; /* Set up the mid point values and return the vector. */ coords[2] = (coords[0] + coords[4])/2; coords[3] = (coords[1] + coords[5])/2; return coords; } /************************************************* * Output text in a slur or line gap * *************************************************/ /* Arguments: gt the gap text structure x, y coordinates of the middle of the gap num, den slope parameters for the gap Returns: nothing */ static void out_gaptext(gaptextstr *gt, int x, int y, int num, int den) { int *matrix; int width, sn, cs; int unscaled_fontsize = ((curmovt->fontsizes)->fontsize_text)[gt->size]; int fontsize = mac_muldiv(main_stavemagn, unscaled_fontsize, 1000); matrix = ((curmovt->fontsizes)->fontmatrix_text)[gt->size]; if (matrix != NULL) memcpy(font_transform, matrix, 4*sizeof(int)); if (num != 0) /* Not horizontal */ { double hy = sqrt((double)num*(double)num + (double)den*(double)den); font_rotate((int)((45000.0*atan2((double)num, (double)den))/atan(1.0))); sn = (int)((1000.0*(double)num)/hy); cs = (int)((1000.0*(double)den)/hy); } else { sn = 0; cs = 1000; den = 1; /* To stop division by 0 below */ } width = string_width(gt->text, font_rm, fontsize); x = x - width/2 + mac_muldiv(gt->x, cs, 1000) - mac_muldiv(gt->y - fontsize/4, sn, 1000); y = y - (width*num)/(2*den) + mac_muldiv(gt->x, sn, 1000) + mac_muldiv(gt->y - fontsize/4, cs, 1000); out_string(gt->text, font_rm, fontsize, x, out_ystave - y, gt->flags); font_reset(); } /************************************************* * Compute parameters & draw a slur or line * *************************************************/ /* This function is called when [endslur] is reached, or at the end of a line. Arguments: s the active slur structure x1 the x coordinate of the end of the slur npitch pitch of the final note eol TRUE if this slur goes to the end of the line Returns: nothing */ void misc_drawslur(slurstr *s, int x1, int npitch, BOOL eol) { b_slurstr *ss = s->slur; b_slurmodstr *sm = NULL; b_slurmodstr *smm = ss->mods; BOOL sol; BOOL laststemup = out_laststemup[out_stave]; int adjustco = 0; int slurflags = ss->flags; int lineslur = (slurflags & sflag_l) != 0; int below = (slurflags & sflag_b) != 0; int absolute = (slurflags & sflag_abs) != 0; int lay = (slurflags & sflag_lay) != 0; int x0 = s->x; int y0 = s->y; int y1; /* For continued slurs in style 0 we have to adjust the apparent end points and then draw only part of the resulting slur. These are the start and end fractional values. */ int dstart = 0; int dstop = 1000; /* Note: for absolute and {und,ov}erlay positioning, all this computation is later over-ridden. We leave it in place so as not to disturb things for the x values. */ /* End of line slurs take their vertical end from the max/min under them. Allow for the fact that a line slur gets its end moved 3 pts "past" the note position. Also, suppress wiggles for the first section - the other parts do the suppression with the sol test and need to have the flag still set in order to flip the above/below bit. Note that the final note has not yet been incorporated into the max/min. */ if (eol) { if (below) y1 = (s->lasty < s->miny)? s->lasty : s->miny; else y1 = (s->lasty > s->maxy)? s->lasty : s->maxy; if (lineslur) x1 -= 3000; if (x0 != 0) slurflags &= ~sflag_w; /* No wiggle */ slurflags |= sflag_or; /* Open on right if line */ } else /* Not end of line slur */ { y1 = (npitch == 0)? L_2L : misc_ybound(below, n_prevtie, TRUE, TRUE); /* If the last note was beamed, and the slur is on the same side as the beam, we need to put in an additional bit of space for clearance. Also, if the slur is on the opposite side to the stem, ditto. */ if (below) { if (laststemup || out_lastnotebeamed) y1 -= 1000; } else { if (!laststemup || out_lastnotebeamed) y1 += 1000; } } /* Set up left position at line start; if x1 is also zero it means we have hit an [es] or [el] immediately after a bar line at a line break. This is not an error; we just invent a small distance. Turn off the wiggle flag, but if it was set, flip the above/below status. We must also do a vertical adjustment for the final part of a split wiggly slur. */ if (x0 == 0) { sol = TRUE; slurflags |= sflag_ol; /* Open on left if line */ if ((slurflags & sflag_w) != 0) { slurflags &= ~sflag_w; /* No wiggle */ below = !below; /* Other direction */ slurflags ^= sflag_b; /* Must do this too */ y1 = (npitch == 0)? L_2L : misc_ybound(below, n_prevtie, TRUE, TRUE); } x0 = out_sysblock->firstnoteposition + out_sysblock->xjustify - 10500; if (x1 == 0) { x1 = x0 + 10500; if (lineslur) x0 -= 10000; /* lines normally start 10 pts right */ } } else sol = FALSE; /* For wiggly slurs, move the final point to the other end of the last note. We don't attempt any other fancy adjustments for these slurs. */ if ((slurflags & sflag_w) != 0) { y1 = (npitch == 0)? L_2L : misc_ybound(!below, n_prevtie, TRUE, TRUE); if (!below && !laststemup && (n_flags & nf_stem) != 0) x1 -= 5*main_stavemagn; } /* For non-wiggly slurs, make adjustments according to the starting and ending slopes if there are more than three notes in the slur. The "starting" slope actually looks at more than the first note, but we aren't clever enough to do the same at the end. The curvature is adjusted according to the max/min pitch under the slur. */ else if (below) /* slur below */ { int miny = s->miny; if (!laststemup && (n_flags & nf_stem) != 0 && !lineslur && !eol) x1 -= 5*main_stavemagn; if (s->count > 3) { if (s->slopeleft < -400) y0 -= (s->slopeleft < -600)? 4000: 2000; if (s->sloperight > 400) y1 -= (s->sloperight > 600)? 4000: 2000; } if (miny < y0 && miny < y1) { int adjust = (y0 + y1)/2 - miny; if (lineslur) { if ((slurflags & sflag_h) != 0) y0 = y1 = miny; else { y0 -= adjust; y1 -= adjust; } } else adjustco += adjust; } } else /* slur above */ { int maxy = s->maxy; if (s->count > 3) { if (s->slopeleft > 400) y0 += (s->slopeleft > 600)? 4000 : 2000; if (s->sloperight < -400) y1 += (s->sloperight < -600)? 4000 : 2000; } if (maxy > y0 && maxy > y1) { int adjust = maxy - (y0 + y1)/2; if (lineslur) { if ((slurflags & sflag_h) != 0) y0 = y1 = maxy; else { y0 += adjust; y1 += adjust; } } else adjustco += adjust; } } /* Deal with the horizontal option (horizontal line slurs handled above, but other cases not yet). */ if ((slurflags & sflag_h) != 0) { if ((!below && y1 > y0) || (below && y1 < y0)) y0 = y1; else y1 = y0; } /* If this is a curved slur, arrange that the end points are not on staff lines, and ensure that for longish slurs, the centre adjustment is at least 2. Also do this for steep slurs, but not if absolute or at underlay level or if the slur is short. */ if (!lineslur) { int ay0 = abs(y0); int ay1 = abs(y1); if (below) { if (y0 >= L_1S && (ay0 % 4000) < 500) y0 -= 1000; if (y1 >= L_1S && (ay1 % 4000) < 500) y1 -= 1000; } else { if (y0 <= L_5S && (ay0 % 4000) < 500) y0 += 1000; if (y1 <= L_5S && (ay1 % 4000) < 500) y1 += 1000; } if (x1 - x0 > 72000 && adjustco < 2000) adjustco = 2000; else if (!absolute && !lay && x1 - x0 > 24000) { int overall_slope = mac_muldiv(y1 - y0, 1000, x1 - x0); if (abs(overall_slope) > 500 && adjustco < 2000) adjustco = 2000; } } /* If this is a line-type "slur", ensure that the default pitches (i_e. before adding user movement) are above or below the staff, as necessary. */ else { if (below) { if (y0 > L_1L) y0 = L_1L; if (y1 > L_1L) y1 = L_1L; } else { if (y0 < L_6L) y0 = L_6L; if (y1 < L_6L) y1 = L_6L; } } /* If the slur or line is marked as "absolute", then the vertical positions are specified without reference to any intervening notes. We allow all the above to happen, so that the correct x values get computed, and also this feature was added later and it is easier not to disturb the above code. Ditto for slurs/lines that are drawn at the underlay or overlay level. */ if (absolute) { y0 = y1 = below? 0 : 16000; } else if (lay) { y0 = y1 = below? out_sysblock->ulevel[out_stave] : out_sysblock->olevel[out_stave]; } /* Finally, apply manual adjustments. All endpoints of all sections are affected by the "ally" value. */ y0 += ss->ally; y1 += ss->ally; /* Most slurs appear on at most two lines; we need the slurmod structure for sequence number zero for endpoint adjustments in all cases except for the middle sections of a slur that exists on more than 2 lines, so get it in all cases (if it exists). */ while (smm != NULL && smm->sequence != 0) smm = smm->next; /* If this is part of a split slur, we need the slurmod structure that matches this section, and in all cases its values are used. */ if (sol || eol) { sm = ss->mods; while (sm != NULL && sm->sequence != s->section) sm = sm->next; if (sm != NULL) { x0 += sm->lx; x1 += sm->rx; y0 += sm->ly; y1 += sm->ry; adjustco += sm->c; out_slurclx = (sm->clx * main_stavemagn)/1000; out_slurcly = (sm->cly * main_stavemagn)/1000; out_slurcrx = (sm->crx * main_stavemagn)/1000; out_slurcry = (sm->cry * main_stavemagn)/1000; } } /* Other values depend on which bit of a split slur is being drawn. If it is neither the starting section nor the ending section (that is, it's a whole line of middle slur), use just the values from this section's data block. In other words, there's no more to do. */ if (sol && eol) { } /* The final portion of a split slur. Use values from its block, plus values from the zero block for the right-hand end, which is also applied to the vertical movement of the left-hand end. */ else if (sol) { if (smm != NULL) { x1 += smm->rx; y1 += smm->ry; y0 += smm->ry; } } /* The first section of a split slur. Use values from its block plus values from the zero block for the left-hand end, which is also applied to the vertical movement of the right-hand end. */ else if (eol) { if (smm != NULL) { x0 += smm->lx; y0 += smm->ly; y1 += smm->ly; } } /* An unsplit slur. Use values from the zero block. */ else if (smm != NULL) { x0 += smm->lx; x1 += smm->rx; y0 += smm->ly; y1 += smm->ry; adjustco += smm->c; out_slurclx = (smm->clx * main_stavemagn)/1000; out_slurcly = (smm->cly * main_stavemagn)/1000; out_slurcrx = (smm->crx * main_stavemagn)/1000; out_slurcry = (smm->cry * main_stavemagn)/1000; } /* Need to correct for the jog length for absolute line slurs, so that the line is at the height specified. Also need to move above slurs up. */ if (lineslur && (absolute || lay)) { int x = adjustco + 3000; if (!below) x = -x; y0 += x; y1 += x; } /* Adjust the verticals for the stave magnification */ y0 = mac_muldiv(y0, main_stavemagn, 1000); y1 = mac_muldiv(y1, main_stavemagn, 1000); /* Make adjustments and fudges for continued curved slurs if the style is not the default. */ if (eol && !lineslur && curmovt->endlineslurstyle != 0) { x1 += x1 - x0; y1 += (y1 - y0)/5; adjustco += 2*(y1 - y0)/3; dstop = 500; } if (sol && !lineslur && curmovt->endlineslurstyle != 0) { x0 -= x1 - x0; y0 -= (y1 - y0)/5; adjustco += 2*(y1 - y0)/3; dstart = 500; } /* If this is a line slur, there may be a chain of gaps to be dealt with. Note that the out_slur routine adds 7*main_stavemagn to the x1 value, to get it past the final note. */ if (lineslur && s->gaps != NULL) { b_linegapstr *lg; gapstr *pg = s->gaps; int fudge = 7*main_stavemagn; /* First scan through and compute positions for any that are specified as a fraction of the way along the line. */ while (pg != NULL) { lg = pg->gap; if (lg->hfraction >= 0) { pg->x = lg->xadjust + x0 + mac_muldiv(x1 + fudge - x0, lg->hfraction, 1000); } pg = pg->next; } /* The gaps may be in any order, horizontally. We could sort them before processing, but it is just as easy to pick out the leftmost and process it until there are none left. */ while (s->gaps != NULL) { gapstr **gg = &(s->gaps); /* Parent ptr */ gapstr *g = *gg; /* Active block ptr */ int firstx = g->x; int xg0, yg0, num, den, xwidth; /* Scan to find the leftmost */ pg = g; while (pg->next != NULL) { if ((pg->next)->x < firstx) { gg = &(pg->next); g = *gg; firstx = g->x; } pg = pg->next; } /* Draw the line to this gap, unless it has negative length. */ num = y1 - y0; den = x1 + fudge - x0; lg = g->gap; if (num == 0) /* Optimize out the common case (horizontal) */ { xwidth = lg->width; xg0 = g->x - xwidth/2; yg0 = y0; } else { double dnum = (double)num; double dden = (double)den; xwidth = (int)(((double)(lg->width) * dden) / sqrt(dnum*dnum + dden*dden)); xg0 = g->x - xwidth/2; yg0 = y0 + mac_muldiv(xg0 - x0, num, den); } if (x0 < xg0) out_slur(x0, y0, xg0 - fudge, yg0, slurflags | sflag_or, adjustco, 0, 1000); /* Update the starting position for the next section. */ x0 = xg0 + xwidth; y0 = yg0 + mac_muldiv(x0 - xg0, num, den); slurflags |= sflag_ol; /* If there is an associated draw function, set up the coordinates and call it. Note that lines are always drawn 3 points above or below the given y value, to leave space for the jog. */ if (lg->draw != NULL) { draw_lgx = xwidth / 2; draw_lgy = (y0 - yg0)/2; draw_ox = xg0 + draw_lgx; draw_oy = yg0 + draw_lgy + (below? (-3000) : (3000)); draw_gap = below? -1000 : +1000; out_dodraw(lg->draw, lg->args, FALSE); draw_lgx = draw_lgy = draw_gap = 0; } /* If there is an associated text string, arrange to print it centred in the gap. */ if (lg->gaptext != NULL) { out_gaptext(lg->gaptext, (xg0 + x0)/2, (y0 + yg0)/2 + (below? (-3000) : (3000)), num, den); } /* Extract from the chain and free the block */ *gg = g->next; store_free(g); } /* Now draw the rest of the line, if there is any left. */ if (x0 < x1) out_slur(x0, y0, x1, y1, slurflags, adjustco, 0, 1000); } /* The ability to have gaps in curved slurs was added at a later stage. Rather than mess with the above code, put in separate code to handle it. The data is the same as for line gaps. */ else if (s->gaps != NULL) { b_linegapstr *lg; gapstr *pg = s->gaps; int xlength = x1 + 7*main_stavemagn - x0; int start = dstart; int stop; /* First scan through and compute positions for any that are specified as a fraction of the way along the line. */ while (pg != NULL) { lg = pg->gap; if (lg->hfraction >= 0) { pg->x = x0 + mac_muldiv(xlength, lg->hfraction, 1000) + lg->xadjust; } pg = pg->next; } /* The gaps may be in any order, horizontally. We could sort them before processing, but it is just as easy to pick out the left- most and process it until there are none left. */ while (s->gaps != NULL) { gapstr **gg = &(s->gaps); /* Parent ptr */ gapstr *g = *gg; /* Active block ptr */ int firstx = g->x; /* Scan to find the leftmost */ pg = g; while (pg->next != NULL) { if ((pg->next)->x < firstx) { gg = &(pg->next); g = *gg; firstx = g->x; } pg = pg->next; } /* Draw the slur to this gap, unless it has negative length. */ lg = g->gap; stop = mac_muldiv(g->x - lg->width/2 - x0, 1000, xlength); if (stop > start) out_slur(x0, y0, x1, y1, slurflags, adjustco, start, stop); /* Compute start of next piece */ start = mac_muldiv(g->x + lg->width/2 - x0, 1000, xlength); /* If there is an associated draw function, set up the coordinates and call it. */ if (lg->draw != NULL) { int *c = getgapcoords(x0, y0, x1, y1, slurflags, adjustco, stop, start); draw_ox = c[2]; draw_oy = c[3]; draw_lgx = c[2] - c[0]; draw_lgy = c[3] - c[1]; draw_gap = below? -1000 : +1000; out_dodraw(lg->draw, lg->args, FALSE); draw_lgx = draw_lgy = draw_gap = 0; } /* If there's associated text, output it. */ if (lg->gaptext != NULL) { int *c = getgapcoords(x0, y0, x1, y1, slurflags, adjustco, stop, start); out_gaptext(lg->gaptext, c[2], c[3], c[5]-c[1], c[4]-c[0]); } /* Extract from the chain and free the block */ *gg = g->next; store_free(g); } /* Now draw the rest of the slur, if there is any left. */ if (start < 1000) out_slur(x0, y0, x1, y1, slurflags, adjustco, start, dstop); } /* Else we have a slur or line with no gaps specified. Output it, provided it has some positive horizontal length. If there isn't enough length, generate an error and invent some suitable length. */ else { if (x0 >= x1) { error_moan(63, out_bar, out_stave); if (x0 == x1) x1 = x0 + 10000; else { int temp = x0; x0 = x1; x1 = temp; } } out_slur(x0, y0, x1, y1, slurflags, adjustco, dstart, dstop); } /* Reset the globals that hold control point adjustments. */ out_slurclx = out_slurcly = out_slurcrx = out_slurcry = 0; /* Free the slur block, which is now finished with. */ store_free(s); } /************************************************* * Draw slur or line from given values * *************************************************/ /* Originally there were only simple slurs, and these were drawn by the ps_slur() function. When things got more complicated, additional work would have had to be done in the PostScript header file. However, in the meanwhile, the ps_path() function had been invented for drawing arbitrary shapes at the logical (non-device) level. This function (out_slur()) is now called where ps_slur() used to be called. In principle, it could do all the output. However, to keep the size of PostScript down and for compatibility with the previous PostScript, it still calls ps_slur() for PostScript output of complete, non-dashed, curved slurs that can be handled by the old code. New functionality is added in here, and in time I may remove the special PostScript into here as well. Each change will cause the PostScript to change, and hence the tests to fail to validate... Note that as well as the parameters passed as arguments, there are also parameter values in the global variables out_slurclx, out_slurcly, out_slurcrx, and out_slurcry for corrections to the control points. The t-values are the Bezier parameter values for drawing part slurs, given as fixed point values between 0 and 1.0 respectively. For a whole slur, their int values are therefore 0 and 1000. Parts of the code in this function had to be massaged carefully to ensure that exactly the same result is obtained when run native and under valgrind, in order to make the tests run clean. The differences were only in the 3rd decimal place, insignificant in the actual output, but of course the comparisons failed. Arguments: ix0, iy1 coordinates of the start of the slur ix1, iy1 coordinates of the end of the slur flag the slur flags co the co ("centre out") value start the t-value at slur start (fixed point) ) for drawing stop the t-value at slur end (fixed point) ) part-slurs Returns: nothing */ void out_slur(int ix0, int iy0, int ix1, int iy1, int flags, int co, int start, int stop) { int x[10], y[10], cc[10]; int above, wiggly, ed_adjust; double zz[4]; double xx, yy, w, v; double x0, x1, x2, x3, y0, y1, y2, y3; double ax, ay, bx, by, cx, cy, f, g; if (ix1 == ix0 && iy1 == iy0) return; /* Avoid crash */ /* Use ps_slur() to output complete, curved, non-dashed slurs to maintain compatibility and smaller PostScript files. */ if (start == 0 && stop == 1000 && (flags & (sflag_l | sflag_i)) == 0) { ps_slur(ix0, iy0, ix1, iy1, flags, co); return; } /* Compute values needed by both lines and curved slurs */ xx = (double)ix1 - (double)ix0; yy = (double)iy1 - (double)iy0; above = ((flags & sflag_b) == 0)? (+1) : (-1); /* Handle straight-line "slurs". For these, the start and stop values are not used, as partial lines are drawn as separate whole lines with appropriate jog flags. */ if ((flags & sflag_l) != 0) { int lineflags = 0; int adjust = 0; int thickness = (3*main_stavemagn)/10; ix1 += 7*main_stavemagn; co = mac_muldiv((co + 3000)*above, main_stavemagn, 1000); /* Convert the flags to the tie flags used by the ps_line function, then output the main portion of the line. Set the savedash flag if drawing a dotted line so that the jogs are drawn with the same dash settings. */ if ((flags & sflag_i) != 0) lineflags |= ((flags & sflag_idot) == 0)? tief_dashed : tief_dotted | tief_savedash; if ((flags & sflag_e) != 0) lineflags |= tief_editorial; ps_line(ix0, iy0 + co, ix1, iy1 + co, thickness, lineflags); /* Don't pass any flag settings for drawing the jogs; for dotted lines the previous savedash ensures that the same setting is used for them. For dashed lines the jogs shouldn't be dashed. For dotted lines we may need to lengthen the jog to ensure at least one extra dot is drawn, and we change the thickness. Also, reduce the gap length slightly because there's an optical illusion that makes it look bigger than it is. Avoid redrawing the dot at the joining point. */ if ((flags & sflag_idot) != 0) { thickness = main_stavemagn; ps_setdash(out_dashlength, (out_dashgaplength*95)/100, caj_round); if (abs(co) < 2*out_dashlength + out_dashgaplength) adjust = above*(2*out_dashlength + out_dashgaplength) - co; } else co += (above*thickness)/2; if ((flags & sflag_ol) == 0) ps_line(ix0, iy0 + co - above*(out_dashlength+out_dashgaplength), ix0, iy0 - adjust, thickness, 0); if ((flags & sflag_or) == 0) ps_line(ix1, iy1 + co - above*(out_dashlength+out_dashgaplength), ix1, iy1 - adjust, thickness, 0); ps_setdash(0, 0, caj_butt); /* Clear saved setting if no jogs */ return; } /* Compute values needed for curved slur drawing. */ wiggly = ((flags & sflag_w) == 0)? (+1) : (-1); w = sqrt(xx*xx + yy*yy)/2.0; v = w*0.6667; if (v > 10000.0) v = 10000.0; /* It is necessary to use floor() in the conversion of xx*0.3 to an integer in the next statement in order to get the same value under valgrind. We know that xx is positive, so we don't need to test whether to use floor() or ceil(). */ co = (above * (co + ((xx > 20000)? 6000 : (int)(floor(xx * 0.3)))) * main_stavemagn)/1000; f = ((double)start)/1000.0; g = ((double)stop)/1000.0; /* Preserve current coordinate system, translate and rotate so that the end points of the slur lie on the x-axis, symetrically about the origin. For ps_translate, the y value is relative to the stave base. Thereafter use ps_abspath() for absolute values. */ ps_gsave(); ps_translate((ix0+ix1+6*main_stavemagn)/2, (iy0+iy1)/2); ps_rotate(atan2(yy, xx)); /* Set up traditional Bezier coordinates for the complete slur. */ x0 = -w; x1 = v - w + (double)out_slurclx; x2 = w - v + (double)out_slurcrx; x3 = +w; y0 = 50.0; y1 = (double)(int)(co + out_slurcly); y2 = (double)(int)(co*wiggly + out_slurcry); y3 = 50.0; /* Calculate the coefficients for the original x parametric equation. */ ax = x3 - x0 + 3.0*(x1 - x2); bx = 3.0*(x2 - 2.0*x1 + x0); cx = 3.0*(x1 - x0); /* The given fractions are fractions along the line joining the two end points. These do not correspond linearly with the parameter t of the complete curve, so we have to calculate new fractional values. */ if (f > 0.0 && f < 1.0) f = bezfraction(f, ax, bx, cx, x0, x3); if (g > 0.0 && g < 1.0) g = bezfraction(g, ax, bx, cx, x0, x3); /* Now calculate the new Bezier point coordinates for the portion of the slur that we want, and set up the first path to be that portion. We used to compute the x values with just an (int) cast, but this gave slightly different values under valgrind. Using floor() or ceil() with a rounding value solves that problem. */ zz[0] = x0 + ((ax*f + bx)*f + cx)*f; zz[1] = x0 + (((3.0*ax*g + bx)*f + 2.0*(bx*g + cx))*f + cx*g)/3.0; zz[2] = x0 + (((3.0*ax*g + 2.0*bx)*g + cx)*f + 2.0*cx*g + bx*g*g)/3.0; zz[3] = x0 + ((ax*g + bx)*g + cx)*g; x[0] = (zz[0] >= 0.0)? (int)(floor(zz[0] + 0.0001)) : (int)(ceil(zz[0] - 0.0001)); x[1] = (zz[1] >= 0.0)? (int)(floor(zz[1] + 0.0001)) : (int)(ceil(zz[1] - 0.0001)); x[2] = (zz[2] >= 0.0)? (int)(floor(zz[2] + 0.0001)) : (int)(ceil(zz[2] - 0.0001)); x[3] = (zz[3] >= 0.0)? (int)(floor(zz[3] + 0.0001)) : (int)(ceil(zz[3] - 0.0001)); /* Now do exactly the same for the y points */ ay = y3 - y0 + 3.0*(y1 - y2); by = 3.0*(y2 - 2.0*y1 + y0); cy = 3.0*(y1 - y0); zz[0] = y0 + ((ay*f + by)*f + cy)*f; zz[1] = y0 + (((3.0*ay*g + by)*f + 2.0*(by*g + cy))*f + cy*g)/3.0; zz[2] = y0 + (((3.0*ay*g + 2.0*by)*g + cy)*f + 2.0*cy*g + by*g*g)/3.0; zz[3] = y0 + ((ay*g + by)*g + cy)*g; y[0] = (zz[0] >= 0.0)? (int)(floor(zz[0] + 0.0001)) : (int)(ceil(zz[0] - 0.0001)); y[1] = (zz[1] >= 0.0)? (int)(floor(zz[1] + 0.0001)) : (int)(ceil(zz[1] - 0.0001)); y[2] = (zz[2] >= 0.0)? (int)(floor(zz[2] + 0.0001)) : (int)(ceil(zz[2] - 0.0001)); y[3] = (zz[3] >= 0.0)? (int)(floor(zz[3] + 0.0001)) : (int)(ceil(zz[3] - 0.0001)); cc[0] = path_move; cc[1] = path_curve; /* Deal with dashed slurs. The only way to do a decent job is to calculate the actual length of the slur. This has to be done the hard way by numerically integrating along the path, as the formulae don't give an analytic answer. To make sure that a full dash ends the slur when there are gaps in the slur, arrange for the slur to be drawn backwards if it doesn't start at the beginning, but does end at the end. (We could compute separate dashes for the individual parts, but that would probably look odd. Slurgaps in dashes slurs should be most rare, anyway.) */ if ((flags & sflag_i) != 0) { int dashcount, dashlength, gaplength, thickness, length; double dlength = 0.0; double xp = x0; double yp = y0; double t; /* Compute the curve length by integration. */ for (t = 0.0; t < 1.04; t += 0.05) { double xx = ((ax*t + bx)*t + cx)*t + x0; double yy = ((ay*t + by)*t + cy)*t + y0; dlength += sqrt((xx-xp)*(xx-xp) + (yy-yp)*(yy-yp)); xp = xx; yp = yy; } length = (int)dlength; /* Choose a dash length, spacing parameter, and line thickness */ if ((flags & sflag_idot) == 0) { dashlength = length/14; if (dashlength < 3000) dashlength = 3000; gaplength = (dashlength * 875)/1000; thickness = 500; } else { dashlength = 100; gaplength = ((length < 20000)? 3 : 4) * main_stavemagn; thickness = main_stavemagn; } /* Compute the number of dashes; if greater than one, compute the accurate gaplength and set dashing. */ dashcount = (length + gaplength + (dashlength + gaplength)/2) / (dashlength + gaplength); if (dashcount > 1) { gaplength = (length - dashcount * dashlength)/(dashcount - 1); ps_setdash(dashlength, gaplength, ((flags & sflag_idot) == 0)? caj_butt : caj_round); } /* Invert drawing order of partial curve that ends at the full end */ if (start > 0 && stop == 1000) { int tt; tt = x[0]; x[0] = x[3]; x[3] = tt; tt = x[1]; x[1] = x[2]; x[2] = tt; tt = y[0]; y[0] = y[3]; y[3] = tt; tt = y[1]; y[1] = y[2]; y[2] = tt; } /* Draw the dashed curve, and set editorial line adjustment to zero. */ cc[2] = path_end; ps_abspath(x, y, cc, thickness); ps_setdash(0, 0, caj_butt); ed_adjust = 0; } /* Deal with a non-dashed slur. For the other boundary of the slur, only the y coordinates of the control points change. */ else { double aay, bby, ccy; ed_adjust = (9*main_stavemagn)/10; x[4] = x[3]; x[5] = x[2]; x[6] = x[1]; x[7] = x[0]; y0 = -50.0; y1 = (double)(int)(co + above*main_stavemagn + out_slurcly); y2 = (double)(int)(co*wiggly + above*main_stavemagn + out_slurcry); y3 = -50.0; aay = y3 - y0 + 3.0*(y1 - y2); bby = 3.0*(y2 - 2.0*y1 + y0); ccy = 3.0*(y1 - y0); y[7] = (int)(y0 + ((aay*f + bby)*f + ccy)*f); y[6] = (int)(y0 + (((3.0*aay*g + bby)*f + 2.0*(bby*g + ccy))*f + ccy*g)/3.0); y[5] = (int)(y0 + (((3.0*aay*g + 2.0*bby)*g + ccy)*f + 2.0*ccy*g + bby*g*g)/3.0); y[4] = (int)(y0 + ((aay*g + bby)*g + ccy)*g); cc[2] = path_line; cc[3] = path_curve; x[8] = x[0]; y[8] = y[0]; cc[4] = path_line; cc[5] = path_end; /* Fill the path (thickness = -1) */ ps_abspath(x, y, cc, -1); } /* Deal with editorial slurs - only draw the mark when drawing the middle portion. */ if ((flags & sflag_e) != 0 && start < 500 && stop > 500) { int xx, yy; double dx, dy, theta, cs, sn; /* Calculate the midpoint of the curve from the parametric equations taking t = 0.5, and also calculate the slope at that point. */ xx = (int)(((ax*0.5 + bx)*0.5 + cx)*0.5 - w); dx = (3.0*ax*0.5 + 2.0*bx)*0.5 + cx; yy = (int)(((ay*0.5 + by)*0.5 + cy)*0.5); dy = (3.0*ay*0.5 + 2.0*by)*0.5 + cy; /* Draw the editorial mark. Translate and rotate gave rounding errors, so do it by steam. */ theta = atan2(dy, dx); cs = cos(theta); sn = sin(theta); if (above > 0) { x[0] = xx - (int)((2000.0+(double)ed_adjust)*sn); y[0] = yy + (int)((2000.0+(double)ed_adjust)*cs); x[1] = xx + (int)(2000.0*sn); y[1] = yy - (int)(2000.0*cs); } else { x[0] = xx - (int)(2000.0*sn); y[0] = yy + (int)(2000.0*cs); x[1] = xx + (int)((2000.0+(double)ed_adjust)*sn); y[1] = yy - (int)((2000.0+(double)ed_adjust)*cs); } cc[0] = path_move; cc[1] = path_line; cc[2] = path_end; ps_abspath(x, y, cc, 400); } /* Restore the former coordinate system. */ ps_grestore(); } /* End of setslur.c */ pmw-4.27/src/error.c0000644000222100022210000003661512247665016012447 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 2nd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2010 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: December 2010 */ /* This file contains code for handling errors. There are some spares in the list of messages. They were Acorn-specific ones that are no longer in use. These numbers can be re-used for new errors. */ #include "pmwhdr.h" #include "readhdr.h" /************************************************* * Texts and return codes * *************************************************/ typedef struct { char rc; char *text; } error_struct; static error_struct error_data[] = { /* 0-4 */ { rc_disaster, "Failed to decode command line: \"%s\" %s\n" }, { rc_disaster, "Ran out of memory: increase free memory (e.g. by removing tasks)\n" }, { rc_disaster, "Internal failure - store overlap upwards (%x %d %x)\n" }, { rc_disaster, "Internal failure - store overlap downwards (%x %d %x)\n" }, { rc_serious, "Unable to open file \"%s\": %s\n" }, /* 5-9 */ { rc_serious, "%s\n" }, { rc_serious, "Wrong data type on stack for \"%s\" while drawing \"%s\" %s\n" }, { rc_disaster, "Unable to open font file \"%s\": %s (check PMW installation)\n" }, { rc_serious, "Defined name expected after \"&\"\n" }, { rc_serious, "The name \"%s\" has not been defined\n" }, /* 10-14 */ { rc_serious, "%s expected" }, { rc_disaster, "Bad -printscale value on command line\n" }, { rc_serious, "Pre-processing directive expected\n" }, { rc_serious, "Unknown pre-processing directive \"%s\"\n" }, { rc_serious, "The name \"%s\" is already defined\n" }, /* 15-19 */ { rc_serious, "Included files too deeply nested (max depth is %d)\n" }, { rc_warning, "Warning: %s\n" }, { rc_serious, "Unexpected %s\n" }, { rc_serious, "Missing \"*fi\" at end of file\n" }, { rc_serious, "Unknown heading directive \"%s\"" }, /* 20-24 */ { rc_serious, "This directive is permitted only in the first movement's\nheading" }, { rc_serious, "Numbers out of order\n" }, { rc_failed, "Stave number too large - must be less than %d\n" }, { rc_failed, "Unexpected end of file while reading string\n" }, { rc_serious, "Unsupported key signature\n" }, /* 25-29 */ { rc_disaster, "Unable to find basic font definitions - check font list file\n" }, { rc_failed, "Too many different fonts declared (max is %d)\n" }, { rc_serious, "Malformed hexadecimal number after \"\\x\": unexpected '%c'\n" }, { rc_failed, "Incorrect PMW version (%f expected, %f used)\n" }, { rc_failed, "Start of stave or new movement expected\n" }, /* 30-34 */ { rc_failed, "%s expected\n" }, { rc_failed, "Stave %d%M is supplied twice or is out of order\n" }, { rc_serious, "Unknown stave directive \"%s\"" }, { rc_serious, "Wiggly %s are not supported\n" }, { rc_serious, "[reset] may not follow an item which relates to the following note\n" }, /* 35-39 */ { rc_serious, "[reset] may not appear inside an irregular note group\n" }, { rc_failed, "More than %d bars read%M - use BARCOUNT to increase the limit\n" }, { rc_serious, "%s expected\n" }, { rc_serious, "Mis-matched curly brackets\n" }, { rc_serious, "Invalid text size (a number in the range 1 to %d was expected)\n" }, /* 40-44 */ { rc_serious, "Unknown escape character \"%c\" follows \"\\\" - skipping rest of string\n" }, { rc_disaster, "Unable to access %s: %s\n" }, { rc_serious, "Stave number too large - maximum is %d\n" }, { rc_serious, "A chord may not contain a rest\n" }, { rc_serious, "The notes of a chord must all be the same length\n" }, /* 45-49 */ { rc_serious, "Error in note expression or ornament data\n" }, { rc_serious, "Conflicting stem direction requests %s\n" }, { rc_serious, "The \\sw\\ option is only available for beamed notes when the\n" " stem direction of the first note is forced\n" }, { rc_serious, "%s must be on the first note of a chord\n" }, { rc_serious, "Incorrect length for bar %b, stave %d%M - too %s by %l\n" }, /* 50-54 */ { rc_failed, "Internal failure - transposition (%d, %d, %d, %d)\n" }, { rc_warning, "Warning: tie after rest ignored\n" }, { rc_serious, "Mis-placed curly bracket\n" }, { rc_serious, "Character number not in range 32-255\n" }, { rc_serious, "%s expected - skipping to end of string\n" }, /* 55-59 */ { rc_warning, "Warning: Bar %b%M is too wide for the page at %f points.\n" " Clefs, keys, etc. at the start occupy %f points. The bar will\n" " be compressed to fit within the line width of %f points.\n" }, { rc_warning, "Warning: There is insufficient space to print a cautionary key or\n" " time signature at the end of the line, following bar %b%M\n" }, { rc_disaster, "Internal error - unknown item %d in bar data\n" }, { rc_warning, "Warning: Bar %b of stave %d%M has a different length to " "bar %b\n on an earlier stave\n" "The expected length of bar %b is %l\n" "The actual length of bar %b on stave %d is %l\n" }, { rc_failed, "Metrics file for font \"%s\" not found in \"%s\"\n" }, /* 60-64 */ { rc_disaster, "Internal failure - position data missing in bar %b, stave %d%M.\n" "The musical offset is %d, which is %l.\n" }, { rc_serious, "Insufficient space to print notes on opposite sides of beam\n" " in bar %b of stave %d%M\n" }, { rc_serious, "Slur or line \"%c\" not found for [endslur], [endline], or [linegap]\n" "Detected in bar %b of stave %d%M\n" }, { rc_serious, "Attempt to draw slur or line of zero or negative length\n" "Detected in bar %b of stave %d%M\n" }, { rc_serious, "The musical system starting at bar %b of movement %d is deeper\n" "than the page length (by %f point%s) and cannot be handled\n" }, /* 65-69 */ { rc_warning, "Warning: There is underlay or overlay text left over at the end of\n" " stave %d%M\n" }, { rc_disaster, "-printside must specify 1 or 2 on command line\n" }, { rc_serious, "[reset] may not occur before the first note of a bar\n" }, { rc_serious, "Accidentals, dynamics and ornaments may not be specified for rests\n" }, { rc_serious, "\"%s\" is not a known variable or operator name in a draw item\n" }, /* 70-74 */ { rc_serious, "The drawing function \"%s\" has not been defined\n" }, { rc_serious, "Stack underflow for \"%s\" while drawing \"%s\" %s\n" }, { rc_serious, "No current point for \"%s\" command while drawing \"%s\" %s\n" }, { rc_failed, "Unexpected [newmovement] - has an [endstave] been omitted?\n" }, { rc_serious, "Malformed stave selection on command line\n" }, /* 75-79 */ { rc_serious, "Malformed page list on command line\n" }, { rc_disaster, "Page range out of order on command line\n" }, { rc_disaster, "Malformed -dsb option data\n" }, { rc_warning, "Character value %d is greater than 255 for a non-standardly encoded\n" " font - changed to %d\n" }, { rc_warning, "Unsupported Unicode code point U+%04X changed to U+%04X\n" }, /* 80-84 */ { rc_serious, "Too many noteheads at the same or adjacent levels in a chord\n" }, { rc_failed, "An input line is too long - please split and reprocess\n" }, { rc_serious, "Corrupted text item for \"%s\" command while drawing \"%s\" %s\n" }, { rc_serious, "Incomplete irregular note group at end of bar\n" }, { rc_serious, "Draw subroutines too deeply nested%swhile drawing \"%s\" %s\n" }, /* 85-89 */ { rc_serious, "Too many tempo changes (maximum number is %d)\n" }, { rc_serious, "Tempo changes must be in ascending order of bar numbers\n" }, { rc_failed, "Invalid time signature\n" }, { rc_failed, "An input line is too long when macros are expanded -\n" " please split the line and reprocess\n" }, { rc_warning, "Warning: Note spacing changed for breves only - is this really what\n" " was intended? (Perhaps \"*\" has been omitted?)\n" }, /* 90-94 */ { rc_warning, "Warning: Hyphen string setting on non-underlay/overlay string ignored\n" }, { rc_disaster, "Internal failure - hyphen type not found in bar %b of stave %d %M\n" }, { rc_serious, "Only two subsidiary strings are allowed\n" }, { rc_serious, "[Linegap] cannot be applied to a slur\n" "Detected in bar %b of stave %d%M\n" }, { rc_serious, "Editorial marks on intermittent slurs or lines are not supported\n" }, /* 95-99 */ { rc_serious, "Division by zero while drawing %s\"%s\" %s\n" }, { rc_serious, "Accidentals for printing above or below must be on the " "first note of a chord\n" }, { rc_serious, "Font stretching or shearing is not %s %s\n" }, { rc_serious, "Font rotation is not %s %s\n" }, { rc_serious, "Closing bracket missing in macro argument list\n" }, /* 100-104 */ { rc_serious, "Too many draw variables defined (limit is %d)\n" }, { rc_serious, "%sMisused \"def\" operator while drawing \"%s\" %s\n" }, { rc_failed, "Cannot halve C or A time signature\n" }, { rc_failed, "Cannot handle notes longer than a breve or shorter than a hemidemisemiquaver\n" }, { rc_warning, "Warning: The format word \"%s\" is not tested anywhere in the input file\n" }, /* 105-109 */ { rc_serious, "Clef name expected\n" }, { rc_warning, "Warning: Stave %d specified (or defaulted) more than once in \"%s\" directive\n" }, { rc_serious, "Setting stave spacing for stave 0 is not allowed\n" }, { rc_serious, "A small note head may not be specified for a grace note\n" }, { rc_serious, "Incorrect MIDI %s number (must be between 1 and %d inclusive)\n" }, /* 110-114 */ { rc_serious, "Unrecognized MIDI %s name: \"%s\"\n" }, { rc_warning, "Warning: One or more coupled notes were encountered where the stave spacing\n" "was not a multiple of 4 points (scaled to the size of the staves)\n" }, { rc_warning, "Warning: Cannot decrease page number: attempt to set page %d on page %d\n" "Detected in bar %b of stave %d%M\n" }, { rc_serious, "/%c may not appear in data for a split section of a slur\n" }, { rc_warning, "Warning: Accidental ignored before \"p\"\n" }, /* 115-119 */ { rc_serious, "No previous note to copy, or previous note cannot be copied\n" }, { rc_serious, "Closing curly bracket missing%swhile drawing \"%s\" %s\n" }, { rc_serious, "Invalid argument for conditional or looping command%swhile drawing \"%s\" %s\n" }, { rc_serious, "Unmatched closing curly bracket in drawing function \"%s\"\n" }, { rc_serious, "[Slurgap] cannot be applied to a line\n" "Detected in bar %b of stave %d%M\n" }, /* 120-124 */ { rc_disaster, "Too many movements (maximum %d)\n" }, { rc_serious, "Stack overflow for \"%s\" while drawing \"%s\" %s\n" }, { rc_failed, "Error while reading font metrics for \"%s\": %s%s\n" }, { rc_serious, "Malformed MIDI bar selection on command line\n" }, { rc_disaster, "Malformed options in .pmwrc file: \"%s\" %s\n" }, /* 125-129 */ { rc_serious, "Unrecognized escape sequence \"%s\"\n" }, { rc_serious, "Unrecognized clef name \"%s\"\n" }, { rc_failed, "Metrics file for font \"%s\" not found in \"%s\" or \"%s\"\n" }, { rc_serious, "Unknown accent number %d\n" }, { rc_serious, "Can't have both staccato and staccatissimo\n" }, { rc_disaster, "PostScript font \"%s\" not found in \"%s\" or \"%s\"\n" } /* 130-134 */ }; #define error_maxerror 130 /* Tests are in misctests/Errors */ /* Save some typing */ #define eprintf(s) fprintf(stderr, "%s", CS s) /************************************************* * Generate error message * *************************************************/ /* Arguments: n error number ... arguments for error text Returns: nothing */ void error_moan(int n, ...) { int rc; int oldchptr; uschar buff[256]; va_list ap; va_start(ap, n); if (!main_shownlogo) { sprintf(CS buff, "PMW version %s\n", version_string); eprintf(buff); main_shownlogo = TRUE; } /* Now set up the text in the buffer */ if (n > error_maxerror) { sprintf(CS buff, "** Unknown error number %d\n", n); rc = rc_disaster; } else { Ustrcpy(buff, "** "); format_vsprintf(buff + 3, error_data[n].text, ap); rc = error_data[n].rc; } /* Save character position for marking input line reflection */ oldchptr = read_chptr - this_buffer - 1; /* We skip to the end of the input line or ']' or '\' for certain errors. However, we don't skip to EOL if we are in fact at the start of a line, since that case must really be a mistake in the previous line. */ if (n == 10 || n == 19 || n == 20 || n == 32) switch(error_skip) { case skip_EOL: if (read_chptr != this_buffer + 1) { Ustrcat(buff, " - skipping to end of line\n"); read_chptr = read_endptr; read_ch = ' '; } else Ustrcat(buff, "\n"); break; case skip_KET: Ustrcat(buff, " - skipping to next \"]\" or end of line\n"); while (read_ch != ']' && read_ch != '\n' && read_ch != EOF) next_ch(); sigch(); break; default: Ustrcat(buff, " - skipping to next \"\\\" or end of line\n"); while (read_ch != '\\' && read_ch != '\n' && read_ch != EOF) next_ch(); sigch(); break; } /* Display the message */ eprintf(buff); /* Any error before initialization is complete is a disaster */ if (!main_initialized) rc = rc_disaster; /* If the line number is non-zero, show it, but only in the reading state. We used to add the file name only for included files, but now it is always included for the benefit of people who use the "compilation mode" of Emacs (or similar feature in other environments). This makes use of the error messages and is able to open the file at the place where the error was found during the compilation, but of course it needs the file name. */ if (reading_input) { if (read_linenumber > 0) { uschar *name = (main_filename == NULL)? US"" : main_filename; if (read_filestackptr > 0) sprintf(CS buff, "** File \"%s\" (included), near line %d", name, read_linenumber); else sprintf(CS buff, "** File \"%s\", near line %d", name, read_linenumber); eprintf(buff); } /* Show the input line unless it is a null string. The error_ptr_correction value is used to point the the correct place in strings which have already been fully read. However, if the string spreads over several lines, we can't do this. If the pointer is at the start of the line, show the previous line as well, if it is significant. */ if (this_buffer[0] != 0 || prev_buffer[0] != 0) { if (error_ptr_correction <= oldchptr) oldchptr -= error_ptr_correction; error_ptr_correction = 0; eprintf(US":\n"); if (prev_buffer[0] != 0 && oldchptr <= 0) eprintf(prev_buffer); eprintf(this_buffer); if (oldchptr >= 0 && !read_EOF) { int i; /* Some people use unbeliveably long input lines */ while (oldchptr > 250) { for (i = 0; i < 250; i++) buff[i] = ' '; buff[i] = 0; eprintf(buff); oldchptr -= 250; } for (i = 0; i < oldchptr; i++) buff[i] = ' '; sprintf(CS buff+i, "<"); eprintf(buff); } } } eprintf(US"\n"); /* Disaster if too many errors */ if (rc > rc_warning) { error_count++; if (error_count > 40) { eprintf(US"** Too many errors - rest of file not scanned\n"); if (rc < rc_failed) rc = rc_failed; } } /* Save the highest return code and exit if too serious */ if (rc > main_rc) main_rc = rc; if (rc >= rc_failed) { eprintf(US"** Hard error: PMW abandoned\n"); exit(rc); } } /* End of error.c */ pmw-4.27/src/outhdr.h0000644000222100022210000003655112247665016012627 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2010 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: October 2013 */ /* This is the header file for the output routines. */ /* These capandjoin values were actually used directly on the Acorn screen, but are now interpreted for PostScript output. */ #define caj_butt 0x00000000 #define caj_round 0x00010100 #define caj_square 0x00020200 #define caj_mitre_join 0x00000000 #define caj_round_join 0x00000001 #define caj_bevel_join 0x00000002 /* Bar line types are the relevant characters in the music font */ #define bar_single '@' #define bar_double 'A' #define bar_thick 'B' #define bar_dotted '[' /* Types for repeat marks are indexes into a table */ #define rep_right 0 #define rep_left 15 #define rep_dright 30 #define rep_dleft 45 /* Path types */ #define path_end 0 #define path_move 2 #define path_curve 6 #define path_line 8 /************************************************* * Enumerations * *************************************************/ /* Characters in a virtual musical font. These are used to index the table out_mftable_ps, which is defined in tables.c and must be kept in step. The order is arbitrary. */ enum { mc_trebleclef, mc_trebleTclef, mc_trebleDclef, mc_bassclef, mc_Cbassclef, mc_Sbassclef, mc_cbaritoneclef, mc_tenorclef, mc_altoclef, mc_mezzoclef, mc_sopranoclef, mc_natural, mc_sharp, mc_dsharp, mc_flat, mc_dflat, mc_rnatural, mc_rsharp, mc_rdsharp, mc_rflat, mc_rdflat, mc_snatural, mc_ssharp, mc_sdsharp, mc_sflat, mc_sdflat, mc_common, mc_cut, mc_longrest, mc_trebleTBclef, mc_hclef, mc_baritoneclef, mc_deepbassclef, mc_oldbassclef, mc_oldCbassclef, mc_oldSbassclef, mc_oldcbaritoneclef, mc_oldtenorclef, mc_oldaltoclef, mc_oldmezzoclef, mc_oldsopranoclef, mc_oldbaritoneclef, mc_olddeepbassclef, mc_hsharp1, mc_hrsharp1, mc_hssharp1, mc_hsharp2, mc_hrsharp2, mc_hssharp2, mc_hflat1, mc_hrflat1, mc_hsflat1, mc_hflat2, mc_hrflat2, mc_hsflat2 }; /* Switch for join sign routine */ enum { join_barline, join_brace, join_bracket, join_thinbracket }; /* Note sizes */ enum { size_music, size_grace, size_cue, size_cuegrace }; /* Print configuration options */ enum { pc_a4sideways, pc_a4ona3, pc_a5ona4, pc_EPS }; /************************************************* * Global variables * *************************************************/ extern contstr *bar_cont; /* Cont structure when in bar */ extern b_notestr *beam_first; extern b_notestr *beam_last; extern uschar *beam_stemadjusts; extern int beam_accrit; /* Accel. or Rit. beam */ extern BOOL beam_continued; /* True if beam continued into bar */ extern int beam_count; /* Count of notes in beam */ extern int beam_firstmoff; /* Moff of first note */ extern int beam_firstpitch; /* Pitch of first note */ extern int beam_firstX; /* Coordinate of first note */ extern int beam_firstY; extern int beam_forceslope; /* Forced slope */ extern int beam_lastmoff; /* Moff of last note */ extern int beam_offset; /* Vertical adjustment of beam */ extern int beam_offsetadjust; /* Forced adjustment */ extern int beam_overbeam; /* TRUE if going over bar line */ extern int beam_seq; extern int beam_slope; /* Slope of beam */ extern int beam_splitOK; /* OK to have notes on both sides */ extern int beam_upflag; /* Above or below first note */ extern int beam_Xcorrection; /* Correction for stem position */ extern BOOL error_111; /* Flag for coupling error */ /* The information for the current note remains there afterwards, for use by things which follow (e.g. ties). */ extern int n_acc; /* Current accidental */ extern int n_accleft; /* Current note's accleft value */ extern int n_beamed; /* Current note's beaming status */ extern int n_cueadjust; /* Horiz. adjustment for grace/cue */ extern int n_chordcount; /* Notes in current chord */ extern int n_chordflags; /* Flags for whole chord */ extern int n_chordacflags; extern int n_dotxadjust; /* X adjustment for dot */ extern int n_firstacc; /* For first note in chord */ extern int n_flags; /* Current note */ extern int n_acflags; /* Ditto */ extern int n_fontsize; /* Size of font for note */ extern int n_gracecount; /* Count of grace note run */ extern int n_gracemoff; /* Offset for grace notes */ extern BOOL n_nhtied; /* Tie at notehead end */ extern BOOL n_invertleft; /* True if left invert in chord */ extern BOOL n_invertright; /* Ditto right */ extern int n_lastacc; /* For last note in chord */ extern b_notestr *n_lastnote; /* Last note set */ extern int n_length; /* Length of current note */ extern int n_longrestmid; /* Long rest mid point */ extern int n_masq; /* Masquerade for current note */ extern int n_maxaccleft; /* Max accidental left in chord */ extern int n_maxpitch; /* Max pitch of current note/chord */ extern int n_minpitch; /* Min ditto */ extern b_tiestr *n_nexttie; /* Outgoing tie */ extern int n_notetype; /* Type of current note */ extern int n_orig_stemlength; /* Value for first note of chord */ extern b_ornamentstr *n_ornament; /* Ornament for current note */ extern int n_pcorrection; /* Pitch correction for grace etc. */ extern int n_pitch; /* Stave pitch of current note */ extern b_tiestr *n_prevtie; /* Incoming tie */ extern int n_restlevel; /* Rest level adjustment for note */ extern int n_stemlength; /* Adjust for stem length for note */ extern int n_upflag; /* TRUE if stem direction is up */ extern int n_upfactor; /* (+1)/(-1) according to direction */ extern int n_x; /* X coordinate of current note */ extern mfstr *out_mftable_ps[]; /* Points to music font table */ extern int out_acctable[]; /* Table of accidental chars */ extern int *out_depthvector; /* Vector for stave positions */ extern int out_bar; /* Current bar number */ extern int out_barchar; /* Barline character */ extern int out_barlinex; /* Current barline x position */ extern int out_barx; /* Coordinate of bar start */ extern int out_bbox[]; /* Approximate bounding box */ extern BOOL out_beaming; /* Set when beaming */ extern contstr *out_cont; /* Local cont structure */ extern int out_dashgaplength; /* Set dash gap length */ extern int out_dashlength; /* Set dash length */ extern int out_deepybarend; /* Full length bar depth */ extern int out_downgap; /* For coupled notes */ extern FILE *out_drawfile; /* For draw file writing */ extern b_drawstr *out_drawqueue[]; /* Queue of pending draws */ extern int out_drawqueueptr; extern int out_drawstackptr; /* Draw stack pointer */ extern int out_dynmovef[]; /* Dynamic bracket flags */ extern int out_dynmovex[]; /* Dynamic moves */ extern int out_dynmovey[]; extern BOOL out_gracefound; /* Found grace note for this note */ extern int out_grace_fudge; /* Fudge for grace/accidental */ extern BOOL out_gracenotes; /* Outputting gracenotes */ extern BOOL out_hairpinhalf; /* True when starting "half" hairpin */ extern int out_joinxposition; /* Coordinate for joining signs */ extern int out_keycount; /* Count for successive keys */ extern int out_lastbarlinex; /* Coordinate of previous bar line */ extern BOOL out_lastbarwide; /* Last barline was wide */ extern BOOL out_lastnotebeamed; /* Last note was beamed */ extern int out_lastnotex; /* Only valid if last thing was a note */ extern int out_laststave; /* Current max stave number */ extern uschar out_laststemup[]; /* Flags for each stave*/ extern BOOL out_lineendflag; /* TRUE if setting last bar on line */ extern BOOL out_makedraw; /* Making a draw file */ extern int out_manyrest; /* Set > 1 for multi-rest bars */ extern int out_moff; /* Current musical offset */ extern b_notestr *out_notelist[]; /* List of notes in chord */ extern int out_notex; /* Coordinate of previous note */ extern BOOL out_omitbarline; /* Used for repeats, etc. */ extern overdrawstr *out_overdraw; /* For saving drawing till end of stave */ extern BOOL out_passedreset; /* Sic */ extern int out_pden; /* Plet denominator */ extern b_pletstr *out_plet; /* Current plet */ extern int out_plet_highest; /* Max y during a plet */ extern int out_plet_highest_head; /* Highest notehead */ extern int out_plet_lowest; /* Min y during a plet */ extern int out_plet_x; /* Starting x */ extern int out_pnum; /* And numerator */ extern posstr *out_poslast; /* Points to last entry in postable */ extern posstr *out_posptr; /* Pointer in postable */ extern posstr *out_postable; /* Points to postable */ extern int out_posxRL; /* RL value for this bar */ extern b_prevbarstr *out_prevbar; /* For previous barline (omitempty bars) */ extern int out_prevtieflag; /* Tie flag for previous note */ extern BOOL out_repeatonbarline; /* Left repeat printed on bar line */ extern int out_slurclx; /* Slur control point adjustments */ extern int out_slurcly; extern int out_slurcrx; extern int out_slurcry; extern BOOL out_slurstarted; /* Force next note to set values */ extern BOOL out_startlinebar; /* TRUE at start of line */ extern int out_stave; /* Current stave */ extern uschar out_stavechar10[]; /* 100-point stave characters */ extern uschar out_stavechar1[]; /* 10-point stave characters */ extern int out_stavelines; /* Number of stave lines + old percussion flag */ extern int out_stavebottom; /* Bottom level of stave */ extern int out_stavetop; /* Top level of stave */ extern sysblock *out_sysblock; /* Current system block */ extern int out_textnextabove; /* Position for next string above */ extern int out_textnextbelow; /* Position for next string below */ extern b_textstr *out_textqueue[]; /* Queue of pending text */ extern int out_textqueueptr; extern b_textXstr *out_textX; /* Current extra block */ extern b_textXstr *out_textXqueue[]; /* Queue of extra blocks */ extern int out_timecount; /* Count for successive times */ extern b_tremolostr *out_tremolo; /* Current tremolo */ extern BOOL out_tremupflag; /* Left-hand direction flag */ extern int out_tremx; /* Left-hand x for same */ extern int out_tremy; /* y value of left-hand note */ extern int out_upgap; /* For coupled notes */ extern int out_Xadjustment; /* Result of [move] */ extern int out_Yadjustment; /* Ditto */ extern int out_ybarend; /* Bottom of barline */ extern int out_yposition; /* Current system position */ extern int out_ystave; /* Ditto for stave */ extern int out_zcopycount; /* Count of stave zeros on this system */ extern int output_copies; /* Printing copies */ extern BOOL output_duplex; extern BOOL output_includefont; /* Include font in output */ extern stave_list *output_pagelist; /* List of pages being output */ extern BOOL output_manualfeed; /* Manualfeed flag */ extern BOOL output_tumble; extern int print_xpageoffset; /* Values for printing */ extern int print_ypageoffset; extern BOOL rendering_drawfile; /* True when rendering draw file */ extern FILE *ps_file; /* PostScript output file */ extern uschar *ps_header; /* name of header file */ /************************************************* * Global procedures * *************************************************/ extern void out_dodraw(tree_node *, drawitem *, BOOL); extern void out_dojoinsign(stave_list *, int *, int, int, int, int *); extern void out_drawhairpin(b_hairpinstr *, int); extern int out_drawnbar(BOOL, int); extern void out_extension(int, int, int, int); extern int out_findGoffset(int, int); extern int out_findXoffset(int); extern posstr *out_findTentry(int); extern void out_freenbar(void); extern void out_glissando(int, int); extern void out_hyphens(int, int, int, int, BOOL); extern void out_page(void); extern void out_repeatstring(int, int, int, BOOL, BOOL, int); extern void out_resetfont(void); extern int out_setbar(void); extern void out_setchordtie(b_notestr **, int, int, BOOL, int); extern bstr *out_setnote(b_notestr *); extern void out_setnotetie(int, BOOL, int); extern void out_setother(bstr *); extern void out_setstarthairpin(b_hairpinstr *, int); extern void out_setstartnbar(b_nbarstr *, int, int); extern BOOL out_setupbeam(b_notestr *, int, BOOL, BOOL); extern void out_slur(int, int, int, int, int, int, int, int); extern void out_text(b_textstr *, BOOL); extern void out_shownote(void); extern int out_string(uschar *, int, int, int, int, int); extern void out_warnbar(void); extern void out_writeclef(int, int, int, int, BOOL); extern void out_writekey(int, int, int, int); extern void out_writerepeat(int, int, int); extern void out_writetime(int, int, int); extern void ps_abspath(int *, int *, int *, int); extern void ps_barline(int, int, int, int); extern void ps_beam(int, int, int, int); extern void ps_brace(int, int, int, int); extern void ps_bracket(int, int, int, int); extern void ps_grestore(void); extern void ps_gsave(void); extern void ps_headfoot(headstr *); extern void ps_line(int, int, int, int, int, int); extern void ps_lines(int *, int *, int, int); extern void ps_muschar(int, int, int, int); extern void ps_musstring(uschar *, int, int, int); extern void ps_newmovt(void); extern void ps_path(int *, int *, int *, int); extern void ps_pstext(uschar *, int, int); extern void ps_relmusstring(uschar *, int, int, int); extern void ps_rotate(double); extern void ps_setdash(int, int, BOOL); extern void ps_setgray(int); extern void ps_slur(int, int, int, int, int, int); extern void ps_startbar(int, int); extern void ps_stave(int, int, int, int); extern void ps_string(uschar *, int, int, int *, int *, BOOL); extern void ps_translate(int, int); extern void ps_wtext(uschar *, int, int, int, int, int); /* End of outhdr.h */ pmw-4.27/src/out2.c0000644000222100022210000003741712247665016012210 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2009 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: January 2009 */ /* This file contains miscellaneous subroutines for outputting a page */ #include "pmwhdr.h" #include "pagehdr.h" #include "outhdr.h" /* Clef style can currently take values 0, 1, 2, or 3; the columns below correspond to this. */ static int clef_chars[] = { mc_trebleclef, mc_trebleclef, mc_trebleclef, mc_trebleclef, mc_sopranoclef, mc_sopranoclef, mc_oldsopranoclef, mc_oldsopranoclef, mc_mezzoclef, mc_mezzoclef, mc_oldmezzoclef, mc_oldmezzoclef, mc_altoclef, mc_altoclef, mc_oldaltoclef, mc_oldaltoclef, mc_tenorclef, mc_tenorclef, mc_oldtenorclef, mc_oldtenorclef, mc_cbaritoneclef, mc_oldcbaritoneclef, mc_cbaritoneclef, mc_oldcbaritoneclef, mc_baritoneclef, mc_oldbaritoneclef, mc_baritoneclef, mc_oldbaritoneclef, mc_bassclef, mc_oldbassclef, mc_bassclef, mc_oldbassclef, mc_deepbassclef, mc_olddeepbassclef, mc_deepbassclef, mc_olddeepbassclef, mc_hclef, mc_hclef, mc_hclef, mc_hclef, 0, 0, 0, 0, mc_trebleDclef, mc_trebleDclef, mc_trebleDclef, mc_trebleDclef, mc_trebleTclef, mc_trebleTclef, mc_trebleTclef, mc_trebleTclef, mc_trebleTBclef, mc_trebleTBclef, mc_trebleTBclef, mc_trebleTBclef, mc_Sbassclef, mc_oldSbassclef, mc_Sbassclef, mc_oldSbassclef, mc_Cbassclef, mc_oldCbassclef, mc_Cbassclef, mc_oldCbassclef }; static uschar clef_adjusts[] = { 4, 0, 4, 8, 12, 16, 8, 12, 16, 0, 0, 4, 4, 4, 12, 12 }; /************************************************ * Output a stave joining sign * ************************************************/ /* This procedure is used for outputting lines, brackets, or braces at the start of a system. It returns a bit map of the staves it referenced. For braces and thin brackets, prev is the bit map of the (thick) bracketed staves. */ /* Local subroutine to determine if a stave is being printed. Arguments: stave stave number bar bar number Returns: TRUE if the bar is to be printed */ static BOOL is_printing(int stave, int bar) { stavestr *ss = curmovt->stavetable[stave]; return mac_teststave(out_sysblock->notsuspend, stave) && (!ss->omitempty || (ss->barindex)[bar] != NULL); } /* If yield is not null, bits are set for those staves that are included in the joining item. Arguments: list pointer to chain of stave selections prev bitvector of previous thick bracket for thin bracket and brace; can be NULL for other types (not used) which type of join sign, e.g. join_brace bartype barline type when which == join_barline bar number of the first bar in the system yield a stave bitvector, or NULL Returns: nothing */ void out_dojoinsign(stave_list *list, int *prev, int which, int bartype, int bar, int *yield) { if (yield != NULL) mac_initstave(yield, 0); for (; list != NULL; list = list->next) { int pb1 = list->first; int pb2 = list->last; if (pb1 > curmovt->laststave) continue; if (pb2 > curmovt->laststave) pb2 = curmovt->laststave; while (pb1 < out_laststave && pb1 < pb2 && !is_printing(pb1, bar)) pb1++; while (pb2 > pb1 && !is_printing(pb2, bar)) pb2--; if (is_printing(pb1, bar) || is_printing(pb2, bar)) { int i, xx; stavestr *ss = curmovt->stavetable[pb1]; mac_setstavesize(pb1); xx = main_stavemagn * ((ss->stavelines == 6)? 4 : (ss->stavelines == 4)? -4 : 0); switch(which) { case join_thinbracket: case join_brace: /* Should never be printed for one stave; there is some old code that gets a brace positioned right if it ever is, but at present that code is never triggered. */ if (out_depthvector[pb1] != out_depthvector[pb2]) { BOOL overlap = FALSE; for (i = pb1; i <= pb2; i++) if (mac_teststave(prev, i)) { overlap = TRUE; break; } if (which == join_brace) { int adjust = (out_depthvector[pb1] == out_depthvector[pb2])? 7000:8500; if (overlap) adjust += 1500; ps_brace(out_joinxposition - adjust, out_yposition + out_depthvector[pb1] - xx, out_yposition + out_depthvector[pb2], main_stavemagn); } else /* thin bracket */ { int x[4], y[4]; out_ystave = out_yposition; x[0] = x[3] = out_joinxposition; x[1] = x[2] = x[0] - (overlap? 2500:1000) - 3000; y[0] = y[1] = - out_depthvector[pb1] + 16*main_stavemagn + xx; y[2] = y[3] = - out_depthvector[pb2]; ps_lines(x, y, 4, 400); } } break; case join_bracket: ps_bracket(out_joinxposition-3500, out_yposition + out_depthvector[pb1] - xx, out_yposition + out_depthvector[pb2], main_stavemagn); break; case join_barline: ps_barline(out_joinxposition, out_yposition + out_depthvector[pb1] - xx, out_yposition + out_depthvector[pb2], bartype); break; } if (yield != NULL) for (i = pb1; i <= pb2; i++) mac_setstave(yield, i); } } } /************************************************ * Output a clef * ************************************************/ /* The clef characters all print a little to the right of the given position. The reason is historical. It does not matter at all, except when staves of different sizes are printed - then the different size causes an uneven spacing at the start of a line. So attempt to correct for this. We must also adjust the vertical position for clefs that are not of full size, so that they appear at the correct position on the stave. Arguments: x x-position y y-position clef which clef size size midbar TRUE if a mid-bar clef Returns: nothing */ void out_writeclef(int x, int y, int clef, int size, BOOL midbar) { switch(clef) { case clef_none: return; case clef_cbaritone: case clef_tenor: case clef_alto: case clef_soprano: case clef_mezzo: x += (2000 * (1000 - main_stavemagn))/1000; break; case clef_baritone: case clef_deepbass: case clef_bass: case clef_contrabass: case clef_soprabass: x -= ((midbar? 15:5)*main_stavemagn)/10; /* move left 0.5 pt or 1.5 pt in mid bar */ x += (750 * (1000 - main_stavemagn))/1000; break; case clef_h: break; case clef_treble: case clef_trebletenor: case clef_trebletenorB: case clef_trebledescant: x += (700 * (1000 - main_stavemagn))/1000; break; } ps_muschar(x, y - mac_muldiv(10000 - size, clef_adjusts[clef]*main_stavemagn, 10000), clef_chars[clef*4 + curmovt->clefstyle], (size*main_stavemagn)/1000); } /************************************************ * Output a key * ************************************************/ /* Arguments: x x-position y y-position clef the current clef key the key signature Returns: nothing */ void out_writekey(int x, int y, int clef, int key) { int i, ch, chwidth, n, *order; pkeystr *pk; for (pk = main_printkey; pk != NULL; pk = pk->next) { if (key == pk->key && clef == pk->clef) break; } /* There is a special string for this key. */ if (pk != NULL) { out_string(pk->string, font_mf, 10*main_stavemagn, x, y, 0); return; } /* Handle "normal" key signature printing */ if ((n = main_keysigtable[key & 63]) > 0) { ch = mc_sharp; chwidth = (curmovt->accspacing)[ac_sharp]; order = main_sharporder; } else { ch = mc_flat; chwidth = (curmovt->accspacing)[ac_flat]; order = main_flatorder; n = -n; } if (key > 63) { ch = mc_natural; chwidth = (curmovt->accspacing)[ac_natural]; } order += main_clefoffset[clef]; chwidth = (chwidth * main_stavemagn)/1000; for (i = 0; i < n; i++) { ps_muschar(x, y-(order[i]*main_stavemagn)/1000, ch, 10*main_stavemagn); x += chwidth; } } /************************************************ * Output a time * ************************************************/ /* Arguments: x x-position y y-position ts time signature Returns: nothing */ void out_writetime(int x, int y, int ts) { ptimestr *pt = main_printtime; int *fontvector = (curmovt->fontsizes)->fontsize_text; int offsetn, offsetd, sizen, sized; uschar vn[16]; uschar vd[16]; uschar *topstring = vn; uschar *botstring = vd; /* If not printing time signatures, return */ if (!curmovt->showtime) return; /* First see if this time signature has special strings specified for its printing. */ while (pt != NULL) { if (pt->time == ts) break; pt = pt->next; } /* If found special case, get strings and sizes from it */ if (pt != NULL) { offsetn = pt->offsettop; offsetd = pt->offsetbot; topstring = pt->top; botstring = pt->bot; } /* Default printing for this time signature. First mask off the multiplier, then check for the special cases of C and A. */ else { ts &= 0xFFFF; /* C and A are special cases */ if (ts == time_common || ts == time_cut) { ps_muschar(x, y - 4*main_stavemagn, ((ts == time_common)? mc_common : mc_cut), 10*main_stavemagn); return; } /* Non-special case - set up numerator and denominator, in the time signature font. */ sprintf(CS vn, "%d", ts >> 8); sprintf(CS vd, "%d", ts & 255); offsetn = offsetd = ff_offset_ts; } /* We now have in topstring and botstring two strings to print. Arrange that they are centred with respect to each other when both are to be printed. Also arrange to adjust the heights according to the font size. We assume that at 12-points, the height is 8 points, which is true for the default bold font. However, it is not true for the music font, so there is a fudge to check for that case which will catch the common cases. This is all rather unsatisfactory... */ sizen = (fontvector[offsetn]*main_stavemagn)/1000; sized = (fontvector[offsetd]*main_stavemagn)/1000; if (curmovt->showtimebase && botstring[0] != 0) { int stdsize = 12; int nx = 0; int dx = 0; int widthn = string_width(topstring, font_bf, sizen); int widthd = string_width(botstring, font_bf, sized); if (widthn > widthd) dx = (widthn - widthd)/2; else nx = (widthd - widthn)/2; out_string(topstring, curmovt->font_time, sizen, x+nx, y - (8000*main_stavemagn)/1000, 0); if (Ustrncmp(botstring, "\\mf\\", 4) == 0) stdsize = 10; out_string(botstring, curmovt->font_time, sized, x+dx, y + ((3*(sized-stdsize*main_stavemagn)/4)*main_stavemagn)/1000, 0); } else { int stdsize = 12; if (Ustrncmp(topstring, "\\mf\\", 4) == 0) stdsize = 10; out_string(topstring, curmovt->font_time, sizen, x, y - ((4000 - (sizen-stdsize*main_stavemagn)/3)*main_stavemagn)/1000, 0); } } /************************************************* * Output repeat marks * *************************************************/ static int repspacing[] = { /* righthand repeats */ /* thick thin dots */ 50, 31, 6, /* repeatstyle = 0 */ -1, 50, 25, /* repeatstyle = 1 */ -1, 50, 25, /* repeatstyle = 2 */ -1, -1, 25, /* repeatstyle = 3 */ 50, 31, 6, /* repeatstyle = 4 */ /* lefthand repeats */ /* thick thin dots */ 0, 35, 51, /* repeatstyle = 0 */ -1, 0, 15, /* repeatstyle = 1 */ -1, 0, 15, /* repeatstyle = 2 */ -1, -1, 15, /* repeatstyle = 3 */ 0, 35, 51, /* repeatstyle = 4 */ /* righthand double repeats */ /* thick thin dots */ 50, 31, 6, /* repeatstyle = 0 */ -1, 50, 25, /* repeatstyle = 1 */ -1, 50, 25, /* repeatstyle = 2 */ -1, -1, 25, /* repeatstyle = 3 */ 34, -1, 6, /* repeatstyle = 4 */ /* lefthand double repeats */ /* thick thin dots */ 0, 35, 51, /* repeatstyle = 0 */ -1, 0, 15, /* repeatstyle = 1 */ -1, 0, 15, /* repeatstyle = 2 */ -1, -1, 15, /* repeatstyle = 3 */ 17, -1, 51 /* repeatstyle = 4 */ }; /* Arguments: x x-position type type of repeat magn magnification Returns: nothing */ void out_writerepeat(int x, int type, int magn) { int *xx = repspacing + type + curmovt->repeatstyle * 3; if (xx[0] >= 0) ps_barline(x + (xx[0]*magn)/10, out_ystave, out_ybarend, bar_thick); if (xx[1] >= 0) ps_barline(x + (xx[1]*magn)/10, out_ystave, out_ybarend, (curmovt->repeatstyle == 2)? bar_dotted : bar_single); out_string((curmovt->repeatstyle != 3)? US"xI" : US"IxxyyyyyyI", font_mf, 10*main_stavemagn, x + (xx[2]*magn)/10 + (65*(magn - main_stavemagn))/100, out_ystave, 0); } /************************************************* * Find X offset for given M offset * *************************************************/ /* The search starts at the current out_posptr. We never search for a value that is less than a previous one. When setting up a beam over a bar line, the moff can be greater than the bar length. In this case, and also in the case when it is equal to the bar length, we must search the NEXT bar. Argument: the musical offset in the bar Returns: the x offset in the bar */ int out_findXoffset(int moff) { if (!beam_overbeam || moff < out_poslast->moff) { while (moff > out_posptr->moff && out_posptr < out_poslast) out_posptr++; while (moff < out_posptr->moff && out_posptr > out_postable) out_posptr--; if (moff == out_posptr->moff) return out_posptr->xoff; } /* Handle the beam over bar line case */ else { int newmoff = moff - out_poslast->moff; posstr *new_postable, *new_posptr, *new_poslast; barposstr *bp = curmovt->posvector + out_bar + 1; new_postable = new_posptr = bp->vector; new_poslast = new_postable + bp->count - 1; while (newmoff > new_posptr->moff && new_posptr < new_poslast) new_posptr++; while (newmoff < new_posptr->moff && new_posptr > new_postable) new_posptr--; if (newmoff == new_posptr->moff) return new_posptr->xoff + out_poslast->xoff + out_sysblock->barlinewidth; } /* Cannot find a position for this moff. This error is hard, but need to keep the compiler happy. */ error_moan(60, out_bar, out_stave, moff, moff); return 0; } /************************************************* * Find X offset for one of two given M offsets * *************************************************/ /* This is used only in the non-overbeaming case. It returns the x offset of the first moff if it exists, otherwise the x offset of the second moff. Arguments: moff1 the first music offset moff2 the second music offset Returns: the x offset */ int out_findGoffset(int moff1, int moff2) { while (moff1 > out_posptr->moff && out_posptr < out_poslast) out_posptr++; while (moff1 < out_posptr->moff && out_posptr > out_postable) out_posptr--; if (moff1 == out_posptr->moff) return out_posptr->xoff; return out_findXoffset(moff2); } /************************************************* * Find postable entry for given M offset * *************************************************/ /* Argument: the music offset Returns: pointer to the postable entry, or NULL if not found */ posstr * out_findTentry(int moff) { while (moff > out_posptr->moff && out_posptr < out_poslast) out_posptr++; while (moff < out_posptr->moff && out_posptr > out_postable) out_posptr--; return (moff == out_posptr->moff)? out_posptr : NULL; } /* End of out2.c */ pmw-4.27/src/settie.c0000644000222100022210000004104112247665016012600 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2009 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: January 2009 */ /* This file contains code for drawing ties and glissandos. */ #include "pmwhdr.h" #include "outhdr.h" #include "pagehdr.h" /* Different actions are required for single notes and for chords. It is simplest to separate these out into entirely separate routines. */ /************************************************ * Output a tie (or short slur) * ************************************************/ /* This function is called to draw a tie between two single notes. They need not have the same pitch, in which case it is really a slur. The variable n_prevtie points to the tie block for the first note, while n_nexttie points to the ongoing tie block, if any. Arguments: x1 the x coordinate of the end of the tie/slur endline TRUE if at end of line flags tie flags specifying type of tie (editorial, dashed, dotted) Returns: nothing */ void out_setnotetie(int x1, BOOL endline, int flags) { BOOL startline = FALSE; BOOL above = n_prevtie->abovecount > 0; BOOL leftup = out_laststemup[out_stave]; b_notestr *left = n_prevtie->note; int slurflags; int tietype; int dstart = 0; int dstop = 1000; int adjustL = 0; int adjustR = 0; int co = 0; int x0 = bar_cont->tiex; int y0 = left->spitch; int y1 = n_pitch; int yy0, yy1; /* If this note is further tied, arrange to leave a bit of a gap in the tie marks. */ int joinedties = (n_nexttie != NULL && n_prevtie->abovecount == n_nexttie->abovecount)? main_stavemagn : 0; /* Check for coupling of first note */ mac_couplepitch(y0, left->flags); /* If the final pitch is zero, make the tie horizontal. This can arise at the end of a line if a tie continues over a totally empty bar. */ if (y1 == 0) y1 = y0; /* Set slur flags and initialize tie type; raise the pitch when the tie is above. */ if (above) { slurflags = tietype = 0; y0 += 8; y1 += 8; } else { slurflags = sflag_b; tietype = 1; } if ((flags & tief_editorial) != 0) slurflags |= sflag_e; if ((flags & tief_dashed) != 0) slurflags |= sflag_i; if ((flags & tief_dotted) != 0) slurflags |= sflag_i | sflag_idot; /* Save basic levels for accidental checking */ yy0 = y0; yy1 = y1; /* Compute the rest of the "tie type" value. There are eight possibilities: 0 stems up, tie above 1 stems up, tie below 2 stems down, tie above 3 stems down, tie below 4 first stem up, tie above 5 first stem up, tie below 6 first stem down, tie above 7 first stem down, tie below This value is used for checking on stem crossings, etc. Continuation ties can only be types 0-3. Also, certain checks on the left end are skipped for continued ties. Remember the fact for style handling. */ if (x0 == 0) { startline = TRUE; if (!n_upflag) tietype += 2; x0 = out_barx - 10*main_stavemagn; y0 = yy0 = y1; } /* A non-continued tie */ else { if (leftup != n_upflag) tietype += 4; if (!leftup) tietype += 2; /* Check for stem crossing at the left-hand end */ if (left->notetype >= minim && (tietype == 0 || tietype == 4)) adjustL += 5*main_stavemagn; /* Check for dotted note at the left-hand end */ if (above && leftup && (left->flags & nf_dot) != 0) { adjustL += 3*main_stavemagn; if ((left->flags & nf_dot2) != 0) adjustL += (35*main_stavemagn)/10; } /* Check for staccato etc. on the left-hand note */ if ((tietype == 1 || tietype == 2 || tietype == 5 || tietype == 6) && (left->acflags & af_dyninside) != 0 && (left->acflags & af_opposite) == 0) { int z = 6 - (y0 & 2); int zz = ((left->acflags & af_ring) == 0)? 2 : 3; if (leftup) y0 -= (y0 == 132)? 4 : (y0 <= 130)? zz : z; else y0 += (y0 == 148)? 4 : (y0 >= 150)? zz : z; } } /* Check on stem crossing at the right-hand end, unless this is an invisible note. */ if (n_notetype >= minim && (tietype == 3 || tietype == 5) && (bar_cont->flags & cf_notes) != 0) adjustR -= 4*main_stavemagn - joinedties; /* Check for staccato etc. at the right-hand end (of a slur, not a tie, of course). */ if ((tietype == 1 || tietype == 2 || tietype == 4 || tietype == 7) && (n_acflags & af_dyninside) != 0 && (n_acflags & af_opposite) == 0) { int z = 6 - (y1 & 2); int zz = ((n_acflags & af_ring) == 0)? 2 : 3; if (n_upflag) y1 -= (y1 == 132)? 4 : (y1 <= 130)? zz : z; else y1 += (y1 == 148)? 4 : (y1 >= 150)? zz : z; } /* Check for enough space if the final note has an accidental. Then ensure that ties do not start or end on stave lines */ if (above) { if (!endline && n_acc >= ac_flat && y1 <= yy1) { y1++; if (x1 - x0 <= 16000 && yy1 > yy0) { y1++; y0++; } } if (y0 <= 148 && (y0 & 2) == 0) y0++; if (y1 <= 148 && (y1 & 2) == 0) y1++; } else { if (!endline && n_acc >= ac_natural && y1 >= yy1) { y1 -= 3; if (x1 - x0 < 16000 && yy1 < yy0) co += 1000; } if (y0 >= 132 && (y0 & 2) == 0) y0--; if (y1 >= 132 && (y1 & 2) == 0) y1--; } /* If the slur is very steep, make it a bit more curvy, and adjust the right hand end in some cases. Otherwise, for very short slurs, make flatter. */ if (abs(y0 - y1) > 10) { co += 2000; } else if (x1 - x0 > 10000) co -= 1000; /* If this is really a tie (the two notes have the same pitch) then it should be horizontal. One end may have been moved to avoid accents, etc. If this is the case, we adjust the other end to keep the tie horizontal. */ if (n_pitch == left->spitch) { if ((above && y0 > y1) || (!above && y0 < y1)) y1 = y0; else y0 = y1; } /* If this is really a slur, make sure that we haven't negated its sense by moving one end to account for accents. If we have, make it at least horizontal. Which end to move depends on whether the tie is above or below. */ else if (n_pitch > left->spitch) { if (y1 < y0) { if ((tietype & 1) == 0) y1 = y0; else y0 = y1; } } else { if (y1 > y0) { if ((tietype & 1) == 0) y0 = y1; else y1 = y0; } } /* When printing right-to-left, certain ties need some horizontal adjustment to cope with stem positions. */ if (main_righttoleft) switch (tietype) { case 0: adjustL -= 4*main_stavemagn; adjustR -= 4*main_stavemagn; break; case 3: adjustL += 4*main_stavemagn; adjustR += 4*main_stavemagn; break; case 5: adjustR += 4*main_stavemagn; break; case 6: adjustR -= 4*main_stavemagn; break; case 7: adjustL += 4*main_stavemagn; break; default: break; } /* Set up the final coordinates, taking into account the style of continued ties, and then output it. */ x0 += adjustL; y0 = (y0 - 132)*main_stavemagn; x1 += adjustR - joinedties; y1 = (y1 - 132)*main_stavemagn; if (endline && curmovt->endlinetiestyle != 0) { x1 += x1 - x0; y1 += y1 - y0; dstop = 500; } else if (startline && curmovt->endlinetiestyle != 0) { x0 -= x1 - x0; y0 -= y1 - y0; dstart = 500; } out_slur(x0, y0, x1, y1, slurflags, co, dstart, dstop); } /************************************************ * Output ties on a chord * ************************************************/ /* The variable tiecount is set to the number of ties which are in the "abnormal" direction for the stem direction. A zero value for x0 means we are continuing at the start of a line. Arguments: notelist pointer to the first note of the chort notecount number of notes in the chord x1 the x coordinate of the end of the ties endflag TRUE if drawing to end of line tieflags type of tie Returns: nothing */ void out_setchordtie(b_notestr **notelist, int notecount, int x1, BOOL endflag, int tieflags) { b_notestr *left = n_prevtie->note; int tiecount = n_upflag? n_prevtie->abovecount : n_prevtie->belowcount; int x0 = bar_cont->tiex; int leftup = out_laststemup[out_stave]; int flags = 0; int acflags = 0; int slurflags = 0; int count, continued; /* If this note is further tied, arrange to leave a bit of a gap in the tie marks. */ int joinedties = (n_nexttie != NULL && n_prevtie->abovecount == n_nexttie->abovecount)? 1000 : 0; if ((tieflags & tief_editorial) != 0) slurflags |= sflag_e; if ((tieflags & tief_dashed) != 0) slurflags |= sflag_i; if ((tieflags & tief_dotted) != 0) slurflags |= sflag_i | sflag_idot; /* Collect all the flags from the chord, for staccato etc. We have to do this because the notes may be in either order. */ do { flags |= left->flags; acflags |= left->acflags; mac_advancechord(left); } while (left->type == b_chord); /* Set start position for continuations at start of line */ if (x0 == 0) { x0 = out_barx - 10*main_stavemagn; continued = TRUE; } else continued = FALSE; /* Process each note in the chord. We scan the right-hand side chord (supplied in notelist), and tie only those notes which correspond in pitch with a note in the left-hand side. */ for (count = 0; count < notecount; count++) { int found = TRUE; b_notestr *right = notelist[count]; left = n_prevtie->note; while (right->truepitch != left->truepitch) { mac_advancechord(left); if (left->type != b_chord) { found = FALSE; break; } } if (found) { int below = (tiecount > 0 && !n_upflag) || (tiecount <= 0 && n_upflag); int y0 = right->spitch; int xx0, xx1; int adjustL = 0; int adjustR = 0; int dstart = 0; int dstop = 1000; int type; mac_couplepitch(y0, right->flags); if (!below) y0 += 8; /* For each tie, we must determine whether it is inside or outside the chord. A tie is outside if it is EITHER (a) the last one, and in the "normal" direction, unless the stems are in opposite directions and the left one is up, in which case it is "half outside" (b) the first one, and in the abnormal direction, AND EITHER the first note has no stem OR the first note's stem is down or we are at a line start AND EITHER the second note has no stem OR the stem is up OR we are at a line end (for which "no stem" is in fact set) There are two cases where notes are "half outside", which occur when case (b) is true except that a note required not to have a stem does in fact have one. We encode the cases in the variable "type" as follows: 0 => outside 1 => inside 2 => right inside 3 => left inside because otherwise the code is tortuous and repetitious. Another "half outside" case has come to light because an end note of the right-hand chord may match a middle note of the left-hand chord. */ /* Handle tie in normal direction for the last note */ if ((count == notecount - 1 && tiecount <= 0)) { type = (leftup == n_upflag || !leftup || (flags & nf_stem) == 0)? 0 : 3; /* Deal with non-end left-hand note */ if (type == 0 && leftup) { b_notestr *nleft = left; mac_advancechord(nleft); if (nleft->type == b_chord) type = 3; } } /* Handle tie in abnormal direction for the first note */ else if (count == 0 && tiecount > 0) { if ((flags & nf_stem) == 0 || !leftup || continued) { type = ((n_flags & nf_stem) == 0 || n_upflag)? 0 : 2; if (type == 0 && !endflag && right->spitch - (notelist[count+1])->spitch == -2) type = 2; } else type = !n_upflag? 2 : 3; } /* All other cases are inside */ else type = 1; /* When printing right-to-left, things change! */ if (main_righttoleft) switch (type) { case 0: if (n_upflag && !leftup) type = below? 3: 2; break; case 2: if (!n_upflag) type = leftup? 0 : 3; break; case 3: if (leftup) type = n_upflag? 2 : 0; break; default: break; } /* Now make adjustments according to the type */ switch (type) { case 0: /* outside */ case 2: /* right inside */ adjustR = (type == 0)? -joinedties : -3750; /* Check for dynamics on the first chord and adjust the position if necessary. (We assume no dynamics on second chord). */ if ((count == 0 && leftup != n_upflag) || (count == notecount - 1 && leftup == n_upflag)) { if ((acflags & af_dyninside) != 0 && (acflags & af_opposite) == 0) { int z = 6 - (y0 & 2); if (leftup) y0 -= (y0 <= 128)? 4 : z; else y0 += (y0 >= 152)? 4 : z; } } break; case 1: /* inside */ case 3: /* left inside */ if (!continued) { adjustL = 4500; if ((flags & nf_plus) != 0) adjustL += 8000; else if ((flags & nf_dot) != 0) { adjustL += 4000; if ((flags & nf_dot2) != 0) adjustL += 3500; } } if (type == 3) { adjustR = -joinedties; break; /* that's all for left inside */ } if (!endflag) adjustR = -3750; /* Deal with dots moved right (will apply only to stems up) */ if (!continued && (flags & (nf_dot | nf_dotright)) == (nf_dot | nf_dotright)) adjustL += 5500; /* Else deal with intervals of a second */ else if (n_upflag) { if (!continued && count != notecount - 1 && right->spitch - (notelist[count+1])->spitch == 2) adjustL += 5500; } else { if (!endflag && ((count != notecount - 1 && right->spitch - (notelist[count+1])->spitch == -2) || (count != 0 && tiecount > 0 && right->spitch - (notelist[count-1])->spitch == 2))) adjustR -= 5500; } /* Inside ties are adjusted for pitch */ y0 += below? 3 : -3; break; } /* If notes are currently switched off, we have just printed an invisible note. Cancel any horizontal adjustment. This fudge is a cunning way of printing hanging ties. */ if ((bar_cont->flags & cf_notes) == 0) adjustR = 0; /* Correct adjustments for stave magnification */ adjustL = (adjustL*main_stavemagn)/1000; adjustR = (adjustR*main_stavemagn)/1000; /* Now make sure the tie does not end on a staff line, and convert from a pitch value to a points offset. */ if ((y0 & 3) == 0) { if (below) { if (y0 >= 128) y0--; } else if (y0 <= 144) y0++; } /* Set up the final coordinates, taking into account the style of continued ties, and then output it. */ xx0 = x0 + adjustL; xx1 = x1 + adjustR; y0 = (y0 - 132)*main_stavemagn; if (endflag && curmovt->endlinetiestyle != 0) { xx1 += xx1 - xx0; dstop = 500; } else if (continued && curmovt->endlinetiestyle != 0) { xx0 -= xx1 - xx0; dstart = 500; } out_slur(xx0, y0, xx1, y0, (below? sflag_b : 0) | slurflags, (xx1 - xx0 > 10000)? (-main_stavemagn) : 0, dstart, dstop); } /* Adjust the count of those on the "abnormal" side, whether or not we actually printed a tie. */ tiecount--; } } /************************************************* * Output a glissando mark * *************************************************/ /* The positions of the ends of the line are adjusted according to whether the notes are on lines or spaces, and whether or not the right hand one has accidentals. Arguments: x1 the x coordinate of the end of the mark flags type of line required (editorial, dashed, dotted) Returns: nothing */ void out_glissando(int x1, int flags) { b_notestr *left = n_prevtie->note; int x0 = bar_cont->tiex; int y0 = left->spitch; int y1 = n_pitch; /* Check for coupling of first note */ mac_couplepitch(y0, left->flags); if (x0 == 0) /* at start of line */ { x0 = out_barx - 6*main_stavemagn; y0 = (y0+y1)/2; } else x0 += 8*main_stavemagn; if ((left->flags & nf_dot) != 0) { x0 += 4*main_stavemagn; if ((left->flags & nf_dot2) != 0) x0 += (35*main_stavemagn)/10; } x1 -= (15*main_stavemagn)/10 + n_accleft; if ((y0 & 2) == 0) y0 += (y1 > y0)? (+2) : (-2); if ((y1 & 2) == 0) y1 += (y1 > y0)? (-2) : (+2); ps_line(x0, (y0 - 128)*main_stavemagn, x1, (y1 - 128)*main_stavemagn, (3*main_stavemagn)/10, flags); } /* End of settie.c */ pmw-4.27/src/readhdr.h0000644000222100022210000002760412247665016012732 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2010 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: November 2010 */ /* This is the header file for the score reading routines; imported by error.c in order to access the input buffers. */ #define read_footingsize 8000 /* These are fixed sizes; heading */ #define read_pageheadingsize 10000 /* sizes are held in a table */ #define read_maxheadcount 3 /* with four entries */ #define baraccs_len 108 /* Byte size of baraccs table */ #define stemstacksize 200 /* Byte size of stem stack */ #define beamstacksize 200 /* And beam stack */ /* Bits for remembering which headings/footings have been read, for the purpose of throwing away old ones at movement starts. These are also used for selecting default sizes. Additional bits are now used for remembering which midi parameters have already been changed, for getting new tables. */ enum { rh_footing = 0x001, rh_heading = 0x002, rh_lastfooting = 0x004, rh_pagefooting = 0x008, rh_pageheading = 0x010, rh_ps = 0x020, rh_footnote = 0x040, rh_midivoice = 0x080, rh_midichannel = 0x100, rh_midinote = 0x200, rh_midivolume= 0x400 }; /************************************************* * Character reading macros * *************************************************/ #define sigch() \ while (read_ch == ' ' || read_ch == '\t' || read_ch == '\n') next_ch() #define sigchNL() \ while (read_ch == ' ' || read_ch == '\t') next_ch(); #define next_sigch() \ while ((next_ch(), read_ch == ' ') || read_ch == '\t' || read_ch == '\n') /************************************************* * Macros for trivial functions * *************************************************/ #define mac_setstackedstems(flag) \ while (stave_stemstackptr > 0) \ { (stave_stemstack[--stave_stemstackptr])->flags |= flag; \ if (((stave_stemstack[stave_stemstackptr])->flags & nf_chord) != 0) \ read_sortchord(stave_stemstack[stave_stemstackptr], flag); } #define mac_setstemflag(noteptr, flag) \ noteptr->flags |= flag; \ if ((noteptr->flags & nf_chord) != 0) read_sortchord(noteptr, flag) /************************************************* * Structures * *************************************************/ /* Structure for remembering stacked files during include */ typedef struct { FILE *file; uschar *filename; int linenumber; int okdepth; } filestr; /* Structure for tables of directives */ typedef struct { char *name; void (*proc)(void); int arg1; int arg2; } dirstr; /* Structure for remembering data about tie accidentals */ typedef struct { uschar pitch; uschar acc; uschar acc_tp; } tiedata; /* Structure for remembering underlay strings */ typedef struct ulaypend { struct ulaypend *next; uschar *string; uschar level; uschar size; uschar font; uschar htype; short int flags; int x; int y; int halfway; /* "halfway" fraction */ } ulaypend; /* Structure for list of accent/ornament codings */ typedef struct accent { uschar *string; unsigned int flag; } accent; /************************************************* * Global variables * *************************************************/ extern unsigned int accent_list[]; /* List of accent flags, in order */ extern accent accent_chars[]; /* List of accents/ornaments & flags */ extern bstr **barvector; /* Points to bar index */ extern uschar *baraccs; /* Record of accidentals in a bar */ extern uschar *baraccs_tp; /* Ditto, transposed */ extern tree_node *define_tree; /* Root of the tree of defines */ extern uschar read_accpitch[]; /* Accidental pitch table */ extern int read_barlinestyle; /* Current bar's style */ extern uschar read_basicpitch[]; /* Basic pitch table */ extern int read_ch; /* The current character */ extern uschar *read_chptr; /* Pointer to next character */ extern int read_copied_fontsizestr; /* Flag for store managing */ extern dirstr *read_dir; /* Pointer to found directive */ extern uschar *read_endptr; /* End of input line */ extern BOOL read_endstave; /* End stave flag */ extern BOOL read_EOF; /* EOF reached */ extern filestr *read_filestack; /* For stacking files */ extern int read_filestackptr; /* Pointer for same */ extern int read_headcount; /* Count of heading strings */ extern int read_headingsizes[]; extern int read_headmap; /* Map of headings/footings read */ extern b_ensurestr *read_lastensuredtie; /* For if last is tied chord */ extern b_playchangestr **read_lastplaychange; /* For chaining them all */ extern int read_linenumber; /* Line number */ extern int read_okdepth; /* For if nesting */ extern int read_prev_had_dbar; /* For setting up previous bar block */ extern int read_prev_had_ibar; extern int read_prev_barlinestyle; extern int read_skipdepth; /* For if nesting */ extern uschar *read_stavedir; /* Holds next stave directive */ extern int stave_accentflags; /* Default for next note */ extern int stave_accritvalue; /* holds 2 or 3 */ extern int stave_barlength; /* Current bar length */ extern int stave_barlinestyle; /* Current bar line style */ extern int stave_barnumber; /* Current bar number */ extern int stave_barrepeatcount;/* Repeat count */ extern bstr *stave_barrepeatptr; /* From here */ extern int stave_beamcount; /* While reading a beam */ extern b_notestr *stave_beamfirstnote; /* Remembering beam start */ extern BOOL stave_beaming; /* TRUE in a beam */ extern b_notestr **stave_beamstack; /* Stack of pending beam */ extern int stave_beamstackptr; /* Pointer therein */ extern int stave_beamstemforce; /* Stem force value in a beam */ extern BOOL stave_checklength; /* Check bar length */ extern int stave_chordcount; /* Count of notes in last chord */ extern int stave_clef; /* Current input clef */ extern int stave_clef_octave; /* Sounding octave adjustment */ extern BOOL stave_copy_accs; /* Copy accidentals for 'p' and 'x' notes */ extern int stave_couplestate; /* Current coupling */ extern int stave_fbfont; /* Default initial font */ extern int stave_fbsize; /* Default size */ extern BOOL stave_firstinbar; /* Flags first note */ extern b_notestr *stave_firstnoteptr; /* The start of the most recent note */ extern BOOL stave_hadnocount; /* To ignore 2nd nocount */ extern int stave_hairpinbegun; /* Remember state of hairpin */ extern int stave_hairpinflags; /* Current hairpin options */ extern int stave_hairpinsru; /* Remember sru value */ extern int stave_hairpinwidth; /* Current width */ extern int stave_hairpiny; /* Default y value */ extern int stave_key; /* Current key */ extern int stave_key_tp; /* Transposed key */ extern int stave_lastgracestem; /* Stemforce value for previous grace */ extern b_notestr *stave_lastbasenoteptr; /* Points to start of previous original note */ extern b_notestr *stave_lastnoteptr; /* Points to start of previous note */ extern BOOL stave_laststemup; /* Flag */ extern int stave_lasttiepitch; /* Pitch of single tied note */ extern BOOL stave_lastwasdouble; /* Last bar had double bar line */ extern BOOL stave_lastwastied; /* Flag */ extern int stave_matchnum; /* Factor for triplet/duplet matching */ extern int stave_matchden; extern int stave_maxaway; /* "Depth" of a beam */ extern int stave_maxbarlength; /* High water mark length */ extern int stave_maxpitch; /* Max note on a stave */ extern int stave_minpitch; /* Min note on a stave */ extern int stave_noteflags; /* Default flags */ extern BOOL stave_notes; /* Notes on/off state */ extern int stave_octave; /* Octave number *12 */ extern int stave_olfont; /* Default font */ extern int stave_olsize; /* Default size */ extern int stave_ornament; /* Default ornament */ extern BOOL stave_overbeam; /* Continue over bar line */ extern ulaypend *stave_pendulay; /* Pending underlay chain */ extern int stave_pitchcount; /* Count of notes on a stave */ extern int stave_pitchtotal; /* Total of pitches on a stave */ extern int stave_pletflags; /* Default plet flags */ extern int stave_pletlen; /* Current plet parameter */ extern int stave_pletsupnum; /* Plet parameters */ extern int stave_pletsupden; extern int stave_plety; /* Default y value */ extern int stave_printpitch; /* Forced printing pitch */ extern int stave_requiredbarlength; /* As determined by key sig */ extern BOOL stave_resetOK; /* [reset] permitted */ extern int stave_restlevel; /* current rest level */ extern int stave_slurcount; /* Nesting depth */ extern int stave_smove; /* Space save after smove */ extern BOOL stave_smove_relative;/* Relative flag for same */ extern int stave_stemflag; /* Default "not noteheads only" */ extern int stave_stemforce; /* Current stem option */ extern int stave_stemlength; /* Default stem length */ extern b_notestr **stave_stemstack; /* Stack of pending stems */ extern int stave_stemstackptr; /* Pointer therein */ extern int *stave_stemswaplevel; /* Pointer to current table */ extern BOOL stave_suspended; /* For automatic resume */ extern int stave_textabsolute; /* Default absolute position */ extern int stave_textflags; /* Default text flags */ extern int stave_textfont; /* Default initial font */ extern int stave_textsize; /* Default text size */ extern tiedata *stave_tiedata; /* For saving tie info */ extern int stave_ties; /* Tie direction */ extern int stave_totalnocount; /* Count uncounted bars */ extern int stave_transpose; /* Current transposition */ extern BOOL stave_transposedaccforce; /* Default acc forcing */ extern int stave_transpose_letter; /* Current letter transposition */ extern int stave_ulfont; /* Default initial font */ extern int stave_ulsize; /* Default size */ extern uschar *next_buffer; /* For reading next line */ extern uschar *this_buffer; /* The current line */ extern uschar *prev_buffer; /* The previous line */ /************************************************* * Global procedures * *************************************************/ extern void next_ch(void); extern void next_heading(void); extern void pre_process(void); extern BOOL read_bar(void); extern void read_boolproc(void); extern int read_clef(void); extern int read_compute_barlength(int); extern void read_draw(void); extern drawtextstr *read_draw_text(void); extern BOOL read_expect_integer(int *, int, int); extern int read_getmidinumber(uschar *, uschar *, uschar *); extern void read_headfootingtext(headstr *, int); extern void read_initbaraccs(uschar *, int); extern int read_integer(BOOL); extern int read_key(void); extern int read_movevalue(void); extern void read_note(void); extern BOOL read_plainstring(uschar *); extern void read_resetstemflag(b_notestr *, int); extern int read_scaletime(int); extern void read_setbeamstems(void); extern void read_setfontsfortime(int, int); extern void read_sortchord(b_notestr *, int); extern void read_stavedirective(void); extern int read_stavepitch(void); extern int read_time(void); extern void read_word(uschar *); /* End of readhdr.h */ pmw-4.27/src/debug.c0000644000222100022210000007663612247665016012413 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2013 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: March 2013 */ /* This file contains debugging functions. */ #include "pmwhdr.h" #include "pagehdr.h" #include "outhdr.h" static char *fontnames[] = { "roman", "italic", "bold", "bolditalic", "symbol", "mu", "mf", "extra 1", "extra 2", "extra 3", "extra 4", "extra 5", "extra 6", "extra 7", "extra 8" }; static char *clefstrings[] = { "Treble", "Soprano", "Mezzo", "Alto", "Tenor", "Bass", "Trebledescant", "Trebletenor", "Soprabass", "Contrabass", "None", "TrebletenorB", "Hclef" }; static char *nhstrings[] = { "normal", "cross", "harmonic", "none", "only" }; static char *ntstrings[] = { "B ", "SB ", "M ", "c ", "q ", "sq ", "dsq ", "hdsq" }; static char *accstrings[] = { " ", "##", "$ ", "$$", "% ", "# " }; static char *ornstrings[] = { "fermata", "trill", "trill+sharp", "trill+flat", "trill+natural", "tremolo1", "tremolo2", "tremolo3", "mordent", "double mordent", "inverted mordent", "double inverted mordent", "turn", "inverted turn", "arpeggio", "arpeggio + uparrow", "arpeggio + downarrow", "spread" }; /************************************************* * Display debugging output * *************************************************/ /* Write to debug_file if it is not NULL. Arguments: format printf-like format ... printf-like data values Returns: nothing */ void debug_printf(char *format, ...) { uschar buff[256]; va_list ap; if (debug_file == NULL) return; va_start(ap, format); format_vsprintf(buff, format, ap); fprintf(debug_file, "%s", CS buff); fflush(debug_file); va_end(ap); } /************************************************* * Show bar data * *************************************************/ /* Show the encoded data items for a specific bar. The bar number is an actual, absolute bar number, counting from 1. It does not take account of uncounted bars. Arguments: n the movement number s the stave number b the bar number Returns: nothing */ void debug_showbar(int n, int s, int b) { bstr *p; if (n == 0) n = 1; if (n > main_lastmovement || s > movement[n]->laststave || b > (movement[n]->stavetable[s])->lastbar) { debug_printf("Movement %d, stave %d, bar %b does not exist\n", n, s, b); return; } p = (movement[n]->stavetable[s])->barindex[b]; format_movt = movement[n]; debug_printf("Contents of bar %b for stave %d in movement %d\n", b, s, n); if (p == NULL) debug_printf("Empty bar\n\n"); else { int type = p->type; while (type != b_End) { switch(type) { case b_Jump: debug_printf("Jump %p\n", (void *)(((b_Jumpstr *)p)->next)); p = (bstr *)(((b_Jumpstr *)p)->next); break; case b_all: debug_printf("All\n"); break; case b_barnum: { b_barnumstr *pp = (b_barnumstr *)p; debug_printf("Barnumber %s %f %f\n", pp->flag? "on": "off", pp->x, pp->y); } break; case b_beamacc: debug_printf("Beamacc\n"); break; case b_beambreak: debug_printf("Beambreak\n"); break; case b_beambreak2: debug_printf("Beambreak2\n"); break; case b_beamrit: debug_printf("Beamrit\n"); break; case b_bowing: debug_printf("Bowing %s\n", ((b_charvaluestr *)p)->value? "above":"below"); break; case b_breakbarline: debug_printf("Breakbarline\n"); break; case b_caesura: debug_printf("Caesura\n"); break; case b_clef: debug_printf("Clef %s\n", clefstrings[((b_clefstr *)p)->trueclef]); break; /* b_chord is with b_note */ case b_comma: debug_printf("Comma\n"); break; case b_dbar: debug_printf("Double bar\n"); break; case b_dotbar: debug_printf("Dotbar\n"); break; case b_dotright: debug_printf("Dotright %f\n", ((b_dotrightstr *)p)->value); break; case b_draw: { tree_node *t = ((b_drawstr *)p)->item; debug_printf("Draw %s\n", t->name); } break; case b_dynmove: { b_dynmovestr *pp = (b_dynmovestr *)p; debug_printf("Dyn move %d x=%f y=%f bflags=%d\n", pp->dynamic, pp->x, pp->y, pp->bflags); } break; case b_ebar: debug_printf("End bar\n"); break; case b_endplet: debug_printf("Endplet\n"); break; case b_endslur: { b_endslurstr *pp = (b_endslurstr *)p; debug_printf("Endslur/=%c\n", (pp->id == 0)? ' ' : pp->id); } break; case b_ens: debug_printf("Ens\n"); break; case b_ensure: debug_printf("Ensure %f\n", ((b_ensurestr *)p)->value); break; case b_footnote: debug_printf("Footnote\n"); break; case b_hairpin: { b_hairpinstr *pp = (b_hairpinstr *)p; debug_printf("Hairpin %c flags=%d x=%f y=%f su=%f h=%f\n", (pp->opt == 0)? '*' : pp->opt, pp->flags, pp->x, pp->y, pp->su, pp->h); } break; case b_ibar: debug_printf("Invisible bar\n"); break; case b_justify: { b_justifystr *pp = (b_justifystr *)p; int side = pp->side; debug_printf("Justify %c%s\n", pp->opt, (side==just_top)? "top" : (side==just_bottom)? "bottom" : (side==just_left)? "left" : (side==just_right)? "right" : "???"); } break; case b_key: { b_keystr *pp = (b_keystr *)p; debug_printf("Key %k%s\n", pp->key, pp->warn? "" : " nowarn"); } break; case b_linegap: debug_printf("Linegap\n"); break; case b_lrepeat: debug_printf("Left repeat\n"); break; case b_masq: debug_printf("Masquerade %s\n", ntstrings[((b_masqstr *)p)->value]); break; case b_move: { b_movestr *pp = (b_movestr *)p; debug_printf("Move %f, %f\n", pp->x, pp->y); } break; case b_name: debug_printf("Name %d\n", ((b_namestr *)p)->n); break; case b_nbar: debug_printf("Nbar %d y=%f\n", ((b_nbarstr *)p)->n, ((b_nbarstr *)p)->y); break; case b_newline: debug_printf("Newline\n"); break; case b_newpage: debug_printf("Newpage\n"); break; case b_nopack: debug_printf("Nopack\n"); break; case b_chord: case b_note: { b_notestr *pp = (b_notestr *)p; debug_printf("%s ", (pp->spitch == 0)? "Rest " : (type == b_note)? "Note ":"Chord"); debug_printf("%s %6d ", ntstrings[pp->notetype], pp->length); debug_printf("%s al=%6f ", accstrings[pp->acc], pp->accleft); debug_printf("p=%3d=%3d ", pp->spitch, pp->truepitch); debug_printf("f=%8x yx=%f\n", pp->flags, pp->yextra); } break; case b_noteheads: debug_printf("Noteheads %s\n", nhstrings[((b_charvaluestr *)p)->value]); break; case b_notes: debug_printf("Notes %s\n", (((b_notesstr *)p)->value)? "on" : "off"); break; case b_ns: { int i; b_nsstr *pp = (b_nsstr *)p; debug_printf("Ns "); for (i = 0; i < 8; i++) debug_printf("%f ", pp->ns[i]); debug_printf("\n"); } break; case b_nsm: debug_printf("Ns *%f\n", ((b_nsmstr *)p)->value); break; case b_offset: debug_printf("beammove %f\n", ((b_offsetstr *)p)->value); break; case b_olevel: { b_olevelstr *pp = (b_olevelstr *)p; debug_printf("Olevel "); if (pp->opt == TRUE) debug_printf("*\n"); else debug_printf("%f\n", pp->value); } break; case b_olhere: debug_printf("Olhere %f\n", ((b_olherestr *)p)->value); break; case b_ornament: { b_ornamentstr *pp = (b_ornamentstr *)p; debug_printf("Ornament %s x=%f y=%f bflags=%d\n", ornstrings[pp->ornament], pp->x, pp->y, pp->bflags); } break; case b_page: debug_printf("Page %s%d\n", (((b_pagestr *)p)->relative == 0)? "" : "+", ((b_pagestr *)p)->value); break; case b_pagebots: debug_printf("Bottommargin %f\n", ((b_pagebotsstr *)p)->value); break; case b_pagetops: debug_printf("Topmargin %f\n", ((b_pagetopsstr *)p)->value); break; case b_playchange: debug_printf("Playchange\n"); break; case b_plet: { b_pletstr *pp = (b_pletstr *)p; int flags = pp->flags; debug_printf("Plet %d ", pp->pletlen); if ((flags & plet_a) != 0) debug_printf("/a"); if ((flags & plet_b) != 0) debug_printf("/b"); if ((flags & plet_bn) != 0) debug_printf("/bn"); if ((flags & plet_by) != 0) debug_printf("/by"); if ((flags & plet_x) != 0) debug_printf("/x"); if ((flags & plet_lx) != 0) debug_printf("/lx"); if ((flags & plet_rx) != 0) debug_printf("/rx"); if ((flags & plet_abs)!= 0) debug_printf("/abs"); debug_printf(" %f, %f, %f\n", pp->x, pp->yleft, pp->yright); } break; case b_prevbar: debug_printf("Prevbar %d %d %d\n", ((b_prevbarstr *)p)->dbar, ((b_prevbarstr *)p)->ibar, ((b_prevbarstr *)p)->style); break; case b_reset: debug_printf("Reset\n"); break; case b_resume: debug_printf("Resume\n"); break; case b_rrepeat: debug_printf("Right repeat\n"); break; case b_setclef: debug_printf("Assume clef %s\n", clefstrings[((b_setclefstr *)p)->value]); break; case b_setkey: debug_printf("Assume key %k\n", ((b_setkeystr *)p)->value); break; case b_settime: debug_printf("Assume time %t\n", ((b_settimestr *)p)->value); break; case b_sghere: case b_sgnext: { b_sgstr *pp = (b_sgstr *)p; debug_printf("%s %c %f\n", (type == b_sghere)? "Sghere":"Sgnext", (pp->opt)? pp->opt : ' ', pp->value); } break; case b_slope: debug_printf("beamslope %f\n", ((b_slopestr *)p)->value); break; case b_slur: { b_slurstr *pp = (b_slurstr *)p; int flags = pp->flags; debug_printf("Slur id=%c flags=", (pp->id == 0)? ' ':pp->id); if ((flags & sflag_w) != 0) debug_printf("/w"); if ((flags & sflag_b) != 0) debug_printf("/b"); if ((flags & sflag_l) != 0) debug_printf("/l"); if ((flags & sflag_h) != 0) debug_printf("/h"); if ((flags & sflag_ol) != 0) debug_printf("/ol"); if ((flags & sflag_or) != 0) debug_printf("/or"); if ((flags & sflag_i) != 0) debug_printf("/i"); if ((flags & sflag_e) != 0) debug_printf("/e"); if ((flags & sflag_x) != 0) debug_printf("/x"); debug_printf(" ally=%f\n", pp->ally); } break; case b_slurgap: debug_printf("Slurgap\n"); break; case b_slurmod: debug_printf("Slurmod\n"); break; case b_space: debug_printf("Space %f\n", ((b_spacestr *)p)->value); break; case b_sshere: case b_ssnext: { b_ssstr *pp = (b_ssstr *)p; debug_printf("%s %d %c %f\n", (type == b_sshere)? "Sshere":"Ssnext", pp->stave, (pp->opt)? pp->opt : ' ', pp->value); } break; case b_suspend: debug_printf("Suspend\n"); break; case b_text: { b_textstr *pp = (b_textstr *)p; uschar *s = pp->string; int flags = pp->flags; BOOL absolute = (flags & text_absolute) != 0; debug_printf("Text %s \"", fontnames[pp->font]); if ((flags & text_ul) != 0) { int i; uschar *s = pp->string; for (i = 0; i < pp->ulen; i++) debug_printf("%c", *s++); } else debug_printf("%s", s); debug_printf("\""); if ((flags & text_fb) != 0) debug_printf("/fb"); if ((flags & text_ul) != 0) { if ((flags & text_above) != 0) debug_printf("/ol%d", pp->ulevel); else debug_printf("/ul%d", pp->ulevel); } else if ((flags & text_above) != 0) { debug_printf("/a"); if (absolute) debug_printf("%f", pp->y); } else if (absolute) debug_printf("/b%f", pp->y); if ((flags & text_atulevel) != 0) { if ((flags & text_above) != 0) debug_printf("/ao"); else debug_printf("/bu"); } if ((flags & text_baralign) != 0) debug_printf("/bar"); if ((flags & text_box) != 0) debug_printf("/box"); if ((flags & text_centre) != 0) debug_printf("/c"); if ((flags & text_endalign) != 0) debug_printf("/e"); if ((flags & text_middle) != 0) debug_printf("/m"); if ((flags & text_rehearse) != 0) debug_printf("/r"); if ((flags & text_ps) != 0) debug_printf("/ps"); if ((flags & text_ring) != 0) debug_printf("/ring"); if (pp->size) debug_printf("/s%d", pp->size + 1); if (pp->x < 0) debug_printf("/l%f", -pp->x); if (pp->x > 0) debug_printf("/r%f", pp->x); if (!absolute) { if (pp->y > 0) debug_printf("/u%f", pp->y); if (pp->y < 0) debug_printf("/d%f", -pp->y); } if (pp->htype != 0) debug_printf("/htype=%d", pp->htype); } debug_printf("\n"); break; case b_textX: debug_printf("TextX %f %f\n", ((b_textXstr *)p)->rotate, ((b_textXstr *)p)->halfway); break; case b_tick: debug_printf("Tick\n"); break; case b_tie: { b_tiestr *pp = (b_tiestr *)p; int flags = pp->flags; if (flags >= 4) debug_printf("Glissando\n"); if ((flags & 3) != 0) debug_printf("Tie %d/%d\n", pp->abovecount, pp->belowcount); } break; case b_time: { b_timestr *pp = (b_timestr *)p; debug_printf("Time %t%s%s\n", pp->time, pp->warn? "" : " nowarn", pp->suppress? " suppress" : ""); } break; case b_tremolo: { b_tremolostr *pp = (b_tremolostr *)p; debug_printf("Tremolo /x=%d /j=%d\n", pp->count, pp->join); } break; case b_tripsw: debug_printf("Triplets %s\n", (((b_tripswstr *)p)->value)? "on" : "off"); break; case b_ulevel: { b_ulevelstr *pp = (b_ulevelstr *)p; debug_printf("Ulevel "); if (pp->opt == TRUE) debug_printf("*\n"); else debug_printf("%f\n", pp->value); } break; case b_ulhere: debug_printf("Ulhere %f\n", ((b_ulherestr *)p)->value); break; case b_unbreakbarline: debug_printf("Unbreakbarline\n"); break; case b_zcopy: debug_printf("Zcopy %d\n", ((b_zcopystr *)p)->value); break; default: debug_printf("**** UNKNOWN ITEM TYPE %d ****\n", type); break; } if (type < 0 || type >= b_baditem) break; p = (bstr *)((uschar *)p + length_table[type]); type = p->type; } if (((b_Endstr *)p)->overbeam) debug_printf("Overbeam\n"); debug_printf("\n"); } } #ifdef Debug /* The remaining functions that follow were used in the early days when I was debugging on the Acorn. They have been cut out for a long time now, but I retain them in the source, just in case they are needed again some day. */ /************************************************* * Detailed debugging routines * *************************************************/ static uschar *stemswapstrings[] = { "default", "up", "down", "left", "right" }; /************************************************* * Display a vector * *************************************************/ static void debug_print_vector(uschar *name, uschar *format, int *v, int first, int last) { int i; uschar *c = ""; debug_printf("%s = ", name); for (i = first; i <= last; i++) { debug_printf(format, c, v[i]); c = ", "; } debug_printf("\n"); } /************************************************* * Display a stave list * *************************************************/ static void debug_print_list(uschar *s, stave_list *p) { debug_printf("%s = ", s); if (p == (stave_list *)(-1)) debug_printf("all\n"); else if (p == NULL) debug_printf("empty\n"); else { uschar buff[256]; format_sprintf(buff, "%L", p); debug_printf("%s\n", buff); } } /************************************************* * Display a stave map * *************************************************/ static int debug_print_map(uschar *s, unsigned int *map) { int i; int last; uschar *c = ""; debug_printf("%s = ", s); for (i = 0; i <= max_stave; i++) { if (mac_teststave(map, i)) { int s = i; while (++i <= max_stave && mac_teststave(map, i)); if (s == i-1) debug_printf("%s%d", c, s); else debug_printf("%s%d-%d", c, s, i-1); last = i-1; c = ", "; } } debug_printf("\n"); return last; } /************************************************* * Display text headings * *************************************************/ static void debug_heading(uschar *s, headstr *p) { while (p != NULL) { if (p->size == -2) { tree_node *t = p->a.drawing; debug_printf("%s draw %s %f\n", s, t->name, p->space); } else { debug_printf("%s %f \"%s\" %f\n", s, p->size, p->a.text, p->space); } p = p->next; } } /************************************************* * Display justify value * *************************************************/ static void debug_print_justify(int value) { debug_printf("justify = "); if (value == just_all) debug_printf("all"); else { if ((value & just_top) != 0) debug_printf("top "); if ((value & just_bottom) != 0) debug_printf("bottom "); if ((value & just_left) != 0) debug_printf("left "); if ((value & just_right) != 0) debug_printf("right "); } debug_printf("\n"); } /************************************************* * Show global variables * *************************************************/ void debug_showglobals(void) { ptimestr *p = main_printtime; trkeystr *k = main_transposedkeys; debug_printf("GLOBAL DATA\n"); debug_printf("Format = %s\n", main_format); debug_printf("Landscape = %B\n", opt_landscape); debug_printf("Magnification = %f\n", main_magnification); debug_printf("Maxvertjustify = %f\n", main_maxvertjustify); debug_printf("Oldbeambreak = %B\n", opt_oldbeambreak); debug_printf("Page = %d\n", main_firstpage); debug_printf("Pagelength = %f = %f\n", main_truepagelength, main_pagelength); while (p != NULL) { debug_printf("Printtime %t = \"%s\"/s%d \"%s\"/s%d\n", p->time, p->top, p->offsettop+1, p->bot, p->offsetbot+1); p = p->next; } debug_printf("Transposedacc = %s\n", main_transposedaccforce? "force" : "noforce"); while (k != NULL) { debug_printf("Transposedkey %k use %k\n", k->oldkey, k->newkey); k = k->next; } if (main_pssetup != NULL) debug_heading("Pssetup", main_pssetup); debug_printf("Totalbars = %d\n", main_totalbars); /**** Font table debug_printf("fontcount = %d base count = %d\n", font_count, font_basecount); for (i = 0; i < font_count; i++) debug_printf("%s %s %s\n", font_List[i].scname, font_List[i].psname, font_List[i].filename); ****/ /**** Fonts in use for (i = 1; i < font_xx + MaxExtraFont; i++) { uschar *s = font_List[font_table[i]].psname; if (s == NULL) s = "NULL"; debug_printf("Font %s = %s = %s\n", font_IdStrings[i], font_List[font_table[i]].scname, s); } ****/ debug_printf("\n"); } /************************************************* * Show heading for movement * *************************************************/ void debug_showmovement(int n) { int i; uschar *comma; movtstr *m; if (n == 0) n = 1; m = movement[n]; if (m == NULL) { debug_printf("No data for movement %d\n", n); return; } debug_printf("Heading data for movement %d\n", n); debug_heading("Heading", m->heading); debug_heading("Footing", m->footing); debug_heading("Pageheading", m->pageheading); debug_heading("Pagefooting", m->pagefooting); debug_heading("Lastfooting", m->lastfooting); debug_print_vector("accadjusts", "%s%f", m->accadjusts, 0, 7); debug_print_vector("accspacing", "%s%f", m->accspacing, 0, 5); debug_printf("barcount = %d\n", m->barcount); if (m->barlinespace == 0x80000000) debug_printf("barlinespace = unset\n"); else debug_printf("barlinespace = %f\n", m->barlinespace); debug_printf("barlinestyle = %d\n", m->barlinestyle); debug_printf("barno_textflags = %x\n", m->barno_textflags); debug_printf("barno_interval = %d\n", m->barno_interval); debug_printf("beamthickness = %f\n", m->beamdepth); debug_printf("baroffset = %d\n", m->baroffset); debug_printf("botmargin = %f\n", m->botmargin); debug_print_list("bracelist", m->bracelist); debug_print_list("bracketlist", m->bracketlist); debug_print_map("breakbarlines", m->breakbarlines); debug_printf("beamendrests = %B\n", m->beamendrests); debug_printf("breverests = %B\n", m->breverests); debug_printf("breveledgerextra = %f\n", m->breveledgerextra); debug_printf("caesurastyle = %d\n", m->caesurastyle); debug_printf("check = %s\n", m->check? "true":"false"); debug_printf("checkdoublebars = %B\n", m->checkdoublebars); debug_printf("dotspacefactor = %f\n", m->dotspacefactor); debug_printf("extenderlevel = %f\n", m->extenderlevel); debug_printf("font_time = %s\n", fontnames[m->font_time]); debug_printf("font_triplet = %s\n", fontnames[m->font_triplet]); debug_printf("fontsize_barno = %f\n", m->fontsizes->fontsize_barno); debug_printf("fontsize_clefs = %f\n", m->fontsizes->fontsize_clefs); debug_printf("fontsize_cue = %f\n", m->fontsizes->fontsize_cue); debug_printf("fontsize_cuegrace = %f\n", m->fontsizes->fontsize_cuegrace); debug_printf("fontsize_fbass = %f\n", m->fontsizes->fontsize_fbass); debug_printf("fontsize_grace = %f\n", m->fontsizes->fontsize_grace); debug_printf("fontsize_music = %f\n", m->fontsizes->fontsize_music); debug_printf("fontsize_olay = %f\n", m->fontsizes->fontsize_olay); debug_printf("fontsize_rehearse = %f\n", m->fontsizes->fontsize_rehearse); debug_printf("fontsize_repno = %f\n", m->fontsizes->fontsize_repno); debug_printf("fontsize_restct = %f\n", m->fontsizes->fontsize_restct); comma = ""; debug_printf("fontsize_text = "); for (i = 0; i < MaxTextFont; i++) { debug_printf("%s%f", comma, m->fontsizes->fontsize_text[i]); comma = ", "; } debug_printf("\n"); debug_printf("fontsize_trill = %f\n", m->fontsizes->fontsize_trill); debug_printf("fontsize_triplet = %f\n", m->fontsizes->fontsize_triplet); debug_printf("fontsize_tsfont = %f\n", m->fontsizes->fontsize_tsfont); debug_printf("fontsize_ulay = %f\n", m->fontsizes->fontsize_ulay); debug_printf("fullbarend = %B\n", m->fullbarend); debug_printf("gracespacing = %f %f\n", m->gracespacing[0], m->gracespacing[1]); debug_printf("gracestyle = %d\n", m->gracestyle); debug_printf("hairpinlinewidth = %f\n", m->hairpinlinewidth); debug_printf("hairpinwidth = %f\n", m->hairpinwidth); debug_printf("hyphenstring = \"%s\"\n", m->hyphenstring); debug_printf("hyphenthreshold = %f\n", m->hyphenthreshold); debug_print_list("joinlist", m->joinlist); debug_print_list("joindottedlist", m->joindottedlist); debug_print_justify(m->justify); debug_printf("key = %k\n", m->key); debug_printf("keydoublebar = %B\n", m->keydoublebar); debug_printf("keywarn = %B\n", m->keywarn); debug_printf("laststave = %d\n", m->laststave); if (m->leftmargin == -1) debug_printf("leftmargin = unset\n"); else debug_printf("leftmargin = %f\n", m->leftmargin); debug_printf("linelength = %f = %f\n", m->truelinelength, m->linelength); debug_printf("maxbarcount = %d\n", m->maxbarcount); debug_printf("movt_opt = %d\n", m->movt_opt); comma = ""; debug_printf("notespacing = "); for (i = 0; i < 8; i++) { debug_printf("%s%f", comma, curmovt->notespacing[i]); comma = ", "; } debug_printf("\n"); debug_printf("overlaydepth = %f\n", m->overlaydepth); debug_printf("play_tempo = %d\n", m->play_tempo); debug_printf("rehearsalstyle = %d\n", m->rehearsalstyle); debug_printf("repeatstyle = %d\n", m->repeatstyle); debug_printf("showtime = %B\n", m->showtime); debug_printf("showtimebase = %B\n", m->showtimebase); debug_printf("spreadunderlay = %B\n", m->spreadunderlay); debug_printf("startbracketbar = %d\n", m->startbracketbar); debug_printf("startjoin = %B\n", m->startjoin); debug_printf("startlinespacing = %f, %f, %f, %f\n", m->startline->clefspace, m->startline->keyspace, m->startline->timespace, m->startline->notespace); debug_printf("startnotime = %B\n", m->startnotime); debug_print_map("staves", m->staves); for (i = 0; i <= m->laststave; i++) { stavestr *s = m->stavetable[i]; if (s != NULL) { snamestr *p = s->stave_name; if (p != NULL) { debug_printf("stavenames %d =", i); while (p != NULL) { debug_printf(" \"%s\"", p->text); if ((p->flags & snf_hcentre) != 0) debug_printf("/m"); if (p->offset != ff_offset_init) debug_printf("/s%d", p->offset+1); debug_printf("(%d)", p->linecount); if (p->drawing != NULL) { debug_printf(" draw"); if (p->args != NULL) { int i; for (i = 1; i <= p->args[0]; i++) debug_printf(" %d", p->args[i]); } debug_printf(" %s", (p->drawing)->name); } p = p->next; } debug_printf("\n"); } } } debug_printf("stavesizes = "); for (i = 1; i <= max_stave; i++) { int size = (m->stavesizes)[i]; if (size != 1000) debug_printf("%d/%f ", i, size); } debug_printf("\n"); if (m->stave_spacing != NULL) { int *x = m->stave_spacing; int *y = m->stave_ensure; for (i = 0; i <= m->laststave; i++) if (x[i] != 44000 || y[i] != 0) debug_printf("stavespacing %d/%f/%f\n", i, y[i], x[i]); } debug_printf("stemswaptype = %s\n", stemswapstrings[m->stemswaptype]); for (i = 0; i <= m->laststave; i++) if (m->stemswaplevel[i] != P_3L) debug_printf("stemswaplevel %d = %d\n", i, m->stemswaplevel[i]); debug_print_map("suspend", m->suspend); debug_printf("systemgap = %f\n", m->systemgap); debug_printf("time = %t\n", m->time); debug_printf("timewarn = %B\n", m->timewarn); debug_printf("topmargin = %f\n", m->topmargin); debug_printf("transpose = %d\n", m->transpose); debug_printf("trillstring = \"%s\"\n", m->trillstring); debug_printf("underlaydepth = %f\n", m->underlaydepth); debug_printf("unfinished = %B\n", m->unfinished); debug_printf("\n"); } /************************************************* * Show stave data * *************************************************/ void debug_showstave(int n, int s) { int i; if (n == 0) n = 1; debug_printf("\nMOVEMENT %d STAVE %d\n\n", n, s); for (i = 1; i <= (movement[n]->stavetable[s])->lastbar; i++) debug_showbar(n, s, i); } /************************************************* * Show a bar's positioning data * *************************************************/ /* Subroutine to give length symbolically if possible */ static void symb_length(int moff, uschar *s) { if (moff == 0) sprintf(s, " "); else if (moff % len_minim == 0) sprintf(s, "%2dm", moff/len_minim); else if (moff % len_crotchet == 0) sprintf(s, "%2dc", moff/len_crotchet); else if (moff % len_quaver == 0) sprintf(s, "%2dq", moff/len_quaver); else if (moff % len_squaver == 0) sprintf(s, "%2ds", moff/len_squaver); else if (moff % len_dsquaver == 0) sprintf(s, "%2dd", moff/len_dsquaver); else sprintf(s, " "); } /* The real function */ void debug_showbarpos(int m, int b) { barposstr *bp; posstr *p; int count; uschar s[10]; if (m == 0) m = 1; bp = ((movement[m])->posvector) + b; p = bp->vector; count = bp->count; format_movt = movement[m]; debug_printf("Bar positioning data for bar %b movement %d\n", b, m); debug_printf("posxRL = %s barnoX = %f barnoY = %f multi = %d force = %d\n", (bp->posxRL == -posx_RLleft)? "left" : "right", bp->barnoX, bp->barnoY, bp->multi, bp->barnoforce); symb_length(p->moff, s); debug_printf("%7d %s %5d %6d\n", p->moff, s, 0, p->xoff); p++; count--; while (count--) { symb_length(p->moff, s); debug_printf("%7d %s %5d %6d\n", p->moff, s, p->xoff - (p-1)->xoff, p->xoff); p++; } } /************************************************* * Show page data * *************************************************/ void debug_showpage(int n) { sysblock *s; pagestr *p = main_pageanchor; if (n == 0) n = 1; while (p != NULL && n != p->number) p = p->next; if (p == NULL) { debug_printf("\nPAGE %d DATA NOT FOUND\n", n); return; } debug_printf("\nPAGE %d: topspace = %f spaceleft = %f overrun = %f\n", n, p->topspace, p->spaceleft, p->overrun); s = p->sysblocks; while (s != NULL) { if (s->type == sh_heading) { debug_printf("\n%sHEADING BLOCK\n", (((headblock *)s)->pageheading)? "PAGE ":""); debug_heading("heading", ((headblock *)s)->headings); } else { contstr *cont = s->cont; int flags = s->flags; int i, laststave; debug_printf("\nSYSTEM\n" "warnkey = %B\n" "warntime = %B\n" "stretch = %B\n" "noadvance = %B\n", flags & sysblock_warnkey, flags & sysblock_warntime, flags & sysblock_stretch, flags & sysblock_noadvance); debug_printf("bars %d to %d\n", s->barstart, s->barend); debug_printf("xjustify = %f\n", s->xjustify); debug_printf("barlinewidth = %f\n", s->barlinewidth); debug_printf("startxposition = %f\n", s->startxposition); debug_printf("joinxposition = %f\n", s->joinxposition); debug_printf("keyxposition = %f\n", s->keyxposition); debug_printf("timexposition = %f\n", s->timexposition); debug_printf("firstnoteposition = %f\n", s->firstnoteposition); laststave = debug_print_map("staves", s->notsuspend); if (s->stavenames != NULL) { snamestr **p = s->stavenames; for (i = 1; i <= laststave; i++) if (p[i] != NULL) debug_printf("text %d = \"%s\"\n", i, p[i]->text); } if (laststave > 1) debug_print_vector("stavespacing", "%s%f", s->stavespacing,1,laststave-1); debug_printf("systemdepth = %f\n", s->systemdepth); debug_printf("systemgap = %f\n", s->systemgap); debug_print_vector("olevel", "%s%f", s->olevel, 1, laststave); debug_print_vector("ulevel", "%s%f", s->ulevel, 1, laststave); debug_printf("CONT STRUCTURES\n"); for (i = 0; i <= laststave; i++) { debug_printf("stave %d: ", i); if (cont->slurs) debug_printf("slurs "); if (cont->hairpin) debug_printf("hairpin "); if (cont->nbar) debug_printf("nbar "); if (cont->tie) debug_printf("tie "); if (cont->ulay) debug_printf("ulay "); if (cont->overbeam) debug_printf("overbeam "); debug_printf("\n"); cont++; } } s = s->next; } if (p->footing != NULL && (p->footing)->headings != NULL) { debug_printf("\nFOOTINGS\n"); debug_heading("footing", (p->footing)->headings); } } #endif /* End of debug.c */ pmw-4.27/src/read2.c0000644000222100022210000016472612247665016012320 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2013 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: March 2013 */ /* This file contains part II of the code for reading in a PMW score file. It deals with heading information. The main control function is last, preceded by a table of heading directives which refers to earlier functions for processing them. */ #include "pmwhdr.h" #include "readhdr.h" #define oo offsetof #define int_u 1 /* unsigned */ #define int_s 2 /* signed */ #define int_rs 3 /* relative if signed */ #define int_less1 4 /* take away 1 (flag) */ #define int_f 8 /* fixed point (flag, must be last) */ /************************************************* * Global variable list * *************************************************/ /* Since we cannot put global addresses directly into the static table of structures, we have to indirect them via a separate vector. (This restriction is in the C language.) */ static int *global_vars[] = { (int *)(&main_magnification), (int *)(&main_maxvertjustify), (int *)(&midi_for_notes_off), (int *)(&opt_oldbeambreak), (int *)(&opt_oldrestlevel), (int *)(&opt_oldstemlength), (int *)(&main_truepagelength), (int *)(&main_righttoleft), (int *)(&main_sheetheight), (int *)(&main_sheetwidth), (int *)(&opt_stretchrule), (int *)(&main_kerning) }; enum { glob_magnification, glob_maxvertjustify, glob_midifornotesoff, glob_oldbeambreak, glob_oldrestlevel, glob_oldstemlength, glob_pagelength, glob_righttoleft, glob_sheetdepth, glob_sheetwidth, glob_stretchrule, glob_kerning }; /************************************************* * Local static variables * *************************************************/ static int read_map[stave_bitvec_size]; /* For reading lists of staves */ /************************************************* * Read and set font name, if present * *************************************************/ /* If a recognized font word ("roman", "italic", etc.) is the next thing in the input, read it and put its index number into the current movement data structure, at a given offset. If what follows is not a recognized font word, do nothing. Argument: the offset for the result Returns: nothing */ static void set_fontname(int offset) { sigch(); if (isalpha(read_ch)) { uschar *save_readchptr = read_chptr; int save_readch = read_ch; int x; if ((x = font_fontword(TRUE)) > 0) { *((int *)(((uschar *)curmovt) + offset)) = x; } else { read_ch = save_readch; read_chptr = save_readchptr; } } } /************************************************* * Read and set font size * *************************************************/ /* This is for the table of font sizes in the movement structure. If the next thing in the input is a digit, read it as a font size. If not, do nothing. Arguments: offset offset in current movement data structure for the result stretchOK TRUE if stretch and/or shearing are permitted for the font Returns: nothing */ static void set_fontsize(int offset, BOOL stretchOK) { sigch(); if (isdigit(read_ch)) { if (!read_copied_fontsizestr) { fontsizestr *new = store_Xget(sizeof(fontsizestr)); *new = *(curmovt->fontsizes); curmovt->fontsizes = new; read_copied_fontsizestr = TRUE; } *((int *)(((uschar *)(curmovt->fontsizes)) + offset)) = read_integer(TRUE); *((int **)(((uschar *)(curmovt->fontsizes)) + offset + oo(fontsizestr, fontmatrix_music))) = NULL; if (read_ch == '/') { int stretch; int shear = 0; next_ch(); if (!read_expect_integer(&stretch, TRUE, FALSE)) return; if (read_ch == '/') { next_ch(); if (!read_expect_integer(&shear, TRUE, TRUE)) return; } if (!stretchOK) error_moan(97, "allowed", "with this directive"); else { int *matrix = store_Xget(4*sizeof(int)); *((int **)(((uschar *)(curmovt->fontsizes)) + offset + oo(fontsizestr, fontmatrix_music))) = matrix; matrix[0] = mac_muldiv(stretch, 65536, 1000); matrix[1] = 0; matrix[2] = (int)(tan(((double)shear)*atan(1.0)/45000.0)*65536.0); matrix[3] = 65536; } } } } /******************************************************************* * The following functions are referenced in the read_headstring * * vector of heading directives. Each is called when the relevant * * directive is encountered. They all have the same interface: * * read_dir->arg1 and read_dir->arg2 contain up to two arguments * * associated with the directive. There are no arguments to the * * functions themselves, and they do not return any values. * ******************************************************************/ /************************************************* * Deal with plain font size * *************************************************/ static void movt_fszproc(void) { sigch(); if (isdigit(read_ch)) set_fontsize(read_dir->arg1, read_dir->arg2); else error_moan(10, "Number"); } /************************************************* * Deal with heading boolean * *************************************************/ static void movt_cboolproc(void) { *((CBOOL *)((uschar *)curmovt + read_dir->arg1)) = read_dir->arg2; } /************************************************* * Deal with heading font * *************************************************/ static void movt_fontproc(void) { int x; set_fontsize(read_dir->arg2, TRUE); if ((x = font_fontword(FALSE)) > 0) *((int *)(((uschar *)curmovt) + read_dir->arg1)) = x; } /************************************************* * Deal with global boolean * *************************************************/ static void opt_boolproc(void) { if (main_lastmovement == 1) *global_vars[read_dir->arg1] = read_dir->arg2; else error_moan(20); } /************************************************* * Deal with heading integer * *************************************************/ static void movt_intproc(void) { int x; int value = 0; int flags = read_dir->arg2; int offset = ((flags & int_less1) != 0)? -1 : 0; int arg2 = flags & ~(int_f | int_less1); int *address = (int *)((uschar *)curmovt + read_dir->arg1); sigch(); if (arg2 == int_rs && (read_ch == '+' || read_ch == '-')) value = *address; if (read_expect_integer(&x, flags >= int_f, arg2 != int_u)) *address = value + x + offset; } /************************************************* * Deal with global integer * *************************************************/ static void opt_intproc(void) { int x; int *address = global_vars[read_dir->arg1]; int value = 0; int arg2 = (read_dir->arg2) & ~int_f; sigch(); if (arg2 == int_rs && (read_ch == '+' || read_ch == '-')) value = *address; if (read_expect_integer(&x, read_dir->arg2 >= int_f, arg2 != int_u)) *address = value + x; if (main_lastmovement != 1) error_moan(20); } /************************************************* * Deal with heading stave list * *************************************************/ static void movt_listproc(void) { stave_list **p = (stave_list **)(((uschar *)curmovt) + read_dir->arg1); *p = NULL; sigch(); while (isdigit(read_ch)) { int s = read_integer(FALSE); int t = s; sigch(); if (read_ch == '-') { next_sigch(); if (!read_expect_integer(&t, FALSE, TRUE)) return; } if (t < s) error_moan(21); else if (t > max_stave) error_moan(22, max_stave+1); else { stave_list *q = store_Xget(sizeof(stave_list)); q->next = NULL; q->first = s; q->last = t; *p = q; p = &(q->next); } sigch(); if (read_ch == ',') next_sigch(); } } /************************************************* * Deal with heading stave map * *************************************************/ static void movt_mapproc(void) { mac_initstave(read_map, 0); if (read_dir->arg2 >= 0) mac_setstave(read_map, read_dir->arg2); sigch(); while (isdigit(read_ch)) { int s = read_integer(FALSE); int t = s; sigchNL(); if (read_ch == '-') { next_sigch(); if (!read_expect_integer(&t, FALSE, TRUE)) return; } if (t < s) error_moan(21); else if (t > max_stave) error_moan(22, max_stave + 1); else while (s <= t) { mac_setstave(read_map, s); s++; } /* Can't put */ /* s++ inside */ sigchNL(); if (read_ch == ',') next_sigch(); } if (read_dir->arg1 != 0) memcpy(((uschar *)curmovt) + read_dir->arg1, read_map, stave_bitvec_size*sizeof(int)); } /************************************************* * Deal with heading/footing text * *************************************************/ /* The bits in the map remember which have been read, for flushing at the start of a new movement. */ static void movt_headproc(void) { headstr **oldp = (headstr **)(((uschar *)curmovt) + read_dir->arg1); headstr *new = store_Xget(sizeof(headstr)); /* If this is the first one of this type of heading, reset the pointer so as not to copy the ones from the previous movement. */ if ((read_headmap & read_dir->arg2) == 0) { read_headmap |= (read_dir->arg2 & ~rh_ps); *oldp = NULL; } /* Else find the end of the chain */ else while (*oldp != NULL) oldp = &((*oldp)->next); /* Add the new block onto the chain and initialize */ *oldp = new; read_headfootingtext(new, read_dir->arg2); } /************************************************* * Read arguments for heading/footing * *************************************************/ /* This code is also called from read4 for reading the text of footnotes and sysnotes, so it has to be globally addressible. */ void read_headfootingtext(headstr *new, int type) { int defaultsize = 0; new->next = NULL; new->stretch = 0; new->font = font_rm; /* If the next character is a letter, we expect to read "draw "; otherwise we expect an optional type size and a text string. */ sigch(); if (isalpha(read_ch)) { tree_node *node; int argcount = 0; drawitem *drawargs = NULL; drawitem args[20]; uschar word[80]; read_word(word); if (Ustrcmp(word, "draw") != 0) { error_moan(10, "\"draw\""); return; } sigch(); while (isdigit(read_ch) || read_ch == '-' || read_ch == '+' || read_ch == '\"') { if (read_ch == '\"') { args[++argcount].d.ptr = read_draw_text(); args[argcount].dtype = dd_text; } else { if (!read_expect_integer(&(args[++argcount].d.val), TRUE, TRUE)) break; args[argcount].dtype = dd_number; } sigch(); } if (argcount > 0) { int i; drawargs = store_Xget((argcount+1)*sizeof(drawitem)); drawargs[0].dtype = dd_number; drawargs[0].d.val = argcount; for (i = 1; i <= argcount; i++) drawargs[i] = args[i]; } read_word(word); node = Tree_Search(draw_tree, word); if (node == NULL) { error_moan(70, word); return; } new->a.drawing = node; new->b.args = drawargs; new->size = -1; } /* Deal with conventional heading */ else { /* Set the type size, either by reading, or by algorithm. If explicit, can be followed by stretch and possibly shear, otherwise a NULL matrix. */ new->matrix = NULL; if (isdigit(read_ch)) { new->size = read_integer(TRUE); if (read_ch == '/') { int *matrix = store_Xget(4*sizeof(int)); int stretch; int shear = 0; next_ch(); if (!read_expect_integer(&stretch, TRUE, FALSE)) return; if (read_ch == '/') { next_ch(); if (!read_expect_integer(&shear, TRUE, TRUE)) return; } new->matrix = matrix; matrix[0] = mac_muldiv(stretch, 65536, 1000); matrix[1] = 0; matrix[2] = (int)(tan(((double)shear)*atan(1.0)/45000.0)*65536.0); matrix[3] = 65536; } sigch(); } else switch(type) { case rh_heading: new->size = read_headingsizes[read_headcount]; break; case rh_footing: case rh_pagefooting: case rh_lastfooting: new->size = read_footingsize; break; case rh_pageheading: new->size = read_pageheadingsize; break; case rh_footnote: new->size = curmovt->fontsizes->fontsize_footnote; new->matrix = curmovt->fontsizes->fontmatrix_footnote; break; default: /* PostScript headings/footings */ new->size = 0; break; } /* Default size is type size */ defaultsize = new->size; /* Must increment headcount whether explicit size supplied or not */ if (type == rh_heading && read_headcount < read_maxheadcount) read_headcount++; /* We now expect a heading string; if not PostScript, check its escapes */ new->a.text = string_read(); new->b.spaceabove = 0; if (new->a.text != NULL && new->size != 0) new->a.text = string_check(new->a.text); } /* The stretch value is set to zero here; if required it will be set later. */ new->stretch = 0; /* If another number follows, it is the space which follows; if not, default it. */ sigch(); if (isdigit(read_ch) || read_ch == '+' || read_ch == '-') read_expect_integer(&(new->space), TRUE, TRUE); else new->space = defaultsize; } /************************************************* * Accadjusts * *************************************************/ static void accadjusts(void) { int i; int *x = store_Xget(8*sizeof(int)); for (i = 0; i < 8; i++) { sigch(); if (read_ch == ',') next_sigch(); if (read_ch != '-' && read_ch != '+' && !isdigit(read_ch)) x[i] = 0; else (void)read_expect_integer(x+i, TRUE, TRUE); } curmovt->accadjusts = x; } /************************************************* * Accspacing * *************************************************/ static void accspacing(void) { int i; int *x = store_Xget(6*sizeof(int)); for (i = 1; i < 6; i++) { sigch(); if (read_ch == ',') next_sigch(); if (!read_expect_integer(x+i, TRUE, TRUE)) break; } curmovt->accspacing = x; } /************************************************* * Barlinespace * *************************************************/ static void barlinespace(void) { sigch(); if (read_ch == '*') { curmovt->barlinespace = 0x80000000; next_sigch(); } else movt_intproc(); } /************************************************* * Barnumberlevel * *************************************************/ /* A sign is mandatory */ static void barnumberlevel(void) { sigch(); if (read_ch != '+' && read_ch != '-') error_moan(10, "\"+\" or \"-\""); else movt_intproc(); } /************************************************* * Barnumbers * *************************************************/ static void barnumbers(void) { int wordread = FALSE; uschar word[80]; curmovt->barno_textflags = 0; sigch(); if (isalpha(read_ch)) { read_word(word); sigch(); if (Ustrcmp(word, "boxed") == 0) curmovt->barno_textflags = text_box; else if (Ustrcmp(word, "ringed") == 0) curmovt->barno_textflags = text_ring; else wordread = TRUE; } if (!wordread && isalpha(read_ch)) { read_word(word); wordread = TRUE; } if (wordread) { if (Ustrcmp(word, "line") == 0) curmovt->barno_interval = -1; else { error_moan(10, "\"line\""); return; } } else { if (!read_expect_integer(&(curmovt->barno_interval), FALSE, FALSE)) return; } set_fontsize(oo(fontsizestr, fontsize_barno), TRUE); set_fontname(oo(movtstr, font_barnumber)); } /************************************************* * Bracestyle * *************************************************/ static void bracestyle(void) { movt_intproc(); if (curmovt->bracestyle > 1) { error_moan(37, "Number less than 2"); curmovt->bracestyle = 0; } } /************************************************* * Breakbarlines * *************************************************/ static void breakbarlines(void) { sigch(); if (!isdigit(read_ch)) { int *map = (int *)(((uschar *)curmovt) + read_dir->arg1); mac_initstave(map, -1); } else movt_mapproc(); curmovt->fullbarend = FALSE; } /************************************************* * Breakbarlinesx * *************************************************/ static void breakbarlinesx(void) { breakbarlines(); curmovt->fullbarend = TRUE; } /************************************************* * Caesurastyle * *************************************************/ static void caesurastyle(void) { movt_intproc(); if (curmovt->caesurastyle > 1) { error_moan(37, "Number less than 2"); curmovt->caesurastyle = 0; } } /************************************************* * Clef size (relative) * *************************************************/ static void clefsize(void) { sigch(); if (isdigit(read_ch)) { set_fontsize(oo(fontsizestr,fontsize_clefs), FALSE); (curmovt->fontsizes)->fontsize_clefs *= 10; } else error_moan(10, "Number"); } /************************************************ * Clef style * ************************************************/ static void clefstyle(void) { movt_intproc(); if (curmovt->clefstyle > 3) error_moan(10, "Number less than 4"); } /************************************************ * Clef widths * ************************************************/ static int shape[] = { clef_treble, clef_bass, clef_alto, clef_h, clef_none }; static void clefwidths(void) { int i; sigch(); for (i = 0; i < 5 && isdigit(read_ch); i++) { int width, j; (void)read_expect_integer(&width, FALSE, FALSE); if (read_ch == ',') next_ch(); sigch(); for (j = 0; j < clef_count; j++) if (main_cleftypes[j] == shape[i]) curmovt->clefwidths[j] = width; } } /************************************************* * Copyzero * *************************************************/ static void copyzero(void) { zcopystr **pp = &(curmovt->zcopy); sigch(); if (!isdigit(read_ch)) { error_moan(10, "stave number"); return; } while (isdigit(read_ch)) { zcopystr *p = store_Xget(sizeof(zcopystr)); *pp = p; pp = &(p->next); p->next = NULL; p->baradjust = 0; p->stavenumber = read_integer(FALSE); if (read_ch == '/') { next_ch(); if (!read_expect_integer(&(p->adjust), TRUE, TRUE)) break; } else p->adjust = 0; sigch(); if (read_ch == ',') next_sigch(); } } /************************************************* * Doublenotes * *************************************************/ static void doublenotes(void) { main_notenum *= 2; curmovt->time = read_scaletime(curmovt->time); } /************************************************* * Gracespacing * *************************************************/ /* Read up to two fixed point numbers, second defaulting to the first; "+" and "-" can be used to adjust values. */ static void gracespacing(void) { int arg; int value = 0; BOOL wasrelative = FALSE; sigch(); if (read_ch == '+' || read_ch == '-') { value = curmovt->gracespacing[0]; wasrelative = TRUE; } if (!read_expect_integer(&arg, TRUE, TRUE)) return; curmovt->gracespacing[0] = value + arg; sigch(); if (read_ch == ',') next_ch(); sigch(); if (!isdigit(read_ch) && read_ch != '+' && read_ch != '-') { curmovt->gracespacing[1] = wasrelative? curmovt->gracespacing[1] + arg : curmovt->gracespacing[0]; return; } value = (read_ch == '+' || read_ch == '-')? curmovt->gracespacing[1] : 0; if (!read_expect_integer(&arg, TRUE, TRUE)) return; curmovt->gracespacing[1] = value + arg; } /************************************************* * Halvenotes * *************************************************/ static void halvenotes(void) { if (main_notenum > 1) main_notenum /= 2; else main_noteden *= 2; curmovt->time = read_scaletime(curmovt->time); } /************************************************* * Hyphenstring * *************************************************/ static void hyphenstring(void) { uschar s[256]; if (read_plainstring(s)) curmovt->hyphenstring = store_copystring(s); else error_moan(10, "String"); } /************************************************* * Justify * *************************************************/ static void justify(void) { int yield = 0; for (;;) { sigch(); if (isalpha(read_ch)) { uschar word[256]; uschar *backupptr = read_chptr; int backup = read_ch; read_word(word); if (Ustrcmp(word, "top") == 0) yield |= just_top; else if (Ustrcmp(word, "bottom") == 0) yield |= just_bottom; else if (Ustrcmp(word, "left") == 0) yield |= just_left; else if (Ustrcmp(word, "right") == 0) yield |= just_right; else if (Ustrcmp(word, "all") == 0) yield |= just_all; else { read_chptr = backupptr; read_ch = backup; break; } } else break; } curmovt->justify = yield; } /************************************************* * Key * *************************************************/ /* After setting the key for this movement, ensure the relevant stave data is fudged, in case there are transposed text strings in the subsequent header lines. The transpose value will already be fudged. */ static void key(void) { curmovt->key = read_key(); stave_key = curmovt->key; stave_key_tp = transpose_key(stave_key, stave_transpose, TRUE); } /************************************************* * Landscape * *************************************************/ static void landscape(void) { int temp = curmovt->truelinelength; curmovt->truelinelength = main_truepagelength; main_truepagelength = temp; if (opt_sheetsize == sheet_A5) main_truepagelength -= 28000; temp = main_sheetwidth; main_sheetwidth = main_sheetheight; main_sheetheight = temp; opt_landscape = TRUE; if (main_lastmovement != 1) error_moan(20); } /************************************************* * Layout * *************************************************/ static void layout(void) { int *temp = store_Xget(layout_maxsize * 2 * sizeof(int)); int stack[20]; int ptr = 0; int level = 0; for (;;) { int value; sigch(); if (!isdigit(read_ch)) { if (ptr == 0 || level > 0) { error_moan(10, "Number"); return; } /* Final item is always repeat back to start */ temp[ptr++] = lv_repeatptr; temp[ptr++] = 0; /* Save in correct size piece of store */ curmovt->layout = store_Xget(ptr*sizeof(int)); memcpy(curmovt->layout, temp, ptr * sizeof(int)); store_free(temp); return; } /* Value must be > 0 */ read_expect_integer(&value, FALSE, FALSE); if (value == 0) { error_moan(16, "Zero value changed to 1"); value = 1; } /* If number followed by '(' it is a repeat count */ sigch(); if (read_ch == '(') { next_ch(); temp[ptr++] = lv_repeatcount; temp[ptr++] = value; stack[level++] = ptr; } /* Else it is a barcount value, with varying terminators. If none of the specials, it does nothing, and another number will be a continuation, while anything else is the next directive. There may be a number of these terminators. */ else { temp[ptr++] = lv_barcount; temp[ptr++] = value; for (;;) { if (read_ch == ',') { next_sigch(); break; } /* Close bracket is the end of a repeat. Check nesting. It can be followed by comma, semicolon, or another bracket. */ else if (read_ch == ')') { if (level <= 0) { error_moan(10, "Bracket not"); return; } else { temp[ptr++] = lv_repeatptr; temp[ptr++] = stack[--level]; } next_sigch(); } /* Semicolon generates a new page item */ else if (read_ch == ';') { temp[ptr++] = lv_newpage; next_sigch(); } /* Anything else, just carry on with the big loop */ else break; } } } } /************************************************* * Ledgerstyle * *************************************************/ /* The table sets pointers so the value goes into the curmovt->ledger variable. Translate 0/1 into the old/new ledger characters. */ static void ledgerstyle(void) { movt_intproc(); curmovt->ledger = (curmovt->ledger == 0)? '=' : 184; } /************************************************* * Maxbeamslope * *************************************************/ static void maxbeamslope(void) { if (!read_expect_integer(&curmovt->maxbeamslope1, TRUE, FALSE)) return; if (!read_expect_integer(&curmovt->maxbeamslope2, TRUE, FALSE)) return; } /************************************************* * Midichannel * *************************************************/ /* Local subroutine to make a copy of a map if this is the first time it's been updated in this movement. */ static void copy_midi_map(int flag, int size, uschar **anchor) { if ((read_headmap & flag) == 0) { uschar *new = store_Xget(size); memcpy(new, *anchor, size); *anchor = new; read_headmap |= flag; } } /* The main function */ static void midichannel(void) { int channel; uschar string[80]; debug_printf("midichannel start\n"); /* A channel number is always expected */ if (!read_expect_integer(&channel, FALSE, FALSE)) return; if (channel < 1 || channel > midi_maxchannel) { error_moan(109, "channel", midi_maxchannel); channel = 1; } /* Deal with an optional voice setting */ if (read_plainstring(string)) { int voicenumber; if (string[0] == 0) voicenumber = 129; else /* => don't do MIDI voice setting */ { if (string[0] == '#') voicenumber = Uatoi(string+1); else voicenumber = read_getmidinumber(midi_voicenames, string, US"voice"); if (voicenumber < 1 || voicenumber > 128) { if (midi_filename != NULL) error_moan(109, "voice", 128); voicenumber = 1; } } copy_midi_map(rh_midivoice, midi_maxchannel, &(curmovt->midi_voice)); curmovt->midi_voice[channel-1] = voicenumber - 1; /* There may be an optional volume setting */ if (read_ch == '/') { int vol; next_ch(); if (read_expect_integer(&vol, FALSE, FALSE)) { if (vol > 15) error_moan(10, "Number between 0 and 15"); else { copy_midi_map(rh_midivolume, max_stave+1, &(curmovt->midi_volume)); curmovt->midi_volume[channel-1] = vol; } } } } /* Deal with an optional stave list */ sigch(); if (isdigit(read_ch)) { int i; int pitch = 0; copy_midi_map(rh_midichannel, max_stave+1, &(curmovt->midi_channel)); movt_mapproc(); /* read stave list into read_map */ /* Deal with optional 'pitch' forcing */ if (read_plainstring(string)) { if (string[0] == 0) pitch = 0; /* => don't do MIDI pitch forcing */ else if (string[0] == '#') pitch = Uatoi(string+1); else pitch = read_getmidinumber(midi_percnames, string, US"percussion instrument"); copy_midi_map(rh_midinote, max_stave+1, &(curmovt->midi_note)); } /* Now update the per-stave data */ for (i = 1; i <= max_stave; i++) { if (mac_teststave(read_map, i)) { if (pitch) curmovt->midi_note[i] = pitch; curmovt->midi_channel[i] = channel; } } } debug_printf("midichannel end\n"); } /************************************************* * Midistart * *************************************************/ static void midistart(void) { int max = 0; int count = 0; int *temp = NULL; for (;;) { int value; sigch(); if (!isdigit(read_ch)) { if (count == 0) { error_moan(10, "Number"); return; } temp[0] = count; curmovt->midi_start = temp; return; } /* Get more store if needed */ if (++count > max) { int newmax = max + 20; int *new = store_Xget((newmax + 1) * sizeof(int)); if (max > 0) { memcpy(new, temp, (max+1) * sizeof(int)); store_free(temp); } temp = new; max = newmax; } read_expect_integer(&value, FALSE, FALSE); temp[count] = value; } } /************************************************* * Notespacing * *************************************************/ static void notespacing(void) { int i; sigch(); if (read_ch == '*') { int f; next_ch(); if (!read_expect_integer(&f, TRUE, FALSE)) return; if (read_ch == '/') { int d; next_ch(); if (!read_expect_integer(&d, TRUE, FALSE)) return; f = mac_fdiv(f, d); } for (i = 0; i < 8; i++) curmovt->notespacing[i] = (f * curmovt->notespacing[i])/1000; } else { for (i = 0; i < 8; i++) { if (!read_expect_integer(main_notespacing+i, TRUE, FALSE)) return; curmovt->notespacing[i] = main_notespacing[i]; sigch(); if (read_ch == ',') next_ch(); } } } /************************************************* * Oldstretchrule * *************************************************/ /* This used to be a standard boolean, but it's now extended to an integer option called "stretchrule". This is a backwards-compatibility function. */ static void oldstretchrule(void) { opt_stretchrule = 0; } /************************************************* * Page * *************************************************/ static void page(void) { main_pageinc = 1; if (main_lastmovement != 1) { error_moan(20); return; } if (!read_expect_integer(&main_firstpage, FALSE, FALSE)) return; sigch(); if (!isdigit(read_ch)) return; read_expect_integer(&main_pageinc, FALSE, FALSE); } /************************************************* * Playtempo * *************************************************/ static void playtempo(void) { movt_intproc(); /* Read a single number */ /* Now look for additional data giving tempo changes within a movement */ sigch(); if (read_ch == ',') next_sigch(); if (isdigit(read_ch)) { BOOL barerror = FALSE; int ii; int i = 0; int lastbar = 0; int *copylist; int list[100]; while (isdigit(read_ch)) { int bar = read_integer(TRUE); int tempo; if (read_ch != '/') { error_moan(10, "/"); break; } next_ch(); if (!read_expect_integer(&tempo, FALSE, FALSE)) break; if (bar <= lastbar) { if (!barerror) { error_moan(86); barerror = TRUE; } } lastbar = bar; if (i > 99) { error_moan(85, 50); break; } list[i++] = bar; list[i++] = tempo; sigch(); if (read_ch == ',') next_sigch(); } copylist = store_get((i+1) * sizeof(int)); for (ii = 0; ii < i; ii++) copylist[ii] = list[ii]; copylist[ii] = BIGNUMBER; curmovt->play_tempo_changes = copylist; } } /************************************************* * Playtranspose * *************************************************/ static void playtranspose(void) { sigch(); while (isdigit(read_ch)) { int amount; int stave = read_integer(FALSE); sigch(); if (read_ch != '/') { error_moan(10, "/"); return; } next_ch(); if (!read_expect_integer(&amount, FALSE, TRUE)) return; sigch(); (curmovt->playtranspose)[stave] = amount; if (read_ch == ',') next_ch(); sigch(); } } /************************************************* * Playvolume * *************************************************/ static void playvolume() { int i, v; uschar *vv; if (!read_expect_integer(&v, FALSE, FALSE)) return; /* Default setting */ if (v > 15) { error_moan(10, "Number between 0 and 15"); return; } curmovt->play_volume = vv = store_Xget(max_stave + 1); for (i = 1; i <= max_stave; i++) vv[i] = v; /* Now look for additional data giving stave volumes */ sigch(); if (read_ch == ',') next_sigch(); while (isdigit(read_ch)) { int stave = read_integer(FALSE); if (read_ch != '/') { error_moan(10, "/"); break; } next_ch(); if (!read_expect_integer(&v, FALSE, FALSE)) break; if (v > 15) { error_moan(10, "Number between 0 and 15"); break; } vv[stave] = v; sigch(); if (read_ch == ',') next_sigch(); } } /************************************************* * PMW version check * *************************************************/ static void pmwversion(void) { int v; if (!read_expect_integer(&v, TRUE, FALSE)) return; if (v != version_fixed) error_moan(28, v, version_fixed); } /************************************************* * Printtime * *************************************************/ /* Local subroutine to deal with one string possibly followed by /s and a number. Arguments: s pointer to where to put a pointer to the string offset pointer to where to put the font offset Returns: TRUE if all goes well; FALSE on error */ static BOOL ptstring(uschar **s, uschar *offset) { *s = string_check(string_read()); if (read_ch == '/') { int fo; next_ch(); if (read_ch == 's') { next_ch(); if (!read_expect_integer(&fo, FALSE, FALSE)) return FALSE; if ((fo -= 1) >= MaxTextFont) error_moan(39, MaxTextFont); } else { error_moan(10, "/s"); return FALSE; } *offset = fo; } else *offset = ff_offset_ts; return TRUE; } /* The actual routine */ static void printtime(void) { ptimestr *p = store_Xget(sizeof(ptimestr)); p->next = main_printtime; main_printtime = p; if ((p->time = read_time()) == 0) return; if (!ptstring(&(p->top), &(p->offsettop))) return; (void)ptstring(&(p->bot), &(p->offsetbot)); } /************************************************* * Printkey * *************************************************/ static void printkey(void) { pkeystr *p = store_Xget(sizeof(pkeystr)); p->next = main_printkey; main_printkey = p; p->key = read_key(); p->clef = read_clef(); p->string = string_check(string_read()); } /************************************************* * Pssetup * *************************************************/ static void pssetup(void) { if (main_lastmovement != 1) error_moan(20); else { uschar s[256]; headstr *h = main_pssetup; headstr **hh = &main_pssetup; while (h != NULL) { hh = &(h->next); h = *hh; } if (read_plainstring(s)) { h = store_Xget(sizeof(headstr)); h->next = NULL; h->size = -1; h->a.text = store_copystring(s); h->b.spaceabove = 0; *hh = h; } else error_moan(10, "String"); } } /************************************************* * Rehearsalmarks * *************************************************/ static void rehearsalmarks(void) { uschar word[80]; sigch(); if (isalpha(read_ch)) { read_word(word); sigch(); if (Ustrcmp(word, "boxed") == 0) curmovt->rehearsalstyle = text_box; else if (Ustrcmp(word, "ringed") == 0) curmovt->rehearsalstyle = text_ring; else if (Ustrcmp(word, "plain") == 0) curmovt->rehearsalstyle = 0; else error_moan(10, "\"boxed\", \"ringed\", or \"plain\""); } set_fontsize(oo(fontsizestr, fontsize_rehearse), TRUE); set_fontname(oo(movtstr, font_rehearse)); } /************************************************* * Sheetdepth and sheetwidth * *************************************************/ static void sheetdim(void) { opt_sheetsize = sheet_unknown; opt_intproc(); } /************************************************* * Sheetsize * *************************************************/ static void sheetsize(void) { uschar word[80]; read_word(word); if (Ustrcmp(word, "a4") == 0 || Ustrcmp(word, "A4") == 0) { curmovt->truelinelength = 480000; main_truepagelength = 720000; main_sheetwidth = 595000; main_sheetheight = 842000; opt_sheetsize = sheet_A4; } else if (Ustrcmp(word, "a3") == 0 || Ustrcmp(word, "A3") == 0) { curmovt->truelinelength = 730000; main_truepagelength = 1060000; main_sheetwidth = 842000; main_sheetheight = 1190000; opt_sheetsize = sheet_A3; } else if (Ustrcmp(word, "a5") == 0 || Ustrcmp(word, "A5") == 0) { curmovt->truelinelength = 366000; main_truepagelength = 480000; main_sheetwidth = 421000; main_sheetheight = 595000; opt_sheetsize = sheet_A5; } else if (Ustrcmp(word, "b5") == 0 || Ustrcmp(word, "B5") == 0) { curmovt->truelinelength = 420000; main_truepagelength = 590000; main_sheetwidth = 499000; main_sheetheight = 709000; opt_sheetsize = sheet_B5; } else if (Ustrcmp(word, "letter") == 0) { curmovt->truelinelength = 500000; main_truepagelength = 670000; main_sheetwidth = 612000; main_sheetheight = 792000; opt_sheetsize = sheet_letter; } else error_moan(10, "\"A3\", \"A4\", \"A5\", \"B5\", or \"letter\""); if (main_lastmovement != 1) error_moan(20); } /************************************************* * Startbracketbar * *************************************************/ static void startbracketbar(void) { sigch(); if (isalpha(read_ch)) { uschar word[80]; read_word(word); if (Ustrcmp(word, "join") == 0) curmovt->startjoin = TRUE; else if (Ustrcmp(word, "nojoin") == 0) curmovt->startjoin = FALSE; else { error_moan(10, "\"join\" or \"nojoin\""); return; } } read_expect_integer(&curmovt->startbracketbar, FALSE, FALSE); } /************************************************* * Stavesize * *************************************************/ static void stavesize(void) { int *stavesizes = store_Xget((max_stave+1)*sizeof(int)); memcpy(stavesizes, curmovt->stavesizes, (max_stave+1)*sizeof(int)); curmovt->stavesizes = stavesizes; sigch(); while (isdigit(read_ch)) { int size; int stave = read_integer(FALSE); if (stave > max_stave) { error_moan(22, max_stave+1); stave = 1; } if (read_ch != '/') { error_moan(10, "/"); return; } next_ch(); if (!read_expect_integer(&size, TRUE, FALSE)) return; stavesizes[stave] = size; sigch(); if (read_ch == ',') next_sigch(); } } /************************************************* * Stavespacing * *************************************************/ static void stavespacing(void) { BOOL first = TRUE; int i; int *newsp = store_Xget((max_stave+1) * sizeof(int)); int *newen = store_Xget((max_stave+1) * sizeof(int)); unsigned int done[stave_bitvec_size]; newsp[0] = newen[0] = 0; mac_initstave(done, 0); for (i = 1; i <= max_stave; i++) { newsp[i] = 44000; newen[i] = 0; } sigch(); while (isdigit(read_ch)) { int space; int ensure = 0; int stave = read_integer(FALSE); sigch(); if (read_ch != '/') { if (first) { int space = stave*1000; if (read_ch == '.') space += read_integer(TRUE); for (i = 1; i <= max_stave; i++) newsp[i] = space; goto NEXT; } else { error_moan(10, "/"); return; } } next_ch(); if (!read_expect_integer(&space, TRUE, FALSE)) return; sigch(); if (read_ch == '/') { ensure = space; next_ch(); if (!read_expect_integer(&space, TRUE, FALSE)) return; } if (stave == 0) error_moan(107); else { if (mac_teststave(done, stave)) error_moan(106, stave, US"stavespacing"); mac_setstave(done, stave); newsp[stave] = space; newen[stave] = ensure; } NEXT: if (read_ch == ',') next_ch(); sigch(); first = FALSE; } curmovt->stave_spacing = newsp; curmovt->stave_ensure = newen; } /************************************************* * Startlinespacing * *************************************************/ static void startlinespacing(void) { startlinestr *p = store_Xget(sizeof(startlinestr)); p->clefspace = p->keyspace = p->timespace = p->notespace = 0; sigch(); if (isdigit(read_ch) || read_ch == '-' || read_ch == '+') { (void)read_expect_integer(&(p->clefspace), TRUE, TRUE); if (read_ch == ',') next_ch(); sigch(); } if (isdigit(read_ch) || read_ch == '-' || read_ch == '+') { (void)read_expect_integer(&(p->keyspace), TRUE, TRUE); if (read_ch == ',') next_ch(); sigch(); } if (isdigit(read_ch) || read_ch == '-' || read_ch == '+') { (void)read_expect_integer(&(p->timespace), TRUE, TRUE); if (read_ch == ',') next_ch(); sigch(); } if (isdigit(read_ch) || read_ch == '-' || read_ch == '+') { (void)read_expect_integer(&(p->notespace), TRUE, TRUE); } curmovt->startline = p; } /************************************************* * Stemswap * *************************************************/ static void stemswap(void) { uschar word[100]; read_word(word); if (Ustrcmp(word, "up") == 0) curmovt->stemswaptype = stemswap_up; else if (Ustrcmp(word, "down") == 0) curmovt->stemswaptype = stemswap_down; else if (Ustrcmp(word, "left") == 0) curmovt->stemswaptype = stemswap_left; else if (Ustrcmp(word, "right") == 0) curmovt->stemswaptype = stemswap_right; else error_moan(10, "\"up\", \"down\", \"left\", or \"right\""); } /************************************************* * Stemswaplevel * *************************************************/ static void stemswaplevel(void) { int i, x; int *new = store_Xget((max_stave+1) * sizeof(int)); for (i = 0; i <= max_stave; i++) new[i] = P_3L; if (!read_expect_integer(&x, FALSE, TRUE)) return; if (x > 0 && read_ch == '/') { for (;;) { int y; next_ch(); if (!read_expect_integer(&y, FALSE, TRUE)) return; new[x] = P_3L + y*2; if (read_ch == ',') next_ch(); sigch(); if (!isdigit(read_ch)) break; x = read_integer(FALSE); if (read_ch != '/') { error_moan(10, "/"); return; } } } else for (i = 0; i <= max_stave; i++) new[i] = P_3L + x*2; curmovt->stemswaplevel = new; } /************************************************ * Stem lengths * ************************************************/ static void stemlengths(void) { int i; sigch(); for (i = 2; i < 8 && isdigit(read_ch); i++) { (void)read_expect_integer(&(curmovt->tailadjusts[i]), TRUE, TRUE); if (read_ch == ',') next_ch(); sigch(); } } /************************************************* * Textfont * *************************************************/ /* This also handles musicfont, if arg1 is non-zero. */ static void textfont(void) { int fontid, n; uschar s[100]; /* Font selection is permitted only in the first movement */ if (main_lastmovement != 1) { error_moan(20); return; } /* If font id given, use it, else read a word */ if (read_dir->arg1) fontid = read_dir->arg1; else { if ((fontid = font_fontword(FALSE)) < 0) return; } /* Read the first font name, which must be present, and the optional second name for the PostScript font. */ if (!read_plainstring(s)) { error_moan(10, "String"); return; } if (read_ch == ',') next_ch(); /* See if is already in the font list. If it is, we set its number in the font table and return. If not, we set it up as a new font. */ n = font_search(s); if (n >= 0) font_table[fontid] = n; else { fontstr *fs; if (font_count >= max_fonts) { error_moan(26, max_fonts); return; } fs = &(font_List[font_count]); fs->psname = store_copystring(s); fs->widths = NULL; fs->high_tree = NULL; fs->heights = NULL; fs->kerns = NULL; fs->kerncount = -1; fs->stdencoding = fs->fixedpitch = fs->hasfi = FALSE; font_table[fontid] = font_count; font_loadtables(font_count++); } /* Ensure both music fonts are the same */ if (fontid == font_mf) font_table[font_mu] = font_table[font_mf]; } /************************************************* * Textsizes * *************************************************/ static void textsizes(void) { int i; for (i = 0; i < MaxTextFont; i++) { set_fontsize(oo(fontsizestr,fontsize_text) + i*sizeof(int), TRUE); if (read_ch == ',') next_ch(); } } /************************************************* * Time * *************************************************/ static void timeproc(void) { int t = read_time(); /* returns 0 after giving error */ if (t != 0) curmovt->time = t; } /************************************************* * Transpose * *************************************************/ static void transpose(void) { int temp = curmovt->transpose; movt_intproc(); if (temp < max_transpose) curmovt->transpose += temp; /* In case this is followed by heading/footing lines that contain transposed text, fudge up some fake stave values. The stave_key will already be set. */ stave_transpose = curmovt->transpose; stave_key_tp = transpose_key(stave_key, stave_transpose, TRUE); } /************************************************* * Transposed key * *************************************************/ static void transposedkey(void) { int oldkey = read_key(); uschar word[80]; read_word(word); if (Ustrcmp(word, "use") != 0) error_moan(10, "\"use\""); else { int newkey = read_key(); trkeystr *k = store_Xget(sizeof(trkeystr)); k->oldkey = oldkey; k->newkey = newkey; k->next = main_transposedkeys; main_transposedkeys = k; } } /************************************************* * Transposed accidental option * *************************************************/ static void transposedacc(void) { uschar word[80]; read_word(word); if (Ustrcmp(word, "force") == 0) main_transposedaccforce = TRUE; else if (Ustrcmp(word, "noforce") == 0) main_transposedaccforce = FALSE; else error_moan(10, "\"force\" or \"noforce\""); } /************************************************* * Trill string * *************************************************/ static void trillstring(void) { uschar s[256]; sigch(); if (isdigit(read_ch)) set_fontsize(oo(fontsizestr,fontsize_trill), TRUE); if (read_plainstring(s)) curmovt->trillstring = store_copystring(s); else error_moan(10, "String"); } /************************************************* * Heading directive list * *************************************************/ /* The function for reading a draw list is held separately for convenience. */ static dirstr read_headlist[] = { { "accadjusts", accadjusts, 0, 0 }, { "accspacing", accspacing, 0, 0 }, { "bar", movt_intproc, oo(movtstr,baroffset), int_u+int_less1 }, { "barcount", movt_intproc, oo(movtstr,maxbarcount), int_u }, { "barlinesize", movt_intproc, oo(movtstr,barlinesize), int_u+int_f }, { "barlinespace", barlinespace, oo(movtstr,barlinespace), int_u+int_f }, { "barlinestyle", movt_intproc, oo(movtstr,barlinestyle), int_u }, { "barnumberlevel", barnumberlevel, oo(movtstr,barno_level), int_rs+int_f }, { "barnumbers", barnumbers, 0, 0 }, { "beamendrests", movt_cboolproc, oo(movtstr,beamendrests), TRUE }, { "beamflaglength", movt_intproc, oo(movtstr,beamflaglength), int_u+int_f }, { "beamthickness", movt_intproc, oo(movtstr,beamdepth), int_u+int_f }, { "bottommargin", movt_intproc, oo(movtstr,botmargin), int_u+int_f }, { "brace", movt_listproc, oo(movtstr,bracelist), 0 }, { "bracestyle", bracestyle, oo(movtstr,bracestyle), int_u }, { "bracket", movt_listproc, oo(movtstr,bracketlist), 0 }, { "breakbarlines", breakbarlines, oo(movtstr,breakbarlines), -1 }, { "breakbarlinesx", breakbarlinesx, oo(movtstr,breakbarlines), -1 }, { "breveledgerextra", movt_intproc, oo(movtstr,breveledgerextra),int_u+int_f}, { "breverests", movt_cboolproc, oo(movtstr,breverests), TRUE }, { "caesurastyle", caesurastyle, oo(movtstr,caesurastyle), int_u }, { "check", movt_cboolproc, oo(movtstr,check), TRUE }, { "checkdoublebars", movt_cboolproc, oo(movtstr,checkdoublebars), TRUE }, { "clefsize", clefsize, 0, 0 }, { "clefstyle", clefstyle, oo(movtstr,clefstyle), int_u }, { "clefwidths", clefwidths, 0, 0 }, { "codemultirests", movt_cboolproc, oo(movtstr,codemultirests), TRUE }, { "copyzero", copyzero, 0, 0 }, { "cuegracesize", movt_fszproc, oo(fontsizestr,fontsize_cuegrace), FALSE }, { "cuesize", movt_fszproc, oo(fontsizestr,fontsize_cue), FALSE }, { "dotspacefactor", movt_intproc, oo(movtstr,dotspacefactor), int_u+int_f }, { "doublenotes", doublenotes, 0, 0 }, { "draw", read_draw, 0, 0 }, { "endlinesluradjust",movt_intproc, oo(movtstr,endlinesluradjust), int_f }, { "endlineslurstyle", movt_intproc, oo(movtstr,endlineslurstyle), int_u }, { "endlinetieadjust", movt_intproc, oo(movtstr,endlinetieadjust), int_f }, { "endlinetiestyle", movt_intproc, oo(movtstr,endlinetiestyle), int_u }, { "extenderlevel", movt_intproc, oo(movtstr,extenderlevel), int_f }, { "fbsize", movt_fszproc, oo(fontsizestr,fontsize_fbass), TRUE }, { "footing", movt_headproc, oo(movtstr,footing), rh_footing }, { "footnotesep", movt_intproc, oo(movtstr,footnotesep), int_f }, { "footnotesize", movt_fszproc, oo(fontsizestr,fontsize_footnote), TRUE }, { "gracesize", movt_fszproc, oo(fontsizestr,fontsize_grace), FALSE }, { "gracespacing", gracespacing, 0, 0 }, { "gracestyle", movt_intproc, oo(movtstr,gracestyle), int_u }, { "hairpinlinewidth", movt_intproc, oo(movtstr,hairpinlinewidth), int_rs+int_f }, { "hairpinwidth", movt_intproc, oo(movtstr,hairpinwidth), int_rs+int_f }, { "halfflatstyle", movt_intproc, oo(movtstr,hflatstyle), int_u }, { "halfsharpstyle", movt_intproc, oo(movtstr,hsharpstyle), int_u }, { "halvenotes", halvenotes, 0, 0 }, { "heading", movt_headproc, oo(movtstr,heading), rh_heading }, { "hyphenstring", hyphenstring, 0, 0 }, { "hyphenthreshold", movt_intproc, oo(movtstr,hyphenthreshold), int_rs+int_f }, { "join", movt_listproc, oo(movtstr,joinlist), 0 }, { "joindotted", movt_listproc, oo(movtstr,joindottedlist), 0 }, { "justify", justify, 0, 0 }, { "key", key, 0, 0 }, { "keydoublebar", movt_cboolproc, oo(movtstr,keydoublebar), TRUE }, { "keysinglebar", movt_cboolproc, oo(movtstr,keydoublebar), FALSE }, { "keywarn", movt_cboolproc, oo(movtstr,keywarn), TRUE }, { "landscape", landscape, 0, 0 }, { "lastfooting", movt_headproc, oo(movtstr,lastfooting), rh_lastfooting }, { "layout", layout, 0, 0 }, { "ledgerstyle", ledgerstyle, oo(movtstr,ledger), int_u }, { "leftmargin", movt_intproc, oo(movtstr,leftmargin), int_f }, { "linelength", movt_intproc, oo(movtstr,truelinelength), int_rs+int_f }, { "longrestfont", movt_fontproc, oo(movtstr,font_longrest), oo(fontsizestr, fontsize_restct) }, { "magnification", opt_intproc, glob_magnification, int_u+int_f }, { "maxbeamslope", maxbeamslope, 0, 0 }, { "maxvertjustify", opt_intproc, glob_maxvertjustify, int_u+int_f }, { "midichannel", midichannel, 0, 0 }, { "midifornotesoff", opt_boolproc, glob_midifornotesoff, TRUE }, { "midistart", midistart, 0, 0 }, { "miditempo", playtempo, oo(movtstr,play_tempo), int_u }, { "miditranspose", playtranspose, 0, 0 }, { "midivolume", playvolume, 0, 0 }, { "midkeyspacing", movt_intproc, oo(movtstr,keyspacing), int_f }, { "midtimespacing", movt_intproc, oo(movtstr,timespacing), int_f }, { "musicfont", textfont, font_mf, 0 }, { "nobeamendrests", movt_cboolproc, oo(movtstr,beamendrests), FALSE }, { "nocheck", movt_cboolproc, oo(movtstr,check), FALSE }, { "nocheckdoublebars",movt_cboolproc, oo(movtstr,checkdoublebars), FALSE }, { "nocodemultirests", movt_cboolproc, oo(movtstr,codemultirests), FALSE }, { "nokerning", opt_boolproc, glob_kerning, FALSE }, { "nokeywarn", movt_cboolproc, oo(movtstr,keywarn), FALSE }, { "nosluroverwarnings", movt_cboolproc, oo(movtstr,tiesoverwarnings), FALSE }, { "nospreadunderlay", movt_cboolproc, oo(movtstr,spreadunderlay), FALSE }, { "notespacing", notespacing, 0, 0 }, { "notime", movt_cboolproc, oo(movtstr,showtime), FALSE }, { "notimebase", movt_cboolproc, oo(movtstr,showtimebase), FALSE }, { "notimewarn", movt_cboolproc, oo(movtstr,timewarn), FALSE }, { "nounderlayextenders",movt_cboolproc, oo(movtstr,underlayextenders), FALSE }, { "oldbeambreak", opt_boolproc, glob_oldbeambreak, TRUE }, { "oldrestlevel", opt_boolproc, glob_oldrestlevel, TRUE }, { "oldstemlength", opt_boolproc, glob_oldstemlength, TRUE }, { "oldstretchrule", oldstretchrule, 0, 0 }, { "overlaydepth", movt_intproc, oo(movtstr,overlaydepth), int_f }, { "overlaysize", movt_fszproc, oo(fontsizestr,fontsize_olay), TRUE }, { "page", page, 0, 0 }, { "pagefooting", movt_headproc, oo(movtstr,pagefooting), rh_pagefooting }, { "pageheading", movt_headproc, oo(movtstr,pageheading), rh_pageheading }, { "pagelength", opt_intproc, glob_pagelength, int_rs+int_f }, { "playtempo", playtempo, oo(movtstr,play_tempo), int_u }, { "playtranspose", playtranspose, 0, 0 }, { "playvolume", playvolume, 0, 0 }, { "pmwversion", pmwversion, 0, 0 }, { "printkey", printkey, 0, 0 }, { "printtime", printtime, 0, 0 }, { "psfooting", movt_headproc, oo(movtstr,footing), rh_footing+rh_ps }, { "psheading", movt_headproc, oo(movtstr,heading), rh_heading+rh_ps }, { "pslastfooting", movt_headproc, oo(movtstr,lastfooting), rh_lastfooting+rh_ps }, { "pspagefooting", movt_headproc, oo(movtstr,pagefooting), rh_pagefooting+rh_ps }, { "pspageheading", movt_headproc, oo(movtstr,pageheading), rh_pageheading+rh_ps }, { "pssetup", pssetup, 0, 0 }, { "rehearsalmarks", rehearsalmarks, 0, 0 }, { "repeatbarfont", movt_fontproc, oo(movtstr,font_repeat), oo(fontsizestr, fontsize_repno) }, { "repeatstyle", movt_intproc, oo(movtstr,repeatstyle), int_u }, { "righttoleft", opt_boolproc, glob_righttoleft, TRUE }, { "selectstaff", movt_mapproc, oo(movtstr,staves), 0 }, { "selectstave", movt_mapproc, oo(movtstr,staves), 0 }, { "selectstaves", movt_mapproc, oo(movtstr,staves), 0 }, { "sheetdepth", sheetdim, glob_sheetdepth, int_u+int_f }, { "sheetsize", sheetsize, 0, 0 }, { "sheetwidth", sheetdim, glob_sheetwidth, int_u+int_f }, { "shortenstems", movt_intproc, oo(movtstr,shorten), int_u+int_f }, { "sluroverwarnings", movt_cboolproc, oo(movtstr,tiesoverwarnings), TRUE }, { "smallcapsize", movt_intproc, oo(movtstr,smallcapsize), int_u+int_f }, { "staffsize", stavesize, 0, 0 }, { "staffsizes", stavesize, 0, 0 }, { "staffspacing", stavespacing, 0, 0 }, { "startbracketbar", startbracketbar, 0, 0 }, { "startlinespacing", startlinespacing, 0, 0 }, { "startnotime", movt_cboolproc, oo(movtstr,startnotime), TRUE}, { "stavesize", stavesize, 0, 0 }, { "stavesizes", stavesize, 0, 0 }, { "stavespacing", stavespacing, 0, 0 }, { "stemlengths", stemlengths, 0, 0 }, { "stemswap", stemswap, 0, 0 }, { "stemswaplevel", stemswaplevel, 0, 0 }, { "stretchrule", opt_intproc, glob_stretchrule, int_u }, { "suspend", movt_mapproc, oo(movtstr,suspend), -1 }, { "systemgap", movt_intproc, oo(movtstr,systemgap), int_u+int_f }, { "textfont", textfont, 0, 0 }, { "textsize", textsizes, 0, 0 }, { "textsizes", textsizes, 0, 0 }, { "thinbracket", movt_listproc, oo(movtstr,thinbracketlist), 0 }, { "time", timeproc, 0, 0 }, { "timebase", movt_cboolproc, oo(movtstr,showtimebase), TRUE }, { "timefont", movt_fontproc, oo(movtstr,font_time),oo(fontsizestr,fontsize_tsfont) }, { "timewarn", movt_cboolproc, oo(movtstr,timewarn), TRUE }, { "topmargin", movt_intproc, oo(movtstr,topmargin), int_u+int_f }, { "transpose", transpose, oo(movtstr,transpose), int_s }, { "transposedacc", transposedacc, 0, 0 }, { "transposedkey", transposedkey, 0, 0 }, { "trillstring", trillstring, 0, 0 }, { "tripletfont", movt_fontproc, oo(movtstr,font_triplet),oo(fontsizestr,fontsize_triplet) }, { "tripletlinewidth", movt_intproc, oo(movtstr,tripletlinewidth), int_u+int_f }, { "underlaydepth", movt_intproc, oo(movtstr,underlaydepth), int_f }, { "underlayextenders",movt_cboolproc, oo(movtstr,underlayextenders), TRUE }, { "underlaysize", movt_fszproc, oo(fontsizestr,fontsize_ulay), TRUE }, { "underlaystyle", movt_intproc, oo(movtstr,underlaystyle), int_u }, { "unfinished", movt_cboolproc, oo(movtstr,unfinished), TRUE }, { "vertaccsize", movt_fszproc, oo(fontsizestr,fontsize_vertacc), FALSE } }; static int read_headsize = sizeof(read_headlist)/sizeof(dirstr); /************************************************* * Read next heading directive * *************************************************/ /* Arguments: none Returns: nothing */ void next_heading(void) { dirstr *first, *last; uschar word[80]; sigch(); if (read_ch == EOF) return; read_word(word); /* A null word is either the end of the heading, or an error */ if (word[0] == 0) { if (read_ch != '[') error_moan(10, "Heading directive"); return; } /* Look up the word in the list of heading directives and if found, call the appropriate routine. */ first = read_headlist; last = first + read_headsize; while (last > first) { int c; read_dir = first + (last-first)/2; c = Ustrcmp(word, read_dir->name); if (c == 0) { (read_dir->proc)(); return; } if (c > 0) first = read_dir + 1; else last = read_dir; } error_moan(19, word); } /* End of read2.c */ pmw-4.27/src/shownote.c0000644000222100022210000011322112247665016013151 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2013 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: October 2013 */ /* This file contains the code for generating an image of one individual note or rest. */ #include "pmwhdr.h" #include "pagehdr.h" #include "poshdr.h" #include "outhdr.h" /* Tables used only in this module */ static uschar common[] = { 49, 50, 52, 54, 56, 58, /* stems down */ 49, 50, 51, 53, 55, 57}; /* stems up */ static uschar *reststrings[] = { US"*", US"+", US",", US"-", US".", US"z.w{{y.", US"zzx.w{{y.w{{y.", US"zzzx.w{{y.w{{y.w{{y." }; static uschar *multireststrings[] = { /* Start for 2, last is for 8 */ US"*", US"*z+", US"*{{w*", US"*{{w*xz+", US"*{{w*xz*", US"*{{w*xz*z+", US"*{{w*xz*{{w*" }; static uschar *tailstrings[] = { US"", US"", US"", US"", US"H", US" v tp down up. */ static uschar *accabovestrings[] = { US"U", US"Y", US"W", US"\302\234", US"e", US"g" }; static uschar *accbelowstrings[] = { US"U", US"Z", US"X", US"\302\234", US"f", US"h" }; static int accaboveadjusts[] = { -6000, -1000, -2000, -1000, -1000, -1000 }; static int accbelowadjusts[] = { -2000, 3000, 0, 2000, 1000, 1000 }; /* Further per-accidental adjustments for accents */ /* - ## $ $$ % # */ static int accaccaboveadjusts[] = { 0, 0000, -3000, -3000, -3000, -3000 }; static int accaccbelowadjusts[] = { 0, 0000, 0000, 0000, 3000, 3000 }; /* Dot position adjustments for rests */ static int restdotadjusts[] = { -20, 0, 0, -25, -20, -10, -10, 0 }; /* Table of dynamic numbers in order of printing outside dynamics */ static uschar dyn_list[] = { dyn_gt, dyn_wedge, dyn_tp, dyn_vline, dyn_down, dyn_up }; /* Table for x adjustments for brackets for outside dynamics */ static int outdynxbadjusts[] = { 2000, 0, 2000, 0, 2000, 2000 }; static int outdynybadjusts[] = { -4000, 0, -1500, 0, -1000, -1000 }; /* These tables are for the straightforward ornaments. Those with blank strings are not straightforward, and have individual code. Note that characters greater than 127 must be represented as UTF-8. */ static char *ornament_strings[] = { /* ferm tr trsh trfl trnat trem1 trem2 trem3 */ "", "", "", "", "", "", "", "", /* mord dmord imord dimord turn iturn arp arpu arpd spread */ "O", "P", "Q", "R", "S", "i", "", "", "", "", /* dsharp dsharprb dsharpsb */ "&", "~v\xc2\x8dv&~v\xc2\x8e", "~v\xc2\x8bv&~v\xc2\x8c", /* flat flatrb flatsb */ "\'", "~\xc2\x8d|\'~\xc2\x8e", "~\xc2\x8b|\'~\xc2\x8c", /* dflat dflatrb dflatsb */ "\'\'", "~\xc2\x8d|\'\'~\xc2\x8e", "~\xc2\x8b|\'\'~\xc2\x8c", /* nat natrb natsb */ "(", "\xc2\x8d(\xc2\x8e", "\xc2\x8b(\xc2\x8c", /* sharp sharprb sharpsb */ "%", "\xc2\x8d%\xc2\x8e", "\xc2\x8b%\xc2\x8c", /* hflat hflatrb hflatsb (style 0) */ "\xc2\xbf", "~\xc2\x8d|\xc2\xbf~\xc2\x8e", "~\xc2\x8b|\xc2\xbf~\xc2\x8c", /* hsharp hsharprb hsharpsb (style 0) */ "\xc2\xbd", "\xc2\x8d\xc2\xbd\xc2\x8e", "\xc2\x8b\xc2\xbd\xc2\x8c", /* hflat hflatrb hflatsb (style 1) */ "\xc3\x80", "~\xc2\x8d|\xc3\x80~\xc2\x8e", "~\xc2\x8b|\xc3\x80~\xc2\x8c", /* hsharp hsharprb hsharpsb (style 1) */ "\xc2\xbe", "\xc2\x8d\xc2\xbe\xc2\x8e", "\xc2\x8b\xc2\xbe\xc2\x8c" }; static int ornament_xadjusts[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, -2, -2, /* dsharps */ 2, -1, -1, /* flats */ 0, -3, -3, /* dflats */ 2, -1, -1, /* naturals */ 1, -1, -1, /* sharps */ 2, -1, -1, /* hflats (0) */ 1, -1, -1, /* hsharps (0) */ 2, -1, -1, /* hflats (1) */ 1, -1, -1, /* hsharps (1) */ }; /* Amount by which to adjust the brackets when bracketing */ static int ornament_yaadjusts[] = { 0, -1000, /* Trill */ -4000, -4000, -4000, 0, 0, 0, 0, 0, -2000, -2000, -1000, -1000, 0, 0, 0, 0, 1000, 2000, 2000, /* dsharps */ 1000, 1000, 1000, /* flats */ 1000, 1000, 1000, /* dflats */ 3000, 3000, 3000, /* naturals */ 3000, 3000, 3000, /* sharps */ 1000, 1000, 1000, /* hflats (0) */ 3000, 3000, 3000, /* hsharps (0) */ 1000, 1000, 1000, /* hflats (1) */ 3000, 3000, 3000 /* hsharps (1) */ }; static int ornament_ybadjusts[] = { 0, -1000, /* Trill */ 2000, 2000, 2000, 0, 0, 0, 0, 0, 2000, 2000, 1000, 1000, 0, 0, 0, 0, 0, -3000, -3000, /* dsharps */ -3000, -4000, -4000, /* flats */ -3000, -4000, -4000, /* dflats */ -2000, -2000, -2000, /* naturals */ -2000, -2000, -2000, /* sharps */ -3000, -4000, -4000, /* hflats (0) */ -2000, -2000, -2000, /* hsharps(0) */ -3000, -4000, -4000, /* hflats (1) */ -2000, -2000, -2000 /* hsharps(1) */ }; /* These tables need only go up to or_iturn, as accidentals are handled specially and already have a bracketting facility, and arpeggios and spread chords can't be bracketed. */ static int ornament_xbrackadjustsL[] = { 4000, /* Fermata */ 3000, /* Trill */ 3000, /* Trill with sharp */ 3000, /* Trill with flat */ 3000, /* Trill with natural */ 0, 0, 0, /* Tremolos - never bracketed */ 2500, /* Mordent */ 2500, /* Double mordent */ 2500, /* Inverted mordent */ 2500, /* Double inverted mordent */ 2500, /* Turn */ 2500 /* Inverted turn */ }; static int ornament_xbrackadjustsR[] = { 4000, /* Fermata */ 3000, /* Trill */ 3000, /* Trill with sharp */ 3000, /* Trill with flat */ 3000, /* Trill with natural */ 0, 0, 0, /* Tremolos - never bracketed */ 2600, /* Mordent */ 5500, /* Double mordent */ 2600, /* Inverted mordent */ 5500, /* Double inverted mordent */ 3500, /* Turn */ 3500 /* Inverted turn */ }; /************************************************* * Print a possibly bracketed accent/ornament * *************************************************/ /* The bracket characters have width, but accent and ornament characters do not. Arguments: str the string for the accent/ornament fontsize the font size x x-position for accent/ornament y y-position for accent/ornament flags bracket flags yadjust general y adjustment if bracketed byadjust specific y adjustment for brackets bxadjustL additional x left adjustment for brackets bxadjustR additional x right adjustment for brackets Returns: nothing */ static void show_brack_acc(uschar *str, int fontsize, int x, int y, int flags, int yadjust, int byadjust, int bxadjustL, int bxadjustR) { int yb; if ((flags & (DO_RBRA|DO_RKET|DO_SBRA|DO_SKET)) != 0) y += yadjust; yb = y + byadjust; if ((flags & DO_RBRA) != 0) ps_wtext(US"\302\215", font_mu, fontsize, x - (35*main_stavemagn)/100 - bxadjustL, yb, 0); else if ((flags & DO_SBRA) != 0) ps_wtext(US"\302\213", font_mu, fontsize, x - (35*main_stavemagn)/100 - bxadjustL, yb, 0); ps_musstring(str, fontsize, x, y); if ((flags & (DO_RKET|DO_SKET)) != 0) { int swidth = font_stringwidth(str, font_mf, fontsize); if (swidth == 0) swidth = (58*fontsize)/100; ps_wtext(((flags & DO_RKET) != 0)? US"\302\216" : US"\302\214", font_mu, fontsize, x + mac_muldiv(swidth, main_stavemagn, 1000) + bxadjustR, yb, 0); } } /************************************************* * Actually print one note * *************************************************/ /* The data about the note is in the n_* global variables. This function just prints the note head and stems. Dots, accents, etc are done elsewhere. Argument: the x coordinate for the note Returns: TRUE if one or more ledger lines were used */ static BOOL show_note(int x) { uschar buff[100]; uschar *p = buff; BOOL ledgered = FALSE; BOOL inverted = (n_flags & nf_invert) != 0; int top = P_6L; int bot = P_0L; int fontsize = (n_fontsize*main_stavemagn)/1000; int y = out_ystave - (n_pitch - 130)*main_stavemagn - n_pcorrection; int yy; DEBUG(("show_note() start\n")); /* Set up for coupled notes */ if ((n_flags & nf_coupleU) != 0) { top += out_upgap; bot += out_upgap; } else if ((n_flags & nf_coupleD) != 0) { top -= out_downgap; bot -= out_downgap; } /* First deal with ledger lines if required. We repeat the code for above & below, as there seems no tidy way of combining it owing to the requirement for <= or >= comparisons. We can optimize into a single music-font string if the size is standard. The existence of breves makes this messy! */ if (n_pitch <= bot && out_stavelines >= 5 && bar_cont->noteheadstyle != nh_none) { int breve_right = 0; int xx = x; if (n_notetype == breve) { xx -= ((((curmovt->breveledgerextra - 2300)*main_stavemagn)/1000) * n_fontsize)/10000; breve_right = mac_muldiv(2*curmovt->breveledgerextra, fontsize, 10000); } ledgered = TRUE; yy = out_ystave - (bot - 130)*main_stavemagn - n_pcorrection; if (n_fontsize == 10000 && !inverted) { uschar *p = buff; while (n_pitch <= bot) { *p++ = curmovt->ledger; *p++ = 'w'; bot -= 4; } *(--p) = 0; /* removes redundant last move */ ps_musstring(buff, fontsize, xx, yy); if (n_notetype == breve) ps_musstring(buff, fontsize, xx + breve_right, yy); } else /* Have to position each line separately */ { uschar *p = buff; int yyy = yy; *p++ = curmovt->ledger; if (inverted) { p += sprintf(CS p, n_upflag? "}" : "yy{"); *p++ = curmovt->ledger; } *p = 0; while (yy <= y) { ps_musstring((yy == y && !n_upflag && inverted)? buff+1 : buff, fontsize, xx, yy); yy += 4*main_stavemagn; } if (n_notetype == breve) { yy = yyy; xx += breve_right; while (yy <= y) { ps_musstring((yy == y && !n_upflag && inverted)? buff+1 : buff, fontsize, xx, yy); yy += 4*main_stavemagn; } } } } else if (n_pitch >= top && out_stavelines >= 5 && bar_cont->noteheadstyle != nh_none) { int breve_right = 0; int xx = x; if (n_notetype == breve) { xx -= ((((curmovt->breveledgerextra - 2300)*main_stavemagn)/1000) * n_fontsize)/10000; breve_right = mac_muldiv(2*curmovt->breveledgerextra, fontsize, 10000); } ledgered = TRUE; yy = out_ystave - (top - 130)*main_stavemagn - n_pcorrection; if (n_fontsize == 10000 && !inverted) { uschar *p = buff; while (n_pitch >= top) { *p++ = curmovt->ledger; *p++ = 'x'; top += 4; } *(--p) = 0; /* removes redundant last move */ ps_musstring(buff, fontsize, xx, yy); if (n_notetype == breve) ps_musstring(buff, fontsize, xx + breve_right, yy); } else { uschar *p = buff; int yyy = yy; *p++ = curmovt->ledger; if (inverted) { p += sprintf(CS p, n_upflag? "}" : "yy{"); *p++ = curmovt->ledger; } *p = 0; while (yy >= y) { ps_musstring((yy == y && n_upflag && inverted)? buff+1 : buff, fontsize, xx, yy); yy -= 4*main_stavemagn; } if (n_notetype == breve) { yy = yyy; xx += breve_right; while (yy >= y) { ps_musstring((yy == y && n_upflag && inverted)? buff+1 : buff, fontsize, xx, yy); yy -= 4*main_stavemagn; } } } } /* Optimize the common case where there is a complete character available in the music font. */ if (n_notetype < dsquaver && n_stemlength == 0 && bar_cont->noteheadstyle == nh_normal && (n_flags & (nf_invert|nf_stem|nf_smallhead)) == nf_stem) { if ((n_flags & nf_appogg) != 0) *p++ = n_upflag? 129 : 130; *p++ = common[n_notetype + n_upflag*6]; *p = 0; ps_musstring(buff, fontsize, x, y); return ledgered; } /* Deal with rarer cases, first dealing with stems & tails. We impose a minimum stemlength at this point. */ if (n_stemlength < -8000) n_stemlength = -8000; if ((n_flags & nf_stem) != 0) { int direction = n_upflag? -1 : +1; int font10 = fontsize; /* 10pt at font scale */ int font2 = font10/5; /* 2pt at font scale */ int font1 = font2/2; /* 1pt at font scale */ if ((n_flags & nf_appogg) != 0) *p++ = n_upflag? 129 : 130; yy = y + (direction*n_stemlength*main_stavemagn)/1000; p += sprintf(CS p, "%s", tailstrings[n_notetype + n_upflag*8]); /* Notes with stems up */ if (n_upflag) { if (yy <= y) /* stem is lengthened */ { int stemch = (bar_cont->noteheadstyle == nh_cross)? 'o' : 'J'; int z = yy; while (z <= y) { p += sprintf(CS p, "%cww|", stemch); z += font10; } p -= 3; *p = 0; ps_musstring(buff, fontsize, x, yy); p = buff; if (z < y + font10) *p++ = stemch; if (bar_cont->noteheadstyle == nh_harmonic) *p++ = 'q'; } else /* stem is shortened */ { int z = yy - font10 - font2; p += sprintf(CS p, "xxx"); while (z <= y) { p += sprintf(CS p, "q|"); z += font2; } *(--p) = 0; ps_musstring(buff, fontsize, x, yy); p = buff; if (z > y) *p++ = 'q'; } } /* Notes with stems down */ else { if (yy >= y) /* stem is lengthened */ { int stemch = (bar_cont->noteheadstyle == nh_cross)? 'p' : 'K'; int z = yy; while (z >= y) { p += sprintf(CS p, "%cxx~", stemch); z -= font10; } p -= 3; *p = 0; ps_musstring(buff, fontsize, x, yy); p = buff; if (z > y - font10) *p++ = stemch; if (bar_cont->noteheadstyle == nh_harmonic) *p++ = 'r'; } else /* stem is shortened */ { int z = yy + font10 + font2; p += sprintf(CS p, "www"); while (z >= y) { p += sprintf(CS p, "r~v"); z -= font1; } *(--p) = 0; ps_musstring(buff, fontsize, x, yy); p = buff; if (z < y) *p++ = 'r'; } } } /* Now add the note head */ if (bar_cont->noteheadstyle != nh_none) { if (inverted) { if (n_upflag) { if (n_notetype == breve) p += sprintf(CS p, "}}}}{{{{z"); else *p++ = 125; } else { if (n_notetype == breve) p += sprintf(CS p, "{yyyyyyyyyyyy}"); else { *p++ = 123; *p++ = 121; *p++ = 121; } } } /* The special case of a small note head is dealt with below; just omit the note head at this point. */ if ((n_flags & nf_smallhead) == 0) { *p++ = headchars[n_notetype + 8*(bar_cont->noteheadstyle)]; /* When printing right-to-left, we put some redundant spacing *after* inverted noteheads. This is just a fudge to fool the x-coordinate adjusting code into doing (approximately) the right thing. */ if (main_righttoleft && inverted) p += sprintf(CS p, n_upflag? "{{{" : "zzzz"); } } /* Output the music font string. */ *p = 0; ps_musstring(buff, fontsize, x, y); /* In the special case of a small note head, the note head was skipped above, but the printing position should be in the correct place for a full size note head. Arrange to output one at the cue size, with a relative position adjusted to allow for the head size. */ if ((n_flags & nf_smallhead) != 0) { p = buff; x = y = 0; fontsize = ((curmovt->fontsizes)->fontsize_cue * main_stavemagn)/1000; if ((n_upflag && (n_flags & nf_invert) == 0) || (!n_upflag && (n_flags & nf_invert) != 0)) x += 6000 - 3 * ((curmovt->fontsizes)->fontsize_cue / 5); y += 2000 - (curmovt->fontsizes)->fontsize_cue / 5; *p++ = headchars[n_notetype + 8*(bar_cont->noteheadstyle)]; *p = 0; ps_relmusstring(buff, fontsize, x, y); } /* Return whether ledger lines or not */ DEBUG(("show_note() end\n")); return ledgered; } /************************************************* * Actually print one rest * *************************************************/ /* This function just prints the actual rest (possibly with ledger lines). Dots are handled elsewhere. Arguments: x x coordinate for the rest notetype length of rest Returns: nothing */ static void show_rest(int x, int notetype) { int fontsize = (n_fontsize*main_stavemagn)/1000; int yoffset = n_restlevel; int y; /* Rests longer than a crotchet have to have ledger lines when they are printed off the stave. Also move a semibreve rest down on a 1-line stave and up on a 3-line stave. We must also adjust the position of breve and semibreve rests for cue sizes. */ if (notetype <= minim) { int loffset = 0; yoffset += 8000; switch (notetype) { case -1: /* long rest */ yoffset -= 2000; break; case breve: yoffset += n_pcorrection; /* Fall through */ case minim: if (yoffset > 16000 || yoffset < 0) loffset = -2000; break; case semibreve: if (out_stavelines == 1) yoffset -= 4000; else if (out_stavelines == 3) yoffset += 4000; yoffset += 2*n_pcorrection; if (yoffset > 12000 || yoffset < -4000) loffset = 2000; break; } if (loffset) ps_musstring(US"=", fontsize, x - (10*main_stavemagn)/10, out_ystave - ((yoffset + loffset)*main_stavemagn)/1000); } else yoffset += 4000 + n_pcorrection; y = out_ystave - (yoffset*main_stavemagn)/1000; /* Output a normal rest */ if (notetype >= 0) ps_musstring(reststrings[n_notetype], fontsize, x, y); /* Output a coded multirest */ else if (curmovt->codemultirests && out_manyrest < 9) { ps_musstring(multireststrings[out_manyrest - 2], fontsize, x, y - 2000); } /* Output a |----| long rest sign. If the bar is unusually long or unusually short, draw the long rest symbol; note that ps_line() works in conventional coordinates relative to the base line of the stave. The variable n_longrestmid contains the mid-point of the long rest. */ else { int wide; int rs = out_barlinex - n_longrestmid; if ((wide = rs > 40*main_stavemagn) || x - out_barx < 6000) { posstr *p; int xl, xr; int vthick = (3*main_stavemagn)/10; int hthick = 3*main_stavemagn; int adjust = 0; int min = wide? 15000 : 12000; /* Calculate an adjustment for anything at the end of the bar, e.g. a clef change. */ for (p = out_posptr + 1; p->moff <= 0; p++); /* Skip preceding */ for (; p < out_poslast; p++) adjust += p[1].xoff - p->xoff; /* Place the right hand end with respect to the the barline, nearer for a narrow bar, then place the left hand end symmetrically. */ if (adjust < min) adjust = min + adjust/3; else adjust += 5000; xr = out_barlinex - mac_muldiv(adjust, main_stavemagn, 1000); xl = 2*n_longrestmid - xr; ps_line(xl, 8*main_stavemagn, xr, 8*main_stavemagn, hthick, 0); ps_line(xl, 4*main_stavemagn, xl, 12*main_stavemagn, vthick, 0); ps_line(xr, 4*main_stavemagn, xr, 12*main_stavemagn, vthick, 0); } /* Use the long rest character */ else ps_muschar(x, y, mc_longrest, fontsize); } } /************************************************* * Generate one note/rest + dots & accents * *************************************************/ /* The relevant data about the note/rest is all in the n_* global variables. Arguments: none Returns: nothing */ void out_shownote(void) { int fontsize = (n_fontsize*main_stavemagn)/1000; int x = n_x + n_cueadjust; int yyabove, yybelow; int acc_level, acc_upflag; BOOL ledgered = FALSE; DEBUG(("out_shownote() start\n")); /* If the note is invisible, skip printing; just show accents, etc. */ if ((bar_cont->flags & cf_notes) != 0 && (n_flags & nf_hidden) == 0) { /* If printing a breve, move left to align with semibreve position */ if (n_pitch != 0 && n_notetype == breve) x -= (23*main_stavemagn)/10; /* First, any accidental is set, prior to the given position */ if (n_acc) { int offset = n_acc; if ((n_flags & nf_accrbra) != 0) offset += 6; else if ((n_flags & nf_accsbra) != 0) offset += 12; if ((n_flags & nf_halfacc) != 0) { offset += ((n_acc == ac_sharp)? (curmovt->hsharpstyle == 0) : (curmovt->hflatstyle == 0))? 18:36; } ps_muschar(x - mac_muldiv(n_accleft, n_fontsize, 10000), out_ystave - (n_pitch - 130)*main_stavemagn - n_pcorrection, out_acctable[offset], fontsize); } /* Now we can output the note or rest. */ if (n_pitch == 0) { int notetype; if (out_manyrest == 1) notetype = n_notetype; else { notetype = -1; n_flags &= ~(nf_dot+nf_plus); /* Kill dots for many bar rest */ } show_rest(x, notetype); } else ledgered = show_note(x); /* Deal with horizontal dots/plus - fudge for quavers and breves */ if ((n_flags & (nf_dot+nf_plus)) != 0) { int dotpos = 84; int dotlevel; if (n_pitch == 0) { dotlevel = mac_muldiv(L_3S + n_restlevel, main_stavemagn, 1000); dotpos += restdotadjusts[n_notetype]; } else { int dotpitch = n_pitch | 2; /* force into space above */ if ((n_flags & nf_lowdot) != 0 && (n_pitch & 2) == 0) dotpitch -= 4; if ((n_flags & nf_highdot) != 0 && (n_pitch & 2) != 0) dotpitch += 4; dotlevel = (dotpitch - 130)*main_stavemagn; if (n_notetype == breve) dotpos += 50; } if ((n_flags & nf_dotright) != 0) dotpos += 60; else if (n_upflag && n_notetype >= quaver && n_pitch != 0) dotpos += 16; dotpos = (dotpos*main_stavemagn)/10 + n_dotxadjust; /* For cue notes there are two choices: either to scale the position according to the cue size, or to align the dots with full-sized notes that may be above or below (alignment by centre of dot). */ if ((n_flags & nf_cuesize) != 0) { if ((n_flags & nf_cuedotalign) != 0) dotpos += mac_muldiv(640 - mac_muldiv(640, n_fontsize, 10000), main_stavemagn, 1000) - n_cueadjust; else dotpos = mac_muldiv(dotpos, n_fontsize, 10000); } /* Output the dot(s) */ ps_musstring(((n_flags & nf_plus) == 0)? US"?" : US"\302\207", fontsize, x + dotpos, out_ystave - dotlevel - n_pcorrection); if ((n_flags & nf_dot2) != 0) ps_musstring(US"?", fontsize, x + dotpos + (35*main_stavemagn)/10, out_ystave - dotlevel - n_pcorrection); } } /* If there are no dynamics and no ornaments, there's nothing more to do */ if ((n_acflags & af_dynamics) == 0 && n_ornament == NULL) return; /* Now set up a level and up flag for expression marks - normally these are from the standard note values, but they are different if the accents are flagged for printing on the same side of the note as the stem. For chords it is arranged that the accents come with the appropriate note head. */ acc_level = (n_pitch - 130)*main_stavemagn; if ((n_acflags & af_opposite) == 0) { acc_upflag = n_upflag; } else { acc_upflag = !n_upflag; if ((n_flags & nf_stem) != 0) acc_level += n_upfactor * mac_muldiv((12000+n_stemlength), main_stavemagn, 1000); } /* Staccato, staccatissimo, ring, & bar go inside the staff. Except for staccato and staccatissimo, they are allowed together - the staccat{issim}o is nearest to the note. We don't need to compensate for ties as the ties themselves are moved in this case. */ if ((n_acflags & af_dyninside) != 0) { int adjust = 4*main_stavemagn; int p = acc_level; if (acc_upflag) { adjust = -adjust; p -= 8*main_stavemagn; /* Accent at notehead; ensure not on line; not for 0 or 1-line staves or for staccatissimo. */ if (out_stavelines >= 2 && (n_acflags & af_staccatiss) == 0) { if (acc_upflag == n_upflag) { if (((n_pitch & 2) == 0) && n_pitch != P_1L && (!ledgered || n_pitch > (P_5L - ((n_flags & nf_coupleD)? out_downgap : 0)))) p -= 2*main_stavemagn; } /* Accent at stem end; ensure not on line; rather assumes stemlength adjustments will be in whole points... */ else { int pp = p/main_stavemagn; if (pp >= (-6) && pp <= 10 && (pp & 2) != 0) p -= 2*main_stavemagn; } } } else /* !acc_upflag */ { /* Accent at notehead; ensure not on line; not for 0 or 1-line staves or for staccatissimo. */ if (out_stavelines >= 2 && (n_acflags & af_staccatiss) == 0) { if (acc_upflag == n_upflag) { if (((n_pitch & 2) == 0) && n_pitch != P_5L && (!ledgered || n_pitch < (P_1L + ((n_flags & nf_coupleU)? out_upgap : 0)))) p += 2*main_stavemagn; } /* Accent at stem end; ensure not on line (rather assumes stemlength adjustments will be in whole points... */ else { int pp = p/main_stavemagn; if (pp >= (-6) && pp <= 10 && (pp & 2) != 0) p += 2*main_stavemagn; } } } if (out_beaming && (acc_upflag != n_upflag)) p += n_upfactor * 1000; if ((n_acflags & af_staccato) != 0) { show_brack_acc(US">", fontsize, x + out_dynmovex[dyn_staccato], out_ystave - p - out_dynmovey[dyn_staccato], out_dynmovef[dyn_staccato], acc_upflag? 4*main_stavemagn:(-4)*main_stavemagn, -4*main_stavemagn, 0, 0); p += adjust; out_dynmovex[dyn_staccato] = out_dynmovey[dyn_staccato] = out_dynmovef[dyn_staccato] = 0; } /* Leave p the same value as for staccato, with a small adjustment, but we need some further adjustment to cope with the position of the characters in the font. */ else if ((n_acflags & af_staccatiss) != 0) { int pp = (acc_upflag? 25:55)*main_stavemagn/10; if (acc_upflag != n_upflag) pp += (acc_upflag? 1:-1)*main_stavemagn; show_brack_acc(acc_upflag? US"\303\203":US"\303\202", fontsize, x + out_dynmovex[dyn_staccatiss], out_ystave - p - pp - out_dynmovey[dyn_staccatiss], out_dynmovef[dyn_staccatiss], acc_upflag? 3*main_stavemagn:(-3)*main_stavemagn, 0, 0, 0); p += adjust + (acc_upflag? -1:1)*main_stavemagn; out_dynmovex[dyn_staccatiss] = out_dynmovey[dyn_staccatiss] = out_dynmovef[dyn_staccatiss] = 0; } /* The ring character prints 4 points lower than the other two, and a bit further away from the notehead when clear of stave or ledger lines. */ if ((n_acflags & af_ring) != 0) { int yy = 0; if ((n_flags & nf_couple) == 0) { if (acc_upflag) { if (n_upflag && n_pitch <= P_1S) yy = main_stavemagn; } else { if (!n_upflag && n_pitch >= P_4S) yy = -main_stavemagn; } } show_brack_acc(US"\302\206", fontsize, x + out_dynmovex[dyn_ring], out_ystave - p - 4*main_stavemagn + yy - out_dynmovey[dyn_ring], out_dynmovef[dyn_ring], acc_upflag? 4*main_stavemagn:(-4)*main_stavemagn, 0, 0, 0); p += adjust + yy; out_dynmovex[dyn_ring] = out_dynmovey[dyn_ring] = out_dynmovef[dyn_ring] = 0; } if ((n_acflags & af_bar) != 0) { show_brack_acc(US"T", fontsize, x + out_dynmovex[dyn_bar], out_ystave - p - out_dynmovey[dyn_bar], out_dynmovef[dyn_bar], acc_upflag? 4*main_stavemagn:-4*main_stavemagn, -4*main_stavemagn, 2*main_stavemagn, 2*main_stavemagn); out_dynmovex[dyn_bar] = out_dynmovey[dyn_bar] = out_dynmovef[dyn_bar] = 0; } } /* Set up y values for things that print above or below the stave; there is a different set for the accents and the ornaments, but we compute the basic values here for both of them. Set the stemlength to the value for the first note of a chord, which will be the bit that sticks out. */ n_stemlength = n_orig_stemlength; yybelow = misc_ybound(TRUE, n_nexttie, TRUE, FALSE); yyabove = misc_ybound(FALSE, n_nexttie, TRUE, FALSE); /* We can common up the code for the other accents and bowing marks into a loop. This is dependent on the order of the flags in the word, and the bowing marks must come last, because the above/below control is different. All these items print above or below the stave. */ if ((n_acflags & af_dynoutside) != 0) { int i; int yextra = 0; int upflag = acc_upflag; int f = n_acflags << 3; /* first bit to top position */ /* The order is: > v V ' down up. We assume that only one of the first four will exist, possibly with one of the last two. */ for (i = 0; i < 6; i++) { int xadjust = 0; int ayybelow = yybelow; int ayyabove = yyabove; if (i == 0) xadjust = main_stavemagn; else if (i == 4) { int newupflag = (bar_cont->flags & cf_bowingabove) == 0; if (newupflag != upflag) yextra = 0; upflag = newupflag; } /* Further adjustments when accents are not on the stem side and there are no "inside" accidentals. Effectively we cancel some of the space put in for accidental signs. We can't take this out of the loop, because the up/down bows may be different to other accents. */ if (upflag == n_upflag && (n_acflags & af_dyninside) == 0) { ayybelow += accaccbelowadjusts[n_acc]; ayyabove += accaccaboveadjusts[n_acc]; } ayybelow = ((ayybelow <= out_stavebottom)? ayybelow : out_stavebottom) - 8000; ayyabove = ((ayyabove > out_stavetop)? ayyabove : out_stavetop) + 3000; /* Print the accent if its bit is set. */ if (f < 0) { int d = dyn_list[i]; /* standard accent number */ int y; uschar *s; if (upflag) { s = accbelowstrings[i]; y = ayybelow + accbelowadjusts[i] - yextra; } else { s = accabovestrings[i]; y = ayyabove + accaboveadjusts[i] + yextra; } show_brack_acc(s, fontsize, n_x + xadjust + out_dynmovex[d], out_ystave - mac_muldiv(y, main_stavemagn, 1000) - out_dynmovey[d], out_dynmovef[d], 0, mac_muldiv(outdynybadjusts[i], main_stavemagn, 1000), mac_muldiv(outdynxbadjusts[i], main_stavemagn, 1000), mac_muldiv(outdynxbadjusts[i], main_stavemagn, 1000)); if (i < 4) yextra = 4000; out_dynmovex[d] = out_dynmovey[d] = out_dynmovef[d] = 0; } f = f << 1; } } /* Deal with ornaments. There are only *very* rarely more than one, so don't bother about the recomputation that then happens. */ if (n_ornament != NULL) { yybelow = ((yybelow <= out_stavebottom)? yybelow : out_stavebottom) - 8000; yyabove = ((yyabove > out_stavetop)? yyabove : out_stavetop) + 3000; while (n_ornament != NULL) { uschar s[100]; uschar *p = s; BOOL below = (n_acflags & af_opposite) != 0; int size = fontsize; int ornament = n_ornament->ornament; int x = n_ornament->x + n_x; int y = n_ornament->y; /* Above/below accidentals are special */ if (ornament >= or_dsharp) { size = ((curmovt->fontsizes)->fontsize_vertacc * main_stavemagn)/1000; if (ornament >= or_accbelow) { below = TRUE; y += yybelow + 8000 - (8*size)/10; ornament -= or_accbelow - or_dsharp; } else { below = FALSE; y += yyabove; } } /* Adjust y for other ornaments */ else y += below? yybelow : yyabove; /* Particular code for each ornament */ switch (ornament) { case or_trsh: *p++ = '%'; goto TR; case or_trfl: *p++ = '\''; goto TR; case or_trnat: *p++ = '('; case or_tr: TR: { int tsize = (curmovt->fontsizes)->fontsize_trill; int asize = (6*tsize)/10; int *matrix = (curmovt->fontsizes)->fontmatrix_trill; if (matrix != NULL) memcpy(font_transform, matrix, 4*sizeof(int)); out_string(curmovt->trillstring, font_it, tsize, x, out_ystave - mac_muldiv(y, main_stavemagn, 1000), 0); /* For a bracketed trill, use the show_brack_acc() function with an empty string. */ if (n_ornament->bflags != 0) show_brack_acc(US"", size, x, out_ystave - mac_muldiv(y, main_stavemagn, 1000), n_ornament->bflags, 0, below? ornament_ybadjusts[ornament] : ornament_yaadjusts[ornament], ornament_xbrackadjustsL[ornament], ornament_xbrackadjustsR[ornament]); font_reset(); size = asize; if (below) y -= asize; else if (n_ornament->ornament == or_trfl) y += (8*tsize)/10; else y += tsize; x += 2*main_stavemagn; } break; case or_ferm: if (n_pitch == 0) x -= main_stavemagn; *p++ = below? '/' : ')'; break; case or_arp: case or_arpu: case or_arpd: { int h = (n_maxpitch - n_minpitch + 2)/4; if ((n_minpitch & 2) != 0 && (n_maxpitch & 2) != 0) h++; if (ornament == or_arpd) { *p++ = 165; h--; } do *p++ = 145; while (--h >= 0); if (ornament == or_arpu) p[-1] = 164; y = n_minpitch - 130; if ((y & 2) == 0) y -= 2; else if ((n_maxpitch & 2) != 0) y--; y = y*1000 + n_ornament->y; if (n_maxaccleft) x -= n_maxaccleft; else if (n_invertleft) x -= (55*main_stavemagn)/10; } break; case or_spread: { int co; int y0 = n_minpitch - 128; int y1 = n_maxpitch - 128; if (0 <= y0 && y0 <= 16 && (y0 & 3) == 0) y0--; if (0 <= y1 && y1 <= 16 && (y1 & 3) == 0) y1++; co = (4000 * (y1 - y0))/14; if (co > 4000) co = 4000; y0 = mac_muldiv(y0 * 1000 + n_ornament->y, main_stavemagn, 1000); y1 = mac_muldiv(y1 * 1000 + n_ornament->y, main_stavemagn, 1000); x -= 5000; if (n_maxaccleft) x -= n_maxaccleft; else if (n_invertleft) x -= 4*main_stavemagn; out_slur(x, y0, x, y1, 0, co, 0, 1000); } break; /* Tremolos are handled with their own code. Vertical movement is permitted. */ case or_trem3: *p++ = 146; case or_trem2: *p++ = 146; case or_trem1: *p++ = 146; y = n_pitch - 124; if (n_notetype >= minim) x += (n_upfactor*255*main_stavemagn)/100; if (n_upflag) { int yy = (n_ornament->ornament == or_trem3)? 4000 : 2000; y += (n_ornament->ornament == or_trem1)? 4 : 2; y = y*1000 + n_ornament->y; if (out_beaming && n_stemlength >= yy) y += (n_stemlength - yy)/2; if (main_righttoleft) x -= 5000; } else { int yy = 2000; switch (n_ornament->ornament) { case or_trem3: y -= 18; yy = 4000; break; case or_trem2: y -= 14; break; case or_trem1: y -= (y & 2)? 10 : 12; break; } y = y*1000 + n_ornament->y; if (out_beaming && n_stemlength >= yy) y -= (n_stemlength - yy)/2; if (main_righttoleft) x += 5000; } break; /* Handle those cases that have no complications, but just require setting a string and a position. This includes accidentals printed above and below, though we have a small fudge for half accidental styles. */ default: if (ornament >= or_hflat && ornament <= or_hflatsb) ornament += curmovt->hflatstyle * 6; else if (ornament >= or_hsharp && ornament <= or_hsharpsb) ornament += curmovt->hsharpstyle * 6; p += sprintf(CS p, "%s", ornament_strings[ornament]); x += ornament_xadjusts[ornament] * main_stavemagn; y += below? ornament_ybadjusts[ornament] : ornament_yaadjusts[ornament]; break; } /* Output the string which has been set up (if any). The accidentals treated as ornaments are those printed above notes, and they have their own arrangements for bracketing, so we do not call show_brack_acc for them. Also, bracketing is not available for tremolos, trills, arpeggios, or spread chords. */ if (p > s) { int ybadjust = 0; *p = 0; switch (ornament) { case or_ferm: ybadjust = below? -2000 : 1000; /* Fall through */ case or_mord: case or_dmord: case or_imord: case or_dimord: case or_turn: case or_iturn: show_brack_acc(s, size, x, out_ystave - mac_muldiv(y, main_stavemagn, 1000), n_ornament->bflags, 0, ybadjust, ornament_xbrackadjustsL[ornament], ornament_xbrackadjustsR[ornament]); break; default: ps_musstring(s, size, x, out_ystave - mac_muldiv(y, main_stavemagn, 1000)); break; } } /* Move on to next ornament, if any */ n_ornament = (b_ornamentstr *) ((uschar *)n_ornament + length_table[b_ornament]); if (n_ornament->type == b_Jump) n_ornament = (b_ornamentstr *) ((uschar *)(((b_Jumpstr *)n_ornament)->next) + length_table[b_Jump]); if (n_ornament->type != b_ornament) break; } } DEBUG(("out_shownote() end\n")); } /* End of shownote.c */ pmw-4.27/src/transpose.c0000644000222100022210000001763512247665016013335 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2008 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: October 2008 */ /* This file contains code for transposing notes and key signatures. */ #include "pmwhdr.h" #include "readhdr.h" static uschar tp_keytable[] = { 15, 2,17,18, 5,20,14, /* natural */ 0, 0, 0, 0, 0, 6, 0, /* sharp */ 0, 1, 2, 3, 4, 5, 6, /* flat */ 36,23,30,39,26,33,34, /* minor */ 22, 0,24,25, 0,27,21, /* sharp minor */ 21,22,23,24,25,25,26}; /* flat minor */ /* Table of enharmonic keys; the first of each pair is a key that is never automatically selected (i.e. is not in the above table); the second is the equivalent. */ static uschar enh_keytable[] = { 16, 1, /* C$ = B% */ 9, 17, /* C# = D$ */ 12, 20, /* F# = G$ */ 35, 34, /* A$m = G#m */ 31, 39, /* D#m = E$m */ 28, 36, /* A#m = B$m */ 255}; /* Marks end */ static uschar sharpable[] = { TRUE, TRUE, FALSE, TRUE, FALSE, TRUE, TRUE, FALSE, TRUE, FALSE, TRUE, FALSE }; static uschar flatable[] = { FALSE, TRUE, FALSE, TRUE, TRUE, FALSE, TRUE, FALSE, TRUE, FALSE, TRUE, TRUE }; static uschar dsharpable[] = { FALSE, FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, TRUE, FALSE, TRUE, FALSE, TRUE }; static uschar dflatable[] = { TRUE, FALSE, TRUE, FALSE, FALSE, TRUE, FALSE, TRUE, FALSE, TRUE, FALSE, FALSE }; static uschar naturalable[] = { TRUE, FALSE, TRUE, FALSE, TRUE, TRUE, FALSE, TRUE, FALSE, TRUE, FALSE, TRUE }; static uschar *able[] = { NULL, dsharpable, flatable, dflatable, naturalable, sharpable }; static uschar tp_newacc[] = { ac_dflat, ac_flat, ac_natural, ac_sharp, ac_dsharp }; static uschar tp_forward_offset[] = { 2, 0, 4, 0, 5, 7, 0, 9, 0, 11, 0, 0 }; static uschar tp_forward_pitch[] = { 2, 0, 2, 0, 1, 2, 0, 2, 0, 2, 0, 1 }; static uschar tp_reverse_offset[] = { 11, 0, 0, 0, 2, 4, 0, 5, 0, 7, 0, 9 }; static uschar tp_reverse_pitch[] = { 1, 0, 2, 0, 2, 1, 0, 2, 0, 2, 0, 2 }; /************************************************* * Transpose key signature * *************************************************/ /* As well as returning the transposed key, we also (optionally) set up the variable (stave_transpose_letter) containing the number of letter changes that are required for any transposition. This function is called even when there is no transposition. Do nothing if the transposition amount is too large, to catch sillinesses. Arguments: key key signature amount number of semitones (signed) setletter TRUE if stave_transpose_letter is to be set Returns: new key signature */ int transpose_key(int key, int amount, BOOL setletter) { int newkey = key; if (amount < max_transpose) { int i; int letterkey; int j = amount; trkeystr *k = main_transposedkeys; while (j < 0) j += 12; for (i = 0; i < j; i++) newkey = tp_keytable[newkey]; letterkey = newkey; /* See if there's been a transposed key request for the new key. */ while (k != NULL) { if (k->oldkey == newkey) { newkey = k->newkey; break; } k = k->next; } /* Set stave_transpose_letter if required. If the new key has changed to an enharmonic key, use the forced key to compute the number of letter changes; otherwise use the default new key. This copes with the two different uses of "transposedkey": (a) to use an enharmonic key and (b) to print music with a key signature different to the tonality. */ if (setletter) { if (letterkey != newkey) { uschar *p = enh_keytable; while (*p < 255) { if (letterkey == p[1] && newkey == p[0]) { letterkey = newkey; break; } p += 2; } } stave_transpose_letter = (letterkey%7) - (key%7); if (amount > 0 && stave_transpose_letter < 0) stave_transpose_letter += 7; if (amount < 0 && stave_transpose_letter > 0) stave_transpose_letter -= 7; } } return newkey; } /************************************************* * Transpose a note * *************************************************/ /* This function is called when reading a note, and also when processing a string that contains note (chord) names. The amount by which to transpose is set in stave_transpose. Arguments: abspitch the absolute pitch pitch the normal pitch (updated) acc the accidental value (updated) transposeacc if not 0, accidental required transposedaccforce retain accidental, even if implied by new key acc_onenote TRUE if accidental is printed above/below, and hence applies only to a single note texttranspose TRUE if transposing a note name in text tiedcount < 0 if note is not tied, else note number in a tie Returns: the transposed absolute pitch the transposed pitch in *pitch the transposed accidental in *acc */ int transpose_note(int abspitch, int *pitch, int *acc, int transposeacc, BOOL transposedaccforce, BOOL acc_onenote, BOOL texttranspose, int tiedcount) { int impliedacc; int newpitch; int newacc; int newaccpitch; /* First, transpose the absolute pitch */ abspitch += stave_transpose; /* If a particular accidental is requested, and the new note is suitable, use it. */ if (transposeacc != 0 && able[transposeacc][abspitch%12]) { newacc = transposeacc; newpitch = abspitch - read_accpitch[newacc] + 2; } /* Otherwise we must change the note letter by the same amount as the note letter of the keysignature has changed. */ else { int i = stave_transpose_letter; int offset; newpitch = *pitch; /* Correct for >= octave transposition. This is surely rare, so these loops won't matter. */ while (newpitch <= abspitch - 12) newpitch += 12; while (newpitch >= abspitch + 12) newpitch -= 12; offset = newpitch%12; /* The two cases are written out separately for maximum speed. (It also means the tables can be uschar rather than int.) */ if (i >= 0) { while (i-- > 0) { newpitch += tp_forward_pitch[offset]; offset = tp_forward_offset[offset]; } } else { while (i++ < 0) { newpitch -= tp_reverse_pitch[offset]; offset = tp_reverse_offset[offset]; } } /* We now have the required new pitch, and must find the accidental that yields the correct absolute pitch. */ offset = abspitch - newpitch; if (offset > 2 || offset < (-2)) { error_moan(50, *pitch, *acc, abspitch, newpitch); offset = 0; } newacc = tp_newacc[offset+2]; } /* We now have the new pitch and its accidental. If we are transposing an actual note, as opposed to a note name in some test, there is extra work to do on the accidental. If there was no accidental in the input, or if the noforce option is set, see if this accidental is already implied and if so, cancel the accidental. The case of a tied note is special and is handled by passing in the accidental to check against. If not, remember the accidental for next time, unless acc_onenote is set, which means that the accidental applies only to this note (printed above/below) and does not apply to later notes in the bar. The remembering table is in baraccs format (pitch values + 2). */ if (!texttranspose) { newaccpitch = read_accpitch[newacc]; if (tiedcount < 0) impliedacc = baraccs_tp[newpitch]; else impliedacc = stave_tiedata[tiedcount].acc_tp; if ((*acc == 0 || !transposedaccforce) && impliedacc == newaccpitch) newacc = 0; else if (!acc_onenote) baraccs_tp[newpitch] = newaccpitch; } /* Return the transposed pitch+accidental and absolute pitch */ *pitch = newpitch; *acc = newacc; return abspitch; } /* End of transpose_c */ pmw-4.27/src/barhdr.h0000644000222100022210000003520612247665016012560 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2010 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: December 2010 */ /* This is the header file that contains definitions of the structures used for holding musical data. */ /* Offset for overlay string levels */ #define olay_offset 64 /* Tie flags - an 8-bit field; the "savedash" bit is not saved in ties themselves and could be greater than 128 in fact. It is passed into the ps_line() function when drawing several lines with the same dash settings. */ #define tief_default 1 #define tief_slur 2 #define tief_gliss 4 #define tief_editorial 8 #define tief_dashed 16 #define tief_dotted 32 #define tief_savedash 64 /* Slur flags - a 16-bit field */ #define sflag_w 0x0001 /* wiggly */ #define sflag_b 0x0002 /* below */ #define sflag_l 0x0004 /* line */ #define sflag_h 0x0008 /* horizontal */ #define sflag_ol 0x0010 /* line open on left */ #define sflag_or 0x0020 /* line open on right */ #define sflag_i 0x0040 /* intermittent (dashed) */ #define sflag_e 0x0080 /* editorial */ #define sflag_x 0x0100 /* crossing */ #define sflag_abs 0x0200 /* absolutely positioned */ #define sflag_lay 0x0400 /* at {und,ov}erlay level */ #define sflag_idot 0x0800 /* intermittent (dotted) */ /* Plet flags */ #define plet_a 1 #define plet_b 2 #define plet_lx 4 #define plet_rx 8 #define plet_x 16 #define plet_bn 32 #define plet_by 64 #define plet_abs 128 /* Hairpin flags */ #define hp_below 1 #define hp_middle 2 #define hp_halfway 4 #define hp_abs 8 #define hp_bar 16 /* Control flags on a note. */ #define nf_hidden 0x00000001 /* Invisible note */ #define nf_coupleU 0x00000002 /* Up coupled note (to control ledgers) */ #define nf_coupleD 0x00000004 /* Down coupled note */ #define nf_centre 0x00000008 /* Centre this (rest) in bar */ #define nf_stemup 0x00000010 /* Stem direction */ #define nf_plus 0x00000020 /* Augmentation plus */ #define nf_dot 0x00000040 /* One augmentation dot */ #define nf_dot2 0x00000080 /* Two augmentation dots */ #define nf_lowdot 0x00000100 /* Print dots/plus below line */ #define nf_dotright 0x00000200 /* Dot/plus moved right because of invert */ #define nf_appogg 0x00000400 /* Print slash through stem */ #define nf_accrbra 0x00000800 /* Round bracket for accidental */ #define nf_accsbra 0x00001000 /* Square bracket for accidental */ #define nf_invert 0x00002000 /* Print this note on other side of stem */ #define nf_fuq 0x00004000 /* This note is a free upstemmed quaver */ #define nf_cuesize 0x00008000 /* Note must print at cue size */ #define nf_cuedotalign 0x00010000 /* Align cue dots with normal dots */ #define nf_accleft 0x00020000 /* Explicit accidental move was given */ #define nf_chord 0x00040000 /* This is the first note of a chord */ #define nf_stem 0x00080000 /* This note has a stem */ #define nf_highdot 0x00100000 /* Move space dot up to next space */ #define nf_shortened 0x00200000 /* This note's stem has been automatically shortened */ #define nf_noplay 0x00400000 /* Do not play - note tied */ #define nf_smallhead 0x00800000 /* Small notehead */ #define nf_halfacc 0x01000000 /* Half accidental */ #define nf_couple (nf_coupleU+nf_coupleD) #define nf_dotted (nf_dot+nf_dot2+nf_plus) /* Flags for accents on a note. Ornaments are held separately, as individual numbers less than 256. The table of strings relies on accent bit values being greater than 255; in other words, don't use the bottom eight bits here without reworking things. */ #define af_opposite 0x80000000 /* Print accents on opposite side */ #define af_staccato 0x40000000 /* Staccato */ #define af_bar 0x20000000 /* Bar accent */ #define af_gt 0x10000000 /* Greater Than (>) */ #define af_wedge 0x08000000 /* Vertical wedge */ #define af_tp 0x04000000 /* Teepee (large circumflex) */ #define af_vline 0x02000000 /* Short vertical line */ #define af_down 0x01000000 /* Violin down bow */ #define af_up 0x00800000 /* Violin up bow */ #define af_ring 0x00400000 /* Ring */ #define af_staccatiss 0x00200000 /* Staccatissimo (teardrop) */ #define af_dynamics (af_staccato | af_bar | af_gt | af_wedge | \ af_tp | af_down | af_up | af_ring | af_vline | \ af_staccatiss) #define af_dyninside (af_staccato | af_staccatiss | af_bar | af_ring) #define af_dynoutside (af_gt | af_wedge | af_tp | af_down | af_up | af_vline) /* Dynamics identification for movement blocks. These are one less than the user-visible accent numbers. */ enum { dyn_staccato, dyn_bar, dyn_gt, dyn_wedge, dyn_tp, dyn_down, dyn_up, dyn_ring, dyn_vline, dyn_staccatiss, dyn_max }; /* Lengths for notes */ #define len_breve (1152*5*7*11*13) #define len_semibreve (len_breve/2) #define len_minim (len_breve/4) #define len_crotchet (len_breve/8) #define len_quaver (len_breve/16) #define len_squaver (len_breve/32) #define len_dsquaver (len_breve/64) #define len_hdsquaver (len_breve/128) #define TUPLET_ROUND 10 /* Rounding tolerance for tuplets */ /* Note types */ enum { breve, semibreve, minim, crotchet, quaver, squaver, dsquaver, hdsquaver }; /* Ornament types. These are for rarer things that can be moved. Accidentals above/below notes are handled as ornaments. */ enum { or_ferm, /* Fermata */ or_tr, /* Trill */ or_trsh, /* Trill + sharp */ or_trfl, /* Trill + flat */ or_trnat, /* Trill + natural */ or_trem1, /* One tremolo line */ or_trem2, /* Two tremolo lines */ or_trem3, /* Three tremolo lines */ or_mord, /* Mordent */ or_dmord, /* Double mordent */ or_imord, /* Inverted mordent */ or_dimord, /* Double inverted mordent */ or_turn, /* Turn */ or_iturn, /* Inverted Turn */ or_arp, /* Arpeggio */ or_arpu, /* Arpeggio + up arrow */ or_arpd, /* Arpeggio + down arrow */ or_spread, /* Spread */ /* These triples must be in the standard accidental ordering, and must be last in this enumeration. */ or_dsharp, or_dsharprb, or_dsharpsb, /* Double sharp */ or_flat, or_flatrb, or_flatsb, /* Flat */ or_dflat, or_dflatrb, or_dflatsb, /* Double flat */ or_nat, or_natrb, or_natsb, /* Natural */ or_sharp, or_sharprb, or_sharpsb, /* Sharp, plain & with brackets */ or_hflat, or_hflatrb, or_hflatsb, /* Half flat */ or_hsharp, or_hsharprb, or_hsharpsb, /* Half sharp */ or_accbelow /* The above are repeated from here, but don't need */ /* individual names. */ }; /* Flags for indicating brackets on dynamics and ornaments. */ #define DO_RBRA 0x01 #define DO_RKET 0x02 #define DO_SBRA 0x04 #define DO_SKET 0x08 /* Accidental types. The ordering is by vertical height, which turns out to be useful. */ enum { ac_none, ac_dsharp, ac_flat, ac_dflat, ac_natural, ac_sharp }; /* Type values that identify each structure in a bar's data */ enum { b_End, /* End of bar */ b_Jump, /* Connection to another block of store */ b_all, b_barnum, b_beamacc, b_beambreak, b_beambreak2, b_beamrit, b_bowing, b_breakbarline, b_caesura, b_chord, b_clef, b_comma, b_dbar, b_dotbar, b_dotright, b_draw, b_dynmove, b_ebar, b_endplet, b_endslur, b_ens, b_ensure, b_footnote, b_hairpin, b_ibar, b_justify, b_key, b_linegap, b_lrepeat, b_masq, b_move, b_name, b_nbar, b_newline, b_newpage, b_nopack, b_note, b_noteheads, b_notes, b_ns, b_nsm, b_offset, b_olevel, b_olhere, b_ornament, b_page, b_pagebots, b_pagetops, b_playchange, b_plet, b_prevbar, b_reset, b_resume, b_rrepeat, b_setclef, b_setkey, b_settime, b_sghere, b_sgnext, b_slope, b_slur, b_slurgap, b_slurmod, b_space, b_sshere, b_ssnext, b_suspend, b_text, b_textX, b_tick, b_tie, b_time, b_tremolo, b_tripsw, b_ulevel, b_ulhere, b_unbreakbarline, b_zcopy, b_baditem /* For detecting bad values */ }; /* This is the "generic" structure - the only relevant field is the type field, which is common to all structures. */ typedef struct { uschar type; } bstr; /* b_End marks the end of a bar */ typedef struct { uschar type; uschar overbeam; uschar barlinestyle; } b_Endstr; /* b_Jump marks a discontinuity in the storage; the next field points to the next block of storage, minus the length of a b_Jumpstr so that the usual code for "move on to next" works. */ typedef struct b_Jumpstr { uschar type; bstr *next; } b_Jumpstr; /* Standard struct for items with one byte arg */ typedef struct { uschar type; uschar value; } b_charvaluestr; /* Standard struct for items with single dimension arg */ typedef struct { uschar type; int value; } b_intvaluestr; /* The remainder of the structures are actual musical items. Each has its own structure. Some are the same as others, but by giving each its own name it will be easier to alter them if necessary. */ typedef bstr b_allstr; typedef struct { uschar type; uschar flag; int x; int y; } b_barnumstr; typedef b_charvaluestr b_beamaccstr; typedef bstr b_beambreakstr; typedef b_charvaluestr b_beambreak2str; typedef b_charvaluestr b_beamritstr; typedef b_charvaluestr b_bowingstr; typedef bstr b_breakbarlinestr; typedef bstr b_caesurastr; typedef struct { uschar type; uschar notetype; uschar acc; uschar spitch; uschar truepitch; uschar orig; short int accleft; int flags; int acflags; int length; int yextra; } b_chordstr; typedef struct { uschar type; uschar trueclef; uschar suppress; } b_clefstr; typedef bstr b_commastr; typedef bstr b_dbarstr; typedef bstr b_dotbarstr; typedef bstr b_ebarstr; typedef b_intvaluestr b_dotrightstr; typedef struct { uschar type; uschar overflag; tree_node *item; drawitem *args; } b_drawstr; typedef struct { uschar type; uschar dynamic; uschar bflags; int x; int y; } b_dynmovestr; typedef bstr b_endpletstr; typedef struct { uschar type; uschar id; } b_endslurstr; typedef bstr b_ensstr; typedef b_intvaluestr b_ensurestr; typedef struct { uschar type; headstr h; } b_footnotestr; typedef struct { uschar type; uschar opt; uschar flags; int x; int y; int su; /* Split end up/down */ int h; /* "Halfway" fraction */ int width; /* Width of open end */ } b_hairpinstr; typedef bstr b_ibarstr; typedef struct { uschar type; uschar opt; uschar side; } b_justifystr; typedef struct { uschar type; uschar key; uschar suppress; uschar warn; } b_keystr; typedef struct { uschar type; uschar id; int hfraction; int xadjust; int width; tree_node *draw; drawitem *args; /* for drawing */ gaptextstr *gaptext; } b_linegapstr; typedef bstr b_lrepeatstr; typedef b_charvaluestr b_masqstr; typedef struct { uschar type; uschar relative; int x; int y; } b_movestr; typedef struct { uschar type; uschar n; } b_namestr; typedef struct { uschar type; uschar n; uschar ssize; uschar *s; int x; int y; } b_nbarstr; typedef bstr b_newlinestr; typedef bstr b_newpagestr; typedef bstr b_nopackstr; typedef b_chordstr b_notestr; /* sic (an actual note) */ typedef b_charvaluestr b_noteheadsstr; typedef b_charvaluestr b_notesstr; /* sic (notes on/off) */ typedef struct { uschar type; int ns[8]; } b_nsstr; typedef b_intvaluestr b_nsmstr; typedef b_intvaluestr b_offsetstr; typedef struct { uschar type; uschar opt; int value; } b_olevelstr; typedef b_intvaluestr b_olherestr; typedef struct { uschar type; uschar ornament; uschar bflags; int x; int y; } b_ornamentstr; typedef struct { uschar type; uschar relative; int value; } b_pagestr; typedef b_intvaluestr b_pagebotsstr; typedef b_intvaluestr b_pagetopsstr; typedef struct b_playchangestr { uschar type; uschar stave; short int barno; struct b_playchangestr *next; short int transpose; uschar channel; uschar voice; uschar note; uschar volume; } b_playchangestr; typedef struct { uschar type; uschar pletlen; uschar flags; int x; int yleft; int yright; } b_pletstr; typedef struct { uschar type; uschar dbar; uschar ibar; uschar style; } b_prevbarstr; typedef bstr b_resetstr; typedef bstr b_resumestr; typedef bstr b_rrepeatstr; typedef b_charvaluestr b_setclefstr; typedef b_charvaluestr b_setkeystr; typedef b_intvaluestr b_settimestr; typedef struct { uschar type; uschar opt; int value; } b_sgstr; typedef b_intvaluestr b_slopestr; /* Structure for holding a set of slur modifications, which might repeat for different parts of a split slur. */ typedef struct b_slurmodstr { uschar type; short int sequence; struct b_slurmodstr *next; int lx; int ly; int rx; int ry; int c; int clx; int cly; int crx; int cry; } b_slurmodstr; /* The basic slur structure */ typedef struct { uschar type; uschar id; short int flags; int ally; b_slurmodstr *mods; } b_slurstr; typedef struct { uschar type; uschar relative; int value; } b_spacestr; typedef struct { uschar type; uschar opt; uschar stave; int value; } b_ssstr; typedef bstr b_suspendstr; typedef struct { uschar type; uschar font; uschar size; uschar htype; uschar ulevel; uschar ulen; short int flags; uschar *string; int x; int y; } b_textstr; typedef struct { uschar type; int rotate; int halfway; /* "Halfway" fraction */ } b_textXstr; typedef bstr b_tickstr; typedef struct { uschar type; uschar flags; uschar abovecount; uschar belowcount; b_notestr *note; } b_tiestr; typedef struct { uschar type; uschar warn; uschar suppress; int time; } b_timestr; typedef struct { uschar type; uschar count; uschar join; } b_tremolostr; typedef b_charvaluestr b_tripswstr; typedef struct { uschar type; uschar opt; int value; } b_ulevelstr; typedef b_intvaluestr b_ulherestr; typedef bstr b_unbreakbarlinestr; typedef b_intvaluestr b_zcopystr; /* End of barhdr.h */ pmw-4.27/src/tree.c0000644000222100022210000001035512247665016012246 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2008 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: October 2008 */ /* Binary balance tree management routines */ #include "pmwhdr.h" #define tree_lbal 1 /* left subtree is longer */ #define tree_rbal 2 /* right subtree is longer */ #define tree_bmask 3 /* mask for flipping bits */ /************************************************* * Insert a new node into a tree * *************************************************/ /* This function is used for a number of different binary trees, which remember things that need to be looked up by name. Arguments: treebase pointer to the root of the tree node the node to insert, with data fields filled in Returns: TRUE if the node is successfully inserted, FALSE otherwise (duplicate node found) */ BOOL Tree_InsertNode(tree_node **treebase, tree_node *node) { tree_node *p = *treebase; tree_node **q, *r, *s, **t; int a; /* Initialize the tree fields of the node */ node->left = NULL; node->right = NULL; node->balance = 0; /* Deal with an empty tree */ if (p == NULL) { *treebase = node; return TRUE; } /* The tree is not empty. While finding the insertion point, q points to the pointer to p, and t points to the pointer to the potential re-balancing point. */ q = treebase; t = q; /* Loop to search tree for place to insert new node */ for (;;) { int c = Ustrcmp(node->name, p->name); if (c == 0) return FALSE; /* Duplicate found */ /* Deal with climbing down the tree, exiting from the loop when we reach a leaf. */ q = (c > 0)? &(p->right) : &(p->left); p = *q; if (p == NULL) break; /* Save the address of the pointer to the last node en route which has a non-zero balance factor. */ if (p->balance != 0) t = q; } /* When the above loop completes, q points to the pointer to NULL; that is the place at which the new node must be inserted. */ *q = node; /* Set up s as the potential re-balancing point, and r as the next node after it along the route*/ s = *t; r = (Ustrcmp(node->name, s->name) > 0)? s->right : s->left; /* Adjust balance factors along the route from s to node. */ p = r; while (p != node) if (Ustrcmp(node->name, p->name) < 0) { p->balance = tree_lbal; p = p->left; } else { p->balance = tree_rbal; p = p->right; } /* Now the World-Famous Balancing Act */ a = (Ustrcmp(node->name, s->name) < 0)? tree_lbal : tree_rbal; if (s->balance == 0) /* The tree has grown higher */ s->balance = a; else if (s->balance != a) /* The tree has become more balanced */ s->balance = 0; else /* The tree has got out of balance */ { if (r->balance == a) /* Perform a single rotation */ { p = r; if (a == tree_rbal) { s->right = r->left; r->left = s; } else { s->left = r->right; r->right = s; } s->balance = 0; r->balance = 0; } else /* Perform a double rotation */ { if (a == tree_rbal) { p = r->left; r->left = p->right; p->right = r; s->right = p->left; p->left = s; } else { p = r->right; r->right = p->left; p->left = r; s->left = p->right; p->right = s; } s->balance = (p->balance == a)? (a^tree_bmask) : 0; r->balance = (p->balance == (a^tree_bmask))? a : 0; p->balance = 0; } /* Finishing touch */ *t = p; } return TRUE; /* Successful insertion */ } /************************************************* * Search tree for node by name * *************************************************/ /* Arguments: p the root node of the tree name the name of the required node Returns: pointer to the found node, or NULL */ tree_node * Tree_Search(tree_node *p, uschar *name) { while (p != NULL) { int c = Ustrcmp(name, p->name); if (c == 0) return p; p = (c < 0)? p->left : p->right; } return NULL; } /* End of tree.c */ pmw-4.27/src/read3.c0000644000222100022210000006070712247665016012313 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2010 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: December 2010 */ /* This file contains part III of the code for reading in a PMW score file. It contains top-level code for reading in a bar. */ #include "pmwhdr.h" #include "readhdr.h" /* Key signatures tables giving the offsets of the accidentals, in order, for initializing baraccs. */ static uschar tp_sharporder[] = { 5,0,7,2,9,4,11 }; static uschar tp_flatorder[] = { 11,4,9,2,7,0,5 }; /************************************************* * Initialize accidentals table * *************************************************/ /* The baraccs table is used to hold the current accidental for a given "white note" pitch, to enable an absolute pitch to be calculated. To enable the table to be a byte table, the values are held offset by 2, so that, for example, 0 => double flat, and 3 => sharp. When transposition is happening, the baraccs table is used for the input values, and baraccs_tp for the output values. Arguments: ba the table that is to be set (baraccs or baraccs_tp) key the key signature Returns: nothing */ void read_initbaraccs(uschar *ba, int key) { int i; int value; int countacc = main_keysigtable[key]; uschar *ordertab; if (countacc >= 0) { ordertab = tp_sharporder; value = 3; } else { ordertab = tp_flatorder; value = 1; countacc = -countacc; } /* Clear out the table to no accidental */ for (i = 0; i < baraccs_len; i++) ba[i] = 0x02; /* Put in the key signature accidentals */ for (i = 0; i < baraccs_len; i += 12) { int j; for (j = 0; j < countacc; j++) ba[i+ordertab[j]] = value; } } /************************************************* * Read up/down movement * *************************************************/ /* This is used for options for plets. On entry, read_ch should contain either 'u' or 'd', which may either be the first letter after / or might follow 'l' or 'r'. We don't come here for /lx and /rx, but they are mentioned in the error message for unknown letters because they are something that could have been present. Arguments: value1 pointer to where the value read is added value2 if not NULL, the value is added here as well Returns: nothing */ static void read_updown(int *value1, int *value2) { int sign, x; switch(read_ch) { case 'u': sign = 1; break; case 'd': sign = -1; break; default: error_moan(37, "/l, /r, /lx, /rx, /lu, /ld, /ru or /rd"); next_ch(); return; } x = sign * read_movevalue(); *value1 += x; if (value2 != NULL) *value2 += x; } /************************************************* * Read one bar * *************************************************/ /* Called from read_go(), the top level reading control function. Arguments: none Returns: TRUE if not reached the end of the stave */ BOOL read_bar(void) { void *bardatastart; read_barlinestyle = stave_barlinestyle; read_initbaraccs(baraccs, stave_key); read_initbaraccs(baraccs_tp, stave_key_tp); stave_resetOK = FALSE; stave_barrepeatcount = 0; stave_barlength = stave_maxbarlength = stave_pletlen = 0; stave_noteflags &= ~nf_cuesize; stave_checklength = curmovt->check; if (stave_lastwasdouble) stave_checklength &= curmovt->checkdoublebars; stave_lastgracestem = 0; stave_lastwasdouble = stave_overbeam = FALSE; stave_firstinbar = TRUE; stave_hadnocount = FALSE; stave_stemstackptr = stave_beamstackptr = 0; read_lastensuredtie = NULL; /* Complain if too many bars */ if (stave_barnumber > curmovt->maxbarcount) { error_moan(36, curmovt->maxbarcount); return FALSE; } /* Update the bar number printing vector if necessary */ if (stave_totalnocount > (curmovt->barnovector)[stave_barnumber]) (curmovt->barnovector)[stave_barnumber] = stave_totalnocount; /* Fill in index to the bar's data */ (stavehead->barindex)[stave_barnumber] = store_nextitem(); /* If notes are switched off, insert another control for the benefit of the playing code, which assumes notes on at the start of each bar. */ if (!stave_notes) { b_notesstr *p = store_getitem(b_notes); p->value = FALSE; } /* If we are in an omitempty stave and the previous bar contained only an ibar or dbar item, or ended with an unusual barline style, we must insert a prevbar item here. */ if (stavehead->omitempty && (read_prev_had_dbar || read_prev_had_ibar || read_prev_barlinestyle != stave_barlinestyle)) { b_prevbarstr *p = store_getitem(b_prevbar); p->dbar = read_prev_had_dbar; p->ibar = read_prev_had_ibar; p->style = read_prev_barlinestyle; } /* Remember where the real data starts for detecting an empty bar */ bardatastart = store_nextitem(); /* This is one big loop which stops after an [endstave] directive, or at the end of file, or at the end of the bar. If nothing has been generated, reset the index to null instead of inserting an End item. */ for (;;) { sigch(); if (main_rc >= rc_failed) return FALSE; /* disaster has struck */ if (read_endstave || read_ch == EOF) break; /* exit the loop */ /* Deal with bar lines */ if (read_ch == '|') { next_ch(); if (read_ch == '|') /* Double or internal end bar */ { next_ch(); if (read_ch == '|') { next_ch(); (void)store_getitem(b_ebar); } else { (void)store_getitem(b_dbar); if (!curmovt->checkdoublebars) stave_checklength = FALSE; stave_lastwasdouble = TRUE; } } else if (read_ch == '?') /* Invisible bar */ { next_ch(); (void)store_getitem(b_ibar); } else if (isdigit(read_ch)) /* Specific bar line type */ { read_barlinestyle = read_integer(FALSE); } if (read_ch == '=') /* Continue beam over bar line */ { next_ch(); stave_overbeam = TRUE; } /* Cancel the ensured space for a tied chord with seconds at the end of a bar. */ if (read_lastensuredtie != NULL) read_lastensuredtie->value = 0; break; /* Exit the loop */ } /* Deal with a staff directive or other construction that can occur in square brackets. */ if (read_ch == '[') { error_skip = skip_KET; next_sigch(); for (;;) { /* If a name is already read, handle it, possibly repeatedly. Note that at the start of a stave we enter this procedure with '[' set and possible "name" in stavedir. That is why this test comes first. */ while (read_stavedir[0]) read_stavedirective(); sigch(); if (read_ch == ']') { next_ch(); break; } if (read_ch == EOF) break; /* Deal with the various things that can occur in brackets */ if (isalpha(read_ch)) read_word(read_stavedir); /* Try for accent defaulting */ else if (read_ch == '\\') { stave_accentflags = 0; stave_ornament = -1; next_ch(); for (;;) { accent *ap; sigch(); if (read_ch == '\\') { next_ch(); break; } /* End default */ /* Search the table of accents and ornaments */ for (ap = accent_chars; ap->string != NULL; ap++) { int i; int ln = (int)Ustrlen(ap->string); for (i = 0; i < ln; i++) if (read_chptr[i-1] != ap->string[i]) break; if (i >= ln) { read_chptr += ln - 1; next_ch(); break; } } /* Found in the table */ if (ap->string != NULL) { if (ap->flag < 256) stave_ornament = ap->flag; else stave_accentflags |= ap->flag; } /* Not found in the table */ else if (read_ch == 'a') { int x; next_ch(); if (read_expect_integer(&x, FALSE, FALSE)) { if (x <= dyn_max) stave_accentflags |= accent_list[x]; else error_moan(128, x); } } else { error_moan(45); next_sigch(); } } if ((stave_accentflags & (af_staccato|af_staccatiss)) == (af_staccato|af_staccatiss)) error_moan(129); } /* Deal with repeated bars; expect number > 0, but subtract one from it. If number is followed by nd, rd, or th, it is an nth time bar marking. */ else if (isdigit(read_ch)) { int n = read_integer(FALSE); if (n) { int done = FALSE; sigch(); if (isalpha(read_ch)) { read_word(read_stavedir); if (Ustrcmp(read_stavedir, "st") == 0 || Ustrcmp(read_stavedir, "nd") == 0 || Ustrcmp(read_stavedir, "rd") == 0 || Ustrcmp(read_stavedir, "th") == 0) { b_nbarstr *p = store_getitem(b_nbar); p->x = p->y = 0; p->n = n; p->s = NULL; p->ssize = 0; /**** Not currently in use ****/ sigch(); while (read_ch == '/') { int xsign = 1; int ysign = 1; next_ch(); switch(read_ch) { case 'd': ysign = -1; case 'u': next_ch(); read_expect_integer(&n, TRUE, FALSE); p->y += n * ysign; break; case 'l': xsign = -1; case 'r': next_ch(); read_expect_integer(&n, TRUE, FALSE); p->x += n * xsign; break; /* One day we might want individual sizes for strings, but for the moment this is not implemented. */ /***************** case 's': next_ch(); read_expect_integer(&n, FALSE, FALSE); p->ssize = n; break; *****************/ case '\"': p->s = string_read(); break; default: error_moan(10, "\"u\", \"d\", \"l\", \"r\", or quoted string"); break; } } read_stavedir[0] = 0; done = TRUE; } } /* Repeated bar */ if (!done) { stave_barrepeatcount = n - 1; stave_barrepeatptr = store_nextitem(); } } else error_moan(10, "Number greater than zero"); } /* Deal with rehearsal string */ else if (read_ch == '\"') string_stavestring(TRUE); /* Unrecognized */ else error_moan(10, "Staff directive"); } error_skip = skip_EOL; } /* Deal with items not in directive brackets. Note that '|' has been dealt with earlier. */ else switch (read_ch) { /* Curly brackets are used for the start and end of plets. The end is often dealt with in read_note, but can sometimes turn up here if stave directives intervene. */ case '{': if (stave_pletlen != 0) { error_moan(38); next_ch(); } else { b_pletstr *p; int sign; int flags = 0; int adjustx = 0; int adjustyleft = stave_plety; int adjustyright = adjustyleft; next_sigch(); /* The length of each note in the plet will be multiplied by stave_pletsupnum, and divided by stave_pletlen times stave_pletsupden. */ stave_pletsupnum = 0; /* Indicates not explicitly set */ stave_pletsupden = 1; /* Normal case */ stave_pletlen = 3; /* Default to triplet */ /* Read an explicit specification */ if (isdigit(read_ch)) { stave_pletlen = read_integer(FALSE); /* First number */ /* A minus indicates that we are dividing a smaller number of notes than the default. This is accomplished by dividing by 2. */ if (read_ch == '-') { next_sigch(); stave_pletsupden = 2; } /* A slash indicates that the first number is really the number of notes we are dividing, and the real value of stave_pletlen follows. */ if (read_ch == '/' && isdigit(*read_chptr)) { stave_pletsupnum = stave_pletlen; next_ch(); stave_pletlen = read_integer(FALSE); } } /* If we are dividing into a power of two, assume we are dividing 3 into this number if a numerator was not provided; otherwise assume 2. */ if (stave_pletsupnum == 0) stave_pletsupnum = ((stave_pletlen & (-stave_pletlen)) == stave_pletlen)? 3 : 2; /* If the number of irregular notes is more than twice the number of regular notes, we double the numerator, because the irregulars must be the next note size down; similarly quadruple the numerator for even more notes. */ if (stave_pletlen >= 4*stave_pletsupnum) stave_pletsupnum *= 4; else if (stave_pletlen >= 2*stave_pletsupnum) stave_pletsupnum *= 2; /* Now deal with the options */ while (read_ch == '/') { next_ch(); switch(read_ch) { case 'a': flags &= ~plet_b; flags |= plet_a | plet_by; sign = +1; goto ABSPLET; case 'b': flags &= ~plet_a; flags |= plet_b | plet_by; sign = -1; ABSPLET: flags &= ~(plet_abs | plet_bn); adjustyleft = adjustyright = 0; next_sigch(); if (isdigit(read_ch)) { flags |= plet_abs; adjustyleft = adjustyright = sign * read_integer(TRUE); } break; case 'n': flags &= ~plet_by; flags |= plet_bn; next_sigch(); break; case 'x': flags |= plet_x; next_sigch(); break; case 'u': case 'd': read_updown(&adjustyleft, &adjustyright); break; case 'l': next_ch(); if (isdigit(read_ch)) adjustx -= read_integer(TRUE); else { if (read_ch == 'x') { flags |= plet_lx; next_ch(); } else read_updown(&adjustyleft, NULL); } break; case 'r': next_ch(); if (isdigit(read_ch)) adjustx += read_integer(TRUE); else { if (read_ch == 'x') { flags |= plet_rx; next_ch(); } else read_updown(&adjustyright, NULL); } break; default: error_moan(37, "a, b, n, x, u, d, l or r"); next_sigch(); break; } sigch(); } /* If neither /a nor /b has been given, use the default flags */ if ((flags & (plet_a | plet_b)) == 0) flags |= stave_pletflags; /* Now generate the data block */ p = store_getitem(b_plet); p->pletlen = stave_pletlen; p->flags = flags; p->x = adjustx; p->yleft = adjustyleft; p->yright = adjustyright; } /* Prevent reset (but resets are forbidden inside plets anyway). */ stave_resetOK = FALSE; break; /* Ends of plets are often dealt with at the end of a note, but can occasionally arise here if another directive intervenes. */ case '}': if (stave_pletlen == 0) error_moan(38); else { stave_pletlen = 0; (void)store_getitem(b_endplet); } next_ch(); break; /* Angle brackets signal hairpins */ case '>': case '<': { int flags = stave_hairpinflags; int width = stave_hairpinwidth; int type = read_ch; int ending = (type == '<' && stave_hairpinbegun == '<') || (type == '>' && stave_hairpinbegun == '>'); int y = ending? 0 : stave_hairpiny; int x = 0, h = 0; int slu = 0, sru = 0; next_ch(); while (read_ch == '/') { next_ch(); /* b is anomalous - /bar is always allowed, but /b only on beginning hairpins. */ if (read_ch =='b' && *read_chptr == 'a' && read_chptr[1] == 'r') { flags |= hp_bar; next_ch(); next_ch(); next_ch(); } else switch(read_ch) { case 'u': y += read_movevalue(); break; case 'd': y -= read_movevalue(); break; case 'l': x -= read_movevalue(); break; case 'r': x += read_movevalue(); break; case 'h': next_ch(); h = 500; if (isdigit(read_ch)) h = read_integer(TRUE); flags |= hp_halfway; break; case 's': next_ch(); if (read_ch == 'l' || read_ch == 'r') { int s, x; int *a = (read_ch == 'l')? &slu : &sru; next_ch(); if (read_ch == 'u' || read_ch == 'd') { s = (read_ch == 'u')? +1 : -1; } else { error_moan(37, "u or d"); break; } next_ch(); if (!read_expect_integer(&x, TRUE, FALSE)) break; *a += s*x; } else error_moan(37, "\"slu\", \"sld\", \"sru\" or \"srd\""); break; default: if (!ending) { int sign; switch(read_ch) { case 'a': flags &= ~hp_below; sign = 1; goto ABSHP; case 'b': flags |= hp_below; sign = -1; ABSHP: y = 0; flags &= ~(hp_middle | hp_abs); next_ch(); if (isdigit(read_ch)) { flags |= hp_abs; y = sign * read_integer(TRUE); } break; case 'm': flags |= hp_below | hp_middle; next_ch(); break; case 'w': next_ch(); read_expect_integer(&width, TRUE, FALSE); break; default: error_moan(37, "\"u\", \"d\", \"l\", \"r\", \"a\", \"b\", \"m\", \"w\", \"slu\", \"sru\" or \"h\""); break; } } else error_moan(37, "\"u\", \"d\", \"l\", \"r\", \"su\" or \"h\""); break; } } if (stave_hairpinbegun) { b_hairpinstr *p = store_getitem(b_hairpin); p->opt = 0; if (ending) { p->flags = flags; p->x = x; p->y = y; p->su = stave_hairpinsru; p->h = h; } else p->flags = p->x = p->y = p->su = p->h = 0; } if (ending) stave_hairpinbegun = 0; else { b_hairpinstr *p = store_getitem(b_hairpin); p->opt = stave_hairpinbegun = type; p->flags = flags; p->x = x; p->y = y; p->su = slu; p->h = h; p->width = width; stave_hairpinsru = sru; stave_resetOK = FALSE; } } break; /* A slash must be followed by another, for a caesura */ case '/': next_ch(); if (read_ch != '/') error_moan(37, "\"/\""); else { (void)store_getitem(b_caesura); next_ch(); } break; /* Quotes introduce text */ case '\"': string_stavestring(FALSE); break; /* A colon can be a dotted bar or the end of a repeat. */ case ':': next_ch(); if (read_ch == ')') { (void)store_getitem(b_rrepeat); next_ch(); } else (void)store_getitem(b_dotbar); break; /* A semi-colon used to be a general separator, way back in early days. Later, it was used as a beam breaking character, but still kept as a separator. This meant that if a beam break was incorrectly placed, no warning was given. It is therefore no longer a general separator, unless the very old, undocumented OldBeamBreak option is turned on (don't know if anyone will every feed PMW files with that set, but you never know). */ case ';': if (!opt_oldbeambreak) error_moan(5, "Mis-placed semicolon (a beam break semicolon must " "immediately follow a beamable note)"); next_sigch(); break; /* Might as well give a similar error for a comma (which isn't old enough to be tied up with old beam breaks). */ case ',': error_moan(5, "Mis-placed comma (a beam break comma must " "immediately follow a beamable note)"); next_sigch(); break; /* A bracket can be the start of a repeat, or the start of a chord. We peek at the next character to make sure. */ case '(': if (*read_chptr == ':') { store_getitem(b_lrepeat); next_ch(); next_ch(); break; } /* Else fall through ... */ /* If all else fails, try to read a note */ default: read_note(); break; } } /* Special handling for omitempty bars. If there is nothing in the bar except an invisible or double bar specification, and/or if the barline style was specified, set the bar as empty, and set flags so that a prevbar block is created at the start of the next bar. */ if (stavehead->omitempty) { void *nextitem = store_nextitem(); bstr *p = bardatastart; read_prev_had_ibar = FALSE; read_prev_had_dbar = FALSE; read_prev_barlinestyle = stave_barlinestyle; while (p != nextitem) { int type = p->type; switch(type) { case b_Jump: p = (bstr *)(((b_Jumpstr *)p)->next); break; case b_ibar: read_prev_had_ibar = TRUE; break; case b_dbar: read_prev_had_dbar = TRUE; break; default: goto NORMALBAREND; } p = (bstr *)((uschar *)p + length_table[type]); } /* If control gets here, 'twas only ibar or dbar */ if (read_prev_had_ibar || read_prev_had_dbar || read_barlinestyle != stave_barlinestyle) { read_prev_barlinestyle = read_barlinestyle; bardatastart = nextitem; /* make empty */ } } NORMALBAREND: /* If nothing has been generated, reset the index to NULL. Otherwise, mark the end of the bar and, if required, check its length. Then terminate any incomplete beam and set the stems of any pending notes. */ if (bardatastart == store_nextitem()) { (stavehead->barindex)[stave_barnumber] = NULL; stave_barrepeatptr = NULL; /* for repeated nothing */ } else { b_Endstr *b = store_getitem(b_End); b->overbeam = stave_overbeam; b->barlinestyle = read_barlinestyle; /* Set stave_maxbarlength to the longest length encountered, allowing for [reset]s. */ if (stave_barlength > stave_maxbarlength) stave_maxbarlength = stave_barlength; /* Check length. If the bar contains tuplets of prime numbers greater than 13, there may be rounding errors because the length of a breve is not a multiple of, for example, 17. This can also happen with tuplets of other kinds that involve hemidemisemiquavers. In these cases we allow a small discrepancy. */ if (stave_checklength && stave_maxbarlength != 0) { int extra = stave_maxbarlength - stave_requiredbarlength; if (abs(extra) > TUPLET_ROUND) { format_movt = curmovt; error_moan(49, stave_barnumber, curstave, (extra > 0)? "long":"short", abs(extra)); } } /* Deal with incomplete beams and unchosen stems */ if (stave_beaming) read_setbeamstems(); mac_setstackedstems(stave_laststemup? nf_stemup : 0); } /* Grumble if unclosed plet */ if (stave_pletlen != 0) error_moan(83); /* Check for end of file and return FALSE at end of stave */ sigch(); read_endstave |= (read_ch == EOF); return !read_endstave; } /* End of read3.c */ pmw-4.27/src/settext.c0000644000222100022210000004767712247665016013030 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2013 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: March 2013 */ /* This file contains code for outputting text items */ #include "pmwhdr.h" #include "pagehdr.h" #include "outhdr.h" /************************************************* * Output vocal underlay extension * *************************************************/ /* If the font has no underline, do nothing. There's also a global flag that suppresses extenders. Arguments: x0 x coordinate of start of extension x1 x coordinate of end of extension y y coordinate of the extension fontsize the size of font Returns: nothing */ void out_extension(int x0, int x1, int y, int fontsize) { int i; int uwidth = font_stringwidth(US"_", font_rm, fontsize); int length = x1 - x0; int count, remain; uschar s[256]; if (!curmovt->underlayextenders || uwidth <= 0) return; count = length/uwidth; remain = length - count*uwidth; if (count <= 0) { if (length > (uwidth*3)/4) { count = 1; remain = 0; } else return; } y = out_ystave - ((y + curmovt->extenderlevel) * main_stavemagn)/1000; x0 += main_stavemagn; for (i = 0; i < count; i++) s[i] = '_'; s[count] = 0; ps_string(s, font_rm, fontsize, &x0, &y, FALSE); /* Deal with a final part-line */ if (remain >= uwidth/5) { x1 -= uwidth; ps_string(US"_", font_rm, fontsize, &x1, &y, FALSE); } } /************************************************* * Output vocal underlay hyphens * *************************************************/ /* This is very heuristic. If the width is very small, output nothing. If less than the threshold, output a single, centred hyphen. Otherwise output hyphens spaced at 1/3 of the threshold, centred in the space. Take care not to have spaces that are too small at the ends. Ensure that a continuation hyphen at the start of a line is always printed, moving it left if necessary. Arguments: x0 x coordinate of start of extension x1 x coordinate of end of extension y y coordinate of the extension fontsize the size of font contflag TRUE if continuing from the previous line Returns: nothing */ void out_hyphens(int x0, int x1, int y, int fontsize, BOOL contflag) { uschar *hyphen = curmovt->hyphenstring; int unit = curmovt->hyphenthreshold/3; int hwidth = string_width(hyphen, font_rm, fontsize); int width = x1 - x0; int minwidth = 800 + (hwidth - font_stringwidth(US"-", font_rm, fontsize)); DEBUG(("out_hyphens() start\n")); if (contflag) minwidth += 3200; if (width < minwidth) { if (!contflag) return; width = minwidth; x0 = x1 - width; } y = out_ystave - (y * main_stavemagn)/1000; /* Deal with the case when the width is less than the threshold */ if (width < curmovt->hyphenthreshold) { if (contflag) out_string(hyphen, font_rm, fontsize, x0, y, 0); if (!contflag || width > unit) { out_string(hyphen, font_rm, fontsize, (x0 + x1 - hwidth)/2, y, 0); } } /* Deal with widths greater than the threshold */ else { int i; int count = width/unit; /* count is the number of gaps */ if (width - count*unit < unit/2) count -= 2; else count--; if (width - count*unit > unit) unit += unit/(3*count); if (contflag) { if (width - count*unit > (3*unit)/2) count++; } else x0 += (width - count*unit - hwidth)/2; /* We have special code that generates a "widthshow" command to do the whole thing with one string. However, we can do this only if the hyphen string contains no escapes. One day, extend this to expand the escapes; for the moment, just do it if the hyphen string is a single minus. */ if (Ustrcmp(hyphen, "-") == 0) { int hylen = Ustrlen(hyphen); int swidth = font_stringwidth(US" ", font_rm, fontsize); uschar s[256]; uschar *pp = s; while (count-- >= 0) { Ustrcpy(pp, hyphen); pp += hylen; *pp++ = ' '; } *pp = 0; ps_wtext(s, font_rm, fontsize, x0, y, unit - hwidth - swidth); } /* Otherwise we have to output each hyphen individually */ else for (i = 0; i <= count; i++) { out_string(hyphen, font_rm, fontsize, x0, y, 0); x0 += unit; } } DEBUG(("out_hyphens() end\n")); } /************************************************* * Output repeating string * *************************************************/ /* This function fills up the space with repeat copies of the string from the htypestr. These are customized hyphen fillers, specified as extra strings for "underlay" or "overlay" that is in reality something else, such as a 8va marking. Arguments: x0 x coordinate of start of extension x1 x coordinate of end of extension y y coordinate of the extension contflag TRUE if continuing from the previous line eolflag TRUE if continuing on to the next line htype the number of the htypestr that has the relevant strings Returns: nothing */ void out_repeatstring(int x0, int x1, int y, BOOL contflag, BOOL eolflag, int htype) { htypestr *h = main_htypes; int width = x1 - x0; int count, scount, slen, swidth; int unscaled_fontsize, fontsize; uschar *s; uschar buff[256]; DEBUG(("out_repeatstring() start\n")); while (--htype > 0 && h != NULL) h = h->next; if (h == NULL) error_moan(91, out_bar, out_stave); /* Hard error */ unscaled_fontsize = ((curmovt->fontsizes)->fontsize_text)[h->size1]; fontsize = mac_muldiv(main_stavemagn, unscaled_fontsize, 1000); s = h->string1; slen = Ustrlen(s); swidth = string_width(s, h->font, fontsize); /* Deal with special string at continuation line start */ if (contflag && h->string2 != NULL) { int unscaled_fontsize2 = ((curmovt->fontsizes)->fontsize_text)[h->size2]; int fontsize2 = mac_muldiv(main_stavemagn, unscaled_fontsize2, 1000); int xw = string_width(h->string2, h->font, fontsize2); out_string(h->string2, h->font, fontsize2, x0, out_ystave - (y * main_stavemagn)/1000, 0); width -= xw; x0 += xw; } /* Allow for special terminating string (but not at eol) */ if (!eolflag && h->string3 != NULL) width -= string_width(h->string3, h->font, fontsize); count = width/swidth; scount = 255/slen; y = out_ystave - ((y + h->adjust) * main_stavemagn)/1000; while (count > 0) { uschar *p = buff; int nx0 = x0; int i; for (i = 0; i < scount; i++) { Ustrcpy(p, s); p += slen; nx0 += swidth; if (--count <= 0) break; } out_string(buff, h->font, fontsize, x0, y, 0); x0 = nx0; } if (!eolflag && h->string3 != NULL) out_string(h->string3, h->font, fontsize, x0, y, 0); DEBUG(("out_repeatstring() end\n")); } /************************************************* * Handle a text item * *************************************************/ /* This procedure is called after the note has been set up for printing, so that the max && min pitches etc. are known. It must be called before out_moff is reset! When text is at the end of a bar, "atbar" is true. Arguments: p the text item atbar TRUE if at end of a bar Returns: nothing */ void out_text(b_textstr *p, BOOL atbar) { uschar ss[256]; uschar *s = p->string; int flags = p->flags; BOOL above = (flags & text_above) != 0; BOOL endalign = (flags & text_endalign) != 0; BOOL postscript = (flags & text_ps) != 0; BOOL rehearse = (flags & text_rehearse) != 0; int six = 6*main_stavemagn; int x = n_x - out_Xadjustment; int y = above? 20000 : -10000; int unscaled_fontsize = ((curmovt->fontsizes)->fontsize_text)[p->size]; int fontsize = mac_muldiv(main_stavemagn, unscaled_fontsize, 1000); int *matrix = rehearse? (curmovt->fontsizes)->fontmatrix_rehearse : ((curmovt->fontsizes)->fontmatrix_text)[p->size]; DEBUG(("out_text()%s: %s\n", ((flags & text_ul) != 0)? " underlay" :"", s)); /* If the "halfway" value is set, adjust the x coordinate if there is a note that follows in the bar. */ if (out_textX != NULL && out_textX->halfway != 0) { if (out_moff < out_poslast->moff) x += (endalign? 0 : ((flags & text_centre) != 0)? six/2 : six) + mac_muldiv(out_barx + out_findXoffset(out_moff + n_length) - n_x - six, out_textX->halfway, 1000); } /* If font is transformed, set the matrix */ if (matrix != NULL) memcpy(font_transform, matrix, 4*sizeof(int)); /* {Und,Ov}erlay text is centred. If it ends in '=' the position is remembered for starting the extender; if it ends in '-' the position is remembered for starting the row of hyphens. Note that an underlay string is represented as a pointer and a count, not as a C string, because the pointer may point into the longer, original input string. If an underlay string consists solely of '=' and an extender is outstanding, an extender is drawn to the current position and the start extender position is updated. If we are at the start of a line (indicated by a zero xstart value), draw the line at the current level, not the saved one. Note that # characters in the underlay string are converted to spaces. */ if ((flags & text_ul) != 0) { int i, j; uschar *pp, *qq, *cc; ulaystr **uu = &bar_cont->ulay; ulaystr *u = *uu; /* Find pending extension or hyphen data */ while (u != NULL && u->level != p->ulevel) { uu = &u->next; u = *uu; } /* Compute vertical level for this syllable */ y = ((flags & text_above) == 0)? out_sysblock->ulevel[out_stave] - p->ulevel * curmovt->underlaydepth : out_sysblock->olevel[out_stave] + (p->ulevel - olay_offset) * curmovt->overlaydepth; /* Deal with underlay extension line. There should always be an extension block, but we check, just in case. */ if (s[0] == '=' && p->ulen == 1) { if (u != NULL && u->type == '=') { int xx, yy; if (u->x == 0) { xx = out_sysblock->firstnoteposition + out_sysblock->xjustify - 4000; yy = y; } else { xx = u->x; yy = u->y; } out_extension(xx, x + 5*main_stavemagn, yy, fontsize); if (x > u->x) u->x = x; /* Set up for next part */ u->y = yy; } return; } /* Not an extension line - there is text to be output. Copy it into a working string, turning # characters into spaces, and stopping at the character '^', which indicates the end of the text to be centred, or the start of it, if there are two '^' characters in the string. In the latter case, find the length of the left hang, set the start of the centering bit, and read to the next '^'. However, don't mess with characters that are part of an escape sequence. */ pp = s; cc = qq = ss; i = 0; for (j = 0; j < 2; j++) { int k; /* Search for next '^' in string */ for (; i < p->ulen && *pp != '^'; i++) { if (*pp == '\\') { int dummy1, dummy2, len; uschar *rr = pp; uschar dummy3[80]; pp = string_escape(pp+1, dummy3, &dummy1, &dummy2); len = pp - rr; Ustrncpy(qq, rr, len); qq += len; i += len - 1; } else if (*pp == '#') { *qq++ = ' '; pp++; } else *qq++ = *pp++; } *qq = 0; /* If hit end of string or the second '^', break */ if (i >= p->ulen || j == 1) break; /* See if there's another '^' in the string; if not, break */ for (k = i+1; k < p->ulen; k++) if (s[k] == '^') break; if (k >= p->ulen) break; /* Left shift by the left hand width, adjust the start of the centred string, and continue on to the second '^'. */ x -= string_width(ss, p->font, fontsize); cc = qq; pp++; i++; } /* There are two underlay styles. In style 0, all syllables are centred, with ^ indicating the end of the centred text. In style 1, syllables that extend over more than one note are left-justified, unless they contain ^, which indicates centring. */ if (curmovt->underlaystyle == 0 || (*pp != '=' && (*pp != '-' || pp[1] != '='))) { int xorig = x; x -= string_width(cc, p->font, fontsize)/2; /* We have calculated a centring position for the underlay string, based on the normal position, which is the left-hand edge of the note. If in fact there has been no change to the position, (i.e. the centred part of the string has zero width), leave the position as it is, for left-alignment. If there has been a change, however, we must add 3 points to make the centring relative to the middle of the notehead. However, if this is a grace note in default format, always left-align. */ if (x != xorig && (n_length != 0 || curmovt->gracestyle != 0)) x += 3*main_stavemagn; /* Copy the rest of the string if stopped at '^'; else leave pp pointing at the following character. */ if (*pp == '^') { pp++; for (i++; i < p->ulen; i++) { if (*pp == '\\') { int dummy1, dummy2, len; uschar *rr = pp; uschar dummy3[80]; pp = string_escape(pp+1, dummy3, &dummy1, &dummy2); len = pp - rr; Ustrncpy(qq, rr, len); qq += len; i += len - 1; } else if (*pp == '#') { *qq++ = ' '; pp++; } else *qq++ = *pp++; } *qq = 0; } } /* Deal with printing a row of hyphens up to this syllable. If continuing at the start of a new line, use the current level rather than the saved level. Remember to take note of any leading spaces at the start of the current text. */ if (u != NULL && u->type == '-') { BOOL contflag; int x1 = x; int xx, yy; if (ss[0] == ' ') { int k; uschar spaces[80]; for (k = 0; ss[k] == ' '; k++) spaces[k] = ss[k]; spaces[k] = 0; x1 += font_stringwidth(spaces, p->font, fontsize); } if (u->x == 0) { xx = out_sysblock->firstnoteposition + out_sysblock->xjustify - 4000; yy = y + p-> y; contflag = TRUE; } else { xx = u->x; yy = u->y; contflag = FALSE; } if (u->htype == 0) out_hyphens(xx, x1 + p->x, yy, fontsize, contflag); else out_repeatstring(xx, x1 + p->x, yy, contflag, FALSE, u->htype); } /* Free up the hyphen or extender block. Extender blocks live till the next non "=" syllable, but are not drawn that far. */ if (u != NULL) { *uu = u->next; store_free(u); } /* Set up a new hyphen or extender block if required. We need to find the end of the current syllable, excluding any trailing spaces. There is no harm in just removing the trailing spaces now - if they are not printed, it won't be visible! */ if (*pp == '=' || *pp == '-') { ulaystr *u = store_Xget(sizeof(ulaystr)); u->next = bar_cont->ulay; bar_cont->ulay = u; while (qq > ss && qq[-1] == ' ') qq--; /* Find first trailing space */ *qq = 0; /* Terminate the string there */ /* Set up the data values */ u->x = x + p->x + string_width(ss, p->font, fontsize); u->y = y + p->y; u->type = *pp; u->level = p->ulevel; u->htype = p->htype; } /* The string to be printed has been built in ss */ s = ss; } /* Deal with not underlay. Adjust the x position if end or bar alignment is required, and adjust level according to the pitch of the just printed note/chord, if any, for the first text for any given note. Otherwise, the position is above or below the previous. Non-underlay text is permitted to be rotated. */ else { BOOL baralign = (flags & text_baralign) != 0; BOOL timealign = (flags & text_timealign) != 0; BOOL startbar = baralign || timealign; if (baralign) x = out_startlinebar? (out_sysblock->startxposition + out_sysblock->xjustify) : out_lastbarlinex; /* Time signature alignment. If not found, use the first musical event in the bar. */ else if (timealign) { if (out_startlinebar && mac_anystave(out_sysblock->showtimes)) x = out_sysblock->timexposition + out_sysblock->xjustify; /* In mid-line, or if no stave is printing a time signature, search for an appropriate position, defaulting to the first thing in the bar that can follow a time signature. There must be something! */ else { posstr *p = out_postable; while (p < out_poslast) /* Just for safety */ { if (p->moff >= posx_timefirst) { x = out_barx + p->xoff; break; } p++; } } } /* Handle /e and /c */ if (endalign) x += ((atbar || startbar)? 1000 : six) - string_width(s, p->font, fontsize); else if ((flags & text_centre) != 0) x += ((atbar || startbar)? 500 : six/2) - string_width(s, p->font, fontsize)/2; /* Deal with rotation */ if (out_textX != NULL && out_textX->rotate != 0) font_rotate(out_textX->rotate); /* At the bar end, we adjust as for the last note or rest if end-aligned, because usually such text sticks back as far as the last note. */ if (above) /* text above */ { if (out_textnextabove) y = out_textnextabove; else if (!atbar || endalign) { int pt = misc_ybound(FALSE, n_nexttie, TRUE, TRUE); /* ties going out */ int ppt = misc_ybound(FALSE, n_prevtie, TRUE, TRUE); /* ties coming in */ if (ppt > pt) pt = ppt; if (pt + 2000 > y) y = pt + 2000; } /* Deal with "above at overlay level" */ if ((flags & text_atulevel) != 0) { y = out_sysblock->olevel[out_stave]; } /* Deal with text at absolute position above the stave */ else if ((flags & text_absolute) != 0) y = 16000; /* Save for repeated text */ if (!postscript) out_textnextabove = y + p->y + unscaled_fontsize; } else /* text below */ { if (out_textnextbelow) y = out_textnextbelow; else if (!atbar || endalign) { int pb = misc_ybound(TRUE, n_nexttie, TRUE, TRUE); int ppb = misc_ybound(TRUE, n_prevtie, TRUE, TRUE); if (ppb < pb) pb = ppb; if (pb - fontsize + 1000 < y) y = pb - fontsize + 1000; } /* Deal with "middle" text */ if ((flags & text_middle) != 0 && out_stave < out_laststave) { int my; int gap = out_sysblock->stavespacing[out_stave]; int st = out_stave; while (gap == 0 && ++st < out_laststave) if (mac_teststave(out_sysblock->notsuspend, st)) gap = out_sysblock->stavespacing[st]; my = - (gap/2 - 6000); if (my < y) y = my; } /* Deal with "below at underlay level" */ else if ((flags & text_atulevel) != 0) y = out_sysblock->ulevel[out_stave]; /* Deal with text at absolute position below the stave */ else if ((flags & text_absolute) != 0) y = 0; /* Save value for repeated text */ if (!postscript) out_textnextbelow = y + p->y - unscaled_fontsize; } } /* Parameters are now set up -- print, but omit null strings (to keep the PostScript smaller). */ if (*s != 0) { DEBUG(("string: %s\n", s)); /* Deal with rehearsal letters */ if (rehearse) { int style = curmovt->rehearsalstyle; int yextra = (style == text_box)? 2000 : (style == text_ring)? 4000 : 0; if (out_moff == 0) x = out_startlinebar? (out_sysblock->firstnoteposition + out_sysblock->xjustify) : out_lastbarlinex; out_string(s, p->font, mac_muldiv(main_stavemagn, (curmovt->fontsizes)->fontsize_rehearse, 1000), x + p->x, out_ystave - ((y + yextra + p->y)*main_stavemagn)/1000, style); } /* Deal with included PostScript text */ else if (postscript) ps_pstext(s, x + p->x, out_ystave - (p->y*main_stavemagn)/1000); /* Deal with normal text */ else { if ((flags & (text_box | text_ring)) != 0) y += (above? 2 : (-2))*main_stavemagn; out_string(s, p->font, fontsize, x + p->x, out_ystave - ((y + p->y)*main_stavemagn)/1000, flags & (text_box | text_ring)); } } /* Reset font transformation */ font_reset(); DEBUG(("out_text() end\n", s)); } /* End of settext.c */ pmw-4.27/src/rdargs.h0000644000222100022210000000063012247665016012571 0ustar ph10ph10/************************************************* * Command Line Decoding Routine (rdargs) * *************************************************/ /* Header for rdargs routine */ typedef struct { int presence; int number; char *text; } arg_result; enum { arg_present_not, arg_present_unkeyed, arg_present_keyed }; extern int rdargs(int, char **, char *, arg_result *); /* End of rdargs.h */ pmw-4.27/src/store.c0000644000222100022210000002351312247665016012443 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2012 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: March 2012 */ /* Store Management Routines */ #include "pmwhdr.h" /* If this is defined, every staff item is in a separate block, testing the code for jumping between blocks. */ /* #define DEBUGJUMP 1 */ /* Store is taken from the system in blocks whose minimum size is parameterized here. Then it is carved up into smaller blocks, as needed. It may be that Unix-like systems could do this efficiently enough with malloc/free these days, but this approach dates back to times when that was a performance hit. */ #define store_allocation_unit 32*1024 /* Musical data is packed into blocks whose size is parameterized here. */ #define store_item_unit 8*1000 /* Free queue entries contain a pointer to the next entry and their length, in a storestr at the start. Allocated blocks also have a storestr at their start, but only the length field is set. We used just to have an int at the start, but this doesn't work on 64-bit systems, because we need to return correctly aligned blocks. */ typedef struct storestr { struct storestr *next; unsigned int length; } storestr; /************************************************* * Static data * *************************************************/ #ifdef trace static FILE *tracefile = NULL; #endif /* An anchoring free queue block - the queue is searched from the next block on the chain. */ static storestr store_freequeue = { NULL, sizeof(storestr) }; /* An anchoring item buffer, just large enough to hold a b_Jump, which will be inserted when the first real item is required. */ static b_Jumpstr store_bstrbase; static bstr *store_itemptr = (bstr *)(&store_bstrbase); /* Next item */ static int store_itemspace = ROUND(sizeof(b_Jumpstr)); /* Space left */ /************************************************* * Trace logging * *************************************************/ /* This function is used for debugging memory handling by tracing gets and frees etc. Arguments: s a string to print a an address to print b a number to print Returns: nothing */ #ifdef trace static void do_trace(char *s, void *a, int b) { if (tracefile == NULL) tracefile = fopen("storetrace", "w"); fprintf(tracefile, "%s %8p %8d\n", s, a, b); } #endif /************************************************* * Free queue sanity check * *************************************************/ /* This function is used for debugging memory handling by checking the sanity of the free queue. The check is just that the chaining is valid. Arguments: none Returns: nothing */ #ifdef sanity static void store_freequeuecheck(void) { storestr *p = store_freequeue.next; while (p != NULL) p = p->next; } #endif /************************************************* * Get block * *************************************************/ /* This function gets a new block of memory, searching the free queue first for something that is big enough. If not, it gets a new large block, and starts to carve it up. If it can't get any more store, it returns NULL. Argument: the size required, in bytes Returns: pointer to usable store (after an initial storestr), or NULL */ void * store_get(int bytesize) { int newlength; storestr *newblock; storestr *previous = &store_freequeue; storestr *p = store_freequeue.next; /* Add space for one storestr to hold the length (and a pointer when the block is freed), then round up to a multiple of storestrs. */ bytesize = (bytesize + 2*sizeof(storestr) - 1) & (-(int)sizeof(storestr)); #ifdef sanity store_freequeuecheck(); #endif /* Keep statistics */ main_storetotal += bytesize; /* Search free queue for a block that is big enough */ while(p != NULL) { if (bytesize <= p->length) { /* found suitable block */ int leftover = p->length - bytesize; if (leftover == 0) { /* block used completely */ previous->next = p->next; } else { /* use bottom of block */ storestr *remains = p + bytesize/sizeof(storestr); remains->length = leftover; previous->next = remains; remains->next = p->next; p->length = bytesize; } #ifdef sanity store_freequeuecheck(); #endif #ifdef trace do_trace("get ", p, bytesize); #endif return (void *)(p + 1); /* leave leading stavestr "hidden" */ } else { /* try next block */ previous = p; p = p->next; } } /* No block long enough has been found. Get a new big block and recurse. */ main_storetotal -= bytesize; /* correction */ newlength = (bytesize > store_allocation_unit)? bytesize : store_allocation_unit; newblock = malloc(newlength); if (newblock == NULL) return NULL; #ifdef trace do_trace("GET ", newblock, newlength); #endif newblock->length = newlength; /* Set block length */ main_storetotal += newlength; /* Pretend it's allocated */ store_free(newblock + 1); /* Add to free queue */ return store_get(bytesize-sizeof(storestr)); /* Try again */ } /************************************************* * Get store, failing if none available * *************************************************/ /* This function gives a hard error if no store is available. In these days of gigabyte memories, failure is a remote possibility. Argument: size of block required Returns: pointer to useable portion of the block */ void * store_Xget(int bytesize) { void *yield = store_get(bytesize); if (yield == NULL) error_moan(1, bytesize); /* Hard */ return yield; } /************************************************* * Copy store, failing if no store * *************************************************/ /* This function makes a copy of a block of store. Argument: the block to copy ) in both cases, the usable pointers Returns: the new block ) */ void * store_copy(void *p) { storestr *pp = (storestr *)p - 1; unsigned int length = pp->length - sizeof(storestr); void *yield = store_Xget(length); memcpy(yield, p, length); return yield; } /************************************************* * Copy string, failing if no store * *************************************************/ /* This function copies a C string into a new block of store. Argument: the string Returns: pointer to the copy */ uschar * store_copystring(uschar *s) { uschar *yield = store_Xget(Ustrlen(s)+1); Ustrcpy(yield, s); return yield; } /************************************************* * Yield address of next staff item * *************************************************/ /* This is used to initialize the bar index and on other occasions when we want to know what the next item address will be without actually setting the item up. There always is a next item available. Arguments: none Returns: pointer to the next item */ void * store_nextitem(void) { return store_itemptr; } /************************************************* * Get a staff item * *************************************************/ /* Staff items come from the staff item block, packed in together. When the block is used up, we put in an adjustment item to the next one. There is always one next item available. The size depends on the type. Argument: the item type Returns: pointer to the next item, with type initialized */ void *store_getitem(int type) { void *yield; int size = length_table[type]; #ifndef DEBUGJUMP if (store_itemspace < size + length_table[b_Jump]) #endif { b_Jumpstr *j = (b_Jumpstr *)store_itemptr; bstr *newbuff = store_Xget(store_item_unit); j->type = b_Jump; j->next = (bstr *)((uschar *)newbuff - length_table[b_Jump]); store_itemptr = newbuff; store_itemspace = store_item_unit; main_storestaves += length_table[b_Jump]; } store_itemptr->type = type; yield = (void *)store_itemptr; store_itemptr = (bstr *)((uschar *)store_itemptr + size); store_itemspace -= size; main_storestaves += size; return yield; } /************************************************* * Free a chunk of store * *************************************************/ /* The length is in the storestr precedes the address that the client was given. The freed block is put onto the free chain, possibly amalgamated with a block that is already there. Argument: the client (usable) address Returns: nothing */ void store_free(void *address) { storestr *previous = &store_freequeue; storestr *this = previous->next; storestr *start = ((storestr *)address) - 1; storestr *end = start + start->length/sizeof(storestr); main_storetotal -= start->length; #ifdef sanity store_freequeuecheck(); #endif #ifdef trace do_trace("free", start, start->length); #endif /* Find where to insert */ while (this != NULL) { if (start < this) break; previous = this; this = previous->next; } /* Insert */ previous->next = start; start->next = this; /* Check for overlap with next */ if (end > this && this != NULL) error_moan(2, start, start->length, this); /* Hard */ /* Check for contiguity with next */ if (end == this) { start->next = this->next; start->length += this->length; } /* Check for overlap/contiguity with previous */ if (previous != &store_freequeue) { storestr *prevend = previous + previous->length/sizeof(storestr); if (prevend > start) error_moan(3, previous, previous->length, start); /* Hard */ if (prevend == start) { previous->next = start->next; previous->length += start->length; } } #ifdef sanity store_freequeuecheck(); #endif } /* End of store.c */ pmw-4.27/src/setwarn.c0000644000222100022210000001132012247665016012763 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2013 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: March 2013 */ /* This file contains code for outputting warning key/time signatures, in a pseudo-bar at the end of a line. */ #include "pmwhdr.h" #include "outhdr.h" /************************************************* * Output warning bar * *************************************************/ /* We have to take care that multiple items on different sized staves line up. This is somewhat messy, but it's easier to isolate the whole thing here in one function than to spread it about with zillions of conditionals in the normal setting code. Arguments: none Returns: nothing */ void out_warnbar(void) { BOOL done= FALSE; int x = out_barx; int count; /* Loop for each column of signatures */ for (count = 0; !done; count++) { int maxwidth = 0; int ystave = out_yposition; int stave; /* Done remains TRUE if we don't actually print anything */ done = TRUE; for (stave = 1; stave <= out_laststave; stave++) { if (mac_teststave2(curmovt->staves, out_sysblock->notsuspend, stave)) { bstr *p = ((curmovt->stavetable)[stave])->barindex[out_bar]; if (p != NULL) { int type = p->type; int thiscount = count; mac_setstavesize(stave); while (type != b_End) { switch(type) { case b_Jump: p = (bstr *)(((b_Jumpstr *)p)->next); break; case b_note: /* Give up when hit a note */ goto ENDSTAVE; break; case b_time: if (thiscount-- <= 0) { b_timestr *t = (b_timestr *)p; if (t->warn) { int xx = x; int spacing = (count == 0)? curmovt->timespacing : curmovt->startline->timespace; int width = spacing + mac_muldiv(main_stavemagn, misc_timewidth(t->time) + 1000, 1000); if (width > maxwidth) maxwidth = width; if (count == 0) xx -= 2000; out_writetime(xx + spacing, ystave, t->time); done = FALSE; } goto ENDSTAVE; } break; /* If the key signature is C major (= 2), ignore it completely. This occurs only when there has been a change to C major from some other key, and it follows the cancellation signature. Leaving it in messes up the spacing for any subsequent time signature. */ case b_key: if (((b_keystr *)p)->key != 2 && thiscount-- <= 0) { b_keystr *k = (b_keystr *)p; if (k->warn) { int xx = x; int spacing = curmovt->keyspacing; int width = spacing + mac_muldiv(main_stavemagn, misc_keywidth(k->key, out_cont[stave].clef) + 1000, 1000); if (width > maxwidth) maxwidth = width; if (curmovt->keydoublebar && !out_lastbarwide) { int i; int ybarend = ystave; BOOL another = (out_sysblock->notsuspend[stave >>5] & (-main_bit[stave & 0x1f])) > main_bit[stave & 0x1f]; if (!another) for (i = (stave >> 5) + 1; i < stave_bitvec_size; i++) if (out_sysblock->notsuspend[i] != 0) { another = TRUE; break; } if (another && mac_testNstave(curmovt->breakbarlines, stave)) ybarend += out_sysblock->stavespacing[stave]; ps_barline(out_lastbarlinex, ystave, ybarend, bar_double); } else xx -= 1000; out_writekey(xx + spacing, ystave, out_cont[stave].clef, k->key); } done = FALSE; goto ENDSTAVE; } break; } p = (bstr *)((uschar *)p + length_table[type]); type = p->type; } } ENDSTAVE: ystave += out_sysblock->stavespacing[stave]; } } x += maxwidth; } /* Set a "last bar line" value as it is used for the stave length */ out_lastbarlinex = (out_sysblock->flags & sysblock_stretch)? curmovt->linelength : x + 2000; } /* End of setwarn.c */ pmw-4.27/src/init.c0000644000222100022210000001272612247665016012256 0ustar ph10ph10/************************************************* * The PMW Music Typesetter - 3rd incarnation * *************************************************/ /* Copyright (c) Philip Hazel, 1991 - 2009 */ /* Written by Philip Hazel, starting November 1991 */ /* This file last modified: April 2009 */ /* This file contains initializing and other housekeeping functions. */ #include "rdargs.h" #include "pmwhdr.h" #include "outhdr.h" /* NO_PMWRC is set when --disable-pmwrc is given to "configure". */ #ifndef NO_PMWRC #include #include #endif /************************************************* * Read a MIDI translation file * *************************************************/ /* These files are short: reading them twice in order to get the correct size doesn't take much time and saves much hassle. The files contain translation between names and MIDI voice numbers or names and MIDI "pitches" for untuned percussion. Arguments: anchor where to build filename the file name Returns: nothing; if the file fails to open, no action is taken */ void read_midi_translation(uschar **anchor, uschar *filename) { FILE *f = Ufopen(filename, "r"); int length = 0; uschar *p; uschar line[60]; if (f == NULL) return; while (Ufgets(line, 60, f) != NULL) { line[Ustrlen(line)-1] = 0; if (!isdigit(line[0])) continue; /* Ignore line not starting with a digit */ length += Ustrlen(line+4) + 2; } if (length == 0) return; /* No usable text in the file */ /* We store the file in one long byte string. Each name is followed by a zero byte and then a binary byte containing its number. */ *anchor = malloc(length+1); p = *anchor; rewind(f); while (Ufgets(line, 60, f) != NULL) { line[Ustrlen(line)-1] = 0; if (!isdigit(line[0])) continue; Ustrcpy(p, line+4); p += Ustrlen(p) + 1; *p++ = Uatoi(line); } /* An empty name marks the end of the list */ *p = 0; fclose(f); } /************************************************* * Local initialization * *************************************************/ /* This is called before argument decoding is done. It is passed the argument list, and it has the opportunity of modifying that list. Unless configured not to include this code, we search for a .pmwrc file and stuff it on the front of the arguments. Arguments: argc argc from main() argv argv from main() newargvptr where to return the possibly modified argv arg_pattern the argument decoding pattern, to check for validity Returns: new argc value */ int init_command(int argc, char **argv, char ***newargvptr, char *arg_pattern) { char **nargv; int ap = 0; int nargc = 0; *newargvptr = nargv = malloc(100 * sizeof(char *)); nargv[nargc++] = argv[ap++]; /* Program name */ /* This will need to be cut out on non-Unix-like systems */ #ifndef NO_PMWRC if (argv[1] != NULL && strcmp(argv[1], "-norc") == 0) { ap++; /* Just skip over -norc if it's first; don't read the file */ } else { struct passwd *pw = getpwuid(geteuid()); if (pw != NULL) { uschar buff[256]; struct stat statbuf; Ustrcpy(buff, pw->pw_dir); Ustrcat(buff, "/.pmwrc"); if (stat(CS buff, &statbuf) == 0) { arg_result results[64]; FILE *f = Ufopen(buff, "r"); /* Failure to open a file that statted OK is a hard error */ if (f == NULL) error_moan(41, buff, strerror(errno)); /* Add items from the file */ while (fgets(CS buff, sizeof(buff), f) != NULL) { uschar *p = buff; while (isspace(*p)) p++; while (*p != 0) { uschar *pp = p; while (*p != 0 && !isspace(*p)) p++; nargv[nargc] = malloc(p - pp + 1); Ustrncpy(nargv[nargc], pp, p - pp); nargv[nargc++][p-pp] = 0; while (isspace(*p)) p++; } } fclose(f); /* Check that what we have obtained from the .pmwrc file is a complete set of options; we don't want to end up with one that expects a data value, because that would subvert the argument on the real command line, possibly doing damage. */ if (rdargs(nargc, nargv, arg_pattern, results) != 0) error_moan(124, results[0].text, results[1].text); /* Hard */ } /* stat() problem other than file not found is serious */ else if (errno != ENOENT) error_moan(41, buff, strerror(errno)); /* Hard */ } } #endif /* Copy the remaining stuff from the original command line */ while (argv[ap] != NULL) nargv[nargc++] = argv[ap++]; nargv[nargc] = NULL; return nargc; } /************************************************* * Relativize a file name * *************************************************/ /* The name must be in a buffer that is long enough to take the additional path if necessary, because it is modified in place. If the name does not start with '/', we make it relative to the main input file name. Argument: the name under consideration Returns: nothing */ void sys_relativize(uschar *name) { uschar temp[256]; int i; DEBUG(("sys_relativize(%s) entered\n", name)); if (name[0] == '/' || main_filename == NULL) return; i = Ustrlen(main_filename); Ustrcpy(temp, name); while (i > 0 && main_filename[--i] != '/'); if (i != 0) i++; Ustrncpy(name, main_filename, i); Ustrcpy(name+i, temp); DEBUG(("relativized to %s\n", name)); } /* End of init.c */ pmw-4.27/src/Makefile0000644000222100022210000000614212247665016012602 0ustar ph10ph10# Makefile for PMW on Unix-like systems # The toplevel Makefile passes in configured settings FONTMETRICS=$(DATADIR)/fontmetrics PSHEADER=$(DATADIR)/PSheader MIDIVOICES=$(DATADIR)/MIDIvoices MIDIPERC=$(DATADIR)/MIDIperc FONTDIR=$(DATADIR)/psfonts CC=$CC) CFLAGS=$(CFLAGS) COMP = $(CC) -DFONTDIR='"$(FONTDIR)"' -DFONTMETRICS='"$(FONTMETRICS)"' -DPSHEADER='"$(PSHEADER)"' -DMIDIVOICES='"$(MIDIVOICES)"' -DMIDIPERC='"$(MIDIPERC)"' $(NO_PMWRC) $(CFLAGS) -I. -c LINK = $(CC) $(CFLAGS) HDRS = barhdr.h outhdr.h pagehdr.h pmwhdr.h poshdr.h rdargs.h readhdr.h DEPS = $(HDRS) Makefile ../Makefile OBJ = debug.o error.o font.o format.o globals.o init.o main.o \ midi.o misc.o out1.o out2.o pagesubs.o paginate.o possubs.o \ postable.o preprocess.o print.o ps.o rdargs.o \ read1.o read2.o read3.o read4.o read5.o read6.o \ setbar.o setbeam.o setdraw.o sethairpin.o setnbar.o \ setnote.o setother.o setslur.o settext.o settie.o \ setwarn.o shownote.o store.o string.o \ tables.o transpose.o tree.o version.o # The normal targets in this Makefile are not called directly, but should be # called from the top-level Makefile. To make it easy when developing from # within the source directory, a call with no target gets passed back up to # the outer Makefile. intcall:; cd ..; $(MAKE); # This is the main target all: pmw pmw: $(OBJ) @echo "$(CC) -o pmw" $(FE)$(LINK) $(OBJ) -o pmw -lm @echo ">>> pmw binary built" clean:; rm -f *.o pmw .SUFFIXES: .o .c .c.o:; @echo "$(CC) $*.c" $(FE)$(COMP) $*.c debug.o: $(DEPS) debug.c draw.o: $(DEPS) draw.c rdargs.o: $(DEPS) rdargs.c error.o: $(DEPS) error.c font.o: $(DEPS) font.c format.o: $(DEPS) format.c globals.o: $(DEPS) globals.c init.o: $(DEPS) init.c main.o: $(DEPS) main.c midi.o: $(DEPS) midi.c misc.o: $(DEPS) misc.c out1.o: $(DEPS) out1.c out2.o: $(DEPS) out2.c pagesubs.o: $(DEPS) pagesubs.c paginate.o: $(DEPS) paginate.c possubs.o: $(DEPS) possubs.c postable.o: $(DEPS) postable.c preprocess.o: $(DEPS) preprocess.c print.o: $(DEPS) print.c ps.o: $(DEPS) ps.c read1.o: $(DEPS) read1.c read2.o: $(DEPS) read2.c read3.o: $(DEPS) read3.c read4.o: $(DEPS) read4.c read5.o: $(DEPS) read5.c read6.o: $(DEPS) read6.c render.o: $(DEPS) render.c screen.o: $(DEPS) screen.c scrncache.o: $(DEPS) scrncache.c setbar.o: $(DEPS) setbar.c setbeam.o: $(DEPS) setbeam.c setdraw.o: $(DEPS) setdraw.c sethairpin.o: $(DEPS) sethairpin.c setnbar.o: $(DEPS) setnbar.c setnote.o: $(DEPS) setnote.c setother.o: $(DEPS) setother.c settext.o: $(DEPS) settext.c settie.o: $(DEPS) settie.c setslur.o: $(DEPS) setslur.c setwarn.o: $(DEPS) setwarn.c shownote.o: $(DEPS) shownote.c store.o: $(DEPS) store.c string.o: $(DEPS) string.c tables.o: $(DEPS) tables.c transpose.o: $(DEPS) transpose.c tree.o: $(DEPS) tree.c version.o: $(DEPS) version.c # End of Makefile for PMW pmw-4.27/testdist/0000755000222100022210000000000012247665016012213 5ustar ph10ph10pmw-4.27/testdist/RunTests0000755000222100022210000000152412247665016013732 0ustar ph10ph10#! /bin/sh /bin/rm -f test.* /bin/rm -f test-* rc=0 for x in infiles/* ; do file=`basename $x` ../src/pmw -F ../fontmetrics -H ../PSheader -MF ../psfonts \ -includefont -o test.ps infiles/$file # These two commands cause warnings on Linux because you are supposed to # use "-n +4" instead, but -n isn't supported by Solaris' "tail". # tail +4 test.ps >test.ps.3 # tail +4 outfiles/$file.ps >test.out.3 # So we do it this rather contorted way instead (head -n 3 >/dev/null; cat >test.ps.3) /dev/null; cat >test.out.3) test.diff if [ $? != 0 ] ; then mv test.diff test-$file.diff echo "*** $file test failed - see test-$file.diff ***" rc=1 else echo $file test succeeded fi done /bin/rm test.* exit $rc # End pmw-4.27/testdist/infiles/0000755000222100022210000000000012247665016013644 5ustar ph10ph10pmw-4.27/testdist/infiles/Test060000644000222100022210000003461312247665016014663 0ustar ph10ph10@ Boyce - Symphony 1 @ Notated by Philip Hazel, September 1994. *define ff "\bi\ff" *define f "\bi\f" *define mf "\it\m\bi\f\" *define mp "\it\m\bi\p\" *define p "\bi\p" *define pp "\bi\pp" *define ppp "\bi\ppp" *if staff 1 *define instr Violin I notespacing *0.9 *fi *if staves 1-2 *define instr Violins *fi *if staff 2 *define instr Violin II *fi *if staff 3 *define instr Viola notespacing *1.3 *fi *if staff 4 *define instr Cello/Bass notespacing *1.25 *fi *if score Pageheading "" -30 Pageheading "\mf\{{{{{{\rm\\pe\ || \po\\mf\{{{{{" 20 footing "||Computer typesetting by Philip Hazel" barnumbers boxed line bottommargin 10 *else magnification 1.4 linelength 520 barnumbers boxed line 8.5 heading 12 "&instr" 0 Pageheading "" -30 Pageheading "&instr|[\p\]" 20 footing "" 8 footing "||Computer typesetting by Philip Hazel" *fi heading 18 "|Symphony 1" 30 heading 12 "||William Boyce (1711\--1779)" 20 heading 12 "|I" 30 Key B$ Time 4/4 Repeatstyle 4 tripletfont 9 italic copyzero 1/6 *if harpsichord midichannel 1 "harpsichord" 1-4 *fi *if piano midichannel 1 "piano" 1-4 *fi *if brass midichannel 1 "trumpet" 1-2 midichannel 2 "trombone" 3 midichannel 3 "french horn" 4 *fi [stave 0] "\bf\Allegro"/a/ts [19] Q! | ["A"] [11] Q! | [endstave] [stave 1 treble 1] *if score [name "Violin I"/c] *fi &f d' c'-b=a=; b=a=b-; r-f- | @1 g=a=b=a=; a=b=c'=b=; b=a=b-; r-f'- | @2 g-g'-; a=b=c'=b=; b=c'=d'=c'=; c'=d'=e'=d'= | @3 d'=f'=b'-; e'=d'=c'=b=; a=g=f-; r- f'-\.\ | @4 f' f-\.\f'-\.\; f' c'-\.\f'-\.\ | @5 f'=g'=f'=e'=; d'=c'=d'=b=; a=b=a=g=; f-; f'-_ | @6 f'=g'=f'=e'=; d'-g'-_; g'=a'=g'=f'=; %e'-a'-_ | @7 a'=b'=a'=g'=; f'-b'-\.\; b'-b-_; b=d'=c'=b= | @8 a' g'-f'=%e'=; f'=e'=f'-; r-c'- | @9 d'=%e'=f'=e'=; e'=f'=g'=f'=; f'=e'=f'-; r- c''- | @10 d'-d''-; %e'=f'=g'=f'=; f'=g'=a'=g'=; g'=b=a=g= | @11 a-g=f=; gfr :)| @12 &p f'-.\tr\%e'=-f'=-; $a'-\.\c'-\.\; %b-.\tr\c'=; d'=b=c'=d'= | @13 c'=%b=c'=g'=; f'=e'=f'=d'=; e'=f'=e'=d'=; c'=g'=f'=g'=; | @14 $a'=g'=a'=g'=; f'=e'=d'=c'=; %b=c'=b=%)a=; g-g'-\.\ | @15 g'g-\.\g'-\.\ g' r= $a'=g'=f'= | @16 e'=d'=e'=c'=; f'=e'=f'=d'=; g'-c''-; b'=-$a'=-; r= g'=-f'=-; r= | @17 e'-.f'=; d'e'-g'=%b=; c'-\.\f'-\.\ | @18 e'-.f'= d'c' r= g'=f'=e'= | @19 *if part [copyzero -4] *fi d'-c'=b=; e'-d'=c'=; d'=c'=d'=b=; f'_ | @20 f'-%e'=d'=; e'=c'=g'=b=_; b-a=g=; a-f'-_ | @21 f'-%e'=d'=; e'=c'=b'=b=_; b-a=g=; a-$e'-_ | @22 e'-d'=c'=; d'=b=f'=$a=_; a-g=f=; g-e'-_ | @23 e'-d'=c'=; d'=c'=d'=b=; a=g=f-r | @24 &ff d'' c''-b'=a'=; b'=a'=b'-; r- $a'- | @25 g' f'-e'=d'=; e'=d'=e'-_; e'=f'=g'=f'=; | @26 e'=d'=e'=f'=; e'=g'=f'=e'=; d'=c'=d'=b=; e'=d'=e'=c'=; | @27 f'-b=c'=; c'\tr\ b- b'a'=g'= | @28 f'=e'=f'=d'=; g'=d'=c'=b=; a=f=f'=a=; b-b'- | @29 f-b=c'=; c'\tr\ b r | @30 [endstave] [stave 2 treble 1] *if score [name "Violin II"/c] *fi &f bfd-b-; b`-d- | b`-e-; c-a-; f-d-; b`-b-_ | b-e'-; f-a-; f- ba- | @3 b-f'-; b-g-; c-b`-; c-; c'-\.\ | @4 d'=c'=d'=e'=; f'=e'=f'=d'=; c'=d'=c'=b=; a=b=c'=a= | @5 d'=e'=d'=c'=; b=a=b=d=; c=d=c=b`=; a`-c'-; | @6 d'=e'=d'=c'=; b-d'-; %e'=f'=e'=d'=; c'-e'- | @7 f'=g'=f'=%e'=; d'-f'-; g'-; %e-; f-g- | @8 f'-c'-; b a-f'-; f-a- | @9 f-b-; g-%d'-; c'-a-; f-f'-_ | @10 f'-b'-; c'-b-; a-d'-; g-%e- | @11 f-f%e-fr :)| @12 &p r- [\.\] $a-c'-a-; r- d-%b-%b`- [\\] | @13 r-c' %b- c' r=e'=d'=e'= | @14 c'-.$)b=; $a [\.\] g-d-; %b`-; d'- [\\] | @15 e'=f'=e'=d'=; c'=%b=c'=e'=; d'=e'=d'=c'=; b-d'- | @16 g-; c' %b-; c'-g'-; c'_ | @17 c'=%b=; c' b-; c'-e=d=; c-c'-_ | @18 c'=%b=; c' b- c' r=e'=d'=c'= | @19 $)b=a= b a- b r=c'=b=a= | @20 b.%e-c.c'=a= | @21 f.%e-c.c'=a= | @22 f.d-b`.b=g= | @23 *if part [newline] *fi a-g-_; f=e=f=d= cr | @24 &ff b'f' d'=c'=d'=e'=; f'-d'- | @25 *if part [newline] *fi b-e'-; b g-b-; c'=d'=e'=d'= | @26 c'=b=c'=d'=; c'=e'=d'=c'=; b=a=b=g=; a-c'-_ | @27 c'=a=; b a-; d'=e'=f'=e'=; e'-c'-_ | @28 c'-; bg-; f-.e=; d-g'- | @29 d=b`=; b a- br | @30 [endstave] [stave 3 alto 1] *if score [name "Viola"/c] *fi &f ff-c-; b`-d-; f-b`- | gfb`-f-; d-b`-; | @2 ecdg-f- | fe-g-fr-a- | @4 b=a=b=c'=; d'=c'=d'=b=; a=b=a=g=; f=g=a=f= | @5 br-f-f.c'- | f-b-; r-b-; g-c'-; r-c'- | @7 a-d'-; r-d'-; g-g-; f-%e- | @8 c'-$)e-; d-c-; f-a-; c-f- | @9 dcf-c'-; a-f-; | bg-%e-; f-f-; c-c- | @11 cd-c-cr :) | @12 &p r- [\.\] f`-f-f`-; r- f`-f-f`- | @13 g`-g-; d-g-; g\x\ g-g- | @14 f\x\ c-f- d\x\ d-%b`- [\\] | @15 c=%b`=c=d=; e=d=e=c=; %)b`=c=b`=a`=; [\.\] g`-b`- | @16 c-g-; d-f-; e-c-; f-c'-; | @17 g-c-; $a-g-; g-.f=; e-a- | @18 g-c'-; $a-g-; g-e-; c-%a- | @19 f-f-; g-f- [\\] fr-f- | @20 g.g-f.c- | g.g-f.c- | @22 b`.d-e.e- | c-f-; b-f-; fr | @23 &ff ff-c-; b` b-f- | e-bf-; e-g-; g-b- | @26 c'af-b-; c'-a- | f-d-; g-f-; f-d'-; g-c'- | @28 f-d-; e-.d=; c-d=c=; b`-b`- | b`-d-; g-f- fr | @30 [endstave] [stave 4 bass 0] *if score [name "Cello|Bass"/c] *fi &f b`-b-; a-f-; g`-g-; d-b`- | e-c-; f-e-; d-b`-; g-d- | @2 e-c-; f-e-; d-b-; e-f- | b-d-; g-e-; f-g-; a-f- | @4 b=a=b=c'=; d'=c'=d'=b=; a=b=a=g=; f=g=a=f= | @5 b.b`-; f\>\_f=g=a=f= | @6 b_b=a=b=g= c'_c'=b=c'=a= | d'_d'=c'=d'=b=; %e'-c'-; d'-e'- | @8 f'-a-; b-c'-; d-d'-; a-f- | b-g-; c'-b-; a-f-; d'-a- | @10 b-g-; c'-c-; d-b- %e-c- | @11 f-a`-; b`-c-; f` r :)| @12 &p [\.\] r-f-f'-f-; r-f-f'-f- | e-e'-; d'-g-; c'-g-; e-c- | @14 f-g-; $a-f-; [\\] g_g=%a=%b=g= | @15 c'=%b=c'=d'=; e'=d'=e'=c'=; b=c'=%)b=a=; [\.\] g-%)b- | @16 c'-c-; d-d'-; e'-e-; f-$a- | g-$a-; f-g-; c-g-; a-f- | @18 g-$a-; f-g-; c-c'-; %a-f- | @19 b-d-; c-f-; [\\] b`r-d- | g.c-f_f=g=a=f= | @21 g.c-f_f=g=a=f= | b.b`-e_e=f=g=e= | @23 f-a-; b-b`-; f-.g=; f=e=d=c= | @24 &ff b`-b-; a-f-; g`-g-; d-b`- | e-e'-; d'-b-; c-g-; c'-g- | @26 a-g-; a-f-; b-g-; c'-c- | d-g-; e-f-; b`-d-; c-e- | @28 d-b-; e-c'-; f-d-; g-e- | d-g-; e-f-; b` r | @30 [endstave] *if bass [stave 5 bass 0] *if score [name "Cello|Bass"/c] *fi &f b`-b-; a-f-; g`-g-; d-b`- | e-c-; f-e-; d-b`-; g-d- | @2 e-c-; f-e-; d-b-; e-f- | b-d-; g-e-; f-g-; a-f- | @4 b=a=b=c'=; d'=c'=d'=b=; a=b=a=g=; f=g=a=f= | @5 b.b`-; f\>\_f=g=a=f= | @6 b_b=a=b=g= c'_c'=b=c'=a= | d'_d'=c'=d'=b=; %e'-c'-; d'-e'- | @8 f'-a-; b-c'-; d-d'-; a-f- | b-g-; c'-b-; a-f-; d'-a- | @10 b-g-; c'-c-; d-b- %e-c- | @11 f-a`-; b`-c-; f` r :)| @12 &p [\.\] r-f-f'-f-; r-f-f'-f- | e-e'-; d'-g-; c'-g-; e-c- | @14 f-g-; $a-f-; [\\] g_g=%a=%b=g= | @15 c'=%b=c'=d'=; e'=d'=e'=c'=; b=c'=%)b=a=; [\.\] g-%)b- | @16 c'-c-; d-d'-; e'-e-; f-$a- | g-$a-; f-g-; c-g-; a-f- | @18 g-$a-; f-g-; c-c'-; %a-f- | @19 b-d-; c-f-; [\\] b`r-d- | g.c-f_f=g=a=f= | @21 g.c-f_f=g=a=f= | b.b`-e_e=f=g=e= | @23 f-a-; b-b`-; f-.g=; f=e=d=c= | @24 &ff b`-b-; a-f-; g`-g-; d-b`- | e-e'-; d'-b-; c-g-; c'-g- | @26 a-g-; a-f-; b-g-; c'-c- | d-g-; e-f-; b`-d-; c-e- | @28 d-b-; e-c'-; f-d-; g-e- | d-g-; e-f-; b` r | @30 [endstave] *fi [newmovement] heading 12 "|II" 40 *if stave 3 notespacing *1.3 *fi *if stave 4 notespacing *1.3 *fi Key B$ Time 3/8 *if stave 4 Copyzero 4/10 *else Copyzero 1/20 *fi [stave 0] "\bf\Moderato e dolce"/a/ts Q! | [endstave] [stave 1 treble 1] *if score [name "Violin I"/c] *fi &p d' {/a b'=a'=b'=} | #f'-\tr\g'-r- | e'-; {/a/u5 d'=c'=b=}; {/a a=g=#f=} | @3 g=.a=-; b-a- | @4 [triplets off] {b=g=d'=}; d'-.g'= | {#f'=d'=a'=}; a'-.c''= | @6 {b'=g'=d''=}; {c''=b'=a'=}; {b'=a'=g'=} | @7 g'-\tr\#f'- r- | b'-_; {b'=a'=b'=}; {f'=e'=d'=} | @9 {e'=f'=g'=}; f'-.e'= | @10 {d'=e'=c'=}; b=c'=c'-\tr\ | br- :)| @12 d'-_; {d'=f'=g'=}; {$a'=g'=f'=} | @13 {e'=d'=e'=}; {f'=e'=f'=}; {g'=e'=c'=}| @14 {d'=e'=f'=}; {e'=c'=e'=}; {d'=c'=%b=} | @15 %b-c' | e'-_; {e'=g'=f'=}; {e'=d'=c'=} | @17 {d'=c'=d'=}; {e'=d'=e'=}; {f'=b=b'=} | @18 {g'=f'=e'=}; d'-c'- | @19 b-; d'-.%e'=-f'=- | @20 %e'=.g'=-#f'=.g'=-; g'=.f'==g'== | @21 {a'=d'=c''=}; c''-.b'=-a'=- | @22 {b'=g'=d''=}; {c''=b'=a'=}; {b'=a'=g'=} | @23 g'-#f'-r- | d'-_; {d'=g'=a'=}; {b'=a'=b'=} | @25 c'-_; {c'=#f'=g'=}; {a'=g'=a'=} | @26 b-c'-a- | g=.g'=-; {b'=a'=g'=}; {f'=g'=e'=} | @28 d'-_; {d'=%e'=#f'=}; {g'=a'=b'=} | @29 c'=.c''=-; c''-.b'=-a'=- | @30 {d''=b'=g'=}; b'-a'-\tr\ | g'r- | @32 [endstave] [stave 2 treble 1] *if score [name "Violin II"/c] *fi &p d' {/a b'=a'=b'=} | #f'-\tr\g'-r- | e'-; {/a/u5 d'=c'=b=}; {/a a=g=#f=} | @3 g=.a=-; b-a- | @4 [triplets off] {b=g=d'=}; d'-.g'= | {#f'=d'=a'=}; a'-.c''= | @6 {b'=g'=d''=}; {c''=b'=a'=}; {b'=a'=g'=} | @7 g'-\tr\#f'- r- | b'-_; {b'=a'=b'=}; {f'=e'=d'=} | @9 {e'=f'=g'=}; f'-.e'= | @10 {d'=e'=c'=}; b=c'=c'-\tr\ | br- :)| @12 d'-_; {d'=f'=g'=}; {$a'=g'=f'=} | @13 {e'=d'=e'=}; {f'=e'=f'=}; {g'=e'=c'=}| @14 {d'=e'=f'=}; {e'=c'=e'=}; {d'=c'=%b=} | @15 %b-c' | e'-_; {e'=g'=f'=}; {e'=d'=c'=} | @17 {d'=c'=d'=}; {e'=d'=e'=}; {f'=b=b'=} | @18 {g'=f'=e'=}; d'-c'- | @19 b-; d'-.%e'=-f'=- | @20 %e'=.g'=-#f'=.g'=-; g'=.f'==g'== | @21 {a'=d'=c''=}; c''-.b'=-a'=- | @22 {b'=g'=d''=}; {c''=b'=a'=}; {b'=a'=g'=} | @23 g'-#f'-r- | d'-_; {d'=g'=a'=}; {b'=a'=b'=} | @25 c'-_; {c'=#f'=g'=}; {a'=g'=a'=} | @26 b-c'-a- | g=.g'=-; {b'=a'=g'=}; {f'=g'=e'=} | @28 d'-_; {d'=%e'=#f'=}; {g'=a'=b'=} | @29 c'=.c''=-; c''-.b'=-a'=- | @30 {d''=b'=g'=}; b'-a'-\tr\ | g'r- | @32 [endstave] [stave 3 alto 1] *if score [name "Viola"/c] *fi &p r-g-d- | c-d-r- | gc- | b`-g-#f- | r-g-b- | r-d'-#f- | g-a-g- | b-a-r- | @8 r-f-d- | c-c'-c'- | b=.g=-; f-e- | dr- :) | @12 r-f-d- | g-%b-c'- | $a-g-f- | e-g-e- | @16 r-c'-%)a- | f-a-b-_ | b=g=; f-e- | d-f-b- | @20 g-c'-b- | a-#f-a- | d=.b=-; a-g- | b-a-#f- | @24 g-c-d- | #f-a-f- | g-a-#f- | g-d'-c'- | @28 b-g-d'- | #f-a-f- | g-g-#f- | gr- | @32 [endstave] [stave 4 bass 0] *if score [name "Cello|Bass"/c] *fi &p r-b-g- | a-b-r- | c'-d'-d- | e-c-d- | r-b-g- | r-#f-d- | @6 g-#f-g- | d- "C.B."/a/c (d`-d-)r- | @8 r-d'-b- | c'-a-f- | b=.e=-; f-f`- | b`r- :) | @12 r-d'-%b- | c-d-e- | f-g-; g`- | c-; e'-c'- | @16 r- %)a-f- | b`-c-d- | e-; f-f`- | b`-; b-g- | @20 c'=.b=-a-g- | #f-d-f- | g-#f-g- | d-; d'-c'- | @24 b-a-g- | a-#f-d- | g-c-d- | b`-g`-a`- | @28 b`-b-g- | a-#f-d- | @29 b`=.c=-d-; "C.B."/a/c (d`-d-) | @30 @ d`-\sl16\ [reset] q [cue noteheads only move 0.8 draw notebracket] d- [o] | @30 g`r- | @32 [endstave] *if stave 3 [newmovement newpage] *else [newmovement] *fi heading 12 "|III" 40 *if stave 1 heading "" -15 notespacing *0.8 *fi *if stave 2 heading "" -15 notespacing *0.94 *fi *if stave 3 notespacing *1.15 *fi *if stave 4 notespacing *1.1 *fi *if score notespacing *1.1 *fi Key B$ Time 6/8 *if stave 2 Copyzero 2/4 *else Copyzero 1/15 *fi [stave 0] "\bf\Allegro"/a/ts [32] Q! | ["A"] [14] Q! | ["B"] Q! | [endstave] [stave 1 treble 1] *if score [name "Violin I"/c] *fi &f b'\.\d'-\.\; e'-d'-c'- | @1 b-d'-f'-; e'-c'-g'- | f'-a'-b'-; e'-d'-c'- | b.r-r-f'- | @4 [\.\]g'-g'-g'-; g'\x\ b'-\x\ | f'-f'-f'- [\\] f'b'- | @6 e'-d'-c'-; d'-b-f'- | d'c'-; r-r-f- | @8 [\.\] g-g-g- g\x\b-\x\ | f-f-f- [\\] fb- | @10 e-d-c-; d-f-b- | dc-; r-r- c'-\.\ | @12 d'-\.\a-b-; %e'-\.\a-b- | f'-\.\a-b-; g'-\.\a-b- | @14 a'-\.\%e'-f'-; d'-b'-g'- | f'%e'-; r-r- g'- | @16 c''a'-; b'-a'-g'- | a'-f'-%e'-; f'-c'-d'- | @18 a-b-a-g. | F. :)| @20 *if score [newline] *fi [space 2] f'\.\a-\.\; b-a-g- | f-a-c'-; b-g-d'- | @22 c'-%e'-f'-; b-a-g- | F. | b'\.\d'-\.\; e'-d'-c'- | @25 b-d'-f'-; e'-c'-g'- | f'-a'-b'-; e'-d'-c'- | @27 b._bb'- | a'-b'-a'-; g'-#f'-g'- | #f'-a'-d'-c'. | @30 b-a-g-; b-d'-c'- | d'._d'a'-\.\ | @32 [copyzero -6] [\.\] b'\x\ g'-a'd'- | c''\x\a'-b'd'- | @34 d''\x\ b'-; [\\] c''-b'-a'- | b'._b'-a'-g'- | @36 #f'-d'-g'-; b-c'-a- | G. | [\.\] g'-g'-g'-g'\x\b'-\x\ | @39 f'-f'-f'- [\\] f'b'- | e'-d'-c'-; d'-b-f'- | d'c'-r. | @42 [\.\] g-g-g-g\x\b-\x\ | f-f-f- [\\] fb- | @44 e-d-c-; d-f-b- | dc-r. | @46 [copyzero -6] b'\.\d'-\.\; e'-d'-c'- | b-d'-f'-; e'-c'-g'- | @48 f'-a'-b'-; g'\.\c''-\.\ | b'-a'-g'-\.\f'$a'- | @50 g'-e'-g'-\.\; f'-d'-f'-\.\ | e'-c'-e'-\.\d'\.\f'-\.\ | @52 g-e'-d'-; c'-b-a- | b\.\d'-\.\; f'-f-$a- | @54 *if score [newline] *fi g-g'-f'-; e'-d'-c'- | b-d'-c'-; b-a-g- | @56 f-e-d-; e-d-c- | B`. | @58 [endstave] [stave 2 treble 1] *if score [name "Violin II"/c] *fi [copyzero 8] &f b'\.\d'-\.\; e'-d'-c'- | @1 b-d'-f'-; e'-c'-g'- | f'-a'-b'-; e'-d'-c'- | b.r-r-d'- | @4 [\.\]e'-e'-e'-; e'.\x\ | d'-d'-d'- [\\] d'. | @6 a.bc'- | ba-; r-r-d- | @8 [\.\] e-e-e- e.\x\ | d-d-d- [\\] d. | @10 a`.b`d- | b`a`-; r-r- c'-\.\ | @12 d'-\.\a-b-; %e'-\.\a-b- | f'-\.\a-b-; g'-\.\a-b- | @14 a'-\.\%e'-f'-; fb- | ag-; r-r- g'- | @16 g'-c'-f'-f'%e'- | f'b-c'f- | @18 f.%e. | F. :)| @20 f'\.\a-\.\; b-a-g- | f-a-c'-; b-g-d'- | @22 c'-%e'-f'-; b-a-g- | F. | b'\.\d'-\.\; e'-d'-c'- | @25 b-d'-f'-; e'-c'-g'- | f'-a'-b'-; e'-d'-c'- | @27 b._bb'- | a'-b'-a'-; g'-#f'-g'- | #f'-a'-d'-c'. | @30 bg-e. | d._d#f'-\.\ | @32 [\.\] g'\x\ %e'-#f'd'- | a'\x\d'-d'b- | @34 b'\x\ g'-; [\\] a'-g'-#f'- | g'._g'-%)f'-e'- | @36 d'g-g#f- | G. | [\.\] e'-e'-e'-e'.\x\ | @39 d'-d'-d'- [\\] d'. | a.bd'- |ba-r. | @42 [\.\] e-e-e-e.\x\ | d-d-d- [\\] d. | @44 a`.b`d- | b`a`-r. | @46 [copyzero 5] b'\.\d'-\.\; e'-d'-c'- | b-d'-f'-; e'-c'-g'- | @48 f'-a'-b'-; g'\.\e'-\.\ | c'. r-r-f'- | @50 bg'-; f'-d'-f'-\.\ | e'-c'-e'-\.\d'\.\f'-\.\ | @52 g-e'-d'-; c'-b-a- | b\.\d'-\.\; f'-f-$a- | @54 *if part [newline] *fi g-g'-f'-; e'-d'-c'- | b-d'-c'-; b-a-g- | @56 f-e-d-; e-d-c- | B`. | @58 [endstave] [stave 3 alto 1] *if score [name "Viola"/c] *fi [copyzero -6] &f f.a. | f.a. | bf-; g-f-e- | @3 de-fb- | B. | b`._b`r- | c.f. | fc-f`b`- | @8 B`. | b`._b`f- | c.f`. | f`a`-; c-b`-a`- | B`. | b`._b`g- | @14 c.b`d-\.\ | c%e-; g-f-e- | @16 ac'-db`- | cg-ff- | c.c. | C. :)| @20 c.%e. | c.%e. | fc-d%e- | fa`-b`c- | @24 db-ac'- | f.a. | bf-; g-f-e- | de-; f-e-d- | @28 e.c'. | a._aa- | d.g. | A. | [copyzero -12] D. | @33 #fa-g. | r.r-r-d'- | d'.d'g- | dc'-dd- | @37 d._db`- | B. | b`._b`f- | c.f. | f.r. | @42 B`. | b`._b`f- | c.f`. | f`a`-; c-b`-a`- | @46 [copyzero -12] db-ac'- | f.a. | b.bg- | f.r-r-f- | @50 e.b. | a.bd- | b`-g-f-; e-d-c- | d. r-r- f- | @54 b`.a`e- | d.fb`- | b`.a`. | B`. | @58 [endstave] [stave 4 bass 0] *if score [name "Cello|Bass"/c] *fi &f b`.c. | d.c. | d.ef- | b`c-; d-c-b`- | e._eg- | @5 b._bd- | c.b`. | f`f-; d-c-b`- | e._eg- | b._bd- | @10 c.b`. | ff`-; a`-g`-f`- | b`.c. | d.%e. | f.b. | @15 c'-c-c'-; b-a-g- | a.g. | fg-ab- | c'.c. | F`. :) | @20 f.g. | a.g. | a.bc'- | fe-dc- | b`.c. | d.c. | d.ef- | @27 b`c-; d-c-b`- | c.e. | d._d-%e-#f- | g._gg- | @31 #f-a-g-; f-%e-d- | @32 [copyzero -8] D'. | d-%e-#f-g. | r.r-r-d- | @34 g-g`-a`-b`c- | de-d "C.B."/a/c (d`-d-) | g`d-gf- | @38 e._eg- | b._bd- | c.b`. | f.r. | e._eg- | b._bd- | c.b`. | @45 f`f-; e-d-c- | [copyzero -12] b`.c. | d.c. | d.e. | f.rd- | @50 e.d. | c.b`. | e.f. | b`.rd- | e.f. | g.de- | f.f`. | B`. | @58 [endstave] pmw-4.27/testdist/infiles/Test070000644000222100022210000000145112247665016014656 0ustar ph10ph10@ This input file demonstrates some of the text features that are now available @ in PMW, after the upgrade to Unicode characters. textfont extra 8 "Helvetica" textsizes 10 14 heading 14 "|Fancy font and character demonstration" 16 Heading 10 "Ten point stretched 1.0" Heading 10/0.8 "Ten point stretched 0.8" Heading 10/1.5 "Ten point stretched 1.5" Heading 10/1/20 "Ten pointSheared 20" 30 heading 14 "Dvo\rv\a'k, Gli\e`re, Faur\e', Lopes Gra\c,a, von Preu\ssen, Backer Gr\o/ndahl" 20 heading 14 "Bullet \xb7\ and dagger \x2020\ and lozenge \x25ca\ \x8\and another typeface" 40 heading 12 "\bf\The following can appear only on staves \-- this stave is invisible!" 30 notime nocheck [stave 1 "Vertical"/v noclef stavelines 0] "Rotated"/s2/rot45 Q "Rotated"/s2/rot-45/u28/r12 Q Q Q |? [endstave] pmw-4.27/testdist/infiles/Test020000644000222100022210000000273612247665016014660 0ustar ph10ph10@ Example for IMS Handbook of Musical Codes @ PMS input by Philip Hazel, September 1992 Heading "|Mozart: Second trio from Clarinet Quintet" 35 *Define p "\bi\p"/b Magnification 1 Linelength 440 Barnumbers line 9 Bracket 1-5 Time 3/4 Tripletfont 8 italic Key A Startlinespacing 3 0 3 Unfinished [stave 1 "\it\clarinet in A" treble 2] [key C nocount nocheck]&p [slur/co2] c-e- | @0 g-e-c' [endslur][slur] g-e- | @1 d-f-a [endslur][slur] f-d- | @2 c-b`-e-d-g-f- [endslur] | @3 #d_e [slur] c-e- | g-e-c' [endslur][slur] g-e- | @5 %d-f-a [endslur] r | R! | @7 rr [slur/b] {/d8/r2 d`-a``-f``-} | @8 a``- [endslur] [\.\] d`-f`-a`-d-f- [\\] | @9 [slur] a-g-f-e-\.\f-\.\d- [endslur] | @10 [slur] Ce-d- [endslur] | cr :)(: r | @12 [endstave] [stave 2 "\it\violino I" treble 1] [nocheck] r | r &p aa | raa | rgg | [2] raa | @5 fr [slur] c'-#a- | b-d'-f' [endslur][slur] c'-#a- | @7 b-d'-f' [endslur] r | [2] R! | @10 [slur/b] c-e-c-e-d-e- [endslur] | @11 cr :)(: [slur] e-g- | @12 [endstave] [stave 3 "\it\violino II" treble 1] [nocheck] r | r &p ee | rff | rdd | rcc | ree | @5 dr [slur/b] %g | F%g | F [endslur] r | [2] R! | @10 A`_#g` | a`r :)(: r | @12 [endstave] [stave 4 "\it\viola" alto 1] [nocheck] r | r &p cc | [2] rb`b` | ra`a` | rcc | @5 b`r [slur] e | De | D [endslur] r | [2] R! | @10 E`._ | e`r :)(: r | @12 [endstave] [stave 5 "\it\violoncello" bass 0] [nocheck] r | &p arr | drr | err | frr | crr | @5 drr | [4] R! | [slur/b] e`\.\e`\.\e`\.\ [endslur] | @11 a`r :)(: r | @12 [endstave] pmw-4.27/testdist/infiles/Test010000644000222100022210000000503412247665016014651 0ustar ph10ph10Heading "|Credo" *Define F "\bi\f" Suspend 1-5 Time 3/4 Linelength 500 Notespacing *1.1 Systemgap 55 Bracket 1-5 Brace 6-7 Bracestyle 1 Breakbarlines 1 2 3 4 5 Barnumbers line Startlinespacing 4 0 4 Unfinished [stave 1 treble 1 text underlay] [13] R! | @13 "Cre-do, cre-do in un-um De-um," &F/a e'c'r | e'-; e'=; e'=; e'-; e'-; g' | e'rr | @16 [endstave] [stave 2 treble 1 text underlay] [13] R! | @13 "Cre-do, cre-do in un-um De-um," &F/a c'gr | c'-; c'=; c'=; c'-; c'-; b | c'rr | @16 [endstave] [stave 3 treble 1 text underlay] [13] R!| @13 "Cre-do, cre-do in un-um De-um," &F/a ger | g-; g=; g=; g-; g-; g | grr | @16 [endstave] [stave 4 treble 1 text underlay] [13] R!| @13 "Cre-do, cre-do in un-um De-um," &F/a c'c'r | e'-; e'=; e'=; e'-; e'-; d' | e'rr | @16 [endstave] [stave 5 bass text underlay] [13] R! | @13 "Cre-do, cre-do in un-um De-um," &F/a/l10/d6 c'cr | c'-; c'=; c'=; c'-; c'-; g | c'rr | @16 [endstave] [stave 6 treble 1] "\rm\Allegro Maestoso"/a/l14/u2 &F; c-g`=g`=; c-g`=g`=; c-g`=g`= | @1 (e'=c'=)(d'=b=)c'=(d'=b=); (e'=c'=)(d'=b=)(e'=c'=)(f'=d'=); (g'=b=)(a'=c'=)(f'=d'=)(g'=b=) | @2 (e'-c'-); g`=g`=; c-g`=g`=; c-g`=g`= | @3 (e'=c'=)(d'=b=)(e'=c'=)(f'=d'=); (g'=e'=)(f'=d'=)(e'=c'=)(f'=d'=); (g'=e'=)(a'=f'=)($b'=g'=)(g'=e'=) | @4 (a'-\su\f'-); [reset] f-\sd\c=c=; f-c=c=; f-c=c= | @5 (a'=f'=)($b'=g'=)(c''=a'=)(b'=g'=); (a'=f'=)(b'=g'=)(g'=e'=)(a'=f'=); (f'=d'=)(g'=e'=)(e'=c'=)(f'=d'=) | @6 (d'-%b-)d=d=; g-d=d=; g-d=d= | @7 (%b=g=)(a=#f=)(b=g=)(c'=a=); (d'=b=)(c'=a=)(d'=b=)(e'=c'=); (%f'=d'=)(g'=e'=)(f'=d'=)(e'=c'=) | @8 (d'-b-)d'=d'=; g'-d'=d'=; g'-d'=d'= | @9 [move 6]G'.\su\ [reset] g'-b=b=; e'-b=b=; e'-b=b= | @10 [stems up][ties up] g'_g'-; f' e'-; [stems down][ties auto][reset] e'-c'=b=; a-a-; b-c'- | @11 [stems up] e' d'-.\tr\c'=-d'=-; q [stems down] [reset] c'-a=g= f (c'-e-)g'=g'= [stems auto] | @12 c''r-e=c'=; d-b- | @13 (c'-e-); g`=g`=; c-g`=g`=; c-g`=g`= | @14 (e'=c'=)(d'=b=)c'=(d'=b=); (e'=c'=)(d'=b=)(e'=c'=)(f'=d'=); (g'=b=)(a'=c'=)(f'=d'=)(g'=b=) | @15 (e'-c'-); g`=g`=; c-g`=g`=; c-g`=g`= | @16 [endstave] [stave 7 bass] c-g`=g`=; c-g`=g`=; c-g`=g`= | @1 c-(c'=e=)(d'=g=); (e'-c'-)(e'-c'-); (d'-g-)(d'-g-) | @2 c'-; g`=g`=; c-g`=g`=; c-g`=g`= | c-c-; c'-g-; e-c- | @4 f-c=c=; f-c=c=; f-c=c= | f-f`-; f-g-; a-f- | @6 g-d=d=; g-d=d=; g-d=d= | g-g-; d-g-; b`-d- | g`- r-rr | @9 r-g=g=; c'-g=g=; c'-g=g= | r-c=c=; f-d=d=; g-e=e= | @11 a-f=f=; b-g=g= (c'c) | r-g=g=; c'-c-; g-g`- | @13 c-; g`=g`=; c-g`=g`=; c-g`=g`= | @14 c-(c'=e=)(d'=g=); (e'-c'-)(e'-c'-); (d'-g-)(d'-g-) | @15 c-; g`=g`=; c-g`=g`=; c-g`=g`= | @16 [endstave] pmw-4.27/testdist/infiles/Test040000644000222100022210000000723412247665016014660 0ustar ph10ph10Heading 14 "|\it\G\o.tterd\a.mmerung, \rm\Act I" Heading 12 "||Wagner" *Define ps "\mf\\163\"/b/d6 *Define pe "\mu\$"/b/d6 *Define ts [triplets on] *Define te [triplets off] *Define P "\bi\p" *Define FF "\bi\ff"/d2 *Define one "\rm\1"/fb *Define two "\rm\2"/fb *Define four "\rm\4"/fb *Define five "\rm\5"/fb Linelength 540 notespacing 30 20 16 12 10 10 10 10 notespacing *0.75 staffspacing 1/80 2/0 3/56 4/0 startlinespacing 2 0 2 systemgap 68 notime unfinished Breakbarlines 1 bracket brace 2-5 bracestyle 1 Underlaysize 9.5 Underlaydepth 10 Tripletfont 9 italic Fbsize 7 Clefsize 0.8 [staff 1 treble 1][text underlay] "\bf\Br\u.nnh."/a "ge-denk' der Lie-=be der wir le-=ben:" "\it\the love we live= for aye re-mem-=ber:" rr-a-a.#f'- | #d'_E'a | rAa | G'+_ | G'.a-[space 2]r- || [key E$] "Br\u.nn-hil-de brennt= dann e-wig hei-=lig" "\it\Br\u.nn-hil-de then= will burn for e-=ver" $g'F'f' | f'_$F'e' | E'.a | $C'+_ | $C'E | [endstaff] [staff 2 treble 1][stems up] [slur/a/ru14/co4] #e'-#f'-qq{/xq-q-q-} [es] | @1 [slur/a/d1] g'.[space 2]#f'=-g'=-a'=-g'=-e''.[move 7]b'- | @2 d''[es]qqq | @3 [slur/a/ld4/co6] [move 6](e'.g'.)[space 10]#f'=-g'=-a'=-g'=-[space 2]e''.[space 8]e'- [space 1] | @4 g'-#f'=-g'=-a'=-g'=-_/b [space 1]g'\sd\q-qq- || @5 [key E$] qQ[xslur/a/ld10/rd10][xslur/b](ff')[es] | @6 (ff') [es][es] ($F$F')[slur/=A/a/d12](ee') | @7 [slur/=B/a/co4][slur/=C/b/w/ld14/rd60] e'.[es/=A]q-e''.a'- [es/=C] | @8 $c''-&two;/u31 %d'[space 3]%f' a'-_/a; {/b/n/r3/u20 a'-b'-c''-_/a}[es/=B] | @9 [slur/a/ru1] [triplets off]{$c''e''-}[triplets on] a''.&five;/u49$g''-; {/u2&four;/u45e''-c''-b'-} [es] | @10 [endstaff] [staff 3 treble 1][stems down] &P;/d4 [slur/b/ll16/u12]a[es] b'.a'-; {f'-#c'-d'-} | @1 < #d'&one/u30 e'<> &one/u15/r2 g'_/b {/a/n/r3 g'-#f'-#e'-_/b} > | @2 &P;/d4 [slur/a/lr4/ru4/co8] e'-#f'- [move -6]a-\g/\ (d'.\ar\f'.b'.)a'-; {/a/n/r4/d3 f'-&one/u2 %e'- &two/u2 d'-} [es] | @3 "\it\########cresc.-====== #"/ul "\it\poco accel."/a/l12/u18 (g\ar\d')&one/u10/r2 #C'[move -2]d' | @4 $e'(g'g'')_(g'-g''-)(g'g'')($g'-$g''-)_/a || @5 [key E$] "\it\pi\u` \bi\f"/d6 (g'g'')(%F'%F'')[move 7]$!\ | @6 #C''.\>!\_ | c''\sd\ [stems auto] < D''_ M\e'')(d'\>M\d'')} | @14 {2/a/u5 (#c'\>M\#c'')(d'\>M\d'')} @15 [endstaff] [staff 3 treble 1][stems down][ties below][hairpins below] (F.%B.) | @1 [slur/b/ld2]D'e\>!\_ | @2 "\it\ cresc. - - -"/s1/r10/d13 {2/b e\M\[es]b\M\} | @3 &SFPP;/l20/d15 {4/b/u4 r\l-12\ [slur/b/u8/rd4/co4]#C.\>!\_} | @4 {4/b/d3 c"espr."/a/d11 d[es]ef}_ | @5 f[space 2] "\it\cresc. -"/s1/l3/d4.5 #f\>!\ g\>!\_ | @6 "- - - - - - "/b/d16/l6 {4/b/u4 g%f\>!\ %e\>!\ "#"/ul $e\>!\} | @7 &P; q Q | Q! | &FP/d2 Q! | @10 {4/b/lx/u4 [move 6] q "\it\^cresc.-"/ul/s1/d2 #fba} | @11 #F "#"/ul g_ | {4/b/u5 ga\>!\ d'\>!\ &F/d3 c'\>!\} | @13 {2/x &P; q "cresc."/l2 q } | Q! | @15 [endstaff] [staff 4 bass 0][stems up][ties above] [slur/ll20/d14] {4/a/d2 $)g\>!\[es]%g\>!\%a\>!\%b\>!\} | @1 [5]Q! | F`. | @7 r\l20\ r\l20\ [slur/ru2] d'_ | @8 [beammove -4] d'-e'-[es]f'-\>!\(a-\!>\#f'-)a'-\!>\g'-\!>\ | @9 %E'_%f'_ | [move 6]f'[space 6]qq | @11 r\l20\$E'_ | e'-d'-c'-b-a-g- | @13 (F.B.D'.F'.)_/a | (F.B.D'.F'.) | @15 [endstaff] [staff 5 bass 0][stems down][ties auto] %G`. | (C.E.$G.$B.) | (%A`.E.%G.#C'.) | (B`.F.) | (%B`.F.$A.) | @5 [slur/a/rr36][slur/a/rr36/lr8/d10] [slur/b/rr41/lr6/u20][slur/b/rr41/u12] (C.F.%A.E'.)[es][es][es][es] | @6 Q! | {2/b (b`\M\f\M\b\M\) (%b`\M\f\M\$a\M\) } | @8 (C.E.G.) | (D.F.B.) | @10 [newline] [slur/b/u18/ru2/lr6/rl4][slur/b/u24/ru2/lr6] (DFBF')(#cfb%e')[es][es] | @11 (%C.%F.B.) | (F`.A.) | @13 {2/b r\Ml-8\ (b``\M\b`\M\)}_/b | {2/b (b``\M\b`\M\)($a``\M\$a`\M\)} | @15 [endstaff] pmw-4.27/testdist/infiles/Test080000644000222100022210000000030412247665016014653 0ustar ph10ph10@ This file contains miscellaneous tests that are not actual pieces. @ The first test used to work on 32-bit systems but not on 64-bit ones. [stave 1 treble 1] (E`+\ard f\ A`+ C+ E+) [endstave] pmw-4.27/testdist/infiles/Test050000644000222100022210000000655012247665016014661 0ustar ph10ph10@ Sample for Computing in Musicology 1993 @ Philip Hazel, June 1993 draw blip linegapx linegapy moveto 0 linegapx 3 mul lineto linegapx neg linegapy neg lineto 0.3 setlinewidth stroke enddraw draw ped 0 0 moveto "\**163\ "show enddraw draw flutter linegapx neg 1 sub -3.1 moveto "\mf\`````````````````````````" show linegapx neg 4 add 3 moveto "\it\(flutter)"/s3 show enddraw draw star linegapx neg 3 add 0 moveto "\**36\"/s5 show enddraw draw pog 1 stemtop 10 sub moveto 6 4 rlineto 0.2 setlinewidth stroke enddraw draw three 0 -3 moveto "\it\3"/s6/c show enddraw *define sa slur/a0/rr12 *define sa2 slur/a0/lr3/rr12 *define sb slur/b0/rr16/lr4 *define b1 [linegap/=L/draw blip] *define b2 [linegap/=L/w2.5/draw blip] *define b3 [linegap/=L/w100/r4/draw flutter] *define star [linegap/=L/draw star] *define va8 "\it\8va-"/ol/u17/l8/s3/" -| \**159\" Heading 16 "|#2. David Chaitkin" 18 Heading 16 "|Prelude" 70 linelength 480 justify top left right startnotime unfinished startlinespacing 2 0 2 stavespacing 1/0 2/50 systemgap 100 barnumbers line 9 italic bar 27 bracket brace 1-3 bracestyle 1 textsizes 10 12 7 9 7 8 clefsize 0.8 tripletfont 8 italic [stave 1 treble 1 stems up] [slur/a/ll20/ru8] (d''\.!\d''')[&sa/u1 &sa/u14](#f'\.!\#f'') [es es es] Q | @27 {/a r\l16\ [slur/a/u8/ci4 space 4] (#F'\!.\#F'') } (d''\!.\d''') [&sa/u1 &sa/u14](#f'\!.\#f'') [es es es] | @28 Q [space 2] r. [move -5] "\it\s\bi\ff"/s2/b10/l8 "\it\8va - - \**159\"/a/s3 [slur/b/lu2/ru12] [draw pog] (a'-\g\a''-\g\) [space 4 &sa/u14] d''-\sd\ [es es] [space 2] | @29 Rr. [&sa2 &sb/d4] "\it\s\bi\f"/b/s2/u4(d-\sd >/u2\e'-) [es es space 2] | @30 [stems auto] r-; "\it\s\bi\f"/b/s2/l4 [slur/b/ru8] &va8 [move -4] [draw pog] (a'-\g/\a''-\g\) [xslur/a/ru2/rl1/lu1/ci1/cll2] d'' [es &sa/u2] "#"/ol/r8 e'- [es es] "\bi\allarg."/a8 R | @31 R! | @32 "\bi\p"/s2/a/u6 "\bf\A tempo"/a/d2 {/a r "\it\cantabile"/a/s4/u4/r8 [slur/a/lu16/ll8/ru10/ci2] #ce} {/b a#f'g'} | @33 [line/a/u4 linegap/h/w6/draw three] {/a/x e'\su\g#f} [es] {/a eag} [es] [reset] C+ | @34 [endstave] [stave 2 treble 1 stems down rlevel -4] r. q- (g.d'.) q- | @27 [&sb/u2 &sb/u10] (gd') [es es] rr.q- | @28 (g.d'.) q-Q | @29 [endstave] [stave 3 treble 1] Qqq-r-\l-16\ [reset] [line/=L/b/h/ol/ll40/d5/2/d4] q. [slur/a/ll8/ru4/rl2/co30/clu40/cll10/crl15] (#f-b-) r [bass 0] /a/r15/u5 "\it\(\bi\pp\it\)"/b/r4/d8/s2 r [bass 0] &b1 [&sb/d2 &sb/d10] (c`-\!. sd\g`-); [es es] [treble 1] [&sa/d11 &sa/d6] (#f-b-) >/l12 [es es es] r. [slur/b/lu2/ru8] [draw pog] (d'-\g/\d''-\g\) [&sa/u4] #f'- [es es] | @29 r- [bass 0] "\it\m\bi\f"/s2/a/e/l4 b._b- &b2 c' &b1 ($b`-c'-) [reset] Qq. [notes off] ($b`-\ar\e''-\c\) [notes on] | @30 r- [treble 1 slur/b/lu2/ru8] [draw pog] (d'-\g/\d''-\g\)%f' [es slur/a/ru12] &b2 g'-_;g'- "\it\dim.-"/ol/u14/" -" c' &b2 f-_ | @31 f-ed-_{/a &b3 d "#"/ol/l4 "\bi\p"/a/u15 >/a/u13/r10 ga`} [es] [bass 0] >/d16/r16 | @32 &star B+ [el] [reset] {/b/u4 r\l-8\ [line/=L/ol/h/b/d8.5 linegap/w36/l4/draw ped] G`\sd sl-3\}_/bG`\sd sl-3\ | @33 [notes off] ($a`\ar\e''\c\) [notes on reset] (A`+$B+) [reset] &b1 {/x q &b2 q &b2 q} &star Q [el] | [endstave] pmw-4.27/testdist/outfiles/0000755000222100022210000000000012247665016014045 5ustar ph10ph10pmw-4.27/testdist/outfiles/Test05.ps0000644000222100022210000015664212247665016015513 0ustar ph10ph10%!PS-Adobe-3.0 %%Creator: Philip's Music Writer 4.27 (Built 25-Oct-2013) %%CreationDate: Tue Dec 3 17:23:05 2013 %%Pages: (atend) %%DocumentNeededResources: font Times-Roman Times-Italic %%+ font Times-Bold Times-BoldItalic Symbol %%+ font PMW-Music %%DocumentSuppliedResources: font PMW-Music %%Requirements: numcopies(1) %%EndComments %%BeginPaperSize: a4 a4 %%EndPaperSize %%BeginProlog %%Header file for PMW PostScript output /LowerEncoding 256 array def LowerEncoding 0 [ /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /space/exclam/quotedbl/numbersign /dollar/percent/ampersand/quotesingle /parenleft/parenright/asterisk/plus /comma/hyphen/period/slash /zero/one/two/three /four/five/six/seven /eight/nine/colon/semicolon /less/equal/greater/question /at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O /P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft /backslash/bracketright/asciicircum/underscore /grave/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o /p/q/r/s/t/u/v/w/x/y/z/braceleft /bar/braceright/asciitilde/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /space/exclamdown/cent/sterling /currency/yen/brokenbar/section /dieresis/copyright/ordfeminine/guillemotleft /logicalnot/hyphen/registered/macron /degree/plusminus/twosuperior/threesuperior /acute/mu/paragraph/bullet /cedilla/onesuperior/ordmasculine/guillemotright /onequarter/onehalf/threequarters/questiondown /Agrave/Aacute/Acircumflex/Atilde /Adieresis/Aring/AE/Ccedilla /Egrave/Eacute/Ecircumflex/Edieresis /Igrave/Iacute/Icircumflex/Idieresis /Eth/Ntilde/Ograve/Oacute /Ocircumflex/Otilde/Odieresis/multiply /Oslash/Ugrave/Uacute/Ucircumflex /Udieresis/Yacute/Thorn/germandbls /agrave/aacute/acircumflex/atilde /adieresis/aring/ae/ccedilla /egrave/eacute/ecircumflex/edieresis /igrave/iacute/icircumflex/idieresis /eth/ntilde/ograve/oacute /ocircumflex/otilde/odieresis/divide /oslash/ugrave/uacute/ucircumflex /udieresis/yacute/thorn/ydieresis ]putinterval /UpperEncoding 256 array def UpperEncoding 0 [ /Amacron/amacron/Abreve/abreve /Aogonek/aogonek/Cacute/cacute /Ccircumflex/ccircumflex/Cdotaccent/cdotaccent /Ccaron/ccaron/Dcaron/dcaron /Dcroat/dcroat/Emacron/emacron /Ebreve/ebreve/Edotaccent/edotaccent /Eogonek/eogonek/Ecaron/ecaron /Gcircumflex/gcircumflex/Gbreve/gbreve /Gdotaccent/gdotaccent/Gcommaaccent/gcommaaccent /Hcircumflex/hcircumflex/Hbar/hbar /Itilde/itilde/Imacron/imacron /Ibreve/ibreve/Iogonek/iogonek /Idotaccent/dotlessi/IJ/ij /Jcircumflex/jcircumflex/Kcommaaccent/kcommaaccent /kgreenlandic/Lacute/lacute/Lcommaaccent /lcommaaccent/Lcaron/lcaron/Ldot /ldot/Lslash/lslash/Nacute /nacute/Ncommaaccent/ncommaaccent/Ncaron /ncaron/napostrophe/Eng/eng /Omacron/omacron/Obreve/obreve /Ohungarumlaut/ohungarumlaut/OE/oe /Racute/racute/Rcommaaccent/rcommaaccent /Rcaron/rcaron/Sacute/sacute /Scircumflex/scircumflex/Scedilla/scedilla /Scaron/scaron/Tcedilla/tcedilla /Tcaron/tcaron/Tbar/tbar /Utilde/utilde/Umacron/umacron /Ubreve/ubreve/Uring/uring /Uhungarumlaut/uhungarumlaut/Uogonek/uogonek /Wcircumflex/wcircumflex/Ycircumflex/ycircumflex /Ydieresis/Zacute/zacute/Zdotaccent /zdotaccent/Zcaron/zcaron/longs /Delta/Euro/Scommaaccent/Tcommaaccent /breve/caron/circumflex/commaaccent /dagger/daggerdbl/dotaccent/ellipsis /emdash/endash/fi/fl /florin/fraction/greaterequal/guilsinglleft /guilsinglright/hungarumlaut/lessequal/lozenge /minus/notequal/ogonek/partialdiff /periodcentered/perthousand/quotedblbase/quotedblleft /quotedblright/quoteleft/quoteright/quotesinglbase /radical/ring/scommaaccent/summation /tcommaaccent/tilde/trademark/infinity ]putinterval /F/fill load def /GS/gsave load def /GR/grestore load def /Mt/moveto load def/Lt/lineto load def /R/rotate load def /Rl/rlineto load def/Rm/rmoveto load def /Ct/curveto load def/Rc/rcurveto load def /S/stroke load def /Slw/setlinewidth load def /Slc/setlinecap load def /Slj/setlinejoin load def /Sg/setgray load def /Sd/setdash load def /T/translate load def /clx 0 def/cly 0 def/crx 0 def/cry 0 def /inf{dup dup findfont 3 1 roll FontDirectory exch known {pop}{(**** Font ")print 100 string cvs print (" is not loaded ****\r\n)print stop}ifelse dup dup/Encoding get StandardEncoding eq {maxlength dup dict/newfont0 exch def dict/newfont1 exch def dup {1 index/FID eq{pop pop}{newfont0 3 1 roll put}ifelse}forall {1 index/FID eq{pop pop}{newfont1 3 1 roll put}ifelse}forall newfont1/Encoding UpperEncoding put dup newfont1 definefont def newfont0/Encoding LowerEncoding put dup newfont0 definefont def } {3 1 roll def def}ifelse }bind def /ss{scalefont setfont}bind def /sm{makefont setfont}bind def /ssr{scalefont [-1 0 0 1 0 0] makefont setfont}bind def /smr{makefont [-1 0 0 1 0 0] makefont setfont}bind def /b{/y exch def/x exch def/w exch def/z exch def/v exch def {x y Mt w show y z gt{/y y v sub def y z lt{/y z def}if} {exit}ifelse}loop}bind def /br{gsave translate dup 0.11 gt {0.11}{dup 2.0 div 0.055 add}ifelse exch scale 2{0.0 0.0 Mt 100.0 20.0 -50.0 245.0 60.0 260.0 curveto -50.0 245.0 60.0 20.0 0.0 0.0 curveto fill 1.0 -1.0 scale}repeat grestore}bind def /br2{gsave translate dup 0.11 gt {0.11}{dup 2.0 div 0.055 add}ifelse exch scale 2{0.0 0.0 Mt 95.0 40.0 -43.0 218.0 37.0 256.0 curveto -59.0 219.0 66.0 34.0 0.0 0.0 curveto fill 1.0 -1.0 scale}repeat grestore}bind def /cc{/u exch def/y1 exch def/x1 exch def/y0 exch def/x0 exch def /w y1 y0 sub dup mul x1 x0 sub dup mul add sqrt 2 div def /v w 2 mul 3 div dup 10 gt {pop 10} if def x0 x1 add 2.0 div y0 y1 add 2.0 div translate y1 y0 sub x1 x0 sub atan rotate}bind def /cA{/cry exch def/crx exch def/cly exch def/clx exch def}bind def /cd{w neg 0.05 moveto v w sub clx add u cly add w v sub crx add u cry add w 0.05 curveto w -0.05 lineto w v sub crx add u cry add 1 sub v w sub clx add u cly add 1 sub w neg -0.05 curveto closepath fill}bind def /cv{gsave cc cd grestore}bind def /cwd{w neg 0.05 moveto v w sub clx add u cly add w v sub crx add cry u sub w 0.05 curveto w -0.05 lineto w v sub crx add cry u sub 1 sub v w sub clx add u cly add 1 sub w neg -0.05 curveto closepath fill}bind def /cvw{gsave cc cwd grestore}bind def /cem{dup 1 eq cly cry eq and{pop 0 u cly add 0.75 mul /t2 0 def} {/x1 v w sub clx add def /x2 w v sub crx add def /y1 u cly add def u mul cry add /y2 exch def /t 0.5 def /a 2 w mul x1 x2 sub 3 mul add def /b x2 2 x1 mul sub w sub 3 mul def /c x1 w add 3 mul def a t mul b add t mul c add t mul w sub /t1 a 3 mul t mul b 2 mul add t mul c add def /a y1 y2 sub 3 mul def /b 3 y2 mul 6 y1 mul sub def /c 3 y1 mul def a t mul b add t mul c add t mul /t2 a 3 mul t mul b 2 mul add t mul c add def }ifelse translate t2 0 ne {t2 t1 atan rotate} if 0 2 moveto 4 add neg 0 exch rlineto 0.4 Slw stroke}bind def /cve{gsave cc cd 0.8 1 cem grestore}bind def /cvwe{gsave cc cwd 0.8 -1 cem grestore}bind def /dl{gsave 0 Sd 0 dtransform exch floor exch idtransform pop Slw Mt Lt stroke grestore}bind def /k{/y1 exch def/y2 exch def/x exch def currentfont mf y2 y1 sub dup 16 gt {pop 16}if dup 1 sub /y exch def dup y2 exch sub /y2 exch def 16 div 10 mul ss x y2 Mt (\260) show {/y2 y2 y sub def y2 y1 le {exit}if x y2 Mt (B)show}loop x y1 Mt (\261)show setfont}bind def /l{Slw Mt Lt stroke}bind def /ll{Slw Mt 1 1 3 -1 roll{pop Lt}for stroke}bind def /m{/y0 exch def/x0 exch def/y1 exch def/x1 exch def/z exch def x0 y0 Mt x1 y1 Lt x1 y1 z add Lt x0 y0 z add Lt fill}bind def /rs{rmoveto show}bind def /s{moveto show}bind def /sh{show}bind def /wrs{rmoveto 0 32 4 -1 roll widthshow}bind def /ws{moveto 0 32 4 -1 roll widthshow}bind def /wsh{0 32 4 -1 roll widthshow}bind def /ST{/n exch def/g exch def/t exch def/w exch def/y exch def/x exch def 1 1 n {pop x y transform round exch round exch itransform Mt w 0 Rl y g add /y exch def}for t Slw S}bind def %%EndProlog %%BeginSetup %%BeginResource: font PMW-Music 11 dict begin /FontInfo 8 dict dup begin /version (58.01) readonly def /Notice (Copyright (c) November 2010 Philip Hazel) readonly def /FullName (PMW-Music) readonly def /FamilyName (PMW-Music) readonly def /Weight (Medium) readonly def /ItalicAngle 2 def /isFixedPitch false def /UnderlinePosition -98 def /UnderlineThickness 54 def end readonly def /FontName /PMW-Music def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /FontBBox {-150 -1400 50000 2300} readonly def /Encoding 256 array def 0 1 31 {Encoding exch /.notdef put} for Encoding 32 [/sp/trebleclef/bassclef/altoclef/star/sharp/doublesharp /flat/natural/tfermata/brest/sbrest/mrest/crest/qrest/bfermata /longrest/breve/semibreve/uminim/dminim/ucrotchet/dcrotchet/uquaver/dquaver /usquaver/dsquaver/usqtail/dsqtail/ledger/vdot/hdot/barsingle/bardouble /barthick/stave1/pstave1/uqtail/stave10/pstave10/dqtail/repeatdots /ustem/dstem/cnh/mnh/comma/mordent/dmordent/imordent/dimordent/turn /hbar/accent1/caesura/accent2/accent3/accent4/accent5/bardotted /caesura1/little8/C/cut/tilde/thumba/thumbb/ds1/ds2/downa/downb/upa /upb/iturn/seven/four/hcnh/hmnh/xnh/xustem/xdstem/fustem/fdstem/six /gdot/gring/d1/d4/u4/l1/r1/bs/ds/fs/us/.notdef/tick/uacc/dacc/grid /barshort/breath/vring/cross/trill/scaesura/lcaesura/sbra/sket/rbra /rket/rep/repdots/vtilde/trem/circ/cutcirc/slur1/slur2/up/down /iC/icut/unibreve/accent6/srbra/srket/angle1/angle2/angle3/angle4 /ped/uvtilde/dvtilde/nail/angle5/angle6/stave21/stave31/stave41/stave61 /hclef/oldbassclef/oldaltoclef/bratop/brabot/direct/five/major/dimsh /hdimsh/gcross/ledger2/srm1/srm2/u12/d12/halfsharp1/halfsharp2 /halfflat1/halfflat2/icomma/accent7/accent8]putinterval 196 1 246 {Encoding exch /.notdef put}for Encoding 247 [/stave210/stave310/stave410/stave610 /.notdef/.notdef/.notdef/.notdef/.notdef]putinterval currentdict end currentfile eexec d9d66f633b846a989b9974b0179fc6cc445bc2c03103c68570a7b354a4a280ae 6fbf7f9888e039ab60fcaf852eb4ce3afeb979d5ea70fde44a2ae5c8c0166c27 bf9665eea11c7d2329c1a211dd26bb372be5822f5ea70d99eb578c7befd44cdf 045a363056e5e1cc51525ea6fc061dcebb337208eff729802376a2801424f670 0e7e6397b28f15bc10b40012b0a3eaeb2693e8f7f627c4c9c7c6c5bff105c1e4 1b2b9e8f09253b61177e95ea219474796072f4c3189f7cfc7630142215dbc8a8 fd63d147033a0c9c786e17355fa8d996a3a7b5d213ac8011fd31a12930a87f86 374c1921aaa9ed181b43541cdf6e376bb4f2801faa9b01dcc0569ac59cfc4768 afdc549a30d41f5705e4231d3bc540161d390b4980ef9fe489ac4df99f83a8e2 00182cd152eb35a61aa915230f1090fd0bc8d4644f836c3da157c564b2a8fb7e 7d3203ca17088a579aab355eb45038ff45d5eb2357959a2c7c04421c41d3b822 d0471ae18607c80503c0b319348683bc6bc87e075a8eb4bb34729c4145b2b5a0 df1a88b2d7e0940aa3d4bafa502b87d9313153f661019a817ab20e1a772ad0d5 51ae7fdce4e21f426a6726c39c88124f8cbf10bb7394e90e9d28efdffef75078 f7ab1d7fe8387e1e65c4ff67d054ae6a0937e4d59889656ac37afde0362d76ab 05f9c223c52f04b6279e055419d3630d5057b50b4c4492891f7a36d03859e220 2d89747f1d486e9449a3448f81c240adc9e5476c6de456d76c4237055c0c30b6 80738211ddb90bcc73982467076cba36a60ec6a6584d9d9bf0df2b8462ceb1be 79c1276d2865b0f3518664a960036ca2d00c7829a967ac16b5c833f2e143efc0 f93826a8d09414c4ae7cb17623edc8f599b895ed0d3f4bea8bfd9b414cc39c0e 4080180fe8286b05065a10df4d691d38f73bc82d6142bdded07ffff7017f7803 cb03226f4d6501c203f8ee4e08ff5f8eda81278aaa6378b2d95ad6dfc7bc2e11 aa696cf2618a5737f03bce6c46c635caf89d23de81693159167b74cda0a15dcd 491b2ba489f28d410f1835d0fb7a9be1e3e5e7b76996e1d85cb9b62bb0619bdc 78b85ad2731fb580466cd92159c7f0e53f0896e154ec770cb55c55b09ec7b405 251e205992ac88e0bb583792edc9a21143a3ab447d4769e84016aea06413b52a 9ad5bbf68c05b2d1fbd434a1d61a903b6d2e81cba8f422998f51dab989a49b7c 2d0ee5cf9f5cfea4fd5f7686eb2e9d29bb4fd4b117bd407534ab7aea4068f8a1 f3f89f61f1b341c9c31755c876038a2707314ba7f51f25ae9b81cb7170f24d97 f792f849fb28eb31704aa5826296042664f4324d94dd8644d43f3d3ba8ef474f 37ab52149ca62286bc986a59f4dc01c95106a325ad9eb4e22badbf89c3c329d2 cbe4d3f3c64fd1b40dd441f2f8e45df63e6cf107d5a0efb2930fe55c04c6d01a 23b40b4706ef7ec9e6447190cebceb1293800d461512b42c06825d1ea511b7a7 031286c05dd8536baf9159f6d3ecb5c23c3677795a29aad9be47a0d7a127e3ad 051d57de2b0969ba89d906f64a4834fb7912a5c1f39a8cdac5367a06ec532870 fd72e532680e064d490d975feb7bbcdd84ea1b060476b844a6fc153691d6eeeb e72d71ef5ee59f6bfbfeb9e166e0304f50b91d8e401fac3257b56ae63d9ac6e3 a27fd33f1b43075c792597372d77a93912bc83e4aced15502c9f549e725ee735 8cf609891f05fede798f758940ee09d2947af5a290f2b4540b6a931d9d8e1176 5c0c4f14dd4f2ae0a056e42b7842e4a37a854fd70f2268833d8b0a5a5124ac92 d5abea2bc4a82267734407be662c088ce63084f851af93ed826c3d6d417c679b c3d5faa174c9248fb2706f46a9611cd21c2952e70ef36ddfa951b6df819c7c49 04b8a5a08ade3960e46860fa6ed29caa9d332be99f25a6c2e627402f09a5e140 3ac599195881326c44e6deda9d38ab32544e7b21749b5f933ceee3818853248a c038736c4486f46ff5853684760814f2dc64f282f7619c34885396a300e041d4 4931a4951469f5de55d0282ab491a456ed329ba83756285e2e637ce00e925b79 6a5e7de954b276e92b958ea4119200955d906a275b2640f2881224816febf38c ae5a330d8c4d31c68dac342210d5b0ed554e0d57e7b486022aaab11ec40753d8 ad557122b58a7ef70f0676e41f9c29feedac4d10808370b03202d11e5911e056 5502c18e30c2086795534f946639ef524469e7628abf78b2ad634d1c30315202 2bf1ae1c038093dda6e3dd5ca785626841806f19db4edefb4352255a40a6fd2d e5b292d963047035bf20765a1724da4ceb6596e5fa97d7b8fa9f3ecb4b88197e b88466dd7b189aaf8603193b647abb7bcd00005212a18872c0145d3378b097b2 8dfc782b3bff19d16c0fc15c0dcb4c59318183cacd60f4a6bb68be52381277e4 f01f081110b5549a1178bb1f260a83c6185569012e906e6f3e2efd3be510c8d5 359170a08dccef71cf290c76297a1a4b5cc979a25285a9bbbd06a29109fb026c 5ed7c864cfbd56af94b980775295d1cedf1e2d29bb4374919a1837a325daae46 3420aa39e8adc0a6d1508ec3109400eba448f2c83949001fc47f5cad8d4abf40 05805a03e5debcb69a94d9de331cd65d7f1f6de6141eff2045466417110ebe68 0b7164d627bc55b3362049f5e720c1fbc78138cb39eb79e66cb7f7f0bb778afc 9f71dadc6df0dce778b2a5500ad6d77ec30ec68484fb9acc886f9f17b85a057b a9cc45cf70a2ab800d6a4790ea19c7bb8042ee22148df7df8b2a3b6a024003af 4ff4306ecc2b060304f8c6f66b8c0a6e93ce65360a9cd69b61f86a8dfb73c68d c21db4b6c6dcf79e667772b21c7c466e32c5d527c69368ae0e89a4d4cdb4891f 3d4d979f9173d37b0b14a078b061c3a647d1446862ccbb83e0f0c52e55f62571 d261f9025b9b76b19a4387c9be977a75a9f3081fadd4a0497049db2b25ed2e1b 2f1d2330b45df4d9046c5d6b93cc37b9f5cc6efb382fe3c1cfb2149369e96049 943b8bb24ac4cc79d6f5700e7674c56b90093ea2040bd564d03b248e7e7501bc 984034757fb9a8ab0915a676cbd53f3f680aed60d401953b080bf8339b2e86bc 5afa1596cd942d225a2f4955693042f9283b5d609f297a6f60a4a1a1b3af3b75 b2ebf205ea219cf61f378872247fe2284ac99a5e29a31ea3daadec1080e9a252 504d9980bbea3845e145ca1fc919db615740a5d81e188cd9ec7de7467f77e23c af9879f9b562af2382f271794641e9c498cc7257071a9a037f4df9df87289d8c 973909959329980b26acd05b0ef35e9b60101bfa019acde608ced1432c68bd26 1b4db2b2f16deca61e710e8bab3c99bca591f6b1491ffceebba2c75a3e7802a8 e5170e660125475f75be93ec815304bfa33a26a1371c21ce78c58d2c700c91be 8aa8d468fce514189054972132e57e69422dae4588d5de9f3344cb59d505c421 1b8b27fc1c22a82a062d76ad9e6e3a4add530aaa501e20293be5c19916331c05 ac9b774007afeac38ad564a281afffb6fd41002837678f0741eeb025ec3d6c23 140420f6943d17a1d84e301863a849290aaad57b545f97493b1f3693fcceec9e fc8310bf367204a88570d92045d3dedce44692ac4858a4950f39903095bc974b 067283afe304317fa6c0eeeff03cc68723468d73d881caac31300836687ec574 c06e46cb22fcdc7c315b06cf8a13c01830498b2f379c96dbbc04b1f579f7fb12 d8c1bc2a676fbe690a6787fc77414718b5dd3f742689b39aa8cb6f6a34bcebc4 9b9aaaee962a77fa014d203415495311226d9c03c80b6dcbad39450fc44184fd e12a276d4e87cd954b0db7c58049084003014dd1920351a6a59b9ee428bf67fd 1b931e652870068d9feb0866d2e825e6404056ee589c7e406718004e0df8cfa2 04d21df791632359cc821e8652e6104eec4c1207c704167f70010e9afd6ec0aa 02fac84771d34e38bef362797bae62cc06fe81c069bf04d9edb277a90fa75f4b e79b3c0a8804adbebbcad3c464aa14a393f6ea75dcd5b420f9fb320398ecea1a c3acc08af37f7c14f14075f95c4961df04b45088dd75e338a2629647ec421849 f9948b9a17e33408239210566599f792a4c0934f88069a146f66b9c5bfa541a2 4b68fb5bd566f3ea28053dd386d2babdd8fe08e9763633933844fa5417f29ba7 60b235097764864d61ae1213aa8d3c4436911ff0b77aef7cb6d899ce0e8c2312 66d552dc691c783da623fb308ffd42f141d7e05b9db1b5fef691967f4e42f77c f0b3ccae74717e0b0ef02f152c89f9c1b1ef8cac955d3c024c04e0c8830b7884 ef8490ed1fd4b718977da0be6b8cef615ebd95e41c04bf119e9064a7723c8e67 2f84a9f02707f08c1423387092004c5499f20397855b03e12a48cfd90e9f4b1e 0e2ce907e86716c43cb9fe377cf4a38afcbf860074cca3c3580730147bbd280f aa4711be6c7ca74633545acc6e1ba2003e9eac90099a00406cae1b04b906d896 1bc0589e9046c3450ff07624f3e8bc0241e3e2356dee09b92ce70d48a52da586 8528da6c89e780f1b121839418ab684a92b4187d184a8616e73f8d961257083b 935358f1e6d6fb68c173e5e38969c8f2a68724ca12a86ece19f1a79ac9b9913f f14c9e37d08f89e84b1d6d1ce4fa8b8c32a139c950f6e83471b38702e695bc7b e8d87c77805d33e6536a5095ceb6e726ed0500b41c941d173233771e6aca5e2a 8a0974f6f726bb5dfd2f7adfdc64095d4421984d879a40e27f3da62a433f03f8 25465338bd92d7408ab4b30ed357474d07f49b4a9d5c5891c11ca620a0ed4c9b cb476ad89efaa734d9d11e55bdad6163c867c56543d2edf445f8336473f81d72 40e675ee76e15e68c7295fe4c4727049007e3fd6a3bf5be662846c669965c39e ee26797951ce86d4e2db76070ce1217c9c9dbada0a8e53e450bec992724150a9 34f7ca6b7c092e12726cf0ee125608a4e58f3c54f1b3466c47acc11a7fb86d15 56bc15dc4999f52616f1d45745a4719df7849fca9430b7e2fcf0c72dfca8e2c5 b205f65ff646084b03779616126dc0108574d98b20dcd787f99305e593a3ff30 39132a62240bb9c47f7aba86bd61fa30e7751cdfbfb630c159d016ee70c8a273 1a167494354bee5fa39bb0a233580913943e029ce518d75f30af7cb2d3ed2103 d8abbac569cab1a9daaf125e79d5b327e69489eec94bf0e537724799f6e42c6c ba604976a498266555197e5290968486e625bb933e6588019e496c647f574522 7f8817ef98e28a27158cc58a48d264f6b95cbf2e1d92399d423e31ac7a077588 466f725090359c69e0fc91072df81fadd46069bbcefcaa77cfb7fa3e96034026 35a8296bf9c1d0a7fbab44a815ab741f36aefa60b2825671b0ab55db353d186e 90ed303b9caa7d0f52f9b74273042c3297e64b7264f38c0b849b1099a2b1ead1 89c6b6ee20b3f32aee24ba734e809ae500f6d48a50e6eadbfe61e660028476d1 254dd0467c140e698527a278c910e03f4341f0dece94a430db441f8a4fa73954 edc0534e2bfbae3205749cf27945909d28da83e440a5558aaa8eca7a9a4c8243 f0a60c5211ec2197fac453f01520ead1b20621962324543c2729d977cda3eac4 0ff0c0fa1096315ba2eee3d71cdf2c5bb1d9a4d4ed2147dfbd673f79cc1dc21b a77ac1096bd93b15f31467919e432c204640a81694abe315fcee9a3e9ef27f86 57c1d4aae410a23e44d0ce9fab50f953c81e33f6ec39837b20cf8fd0cc76a029 8f12e76a4c78b40798819f7919a0d24a42cef3074b8de0cb5e418201d41f431c 68e92c1827a4c9cfc968063e76038a494bdd4fb5e957d57aab2fa31bf1830b1e d3bb12f34f3fb17bfd73a349d706138da54671b43450f22f40cd7cbf50476a5b 2c73dccace0b74fa671007e4e95bbd79173c5d37047e511d49a110f81ff7ca8b 5fe0ed67a5efa1a87670db0ea31a11ee76b4af2dda3a6367df3c2b4e7cd868c1 604d872998326c710c206b78d6b9ebeaa14ff4841d18163a1b0738b3c9c2a952 3ec59bca6623329181bbed1662963564b1a7b48e08b120c0b1e2e28e9f076196 0f7a72f4118dfe57672c96ab72589dcdb652ff0580bed4a9c42ca35fcb1e6595 bf4fb078cb8531d2b589b0258fb14aaa9752283e94da2822810fa00220ecc76b fa0bf30ab93c612d2f6fa13c02443dd179c5ccfc0312d70d4509c558631a1b83 00301b494062dd506e84bef5d3e734f6af4b506f9b6ef43641f25a699cb7f70b 646e8b334fa8305bbe6e2f9596579f7db9e28c6e3cbac6a244984cb1dbcf751c 748afeea4610cd4c1cbfac10c9852a32b6f912bbe967a68c9678a83b03d3a589 55e21dfaec2921bafbd868fc6c5dbf9e6ff8d93c8d5a30a5903eaa82757ef344 ef36e216f96cd68b0f90b54579e11a40cf33c17fae2ddba456e1b85458cbf05d 928fb1ccae12f39e215c4c68b7f22ddd26d0f271e77b0f2cc2d6a9a7f37db7a7 621c4ec4e126ef4f231a2bd811cba54ac5ea84386cfd985ba17506d0d7c552c2 aa2b5fefb49cf5b7b1b16bbaa38fb408cef612e7260d088712d60c57af8291e6 9401fe2d8c879d563e7d988bc522100bd0e905a7dd25189a771076e75998d37e df26f0dd5e302eec87c087bd54289ab3f3c013b3a64b8bd4a0acdbcb32858e0e b407557f336b89be676f94fa5e41f2db1938288948b2eee549393213cebdc36d 9e241b237e78fb7226633fc67a127e48e43ddadbfe12aaa41bf7cff47115524b b853d3bef16514c2723b057e3cb74f0e6f043a25e7ecff0bf7620140f11b57a8 9e343a4fe17cafd950735383d05ea02d410d26c0ed305a619a461c08155ace2a c0888f257a301272ca78d533bab54f54d001dc6c205ff6324ebc1942320e3f8c 7c00eddba2962f7d8b8b194ad83e47b13083caf11e64dc89119d7127b9be5538 6b703d42d1edfd7db2f3fa122f1acde1ea43eedb955593c14dabea0ea66c6328 f39d3de6562fe906da301dc1ab7a83bf88cab1eb9923c5f1085bcaf02b8fa410 5c531836956c509ab18cc19bc5c248a2eef7566792982a43ec89d63b31e001fb b2ccc234e03e4572ce089d02bdf9dc0190af8dbc2c7ccc22196e3bc17c3e37c8 9a742f07edcadccc8d7597a4ed227f4ee37e843718e15da7208f8d2f2ffa12ee c007346e4cad0bb1aacf73e0edfcdc725be54ff6103eb3080881b1ef78267290 abc87920cf63f402a019e5c6e328f78707ac983bf0bc32cf4673d6bb966c9cd7 3b3c64b76a925b15225054a970acf61f123c44e51dd944426493fdf54646ecec 87e538cd1a130a43e1fd6274ac12ce5663534f65210c1e438118e34112c119aa 0e311185ca3977c6da19e0e73f9ef47ede1bc60f1891dc3302d01d7138da0867 1bae87b54e594f06e26c0e01b11693e994722daf37dfae35d1c63f7946f31167 32415ceaa09a865c28ccd57f9d41e19123e2cdab7e3e2bd29dee275f30075bce 458ddb09c2d5fea6e0e2a744009f6abddf5c34fb3caf51ece4665704bbb215e4 7107a1745424e6ab9071d2008cbe279c0b5ccb8ab61afa38b3d6195f652eb5e1 7a32a358e8ba8e02888b97e3ba3b695ea0062bb1cdb5ac5fee551e9eda4f070c 3dcf504cad12914caa34b39a494f539f1bf2ef77223c233a57f11cccea4f79ef f782c9c42efab4dbb360ca7518709ff4691fd9b9451e24fee60b2053167b96d4 f47fdce601a10d0dba330116a5dd0adfa44f7ec578c5ccdefda203bc220e5ec8 128e67fe500412d234fa0caeaf0a927d5cfd89d46bf3362e2ea172e09fd4d126 51ae59dfb15484b29ef2d5abd39e387202cc9348d00ee7a6dafa810bb68ad460 0c2e61a128d692502c2080311a7c99e30671d200ca812755a79ddc1e281a0c11 359ffc8341a508486c7677cce56b24bd2cac1b9457d2aa9b701cf9d7a74f8d6b a285e3b342e5232977abce1e51a95b0b148ba89fa492fc93e67f91042242ef87 f0a83ca51a752255a9eee173e2b2e69b4d88394a8f5584f9265597cc42fec4c1 cc727c7ade1b3407db4e0ebd6cf4848504df6cdecb476ce74aa817dca0e51c0d a3f14a1bcce37adff3bd7d08b44876e1b08789b630a3d070b53f3a8fe7ef8bef 539522d521b1319455c3999ab3f6fdcf92f28a36152a6574f62ba51ef90e1f3b c89ec530004dfcdd7a7b1c8038957ae361d921dc976b899b46f67eb824732282 e0207eb3f113c267b2154ed423f9084b56cfa1dd26508c3295d844e1549b63f2 26bb27f7ecb4ca36fe55ad817d952767b49d78f4576448eff1679851a415f918 0cf5ae1157b06c47e44c70774d6ffba7d8f86ba0160d55e21db737e10b2a91c7 05286b7c7dd9cc027ee23f3b3b46c3271a274868311d56931361dcd37542d1ac 67dc26954a733f9662dc9308f9639b944894f6f19848fbc3f44cb8bf3d5f6b39 fc78127ddaa6243cac012fe0cd52efbbed8b4bf857b3a1bb2b7e7e44bc8b0faa d715b0c6fbf4a4a9071cf299e0cacb88593fd61e5a0dc9fe7ed040e17dae132d eb17ff933db6927e892b3919cc14ca1908f557607b1dfbf48dc3d6aaa862d8c6 5dc9b2f3cc127e70d10c3a04ee17d357c93527eeffcf18792383b73459d50bcf ced1527e0520a397f7ec692a12f0693150885fcee5087b5d94b2ed81ebe967e1 fc32853cb465bb8b66453574c4ba998c91641e35a2fe6e521883fe344b27cb10 7031369baca8bdc5f4b9a2f44180c0ac498f171a416c8fdae8ba089819eb0256 17094a93681a3b3d100ec7f45839e9d42a09d0d75b8a05f6da5458eb6151be55 3fa2413df3364cb39a368d22643cc13b695eda2ba739e77125516dcb203d4764 e21c4075a931da7518471e4251a9782ee15bd2a5e94398e09a07fd265edf618f 71d439f8129c6b7402a05ff14547308fd9dc5e7c96f620a2682b50a7859eec5b da71f4c6e12059e8dd3916bfdfd0e151fa4b5aaa90435d1d42ab092c9c421657 d5bb283717759416257016e9314f54455ec9448f77df7e53c24fe8d96ec1c68c a7fd651af1e71686d2347af1ec6f9b790c185fd352ac03047f6c920bbb872fcb fbdb7566c75ab06d93278df61d8070a9951766b46720da236d8d4e7b4893aba8 ed4ac9406fe383631457095ca9993db527e7a37c9419b7abedfb7d41a460b9c4 9fb39efcf3631da0dbd315788ad98295fbb62e11655c0cc1ab2fb0e54e01ba9f b16cc2c1f82e48b3bfef4b4d339d7f0df8e001dc2a5911b4b92fb7eb428873eb 8a5acce25fd9f47faff3e0733d38b86a244ea1952ce528b8abf9493b1b307bc4 7a4fa41bbce361d2a6bf9a6820a231a58e89a9d214fadd6aadcbedaa150a4f27 9efe67012114205991c643e6ea1411203926bc0804572e0b727913402a466f8b f111844675dd5109212e5447f682e2959232ad21a218ff49479714aadb0618d3 fb488ebb29b2939059d1f794c277515eb400e5c626a811ce2a7a247e9e904b64 5609b594431433470ddcec6974f0f3d77651793ad7ce23ee72111474cfe2ca02 51c4d90c0b02ac9d7670c3795df594074759f38fc2ebe6a2a797d54628a50676 6f1e2263844d597fd845687a44f72a539a8661a9a9064c78071c040d1f0a45fd e2cccd2268919227e8e2c05befee614a9535a6adb324624425290d7032f6dfce 19342467ccf344114425ca8f9ed74899dcbd8d373879ca8f83d953021259f998 338d2e7a5cb54321f8057d70d5a02fa8aef3aea24854a9a21e45428a97397cc3 58aec6ec45fa9199579406c2e842549e1639d80b2a6b2502f28c8f4f94fba297 938a3c986ed1dba4c3b384bc43d7bb6becb71195475398313bf8774355562800 bf86d8f75101683880ae686ac36b757ce0e4adee09ef68f8fb5e891e956ee62e 346adb50098c5b7ded6374bff775ef4fd58a5910d980a635576e20e7b11797a1 7c44b0d347ec9b56cfca607866ea109d54fc992b1376eebd4d201a876e8564b9 f8ebd34de83bfc90c10d8ea85b556cb5fb74c447bde7329334b29c788cae8f02 de02daabf74f0bcdcf64064c91f366db4bb68794c9c41765bfaadfb514f487dd 096b2ad1f1404a836a809a20dc813a277c749ad0c4c45e6374630a4999ec512b fe9f990a74a05ff7e6c2b1ade33fd14670c6ef97ad99ccbb996b12d0172a88e1 b923f85a17213d52ae7e3886c50e125d38b8f97692cb2a5b3e03f21188f763e9 7eec87182ae517e42d9590f73c2594a7e5f61b9a5bf15a7eed29a754f729d532 dfa74519696cf75ae98a471ec88b3ed550730f50f519ac629691a47e19343c05 1b6d466acb89f50db25a9beae2b0eb79a96d2c0189febc516e68f70aa6bc09f9 129b0fd837e87d16fbe4a7a4456663cc7346218be042b965dedc22b7cb5f811e a445a5651759ac076b49d476e5f89c218bda4ec9582c95149b5f2d8a49c80ead 3ce0df6ea52db964cdc0ef2164bd21f818ef287cb3337b4d8a6aa34a336be17c d808a00949f82017f831b771473ef12a2661ab1fc21c3e344899d6a73ef7ff83 694abb48072daa7841dbb31498a9cc29b07bb0dcf709cae5014c2cc9073a1e5b a29d67f72a030496798f04171ed6a45105fbb58ca261d3ab9dcb57fc28b50cae 57c4203ae09a58bbca20a4613bcdff264adbbac8ad7ea0c2fabe4f07aa453618 e1591258a2a18e0fd974135fb890beba5bb115a8dd6491ad3299e27506ecdb8a e9c074ad5f1a553bb14f1aa35b9cabcd645ee452166f331319a5a953a922cc14 5f683e88ccdfc3d64d61b317df7e6022e9d50b28aba224d6a03a34a9d8242f39 e34cd7b5e46f37291f5d75bdc1bb586ac86778c1a496f321808cc0da6fb3a6e1 d4cd8c8e37c1e2c1d98384ea5a1654caf3b360d4fc77c3c3faf94466de5208b3 2935fde906ebf2d98ccba2cdabcd8197947f5e801ca0981a82b091a51c8ae0ba de5b69f3c9c0026fdd590e1e2cd526e7f7096570a53bbf917ee0a2a519ea4f15 f24cb5a8dd227ef2d8459ed65c31f5c19c9270028ad027c131e73c3c6f70b9d2 f2288bf3b41affb66db183903f464999bc5cf41602a50db4cd4f06ef1105214c cb7eadc45b06dc96636884a3d6d7a8374c57daaaecd35f52aa4db430e1c63995 bbe2b7bca8360dd4ad7dfbb0aeac6ba567251655c0e587d9dbf612b92bfc10ce db038669f091a3fb55034808c478ea0e0896037a1c5b442b8eb5923bda950ff5 72d305439fa14d73563da1105b1cb0dd7feb729e7d02368071dc03f11d647e25 46e5e870a784152f3317900f59f6f8f0d5a585ea6c1a0d5315625c0916906302 df05d68b2514a493918d94d99cb53f6deba91893597a866fa8383288acc52dcd c28693cb63d003a4a3248005b70e35cc45292fbdec55ae303f37ed3cecb8d0bd cccd224b63a6328ebb6f1192e962b4d9c160f30b753a3f974767aa5f8d5e9f11 5f6a834747814afd7f7e7d4e90d46ede92f8a810311bc28bcc0027e674efdcbe 3e40e2378ba1b9d7354e8be4e313322c2aba1e03d2f810cc09b78197e8214d46 6f5531094a7b8cecee5aeb2c693d4b382edf7d9d715d4cd12ce39d510885240b dbf096994f947ebf264ca3848ae72b3a2acf8cf2904a4b5b2fd5a3f590f4a475 25b967f5bcb647a537b6a4bb99be6ba00c9e96a51b2345fc48a8ac1f7cf4c9eb 329915effc052bc6fae5e25b08151e54129c8f5ff8896d0d4ed79b43ed124865 f79622a6cfd362e64e8e88e417a7b8204f133cfcaa7ac70df4b072bd808c6971 a0f2cc29008d5afa6648411b5deba3aac749fba957b0be5dc72696d1ccd3bd95 b2ada03d95bd1c2e7a10beffe96b9154cf9b1ea22c5ad3ed8d79af6df9c5fc46 7aae44e7f8558889afee261b8bb6c43785152943785407b575aa9de5f6c921f9 fa660b14626f5e1034cca473a6a7c16e597492013f9531c67a35fee2e56a2ab1 e4b9e834fab1fe22a52d785dc1995badcc84f2d32e0f9d029eb0ff5eb2e69843 fa738bf19d33087e9c0618371f5098b1e2e309d45485b4d6b37e557baab7152e feebd0b2c10c1a45494853962e0345b6b72967c886c311e47a1e5896260757c3 29d82d254d57e38e0e89ca1d9c746ad36e246978f307be1329914e7862a0f8cc b14f06cff9c03fd6cab3bb4cdedab7f0e1711b3d31b022af53cd82585ae82145 dcd76f76fa2bb84da98a2a3e46fca1d9e7ea0a91866201e08712220cf0d6d5f5 91a3283ee986ec9e7f25efa757a93322d0eaf07e9cdfa316ca5f96169ce85895 407ad045ce86d9f35b49cfd6bf116d22d70aad5777dd46aca0ac938cdb0859a0 96a63b955eb4c8d8666179b1e6d95fb193889028666c17ff613ad70c8e9c84a8 c66cafa7496fefc65a69b94b9ba5e1d5b944b8ffaa613fd3d04cc26796c0a5ba 2d6d6bb91772ca88f254a48ed8acfda7532d98f9d5b7d88cc0b0e57e5d02d327 4be18983b93de871c80dd536b7cbc274729c142a869ca7d6247c769ce44fb92a 90b197da1818303000994e0a6cce0fd6a524b0d5d33802ff7bc6099ca05a77e1 5f5b1a7a379baf044715bb6cc9943e5be7feda7733687e9e7f960594d1cd925d dcc26c02a8f37102c39272fa0dc6fc3f5fb20f81d61131e7dc39e862aac67cb4 bb9db02cea461eb5bc66b3d0b6bd78afd0f9536f5f907d53139b574fd40818fa f3c85343b5b8e77b8d164bafa35075acf022679a99145c46339f12a31bccc31b c17731415fd5a998d2a8e33c4fe39c1fe4d711dbe2b0ffc47a171a1ae9016c20 98f041ce3a0240bed3fd2e2e174a19bf5c396965897b3b64019e4e22130be4fb 6b8f3589719040c2b123716934d430aaec0bf30c04ce6e1980552947d3233966 1f72ec517f6318586521e5d4c45a58bc53530fa66efd6f7ef3d94fcc35afc26a b4dab34757b5933c85717090211219dafdbcbea0d8dbfd99fc05288feaaf19bb e8c905b49e7aebdc42529c6ec1f7c3ed523b399f2a71e61448b8829873afb8d9 d3cdeeafcf60fdeb9c878f6386fb58f180bacf6e99374e89e2704d3e69262b16 07547873c342d897940b8496d1f38e9088ce93dbda7e866ccc8c068fc7210223 1b27bad26cb4eb65dead908f9542a0b68b7a5d0b4ed989a8fc74f5e4d5a1fe2d e408abdae204cc186e0a2b67749500b3f8c51260ea094affc634a4953447c3cf fd2fbc2698bb86143bce8b232722518ec936358c7fbf69effbebdf6c3610ecc5 957fc30ab08d2e2f12ac47ddc6322a710b76f900c3dda591f048886f80165704 1f712a84065107083c0f79ea7fe4f92faae9c9c04cea4384478390f1affd066d 18ec102b5154b78ee8d468a4162c0b3a10bd19e1312e9d8564d5aa5da77f7e56 1b6852c00138225f9101fb1407fdb9ea605c8e0862d81aac19b869af18630b27 38d8bb635ba12ec2461ad673a27aee5bdb592d8bf08da6c14815ea3e59466eae b887ce5b0ec2f54dbdbd30424f317f45c6ae5d1cd6f44316c122ffd7c178fdbb 8a068cabba00c126bcad2f17a454d0810a0533629ff6b1069d5cccd5f5e52d1b 07869a59eaef3456267bf050eeda457c1029fee50b395fbea1dc6d7d7cd18d76 76ed7a78cdda4f105166f61ac728ad25beb547d071e0e515840dc9559551bfdb 454b080cc49e268fdf556161a92fe7d93219b395625eadcfbcfa8a9ed61bd7e6 f42d58a138020f2a69951d2f67641c39e98bb2a4441b0ebccaeab4e731e734f4 136e6b193011bb221ee9d099ba6a23a5f1340a1234a50a4cbbd172cce6cd2b60 15e10de447c4df7db80ab79c4840dff6c7eb06cd931aa58c001c02229220086e c1f2c3544af0a581afb28103ff5ccb7488ba861edccab702611dcf1628f77669 3bb25210bbcafa72dd0a5955a85419c425b9b176ee110f88e341751a56a2dc61 209df3ba68eed540b6df151f60ca61a8a4f93456aa864e179ddab8844290677b 669ccf3a67a2025b5cf5b4d7d2dc7e1e665bb55e72b8d02ef4735d6c68764ed6 93322f99d69636df06023648c22f86953046bcc662d6079ae2c7314bfff5f5d9 bbfe514c8beb08eb4a469c2b8e496671de9227b64ec3a26db6202935f7b92a6d a03d7c9d53126432b6337cccd64c650e0d4d6e3032ada066c9b2b891f5b74900 a9c3b0481aacf53671ed0d841106f05792d76db3626655f8677323d0b5d817d0 e7f0a221493ca7ffa8ad261e9663ea965a3bc82ef4d9031103337a868f80ab46 4f4a0df2f735b25807c9f3268a7e0711ffe63eddad14787806e67ec144ef1d17 083343ebd10a7e9aff9e6c1e349c7926ed0f3d878fa8b13f2904cf4efad6ca39 1bcf1f1f4083e5cee93da0746c5cf983004657c5c8fe4eece7dc424f72866db6 86212292fd27831b68e36bb169ed0df0d23eed7c87fa905de280da096e57e140 69e00680deaf32aa3986d48eea8811c87d7082371d3d48049611253d1d0c5e17 c80a7df4469c54882ab077cc8f0defd8b88232205c3406db6bbb157580bff648 e16b07a670f7fde9388e018153644252dca0a7fb24b50991c2e699c90d827fd9 b5ddf4cb8f2048f8d4476b649727d7654fd450ea19a29e4bd087a073404d6406 58c8f54ff20565298cdbe2a6cce4a24e2861a92b14212a05e854d04aa4bfe13e a5fb10d7736a8f03e6e306d669bc6f6cbb29b34958a8f4208e4b394959fe8668 e540699edffc8aad936f803b2abcf963889c85bc44acf6c9cc2ce2a12716f7a6 37c07d2d6879ce05971c3842d69bd02a41e3da3aa881eff4a38f9997494e922d 550f63938ceae8afd845a348c43f45f3f7173ddff3f885611d402f2477ee706d 8e530fcd2b6ea54093e445adca8c022ee291329e37228c5757270e9f21a5b2bb deb0a0f2d25224b0fb67a610cfce5a7fe61dc6ff049f489f1e15699a229d1555 fa976700d9fa69fb212aaa6d8a7d5604ded821ae4c63f87af0b4272ae421a29d 8801b6025ae855c0b1b978ad52c1a8869d81a2a50f65806fe9627bddede8891d d8a37af1dfa7cd7293c3938d32e410bf39437bdf149cd0ceee8809e3e8bd9584 aa3588ba05f51ed661bd48a1e11feafece70752b7b9ccd8b590afd25b0d91843 189c395e9c3409117be9784048bac366cda47f117b9260318bc8a894045e5bee 3a1e39af73458bd24b269b5ff40b96abaa885d1e895447297375eb8493d7282b ff7bd2b53ef951d02283d782e1bbb3068d2bfdaf811b6d4dcaf4b2a962783e12 f9f6b211bd4356914f3e3e7a3dfee75d69123468815e6fc7bf6e037fde16f129 ff01ab1eaf878bb0a12620a9aaa6907c4c88c18390d11553507d8d58a9ad0e51 a34ab4ba2e2128ad04deb5cf7d232d245ca20323a5b797b566ff73fc6dfc8bfd 262ca73f501e8d62b807cf9239e32740a2c2c7e6e3b3049508cfa7bfe22e2795 c469e5aa2c2b944c62b734b983024ee9541b60b9e9dbd27e72625f6cfe218ff9 417a053298ee1042d72f2749fd4b21d6afbeca64cd21722628dc52e8d9a675aa b4378ca91ee21bd5e41d78f78208db17434eb55be3eb95f8e69957c0ff3ad892 bbed02be41e9b29d6dd30b94c0a8a0c3a23f5e1906a2930b434e4520148f17af eb3a6f22d2bf6ba1f23c3eb89b66e14f20e409671c4b65f80490c8a3c60bae6e 9a2c69f153ae23b4117078eea05b7c40f0b484c8d11ee2b563533b23166b760a d3e22fca2b5b5667b800ec7037de99a585a7081d565eb61f8e7641f58ac1901e 1030da028db2ff84da46b251061212dd2d90194e5a8f64edd40a2fc547d5ae86 86bc73ff0a665456746074519505db6b1a96042b1674d89e1b00329deab4d97b 86a8d3edfc29fc47971b2e19dc715fe9a3369addb725a8f4b14094a4bd81b77b 5bb38ccbc7a8e1647767d3d660dcd19bcd09c1e5f9237ec7d37ee1930df5f0f1 2d0881eebd0cca2fcd994fd445ad2e620a7386c3a10d7dbda53d5893c4fa70a2 ddf4d0d5af1be8049bd3a57a580e5fb587eb5e3d0aaf73d40ff2134d17ef736a 36335066a493bdad7b4d5540a00cee82bf1b1832eb9c06325f7d2591bb1f6a2c b4ddfb4df9814dad3c9a59b05d57d8be208810831fb650efd8bc629c4c006e9b adbf2a6d0bc51cd88c47b6518e9183d9f25c4de7c6842f37cfd0c44518bcca18 6cd7d8709bfe03d9cac1ed9e19e0119ec41b6028fc2870e465ef7c24118ed54e d81de4113e04a7c4eca75d5c9f460324a84af18c3950b5d253fc11325a15af12 0e36f90bee4787a175c6ab7c1a39be8ffe1324a827028101243f60844594737b 7f597005909fcba78840e6297b099163a356c77032055920da96bf7374a5cd38 f71a74a4cc74c33d1be512f1a1af7aafd876e1d5eb115e945adc76d991b13bfe 165ef522d5e6b85f8da52053f20ba774670ba913e7fa1cce03293a4cbb5a8969 6572e555aa0a83fca4557954d438000d29bfefb09d87962751c77f15793a83b7 cdc6e6f0c4d7fad961d4ef287e00d44a1f61ba6fc0786c13ed8a2550a1914ae5 f1eb15a53984f208e755a9ee908a48b8038d0c219aeadbe303c2cf28c6d7db63 fd1777db279471c852890d0a018d7660617a94911be483486b2c3be1fae8070d d929d68c2356d58d84986662ce0e783e27852b4afdbf8c97f1e47672a96aa0ac f8ee51676e0be143cb4dae6cd40628d0b7012f1ffd638b14f7311f33103fb53b d91e689cf8b6d4930fb4da13bd6343f97e51613b9e6ca03e2fab85f12b1cd835 1078b58f1b82be751a2dcaa1907b2b7bec05ddc488d7388e9d1b29543de2ad43 6b75f758b144fd7b93a4e3876dc06010507f3e7037f3f8f078f24fb5972f7e73 5922b8942dc840cfa4e3d713026fe17362a47fc060c7282a9f7684d89921e1ac 2963a1cdfd4682857b4285e68483576bf2a05491d74a390dd017a95d0ebbe786 8250bb41eb0aa7226bde3a4dfb5b27d7f97421029f2bcfd26fc1a0f3c256b9ae 837aa46745d5de4c5c275ae1f625630648840e9fd199a3c4d00262c696bcfbe0 8c7870e1d46c02a919e381d27455dd4ed5049d33eac72c56810409a6cf74f242 d35ca15c50cd05b546e643835cccf8b8b7ab291bb362bfc92bae2d06c815d612 309ecb8d79321f1a633a934d61a4a0c873637fc83695b61135748ec860785f60 6cd96e593035ccb3103ef1048ea34dec7e52a185915852151dbb086768085f47 9e89ab18c2cfc112b6673118f12d7665c5adaa6853eb08b0bf6061e0b8a0adcb 86e2f9be796a4586cbba8946c9a797aa830858ac6358c4dc5ec98d6e3653ad65 8428f17dcd36cceabdd86e4a2ae4792444b7daeb08958ec834d699e4f9e960e8 5a883744174e66c192f05ab50e2d7978325436b90e06d67fe84a1010b3ad5e36 3a477bcdd07f49becc828dc7f48fd214fb139b57a237ee1e3668255af55a4135 ba74aa557ba6287fa08a4805235fbf4373ec0ed49aa31fa3f99f990f2ce9c12b b54bf5b52f80dc67e494b0958f473f9d0bff8831a33d17dc910b6dd45bf2ff37 b1eb44f40972d710a0d19f6046afe4484ad2a48412ae185ca10c3ac5cb192edf b172b5626e7023012a6ea10d9c8d749b0d91c563c2b9c025fd7cb4ccacbc5478 5bde2cb58d942e2c9fc3e4b22703c1db47f629ab36088cde1105e7a8c624ff7e 01d26899399ff91f4f39b1150dfee69f465f44a9f289c78fd050d7bf66200a93 326acbef82918a3bc1829452b0c3a5bf15b974cc4c85b9aa0a8e9e437819a8af 5ef3df8c5f451e7dfb18bc2cae853988b550dd963c5f150324f5348bee3a5709 c15026d9b4a90e50c8b0b8f13a46e63744e95b50f495ae6c30a612643316cb42 0a737e142d8fd6322a635641bd24afcf438b121b178d004bb29fcde186f9f873 b8172f44a6f75622d9d64b07b998d220bcde05d9f2839328105bd016cb80730f a67fcd5598437d21f60b7b184d1ca74e661a3b3d100ec7f45839e96e0fb74c39 faa05e9905e9074a8825683cd47f9efa112c3891cf8648e418f237c923208fb2 bc20674bef2cf1de80fc61c3e30669c9b01976598849fe3d9155920ae3c009b7 a7f9de4589b512b6219900c73731245412952085c619563c723d61c0270b2a94 9340b5d26323bb7857e6eff428f18a49327242a5e7e4ae7ffa30e9385a02a454 9edbe201c62fb7a47d1f217947eec329a8cf4ec750190bb8989aa848fc3762ee db9ec2bd3cb7221bb4fa7654046fe8522e4768b5b01197dc84d4f868bcbdf293 282da8a907a9ae670b6366bfbd07ef6534127eff7a7f99ef5441f750a7f0fdd7 16ac827cbcee87ba2c9c3a4e4fd9e0ab389af7a9d524dce404a46d147607dc7c cff13180b64a7ff61d4fa6b82ed0736a251f5d912d96569c2e454f52190180d8 614a372969c52351ac3dd829bf24c08f6bb5bdce3dc7cface8a3ac69b2c54a49 f61fcfaed3b3ad2e266a2099e19a9b6275f8e27769f0b4c13aaf831a0e9dfbb6 18c83d8a278edea2cd628326ad659f1e1cc456d98916f0c6d1b4856bb1919f4d ac7adddb448825967ae9a1c158b1f601a7efbec3e76bfd7869be9060622770ea 785279366700c330843b3bed717b82003c5569330da07c8b09ecbab3b013f084 6a314a8a7bf3f03727e91e3c60bbfb7cb9ddaa30f5de85da4d2dd4911c9c61da 3767f9c533c58748d89f96fc94a25c89d0ef1120d3263568a911f0978a312a7a faae86dc56ebe5af19b0b25c2df0947caf214ff95816b017481ef9e3ba594bbc 80bf7e3e8aeb52e397022b93ab95957753a094b1e52bff8e3d7f0d04a17cd286 e274add583659138334576917cd517b0394969603e833ea4de0c5b38c84c0488 1cd8c904f7b3da660cc12d37945325bf9f06bbace83f1b64fd8f997563ce8efb 82747a72c81691f88c898f11ea2c054aaa6bbf514cfca02b56cc99e5dff1a481 94fe5039ad6acdbef5843c8e4fbd04bed9d9b6af1420fae38cfd1772b2e3e1cc f7e4450a01668388fc4ddab08cc24af6bfabddcb99712100c58ccf5e9c9a17c5 e40d316fadc3bfa62294a091ed266bda81880f3bfeb6f6cb9f8c9ab03c73ed64 52ad9eeb2d3ac8635cd9d2459b2c2d34f952bd75def9f84a60be2254409d33dd 04ca06b44cbb8c4586ff98376b6aeef2fc171b07786381dd978e4c366345441b 280c8d25c53ed779369e14f6d7066db2c7dbe003500314505e1c3671fc3b0ddd dee36439ac826862509d543302c387d54cebdcb6a5502376213596596380ba14 b7880a934ab08a6abf6dd4093dec4128c8082f3d92b5d2d92cc286268f1be343 312773834d2d1f8433d6ad2a938859502d867dc25f0cd96e98e4bf4de131dfb7 a510583fba93ae8718a1f89d60e5b5ec026d91d28ab3e9ab81d44f8b010f1138 83325a09382ac02e6f7fb07fa95f90c75d2d926c8ba15701bb16f608b91478e3 bbe8762c90ec7d507f9ea95d4c3f46465a2331b859db5d6cd9b590e1130c4681 297cf28679c41a91175d4a5f4c580a1de13371a453bd5e0d38a0b7c0807f0db0 2deab94fb7aa3c7f3138042ae532fabdffdf953b8feb36631b29f5ab0bc0438c 5f9ab0ed3eb87ff056c5552083b2cc268689be24162942776f59b7f9e4f5b41f 81e5c947ae042d24df262097bb9218842738845fe30e36afd81ccf6e2c90d34c 5dfbda79c932d4baca44490de00b02ca929433e1f25000ccf537d144ecbf943a c21727920d9beb432402fb17ebce944da34f6fcd02332c53ddc0c3cc2536cda6 7f80282b423be2e01a464d062226b47b9cb5b4e45bd5079ccef3a064af2aaba0 905c5f1a3a9a333bbcae9123c29153710fc66fcb65e318ac005e551729143d67 da0dd0c698dd7e387844f603cc17451bbb725e2b531a85cac01ec08bf1b9ddef a0f9483de34ce375c835aa613b2f289d124087071ed8b4a37a0aff1981a10b02 fcf7281c0d03a84feca7443b91ae6653659df5e26fe1e0d5927daf090bf54fd4 e730348d1e83f6cdd345b5331906d30858b8944043dd5ac14859db6e68360a18 c7fd1b027d91a14312fc35a30dd12d6983fa9d9526e0559bfc376385715da2af 4908b2b2ee3388cf1fd9b7bbd5da15434739e2f12f44481527dec6241d7dc090 79ca05f15d5aaa3507ebb89e0bf0bdd55f45fad40756621200e4b883facc6c00 c0f6e41068e0a32547afe4dbc0be8e5e57836d47d81f746a931411c615a145f3 afe966876ea51677709da171d16671ecaeb08c8e5799102210c7c0e4b2083148 0ba6de1793b208efd7e5b958b04840c57b7042fd3cf0a7912e238315325f665d 458e6158aa22701949facece70812472f30bf5e8fc544ba99a643876cc41ed10 48daeeb69ab01af53d9018687bee2bb47b6d4acdf1ee04a46b1a488708eb2cf5 7733261d6453d095af9549b122c6e183b76cba9def22cbce32c49dc615c0988a 428dae015300fac0988ca0c6c710de1cec4bd2686562dd31c73d70bbf2697942 7bb004e3b5e0039fe7f069073a17144ef3301bdc8b2f64bf80e69378dfe988f4 bf3fcdb94b79673c06452035bc0b82acb500b8611a958a7882bd4542d895fbf4 a0e0ed758057bd468c31e7a746a72ff9360340bab2e50ee83f152cfe04d8fceb cf05f7198e08ea12f9b2b15f79a2c7c20025664b25dc6cd3866641dbb5b638f6 cf50f20f6ddd40cfe3ec12be71746d38f82e71cb2fecbf616bf275e9911fc886 c8dda19ae13c8359a162e7a5d643867c138b7a27af42cd13dbeb39675fc9bedb f9ee5af9bef261dfe00b7a380866f5146460f4326c02591ff735c6c5edb7d2e2 648a99d75b0c6e56e58e1ab20eb30c26df1cbbb93539de70fd5109089c085dc9 86a1149ce85dde78d04629e2119c3b1defbd74348ee124188aa072c646eb4369 61c2af77048a217f8a87d0c1be164877e38905b9c64c4ca7bb245e3f42604d2f c444db2c200ae6dfcc4c121137174bffe00b8cfce8387ee395c9e2d7796d0b65 da7a0e628f11141f1464b641f82a6d647a706189d18d5a400229ec79fa6e3c1e 561a53f006ffc78822f0a7e8517a920265e4ef96615ee775c1ab93d839dc4fad 5dcd0adb608f0d3812be8681e0b59f084761d99de6b08c026005ecd0ee54508c 238309ed46163b5fb393891d90d8cd03ba417a04d6784396e7e8d282a3b84431 df3f324c703a4988c50004c716bdb31e4eadcc915e78a6b1898026d2dceaeaef a6e82b0ee80fc15221de932095e35adccbcf4ae515b504e4763ad46ca8c568a5 e2605171ad638caaeb21a80cb5877e2da5f053c3ba0db377121a6798d59ad99d fab5488cd3b25bdd8b3a26a3805ede14114e72b50c9c8fe2a8c6384aebf27dbd 5df066b1f4476f4b9d457018fbb57c22622b9e4a3cffb970da1a887bcae6123c b46af62e50ec8ee8fee48fb97f127897313af992c2ceb38b2e7cb704b851a492 5fddb642aa7d5ff2db9dd54dc1980a33df42045e02a2ef62748384a976fc35d4 702aadaccbe7cb9752d28c3a9d15fe8389c92c21ddabf3cba6b69e857565df1b 0139de5682df570e15411924a259f42a86a3d4d2d28c28252a66eedc95adedab a7c61857886af046f66f314880e161176f93395cde18578d7d7596b8c3422841 5fb26419e6316192efe069e49d948fba20bc602f81030806a0665c9cb9ff1449 9ddc0b5fec5fe41f09092ff543a6557b399f57b9bb39ca2d86309eae7c9f91a8 3fe58466c209c521aaa358aefb0b07a8125ab587c4f15fb38e6493fffd24f615 492759cf86fe0caf7049c448929bba2ee8be67eaa0e0aaa9b5f636917cd01d66 897982861ee57528c388adc791cdd1a857949ee4906ac4e85962866fa79d529b 7544adbe7fd7d6bec3fd3ce6bf589e6fe7a9f41962769bd41ea21b3a9e258fe5 a5f8a6ce8ffac7016d5b2cd8b5f46f9d53bcc33658f5b23a851bf6803519da02 426af58a0790a33efdb65e2d6cd034c264d1e1c18d6c8b0ddb845a4bc0425329 88b00ebc782cb7c99a9fa21669a752e9e951c24309317da475601ac02d614bb1 d16d3fccfe3d2f6535b7770dbbc7a7a44055fa5aee59ee1e83ae3af53c138e98 7a5aba2257e904fb80fe99f6c98394084b3cce03dccfb9279fc1fdbd19472b58 d8e5bcd8a3a7a3a5db4f5b50dc8e1ab20629f13d610a751b8a3609e782a2d9e7 e9e703b5726a50229a3a479431c3640efedec0f5a84b217bd0b7d62071520179 895001bb04a291c250a79f6e4ffb1e121f880872e5557cf73b3d5668b7cfb285 f51310968de06ccee34bde0e84275f5ab2a72bc3f9a63f48f8955681f615f091 c95b0e944030a4ab48a511b48015cbe8e01cd6322a500b702a9f85900e1ae8c7 b98db59f0d6d8d73d546f1409d93689bf313e812bdd928e05b5488d9cb66b738 3408a5815a170e93fd30f68f82818148a0bf8786d6bfcd09442046fd9748401c a8d7e4598397eafe105882d035d45d1d6ec61079de963db02500e255c774e8bf 307bf9371f54258aa40237d5bd1581008a9875e30abdf7da39cc41ef4677662e 3f98d02015c91f234a541df1958cdf067918d71d054da3f3d3ef37d193690dfd 9d6a3212a0422c96e7b40e66b7a243a7acfcabe0c5466e7c0d425d228586864b 772d5a2b0912b061ce0d15fb76728df33e5c42b125a9fa7d5fb443d54de43df7 a47a0106a80b7c2823bf7060a7e3e81e0cb7d7442057e93b6f38593b900b4e52 1a0113c06ceaa6e5d632c7c5e9492ad0546f85313238d39bab419ab657d04ee0 166667660ae8631ade889d60972b2908a6ca4c410e8c06451ce1eec3ecfa092a f30b6046756ab995176ebee3683ba8570d69ca581b52a81a21322e744792df16 9f035497dee5701193d55350b11978cf074444691b5cc3513a3cb8eff7f067f7 96edee530ddd825671f5bccbafcc30718a1902b173652e114862815fd0ead797 88362354737e832fa7dd46fd76f8e7b140d84053ebe209b5e9556b2f723ec229 3424d02f8da40f6a4c5ee291b658eb17408bbb2bc98689d0826fdb41428ee6ae 39475c480489083bc7b7f606f68086b7b9b205b4e513af8b73da6c2d0f3eb1ff 70d97d205532cc0bd6f6d4f4fc37ae957a48353d45434c7257051b263b82333d df2d8acd0b7c7bb6b8ad9643bc1fd0b5eb0732776022d6213932021a08f0734a 3b35694705a828587bb9c4196dfc4059a9837e7c46dbe6153def24dba61d3f25 9bc5d63f030fd860e9801dca7b81d0d4dc3d8c4cbaec3b9a769fcc09d7fac8ed 4c046e0b64bb8db2bafed5c91b39fe0885cd5e6bb5fad3917d664238c4642fef 6c4c554296df92a9563a29430485ac48c2a0f02ad39398126843ba348005aada 3cbc9211dfeb94a6d1b4b14d7138d4e2583d721bc9595e05c733043ba6d86f91 5dd250546f22f9746df5c4ac9f99106073336949dbdeb1ed3dc746587c1adfd8 48dcbafe2cf0c204c44793e7892ecdb55c246cecce60f467c2991989f5be9d21 4d72a888116d8a945376697b5d7034d62a680f9e91011a57b797d9576b043d1c 4b73666a7275e93a3b7b52feb6e8424f19a4914d4f4ce621efec308d83ba912b 7f5e0089ad1c15175216c27afef512f05312e2bee6c5778c5625354b9b3c70a6 2923140eb3f350d73d06ab95c5232a86199f41695b6cfcad052a5dc27d0705ea b4c94332d917236dc24f52172c94e05c3ff9203fbd34c13ad9d9e076dba1e23e 47bcf2c96a1c8b3ffcf2419f7d5b47795d9d2923fa5905b5ce3b4f332a89c5da 71afbfc57de12ad8d8678d1f67c1898c18249faf4d9f427019445425a11fff30 9164be83b0594c5f312d653513ade66d5ddf29738cb823bee179ff864d01a740 f759f64e5ce1d82f7841118b263929951fa7896a87c7949d9ffe0c5c5fa07fc3 e3dd043a9e4ccfea80de6ab6f460c46f852753220acc9645419b13634bf351ba 35a1126d0164e6e64518a2ad5522a73fe38612a34cb6671c48bc18c919305bfb 35c57b0c8e221fa7519d5b1d6d168d8bc0375d174eab1ae6e9e44fbb7d9ca6a2 f04c813f119939714322cb87c693a2499c9c269bfda53c78e7f04c775ad407be 49f8679e345bef9d531654e2377e61bddfa4f8aebe5bb6dd862d298519bcec25 54c40969c9d1fd16e5a126cb22b8bd3976f68ecc8fc8dc9c0fbf51dd20c839d3 b921da7d0aeb93aedc761f31f3a3401f83be4d38169ab5368ff41481d638736a a71f624adb3c4a275e6b353f139e089f0e02a27bb003c8fa5eba4f1b989b3282 8dd8d049529a84b2727733df2790637e437581de00fd5aa03c516360e4644d55 aedaefa76f7f729dbdfe2fcbd2c05dd593c74f4eea31518b09d8bf2094354040 c260b7b4bc3a6238bcb61b03e6de12e3d63be9f7b5f34441d9a44304911eb92f 93107eda8946de92bfebacdbd2d950d92150d1f831d6829fad5d62c75e5860d9 cb3e3062cf867305a0ddc020bf4bac7a2d899a9481a391152151857cd53a97a6 6f7cd99c190f119185d33e49f6ab5ce20e61540b21387358f1233d2b39e69924 7ac33ac73e337a1a54e9d574ba856e0d3cd7267483581dba9491619f91b12996 d1c33f89d5dd6407bb98323467e9a6e3be4afc06c5006e19ab8ad06b0a01fdd2 ad742bff310f17f16193d7ab584c71c34372690521e0afbc4e6051025ec9a4db affc01120edf545631e4fcc2a65c488f25f640260982b7458f83125581d36f18 55ab4d823dd44112967e4fd41cdd60d6644617a638ffd5c9d89d2a95bc4b1b9b 8178777184d48f314554a19a444fdd509ebd345b19a411bedf5a0f59e9c4dfd5 6facbb6ee71145168e06a6049f1e2b0e3f91ff26a2cce2db8a256400876db370 17cb684540eea84942aa295cb079951554614e45f8d0910e15093aa1d4877c3f 543f0957ce9074aa051182c9ba6cf64058a403cc63cad5335f51aa32c76e3d8e a3677bbdb623c2c5febec43e5490decf54bcf7d9cf35a4e5b9ab5577649cb61d a65b3fb13156130c55b44a78849ff4d84136f8ee4f2a368de63f5799c822c3f0 b27770a29973541c4e137774fa958c0ea6227a57610bc6f056662ab2f7ab4aac 6893826c13d3147b6fa6075cd4784cb799cfd972d9566227db5b25bef8641534 6fb8cee4e06dc0fc49be6237a2720e3f9b7bc7f22a0a5ff2c276c2aaa00ab372 7e59f1642709f1216403c0f694914e0be6c5165b21c1a736bdf04da8cd699fdb 1b9e1553a56314b73ba74d83ccdb0723469ebe15cf10d7bb4d16f1c0878ffe68 f015da3e534334f53a2591d30199a0ccfc0f3a239559e4d0c7fa1fca44442141 3bc003d6be7ebf1e9affec62467e98ece66bb2216b4cb5ce45113e75ee023635 9a3ca384d603136fe5b5da21465e6d406931020d030ad932cbaa597e170298b2 12b15b8434612b12d13844a3e5a46597b4c26148a3d6f5c42fe2d949dcb64b40 44034791b7d780f75d119422d56fae911d5ec40189a4957b13b9b75d991ba190 fd3944c8ea1b756747a0b14492b04053dab4418ea5a96e1b6b12ccdfe739d392 d023e003e0463dfff9ad29e5a0547d5101e9d6ecb59f376860952fb748d15b68 1070ba9d08b9436b65b80b20d7c6b65e4476553338f9f17dafb46471d293de8a afe9d55d30c38a475b9e8d00d02690ce3562ba9583038b5fed7940cb4d7cd5d9 79e2532f65689847 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndResource %%IncludeResource: font Times-Roman /rm /rmX /Times-Roman inf %%IncludeResource: font Times-Italic /it /itX /Times-Italic inf %%IncludeResource: font Times-Bold /bf /bfX /Times-Bold inf %%IncludeResource: font Times-BoldItalic /bi /biX /Times-BoldItalic inf %%IncludeResource: font Symbol /sy /syX /Symbol inf %%IncludeResource: font PMW-Music /mf /mfX /PMW-Music inf %%EndSetup %%Page: 1 1 %%BeginPageSetup /pagesave save def %%EndPageSetup rm 16 ss(#2. Da)243.048 760 s(vid Chaitkin)-0.32 0 rs(Prelude) 279.56 742 s mf 10 ss(!)66 655 s(!)66 655 s(!)66 605 s 16 605(@)64 655 b 0.126 57 638 br2 %27/3 (.)191.359 593 s(7)117.286 611 s(%)112.286 605 s(5)117.286 605 s(-) 133.744 609 s mf 8 ss(")143.355 607.4 s bi 12 ss(pp)140.43 591 s mf 10 ss(=)156.43 599 s(8)156.43 599 s(>)156.43 579 s(6)156.43 607 s 163.43 600 170.43 600 -2.1 cv 163.43 607 170.43 607 -2.1 cv mf 8 ss(!) 172.996 605.8 s mf 10 ss(7)190.359 611 s(%)185.359 605 s(5)190.359 605 s 198.359 610 205.359 610 2.1 cv 198.359 614 205.359 614 2.1 cv -10 40 -15 0 cA 117.286 627 191.359 631 36 cv 198.359 640.5 162.43 637 0.2 l 198.359 633.5 162.43 637 0.2 l (@)210.274 605 s %27/2 (-)88 655 s(?)93.9 659 s(6)132.744 657 s(?)141.144 659 s(6)132.744 665 s(?) 141.144 667 s 16 621(@)210.274 655 b %27/1 (=x=x=x=x=x=)87 673 s(5)87 693 s(>)87 705 s(=x=)87 673 s(5)87 679 s(%) 102.19 683 s(=x=x=)107.19 673 s(5)107.19 683 s(>)107.19 695 s(%) 102.19 669 s(5)107.19 669 s 0 0 0 0 cA 115.19 685 122.19 685 2.1 cv 115.19 672 122.19 672 2.1 cv 75 713 110.19 711 6 cv(@)210.274 655 s it 9 ss(27)64 679 s %28/3 mf 10 ss(7)295.969 611 s(%)290.969 605 s(5)295.969 605 s(@)311.617 605 s %28/2 (6)217.845 657 s(6)217.845 665 s 224.845 665 231.845 665 -2.1 cv 224.845 657 231.845 657 -2.1 cv(-)246.492 655 s(-)266.683 655 s(?) 272.583 659 s 16 621(@)311.617 655 b %28/1 (-)218.845 675 s(%)233.937 683 s(=x=x=)238.937 673 s(3)238.937 683 s(>) 238.937 695 s(%)233.937 669 s(3)238.937 669 s it 8 ss(3)230.141 705 s 228.641 707.8 218.345 707.8 2 218.345 705.8 0.3 ll 245.937 705.8 245.937 707.8 2 235.641 707.8 0.3 ll mf 10 ss(=x=x=x=x=x=)265.683 673 s(5) 265.683 693 s(>)265.683 705 s(=x=)265.683 673 s(5)265.683 679 s(%) 280.874 683 s(=x=x=)285.874 673 s(5)285.874 683 s(>)285.874 695 s(%) 280.874 669 s(5)285.874 669 s 293.874 685 300.874 685 2.1 cv 293.874 672 300.874 672 2.1 cv 246.937 711 288.874 711 12 cv (@)311.617 655 s %29/3 (.)373.535 593 s it 12 ss(m)316.188 635 s bi 12 ss(p)324.852 635 s it 12 ss(\()324.188 587 s bi 12 ss(pp)328.184 587 s it 12 ss(\)) 340.184 587 s mf 10 ss(-)320.188 609 s mf 8 ss(")329.799 607.4 s mf 10 ss(=w=)342.874 599 s(8)342.874 595 s(>)342.874 575 s(6) 342.874 603 s 349.874 595 356.874 595 -2.1 cv 349.874 603 356.874 603 -2.1 cv mf 8 ss(!)355.172 605.8 s mf 10 ss(7)372.535 611 s(%) 367.535 605 s(5)372.535 605 s 366.535 638 334.188 641.5 0.2 l 366.535 638 334.188 634.5 0.2 l 380.535 615 387.535 615 2.1 cv 380.535 610 387.535 610 2.1 cv 0 40 -10 0 cA 295.969 627 373.535 631 36 cv(-)391.126 609 s(?)397.026 613 s 408.812 631.4 Mt 414.812 635.4 Lt 0.2 Slw S mf 7 ss(=)407.812 623.6 s(=)407.812 627.6 s(7)407.812 629.6 s(J) 407.812 620.6 s(JL)407.812 615.6 s mf 10 ss(%)413.624 619 s(8) 418.624 619 s 0 0 0 0 cA 421.624 625 433.624 625 3.6 cv 410.812 614 416.624 615 -1.743 cv(@)435.901 605 s %29/2 (6)319.188 657 s(?)327.588 659 s(6)319.188 665 s(?)327.588 667 s 16 621(@)435.901 655 b %29/1 (-)391.126 659 s(?)397.026 663 s it 12 ss(s)399.024 645 s bi 12 ss(f) 403.692 645 s(f)-0.216 0 rs it 7 ss(8va - - )407.024 701.4 s mf 7 ss(\237) 427.044 701.4 s 408.624 689.4 Mt 414.624 693.4 Lt 0.2 Slw S(=) 407.624 673.6 s(=)407.624 677.6 s(=)407.624 681.6 s(=)407.624 685.6 s(7) 407.624 687.6 s(=)407.624 673.6 s(J)407.624 678.6 s(JL)407.624 673.6 s mf 10 ss(=x=)418.624 673 s(HK)418.624 675 s(KL)418.624 679 s 421.624 685 433.624 685 3.6 cv 410.624 672 416.624 674 -1.8 cv (@)435.901 655 s %30/3 (.)444.472 609 s mf 8 ss(")454.083 607.4 s it 12 ss(m)456.498 632 s bi 12 ss(f)465.162 632 s mf 10 ss(6)467.158 621 s(?)475.558 621 s(8) 491.387 621 s 470.158 627 494.387 627 5 cv(=)506.53 623 s(6)506.53 623 s(') 522.221 607 s(8)526.721 607 s(=)526.721 623 s(K)526.721 621 s(KL) 526.721 623 s(\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221) 522.221 607 s 157.43 571 77.286 571 0.3 l 161.43 571 Mt 159.43 577 Lt 157.43 571 Lt 0.3 Slw S 343.874 571 161.43 571 0.3 l 347.874 571 Mt 345.874 577 Lt 343.874 571 Lt 0.3 Slw S 508.28 571 347.874 571 0.3 l 510.78 571 Mt 509.53 574.75 Lt 508.28 571 Lt 0.3 Slw S 527.721 571 510.78 571 0.3 l 531.721 571 Mt 529.721 577 Lt 527.721 571 Lt 0.3 Slw S 544.998 571 531.721 571 0.3 l(@)543.998 605 s %30/2 16 621(@)543.998 655 b %30/1 (,)444.472 663 s(-)492.387 659 s(?)498.287 663 s it 12 ss(s) 526.721 632 s bi 12 ss(f)531.389 632 s mf 10 ss(8)526.721 651 s(K) 526.721 665 s(KL)526.721 667 s(U)527.721 671 s 533.721 651 540.721 651 -2.1 cv 532.721 671 541.721 671 2.7 cv(@)543.998 655 s (FFFFCCCCCCC)64 655 s (C)533.998 655 s (FFFFCCCCCCC)64 605 s (C)533.998 605 s (!)66 505 s(")65.5 455 s 16 455(@)64 505 b 0.126 57 488 br2 %31/3 (.)91 459 s mf 8 ss(!)101.647 455.8 s 114.842 481.4 Mt 120.842 485.4 Lt 0.2 Slw S mf 7 ss(=)113.842 473.6 s(=)113.842 477.6 s(7)113.842 479.6 s(J) 113.842 470.6 s(JL)113.842 465.6 s mf 10 ss(\()119.771 469 s(6) 124.021 469 s 116.842 464 122.021 465 -1.553 cv(8)143.912 471 s(8) 158.831 471 s 146.912 477 161.831 477 3.475 cv it 10 ss(dim.) 167.999 491 s mf 10 ss(6)173.749 463 s(7)192.61 455 s(@)208.026 455 s %31/2 16 471(@)208.026 505 b %31/1 (.)91 509 s it 12 ss(s)109.171 495 s bi 12 ss(f)113.839 495 s 115.021 539.4 Mt 121.021 543.4 Lt 0.2 Slw S mf 7 ss(=)114.021 523.6 s(=) 114.021 527.6 s(=)114.021 531.6 s(=)114.021 535.6 s(7)114.021 537.6 s(=) 114.021 523.6 s(J)114.021 528.6 s(JL)114.021 523.6 s it 7 ss(8va) 113.967 552 s mf 10 ss(=x=)124.021 523 s(K)124.021 525 s(KL) 124.021 529 s 117.021 520 122.021 520 -1.5 cv rm 7 ss( - - - - - -) 124.075 552 s( )148.561 552 s mf 7 ss(\237)150.311 552 s rm 10 ss( ) 153.662 535 s mf 10 ss(8)143.912 517 s 146.912 523 158.912 523 3.6 cv -2 0 0 0 cA 127.021 536 145.912 525 4.667 cv bi 10 ss(allarg.) 159.831 529 s mf 10 ss(,)159.831 513 s(@)208.026 505 s it 9 ss(31) 64 529 s %32/3 mf 10 ss(7)215.485 455 s 0 0 0 0 cA 195.61 453 218.485 453 -5 cv(5) 230.713 453 s(7)250.605 451 s(5)265.834 451 s 253.605 449 268.834 449 -3.568 cv bi 10 ss(p)282.409 490 s rm 10 ss ( - - - - - - - -)185.499 491 s( )280.159 477 s mf 10 ss(5) 282.409 457 s(=w=)298.985 449 s(J)298.985 447 s(JL)298.985 445 s it 8 ss(3) 283.659 475 s 282.159 477.8 265.334 477.8 2 265.334 475.8 0.3 ll 305.985 475.8 305.985 477.8 2 289.159 477.8 0.3 ll 146.912 481 301.985 480 8 cv mf 8 ss(")309.072 457.4 s 320.985 476 292.409 495.5 0.2 l 320.985 476 292.409 488.5 0.2 l mf 10 ss (@)321.837 455 s %32/2 16 471(@)321.837 505 b %32/1 (+)261.931 513 s(@)321.837 505 s %33/3 (2)329.296 471 s 145.662 432 79.5 432 0.3 l 148.162 432 Mt 146.912 435.75 Lt 145.662 432 Lt 0.3 Slw S 194.36 432 148.162 432 0.3 l 196.86 432 Mt 195.61 435.75 Lt 194.36 432 Lt 0.3 Slw S 222.834 432 196.86 432 0.3 l(`````````````````````````)221.834 428.9 s it 7 ss(\(flutter\))226.834 435 s 330.296 432 322.834 432 0.3 l mf 7 ss($) 333.296 432 s mf 10 ss(-)330.296 451 s(wwwr~vr~vr~vr~vr~vr~vr~vr~vr~vr~) 345.871 456 s(rM)345.871 453 s it 8 ss(3)339.333 440 s 337.833 442.8 329.796 442.8 2 329.796 444.8 0.3 ll 352.871 444.8 352.871 442.8 2 344.833 442.8 0.3 ll mf 10 ss(wwwr~vr~vr~vr~vr~vr~vr~vr~vr~vr~) 379.022 456 s(rM)379.022 453 s 348.871 451 378.022 451 -5 cv (@)428.748 455 s %33/2 16 471(@)428.748 505 b %33/1 bi 12 ss(p)330.296 531 s bf 10 ss(A tempo)330.296 541 s mf 10 ss(-) 330.296 509 s it 9 ss(cantabile)353.871 529 s mf 10 ss(%)340.871 499 s(=) 345.871 499 s(5)345.871 499 s(5)362.446 503 s it 8 ss(3)347.621 523 s 346.121 525.8 329.796 525.8 2 329.796 523.8 0.3 ll 369.446 523.8 369.446 525.8 2 353.121 525.8 0.3 ll mf 10 ss(5)379.022 509 s(%) 390.597 519 s(6)395.597 519 s(6)412.173 521 s it 8 ss(3)396.847 497 s 395.347 499.8 378.522 499.8 2 378.522 501.8 0.3 ll 419.173 501.8 419.173 499.8 2 402.347 499.8 0.3 ll mf 10 ss(@)428.748 505 s %34/3 (\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221\221) 439.807 453 s(2)444.307 455 s(')439.807 471 s(2)444.307 471 s(\243) 344.871 431.5 s rm 10 ss( )358.871 431.5 s 445.307 431.5 362.871 431.5 0.3 l 449.307 431.5 Mt 447.307 437.5 Lt 445.307 431.5 Lt 0.3 Slw S 462.87 431.5 449.307 431.5 0.3 l 465.37 431.5 Mt 464.12 435.25 Lt 462.87 431.5 Lt 0.3 Slw S 479.446 431.5 465.37 431.5 0.3 l 481.946 431.5 Mt 480.696 435.25 Lt 479.446 431.5 Lt 0.3 Slw S 495.271 431.5 481.946 431.5 0.3 l mf 7 ss($) 498.271 431.5 s mf 10 ss(@)543.997 455 s %34/2 16 471(@)543.997 505 b %34/1 (5)444.307 517 s(5)461.12 507 s(%)472.696 505 s(5)477.696 505 s 461.589 535.722 444.307 540 0.3 l 444.307 537 444.307 540.15 0.3 l it 8 ss(3)462.501 532.002 s 484.696 530 467.413 534.281 0.3 l 484.696 527 484.696 530.15 0.3 l mf 10 ss(5)494.271 503 s(5) 510.847 509 s(5)527.422 507 s it 8 ss(3)512.096 527 s 510.596 529.8 493.771 529.8 2 493.771 527.8 0.3 ll 534.422 527.8 534.422 529.8 2 517.596 529.8 0.3 ll 345.871 531 530.422 533 18 cv mf 10 ss(=) 444.307 499 s(2)444.307 499 s(@)543.997 505 s (FFFFCCCCCCC)64 505 s (C)533.997 505 s (FFFFCCCCCCC)64 455 s (C)533.997 455 s pagesave restore showpage %%Trailer %%Pages: 1 pmw-4.27/testdist/outfiles/Test04.ps0000644000222100022210000020134712247665016015503 0ustar ph10ph10%!PS-Adobe-3.0 %%Creator: Philip's Music Writer 4.27 (Built 25-Oct-2013) %%CreationDate: Tue Dec 3 17:23:05 2013 %%Pages: (atend) %%DocumentNeededResources: font Times-Roman Times-Italic %%+ font Times-Bold Times-BoldItalic Symbol %%+ font PMW-Music %%DocumentSuppliedResources: font PMW-Music %%Requirements: numcopies(1) %%EndComments %%BeginPaperSize: a4 a4 %%EndPaperSize %%BeginProlog %%Header file for PMW PostScript output /LowerEncoding 256 array def LowerEncoding 0 [ /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /space/exclam/quotedbl/numbersign /dollar/percent/ampersand/quotesingle /parenleft/parenright/asterisk/plus /comma/hyphen/period/slash /zero/one/two/three /four/five/six/seven /eight/nine/colon/semicolon /less/equal/greater/question /at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O /P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft /backslash/bracketright/asciicircum/underscore /grave/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o /p/q/r/s/t/u/v/w/x/y/z/braceleft /bar/braceright/asciitilde/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /space/exclamdown/cent/sterling /currency/yen/brokenbar/section /dieresis/copyright/ordfeminine/guillemotleft /logicalnot/hyphen/registered/macron /degree/plusminus/twosuperior/threesuperior /acute/mu/paragraph/bullet /cedilla/onesuperior/ordmasculine/guillemotright /onequarter/onehalf/threequarters/questiondown /Agrave/Aacute/Acircumflex/Atilde /Adieresis/Aring/AE/Ccedilla /Egrave/Eacute/Ecircumflex/Edieresis /Igrave/Iacute/Icircumflex/Idieresis /Eth/Ntilde/Ograve/Oacute /Ocircumflex/Otilde/Odieresis/multiply /Oslash/Ugrave/Uacute/Ucircumflex /Udieresis/Yacute/Thorn/germandbls /agrave/aacute/acircumflex/atilde /adieresis/aring/ae/ccedilla /egrave/eacute/ecircumflex/edieresis /igrave/iacute/icircumflex/idieresis /eth/ntilde/ograve/oacute /ocircumflex/otilde/odieresis/divide /oslash/ugrave/uacute/ucircumflex /udieresis/yacute/thorn/ydieresis ]putinterval /UpperEncoding 256 array def UpperEncoding 0 [ /Amacron/amacron/Abreve/abreve /Aogonek/aogonek/Cacute/cacute /Ccircumflex/ccircumflex/Cdotaccent/cdotaccent /Ccaron/ccaron/Dcaron/dcaron /Dcroat/dcroat/Emacron/emacron /Ebreve/ebreve/Edotaccent/edotaccent /Eogonek/eogonek/Ecaron/ecaron /Gcircumflex/gcircumflex/Gbreve/gbreve /Gdotaccent/gdotaccent/Gcommaaccent/gcommaaccent /Hcircumflex/hcircumflex/Hbar/hbar /Itilde/itilde/Imacron/imacron /Ibreve/ibreve/Iogonek/iogonek /Idotaccent/dotlessi/IJ/ij /Jcircumflex/jcircumflex/Kcommaaccent/kcommaaccent /kgreenlandic/Lacute/lacute/Lcommaaccent /lcommaaccent/Lcaron/lcaron/Ldot /ldot/Lslash/lslash/Nacute /nacute/Ncommaaccent/ncommaaccent/Ncaron /ncaron/napostrophe/Eng/eng /Omacron/omacron/Obreve/obreve /Ohungarumlaut/ohungarumlaut/OE/oe /Racute/racute/Rcommaaccent/rcommaaccent /Rcaron/rcaron/Sacute/sacute /Scircumflex/scircumflex/Scedilla/scedilla /Scaron/scaron/Tcedilla/tcedilla /Tcaron/tcaron/Tbar/tbar /Utilde/utilde/Umacron/umacron /Ubreve/ubreve/Uring/uring /Uhungarumlaut/uhungarumlaut/Uogonek/uogonek /Wcircumflex/wcircumflex/Ycircumflex/ycircumflex /Ydieresis/Zacute/zacute/Zdotaccent /zdotaccent/Zcaron/zcaron/longs /Delta/Euro/Scommaaccent/Tcommaaccent /breve/caron/circumflex/commaaccent /dagger/daggerdbl/dotaccent/ellipsis /emdash/endash/fi/fl /florin/fraction/greaterequal/guilsinglleft /guilsinglright/hungarumlaut/lessequal/lozenge /minus/notequal/ogonek/partialdiff /periodcentered/perthousand/quotedblbase/quotedblleft /quotedblright/quoteleft/quoteright/quotesinglbase /radical/ring/scommaaccent/summation /tcommaaccent/tilde/trademark/infinity ]putinterval /F/fill load def /GS/gsave load def /GR/grestore load def /Mt/moveto load def/Lt/lineto load def /R/rotate load def /Rl/rlineto load def/Rm/rmoveto load def /Ct/curveto load def/Rc/rcurveto load def /S/stroke load def /Slw/setlinewidth load def /Slc/setlinecap load def /Slj/setlinejoin load def /Sg/setgray load def /Sd/setdash load def /T/translate load def /clx 0 def/cly 0 def/crx 0 def/cry 0 def /inf{dup dup findfont 3 1 roll FontDirectory exch known {pop}{(**** Font ")print 100 string cvs print (" is not loaded ****\r\n)print stop}ifelse dup dup/Encoding get StandardEncoding eq {maxlength dup dict/newfont0 exch def dict/newfont1 exch def dup {1 index/FID eq{pop pop}{newfont0 3 1 roll put}ifelse}forall {1 index/FID eq{pop pop}{newfont1 3 1 roll put}ifelse}forall newfont1/Encoding UpperEncoding put dup newfont1 definefont def newfont0/Encoding LowerEncoding put dup newfont0 definefont def } {3 1 roll def def}ifelse }bind def /ss{scalefont setfont}bind def /sm{makefont setfont}bind def /ssr{scalefont [-1 0 0 1 0 0] makefont setfont}bind def /smr{makefont [-1 0 0 1 0 0] makefont setfont}bind def /b{/y exch def/x exch def/w exch def/z exch def/v exch def {x y Mt w show y z gt{/y y v sub def y z lt{/y z def}if} {exit}ifelse}loop}bind def /br{gsave translate dup 0.11 gt {0.11}{dup 2.0 div 0.055 add}ifelse exch scale 2{0.0 0.0 Mt 100.0 20.0 -50.0 245.0 60.0 260.0 curveto -50.0 245.0 60.0 20.0 0.0 0.0 curveto fill 1.0 -1.0 scale}repeat grestore}bind def /br2{gsave translate dup 0.11 gt {0.11}{dup 2.0 div 0.055 add}ifelse exch scale 2{0.0 0.0 Mt 95.0 40.0 -43.0 218.0 37.0 256.0 curveto -59.0 219.0 66.0 34.0 0.0 0.0 curveto fill 1.0 -1.0 scale}repeat grestore}bind def /cc{/u exch def/y1 exch def/x1 exch def/y0 exch def/x0 exch def /w y1 y0 sub dup mul x1 x0 sub dup mul add sqrt 2 div def /v w 2 mul 3 div dup 10 gt {pop 10} if def x0 x1 add 2.0 div y0 y1 add 2.0 div translate y1 y0 sub x1 x0 sub atan rotate}bind def /cA{/cry exch def/crx exch def/cly exch def/clx exch def}bind def /cd{w neg 0.05 moveto v w sub clx add u cly add w v sub crx add u cry add w 0.05 curveto w -0.05 lineto w v sub crx add u cry add 1 sub v w sub clx add u cly add 1 sub w neg -0.05 curveto closepath fill}bind def /cv{gsave cc cd grestore}bind def /cwd{w neg 0.05 moveto v w sub clx add u cly add w v sub crx add cry u sub w 0.05 curveto w -0.05 lineto w v sub crx add cry u sub 1 sub v w sub clx add u cly add 1 sub w neg -0.05 curveto closepath fill}bind def /cvw{gsave cc cwd grestore}bind def /cem{dup 1 eq cly cry eq and{pop 0 u cly add 0.75 mul /t2 0 def} {/x1 v w sub clx add def /x2 w v sub crx add def /y1 u cly add def u mul cry add /y2 exch def /t 0.5 def /a 2 w mul x1 x2 sub 3 mul add def /b x2 2 x1 mul sub w sub 3 mul def /c x1 w add 3 mul def a t mul b add t mul c add t mul w sub /t1 a 3 mul t mul b 2 mul add t mul c add def /a y1 y2 sub 3 mul def /b 3 y2 mul 6 y1 mul sub def /c 3 y1 mul def a t mul b add t mul c add t mul /t2 a 3 mul t mul b 2 mul add t mul c add def }ifelse translate t2 0 ne {t2 t1 atan rotate} if 0 2 moveto 4 add neg 0 exch rlineto 0.4 Slw stroke}bind def /cve{gsave cc cd 0.8 1 cem grestore}bind def /cvwe{gsave cc cwd 0.8 -1 cem grestore}bind def /dl{gsave 0 Sd 0 dtransform exch floor exch idtransform pop Slw Mt Lt stroke grestore}bind def /k{/y1 exch def/y2 exch def/x exch def currentfont mf y2 y1 sub dup 16 gt {pop 16}if dup 1 sub /y exch def dup y2 exch sub /y2 exch def 16 div 10 mul ss x y2 Mt (\260) show {/y2 y2 y sub def y2 y1 le {exit}if x y2 Mt (B)show}loop x y1 Mt (\261)show setfont}bind def /l{Slw Mt Lt stroke}bind def /ll{Slw Mt 1 1 3 -1 roll{pop Lt}for stroke}bind def /m{/y0 exch def/x0 exch def/y1 exch def/x1 exch def/z exch def x0 y0 Mt x1 y1 Lt x1 y1 z add Lt x0 y0 z add Lt fill}bind def /rs{rmoveto show}bind def /s{moveto show}bind def /sh{show}bind def /wrs{rmoveto 0 32 4 -1 roll widthshow}bind def /ws{moveto 0 32 4 -1 roll widthshow}bind def /wsh{0 32 4 -1 roll widthshow}bind def /ST{/n exch def/g exch def/t exch def/w exch def/y exch def/x exch def 1 1 n {pop x y transform round exch round exch itransform Mt w 0 Rl y g add /y exch def}for t Slw S}bind def %%EndProlog %%BeginSetup %%BeginResource: font PMW-Music 11 dict begin /FontInfo 8 dict dup begin /version (58.01) readonly def /Notice (Copyright (c) November 2010 Philip Hazel) readonly def /FullName (PMW-Music) readonly def /FamilyName (PMW-Music) readonly def /Weight (Medium) readonly def /ItalicAngle 2 def /isFixedPitch false def /UnderlinePosition -98 def /UnderlineThickness 54 def end readonly def /FontName /PMW-Music def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /FontBBox {-150 -1400 50000 2300} readonly def /Encoding 256 array def 0 1 31 {Encoding exch /.notdef put} for Encoding 32 [/sp/trebleclef/bassclef/altoclef/star/sharp/doublesharp /flat/natural/tfermata/brest/sbrest/mrest/crest/qrest/bfermata /longrest/breve/semibreve/uminim/dminim/ucrotchet/dcrotchet/uquaver/dquaver /usquaver/dsquaver/usqtail/dsqtail/ledger/vdot/hdot/barsingle/bardouble /barthick/stave1/pstave1/uqtail/stave10/pstave10/dqtail/repeatdots /ustem/dstem/cnh/mnh/comma/mordent/dmordent/imordent/dimordent/turn /hbar/accent1/caesura/accent2/accent3/accent4/accent5/bardotted /caesura1/little8/C/cut/tilde/thumba/thumbb/ds1/ds2/downa/downb/upa /upb/iturn/seven/four/hcnh/hmnh/xnh/xustem/xdstem/fustem/fdstem/six /gdot/gring/d1/d4/u4/l1/r1/bs/ds/fs/us/.notdef/tick/uacc/dacc/grid /barshort/breath/vring/cross/trill/scaesura/lcaesura/sbra/sket/rbra /rket/rep/repdots/vtilde/trem/circ/cutcirc/slur1/slur2/up/down /iC/icut/unibreve/accent6/srbra/srket/angle1/angle2/angle3/angle4 /ped/uvtilde/dvtilde/nail/angle5/angle6/stave21/stave31/stave41/stave61 /hclef/oldbassclef/oldaltoclef/bratop/brabot/direct/five/major/dimsh /hdimsh/gcross/ledger2/srm1/srm2/u12/d12/halfsharp1/halfsharp2 /halfflat1/halfflat2/icomma/accent7/accent8]putinterval 196 1 246 {Encoding exch /.notdef put}for Encoding 247 [/stave210/stave310/stave410/stave610 /.notdef/.notdef/.notdef/.notdef/.notdef]putinterval currentdict end currentfile eexec d9d66f633b846a989b9974b0179fc6cc445bc2c03103c68570a7b354a4a280ae 6fbf7f9888e039ab60fcaf852eb4ce3afeb979d5ea70fde44a2ae5c8c0166c27 bf9665eea11c7d2329c1a211dd26bb372be5822f5ea70d99eb578c7befd44cdf 045a363056e5e1cc51525ea6fc061dcebb337208eff729802376a2801424f670 0e7e6397b28f15bc10b40012b0a3eaeb2693e8f7f627c4c9c7c6c5bff105c1e4 1b2b9e8f09253b61177e95ea219474796072f4c3189f7cfc7630142215dbc8a8 fd63d147033a0c9c786e17355fa8d996a3a7b5d213ac8011fd31a12930a87f86 374c1921aaa9ed181b43541cdf6e376bb4f2801faa9b01dcc0569ac59cfc4768 afdc549a30d41f5705e4231d3bc540161d390b4980ef9fe489ac4df99f83a8e2 00182cd152eb35a61aa915230f1090fd0bc8d4644f836c3da157c564b2a8fb7e 7d3203ca17088a579aab355eb45038ff45d5eb2357959a2c7c04421c41d3b822 d0471ae18607c80503c0b319348683bc6bc87e075a8eb4bb34729c4145b2b5a0 df1a88b2d7e0940aa3d4bafa502b87d9313153f661019a817ab20e1a772ad0d5 51ae7fdce4e21f426a6726c39c88124f8cbf10bb7394e90e9d28efdffef75078 f7ab1d7fe8387e1e65c4ff67d054ae6a0937e4d59889656ac37afde0362d76ab 05f9c223c52f04b6279e055419d3630d5057b50b4c4492891f7a36d03859e220 2d89747f1d486e9449a3448f81c240adc9e5476c6de456d76c4237055c0c30b6 80738211ddb90bcc73982467076cba36a60ec6a6584d9d9bf0df2b8462ceb1be 79c1276d2865b0f3518664a960036ca2d00c7829a967ac16b5c833f2e143efc0 f93826a8d09414c4ae7cb17623edc8f599b895ed0d3f4bea8bfd9b414cc39c0e 4080180fe8286b05065a10df4d691d38f73bc82d6142bdded07ffff7017f7803 cb03226f4d6501c203f8ee4e08ff5f8eda81278aaa6378b2d95ad6dfc7bc2e11 aa696cf2618a5737f03bce6c46c635caf89d23de81693159167b74cda0a15dcd 491b2ba489f28d410f1835d0fb7a9be1e3e5e7b76996e1d85cb9b62bb0619bdc 78b85ad2731fb580466cd92159c7f0e53f0896e154ec770cb55c55b09ec7b405 251e205992ac88e0bb583792edc9a21143a3ab447d4769e84016aea06413b52a 9ad5bbf68c05b2d1fbd434a1d61a903b6d2e81cba8f422998f51dab989a49b7c 2d0ee5cf9f5cfea4fd5f7686eb2e9d29bb4fd4b117bd407534ab7aea4068f8a1 f3f89f61f1b341c9c31755c876038a2707314ba7f51f25ae9b81cb7170f24d97 f792f849fb28eb31704aa5826296042664f4324d94dd8644d43f3d3ba8ef474f 37ab52149ca62286bc986a59f4dc01c95106a325ad9eb4e22badbf89c3c329d2 cbe4d3f3c64fd1b40dd441f2f8e45df63e6cf107d5a0efb2930fe55c04c6d01a 23b40b4706ef7ec9e6447190cebceb1293800d461512b42c06825d1ea511b7a7 031286c05dd8536baf9159f6d3ecb5c23c3677795a29aad9be47a0d7a127e3ad 051d57de2b0969ba89d906f64a4834fb7912a5c1f39a8cdac5367a06ec532870 fd72e532680e064d490d975feb7bbcdd84ea1b060476b844a6fc153691d6eeeb e72d71ef5ee59f6bfbfeb9e166e0304f50b91d8e401fac3257b56ae63d9ac6e3 a27fd33f1b43075c792597372d77a93912bc83e4aced15502c9f549e725ee735 8cf609891f05fede798f758940ee09d2947af5a290f2b4540b6a931d9d8e1176 5c0c4f14dd4f2ae0a056e42b7842e4a37a854fd70f2268833d8b0a5a5124ac92 d5abea2bc4a82267734407be662c088ce63084f851af93ed826c3d6d417c679b c3d5faa174c9248fb2706f46a9611cd21c2952e70ef36ddfa951b6df819c7c49 04b8a5a08ade3960e46860fa6ed29caa9d332be99f25a6c2e627402f09a5e140 3ac599195881326c44e6deda9d38ab32544e7b21749b5f933ceee3818853248a c038736c4486f46ff5853684760814f2dc64f282f7619c34885396a300e041d4 4931a4951469f5de55d0282ab491a456ed329ba83756285e2e637ce00e925b79 6a5e7de954b276e92b958ea4119200955d906a275b2640f2881224816febf38c ae5a330d8c4d31c68dac342210d5b0ed554e0d57e7b486022aaab11ec40753d8 ad557122b58a7ef70f0676e41f9c29feedac4d10808370b03202d11e5911e056 5502c18e30c2086795534f946639ef524469e7628abf78b2ad634d1c30315202 2bf1ae1c038093dda6e3dd5ca785626841806f19db4edefb4352255a40a6fd2d e5b292d963047035bf20765a1724da4ceb6596e5fa97d7b8fa9f3ecb4b88197e b88466dd7b189aaf8603193b647abb7bcd00005212a18872c0145d3378b097b2 8dfc782b3bff19d16c0fc15c0dcb4c59318183cacd60f4a6bb68be52381277e4 f01f081110b5549a1178bb1f260a83c6185569012e906e6f3e2efd3be510c8d5 359170a08dccef71cf290c76297a1a4b5cc979a25285a9bbbd06a29109fb026c 5ed7c864cfbd56af94b980775295d1cedf1e2d29bb4374919a1837a325daae46 3420aa39e8adc0a6d1508ec3109400eba448f2c83949001fc47f5cad8d4abf40 05805a03e5debcb69a94d9de331cd65d7f1f6de6141eff2045466417110ebe68 0b7164d627bc55b3362049f5e720c1fbc78138cb39eb79e66cb7f7f0bb778afc 9f71dadc6df0dce778b2a5500ad6d77ec30ec68484fb9acc886f9f17b85a057b a9cc45cf70a2ab800d6a4790ea19c7bb8042ee22148df7df8b2a3b6a024003af 4ff4306ecc2b060304f8c6f66b8c0a6e93ce65360a9cd69b61f86a8dfb73c68d c21db4b6c6dcf79e667772b21c7c466e32c5d527c69368ae0e89a4d4cdb4891f 3d4d979f9173d37b0b14a078b061c3a647d1446862ccbb83e0f0c52e55f62571 d261f9025b9b76b19a4387c9be977a75a9f3081fadd4a0497049db2b25ed2e1b 2f1d2330b45df4d9046c5d6b93cc37b9f5cc6efb382fe3c1cfb2149369e96049 943b8bb24ac4cc79d6f5700e7674c56b90093ea2040bd564d03b248e7e7501bc 984034757fb9a8ab0915a676cbd53f3f680aed60d401953b080bf8339b2e86bc 5afa1596cd942d225a2f4955693042f9283b5d609f297a6f60a4a1a1b3af3b75 b2ebf205ea219cf61f378872247fe2284ac99a5e29a31ea3daadec1080e9a252 504d9980bbea3845e145ca1fc919db615740a5d81e188cd9ec7de7467f77e23c af9879f9b562af2382f271794641e9c498cc7257071a9a037f4df9df87289d8c 973909959329980b26acd05b0ef35e9b60101bfa019acde608ced1432c68bd26 1b4db2b2f16deca61e710e8bab3c99bca591f6b1491ffceebba2c75a3e7802a8 e5170e660125475f75be93ec815304bfa33a26a1371c21ce78c58d2c700c91be 8aa8d468fce514189054972132e57e69422dae4588d5de9f3344cb59d505c421 1b8b27fc1c22a82a062d76ad9e6e3a4add530aaa501e20293be5c19916331c05 ac9b774007afeac38ad564a281afffb6fd41002837678f0741eeb025ec3d6c23 140420f6943d17a1d84e301863a849290aaad57b545f97493b1f3693fcceec9e fc8310bf367204a88570d92045d3dedce44692ac4858a4950f39903095bc974b 067283afe304317fa6c0eeeff03cc68723468d73d881caac31300836687ec574 c06e46cb22fcdc7c315b06cf8a13c01830498b2f379c96dbbc04b1f579f7fb12 d8c1bc2a676fbe690a6787fc77414718b5dd3f742689b39aa8cb6f6a34bcebc4 9b9aaaee962a77fa014d203415495311226d9c03c80b6dcbad39450fc44184fd e12a276d4e87cd954b0db7c58049084003014dd1920351a6a59b9ee428bf67fd 1b931e652870068d9feb0866d2e825e6404056ee589c7e406718004e0df8cfa2 04d21df791632359cc821e8652e6104eec4c1207c704167f70010e9afd6ec0aa 02fac84771d34e38bef362797bae62cc06fe81c069bf04d9edb277a90fa75f4b e79b3c0a8804adbebbcad3c464aa14a393f6ea75dcd5b420f9fb320398ecea1a c3acc08af37f7c14f14075f95c4961df04b45088dd75e338a2629647ec421849 f9948b9a17e33408239210566599f792a4c0934f88069a146f66b9c5bfa541a2 4b68fb5bd566f3ea28053dd386d2babdd8fe08e9763633933844fa5417f29ba7 60b235097764864d61ae1213aa8d3c4436911ff0b77aef7cb6d899ce0e8c2312 66d552dc691c783da623fb308ffd42f141d7e05b9db1b5fef691967f4e42f77c f0b3ccae74717e0b0ef02f152c89f9c1b1ef8cac955d3c024c04e0c8830b7884 ef8490ed1fd4b718977da0be6b8cef615ebd95e41c04bf119e9064a7723c8e67 2f84a9f02707f08c1423387092004c5499f20397855b03e12a48cfd90e9f4b1e 0e2ce907e86716c43cb9fe377cf4a38afcbf860074cca3c3580730147bbd280f aa4711be6c7ca74633545acc6e1ba2003e9eac90099a00406cae1b04b906d896 1bc0589e9046c3450ff07624f3e8bc0241e3e2356dee09b92ce70d48a52da586 8528da6c89e780f1b121839418ab684a92b4187d184a8616e73f8d961257083b 935358f1e6d6fb68c173e5e38969c8f2a68724ca12a86ece19f1a79ac9b9913f f14c9e37d08f89e84b1d6d1ce4fa8b8c32a139c950f6e83471b38702e695bc7b e8d87c77805d33e6536a5095ceb6e726ed0500b41c941d173233771e6aca5e2a 8a0974f6f726bb5dfd2f7adfdc64095d4421984d879a40e27f3da62a433f03f8 25465338bd92d7408ab4b30ed357474d07f49b4a9d5c5891c11ca620a0ed4c9b cb476ad89efaa734d9d11e55bdad6163c867c56543d2edf445f8336473f81d72 40e675ee76e15e68c7295fe4c4727049007e3fd6a3bf5be662846c669965c39e ee26797951ce86d4e2db76070ce1217c9c9dbada0a8e53e450bec992724150a9 34f7ca6b7c092e12726cf0ee125608a4e58f3c54f1b3466c47acc11a7fb86d15 56bc15dc4999f52616f1d45745a4719df7849fca9430b7e2fcf0c72dfca8e2c5 b205f65ff646084b03779616126dc0108574d98b20dcd787f99305e593a3ff30 39132a62240bb9c47f7aba86bd61fa30e7751cdfbfb630c159d016ee70c8a273 1a167494354bee5fa39bb0a233580913943e029ce518d75f30af7cb2d3ed2103 d8abbac569cab1a9daaf125e79d5b327e69489eec94bf0e537724799f6e42c6c ba604976a498266555197e5290968486e625bb933e6588019e496c647f574522 7f8817ef98e28a27158cc58a48d264f6b95cbf2e1d92399d423e31ac7a077588 466f725090359c69e0fc91072df81fadd46069bbcefcaa77cfb7fa3e96034026 35a8296bf9c1d0a7fbab44a815ab741f36aefa60b2825671b0ab55db353d186e 90ed303b9caa7d0f52f9b74273042c3297e64b7264f38c0b849b1099a2b1ead1 89c6b6ee20b3f32aee24ba734e809ae500f6d48a50e6eadbfe61e660028476d1 254dd0467c140e698527a278c910e03f4341f0dece94a430db441f8a4fa73954 edc0534e2bfbae3205749cf27945909d28da83e440a5558aaa8eca7a9a4c8243 f0a60c5211ec2197fac453f01520ead1b20621962324543c2729d977cda3eac4 0ff0c0fa1096315ba2eee3d71cdf2c5bb1d9a4d4ed2147dfbd673f79cc1dc21b a77ac1096bd93b15f31467919e432c204640a81694abe315fcee9a3e9ef27f86 57c1d4aae410a23e44d0ce9fab50f953c81e33f6ec39837b20cf8fd0cc76a029 8f12e76a4c78b40798819f7919a0d24a42cef3074b8de0cb5e418201d41f431c 68e92c1827a4c9cfc968063e76038a494bdd4fb5e957d57aab2fa31bf1830b1e d3bb12f34f3fb17bfd73a349d706138da54671b43450f22f40cd7cbf50476a5b 2c73dccace0b74fa671007e4e95bbd79173c5d37047e511d49a110f81ff7ca8b 5fe0ed67a5efa1a87670db0ea31a11ee76b4af2dda3a6367df3c2b4e7cd868c1 604d872998326c710c206b78d6b9ebeaa14ff4841d18163a1b0738b3c9c2a952 3ec59bca6623329181bbed1662963564b1a7b48e08b120c0b1e2e28e9f076196 0f7a72f4118dfe57672c96ab72589dcdb652ff0580bed4a9c42ca35fcb1e6595 bf4fb078cb8531d2b589b0258fb14aaa9752283e94da2822810fa00220ecc76b fa0bf30ab93c612d2f6fa13c02443dd179c5ccfc0312d70d4509c558631a1b83 00301b494062dd506e84bef5d3e734f6af4b506f9b6ef43641f25a699cb7f70b 646e8b334fa8305bbe6e2f9596579f7db9e28c6e3cbac6a244984cb1dbcf751c 748afeea4610cd4c1cbfac10c9852a32b6f912bbe967a68c9678a83b03d3a589 55e21dfaec2921bafbd868fc6c5dbf9e6ff8d93c8d5a30a5903eaa82757ef344 ef36e216f96cd68b0f90b54579e11a40cf33c17fae2ddba456e1b85458cbf05d 928fb1ccae12f39e215c4c68b7f22ddd26d0f271e77b0f2cc2d6a9a7f37db7a7 621c4ec4e126ef4f231a2bd811cba54ac5ea84386cfd985ba17506d0d7c552c2 aa2b5fefb49cf5b7b1b16bbaa38fb408cef612e7260d088712d60c57af8291e6 9401fe2d8c879d563e7d988bc522100bd0e905a7dd25189a771076e75998d37e df26f0dd5e302eec87c087bd54289ab3f3c013b3a64b8bd4a0acdbcb32858e0e b407557f336b89be676f94fa5e41f2db1938288948b2eee549393213cebdc36d 9e241b237e78fb7226633fc67a127e48e43ddadbfe12aaa41bf7cff47115524b b853d3bef16514c2723b057e3cb74f0e6f043a25e7ecff0bf7620140f11b57a8 9e343a4fe17cafd950735383d05ea02d410d26c0ed305a619a461c08155ace2a c0888f257a301272ca78d533bab54f54d001dc6c205ff6324ebc1942320e3f8c 7c00eddba2962f7d8b8b194ad83e47b13083caf11e64dc89119d7127b9be5538 6b703d42d1edfd7db2f3fa122f1acde1ea43eedb955593c14dabea0ea66c6328 f39d3de6562fe906da301dc1ab7a83bf88cab1eb9923c5f1085bcaf02b8fa410 5c531836956c509ab18cc19bc5c248a2eef7566792982a43ec89d63b31e001fb b2ccc234e03e4572ce089d02bdf9dc0190af8dbc2c7ccc22196e3bc17c3e37c8 9a742f07edcadccc8d7597a4ed227f4ee37e843718e15da7208f8d2f2ffa12ee c007346e4cad0bb1aacf73e0edfcdc725be54ff6103eb3080881b1ef78267290 abc87920cf63f402a019e5c6e328f78707ac983bf0bc32cf4673d6bb966c9cd7 3b3c64b76a925b15225054a970acf61f123c44e51dd944426493fdf54646ecec 87e538cd1a130a43e1fd6274ac12ce5663534f65210c1e438118e34112c119aa 0e311185ca3977c6da19e0e73f9ef47ede1bc60f1891dc3302d01d7138da0867 1bae87b54e594f06e26c0e01b11693e994722daf37dfae35d1c63f7946f31167 32415ceaa09a865c28ccd57f9d41e19123e2cdab7e3e2bd29dee275f30075bce 458ddb09c2d5fea6e0e2a744009f6abddf5c34fb3caf51ece4665704bbb215e4 7107a1745424e6ab9071d2008cbe279c0b5ccb8ab61afa38b3d6195f652eb5e1 7a32a358e8ba8e02888b97e3ba3b695ea0062bb1cdb5ac5fee551e9eda4f070c 3dcf504cad12914caa34b39a494f539f1bf2ef77223c233a57f11cccea4f79ef f782c9c42efab4dbb360ca7518709ff4691fd9b9451e24fee60b2053167b96d4 f47fdce601a10d0dba330116a5dd0adfa44f7ec578c5ccdefda203bc220e5ec8 128e67fe500412d234fa0caeaf0a927d5cfd89d46bf3362e2ea172e09fd4d126 51ae59dfb15484b29ef2d5abd39e387202cc9348d00ee7a6dafa810bb68ad460 0c2e61a128d692502c2080311a7c99e30671d200ca812755a79ddc1e281a0c11 359ffc8341a508486c7677cce56b24bd2cac1b9457d2aa9b701cf9d7a74f8d6b a285e3b342e5232977abce1e51a95b0b148ba89fa492fc93e67f91042242ef87 f0a83ca51a752255a9eee173e2b2e69b4d88394a8f5584f9265597cc42fec4c1 cc727c7ade1b3407db4e0ebd6cf4848504df6cdecb476ce74aa817dca0e51c0d a3f14a1bcce37adff3bd7d08b44876e1b08789b630a3d070b53f3a8fe7ef8bef 539522d521b1319455c3999ab3f6fdcf92f28a36152a6574f62ba51ef90e1f3b c89ec530004dfcdd7a7b1c8038957ae361d921dc976b899b46f67eb824732282 e0207eb3f113c267b2154ed423f9084b56cfa1dd26508c3295d844e1549b63f2 26bb27f7ecb4ca36fe55ad817d952767b49d78f4576448eff1679851a415f918 0cf5ae1157b06c47e44c70774d6ffba7d8f86ba0160d55e21db737e10b2a91c7 05286b7c7dd9cc027ee23f3b3b46c3271a274868311d56931361dcd37542d1ac 67dc26954a733f9662dc9308f9639b944894f6f19848fbc3f44cb8bf3d5f6b39 fc78127ddaa6243cac012fe0cd52efbbed8b4bf857b3a1bb2b7e7e44bc8b0faa d715b0c6fbf4a4a9071cf299e0cacb88593fd61e5a0dc9fe7ed040e17dae132d eb17ff933db6927e892b3919cc14ca1908f557607b1dfbf48dc3d6aaa862d8c6 5dc9b2f3cc127e70d10c3a04ee17d357c93527eeffcf18792383b73459d50bcf ced1527e0520a397f7ec692a12f0693150885fcee5087b5d94b2ed81ebe967e1 fc32853cb465bb8b66453574c4ba998c91641e35a2fe6e521883fe344b27cb10 7031369baca8bdc5f4b9a2f44180c0ac498f171a416c8fdae8ba089819eb0256 17094a93681a3b3d100ec7f45839e9d42a09d0d75b8a05f6da5458eb6151be55 3fa2413df3364cb39a368d22643cc13b695eda2ba739e77125516dcb203d4764 e21c4075a931da7518471e4251a9782ee15bd2a5e94398e09a07fd265edf618f 71d439f8129c6b7402a05ff14547308fd9dc5e7c96f620a2682b50a7859eec5b da71f4c6e12059e8dd3916bfdfd0e151fa4b5aaa90435d1d42ab092c9c421657 d5bb283717759416257016e9314f54455ec9448f77df7e53c24fe8d96ec1c68c a7fd651af1e71686d2347af1ec6f9b790c185fd352ac03047f6c920bbb872fcb fbdb7566c75ab06d93278df61d8070a9951766b46720da236d8d4e7b4893aba8 ed4ac9406fe383631457095ca9993db527e7a37c9419b7abedfb7d41a460b9c4 9fb39efcf3631da0dbd315788ad98295fbb62e11655c0cc1ab2fb0e54e01ba9f b16cc2c1f82e48b3bfef4b4d339d7f0df8e001dc2a5911b4b92fb7eb428873eb 8a5acce25fd9f47faff3e0733d38b86a244ea1952ce528b8abf9493b1b307bc4 7a4fa41bbce361d2a6bf9a6820a231a58e89a9d214fadd6aadcbedaa150a4f27 9efe67012114205991c643e6ea1411203926bc0804572e0b727913402a466f8b f111844675dd5109212e5447f682e2959232ad21a218ff49479714aadb0618d3 fb488ebb29b2939059d1f794c277515eb400e5c626a811ce2a7a247e9e904b64 5609b594431433470ddcec6974f0f3d77651793ad7ce23ee72111474cfe2ca02 51c4d90c0b02ac9d7670c3795df594074759f38fc2ebe6a2a797d54628a50676 6f1e2263844d597fd845687a44f72a539a8661a9a9064c78071c040d1f0a45fd e2cccd2268919227e8e2c05befee614a9535a6adb324624425290d7032f6dfce 19342467ccf344114425ca8f9ed74899dcbd8d373879ca8f83d953021259f998 338d2e7a5cb54321f8057d70d5a02fa8aef3aea24854a9a21e45428a97397cc3 58aec6ec45fa9199579406c2e842549e1639d80b2a6b2502f28c8f4f94fba297 938a3c986ed1dba4c3b384bc43d7bb6becb71195475398313bf8774355562800 bf86d8f75101683880ae686ac36b757ce0e4adee09ef68f8fb5e891e956ee62e 346adb50098c5b7ded6374bff775ef4fd58a5910d980a635576e20e7b11797a1 7c44b0d347ec9b56cfca607866ea109d54fc992b1376eebd4d201a876e8564b9 f8ebd34de83bfc90c10d8ea85b556cb5fb74c447bde7329334b29c788cae8f02 de02daabf74f0bcdcf64064c91f366db4bb68794c9c41765bfaadfb514f487dd 096b2ad1f1404a836a809a20dc813a277c749ad0c4c45e6374630a4999ec512b fe9f990a74a05ff7e6c2b1ade33fd14670c6ef97ad99ccbb996b12d0172a88e1 b923f85a17213d52ae7e3886c50e125d38b8f97692cb2a5b3e03f21188f763e9 7eec87182ae517e42d9590f73c2594a7e5f61b9a5bf15a7eed29a754f729d532 dfa74519696cf75ae98a471ec88b3ed550730f50f519ac629691a47e19343c05 1b6d466acb89f50db25a9beae2b0eb79a96d2c0189febc516e68f70aa6bc09f9 129b0fd837e87d16fbe4a7a4456663cc7346218be042b965dedc22b7cb5f811e a445a5651759ac076b49d476e5f89c218bda4ec9582c95149b5f2d8a49c80ead 3ce0df6ea52db964cdc0ef2164bd21f818ef287cb3337b4d8a6aa34a336be17c d808a00949f82017f831b771473ef12a2661ab1fc21c3e344899d6a73ef7ff83 694abb48072daa7841dbb31498a9cc29b07bb0dcf709cae5014c2cc9073a1e5b a29d67f72a030496798f04171ed6a45105fbb58ca261d3ab9dcb57fc28b50cae 57c4203ae09a58bbca20a4613bcdff264adbbac8ad7ea0c2fabe4f07aa453618 e1591258a2a18e0fd974135fb890beba5bb115a8dd6491ad3299e27506ecdb8a e9c074ad5f1a553bb14f1aa35b9cabcd645ee452166f331319a5a953a922cc14 5f683e88ccdfc3d64d61b317df7e6022e9d50b28aba224d6a03a34a9d8242f39 e34cd7b5e46f37291f5d75bdc1bb586ac86778c1a496f321808cc0da6fb3a6e1 d4cd8c8e37c1e2c1d98384ea5a1654caf3b360d4fc77c3c3faf94466de5208b3 2935fde906ebf2d98ccba2cdabcd8197947f5e801ca0981a82b091a51c8ae0ba de5b69f3c9c0026fdd590e1e2cd526e7f7096570a53bbf917ee0a2a519ea4f15 f24cb5a8dd227ef2d8459ed65c31f5c19c9270028ad027c131e73c3c6f70b9d2 f2288bf3b41affb66db183903f464999bc5cf41602a50db4cd4f06ef1105214c cb7eadc45b06dc96636884a3d6d7a8374c57daaaecd35f52aa4db430e1c63995 bbe2b7bca8360dd4ad7dfbb0aeac6ba567251655c0e587d9dbf612b92bfc10ce db038669f091a3fb55034808c478ea0e0896037a1c5b442b8eb5923bda950ff5 72d305439fa14d73563da1105b1cb0dd7feb729e7d02368071dc03f11d647e25 46e5e870a784152f3317900f59f6f8f0d5a585ea6c1a0d5315625c0916906302 df05d68b2514a493918d94d99cb53f6deba91893597a866fa8383288acc52dcd c28693cb63d003a4a3248005b70e35cc45292fbdec55ae303f37ed3cecb8d0bd cccd224b63a6328ebb6f1192e962b4d9c160f30b753a3f974767aa5f8d5e9f11 5f6a834747814afd7f7e7d4e90d46ede92f8a810311bc28bcc0027e674efdcbe 3e40e2378ba1b9d7354e8be4e313322c2aba1e03d2f810cc09b78197e8214d46 6f5531094a7b8cecee5aeb2c693d4b382edf7d9d715d4cd12ce39d510885240b dbf096994f947ebf264ca3848ae72b3a2acf8cf2904a4b5b2fd5a3f590f4a475 25b967f5bcb647a537b6a4bb99be6ba00c9e96a51b2345fc48a8ac1f7cf4c9eb 329915effc052bc6fae5e25b08151e54129c8f5ff8896d0d4ed79b43ed124865 f79622a6cfd362e64e8e88e417a7b8204f133cfcaa7ac70df4b072bd808c6971 a0f2cc29008d5afa6648411b5deba3aac749fba957b0be5dc72696d1ccd3bd95 b2ada03d95bd1c2e7a10beffe96b9154cf9b1ea22c5ad3ed8d79af6df9c5fc46 7aae44e7f8558889afee261b8bb6c43785152943785407b575aa9de5f6c921f9 fa660b14626f5e1034cca473a6a7c16e597492013f9531c67a35fee2e56a2ab1 e4b9e834fab1fe22a52d785dc1995badcc84f2d32e0f9d029eb0ff5eb2e69843 fa738bf19d33087e9c0618371f5098b1e2e309d45485b4d6b37e557baab7152e feebd0b2c10c1a45494853962e0345b6b72967c886c311e47a1e5896260757c3 29d82d254d57e38e0e89ca1d9c746ad36e246978f307be1329914e7862a0f8cc b14f06cff9c03fd6cab3bb4cdedab7f0e1711b3d31b022af53cd82585ae82145 dcd76f76fa2bb84da98a2a3e46fca1d9e7ea0a91866201e08712220cf0d6d5f5 91a3283ee986ec9e7f25efa757a93322d0eaf07e9cdfa316ca5f96169ce85895 407ad045ce86d9f35b49cfd6bf116d22d70aad5777dd46aca0ac938cdb0859a0 96a63b955eb4c8d8666179b1e6d95fb193889028666c17ff613ad70c8e9c84a8 c66cafa7496fefc65a69b94b9ba5e1d5b944b8ffaa613fd3d04cc26796c0a5ba 2d6d6bb91772ca88f254a48ed8acfda7532d98f9d5b7d88cc0b0e57e5d02d327 4be18983b93de871c80dd536b7cbc274729c142a869ca7d6247c769ce44fb92a 90b197da1818303000994e0a6cce0fd6a524b0d5d33802ff7bc6099ca05a77e1 5f5b1a7a379baf044715bb6cc9943e5be7feda7733687e9e7f960594d1cd925d dcc26c02a8f37102c39272fa0dc6fc3f5fb20f81d61131e7dc39e862aac67cb4 bb9db02cea461eb5bc66b3d0b6bd78afd0f9536f5f907d53139b574fd40818fa f3c85343b5b8e77b8d164bafa35075acf022679a99145c46339f12a31bccc31b c17731415fd5a998d2a8e33c4fe39c1fe4d711dbe2b0ffc47a171a1ae9016c20 98f041ce3a0240bed3fd2e2e174a19bf5c396965897b3b64019e4e22130be4fb 6b8f3589719040c2b123716934d430aaec0bf30c04ce6e1980552947d3233966 1f72ec517f6318586521e5d4c45a58bc53530fa66efd6f7ef3d94fcc35afc26a b4dab34757b5933c85717090211219dafdbcbea0d8dbfd99fc05288feaaf19bb e8c905b49e7aebdc42529c6ec1f7c3ed523b399f2a71e61448b8829873afb8d9 d3cdeeafcf60fdeb9c878f6386fb58f180bacf6e99374e89e2704d3e69262b16 07547873c342d897940b8496d1f38e9088ce93dbda7e866ccc8c068fc7210223 1b27bad26cb4eb65dead908f9542a0b68b7a5d0b4ed989a8fc74f5e4d5a1fe2d e408abdae204cc186e0a2b67749500b3f8c51260ea094affc634a4953447c3cf fd2fbc2698bb86143bce8b232722518ec936358c7fbf69effbebdf6c3610ecc5 957fc30ab08d2e2f12ac47ddc6322a710b76f900c3dda591f048886f80165704 1f712a84065107083c0f79ea7fe4f92faae9c9c04cea4384478390f1affd066d 18ec102b5154b78ee8d468a4162c0b3a10bd19e1312e9d8564d5aa5da77f7e56 1b6852c00138225f9101fb1407fdb9ea605c8e0862d81aac19b869af18630b27 38d8bb635ba12ec2461ad673a27aee5bdb592d8bf08da6c14815ea3e59466eae b887ce5b0ec2f54dbdbd30424f317f45c6ae5d1cd6f44316c122ffd7c178fdbb 8a068cabba00c126bcad2f17a454d0810a0533629ff6b1069d5cccd5f5e52d1b 07869a59eaef3456267bf050eeda457c1029fee50b395fbea1dc6d7d7cd18d76 76ed7a78cdda4f105166f61ac728ad25beb547d071e0e515840dc9559551bfdb 454b080cc49e268fdf556161a92fe7d93219b395625eadcfbcfa8a9ed61bd7e6 f42d58a138020f2a69951d2f67641c39e98bb2a4441b0ebccaeab4e731e734f4 136e6b193011bb221ee9d099ba6a23a5f1340a1234a50a4cbbd172cce6cd2b60 15e10de447c4df7db80ab79c4840dff6c7eb06cd931aa58c001c02229220086e c1f2c3544af0a581afb28103ff5ccb7488ba861edccab702611dcf1628f77669 3bb25210bbcafa72dd0a5955a85419c425b9b176ee110f88e341751a56a2dc61 209df3ba68eed540b6df151f60ca61a8a4f93456aa864e179ddab8844290677b 669ccf3a67a2025b5cf5b4d7d2dc7e1e665bb55e72b8d02ef4735d6c68764ed6 93322f99d69636df06023648c22f86953046bcc662d6079ae2c7314bfff5f5d9 bbfe514c8beb08eb4a469c2b8e496671de9227b64ec3a26db6202935f7b92a6d a03d7c9d53126432b6337cccd64c650e0d4d6e3032ada066c9b2b891f5b74900 a9c3b0481aacf53671ed0d841106f05792d76db3626655f8677323d0b5d817d0 e7f0a221493ca7ffa8ad261e9663ea965a3bc82ef4d9031103337a868f80ab46 4f4a0df2f735b25807c9f3268a7e0711ffe63eddad14787806e67ec144ef1d17 083343ebd10a7e9aff9e6c1e349c7926ed0f3d878fa8b13f2904cf4efad6ca39 1bcf1f1f4083e5cee93da0746c5cf983004657c5c8fe4eece7dc424f72866db6 86212292fd27831b68e36bb169ed0df0d23eed7c87fa905de280da096e57e140 69e00680deaf32aa3986d48eea8811c87d7082371d3d48049611253d1d0c5e17 c80a7df4469c54882ab077cc8f0defd8b88232205c3406db6bbb157580bff648 e16b07a670f7fde9388e018153644252dca0a7fb24b50991c2e699c90d827fd9 b5ddf4cb8f2048f8d4476b649727d7654fd450ea19a29e4bd087a073404d6406 58c8f54ff20565298cdbe2a6cce4a24e2861a92b14212a05e854d04aa4bfe13e a5fb10d7736a8f03e6e306d669bc6f6cbb29b34958a8f4208e4b394959fe8668 e540699edffc8aad936f803b2abcf963889c85bc44acf6c9cc2ce2a12716f7a6 37c07d2d6879ce05971c3842d69bd02a41e3da3aa881eff4a38f9997494e922d 550f63938ceae8afd845a348c43f45f3f7173ddff3f885611d402f2477ee706d 8e530fcd2b6ea54093e445adca8c022ee291329e37228c5757270e9f21a5b2bb deb0a0f2d25224b0fb67a610cfce5a7fe61dc6ff049f489f1e15699a229d1555 fa976700d9fa69fb212aaa6d8a7d5604ded821ae4c63f87af0b4272ae421a29d 8801b6025ae855c0b1b978ad52c1a8869d81a2a50f65806fe9627bddede8891d d8a37af1dfa7cd7293c3938d32e410bf39437bdf149cd0ceee8809e3e8bd9584 aa3588ba05f51ed661bd48a1e11feafece70752b7b9ccd8b590afd25b0d91843 189c395e9c3409117be9784048bac366cda47f117b9260318bc8a894045e5bee 3a1e39af73458bd24b269b5ff40b96abaa885d1e895447297375eb8493d7282b ff7bd2b53ef951d02283d782e1bbb3068d2bfdaf811b6d4dcaf4b2a962783e12 f9f6b211bd4356914f3e3e7a3dfee75d69123468815e6fc7bf6e037fde16f129 ff01ab1eaf878bb0a12620a9aaa6907c4c88c18390d11553507d8d58a9ad0e51 a34ab4ba2e2128ad04deb5cf7d232d245ca20323a5b797b566ff73fc6dfc8bfd 262ca73f501e8d62b807cf9239e32740a2c2c7e6e3b3049508cfa7bfe22e2795 c469e5aa2c2b944c62b734b983024ee9541b60b9e9dbd27e72625f6cfe218ff9 417a053298ee1042d72f2749fd4b21d6afbeca64cd21722628dc52e8d9a675aa b4378ca91ee21bd5e41d78f78208db17434eb55be3eb95f8e69957c0ff3ad892 bbed02be41e9b29d6dd30b94c0a8a0c3a23f5e1906a2930b434e4520148f17af eb3a6f22d2bf6ba1f23c3eb89b66e14f20e409671c4b65f80490c8a3c60bae6e 9a2c69f153ae23b4117078eea05b7c40f0b484c8d11ee2b563533b23166b760a d3e22fca2b5b5667b800ec7037de99a585a7081d565eb61f8e7641f58ac1901e 1030da028db2ff84da46b251061212dd2d90194e5a8f64edd40a2fc547d5ae86 86bc73ff0a665456746074519505db6b1a96042b1674d89e1b00329deab4d97b 86a8d3edfc29fc47971b2e19dc715fe9a3369addb725a8f4b14094a4bd81b77b 5bb38ccbc7a8e1647767d3d660dcd19bcd09c1e5f9237ec7d37ee1930df5f0f1 2d0881eebd0cca2fcd994fd445ad2e620a7386c3a10d7dbda53d5893c4fa70a2 ddf4d0d5af1be8049bd3a57a580e5fb587eb5e3d0aaf73d40ff2134d17ef736a 36335066a493bdad7b4d5540a00cee82bf1b1832eb9c06325f7d2591bb1f6a2c b4ddfb4df9814dad3c9a59b05d57d8be208810831fb650efd8bc629c4c006e9b adbf2a6d0bc51cd88c47b6518e9183d9f25c4de7c6842f37cfd0c44518bcca18 6cd7d8709bfe03d9cac1ed9e19e0119ec41b6028fc2870e465ef7c24118ed54e d81de4113e04a7c4eca75d5c9f460324a84af18c3950b5d253fc11325a15af12 0e36f90bee4787a175c6ab7c1a39be8ffe1324a827028101243f60844594737b 7f597005909fcba78840e6297b099163a356c77032055920da96bf7374a5cd38 f71a74a4cc74c33d1be512f1a1af7aafd876e1d5eb115e945adc76d991b13bfe 165ef522d5e6b85f8da52053f20ba774670ba913e7fa1cce03293a4cbb5a8969 6572e555aa0a83fca4557954d438000d29bfefb09d87962751c77f15793a83b7 cdc6e6f0c4d7fad961d4ef287e00d44a1f61ba6fc0786c13ed8a2550a1914ae5 f1eb15a53984f208e755a9ee908a48b8038d0c219aeadbe303c2cf28c6d7db63 fd1777db279471c852890d0a018d7660617a94911be483486b2c3be1fae8070d d929d68c2356d58d84986662ce0e783e27852b4afdbf8c97f1e47672a96aa0ac f8ee51676e0be143cb4dae6cd40628d0b7012f1ffd638b14f7311f33103fb53b d91e689cf8b6d4930fb4da13bd6343f97e51613b9e6ca03e2fab85f12b1cd835 1078b58f1b82be751a2dcaa1907b2b7bec05ddc488d7388e9d1b29543de2ad43 6b75f758b144fd7b93a4e3876dc06010507f3e7037f3f8f078f24fb5972f7e73 5922b8942dc840cfa4e3d713026fe17362a47fc060c7282a9f7684d89921e1ac 2963a1cdfd4682857b4285e68483576bf2a05491d74a390dd017a95d0ebbe786 8250bb41eb0aa7226bde3a4dfb5b27d7f97421029f2bcfd26fc1a0f3c256b9ae 837aa46745d5de4c5c275ae1f625630648840e9fd199a3c4d00262c696bcfbe0 8c7870e1d46c02a919e381d27455dd4ed5049d33eac72c56810409a6cf74f242 d35ca15c50cd05b546e643835cccf8b8b7ab291bb362bfc92bae2d06c815d612 309ecb8d79321f1a633a934d61a4a0c873637fc83695b61135748ec860785f60 6cd96e593035ccb3103ef1048ea34dec7e52a185915852151dbb086768085f47 9e89ab18c2cfc112b6673118f12d7665c5adaa6853eb08b0bf6061e0b8a0adcb 86e2f9be796a4586cbba8946c9a797aa830858ac6358c4dc5ec98d6e3653ad65 8428f17dcd36cceabdd86e4a2ae4792444b7daeb08958ec834d699e4f9e960e8 5a883744174e66c192f05ab50e2d7978325436b90e06d67fe84a1010b3ad5e36 3a477bcdd07f49becc828dc7f48fd214fb139b57a237ee1e3668255af55a4135 ba74aa557ba6287fa08a4805235fbf4373ec0ed49aa31fa3f99f990f2ce9c12b b54bf5b52f80dc67e494b0958f473f9d0bff8831a33d17dc910b6dd45bf2ff37 b1eb44f40972d710a0d19f6046afe4484ad2a48412ae185ca10c3ac5cb192edf b172b5626e7023012a6ea10d9c8d749b0d91c563c2b9c025fd7cb4ccacbc5478 5bde2cb58d942e2c9fc3e4b22703c1db47f629ab36088cde1105e7a8c624ff7e 01d26899399ff91f4f39b1150dfee69f465f44a9f289c78fd050d7bf66200a93 326acbef82918a3bc1829452b0c3a5bf15b974cc4c85b9aa0a8e9e437819a8af 5ef3df8c5f451e7dfb18bc2cae853988b550dd963c5f150324f5348bee3a5709 c15026d9b4a90e50c8b0b8f13a46e63744e95b50f495ae6c30a612643316cb42 0a737e142d8fd6322a635641bd24afcf438b121b178d004bb29fcde186f9f873 b8172f44a6f75622d9d64b07b998d220bcde05d9f2839328105bd016cb80730f a67fcd5598437d21f60b7b184d1ca74e661a3b3d100ec7f45839e96e0fb74c39 faa05e9905e9074a8825683cd47f9efa112c3891cf8648e418f237c923208fb2 bc20674bef2cf1de80fc61c3e30669c9b01976598849fe3d9155920ae3c009b7 a7f9de4589b512b6219900c73731245412952085c619563c723d61c0270b2a94 9340b5d26323bb7857e6eff428f18a49327242a5e7e4ae7ffa30e9385a02a454 9edbe201c62fb7a47d1f217947eec329a8cf4ec750190bb8989aa848fc3762ee db9ec2bd3cb7221bb4fa7654046fe8522e4768b5b01197dc84d4f868bcbdf293 282da8a907a9ae670b6366bfbd07ef6534127eff7a7f99ef5441f750a7f0fdd7 16ac827cbcee87ba2c9c3a4e4fd9e0ab389af7a9d524dce404a46d147607dc7c cff13180b64a7ff61d4fa6b82ed0736a251f5d912d96569c2e454f52190180d8 614a372969c52351ac3dd829bf24c08f6bb5bdce3dc7cface8a3ac69b2c54a49 f61fcfaed3b3ad2e266a2099e19a9b6275f8e27769f0b4c13aaf831a0e9dfbb6 18c83d8a278edea2cd628326ad659f1e1cc456d98916f0c6d1b4856bb1919f4d ac7adddb448825967ae9a1c158b1f601a7efbec3e76bfd7869be9060622770ea 785279366700c330843b3bed717b82003c5569330da07c8b09ecbab3b013f084 6a314a8a7bf3f03727e91e3c60bbfb7cb9ddaa30f5de85da4d2dd4911c9c61da 3767f9c533c58748d89f96fc94a25c89d0ef1120d3263568a911f0978a312a7a faae86dc56ebe5af19b0b25c2df0947caf214ff95816b017481ef9e3ba594bbc 80bf7e3e8aeb52e397022b93ab95957753a094b1e52bff8e3d7f0d04a17cd286 e274add583659138334576917cd517b0394969603e833ea4de0c5b38c84c0488 1cd8c904f7b3da660cc12d37945325bf9f06bbace83f1b64fd8f997563ce8efb 82747a72c81691f88c898f11ea2c054aaa6bbf514cfca02b56cc99e5dff1a481 94fe5039ad6acdbef5843c8e4fbd04bed9d9b6af1420fae38cfd1772b2e3e1cc f7e4450a01668388fc4ddab08cc24af6bfabddcb99712100c58ccf5e9c9a17c5 e40d316fadc3bfa62294a091ed266bda81880f3bfeb6f6cb9f8c9ab03c73ed64 52ad9eeb2d3ac8635cd9d2459b2c2d34f952bd75def9f84a60be2254409d33dd 04ca06b44cbb8c4586ff98376b6aeef2fc171b07786381dd978e4c366345441b 280c8d25c53ed779369e14f6d7066db2c7dbe003500314505e1c3671fc3b0ddd dee36439ac826862509d543302c387d54cebdcb6a5502376213596596380ba14 b7880a934ab08a6abf6dd4093dec4128c8082f3d92b5d2d92cc286268f1be343 312773834d2d1f8433d6ad2a938859502d867dc25f0cd96e98e4bf4de131dfb7 a510583fba93ae8718a1f89d60e5b5ec026d91d28ab3e9ab81d44f8b010f1138 83325a09382ac02e6f7fb07fa95f90c75d2d926c8ba15701bb16f608b91478e3 bbe8762c90ec7d507f9ea95d4c3f46465a2331b859db5d6cd9b590e1130c4681 297cf28679c41a91175d4a5f4c580a1de13371a453bd5e0d38a0b7c0807f0db0 2deab94fb7aa3c7f3138042ae532fabdffdf953b8feb36631b29f5ab0bc0438c 5f9ab0ed3eb87ff056c5552083b2cc268689be24162942776f59b7f9e4f5b41f 81e5c947ae042d24df262097bb9218842738845fe30e36afd81ccf6e2c90d34c 5dfbda79c932d4baca44490de00b02ca929433e1f25000ccf537d144ecbf943a c21727920d9beb432402fb17ebce944da34f6fcd02332c53ddc0c3cc2536cda6 7f80282b423be2e01a464d062226b47b9cb5b4e45bd5079ccef3a064af2aaba0 905c5f1a3a9a333bbcae9123c29153710fc66fcb65e318ac005e551729143d67 da0dd0c698dd7e387844f603cc17451bbb725e2b531a85cac01ec08bf1b9ddef a0f9483de34ce375c835aa613b2f289d124087071ed8b4a37a0aff1981a10b02 fcf7281c0d03a84feca7443b91ae6653659df5e26fe1e0d5927daf090bf54fd4 e730348d1e83f6cdd345b5331906d30858b8944043dd5ac14859db6e68360a18 c7fd1b027d91a14312fc35a30dd12d6983fa9d9526e0559bfc376385715da2af 4908b2b2ee3388cf1fd9b7bbd5da15434739e2f12f44481527dec6241d7dc090 79ca05f15d5aaa3507ebb89e0bf0bdd55f45fad40756621200e4b883facc6c00 c0f6e41068e0a32547afe4dbc0be8e5e57836d47d81f746a931411c615a145f3 afe966876ea51677709da171d16671ecaeb08c8e5799102210c7c0e4b2083148 0ba6de1793b208efd7e5b958b04840c57b7042fd3cf0a7912e238315325f665d 458e6158aa22701949facece70812472f30bf5e8fc544ba99a643876cc41ed10 48daeeb69ab01af53d9018687bee2bb47b6d4acdf1ee04a46b1a488708eb2cf5 7733261d6453d095af9549b122c6e183b76cba9def22cbce32c49dc615c0988a 428dae015300fac0988ca0c6c710de1cec4bd2686562dd31c73d70bbf2697942 7bb004e3b5e0039fe7f069073a17144ef3301bdc8b2f64bf80e69378dfe988f4 bf3fcdb94b79673c06452035bc0b82acb500b8611a958a7882bd4542d895fbf4 a0e0ed758057bd468c31e7a746a72ff9360340bab2e50ee83f152cfe04d8fceb cf05f7198e08ea12f9b2b15f79a2c7c20025664b25dc6cd3866641dbb5b638f6 cf50f20f6ddd40cfe3ec12be71746d38f82e71cb2fecbf616bf275e9911fc886 c8dda19ae13c8359a162e7a5d643867c138b7a27af42cd13dbeb39675fc9bedb f9ee5af9bef261dfe00b7a380866f5146460f4326c02591ff735c6c5edb7d2e2 648a99d75b0c6e56e58e1ab20eb30c26df1cbbb93539de70fd5109089c085dc9 86a1149ce85dde78d04629e2119c3b1defbd74348ee124188aa072c646eb4369 61c2af77048a217f8a87d0c1be164877e38905b9c64c4ca7bb245e3f42604d2f c444db2c200ae6dfcc4c121137174bffe00b8cfce8387ee395c9e2d7796d0b65 da7a0e628f11141f1464b641f82a6d647a706189d18d5a400229ec79fa6e3c1e 561a53f006ffc78822f0a7e8517a920265e4ef96615ee775c1ab93d839dc4fad 5dcd0adb608f0d3812be8681e0b59f084761d99de6b08c026005ecd0ee54508c 238309ed46163b5fb393891d90d8cd03ba417a04d6784396e7e8d282a3b84431 df3f324c703a4988c50004c716bdb31e4eadcc915e78a6b1898026d2dceaeaef a6e82b0ee80fc15221de932095e35adccbcf4ae515b504e4763ad46ca8c568a5 e2605171ad638caaeb21a80cb5877e2da5f053c3ba0db377121a6798d59ad99d fab5488cd3b25bdd8b3a26a3805ede14114e72b50c9c8fe2a8c6384aebf27dbd 5df066b1f4476f4b9d457018fbb57c22622b9e4a3cffb970da1a887bcae6123c b46af62e50ec8ee8fee48fb97f127897313af992c2ceb38b2e7cb704b851a492 5fddb642aa7d5ff2db9dd54dc1980a33df42045e02a2ef62748384a976fc35d4 702aadaccbe7cb9752d28c3a9d15fe8389c92c21ddabf3cba6b69e857565df1b 0139de5682df570e15411924a259f42a86a3d4d2d28c28252a66eedc95adedab a7c61857886af046f66f314880e161176f93395cde18578d7d7596b8c3422841 5fb26419e6316192efe069e49d948fba20bc602f81030806a0665c9cb9ff1449 9ddc0b5fec5fe41f09092ff543a6557b399f57b9bb39ca2d86309eae7c9f91a8 3fe58466c209c521aaa358aefb0b07a8125ab587c4f15fb38e6493fffd24f615 492759cf86fe0caf7049c448929bba2ee8be67eaa0e0aaa9b5f636917cd01d66 897982861ee57528c388adc791cdd1a857949ee4906ac4e85962866fa79d529b 7544adbe7fd7d6bec3fd3ce6bf589e6fe7a9f41962769bd41ea21b3a9e258fe5 a5f8a6ce8ffac7016d5b2cd8b5f46f9d53bcc33658f5b23a851bf6803519da02 426af58a0790a33efdb65e2d6cd034c264d1e1c18d6c8b0ddb845a4bc0425329 88b00ebc782cb7c99a9fa21669a752e9e951c24309317da475601ac02d614bb1 d16d3fccfe3d2f6535b7770dbbc7a7a44055fa5aee59ee1e83ae3af53c138e98 7a5aba2257e904fb80fe99f6c98394084b3cce03dccfb9279fc1fdbd19472b58 d8e5bcd8a3a7a3a5db4f5b50dc8e1ab20629f13d610a751b8a3609e782a2d9e7 e9e703b5726a50229a3a479431c3640efedec0f5a84b217bd0b7d62071520179 895001bb04a291c250a79f6e4ffb1e121f880872e5557cf73b3d5668b7cfb285 f51310968de06ccee34bde0e84275f5ab2a72bc3f9a63f48f8955681f615f091 c95b0e944030a4ab48a511b48015cbe8e01cd6322a500b702a9f85900e1ae8c7 b98db59f0d6d8d73d546f1409d93689bf313e812bdd928e05b5488d9cb66b738 3408a5815a170e93fd30f68f82818148a0bf8786d6bfcd09442046fd9748401c a8d7e4598397eafe105882d035d45d1d6ec61079de963db02500e255c774e8bf 307bf9371f54258aa40237d5bd1581008a9875e30abdf7da39cc41ef4677662e 3f98d02015c91f234a541df1958cdf067918d71d054da3f3d3ef37d193690dfd 9d6a3212a0422c96e7b40e66b7a243a7acfcabe0c5466e7c0d425d228586864b 772d5a2b0912b061ce0d15fb76728df33e5c42b125a9fa7d5fb443d54de43df7 a47a0106a80b7c2823bf7060a7e3e81e0cb7d7442057e93b6f38593b900b4e52 1a0113c06ceaa6e5d632c7c5e9492ad0546f85313238d39bab419ab657d04ee0 166667660ae8631ade889d60972b2908a6ca4c410e8c06451ce1eec3ecfa092a f30b6046756ab995176ebee3683ba8570d69ca581b52a81a21322e744792df16 9f035497dee5701193d55350b11978cf074444691b5cc3513a3cb8eff7f067f7 96edee530ddd825671f5bccbafcc30718a1902b173652e114862815fd0ead797 88362354737e832fa7dd46fd76f8e7b140d84053ebe209b5e9556b2f723ec229 3424d02f8da40f6a4c5ee291b658eb17408bbb2bc98689d0826fdb41428ee6ae 39475c480489083bc7b7f606f68086b7b9b205b4e513af8b73da6c2d0f3eb1ff 70d97d205532cc0bd6f6d4f4fc37ae957a48353d45434c7257051b263b82333d df2d8acd0b7c7bb6b8ad9643bc1fd0b5eb0732776022d6213932021a08f0734a 3b35694705a828587bb9c4196dfc4059a9837e7c46dbe6153def24dba61d3f25 9bc5d63f030fd860e9801dca7b81d0d4dc3d8c4cbaec3b9a769fcc09d7fac8ed 4c046e0b64bb8db2bafed5c91b39fe0885cd5e6bb5fad3917d664238c4642fef 6c4c554296df92a9563a29430485ac48c2a0f02ad39398126843ba348005aada 3cbc9211dfeb94a6d1b4b14d7138d4e2583d721bc9595e05c733043ba6d86f91 5dd250546f22f9746df5c4ac9f99106073336949dbdeb1ed3dc746587c1adfd8 48dcbafe2cf0c204c44793e7892ecdb55c246cecce60f467c2991989f5be9d21 4d72a888116d8a945376697b5d7034d62a680f9e91011a57b797d9576b043d1c 4b73666a7275e93a3b7b52feb6e8424f19a4914d4f4ce621efec308d83ba912b 7f5e0089ad1c15175216c27afef512f05312e2bee6c5778c5625354b9b3c70a6 2923140eb3f350d73d06ab95c5232a86199f41695b6cfcad052a5dc27d0705ea b4c94332d917236dc24f52172c94e05c3ff9203fbd34c13ad9d9e076dba1e23e 47bcf2c96a1c8b3ffcf2419f7d5b47795d9d2923fa5905b5ce3b4f332a89c5da 71afbfc57de12ad8d8678d1f67c1898c18249faf4d9f427019445425a11fff30 9164be83b0594c5f312d653513ade66d5ddf29738cb823bee179ff864d01a740 f759f64e5ce1d82f7841118b263929951fa7896a87c7949d9ffe0c5c5fa07fc3 e3dd043a9e4ccfea80de6ab6f460c46f852753220acc9645419b13634bf351ba 35a1126d0164e6e64518a2ad5522a73fe38612a34cb6671c48bc18c919305bfb 35c57b0c8e221fa7519d5b1d6d168d8bc0375d174eab1ae6e9e44fbb7d9ca6a2 f04c813f119939714322cb87c693a2499c9c269bfda53c78e7f04c775ad407be 49f8679e345bef9d531654e2377e61bddfa4f8aebe5bb6dd862d298519bcec25 54c40969c9d1fd16e5a126cb22b8bd3976f68ecc8fc8dc9c0fbf51dd20c839d3 b921da7d0aeb93aedc761f31f3a3401f83be4d38169ab5368ff41481d638736a a71f624adb3c4a275e6b353f139e089f0e02a27bb003c8fa5eba4f1b989b3282 8dd8d049529a84b2727733df2790637e437581de00fd5aa03c516360e4644d55 aedaefa76f7f729dbdfe2fcbd2c05dd593c74f4eea31518b09d8bf2094354040 c260b7b4bc3a6238bcb61b03e6de12e3d63be9f7b5f34441d9a44304911eb92f 93107eda8946de92bfebacdbd2d950d92150d1f831d6829fad5d62c75e5860d9 cb3e3062cf867305a0ddc020bf4bac7a2d899a9481a391152151857cd53a97a6 6f7cd99c190f119185d33e49f6ab5ce20e61540b21387358f1233d2b39e69924 7ac33ac73e337a1a54e9d574ba856e0d3cd7267483581dba9491619f91b12996 d1c33f89d5dd6407bb98323467e9a6e3be4afc06c5006e19ab8ad06b0a01fdd2 ad742bff310f17f16193d7ab584c71c34372690521e0afbc4e6051025ec9a4db affc01120edf545631e4fcc2a65c488f25f640260982b7458f83125581d36f18 55ab4d823dd44112967e4fd41cdd60d6644617a638ffd5c9d89d2a95bc4b1b9b 8178777184d48f314554a19a444fdd509ebd345b19a411bedf5a0f59e9c4dfd5 6facbb6ee71145168e06a6049f1e2b0e3f91ff26a2cce2db8a256400876db370 17cb684540eea84942aa295cb079951554614e45f8d0910e15093aa1d4877c3f 543f0957ce9074aa051182c9ba6cf64058a403cc63cad5335f51aa32c76e3d8e a3677bbdb623c2c5febec43e5490decf54bcf7d9cf35a4e5b9ab5577649cb61d a65b3fb13156130c55b44a78849ff4d84136f8ee4f2a368de63f5799c822c3f0 b27770a29973541c4e137774fa958c0ea6227a57610bc6f056662ab2f7ab4aac 6893826c13d3147b6fa6075cd4784cb799cfd972d9566227db5b25bef8641534 6fb8cee4e06dc0fc49be6237a2720e3f9b7bc7f22a0a5ff2c276c2aaa00ab372 7e59f1642709f1216403c0f694914e0be6c5165b21c1a736bdf04da8cd699fdb 1b9e1553a56314b73ba74d83ccdb0723469ebe15cf10d7bb4d16f1c0878ffe68 f015da3e534334f53a2591d30199a0ccfc0f3a239559e4d0c7fa1fca44442141 3bc003d6be7ebf1e9affec62467e98ece66bb2216b4cb5ce45113e75ee023635 9a3ca384d603136fe5b5da21465e6d406931020d030ad932cbaa597e170298b2 12b15b8434612b12d13844a3e5a46597b4c26148a3d6f5c42fe2d949dcb64b40 44034791b7d780f75d119422d56fae911d5ec40189a4957b13b9b75d991ba190 fd3944c8ea1b756747a0b14492b04053dab4418ea5a96e1b6b12ccdfe739d392 d023e003e0463dfff9ad29e5a0547d5101e9d6ecb59f376860952fb748d15b68 1070ba9d08b9436b65b80b20d7c6b65e4476553338f9f17dafb46471d293de8a afe9d55d30c38a475b9e8d00d02690ce3562ba9583038b5fed7940cb4d7cd5d9 79e2532f65689847 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndResource %%IncludeResource: font Times-Roman /rm /rmX /Times-Roman inf %%IncludeResource: font Times-Italic /it /itX /Times-Italic inf %%IncludeResource: font Times-Bold /bf /bfX /Times-Bold inf %%IncludeResource: font Times-BoldItalic /bi /biX /Times-BoldItalic inf %%IncludeResource: font Symbol /sy /syX /Symbol inf %%IncludeResource: font PMW-Music /mf /mfX /PMW-Music inf %%EndSetup %%Page: 1 1 %%BeginPageSetup /pagesave save def %%EndPageSetup it 14 ss(G\366tter)234.924 760 s(d\344mmerung)-0.518 0 rs(, )-0.14 0 rs rm 14 ss(Act I)344.698 760 s rm 12 ss(W)536.98 746 s(agner)-0.96 0 rs mf 10 ss(!)36 717 s(!)36 637 s(!)36 637 s(")35.5 581 s(")35.5 581 s 16 581(@)34 717 b 0.138 27 617 br2 %1/5 (@)237.129 581 s %1/4 -1.894 107.226 611.132 73.45 600.02 m -1.894 107.226 608.132 73.45 597.02 m(\243)67.6 565 s(J)67.6 584.02 s(JL) 67.6 581 s(J)77.793 587.373 s(JL)77.793 587 s(%)85.892 591 s(J) 90.892 591.683 s(JL)90.892 591 s(5)100.976 595 s 1.894 142.465 585.085 111.811 575 m 1.894 142.465 588.085 111.811 578 m(6) 111.061 587 s(K)121.146 590.317 s(KL)121.146 591 s(K)131.23 593.635 s(KL) 131.23 595 s(=)141.315 599 s(K)141.315 596.953 s(KL)141.315 601 s 1.894 185.818 590.076 152.15 579 m 1.894 185.818 593.076 152.15 582 m(6) 151.4 591 s(K)161.484 594.317 s(KL)161.484 595 s(=)171.569 599 s(K) 171.569 597.635 s(KL)171.569 601 s(%)179.668 605 s(=x=)184.668 599 s(K) 184.668 601.945 s(KL)184.668 605 s 1.894 228.194 593.755 195.503 583 m 1.894 228.194 596.755 195.503 586 m(6)194.753 595 s(=)204.837 599 s(K) 204.837 598.317 s(KL)204.837 601 s(=x=)214.921 599 s(K)214.921 601.635 s (KL)214.921 605 s mf 9 ss($)227.044 565 s mf 10 ss(=x=x=)227.044 599 s(K) 227.044 605.623 s(KL)227.044 609 s 70.6 579 225.044 583.623 -17.311 cv (@)237.129 581 s %1/3 bi 10 ss(p)67.6 616 s mf 10 ss(6)67.6 641 s 54.6 641 65.6 641 -3.3 cv(=) 111.061 655 s(6)111.061 657 s(?)119.461 657 s(=)171.569 655 s(8) 171.569 655 s 1.8 222.16 633 195.503 633 m(K)194.753 645 s(KL) 194.753 651 s(%)204.982 645 s(6)209.982 645 s(K)221.01 645 s(KL) 221.01 647 s it 9 ss(3)205.631 623 s mf 10 ss 16 597(@)237.129 637 b %1/2 -1.806 97.142 667.034 73.45 665.044 m(%)62.6 649 s(J)67.6 649.044 s(JL) 67.6 649 s(%)85.892 651 s(5)90.892 651 s 75.6 667.044 225.01 653 12 cv (@)237.129 637 s %1/1 bf 10 ss(Br\374nnh.)68.6 737 s mf 10 ss(-)68.6 721 s(.)112.061 721 s rm 9.5 ss(ge)129.746 705.5 s it 9.5 ss(the)128.426 695.5 s mf 10 ss(7) 131.23 721 s rm 9.5 ss(-)139.568 705.5 s(denk)143.585 705.5 s rmX 9.5 ss(\242) sh it 9.5 ss(lo)146.534 695.5 s(ve)-0.095 0 rs mf 10 ss(5)151.4 721 s(?) 159.8 721 s rm 9.5 ss(der)211.856 705.5 s it 9.5 ss(we)212.644 695.5 s mf 10 ss(%)209.921 731 s(8)214.921 731 s(@)237.129 717 s %2/5 (@)400.545 581 s %2/4 -1.894 273.289 609.131 252.612 602.329 m(\243)246.762 565 s(J) 246.762 586.329 s(JL)246.762 581 s(J)256.955 589.682 s(JL)256.955 589 s(5) 267.039 593 s it 9 ss(3)260.9 574 s 1.894 309.82 574.799 280.888 584.317 m mf 10 ss(%)275.138 599 s(=) 280.138 599 s(K)280.138 596.317 s(KL)280.138 599 s(6)290.223 593 s(K) 308.67 586.93 s(KL)308.67 589 s 1.894 355.327 580.868 334.758 587.635 m (=x=)334.008 599 s(K)334.008 599.635 s(KL)334.008 603 s(=)344.093 599 s(K) 344.093 596.318 s(KL)344.093 599 s(6)354.177 593 s 1.894 391.61 580.25 365.012 589 m mf 9 ss($)364.262 565 s mf 10 ss(=x=x=) 364.262 599 s(K)364.262 601 s(KL)364.262 607 s(=)377.361 599 s(K) 377.361 596.691 s(KL)377.361 601 s(\243)380.46 564.381 s(K) 390.46 592.381 s(KL)390.46 597 s(%)385.46 607 s(=x=x=)390.46 599 s(K) 390.46 602.381 s(KL)390.46 607 s 254.762 613.329 393.46 616 8 cv 393.46 596.381 408.46 596.381 -4.5 cv 393.46 613 408.46 612 4.5 cv (@)400.545 581 s %2/3 (%)241.762 647 s(6)246.762 647 s rm 7 ss(1)280.138 657 s mf 10 ss(6) 280.138 649 s 286.138 632.5 246.762 629 0.2 l 286.138 625.5 246.762 629 0.2 l rm 7 ss(1)336.008 642 s mf 10 ss(6) 334.008 653 s 1.82 391.61 636.94 365.012 640.929 m(K)364.262 652.929 s(KL) 364.262 653 s 337.008 651 363.262 651 -5 cv(%)372.361 651 s(K) 377.361 650.965 s(KL)377.361 651 s(%)385.46 649 s(6)390.46 649 s it 9 ss(3) 381.361 661 s 396.46 630 334.008 633.5 0.2 l 396.46 630 334.008 626.5 0.2 l mf 10 ss 16 597(@)400.545 637 b %2/2 (5)246.762 653 s(?)255.162 653 s -1.8 330.173 671 299.52 671 m -1.8 330.173 668 299.52 668 m -1.8 330.173 665 299.52 665 m(%) 288.67 651 s(J)293.67 655 s(JL)293.67 651 s(J)303.755 655 s(JL) 303.755 653 s(=)313.839 655 s(5)313.839 655 s(J)323.923 655 s(JL) 323.923 653 s(=x=x=)334.008 655 s(5)334.008 663 s(?)342.408 665 s(=) 386.866 655 s(7)386.866 657 s(@)400.545 637 s %2/1 rm 9.5 ss(Lie)243.431 705.5 s it 9.5 ss(live)242.903 695.5 s mf 10 ss(%) 241.762 727 s(6)246.762 727 s rm 9.5 ss(______)257.621 695.5 s mf 10 ss(4) 280.138 729 s 249.762 734 283.138 735 5 cv rm 9.5 ss(- - - - - ) 12.516 271.746 705.5 ws(be)362.778 705.5 s it 9.5 ss(for)361.719 695.5 s mf 10 ss(5)364.262 721 s(@)400.545 717 s %3/5 (@)573.997 581 s %3/4 1.894 438.996 580.076 405.328 569 m 1.894 438.996 583.076 405.328 572 m(6) 404.578 581 s(K)414.662 584.317 s(KL)414.662 587 s mf 9 ss($) 427.761 560.627 s mf 10 ss(%)422.761 591 s(K)427.761 588.627 s(KL) 427.761 591 s(K)437.846 591.945 s(KL)437.846 595 s 1.894 479.334 585.085 448.68 575 m 1.894 479.334 588.085 448.68 578 m(\243) 447.93 563 s(6)447.93 587 s(K)458.015 590.317 s(KL)458.015 591 s(K) 468.1 593.635 s(KL)468.1 595 s(=)478.184 599 s(K)478.184 596.953 s(KL) 478.184 601 s 1.894 522.687 590.076 489.019 579 m 1.894 522.687 593.076 489.019 582 m(6)488.269 591 s(K)498.354 594.317 s(KL) 498.354 595 s(=)508.438 599 s(K)508.438 597.635 s(KL)508.438 601 s(%) 516.537 605 s(=x=)521.537 599 s(K)521.537 601.945 s(KL)521.537 605 s 1.894 565.063 593.755 532.372 583 m 1.894 565.063 596.755 532.372 586 m(6) 531.622 595 s(=)541.707 599 s(K)541.707 598.317 s(KL)541.707 601 s(=x=) 551.79 599 s(K)551.79 601.635 s(KL)551.79 605 s mf 9 ss($)563.913 565 s mf 10 ss(=x=x=)563.913 599 s(K)563.913 605.623 s(KL)563.913 609 s 407.578 590 566.913 615 20 cv(@)573.997 581 s %3/3 1.806 428.911 638.98 405.328 637 m bi 10 ss(p)404.578 623 s mf 10 ss(6) 404.578 649 s 393.46 647 403.578 647 -2.035 cv(%)422.761 651 s(K) 427.761 650.947 s(KL)427.761 651 s mf 7 ss(\2017)435.93 641.6 s mf 10 ss(6) 447.93 647 s(?)456.33 649 s(\221\221\221\221)447.93 646 s(6)447.93 651 s(?) 456.33 653 s(=)447.93 655 s(6)447.93 657 s(?)456.33 657 s(=) 508.438 655 s(8)508.438 655 s 1.82 558.364 634.939 532.372 638.915 m(K) 531.622 650.915 s(KL)531.622 651 s rm 7 ss(1)546.366 629 s mf 10 ss(\() 542.116 649 s(K)546.366 648.66 s(KL)546.366 649 s rm 7 ss(2) 557.214 629 s mf 10 ss(6)557.214 647 s it 9 ss(3)549.418 656 s 411.578 655 560.214 659 21 cv mf 10 ss 16 597(@)573.997 637 b %3/2 (=x=)404.578 655 s(5)404.578 661 s 254.762 668 407.578 676 12 cv (@)573.997 637 s %3/1 (-)405.578 721 s rm 9.5 ss(der)444.865 705.5 s it 9.5 ss(aye) 444.337 695.5 s mf 10 ss(3)447.93 721 s rm 9.5 ss(wir)528.291 705.5 s it 9.5 ss(r)530.841 695.5 s(e)-0.351 0 rs mf 10 ss(5)531.622 721 s rm 9.5 ss(-)553.618 695.5 s mf 10 ss(@)573.997 717 s (FFFFFCCC)34 717 s (C)563.997 717 s (FFFFFCCC)34 637 s (C)563.997 637 s (FFFFFCCC)34 581 s (C)563.997 581 s (!)36 453 s(!)36 373 s(!)36 373 s(")35.5 317 s(")35.5 317 s 16 317(@)34 453 b 0.138 27 353 br2 %4/5 (4)66 317 s(')150.984 319 s(4)155.934 319 s(@)224.109 317 s %4/4 (zzx.w{{y.w{{y.)67 329 s -1.8 95.992 345 79.938 345 m -1.8 95.992 342 79.938 342 m -1.8 95.992 339 79.938 339 m(5)74.088 329 s(J) 81.915 329 s(JL)81.915 325 s(5)89.742 329 s(5)97.569 325 s(5) 110.353 329 s -1.88 114.047 344.22 105.975 341.774 m -1.88 114.047 341.22 105.975 338.774 m -1.88 114.047 338.22 105.975 335.774 m(zzx.w{{y.w{{y.)156.934 329 s -1.8 185.665 345 169.611 345 m -1.8 185.665 342 169.611 342 m -1.8 185.665 339 169.611 339 m(5)163.761 329 s(J)171.588 329 s(JL) 171.588 325 s(5)179.415 329 s(5)187.242 325 s(5)200.026 329 s -1.88 203.72 344.22 195.648 341.774 m -1.88 203.72 341.22 195.648 338.774 m -1.88 203.72 338.22 195.648 335.774 m(@)224.109 317 s %4/3 it 10 ss(poco accel.)54 411 s it 9.5 ss( cr)48.466 353.5 s(esc.) -0.351 0 rs mf 10 ss(6)66 375 s(\221\221\221)66 375 s(6)66 383 s rm 7 ss(1) 106.613 373 s mf 10 ss(%)99.613 381 s(4)104.613 381 s(6)192.123 383 s 16 333(@)224.109 373 b %4/2 (5)72 389 s(?)80.4 389 s(5)72 385 s(?)80.4 385 s -1.8 152.27 407 128.389 407 m -1.8 152.27 404 128.389 404 m -1.8 152.27 401 128.389 401 m(%)117.539 387 s(J)122.539 391 s(JL) 122.539 387 s(J)130.366 391 s(JL)130.366 389 s(=)138.193 391 s(5) 138.193 391 s(J)146.02 391 s(JL)146.02 389 s(=x=x=)155.934 391 s(5) 155.934 399 s(?)164.334 401 s(7)210.125 385 s(@)224.109 373 s %4/1 rm 9.5 ss(le)65.571 442.5 s(-)56 432.5 s it 9.5 ss(mem)60.032 432.5 s mf 10 ss(2)66 469 s(@)224.109 453 s %5/5 (\()228.089 319 s(4)232.339 319 s 69 309 230.339 311 -8 cv(4) 318.553 321 s(A)383.316 317 s %5/4 (zzx.w{{y.w{{y.)233.339 329 s -1.8 268.397 345 246.238 345 m -1.8 268.397 342 246.238 342 m -1.8 268.397 339 246.238 339 m(5) 240.388 329 s(')249.82 325 s(J)254.32 329 s(JL)254.32 325 s(5) 262.147 329 s(5)269.974 325 s(5)305.769 329 s -1.81 304.86 344.193 282.983 341.787 m -1.81 304.86 341.193 282.983 338.787 m -1.81 304.86 338.193 282.983 335.787 m(zzx.w{{y.w{{y.)319.553 329 s -1.8 350.371 347 334.317 347 m -1.8 350.371 344 334.317 344 m -1.8 350.371 341 334.317 341 m(5)328.467 331 s(J)336.294 331 s(JL) 336.294 325 s(5)344.121 331 s(5)351.948 325 s(5)364.731 329 s -1.88 368.425 344.219 360.354 341.774 m -1.88 368.425 341.219 360.354 338.774 m -1.88 368.425 338.219 360.354 335.774 m(A)383.316 317 s %5/3 (')227.839 385 s(6)232.339 385 s(6)302.325 389 s(=x=x=x=)302.325 391 s(6) 302.325 403 s(8)318.553 389 s(=x=x=x=)318.553 391 s(6)318.553 403 s 305.325 387 317.803 387 -2.743 cv 305.325 409 321.553 409 3.868 cv(6) 351.948 389 s(=x=x=x=)351.948 391 s(6)351.948 403 s rm 9.5 ss (- - - - - - - - - - - - - - - - )11.498 104.114 353.5 ws it 9.5 ss( ) 375.023 353.5 s mf 10 ss(')368.71 389 s(8)373.21 389 s(')368.71 403 s (=x=x=x=)373.21 391 s(6)373.21 403 s 16 333(A)383.316 373 b %5/2 -1.8 299.705 407 238.189 407 m -1.8 284.051 404 275.824 404 m -1.8 291.878 404 283.651 404 m -1.8 299.705 404 291.478 404 m -1.8 284.051 401 275.824 401 m -1.8 291.878 401 283.651 401 m -1.8 299.705 401 291.478 401 m(J)232.339 391 s(JL)232.339 389 s(%) 264.474 387 s(J)269.974 391 s(JL)269.974 387 s(J)277.801 391 s(JL) 277.801 389 s(=)285.628 391 s(5)285.628 391 s(J)293.455 391 s(JL) 293.455 389 s(6)302.325 389 s 296.455 387 301.325 387 -1.461 cv (A)383.316 373 s %5/1 (4)232.339 469 s(?)240.739 469 s 69 475 235.339 475 5 cv rm 9.5 ss (- - - - - - - - - - - - - - - - )11.498 82.472 442.5 ws(ben:) 351.217 442.5 s(- - - - - - - - - - - - - - - )11.524 93.71 432.5 ws it 9.5 ss(ber:)351.483 432.5 s mf 10 ss(7)356.396 457 s(.)374.21 457 s (A)383.316 453 s %6/5 (')388.329 319 s(')392.829 325 s(')397.329 317 s(z.w{{y.)413.031 329 s 1.8 459.464 319 427.756 319 m 1.8 459.464 322 427.756 322 m(') 422.506 335 s(=)427.006 335 s(K)427.006 331 s(KL)427.006 335 s(6) 434.833 331 s(=)442.66 335 s(K)442.66 331 s(KL)442.66 335 s(6) 450.487 331 s(=)458.314 335 s(K)458.314 331 s(KL)458.314 335 s it 9 ss(6) 433.422 305 s mf 10 ss(6)468.228 331 s(=)476.055 335 s(6)476.055 335 s 2.001 475.64 322.237 470.543 319.76 m 2.001 475.64 325.237 470.543 322.76 m 2.001 475.64 328.237 470.543 325.76 m it 9 ss(6)473.141 305 s mf 10 ss (z.w{{y.)493.231 329 s 1.8 533.559 319 501.852 319 m 1.8 533.559 322 501.852 322 m(=)501.102 335 s(K)501.102 331 s(KL) 501.102 335 s(6)508.929 331 s(=)516.756 335 s(K)516.756 331 s(KL) 516.756 335 s(6)524.583 331 s(=)532.409 335 s(K)532.409 331 s(KL) 532.409 335 s it 9 ss(6)510.57 305 s mf 10 ss(6)545.194 327 s(\221\221) 545.194 327 s(6)545.194 331 s(@)573.997 317 s %6/4 (')388.329 319 s(')392.829 325 s(')397.329 317 s(')407.531 323 s(4) 412.031 323 s(')487.281 323 s(4)492.231 323 s(=x=)412.031 335 s(3) 412.031 339 s(\()487.556 337 s(=)492.231 335 s(5)492.231 337 s -1.808 571.376 351.008 551.044 353 m(')540.694 337 s(=)545.194 335 s(5) 545.194 337 s(\()560.876 335 s(=)565.126 335 s(J)565.126 335.047 s(JL) 565.126 335 s 420.031 343 568.126 353.537 10 cv(@)573.997 317 s %6/3 (')388.329 379 s(')392.829 385 s(')397.329 377 s it 10 ss(pi\371 ) 412.031 357 s bi 10 ss(f)427.311 357 s mf 10 ss(6)412.031 389 s(=x=x=x=) 412.031 391 s(6)412.031 403 s 380.71 392 411.281 392 5 cv 376.21 409 415.031 409 5 cv(\()463.553 387 s(4)468.228 387 s(\() 463.553 401 s(=x=x=)468.228 391 s(4)468.228 401 s 1.82 566.276 368.94 552.944 370.939 m(')542.694 383 s(K) 552.194 382.939 s(KL)552.194 383 s(\()560.876 381 s(6)565.126 381 s 16 333(@)573.997 373 b %6/2 (')388.329 379 s(')392.829 385 s(')397.329 377 s(5)545.194 387 s(5) 545.194 373 s 80 401 548.194 403 23 cv 548.194 371 573.997 371 -6 cv 553.194 393 573.997 393 6 cv(@)573.997 373 s %6/1 (')388.329 459 s(')392.829 465 s(')397.329 457 s rm 9.5 ss(Br\374nn) 403.156 442.5 s it 9.5 ss(Br\374nn)403.156 432.5 s mf 10 ss(') 407.531 469 s(6)412.031 469 s rm 9.5 ss(-)444.977 442.5 s(hil) 466.212 442.5 s(-)444.977 432.5 s it 9.5 ss(hil)466.212 432.5 s mf 10 ss(4) 468.228 467 s rm 9.5 ss(- - - )13.905 488.952 442.5 ws(de)543.71 442.5 s (- - - )13.905 488.952 432.5 ws it 9.5 ss(de)543.71 432.5 s mf 10 ss(6) 545.194 467 s(@)573.997 453 s (FFFFFCCC)34 453 s (C)563.997 453 s (FFFFFCCC)34 373 s (C)563.997 373 s (FFFFFCCC)34 317 s (C)563.997 317 s (!)36 189 s(')52 195 s(')56.5 201 s(')61 193 s(!)36 109 s(')52 115 s(') 56.5 121 s(')61 113 s(!)36 109 s(')52 115 s(')56.5 121 s(')61 113 s(") 35.5 53 s(')52 55 s(')56.5 61 s(')61 53 s(")35.5 53 s(')52 55 s(') 56.5 61 s(')61 53 s 16 53(@)34 189 b 0.138 27 89 br2 %7/5 (\()79.35 59 s(4)83.6 59 s(4)130.457 61 s(@)190.361 53 s %7/4 (.)84.6 69 s(5)95.942 67 s(')106.059 71 s(=)110.559 71 s(7)110.559 71 s 103.942 74 113.559 79 1.885 cv(.)131.457 69 s -1.851 165.135 87.096 148.49 83.102 m(J)142.64 67.102 s(JL)142.64 67 s(=) 158.885 71 s(5)158.885 71 s 150.64 73 161.885 77 2.373 cv(.)179.179 69 s (@)190.361 53 s %7/3 bi 10 ss(f)83.6 90 s(f)-0.18 0 rs mf 10 ss(')81.1 117 s(4)90.6 117 s(?) 99 117 s 1.884 179.329 104.935 166.635 101 m(6)165.885 113 s 91.6 139 162.885 135 8 cv(K)178.179 116.811 s(KL)178.179 117 s 16 69(@)190.361 109 b %7/2 (5)83.6 123 s(5)83.6 109 s 66 107 86.6 107 -6 cv 66 129 86.6 129 6 cv(') 99.969 123 s(3)104.469 123 s(')99.969 109 s(3)104.469 109 s(5) 158.885 121 s(5)158.885 107 s(@)190.361 109 s %7/1 rm 9.5 ss(brennt)74.464 178.5 s it 9.5 ss(then)78.421 168.5 s mf 10 ss(6) 83.6 203 s rm 9.5 ss(__)99.736 178.5 s(_)104.719 178.5 s(___) 95.78 168.5 s mf 10 ss(')99.969 203 s(4)104.469 203 s 86.6 210 107.469 210 5 cv rm 9.5 ss(dann)152.651 178.5 s it 9.5 ss(will) 154.756 168.5 s mf 10 ss(6)158.885 201 s(@)190.361 189 s %8/5 (')195.833 63 s(2)200.333 63 s 86.6 51 203.333 58 -10 cv(@)315.655 53 s %8/4 (\243)201.333 37 s(=x=x=)212.596 71 s(5)212.596 81 s(=x=)227.214 71 s(5) 227.214 75 s(')275.946 71 s(=)280.896 71 s(5)280.896 71 s mf 9 ss($) 295.513 37 s mf 10 ss(7)295.513 67 s(@)315.655 53 s %8/3 (')195.833 117 s(6)200.333 117 s 181.179 115 199.333 115 -4.446 cv(8) 200.333 107 s(')195.833 117 s(6)200.333 117 s 161.885 99 198.333 107 -6 cv(\()222.964 119 s()457.97 455 s(J)471.175 468.311 s(JL) 471.175 467 s(>)471.175 459 s(J)484.38 472.656 s(JL)484.38 471 s(>) 484.38 463 s(5)497.585 477 s(>)497.585 467 s(J)510.79 481.344 s(JL) 510.79 481 s(>)510.79 471 s 16 439(@)523.995 467 b (FFFFCCC)84 467 s (C)513.995 467 s (FFFFCCC)84 423 s (C)513.995 423 s (FFFFCCC)84 379 s (C)513.995 379 s (FFFFCCC)84 335 s (C)513.995 335 s (FFFFCCC)84 291 s (C)513.995 291 s (!)87 226 s(!)87 182 s(%)103 196 s(%)108 190 s(%)113 198 s(!)87 138 s(%) 103 152 s(%)108 146 s(%)113 154 s(#)87 94 s(%)103 106 s(%)108 100 s(%) 113 108 s(")86.5 50 s(%)103 60 s(%)108 54 s(%)113 62 s 16 50(@)84 226 b 80.5 242 50 k %10/5 (+)183.224 58 s(@)254.449 50 s %10/4 (+)183.224 102 s 16 66(@)254.449 94 b %10/3 (+)183.224 146 s 16 110(@)254.449 138 b %10/2 (+)183.224 190 s 16 154(@)254.449 182 b %10/1 1.804 234.191 222.802 126.75 230.752 m(=)126 244 s(K)126 242.752 s(KL) 126 244 s(K)147.408 241.168 s(KL)147.408 242 s(K)168.816 239.584 s(KL) 168.816 240 s(6)190.224 238 s(>)190.224 238 s(K)211.633 236.416 s(KL) 211.633 240 s(>)211.633 240 s(K)233.041 234.831 s(KL)233.041 236 s 129 250 236.041 243 8 cv 16 198(@)254.449 226 b rm 9 ss(10)84 250 s %11/5 mf 10 ss(=)265.153 44 s(5)265.153 44 s(>)265.153 36 s(=)307.969 44 s(5) 307.969 44 s(>)307.969 36 s(=)350.786 44 s(5)350.786 44 s(>)350.786 36 s 268.153 39 353.786 39 -8 cv(@)393.602 50 s %11/4 (3)265.153 90 s(?)273.553 90 s 16 66(@)393.602 94 b %11/3 (=w=)265.153 132 s(J)265.153 130 s(JM)265.153 128 s(%)345.786 126 s(=w=) 350.786 132 s(J)350.786 130 s(JL)350.786 126 s 268.153 126 353.786 121 -5 cv 16 110(@)393.602 138 b %11/2 -1.8 378.444 196 271.003 196 m(=)265.153 176 s(J)265.153 180 s(JL) 265.153 176 s(5)286.561 180 s(=)307.969 176 s(J)307.969 180 s(JL) 307.969 176 s(5)329.377 180 s(J)350.786 180 s(JL)350.786 178 s(5) 372.194 180 s 268.153 174 375.194 178 -8 cv 16 154(@)393.602 182 b %11/1 (4)265.153 234 s 1.807 373.344 223.964 351.536 225.948 m(K) 350.786 237.948 s(KL)350.786 238 s(6)372.194 236 s 268.153 240 375.194 243 8 cv 16 198(@)393.602 226 b %12/5 (5)404.306 50 s(-)433.85 54 s(B)466.738 50 s(@)464.838 50 s(xI) 462.338 50 s(B)466.738 50 s(@)470.238 50 s(xI)471.838 50 s(-) 482.181 54 s(@)523.998 50 s %12/4 (5)404.306 90 s 268.153 88 407.306 88 -5 cv(-)433.85 98 s 16 66(B)466.738 94 b 16 66(@)464.838 94 b(xI)462.338 94 s 16 66(B)466.738 94 b 16 66(@)470.238 94 b(xI)471.838 94 s(-)482.181 98 s 16 66(@)523.998 94 b %12/3 (=w=)404.306 132 s(J)404.306 130 s(JL)404.306 128 s(-)433.85 142 s 16 110(B)466.738 138 b 16 110(@)464.838 138 b(xI)462.338 138 s 16 110(B)466.738 138 b 16 110(@)470.238 138 b(xI)471.838 138 s(-) 482.181 142 s 16 110(@)523.998 138 b %12/2 (=)404.306 176 s(5)404.306 176 s(-)433.85 186 s 16 154(B)466.738 182 b 16 154(@)464.838 182 b(xI)462.338 182 s 16 154(B)466.738 182 b 16 154(@)470.238 182 b(xI)471.838 182 s -1.829 508.839 200.073 487.031 196.083 m(J)481.181 180.083 s(JL) 481.181 180 s(5)502.589 184 s 489.181 198.083 523.998 201 6 cv 16 154(@)523.998 182 b %12/1 (6)404.306 234 s(-)433.85 230 s 16 198(B)466.738 226 b 16 198(@)464.838 226 b(xI)462.338 226 s 16 198(B)466.738 226 b 16 198(@)470.238 226 b(xI)471.838 226 s(-)482.181 230 s 16 198(@)523.998 226 b (FFFFCCC)84 226 s (C)513.998 226 s (FFFFCCC)84 182 s (C)513.998 182 s (FFFFCCC)84 138 s (C)513.998 138 s (FFFFCCC)84 94 s (C)513.998 94 s (FFFFCCC)84 50 s (C)513.998 50 s pagesave restore showpage %%Trailer %%Pages: 1 pmw-4.27/testdist/outfiles/Test06.ps0000644000222100022210000057004212247665016015506 0ustar ph10ph10%!PS-Adobe-3.0 %%Creator: Philip's Music Writer 4.27 (Built 25-Oct-2013) %%CreationDate: Tue Dec 3 17:23:06 2013 %%Pages: (atend) %%DocumentNeededResources: font Times-Roman Times-Italic %%+ font Times-Bold Times-BoldItalic Symbol %%+ font PMW-Music %%DocumentSuppliedResources: font PMW-Music %%Requirements: numcopies(1) %%EndComments %%BeginPaperSize: a4 a4 %%EndPaperSize %%BeginProlog %%Header file for PMW PostScript output /LowerEncoding 256 array def LowerEncoding 0 [ /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /space/exclam/quotedbl/numbersign /dollar/percent/ampersand/quotesingle /parenleft/parenright/asterisk/plus /comma/hyphen/period/slash /zero/one/two/three /four/five/six/seven /eight/nine/colon/semicolon /less/equal/greater/question /at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O /P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft /backslash/bracketright/asciicircum/underscore /grave/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o /p/q/r/s/t/u/v/w/x/y/z/braceleft /bar/braceright/asciitilde/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /space/exclamdown/cent/sterling /currency/yen/brokenbar/section /dieresis/copyright/ordfeminine/guillemotleft /logicalnot/hyphen/registered/macron /degree/plusminus/twosuperior/threesuperior /acute/mu/paragraph/bullet /cedilla/onesuperior/ordmasculine/guillemotright /onequarter/onehalf/threequarters/questiondown /Agrave/Aacute/Acircumflex/Atilde /Adieresis/Aring/AE/Ccedilla /Egrave/Eacute/Ecircumflex/Edieresis /Igrave/Iacute/Icircumflex/Idieresis /Eth/Ntilde/Ograve/Oacute /Ocircumflex/Otilde/Odieresis/multiply /Oslash/Ugrave/Uacute/Ucircumflex /Udieresis/Yacute/Thorn/germandbls /agrave/aacute/acircumflex/atilde /adieresis/aring/ae/ccedilla /egrave/eacute/ecircumflex/edieresis /igrave/iacute/icircumflex/idieresis /eth/ntilde/ograve/oacute /ocircumflex/otilde/odieresis/divide /oslash/ugrave/uacute/ucircumflex /udieresis/yacute/thorn/ydieresis ]putinterval /UpperEncoding 256 array def UpperEncoding 0 [ /Amacron/amacron/Abreve/abreve /Aogonek/aogonek/Cacute/cacute /Ccircumflex/ccircumflex/Cdotaccent/cdotaccent /Ccaron/ccaron/Dcaron/dcaron /Dcroat/dcroat/Emacron/emacron /Ebreve/ebreve/Edotaccent/edotaccent /Eogonek/eogonek/Ecaron/ecaron /Gcircumflex/gcircumflex/Gbreve/gbreve /Gdotaccent/gdotaccent/Gcommaaccent/gcommaaccent /Hcircumflex/hcircumflex/Hbar/hbar /Itilde/itilde/Imacron/imacron /Ibreve/ibreve/Iogonek/iogonek /Idotaccent/dotlessi/IJ/ij /Jcircumflex/jcircumflex/Kcommaaccent/kcommaaccent /kgreenlandic/Lacute/lacute/Lcommaaccent /lcommaaccent/Lcaron/lcaron/Ldot /ldot/Lslash/lslash/Nacute /nacute/Ncommaaccent/ncommaaccent/Ncaron /ncaron/napostrophe/Eng/eng /Omacron/omacron/Obreve/obreve /Ohungarumlaut/ohungarumlaut/OE/oe /Racute/racute/Rcommaaccent/rcommaaccent /Rcaron/rcaron/Sacute/sacute /Scircumflex/scircumflex/Scedilla/scedilla /Scaron/scaron/Tcedilla/tcedilla /Tcaron/tcaron/Tbar/tbar /Utilde/utilde/Umacron/umacron /Ubreve/ubreve/Uring/uring /Uhungarumlaut/uhungarumlaut/Uogonek/uogonek /Wcircumflex/wcircumflex/Ycircumflex/ycircumflex /Ydieresis/Zacute/zacute/Zdotaccent /zdotaccent/Zcaron/zcaron/longs /Delta/Euro/Scommaaccent/Tcommaaccent /breve/caron/circumflex/commaaccent /dagger/daggerdbl/dotaccent/ellipsis /emdash/endash/fi/fl /florin/fraction/greaterequal/guilsinglleft /guilsinglright/hungarumlaut/lessequal/lozenge /minus/notequal/ogonek/partialdiff /periodcentered/perthousand/quotedblbase/quotedblleft /quotedblright/quoteleft/quoteright/quotesinglbase /radical/ring/scommaaccent/summation /tcommaaccent/tilde/trademark/infinity ]putinterval /F/fill load def /GS/gsave load def /GR/grestore load def /Mt/moveto load def/Lt/lineto load def /R/rotate load def /Rl/rlineto load def/Rm/rmoveto load def /Ct/curveto load def/Rc/rcurveto load def /S/stroke load def /Slw/setlinewidth load def /Slc/setlinecap load def /Slj/setlinejoin load def /Sg/setgray load def /Sd/setdash load def /T/translate load def /clx 0 def/cly 0 def/crx 0 def/cry 0 def /inf{dup dup findfont 3 1 roll FontDirectory exch known {pop}{(**** Font ")print 100 string cvs print (" is not loaded ****\r\n)print stop}ifelse dup dup/Encoding get StandardEncoding eq {maxlength dup dict/newfont0 exch def dict/newfont1 exch def dup {1 index/FID eq{pop pop}{newfont0 3 1 roll put}ifelse}forall {1 index/FID eq{pop pop}{newfont1 3 1 roll put}ifelse}forall newfont1/Encoding UpperEncoding put dup newfont1 definefont def newfont0/Encoding LowerEncoding put dup newfont0 definefont def } {3 1 roll def def}ifelse }bind def /ss{scalefont setfont}bind def /sm{makefont setfont}bind def /ssr{scalefont [-1 0 0 1 0 0] makefont setfont}bind def /smr{makefont [-1 0 0 1 0 0] makefont setfont}bind def /b{/y exch def/x exch def/w exch def/z exch def/v exch def {x y Mt w show y z gt{/y y v sub def y z lt{/y z def}if} {exit}ifelse}loop}bind def /br{gsave translate dup 0.11 gt {0.11}{dup 2.0 div 0.055 add}ifelse exch scale 2{0.0 0.0 Mt 100.0 20.0 -50.0 245.0 60.0 260.0 curveto -50.0 245.0 60.0 20.0 0.0 0.0 curveto fill 1.0 -1.0 scale}repeat grestore}bind def /br2{gsave translate dup 0.11 gt {0.11}{dup 2.0 div 0.055 add}ifelse exch scale 2{0.0 0.0 Mt 95.0 40.0 -43.0 218.0 37.0 256.0 curveto -59.0 219.0 66.0 34.0 0.0 0.0 curveto fill 1.0 -1.0 scale}repeat grestore}bind def /cc{/u exch def/y1 exch def/x1 exch def/y0 exch def/x0 exch def /w y1 y0 sub dup mul x1 x0 sub dup mul add sqrt 2 div def /v w 2 mul 3 div dup 10 gt {pop 10} if def x0 x1 add 2.0 div y0 y1 add 2.0 div translate y1 y0 sub x1 x0 sub atan rotate}bind def /cA{/cry exch def/crx exch def/cly exch def/clx exch def}bind def /cd{w neg 0.05 moveto v w sub clx add u cly add w v sub crx add u cry add w 0.05 curveto w -0.05 lineto w v sub crx add u cry add 1 sub v w sub clx add u cly add 1 sub w neg -0.05 curveto closepath fill}bind def /cv{gsave cc cd grestore}bind def /cwd{w neg 0.05 moveto v w sub clx add u cly add w v sub crx add cry u sub w 0.05 curveto w -0.05 lineto w v sub crx add cry u sub 1 sub v w sub clx add u cly add 1 sub w neg -0.05 curveto closepath fill}bind def /cvw{gsave cc cwd grestore}bind def /cem{dup 1 eq cly cry eq and{pop 0 u cly add 0.75 mul /t2 0 def} {/x1 v w sub clx add def /x2 w v sub crx add def /y1 u cly add def u mul cry add /y2 exch def /t 0.5 def /a 2 w mul x1 x2 sub 3 mul add def /b x2 2 x1 mul sub w sub 3 mul def /c x1 w add 3 mul def a t mul b add t mul c add t mul w sub /t1 a 3 mul t mul b 2 mul add t mul c add def /a y1 y2 sub 3 mul def /b 3 y2 mul 6 y1 mul sub def /c 3 y1 mul def a t mul b add t mul c add t mul /t2 a 3 mul t mul b 2 mul add t mul c add def }ifelse translate t2 0 ne {t2 t1 atan rotate} if 0 2 moveto 4 add neg 0 exch rlineto 0.4 Slw stroke}bind def /cve{gsave cc cd 0.8 1 cem grestore}bind def /cvwe{gsave cc cwd 0.8 -1 cem grestore}bind def /dl{gsave 0 Sd 0 dtransform exch floor exch idtransform pop Slw Mt Lt stroke grestore}bind def /k{/y1 exch def/y2 exch def/x exch def currentfont mf y2 y1 sub dup 16 gt {pop 16}if dup 1 sub /y exch def dup y2 exch sub /y2 exch def 16 div 10 mul ss x y2 Mt (\260) show {/y2 y2 y sub def y2 y1 le {exit}if x y2 Mt (B)show}loop x y1 Mt (\261)show setfont}bind def /l{Slw Mt Lt stroke}bind def /ll{Slw Mt 1 1 3 -1 roll{pop Lt}for stroke}bind def /m{/y0 exch def/x0 exch def/y1 exch def/x1 exch def/z exch def x0 y0 Mt x1 y1 Lt x1 y1 z add Lt x0 y0 z add Lt fill}bind def /rs{rmoveto show}bind def /s{moveto show}bind def /sh{show}bind def /wrs{rmoveto 0 32 4 -1 roll widthshow}bind def /ws{moveto 0 32 4 -1 roll widthshow}bind def /wsh{0 32 4 -1 roll widthshow}bind def /ST{/n exch def/g exch def/t exch def/w exch def/y exch def/x exch def 1 1 n {pop x y transform round exch round exch itransform Mt w 0 Rl y g add /y exch def}for t Slw S}bind def %%EndProlog %%BeginSetup %%BeginResource: font PMW-Music 11 dict begin /FontInfo 8 dict dup begin /version (58.01) readonly def /Notice (Copyright (c) November 2010 Philip Hazel) readonly def /FullName (PMW-Music) readonly def /FamilyName (PMW-Music) readonly def /Weight (Medium) readonly def /ItalicAngle 2 def /isFixedPitch false def /UnderlinePosition -98 def /UnderlineThickness 54 def end readonly def /FontName /PMW-Music def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /FontBBox {-150 -1400 50000 2300} readonly def /Encoding 256 array def 0 1 31 {Encoding exch /.notdef put} for Encoding 32 [/sp/trebleclef/bassclef/altoclef/star/sharp/doublesharp /flat/natural/tfermata/brest/sbrest/mrest/crest/qrest/bfermata /longrest/breve/semibreve/uminim/dminim/ucrotchet/dcrotchet/uquaver/dquaver /usquaver/dsquaver/usqtail/dsqtail/ledger/vdot/hdot/barsingle/bardouble /barthick/stave1/pstave1/uqtail/stave10/pstave10/dqtail/repeatdots /ustem/dstem/cnh/mnh/comma/mordent/dmordent/imordent/dimordent/turn /hbar/accent1/caesura/accent2/accent3/accent4/accent5/bardotted /caesura1/little8/C/cut/tilde/thumba/thumbb/ds1/ds2/downa/downb/upa /upb/iturn/seven/four/hcnh/hmnh/xnh/xustem/xdstem/fustem/fdstem/six /gdot/gring/d1/d4/u4/l1/r1/bs/ds/fs/us/.notdef/tick/uacc/dacc/grid /barshort/breath/vring/cross/trill/scaesura/lcaesura/sbra/sket/rbra /rket/rep/repdots/vtilde/trem/circ/cutcirc/slur1/slur2/up/down /iC/icut/unibreve/accent6/srbra/srket/angle1/angle2/angle3/angle4 /ped/uvtilde/dvtilde/nail/angle5/angle6/stave21/stave31/stave41/stave61 /hclef/oldbassclef/oldaltoclef/bratop/brabot/direct/five/major/dimsh /hdimsh/gcross/ledger2/srm1/srm2/u12/d12/halfsharp1/halfsharp2 /halfflat1/halfflat2/icomma/accent7/accent8]putinterval 196 1 246 {Encoding exch /.notdef put}for Encoding 247 [/stave210/stave310/stave410/stave610 /.notdef/.notdef/.notdef/.notdef/.notdef]putinterval currentdict end currentfile eexec d9d66f633b846a989b9974b0179fc6cc445bc2c03103c68570a7b354a4a280ae 6fbf7f9888e039ab60fcaf852eb4ce3afeb979d5ea70fde44a2ae5c8c0166c27 bf9665eea11c7d2329c1a211dd26bb372be5822f5ea70d99eb578c7befd44cdf 045a363056e5e1cc51525ea6fc061dcebb337208eff729802376a2801424f670 0e7e6397b28f15bc10b40012b0a3eaeb2693e8f7f627c4c9c7c6c5bff105c1e4 1b2b9e8f09253b61177e95ea219474796072f4c3189f7cfc7630142215dbc8a8 fd63d147033a0c9c786e17355fa8d996a3a7b5d213ac8011fd31a12930a87f86 374c1921aaa9ed181b43541cdf6e376bb4f2801faa9b01dcc0569ac59cfc4768 afdc549a30d41f5705e4231d3bc540161d390b4980ef9fe489ac4df99f83a8e2 00182cd152eb35a61aa915230f1090fd0bc8d4644f836c3da157c564b2a8fb7e 7d3203ca17088a579aab355eb45038ff45d5eb2357959a2c7c04421c41d3b822 d0471ae18607c80503c0b319348683bc6bc87e075a8eb4bb34729c4145b2b5a0 df1a88b2d7e0940aa3d4bafa502b87d9313153f661019a817ab20e1a772ad0d5 51ae7fdce4e21f426a6726c39c88124f8cbf10bb7394e90e9d28efdffef75078 f7ab1d7fe8387e1e65c4ff67d054ae6a0937e4d59889656ac37afde0362d76ab 05f9c223c52f04b6279e055419d3630d5057b50b4c4492891f7a36d03859e220 2d89747f1d486e9449a3448f81c240adc9e5476c6de456d76c4237055c0c30b6 80738211ddb90bcc73982467076cba36a60ec6a6584d9d9bf0df2b8462ceb1be 79c1276d2865b0f3518664a960036ca2d00c7829a967ac16b5c833f2e143efc0 f93826a8d09414c4ae7cb17623edc8f599b895ed0d3f4bea8bfd9b414cc39c0e 4080180fe8286b05065a10df4d691d38f73bc82d6142bdded07ffff7017f7803 cb03226f4d6501c203f8ee4e08ff5f8eda81278aaa6378b2d95ad6dfc7bc2e11 aa696cf2618a5737f03bce6c46c635caf89d23de81693159167b74cda0a15dcd 491b2ba489f28d410f1835d0fb7a9be1e3e5e7b76996e1d85cb9b62bb0619bdc 78b85ad2731fb580466cd92159c7f0e53f0896e154ec770cb55c55b09ec7b405 251e205992ac88e0bb583792edc9a21143a3ab447d4769e84016aea06413b52a 9ad5bbf68c05b2d1fbd434a1d61a903b6d2e81cba8f422998f51dab989a49b7c 2d0ee5cf9f5cfea4fd5f7686eb2e9d29bb4fd4b117bd407534ab7aea4068f8a1 f3f89f61f1b341c9c31755c876038a2707314ba7f51f25ae9b81cb7170f24d97 f792f849fb28eb31704aa5826296042664f4324d94dd8644d43f3d3ba8ef474f 37ab52149ca62286bc986a59f4dc01c95106a325ad9eb4e22badbf89c3c329d2 cbe4d3f3c64fd1b40dd441f2f8e45df63e6cf107d5a0efb2930fe55c04c6d01a 23b40b4706ef7ec9e6447190cebceb1293800d461512b42c06825d1ea511b7a7 031286c05dd8536baf9159f6d3ecb5c23c3677795a29aad9be47a0d7a127e3ad 051d57de2b0969ba89d906f64a4834fb7912a5c1f39a8cdac5367a06ec532870 fd72e532680e064d490d975feb7bbcdd84ea1b060476b844a6fc153691d6eeeb e72d71ef5ee59f6bfbfeb9e166e0304f50b91d8e401fac3257b56ae63d9ac6e3 a27fd33f1b43075c792597372d77a93912bc83e4aced15502c9f549e725ee735 8cf609891f05fede798f758940ee09d2947af5a290f2b4540b6a931d9d8e1176 5c0c4f14dd4f2ae0a056e42b7842e4a37a854fd70f2268833d8b0a5a5124ac92 d5abea2bc4a82267734407be662c088ce63084f851af93ed826c3d6d417c679b c3d5faa174c9248fb2706f46a9611cd21c2952e70ef36ddfa951b6df819c7c49 04b8a5a08ade3960e46860fa6ed29caa9d332be99f25a6c2e627402f09a5e140 3ac599195881326c44e6deda9d38ab32544e7b21749b5f933ceee3818853248a c038736c4486f46ff5853684760814f2dc64f282f7619c34885396a300e041d4 4931a4951469f5de55d0282ab491a456ed329ba83756285e2e637ce00e925b79 6a5e7de954b276e92b958ea4119200955d906a275b2640f2881224816febf38c ae5a330d8c4d31c68dac342210d5b0ed554e0d57e7b486022aaab11ec40753d8 ad557122b58a7ef70f0676e41f9c29feedac4d10808370b03202d11e5911e056 5502c18e30c2086795534f946639ef524469e7628abf78b2ad634d1c30315202 2bf1ae1c038093dda6e3dd5ca785626841806f19db4edefb4352255a40a6fd2d e5b292d963047035bf20765a1724da4ceb6596e5fa97d7b8fa9f3ecb4b88197e b88466dd7b189aaf8603193b647abb7bcd00005212a18872c0145d3378b097b2 8dfc782b3bff19d16c0fc15c0dcb4c59318183cacd60f4a6bb68be52381277e4 f01f081110b5549a1178bb1f260a83c6185569012e906e6f3e2efd3be510c8d5 359170a08dccef71cf290c76297a1a4b5cc979a25285a9bbbd06a29109fb026c 5ed7c864cfbd56af94b980775295d1cedf1e2d29bb4374919a1837a325daae46 3420aa39e8adc0a6d1508ec3109400eba448f2c83949001fc47f5cad8d4abf40 05805a03e5debcb69a94d9de331cd65d7f1f6de6141eff2045466417110ebe68 0b7164d627bc55b3362049f5e720c1fbc78138cb39eb79e66cb7f7f0bb778afc 9f71dadc6df0dce778b2a5500ad6d77ec30ec68484fb9acc886f9f17b85a057b a9cc45cf70a2ab800d6a4790ea19c7bb8042ee22148df7df8b2a3b6a024003af 4ff4306ecc2b060304f8c6f66b8c0a6e93ce65360a9cd69b61f86a8dfb73c68d c21db4b6c6dcf79e667772b21c7c466e32c5d527c69368ae0e89a4d4cdb4891f 3d4d979f9173d37b0b14a078b061c3a647d1446862ccbb83e0f0c52e55f62571 d261f9025b9b76b19a4387c9be977a75a9f3081fadd4a0497049db2b25ed2e1b 2f1d2330b45df4d9046c5d6b93cc37b9f5cc6efb382fe3c1cfb2149369e96049 943b8bb24ac4cc79d6f5700e7674c56b90093ea2040bd564d03b248e7e7501bc 984034757fb9a8ab0915a676cbd53f3f680aed60d401953b080bf8339b2e86bc 5afa1596cd942d225a2f4955693042f9283b5d609f297a6f60a4a1a1b3af3b75 b2ebf205ea219cf61f378872247fe2284ac99a5e29a31ea3daadec1080e9a252 504d9980bbea3845e145ca1fc919db615740a5d81e188cd9ec7de7467f77e23c af9879f9b562af2382f271794641e9c498cc7257071a9a037f4df9df87289d8c 973909959329980b26acd05b0ef35e9b60101bfa019acde608ced1432c68bd26 1b4db2b2f16deca61e710e8bab3c99bca591f6b1491ffceebba2c75a3e7802a8 e5170e660125475f75be93ec815304bfa33a26a1371c21ce78c58d2c700c91be 8aa8d468fce514189054972132e57e69422dae4588d5de9f3344cb59d505c421 1b8b27fc1c22a82a062d76ad9e6e3a4add530aaa501e20293be5c19916331c05 ac9b774007afeac38ad564a281afffb6fd41002837678f0741eeb025ec3d6c23 140420f6943d17a1d84e301863a849290aaad57b545f97493b1f3693fcceec9e fc8310bf367204a88570d92045d3dedce44692ac4858a4950f39903095bc974b 067283afe304317fa6c0eeeff03cc68723468d73d881caac31300836687ec574 c06e46cb22fcdc7c315b06cf8a13c01830498b2f379c96dbbc04b1f579f7fb12 d8c1bc2a676fbe690a6787fc77414718b5dd3f742689b39aa8cb6f6a34bcebc4 9b9aaaee962a77fa014d203415495311226d9c03c80b6dcbad39450fc44184fd e12a276d4e87cd954b0db7c58049084003014dd1920351a6a59b9ee428bf67fd 1b931e652870068d9feb0866d2e825e6404056ee589c7e406718004e0df8cfa2 04d21df791632359cc821e8652e6104eec4c1207c704167f70010e9afd6ec0aa 02fac84771d34e38bef362797bae62cc06fe81c069bf04d9edb277a90fa75f4b e79b3c0a8804adbebbcad3c464aa14a393f6ea75dcd5b420f9fb320398ecea1a c3acc08af37f7c14f14075f95c4961df04b45088dd75e338a2629647ec421849 f9948b9a17e33408239210566599f792a4c0934f88069a146f66b9c5bfa541a2 4b68fb5bd566f3ea28053dd386d2babdd8fe08e9763633933844fa5417f29ba7 60b235097764864d61ae1213aa8d3c4436911ff0b77aef7cb6d899ce0e8c2312 66d552dc691c783da623fb308ffd42f141d7e05b9db1b5fef691967f4e42f77c f0b3ccae74717e0b0ef02f152c89f9c1b1ef8cac955d3c024c04e0c8830b7884 ef8490ed1fd4b718977da0be6b8cef615ebd95e41c04bf119e9064a7723c8e67 2f84a9f02707f08c1423387092004c5499f20397855b03e12a48cfd90e9f4b1e 0e2ce907e86716c43cb9fe377cf4a38afcbf860074cca3c3580730147bbd280f aa4711be6c7ca74633545acc6e1ba2003e9eac90099a00406cae1b04b906d896 1bc0589e9046c3450ff07624f3e8bc0241e3e2356dee09b92ce70d48a52da586 8528da6c89e780f1b121839418ab684a92b4187d184a8616e73f8d961257083b 935358f1e6d6fb68c173e5e38969c8f2a68724ca12a86ece19f1a79ac9b9913f f14c9e37d08f89e84b1d6d1ce4fa8b8c32a139c950f6e83471b38702e695bc7b e8d87c77805d33e6536a5095ceb6e726ed0500b41c941d173233771e6aca5e2a 8a0974f6f726bb5dfd2f7adfdc64095d4421984d879a40e27f3da62a433f03f8 25465338bd92d7408ab4b30ed357474d07f49b4a9d5c5891c11ca620a0ed4c9b cb476ad89efaa734d9d11e55bdad6163c867c56543d2edf445f8336473f81d72 40e675ee76e15e68c7295fe4c4727049007e3fd6a3bf5be662846c669965c39e ee26797951ce86d4e2db76070ce1217c9c9dbada0a8e53e450bec992724150a9 34f7ca6b7c092e12726cf0ee125608a4e58f3c54f1b3466c47acc11a7fb86d15 56bc15dc4999f52616f1d45745a4719df7849fca9430b7e2fcf0c72dfca8e2c5 b205f65ff646084b03779616126dc0108574d98b20dcd787f99305e593a3ff30 39132a62240bb9c47f7aba86bd61fa30e7751cdfbfb630c159d016ee70c8a273 1a167494354bee5fa39bb0a233580913943e029ce518d75f30af7cb2d3ed2103 d8abbac569cab1a9daaf125e79d5b327e69489eec94bf0e537724799f6e42c6c ba604976a498266555197e5290968486e625bb933e6588019e496c647f574522 7f8817ef98e28a27158cc58a48d264f6b95cbf2e1d92399d423e31ac7a077588 466f725090359c69e0fc91072df81fadd46069bbcefcaa77cfb7fa3e96034026 35a8296bf9c1d0a7fbab44a815ab741f36aefa60b2825671b0ab55db353d186e 90ed303b9caa7d0f52f9b74273042c3297e64b7264f38c0b849b1099a2b1ead1 89c6b6ee20b3f32aee24ba734e809ae500f6d48a50e6eadbfe61e660028476d1 254dd0467c140e698527a278c910e03f4341f0dece94a430db441f8a4fa73954 edc0534e2bfbae3205749cf27945909d28da83e440a5558aaa8eca7a9a4c8243 f0a60c5211ec2197fac453f01520ead1b20621962324543c2729d977cda3eac4 0ff0c0fa1096315ba2eee3d71cdf2c5bb1d9a4d4ed2147dfbd673f79cc1dc21b a77ac1096bd93b15f31467919e432c204640a81694abe315fcee9a3e9ef27f86 57c1d4aae410a23e44d0ce9fab50f953c81e33f6ec39837b20cf8fd0cc76a029 8f12e76a4c78b40798819f7919a0d24a42cef3074b8de0cb5e418201d41f431c 68e92c1827a4c9cfc968063e76038a494bdd4fb5e957d57aab2fa31bf1830b1e d3bb12f34f3fb17bfd73a349d706138da54671b43450f22f40cd7cbf50476a5b 2c73dccace0b74fa671007e4e95bbd79173c5d37047e511d49a110f81ff7ca8b 5fe0ed67a5efa1a87670db0ea31a11ee76b4af2dda3a6367df3c2b4e7cd868c1 604d872998326c710c206b78d6b9ebeaa14ff4841d18163a1b0738b3c9c2a952 3ec59bca6623329181bbed1662963564b1a7b48e08b120c0b1e2e28e9f076196 0f7a72f4118dfe57672c96ab72589dcdb652ff0580bed4a9c42ca35fcb1e6595 bf4fb078cb8531d2b589b0258fb14aaa9752283e94da2822810fa00220ecc76b fa0bf30ab93c612d2f6fa13c02443dd179c5ccfc0312d70d4509c558631a1b83 00301b494062dd506e84bef5d3e734f6af4b506f9b6ef43641f25a699cb7f70b 646e8b334fa8305bbe6e2f9596579f7db9e28c6e3cbac6a244984cb1dbcf751c 748afeea4610cd4c1cbfac10c9852a32b6f912bbe967a68c9678a83b03d3a589 55e21dfaec2921bafbd868fc6c5dbf9e6ff8d93c8d5a30a5903eaa82757ef344 ef36e216f96cd68b0f90b54579e11a40cf33c17fae2ddba456e1b85458cbf05d 928fb1ccae12f39e215c4c68b7f22ddd26d0f271e77b0f2cc2d6a9a7f37db7a7 621c4ec4e126ef4f231a2bd811cba54ac5ea84386cfd985ba17506d0d7c552c2 aa2b5fefb49cf5b7b1b16bbaa38fb408cef612e7260d088712d60c57af8291e6 9401fe2d8c879d563e7d988bc522100bd0e905a7dd25189a771076e75998d37e df26f0dd5e302eec87c087bd54289ab3f3c013b3a64b8bd4a0acdbcb32858e0e b407557f336b89be676f94fa5e41f2db1938288948b2eee549393213cebdc36d 9e241b237e78fb7226633fc67a127e48e43ddadbfe12aaa41bf7cff47115524b b853d3bef16514c2723b057e3cb74f0e6f043a25e7ecff0bf7620140f11b57a8 9e343a4fe17cafd950735383d05ea02d410d26c0ed305a619a461c08155ace2a c0888f257a301272ca78d533bab54f54d001dc6c205ff6324ebc1942320e3f8c 7c00eddba2962f7d8b8b194ad83e47b13083caf11e64dc89119d7127b9be5538 6b703d42d1edfd7db2f3fa122f1acde1ea43eedb955593c14dabea0ea66c6328 f39d3de6562fe906da301dc1ab7a83bf88cab1eb9923c5f1085bcaf02b8fa410 5c531836956c509ab18cc19bc5c248a2eef7566792982a43ec89d63b31e001fb b2ccc234e03e4572ce089d02bdf9dc0190af8dbc2c7ccc22196e3bc17c3e37c8 9a742f07edcadccc8d7597a4ed227f4ee37e843718e15da7208f8d2f2ffa12ee c007346e4cad0bb1aacf73e0edfcdc725be54ff6103eb3080881b1ef78267290 abc87920cf63f402a019e5c6e328f78707ac983bf0bc32cf4673d6bb966c9cd7 3b3c64b76a925b15225054a970acf61f123c44e51dd944426493fdf54646ecec 87e538cd1a130a43e1fd6274ac12ce5663534f65210c1e438118e34112c119aa 0e311185ca3977c6da19e0e73f9ef47ede1bc60f1891dc3302d01d7138da0867 1bae87b54e594f06e26c0e01b11693e994722daf37dfae35d1c63f7946f31167 32415ceaa09a865c28ccd57f9d41e19123e2cdab7e3e2bd29dee275f30075bce 458ddb09c2d5fea6e0e2a744009f6abddf5c34fb3caf51ece4665704bbb215e4 7107a1745424e6ab9071d2008cbe279c0b5ccb8ab61afa38b3d6195f652eb5e1 7a32a358e8ba8e02888b97e3ba3b695ea0062bb1cdb5ac5fee551e9eda4f070c 3dcf504cad12914caa34b39a494f539f1bf2ef77223c233a57f11cccea4f79ef f782c9c42efab4dbb360ca7518709ff4691fd9b9451e24fee60b2053167b96d4 f47fdce601a10d0dba330116a5dd0adfa44f7ec578c5ccdefda203bc220e5ec8 128e67fe500412d234fa0caeaf0a927d5cfd89d46bf3362e2ea172e09fd4d126 51ae59dfb15484b29ef2d5abd39e387202cc9348d00ee7a6dafa810bb68ad460 0c2e61a128d692502c2080311a7c99e30671d200ca812755a79ddc1e281a0c11 359ffc8341a508486c7677cce56b24bd2cac1b9457d2aa9b701cf9d7a74f8d6b a285e3b342e5232977abce1e51a95b0b148ba89fa492fc93e67f91042242ef87 f0a83ca51a752255a9eee173e2b2e69b4d88394a8f5584f9265597cc42fec4c1 cc727c7ade1b3407db4e0ebd6cf4848504df6cdecb476ce74aa817dca0e51c0d a3f14a1bcce37adff3bd7d08b44876e1b08789b630a3d070b53f3a8fe7ef8bef 539522d521b1319455c3999ab3f6fdcf92f28a36152a6574f62ba51ef90e1f3b c89ec530004dfcdd7a7b1c8038957ae361d921dc976b899b46f67eb824732282 e0207eb3f113c267b2154ed423f9084b56cfa1dd26508c3295d844e1549b63f2 26bb27f7ecb4ca36fe55ad817d952767b49d78f4576448eff1679851a415f918 0cf5ae1157b06c47e44c70774d6ffba7d8f86ba0160d55e21db737e10b2a91c7 05286b7c7dd9cc027ee23f3b3b46c3271a274868311d56931361dcd37542d1ac 67dc26954a733f9662dc9308f9639b944894f6f19848fbc3f44cb8bf3d5f6b39 fc78127ddaa6243cac012fe0cd52efbbed8b4bf857b3a1bb2b7e7e44bc8b0faa d715b0c6fbf4a4a9071cf299e0cacb88593fd61e5a0dc9fe7ed040e17dae132d eb17ff933db6927e892b3919cc14ca1908f557607b1dfbf48dc3d6aaa862d8c6 5dc9b2f3cc127e70d10c3a04ee17d357c93527eeffcf18792383b73459d50bcf ced1527e0520a397f7ec692a12f0693150885fcee5087b5d94b2ed81ebe967e1 fc32853cb465bb8b66453574c4ba998c91641e35a2fe6e521883fe344b27cb10 7031369baca8bdc5f4b9a2f44180c0ac498f171a416c8fdae8ba089819eb0256 17094a93681a3b3d100ec7f45839e9d42a09d0d75b8a05f6da5458eb6151be55 3fa2413df3364cb39a368d22643cc13b695eda2ba739e77125516dcb203d4764 e21c4075a931da7518471e4251a9782ee15bd2a5e94398e09a07fd265edf618f 71d439f8129c6b7402a05ff14547308fd9dc5e7c96f620a2682b50a7859eec5b da71f4c6e12059e8dd3916bfdfd0e151fa4b5aaa90435d1d42ab092c9c421657 d5bb283717759416257016e9314f54455ec9448f77df7e53c24fe8d96ec1c68c a7fd651af1e71686d2347af1ec6f9b790c185fd352ac03047f6c920bbb872fcb fbdb7566c75ab06d93278df61d8070a9951766b46720da236d8d4e7b4893aba8 ed4ac9406fe383631457095ca9993db527e7a37c9419b7abedfb7d41a460b9c4 9fb39efcf3631da0dbd315788ad98295fbb62e11655c0cc1ab2fb0e54e01ba9f b16cc2c1f82e48b3bfef4b4d339d7f0df8e001dc2a5911b4b92fb7eb428873eb 8a5acce25fd9f47faff3e0733d38b86a244ea1952ce528b8abf9493b1b307bc4 7a4fa41bbce361d2a6bf9a6820a231a58e89a9d214fadd6aadcbedaa150a4f27 9efe67012114205991c643e6ea1411203926bc0804572e0b727913402a466f8b f111844675dd5109212e5447f682e2959232ad21a218ff49479714aadb0618d3 fb488ebb29b2939059d1f794c277515eb400e5c626a811ce2a7a247e9e904b64 5609b594431433470ddcec6974f0f3d77651793ad7ce23ee72111474cfe2ca02 51c4d90c0b02ac9d7670c3795df594074759f38fc2ebe6a2a797d54628a50676 6f1e2263844d597fd845687a44f72a539a8661a9a9064c78071c040d1f0a45fd e2cccd2268919227e8e2c05befee614a9535a6adb324624425290d7032f6dfce 19342467ccf344114425ca8f9ed74899dcbd8d373879ca8f83d953021259f998 338d2e7a5cb54321f8057d70d5a02fa8aef3aea24854a9a21e45428a97397cc3 58aec6ec45fa9199579406c2e842549e1639d80b2a6b2502f28c8f4f94fba297 938a3c986ed1dba4c3b384bc43d7bb6becb71195475398313bf8774355562800 bf86d8f75101683880ae686ac36b757ce0e4adee09ef68f8fb5e891e956ee62e 346adb50098c5b7ded6374bff775ef4fd58a5910d980a635576e20e7b11797a1 7c44b0d347ec9b56cfca607866ea109d54fc992b1376eebd4d201a876e8564b9 f8ebd34de83bfc90c10d8ea85b556cb5fb74c447bde7329334b29c788cae8f02 de02daabf74f0bcdcf64064c91f366db4bb68794c9c41765bfaadfb514f487dd 096b2ad1f1404a836a809a20dc813a277c749ad0c4c45e6374630a4999ec512b fe9f990a74a05ff7e6c2b1ade33fd14670c6ef97ad99ccbb996b12d0172a88e1 b923f85a17213d52ae7e3886c50e125d38b8f97692cb2a5b3e03f21188f763e9 7eec87182ae517e42d9590f73c2594a7e5f61b9a5bf15a7eed29a754f729d532 dfa74519696cf75ae98a471ec88b3ed550730f50f519ac629691a47e19343c05 1b6d466acb89f50db25a9beae2b0eb79a96d2c0189febc516e68f70aa6bc09f9 129b0fd837e87d16fbe4a7a4456663cc7346218be042b965dedc22b7cb5f811e a445a5651759ac076b49d476e5f89c218bda4ec9582c95149b5f2d8a49c80ead 3ce0df6ea52db964cdc0ef2164bd21f818ef287cb3337b4d8a6aa34a336be17c d808a00949f82017f831b771473ef12a2661ab1fc21c3e344899d6a73ef7ff83 694abb48072daa7841dbb31498a9cc29b07bb0dcf709cae5014c2cc9073a1e5b a29d67f72a030496798f04171ed6a45105fbb58ca261d3ab9dcb57fc28b50cae 57c4203ae09a58bbca20a4613bcdff264adbbac8ad7ea0c2fabe4f07aa453618 e1591258a2a18e0fd974135fb890beba5bb115a8dd6491ad3299e27506ecdb8a e9c074ad5f1a553bb14f1aa35b9cabcd645ee452166f331319a5a953a922cc14 5f683e88ccdfc3d64d61b317df7e6022e9d50b28aba224d6a03a34a9d8242f39 e34cd7b5e46f37291f5d75bdc1bb586ac86778c1a496f321808cc0da6fb3a6e1 d4cd8c8e37c1e2c1d98384ea5a1654caf3b360d4fc77c3c3faf94466de5208b3 2935fde906ebf2d98ccba2cdabcd8197947f5e801ca0981a82b091a51c8ae0ba de5b69f3c9c0026fdd590e1e2cd526e7f7096570a53bbf917ee0a2a519ea4f15 f24cb5a8dd227ef2d8459ed65c31f5c19c9270028ad027c131e73c3c6f70b9d2 f2288bf3b41affb66db183903f464999bc5cf41602a50db4cd4f06ef1105214c cb7eadc45b06dc96636884a3d6d7a8374c57daaaecd35f52aa4db430e1c63995 bbe2b7bca8360dd4ad7dfbb0aeac6ba567251655c0e587d9dbf612b92bfc10ce db038669f091a3fb55034808c478ea0e0896037a1c5b442b8eb5923bda950ff5 72d305439fa14d73563da1105b1cb0dd7feb729e7d02368071dc03f11d647e25 46e5e870a784152f3317900f59f6f8f0d5a585ea6c1a0d5315625c0916906302 df05d68b2514a493918d94d99cb53f6deba91893597a866fa8383288acc52dcd c28693cb63d003a4a3248005b70e35cc45292fbdec55ae303f37ed3cecb8d0bd cccd224b63a6328ebb6f1192e962b4d9c160f30b753a3f974767aa5f8d5e9f11 5f6a834747814afd7f7e7d4e90d46ede92f8a810311bc28bcc0027e674efdcbe 3e40e2378ba1b9d7354e8be4e313322c2aba1e03d2f810cc09b78197e8214d46 6f5531094a7b8cecee5aeb2c693d4b382edf7d9d715d4cd12ce39d510885240b dbf096994f947ebf264ca3848ae72b3a2acf8cf2904a4b5b2fd5a3f590f4a475 25b967f5bcb647a537b6a4bb99be6ba00c9e96a51b2345fc48a8ac1f7cf4c9eb 329915effc052bc6fae5e25b08151e54129c8f5ff8896d0d4ed79b43ed124865 f79622a6cfd362e64e8e88e417a7b8204f133cfcaa7ac70df4b072bd808c6971 a0f2cc29008d5afa6648411b5deba3aac749fba957b0be5dc72696d1ccd3bd95 b2ada03d95bd1c2e7a10beffe96b9154cf9b1ea22c5ad3ed8d79af6df9c5fc46 7aae44e7f8558889afee261b8bb6c43785152943785407b575aa9de5f6c921f9 fa660b14626f5e1034cca473a6a7c16e597492013f9531c67a35fee2e56a2ab1 e4b9e834fab1fe22a52d785dc1995badcc84f2d32e0f9d029eb0ff5eb2e69843 fa738bf19d33087e9c0618371f5098b1e2e309d45485b4d6b37e557baab7152e feebd0b2c10c1a45494853962e0345b6b72967c886c311e47a1e5896260757c3 29d82d254d57e38e0e89ca1d9c746ad36e246978f307be1329914e7862a0f8cc b14f06cff9c03fd6cab3bb4cdedab7f0e1711b3d31b022af53cd82585ae82145 dcd76f76fa2bb84da98a2a3e46fca1d9e7ea0a91866201e08712220cf0d6d5f5 91a3283ee986ec9e7f25efa757a93322d0eaf07e9cdfa316ca5f96169ce85895 407ad045ce86d9f35b49cfd6bf116d22d70aad5777dd46aca0ac938cdb0859a0 96a63b955eb4c8d8666179b1e6d95fb193889028666c17ff613ad70c8e9c84a8 c66cafa7496fefc65a69b94b9ba5e1d5b944b8ffaa613fd3d04cc26796c0a5ba 2d6d6bb91772ca88f254a48ed8acfda7532d98f9d5b7d88cc0b0e57e5d02d327 4be18983b93de871c80dd536b7cbc274729c142a869ca7d6247c769ce44fb92a 90b197da1818303000994e0a6cce0fd6a524b0d5d33802ff7bc6099ca05a77e1 5f5b1a7a379baf044715bb6cc9943e5be7feda7733687e9e7f960594d1cd925d dcc26c02a8f37102c39272fa0dc6fc3f5fb20f81d61131e7dc39e862aac67cb4 bb9db02cea461eb5bc66b3d0b6bd78afd0f9536f5f907d53139b574fd40818fa f3c85343b5b8e77b8d164bafa35075acf022679a99145c46339f12a31bccc31b c17731415fd5a998d2a8e33c4fe39c1fe4d711dbe2b0ffc47a171a1ae9016c20 98f041ce3a0240bed3fd2e2e174a19bf5c396965897b3b64019e4e22130be4fb 6b8f3589719040c2b123716934d430aaec0bf30c04ce6e1980552947d3233966 1f72ec517f6318586521e5d4c45a58bc53530fa66efd6f7ef3d94fcc35afc26a b4dab34757b5933c85717090211219dafdbcbea0d8dbfd99fc05288feaaf19bb e8c905b49e7aebdc42529c6ec1f7c3ed523b399f2a71e61448b8829873afb8d9 d3cdeeafcf60fdeb9c878f6386fb58f180bacf6e99374e89e2704d3e69262b16 07547873c342d897940b8496d1f38e9088ce93dbda7e866ccc8c068fc7210223 1b27bad26cb4eb65dead908f9542a0b68b7a5d0b4ed989a8fc74f5e4d5a1fe2d e408abdae204cc186e0a2b67749500b3f8c51260ea094affc634a4953447c3cf fd2fbc2698bb86143bce8b232722518ec936358c7fbf69effbebdf6c3610ecc5 957fc30ab08d2e2f12ac47ddc6322a710b76f900c3dda591f048886f80165704 1f712a84065107083c0f79ea7fe4f92faae9c9c04cea4384478390f1affd066d 18ec102b5154b78ee8d468a4162c0b3a10bd19e1312e9d8564d5aa5da77f7e56 1b6852c00138225f9101fb1407fdb9ea605c8e0862d81aac19b869af18630b27 38d8bb635ba12ec2461ad673a27aee5bdb592d8bf08da6c14815ea3e59466eae b887ce5b0ec2f54dbdbd30424f317f45c6ae5d1cd6f44316c122ffd7c178fdbb 8a068cabba00c126bcad2f17a454d0810a0533629ff6b1069d5cccd5f5e52d1b 07869a59eaef3456267bf050eeda457c1029fee50b395fbea1dc6d7d7cd18d76 76ed7a78cdda4f105166f61ac728ad25beb547d071e0e515840dc9559551bfdb 454b080cc49e268fdf556161a92fe7d93219b395625eadcfbcfa8a9ed61bd7e6 f42d58a138020f2a69951d2f67641c39e98bb2a4441b0ebccaeab4e731e734f4 136e6b193011bb221ee9d099ba6a23a5f1340a1234a50a4cbbd172cce6cd2b60 15e10de447c4df7db80ab79c4840dff6c7eb06cd931aa58c001c02229220086e c1f2c3544af0a581afb28103ff5ccb7488ba861edccab702611dcf1628f77669 3bb25210bbcafa72dd0a5955a85419c425b9b176ee110f88e341751a56a2dc61 209df3ba68eed540b6df151f60ca61a8a4f93456aa864e179ddab8844290677b 669ccf3a67a2025b5cf5b4d7d2dc7e1e665bb55e72b8d02ef4735d6c68764ed6 93322f99d69636df06023648c22f86953046bcc662d6079ae2c7314bfff5f5d9 bbfe514c8beb08eb4a469c2b8e496671de9227b64ec3a26db6202935f7b92a6d a03d7c9d53126432b6337cccd64c650e0d4d6e3032ada066c9b2b891f5b74900 a9c3b0481aacf53671ed0d841106f05792d76db3626655f8677323d0b5d817d0 e7f0a221493ca7ffa8ad261e9663ea965a3bc82ef4d9031103337a868f80ab46 4f4a0df2f735b25807c9f3268a7e0711ffe63eddad14787806e67ec144ef1d17 083343ebd10a7e9aff9e6c1e349c7926ed0f3d878fa8b13f2904cf4efad6ca39 1bcf1f1f4083e5cee93da0746c5cf983004657c5c8fe4eece7dc424f72866db6 86212292fd27831b68e36bb169ed0df0d23eed7c87fa905de280da096e57e140 69e00680deaf32aa3986d48eea8811c87d7082371d3d48049611253d1d0c5e17 c80a7df4469c54882ab077cc8f0defd8b88232205c3406db6bbb157580bff648 e16b07a670f7fde9388e018153644252dca0a7fb24b50991c2e699c90d827fd9 b5ddf4cb8f2048f8d4476b649727d7654fd450ea19a29e4bd087a073404d6406 58c8f54ff20565298cdbe2a6cce4a24e2861a92b14212a05e854d04aa4bfe13e a5fb10d7736a8f03e6e306d669bc6f6cbb29b34958a8f4208e4b394959fe8668 e540699edffc8aad936f803b2abcf963889c85bc44acf6c9cc2ce2a12716f7a6 37c07d2d6879ce05971c3842d69bd02a41e3da3aa881eff4a38f9997494e922d 550f63938ceae8afd845a348c43f45f3f7173ddff3f885611d402f2477ee706d 8e530fcd2b6ea54093e445adca8c022ee291329e37228c5757270e9f21a5b2bb deb0a0f2d25224b0fb67a610cfce5a7fe61dc6ff049f489f1e15699a229d1555 fa976700d9fa69fb212aaa6d8a7d5604ded821ae4c63f87af0b4272ae421a29d 8801b6025ae855c0b1b978ad52c1a8869d81a2a50f65806fe9627bddede8891d d8a37af1dfa7cd7293c3938d32e410bf39437bdf149cd0ceee8809e3e8bd9584 aa3588ba05f51ed661bd48a1e11feafece70752b7b9ccd8b590afd25b0d91843 189c395e9c3409117be9784048bac366cda47f117b9260318bc8a894045e5bee 3a1e39af73458bd24b269b5ff40b96abaa885d1e895447297375eb8493d7282b ff7bd2b53ef951d02283d782e1bbb3068d2bfdaf811b6d4dcaf4b2a962783e12 f9f6b211bd4356914f3e3e7a3dfee75d69123468815e6fc7bf6e037fde16f129 ff01ab1eaf878bb0a12620a9aaa6907c4c88c18390d11553507d8d58a9ad0e51 a34ab4ba2e2128ad04deb5cf7d232d245ca20323a5b797b566ff73fc6dfc8bfd 262ca73f501e8d62b807cf9239e32740a2c2c7e6e3b3049508cfa7bfe22e2795 c469e5aa2c2b944c62b734b983024ee9541b60b9e9dbd27e72625f6cfe218ff9 417a053298ee1042d72f2749fd4b21d6afbeca64cd21722628dc52e8d9a675aa b4378ca91ee21bd5e41d78f78208db17434eb55be3eb95f8e69957c0ff3ad892 bbed02be41e9b29d6dd30b94c0a8a0c3a23f5e1906a2930b434e4520148f17af eb3a6f22d2bf6ba1f23c3eb89b66e14f20e409671c4b65f80490c8a3c60bae6e 9a2c69f153ae23b4117078eea05b7c40f0b484c8d11ee2b563533b23166b760a d3e22fca2b5b5667b800ec7037de99a585a7081d565eb61f8e7641f58ac1901e 1030da028db2ff84da46b251061212dd2d90194e5a8f64edd40a2fc547d5ae86 86bc73ff0a665456746074519505db6b1a96042b1674d89e1b00329deab4d97b 86a8d3edfc29fc47971b2e19dc715fe9a3369addb725a8f4b14094a4bd81b77b 5bb38ccbc7a8e1647767d3d660dcd19bcd09c1e5f9237ec7d37ee1930df5f0f1 2d0881eebd0cca2fcd994fd445ad2e620a7386c3a10d7dbda53d5893c4fa70a2 ddf4d0d5af1be8049bd3a57a580e5fb587eb5e3d0aaf73d40ff2134d17ef736a 36335066a493bdad7b4d5540a00cee82bf1b1832eb9c06325f7d2591bb1f6a2c b4ddfb4df9814dad3c9a59b05d57d8be208810831fb650efd8bc629c4c006e9b adbf2a6d0bc51cd88c47b6518e9183d9f25c4de7c6842f37cfd0c44518bcca18 6cd7d8709bfe03d9cac1ed9e19e0119ec41b6028fc2870e465ef7c24118ed54e d81de4113e04a7c4eca75d5c9f460324a84af18c3950b5d253fc11325a15af12 0e36f90bee4787a175c6ab7c1a39be8ffe1324a827028101243f60844594737b 7f597005909fcba78840e6297b099163a356c77032055920da96bf7374a5cd38 f71a74a4cc74c33d1be512f1a1af7aafd876e1d5eb115e945adc76d991b13bfe 165ef522d5e6b85f8da52053f20ba774670ba913e7fa1cce03293a4cbb5a8969 6572e555aa0a83fca4557954d438000d29bfefb09d87962751c77f15793a83b7 cdc6e6f0c4d7fad961d4ef287e00d44a1f61ba6fc0786c13ed8a2550a1914ae5 f1eb15a53984f208e755a9ee908a48b8038d0c219aeadbe303c2cf28c6d7db63 fd1777db279471c852890d0a018d7660617a94911be483486b2c3be1fae8070d d929d68c2356d58d84986662ce0e783e27852b4afdbf8c97f1e47672a96aa0ac f8ee51676e0be143cb4dae6cd40628d0b7012f1ffd638b14f7311f33103fb53b d91e689cf8b6d4930fb4da13bd6343f97e51613b9e6ca03e2fab85f12b1cd835 1078b58f1b82be751a2dcaa1907b2b7bec05ddc488d7388e9d1b29543de2ad43 6b75f758b144fd7b93a4e3876dc06010507f3e7037f3f8f078f24fb5972f7e73 5922b8942dc840cfa4e3d713026fe17362a47fc060c7282a9f7684d89921e1ac 2963a1cdfd4682857b4285e68483576bf2a05491d74a390dd017a95d0ebbe786 8250bb41eb0aa7226bde3a4dfb5b27d7f97421029f2bcfd26fc1a0f3c256b9ae 837aa46745d5de4c5c275ae1f625630648840e9fd199a3c4d00262c696bcfbe0 8c7870e1d46c02a919e381d27455dd4ed5049d33eac72c56810409a6cf74f242 d35ca15c50cd05b546e643835cccf8b8b7ab291bb362bfc92bae2d06c815d612 309ecb8d79321f1a633a934d61a4a0c873637fc83695b61135748ec860785f60 6cd96e593035ccb3103ef1048ea34dec7e52a185915852151dbb086768085f47 9e89ab18c2cfc112b6673118f12d7665c5adaa6853eb08b0bf6061e0b8a0adcb 86e2f9be796a4586cbba8946c9a797aa830858ac6358c4dc5ec98d6e3653ad65 8428f17dcd36cceabdd86e4a2ae4792444b7daeb08958ec834d699e4f9e960e8 5a883744174e66c192f05ab50e2d7978325436b90e06d67fe84a1010b3ad5e36 3a477bcdd07f49becc828dc7f48fd214fb139b57a237ee1e3668255af55a4135 ba74aa557ba6287fa08a4805235fbf4373ec0ed49aa31fa3f99f990f2ce9c12b b54bf5b52f80dc67e494b0958f473f9d0bff8831a33d17dc910b6dd45bf2ff37 b1eb44f40972d710a0d19f6046afe4484ad2a48412ae185ca10c3ac5cb192edf b172b5626e7023012a6ea10d9c8d749b0d91c563c2b9c025fd7cb4ccacbc5478 5bde2cb58d942e2c9fc3e4b22703c1db47f629ab36088cde1105e7a8c624ff7e 01d26899399ff91f4f39b1150dfee69f465f44a9f289c78fd050d7bf66200a93 326acbef82918a3bc1829452b0c3a5bf15b974cc4c85b9aa0a8e9e437819a8af 5ef3df8c5f451e7dfb18bc2cae853988b550dd963c5f150324f5348bee3a5709 c15026d9b4a90e50c8b0b8f13a46e63744e95b50f495ae6c30a612643316cb42 0a737e142d8fd6322a635641bd24afcf438b121b178d004bb29fcde186f9f873 b8172f44a6f75622d9d64b07b998d220bcde05d9f2839328105bd016cb80730f a67fcd5598437d21f60b7b184d1ca74e661a3b3d100ec7f45839e96e0fb74c39 faa05e9905e9074a8825683cd47f9efa112c3891cf8648e418f237c923208fb2 bc20674bef2cf1de80fc61c3e30669c9b01976598849fe3d9155920ae3c009b7 a7f9de4589b512b6219900c73731245412952085c619563c723d61c0270b2a94 9340b5d26323bb7857e6eff428f18a49327242a5e7e4ae7ffa30e9385a02a454 9edbe201c62fb7a47d1f217947eec329a8cf4ec750190bb8989aa848fc3762ee db9ec2bd3cb7221bb4fa7654046fe8522e4768b5b01197dc84d4f868bcbdf293 282da8a907a9ae670b6366bfbd07ef6534127eff7a7f99ef5441f750a7f0fdd7 16ac827cbcee87ba2c9c3a4e4fd9e0ab389af7a9d524dce404a46d147607dc7c cff13180b64a7ff61d4fa6b82ed0736a251f5d912d96569c2e454f52190180d8 614a372969c52351ac3dd829bf24c08f6bb5bdce3dc7cface8a3ac69b2c54a49 f61fcfaed3b3ad2e266a2099e19a9b6275f8e27769f0b4c13aaf831a0e9dfbb6 18c83d8a278edea2cd628326ad659f1e1cc456d98916f0c6d1b4856bb1919f4d ac7adddb448825967ae9a1c158b1f601a7efbec3e76bfd7869be9060622770ea 785279366700c330843b3bed717b82003c5569330da07c8b09ecbab3b013f084 6a314a8a7bf3f03727e91e3c60bbfb7cb9ddaa30f5de85da4d2dd4911c9c61da 3767f9c533c58748d89f96fc94a25c89d0ef1120d3263568a911f0978a312a7a faae86dc56ebe5af19b0b25c2df0947caf214ff95816b017481ef9e3ba594bbc 80bf7e3e8aeb52e397022b93ab95957753a094b1e52bff8e3d7f0d04a17cd286 e274add583659138334576917cd517b0394969603e833ea4de0c5b38c84c0488 1cd8c904f7b3da660cc12d37945325bf9f06bbace83f1b64fd8f997563ce8efb 82747a72c81691f88c898f11ea2c054aaa6bbf514cfca02b56cc99e5dff1a481 94fe5039ad6acdbef5843c8e4fbd04bed9d9b6af1420fae38cfd1772b2e3e1cc f7e4450a01668388fc4ddab08cc24af6bfabddcb99712100c58ccf5e9c9a17c5 e40d316fadc3bfa62294a091ed266bda81880f3bfeb6f6cb9f8c9ab03c73ed64 52ad9eeb2d3ac8635cd9d2459b2c2d34f952bd75def9f84a60be2254409d33dd 04ca06b44cbb8c4586ff98376b6aeef2fc171b07786381dd978e4c366345441b 280c8d25c53ed779369e14f6d7066db2c7dbe003500314505e1c3671fc3b0ddd dee36439ac826862509d543302c387d54cebdcb6a5502376213596596380ba14 b7880a934ab08a6abf6dd4093dec4128c8082f3d92b5d2d92cc286268f1be343 312773834d2d1f8433d6ad2a938859502d867dc25f0cd96e98e4bf4de131dfb7 a510583fba93ae8718a1f89d60e5b5ec026d91d28ab3e9ab81d44f8b010f1138 83325a09382ac02e6f7fb07fa95f90c75d2d926c8ba15701bb16f608b91478e3 bbe8762c90ec7d507f9ea95d4c3f46465a2331b859db5d6cd9b590e1130c4681 297cf28679c41a91175d4a5f4c580a1de13371a453bd5e0d38a0b7c0807f0db0 2deab94fb7aa3c7f3138042ae532fabdffdf953b8feb36631b29f5ab0bc0438c 5f9ab0ed3eb87ff056c5552083b2cc268689be24162942776f59b7f9e4f5b41f 81e5c947ae042d24df262097bb9218842738845fe30e36afd81ccf6e2c90d34c 5dfbda79c932d4baca44490de00b02ca929433e1f25000ccf537d144ecbf943a c21727920d9beb432402fb17ebce944da34f6fcd02332c53ddc0c3cc2536cda6 7f80282b423be2e01a464d062226b47b9cb5b4e45bd5079ccef3a064af2aaba0 905c5f1a3a9a333bbcae9123c29153710fc66fcb65e318ac005e551729143d67 da0dd0c698dd7e387844f603cc17451bbb725e2b531a85cac01ec08bf1b9ddef a0f9483de34ce375c835aa613b2f289d124087071ed8b4a37a0aff1981a10b02 fcf7281c0d03a84feca7443b91ae6653659df5e26fe1e0d5927daf090bf54fd4 e730348d1e83f6cdd345b5331906d30858b8944043dd5ac14859db6e68360a18 c7fd1b027d91a14312fc35a30dd12d6983fa9d9526e0559bfc376385715da2af 4908b2b2ee3388cf1fd9b7bbd5da15434739e2f12f44481527dec6241d7dc090 79ca05f15d5aaa3507ebb89e0bf0bdd55f45fad40756621200e4b883facc6c00 c0f6e41068e0a32547afe4dbc0be8e5e57836d47d81f746a931411c615a145f3 afe966876ea51677709da171d16671ecaeb08c8e5799102210c7c0e4b2083148 0ba6de1793b208efd7e5b958b04840c57b7042fd3cf0a7912e238315325f665d 458e6158aa22701949facece70812472f30bf5e8fc544ba99a643876cc41ed10 48daeeb69ab01af53d9018687bee2bb47b6d4acdf1ee04a46b1a488708eb2cf5 7733261d6453d095af9549b122c6e183b76cba9def22cbce32c49dc615c0988a 428dae015300fac0988ca0c6c710de1cec4bd2686562dd31c73d70bbf2697942 7bb004e3b5e0039fe7f069073a17144ef3301bdc8b2f64bf80e69378dfe988f4 bf3fcdb94b79673c06452035bc0b82acb500b8611a958a7882bd4542d895fbf4 a0e0ed758057bd468c31e7a746a72ff9360340bab2e50ee83f152cfe04d8fceb cf05f7198e08ea12f9b2b15f79a2c7c20025664b25dc6cd3866641dbb5b638f6 cf50f20f6ddd40cfe3ec12be71746d38f82e71cb2fecbf616bf275e9911fc886 c8dda19ae13c8359a162e7a5d643867c138b7a27af42cd13dbeb39675fc9bedb f9ee5af9bef261dfe00b7a380866f5146460f4326c02591ff735c6c5edb7d2e2 648a99d75b0c6e56e58e1ab20eb30c26df1cbbb93539de70fd5109089c085dc9 86a1149ce85dde78d04629e2119c3b1defbd74348ee124188aa072c646eb4369 61c2af77048a217f8a87d0c1be164877e38905b9c64c4ca7bb245e3f42604d2f c444db2c200ae6dfcc4c121137174bffe00b8cfce8387ee395c9e2d7796d0b65 da7a0e628f11141f1464b641f82a6d647a706189d18d5a400229ec79fa6e3c1e 561a53f006ffc78822f0a7e8517a920265e4ef96615ee775c1ab93d839dc4fad 5dcd0adb608f0d3812be8681e0b59f084761d99de6b08c026005ecd0ee54508c 238309ed46163b5fb393891d90d8cd03ba417a04d6784396e7e8d282a3b84431 df3f324c703a4988c50004c716bdb31e4eadcc915e78a6b1898026d2dceaeaef a6e82b0ee80fc15221de932095e35adccbcf4ae515b504e4763ad46ca8c568a5 e2605171ad638caaeb21a80cb5877e2da5f053c3ba0db377121a6798d59ad99d fab5488cd3b25bdd8b3a26a3805ede14114e72b50c9c8fe2a8c6384aebf27dbd 5df066b1f4476f4b9d457018fbb57c22622b9e4a3cffb970da1a887bcae6123c b46af62e50ec8ee8fee48fb97f127897313af992c2ceb38b2e7cb704b851a492 5fddb642aa7d5ff2db9dd54dc1980a33df42045e02a2ef62748384a976fc35d4 702aadaccbe7cb9752d28c3a9d15fe8389c92c21ddabf3cba6b69e857565df1b 0139de5682df570e15411924a259f42a86a3d4d2d28c28252a66eedc95adedab a7c61857886af046f66f314880e161176f93395cde18578d7d7596b8c3422841 5fb26419e6316192efe069e49d948fba20bc602f81030806a0665c9cb9ff1449 9ddc0b5fec5fe41f09092ff543a6557b399f57b9bb39ca2d86309eae7c9f91a8 3fe58466c209c521aaa358aefb0b07a8125ab587c4f15fb38e6493fffd24f615 492759cf86fe0caf7049c448929bba2ee8be67eaa0e0aaa9b5f636917cd01d66 897982861ee57528c388adc791cdd1a857949ee4906ac4e85962866fa79d529b 7544adbe7fd7d6bec3fd3ce6bf589e6fe7a9f41962769bd41ea21b3a9e258fe5 a5f8a6ce8ffac7016d5b2cd8b5f46f9d53bcc33658f5b23a851bf6803519da02 426af58a0790a33efdb65e2d6cd034c264d1e1c18d6c8b0ddb845a4bc0425329 88b00ebc782cb7c99a9fa21669a752e9e951c24309317da475601ac02d614bb1 d16d3fccfe3d2f6535b7770dbbc7a7a44055fa5aee59ee1e83ae3af53c138e98 7a5aba2257e904fb80fe99f6c98394084b3cce03dccfb9279fc1fdbd19472b58 d8e5bcd8a3a7a3a5db4f5b50dc8e1ab20629f13d610a751b8a3609e782a2d9e7 e9e703b5726a50229a3a479431c3640efedec0f5a84b217bd0b7d62071520179 895001bb04a291c250a79f6e4ffb1e121f880872e5557cf73b3d5668b7cfb285 f51310968de06ccee34bde0e84275f5ab2a72bc3f9a63f48f8955681f615f091 c95b0e944030a4ab48a511b48015cbe8e01cd6322a500b702a9f85900e1ae8c7 b98db59f0d6d8d73d546f1409d93689bf313e812bdd928e05b5488d9cb66b738 3408a5815a170e93fd30f68f82818148a0bf8786d6bfcd09442046fd9748401c a8d7e4598397eafe105882d035d45d1d6ec61079de963db02500e255c774e8bf 307bf9371f54258aa40237d5bd1581008a9875e30abdf7da39cc41ef4677662e 3f98d02015c91f234a541df1958cdf067918d71d054da3f3d3ef37d193690dfd 9d6a3212a0422c96e7b40e66b7a243a7acfcabe0c5466e7c0d425d228586864b 772d5a2b0912b061ce0d15fb76728df33e5c42b125a9fa7d5fb443d54de43df7 a47a0106a80b7c2823bf7060a7e3e81e0cb7d7442057e93b6f38593b900b4e52 1a0113c06ceaa6e5d632c7c5e9492ad0546f85313238d39bab419ab657d04ee0 166667660ae8631ade889d60972b2908a6ca4c410e8c06451ce1eec3ecfa092a f30b6046756ab995176ebee3683ba8570d69ca581b52a81a21322e744792df16 9f035497dee5701193d55350b11978cf074444691b5cc3513a3cb8eff7f067f7 96edee530ddd825671f5bccbafcc30718a1902b173652e114862815fd0ead797 88362354737e832fa7dd46fd76f8e7b140d84053ebe209b5e9556b2f723ec229 3424d02f8da40f6a4c5ee291b658eb17408bbb2bc98689d0826fdb41428ee6ae 39475c480489083bc7b7f606f68086b7b9b205b4e513af8b73da6c2d0f3eb1ff 70d97d205532cc0bd6f6d4f4fc37ae957a48353d45434c7257051b263b82333d df2d8acd0b7c7bb6b8ad9643bc1fd0b5eb0732776022d6213932021a08f0734a 3b35694705a828587bb9c4196dfc4059a9837e7c46dbe6153def24dba61d3f25 9bc5d63f030fd860e9801dca7b81d0d4dc3d8c4cbaec3b9a769fcc09d7fac8ed 4c046e0b64bb8db2bafed5c91b39fe0885cd5e6bb5fad3917d664238c4642fef 6c4c554296df92a9563a29430485ac48c2a0f02ad39398126843ba348005aada 3cbc9211dfeb94a6d1b4b14d7138d4e2583d721bc9595e05c733043ba6d86f91 5dd250546f22f9746df5c4ac9f99106073336949dbdeb1ed3dc746587c1adfd8 48dcbafe2cf0c204c44793e7892ecdb55c246cecce60f467c2991989f5be9d21 4d72a888116d8a945376697b5d7034d62a680f9e91011a57b797d9576b043d1c 4b73666a7275e93a3b7b52feb6e8424f19a4914d4f4ce621efec308d83ba912b 7f5e0089ad1c15175216c27afef512f05312e2bee6c5778c5625354b9b3c70a6 2923140eb3f350d73d06ab95c5232a86199f41695b6cfcad052a5dc27d0705ea b4c94332d917236dc24f52172c94e05c3ff9203fbd34c13ad9d9e076dba1e23e 47bcf2c96a1c8b3ffcf2419f7d5b47795d9d2923fa5905b5ce3b4f332a89c5da 71afbfc57de12ad8d8678d1f67c1898c18249faf4d9f427019445425a11fff30 9164be83b0594c5f312d653513ade66d5ddf29738cb823bee179ff864d01a740 f759f64e5ce1d82f7841118b263929951fa7896a87c7949d9ffe0c5c5fa07fc3 e3dd043a9e4ccfea80de6ab6f460c46f852753220acc9645419b13634bf351ba 35a1126d0164e6e64518a2ad5522a73fe38612a34cb6671c48bc18c919305bfb 35c57b0c8e221fa7519d5b1d6d168d8bc0375d174eab1ae6e9e44fbb7d9ca6a2 f04c813f119939714322cb87c693a2499c9c269bfda53c78e7f04c775ad407be 49f8679e345bef9d531654e2377e61bddfa4f8aebe5bb6dd862d298519bcec25 54c40969c9d1fd16e5a126cb22b8bd3976f68ecc8fc8dc9c0fbf51dd20c839d3 b921da7d0aeb93aedc761f31f3a3401f83be4d38169ab5368ff41481d638736a a71f624adb3c4a275e6b353f139e089f0e02a27bb003c8fa5eba4f1b989b3282 8dd8d049529a84b2727733df2790637e437581de00fd5aa03c516360e4644d55 aedaefa76f7f729dbdfe2fcbd2c05dd593c74f4eea31518b09d8bf2094354040 c260b7b4bc3a6238bcb61b03e6de12e3d63be9f7b5f34441d9a44304911eb92f 93107eda8946de92bfebacdbd2d950d92150d1f831d6829fad5d62c75e5860d9 cb3e3062cf867305a0ddc020bf4bac7a2d899a9481a391152151857cd53a97a6 6f7cd99c190f119185d33e49f6ab5ce20e61540b21387358f1233d2b39e69924 7ac33ac73e337a1a54e9d574ba856e0d3cd7267483581dba9491619f91b12996 d1c33f89d5dd6407bb98323467e9a6e3be4afc06c5006e19ab8ad06b0a01fdd2 ad742bff310f17f16193d7ab584c71c34372690521e0afbc4e6051025ec9a4db affc01120edf545631e4fcc2a65c488f25f640260982b7458f83125581d36f18 55ab4d823dd44112967e4fd41cdd60d6644617a638ffd5c9d89d2a95bc4b1b9b 8178777184d48f314554a19a444fdd509ebd345b19a411bedf5a0f59e9c4dfd5 6facbb6ee71145168e06a6049f1e2b0e3f91ff26a2cce2db8a256400876db370 17cb684540eea84942aa295cb079951554614e45f8d0910e15093aa1d4877c3f 543f0957ce9074aa051182c9ba6cf64058a403cc63cad5335f51aa32c76e3d8e a3677bbdb623c2c5febec43e5490decf54bcf7d9cf35a4e5b9ab5577649cb61d a65b3fb13156130c55b44a78849ff4d84136f8ee4f2a368de63f5799c822c3f0 b27770a29973541c4e137774fa958c0ea6227a57610bc6f056662ab2f7ab4aac 6893826c13d3147b6fa6075cd4784cb799cfd972d9566227db5b25bef8641534 6fb8cee4e06dc0fc49be6237a2720e3f9b7bc7f22a0a5ff2c276c2aaa00ab372 7e59f1642709f1216403c0f694914e0be6c5165b21c1a736bdf04da8cd699fdb 1b9e1553a56314b73ba74d83ccdb0723469ebe15cf10d7bb4d16f1c0878ffe68 f015da3e534334f53a2591d30199a0ccfc0f3a239559e4d0c7fa1fca44442141 3bc003d6be7ebf1e9affec62467e98ece66bb2216b4cb5ce45113e75ee023635 9a3ca384d603136fe5b5da21465e6d406931020d030ad932cbaa597e170298b2 12b15b8434612b12d13844a3e5a46597b4c26148a3d6f5c42fe2d949dcb64b40 44034791b7d780f75d119422d56fae911d5ec40189a4957b13b9b75d991ba190 fd3944c8ea1b756747a0b14492b04053dab4418ea5a96e1b6b12ccdfe739d392 d023e003e0463dfff9ad29e5a0547d5101e9d6ecb59f376860952fb748d15b68 1070ba9d08b9436b65b80b20d7c6b65e4476553338f9f17dafb46471d293de8a afe9d55d30c38a475b9e8d00d02690ce3562ba9583038b5fed7940cb4d7cd5d9 79e2532f65689847 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndResource %%IncludeResource: font Times-Roman /rm /rmX /Times-Roman inf %%IncludeResource: font Times-Italic /it /itX /Times-Italic inf %%IncludeResource: font Times-Bold /bf /bfX /Times-Bold inf %%IncludeResource: font Times-BoldItalic /bi /biX /Times-BoldItalic inf %%IncludeResource: font Symbol /sy /syX /Symbol inf %%IncludeResource: font PMW-Music /mf /mfX /PMW-Music inf %%EndSetup %%Page: 1 1 %%BeginPageSetup /pagesave save def %%EndPageSetup rm 18 ss(Symphon)258.379 760 s(y 1)-0.27 0 rs rm 12 ss (W)406.612 730 s(illiam Bo)-0.48 0 rs(yce \(1711)-0.12 0 rs rmX 12 ss (\215)sh rm 12 ss(1779\))sh(I)302.002 710 s rm 10 ss(V)65.665 667 s (iolin I)-0.6 0 rs mf 10 ss(!)104.12 663 s(')120.12 669 s(')124.62 675 s bf 11.8 ss(4)129.12 671 s(4)129.12 663.15 s rm 10 ss(V)64 623 s(iolin II) -0.6 0 rs mf 10 ss(!)104.12 619 s(')120.12 625 s(')124.62 631 s bf 11.8 ss(4)129.12 627 s(4)129.12 619.15 s rm 10 ss(V)70.25 579 s(iola) -0.6 0 rs mf 10 ss(#)104.12 575 s(')120.12 579 s(')124.62 585 s bf 11.8 ss(4)129.12 583 s(4)129.12 575.15 s rm 10 ss(Cello)70.225 540 s (Bass)71.615 530 s mf 10 ss(")103.62 531 s(')120.12 533 s(')124.62 539 s bf 11.8 ss(4)129.12 539 s(4)129.12 531.15 s mf 10 ss 16 531(@)104.12 663 b 100.62 679 531 k %1/4 1.884 163.084 526.987 143.77 521 m bi 10 ss(f)143.02 511 s mf 10 ss(6) 143.02 533 s(K)161.934 538.863 s(KL)161.934 547 s 1.838 200.913 528.918 181.599 532.915 m(K)180.849 544.915 s(KL) 180.849 545 s(6)199.763 541 s -1.884 269.059 559.124 237.136 549.228 m(J) 231.286 533.228 s(JL)231.286 529 s(5)262.809 543 s -1.838 306.889 549.002 287.574 553 m(5)281.724 537 s(J)300.639 533.085 s (JL)300.639 533 s(@)320.183 531 s %1/3 bi 10 ss(f)143.02 565 s mf 10 ss(6)143.02 587 s 1.884 200.913 568.876 181.599 574.863 m(K)180.849 586.863 s(KL) 180.849 587 s(6)199.763 581 s -1.814 269.059 599.05 237.136 595.06 m(J) 231.286 579.06 s(JL)231.286 579 s(5)262.809 583 s 1.884 301.789 566.876 282.474 572.863 m(K)281.724 584.863 s(KL) 281.724 587 s(6)300.639 579 s 16 547(@)320.183 575 b %1/2 bi 10 ss(f)143.02 609 s mf 10 ss(5)143.02 625 s(5)180.849 619 s -1.884 269.059 641.124 237.136 631.228 m(J)231.286 615.228 s(JL) 231.286 615 s(5)262.809 625 s -1.838 306.889 631.083 287.574 627.085 m(=) 281.724 613 s(J)281.724 611.085 s(JL)281.724 611 s(5)300.639 615 s 16 591(@)320.183 619 b %1/1 bi 10 ss(f)143.02 652 s mf 10 ss(6)143.02 673 s 1.811 216.675 654.955 181.599 658.953 m 1.811 216.675 657.955 200.513 659.797 m(K)180.849 670.953 s(KL) 180.849 671 s(K)199.763 668.797 s(KL)199.763 669 s(6)215.525 667 s -1.8 269.059 685 237.136 685 m -1.8 253.298 682 237.136 682 m(5) 231.286 669 s(J)247.048 669 s(JL)247.048 667 s(5)262.809 669 s(.) 282.724 667 s(7)300.639 663 s 16 635(@)320.183 663 b %1/0 bf 10 ss(Allegr)129.12 689 s(o)-0.18 0 rs %2/4 1.814 362.313 522.95 330.39 526.94 m mf 10 ss(K)329.64 538.94 s(KL) 329.64 539 s(6)361.163 535 s 1.803 425.359 526.975 393.436 528.954 m(K) 392.686 540.954 s(KL)392.686 541 s(6)424.209 539 s -1.814 493.505 549.01 461.582 553 m(5)455.732 537 s(J)487.255 533.06 s(JL) 487.255 533 s 1.884 526.234 524.876 506.919 530.863 m(K) 506.169 542.863 s(KL)506.169 543 s(6)525.084 537 s(@)543.998 531 s %2/3 (6)329.64 589 s(6)392.686 587 s 1.855 488.405 574.98 456.482 567 m(6) 455.732 579 s(K)487.255 586.88 s(KL)487.255 587 s 1.838 526.234 566.917 506.919 570.915 m(K)506.169 582.915 s(KL) 506.169 583 s(6)525.084 579 s 16 547(@)543.998 575 b %2/2 -1.831 367.413 633.075 335.49 627.106 m(=)329.64 613 s(J) 329.64 611.106 s(JL)329.64 611 s(5)361.163 617 s -1.884 430.459 639.124 398.536 629.228 m(=)392.686 613 s(J) 392.686 613.228 s(JL)392.686 613 s(5)424.209 623 s -1.814 493.505 631.01 461.582 635 m(5)455.732 619 s(J)487.255 615.06 s(JL) 487.255 615 s -1.884 531.334 641.124 512.019 635.137 m(=)506.169 613 s(J) 506.169 619.137 s(JL)506.169 611 s(5)525.084 625 s 528.084 622 542.998 622 -3.474 cv 16 591(@)543.998 619 b %2/1 -1.8 383.174 685 335.49 685 m -1.8 383.174 682 335.49 682 m(J) 329.64 669 s(JL)329.64 665 s(J)345.401 669 s(JL)345.401 667 s(5) 361.163 669 s(J)376.924 669 s(JL)376.924 667 s -1.8 446.22 687 398.536 687 m -1.8 446.22 684 398.536 684 m(J) 392.686 671 s(JL)392.686 667 s(J)408.447 671 s(JL)408.447 669 s(5) 424.209 671 s(J)439.97 671 s(JL)439.97 669 s -1.8 493.505 685 461.582 685 m -1.8 477.743 682 461.582 682 m(5) 455.732 669 s(J)471.493 669 s(JL)471.493 667 s(5)487.255 669 s(.) 507.169 667 s(8)525.084 677 s 16 635(@)543.998 663 b %2/0 (FFFFCCC)104.12 663 s (C)533.998 663 s (FFFFCCC)104.12 619 s (C)533.998 619 s (FFFFCCC)104.12 575 s (C)533.998 575 s (FFFFCCC)104.12 531 s (C)533.998 531 s (!)64 427.5 s(')80 433.5 s(')84.5 439.5 s(!)64 383.5 s(')80 389.5 s(') 84.5 395.5 s(#)64 339.5 s(')80 343.5 s(')84.5 349.5 s(")63.5 295.5 s(') 80 297.5 s(')84.5 303.5 s 16 295.5(@)64 427.5 b 60.5 443.5 295.5 k %3/4 1.884 110.224 287.376 97.75 291.242 m(K)97 303.242 s(KL)97 303.5 s(6) 109.074 299.5 s 1.808 142.422 291.462 121.898 293.452 m(K) 121.148 305.452 s(KL)121.148 305.5 s(6)141.272 303.5 s 1.884 182.669 295.862 162.146 289.5 m(6)161.396 301.5 s(K) 181.519 307.738 s(KL)181.519 311.5 s 1.808 222.917 293.49 202.393 291.5 m(6)201.643 303.5 s(K) 221.767 305.452 s(KL)221.767 305.5 s(@)241.891 295.5 s %3/3 (6)97 349.5 s(6)121.148 345.5 s(6)161.396 347.5 s 1.808 222.917 339.462 202.393 341.452 m(K)201.643 353.452 s(KL) 201.643 353.5 s(6)221.767 351.5 s 16 311.5(@)241.891 339.5 b %3/2 -1.884 115.324 411.624 102.85 407.758 m(J)97 391.758 s(JL)97 389.5 s 90 386.5 100 386.5 -3 cv(5)109.074 395.5 s -1.833 147.522 403.577 126.998 399.596 m(J)121.148 383.596 s(JL) 121.148 383.5 s(5)141.272 387.5 s(7)161.396 383.5 s(5)181.519 389.5 s(7) 221.767 387.5 s 16 355.5(@)241.891 383.5 b %3/1 1.884 110.224 421.366 97.75 417.5 m(6)97 429.5 s(Kxx~K)109.074 433.242 s (KL)109.074 443.5 s -1.8 157.584 451.5 126.998 451.5 m -1.8 157.584 448.5 126.998 448.5 m(J)121.148 435.5 s(JL)121.148 431.5 s(J) 131.21 435.5 s(JL)131.21 433.5 s(5)141.272 435.5 s(J)151.334 435.5 s(JL) 151.334 433.5 s 1.8 192.731 421.5 162.146 421.5 m 1.8 192.731 424.5 162.146 424.5 m(6)161.396 433.5 s(K)171.458 433.5 s(KL) 171.458 435.5 s(K)181.519 433.5 s(KL)181.519 437.5 s(K)191.581 433.5 s(KL) 191.581 435.5 s 1.8 232.979 423.5 202.393 423.5 m 1.8 232.979 426.5 202.393 426.5 m(6)201.643 435.5 s(K)211.705 435.5 s(KL) 211.705 437.5 s(K)221.767 435.5 s(KL)221.767 439.5 s(K)231.829 435.5 s(KL) 231.829 437.5 s 16 399.5(@)241.891 427.5 b %3/0 rm 10 ss(3)64 451.5 s 70.5 449.5 62 449.5 62 460.5 70.5 460.5 70.5 449.5 5 62 449.5 0.666 ll %4/4 1.884 269.201 289.376 248.678 295.738 m mf 10 ss(K)247.928 307.738 s(KL) 247.928 311.5 s(6)268.051 301.5 s 1.833 301.399 291.422 280.876 295.403 m(K)280.126 307.403 s(KL) 280.126 307.5 s(6)300.249 303.5 s 1.808 341.647 295.49 321.123 293.5 m(6) 320.373 305.5 s(K)340.497 307.452 s(KL)340.497 307.5 s 1.884 366.047 293.376 353.321 297.321 m(K)352.571 309.321 s(KL) 352.571 309.5 s(6)364.897 305.5 s(@)376.971 295.5 s %4/3 (6)247.928 351.5 s 1.833 301.399 341.481 280.876 337.5 m(6) 280.126 349.5 s(K)300.249 353.403 s(KL)300.249 353.5 s(6)320.373 351.5 s(.) 353.571 343.5 s(8)364.897 355.5 s 16 311.5(@)376.971 339.5 b %4/2 1.884 269.201 383.862 248.678 377.5 m(6)247.928 389.5 s(K) 268.051 395.738 s(KL)268.051 397.5 s -1.833 306.499 401.519 285.976 405.5 m(5)280.126 389.5 s(J) 300.249 385.597 s(JL)300.249 385.5 s -1.808 346.747 391.51 326.223 393.5 m(=)320.373 377.5 s(5) 320.373 377.5 s(=)340.497 377.5 s(J)340.497 375.548 s(JL)340.497 375.5 s(=) 352.571 377.5 s(7)352.571 377.5 s(8)364.897 391.5 s(>)364.897 391.5 s 16 355.5(@)376.971 383.5 b %4/1 1.894 269.201 432.252 248.678 425.5 m 1.894 259.139 431.941 248.678 428.5 m(6)247.928 437.5 s(K) 257.989 440.81 s(KL)257.989 441.5 s(=)268.051 445.5 s(K)268.051 444.12 s (KL)268.051 447.5 s 1.834 311.461 421.422 280.876 427.416 m 1.834 311.461 424.422 280.876 430.416 m(K)280.126 439.416 s(KL) 280.126 439.5 s(K)290.187 437.445 s(KL)290.187 437.5 s(K) 300.249 435.472 s(KL)300.249 435.5 s(6)310.311 433.5 s -1.833 346.747 443.519 326.223 447.5 m -1.833 336.685 442.471 326.223 444.5 m(5)320.373 431.5 s(J) 330.435 429.548 s(JL)330.435 429.5 s(J)340.497 427.596 s(JL) 340.497 427.5 s(.)353.571 431.5 s(8)364.897 441.5 s(>)364.897 441.5 s 16 399.5(@)376.971 427.5 b %4/0 %5/4 1.8 414.343 297.5 383.758 297.5 m 1.8 414.343 300.5 383.758 300.5 m(K) 383.008 309.5 s(KL)383.008 311.5 s(6)393.069 309.5 s(K)403.131 309.5 s(KL) 403.131 311.5 s(=)413.193 313.5 s(K)413.193 309.5 s(KL)413.193 313.5 s 1.8 454.591 299.5 424.005 299.5 m 1.8 454.591 302.5 424.005 302.5 m(=) 423.255 313.5 s(K)423.255 311.5 s(KL)423.255 315.5 s(=)433.317 313.5 s(K) 433.317 311.5 s(KL)433.317 313.5 s(=)443.379 313.5 s(K)443.379 311.5 s(KL) 443.379 315.5 s(6)453.441 311.5 s 1.803 494.838 295.474 464.253 297.462 m 1.803 494.838 298.474 464.253 300.462 m(K)463.503 309.462 s(KL) 463.503 309.5 s(K)473.565 308.808 s(KL)473.565 311.5 s(K) 483.627 308.154 s(KL)483.627 309.5 s(6)493.688 307.5 s 1.8 535.086 293.5 504.5 293.5 m 1.8 535.086 296.5 504.5 296.5 m(6) 503.75 305.5 s(K)513.812 305.5 s(KL)513.812 307.5 s(K)523.874 305.5 s(KL) 523.874 309.5 s(6)533.936 305.5 s(@)543.998 295.5 s %5/3 1.8 414.343 343.5 383.758 343.5 m 1.8 414.343 346.5 383.758 346.5 m(=) 383.008 357.5 s(K)383.008 355.5 s(KL)383.008 357.5 s(6)393.069 355.5 s(=) 403.131 357.5 s(K)403.131 355.5 s(KL)403.131 357.5 s(=)413.193 357.5 s(K) 413.193 355.5 s(KL)413.193 359.5 s 1.8 454.591 345.5 424.005 345.5 m 1.8 454.591 348.5 424.005 348.5 m(=x=)423.255 357.5 s(K)423.255 357.5 s(KL) 423.255 361.5 s(=)433.317 357.5 s(K)433.317 357.5 s(KL)433.317 359.5 s(=x=) 443.379 357.5 s(K)443.379 357.5 s(KL)443.379 361.5 s(=)453.441 357.5 s(6) 453.441 357.5 s 1.803 494.838 341.474 464.253 343.462 m 1.803 494.838 344.474 464.253 346.462 m(K)463.503 355.462 s(KL) 463.503 355.5 s(=)473.565 357.5 s(K)473.565 354.808 s(KL)473.565 357.5 s(K) 483.627 354.154 s(KL)483.627 355.5 s(6)493.688 353.5 s 1.8 535.086 339.5 504.5 339.5 m 1.8 535.086 342.5 504.5 342.5 m(6) 503.75 351.5 s(K)513.812 351.5 s(KL)513.812 353.5 s(K)523.874 351.5 s(KL) 523.874 355.5 s(6)533.936 351.5 s 16 311.5(@)543.998 339.5 b %5/2 1.8 414.343 379.5 383.758 379.5 m 1.8 414.343 382.5 383.758 382.5 m(K) 383.008 391.5 s(KL)383.008 393.5 s(6)393.069 391.5 s(K)403.131 391.5 s(KL) 403.131 393.5 s(K)413.193 391.5 s(KL)413.193 395.5 s 1.8 454.591 381.5 424.005 381.5 m 1.8 454.591 384.5 424.005 384.5 m(K) 423.255 393.5 s(KL)423.255 397.5 s(K)433.317 393.5 s(KL)433.317 395.5 s(K) 443.379 393.5 s(KL)443.379 397.5 s(6)453.441 393.5 s 1.803 494.838 377.474 464.253 379.462 m 1.803 494.838 380.474 464.253 382.462 m(K)463.503 391.462 s(KL) 463.503 391.5 s(K)473.565 390.808 s(KL)473.565 393.5 s(K) 483.627 390.154 s(KL)483.627 391.5 s(6)493.688 389.5 s -1.8 540.186 407.5 509.6 407.5 m -1.8 540.186 404.5 509.6 404.5 m(J) 503.75 391.5 s(JL)503.75 387.5 s(J)513.812 391.5 s(JL)513.812 389.5 s(5) 523.874 391.5 s(J)533.936 391.5 s(JL)533.936 387.5 s 16 355.5(@)543.998 383.5 b %5/1 (6)383.008 441.5 s 1.884 444.529 421.862 424.005 415.5 m(6) 423.255 427.5 s(>)423.255 427.5 s(K)443.379 433.738 s(KL)443.379 441.5 s(>) 443.379 441.5 s(6)463.503 441.5 s 1.875 525.024 429.493 504.5 423.5 m(6) 503.75 435.5 s(>)503.75 435.5 s(K)523.874 441.376 s(KL)523.874 441.5 s(>) 523.874 441.5 s 16 399.5(@)543.998 427.5 b %5/0 (FFFFCCCCCCC)64 427.5 s (C)533.998 427.5 s (FFFFCCCCCCC)64 383.5 s (C)533.998 383.5 s (FFFFCCCCCCC)64 339.5 s (C)533.998 339.5 s (FFFFCCCCCCC)64 295.5 s (C)533.998 295.5 s (!)64 192 s(')80 198 s(')84.5 204 s(!)64 148 s(')80 154 s(')84.5 160 s(#) 64 104 s(')80 108 s(')84.5 114 s(")63.5 60 s(')80 62 s(')84.5 68 s 16 60(@)64 192 b 60.5 208 60 k %6/4 (6)97 76 s(?)105.4 76 s(7)179.269 62 s(6)206.693 70 s(U)207.693 76 s 1.8 303.824 58 262.289 58 m 1.8 303.824 61 262.289 61 m(6)261.539 70 s 209.693 77 264.539 77 5 cv(K)275.251 70 s(KL)275.251 72 s(K)288.963 70 s (KL)288.963 74 s(6)302.674 70 s(@)316.386 60 s %6/3 (=)97 122 s(6)97 122 s(.)152.846 108 s(8)179.269 116 s(6)206.693 116 s(?) 215.093 116 s(=)288.963 122 s(8)288.963 124 s 16 76(@)316.386 104 b %6/2 1.802 139.284 143.981 97.75 145.974 m 1.802 139.284 146.981 97.75 148.974 m(K)97 157.974 s(KL)97 158 s(K) 110.711 157.316 s(KL)110.711 160 s(K)124.423 156.658 s(KL)124.423 158 s(6) 138.134 156 s -1.8 199.231 170 157.696 170 m -1.8 199.231 167 157.696 167 m(5)151.846 154 s(J)165.558 154 s(JL) 165.558 152 s(5)179.269 154 s(Jww|J)192.981 154 s(L)192.981 144 s -1.8 254.078 160 212.543 160 m -1.8 254.078 157 212.543 157 m(=) 206.693 142 s(J)206.693 144 s(JL)206.693 142 s(5)220.404 144 s(=) 234.116 142 s(J)234.116 144 s(JL)234.116 142 s(=)247.828 142 s(J) 247.828 144 s(JL)247.828 140 s -1.884 295.213 172.124 267.389 163.499 m (=w=)261.539 142 s(J)261.539 147.499 s(JL)261.539 138 s(5)288.963 156 s 16 120(@)316.386 148 b %6/1 1.802 139.284 191.981 97.75 193.974 m 1.802 139.284 194.981 97.75 196.974 m(K)97 205.974 s(KL)97 206 s(K) 110.711 205.316 s(KL)110.711 208 s(K)124.423 204.658 s(KL)124.423 206 s(6) 138.134 204 s 1.8 194.131 186 152.596 186 m 1.8 194.131 189 152.596 189 m(K)151.846 198 s(KL)151.846 202 s(K) 165.558 198 s(KL)165.558 200 s(K)179.269 198 s(KL)179.269 202 s(6) 192.981 198 s -1.8 254.078 214 212.543 214 m -1.8 254.078 211 212.543 211 m(J)206.693 198 s(JL)206.693 196 s(5) 220.404 198 s(J)234.116 198 s(JL)234.116 196 s(J)247.828 198 s(JL) 247.828 194 s(7)261.539 192 s(8)288.963 206 s 16 164(@)316.386 192 b %6/0 rm 10 ss(6)64 216 s 70.5 214 62 214 62 225 70.5 225 70.5 214 5 62 214 0.666 ll %7/4 mf 10 ss(6)324.613 76 s 1.8 421.744 60 380.209 60 m 1.8 421.744 63 380.209 63 m(K)379.459 72 s(KL)379.459 76 s 327.613 82 382.459 82 5 cv(K)393.171 72 s(KL)393.171 74 s(K)406.882 72 s (KL)406.882 76 s(6)420.594 72 s(=)434.306 78 s(6)434.306 78 s 1.8 531.437 62 489.902 62 m 1.8 531.437 65 489.902 65 m(=)489.152 78 s(K) 489.152 74 s(KL)489.152 78 s 437.306 84 492.152 84 5 cv(K)502.864 74 s(KL) 502.864 76 s(=)516.576 78 s(K)516.576 74 s(KL)516.576 78 s(6) 530.287 74 s(@)543.999 60 s %7/3 1.841 353.186 109.981 325.363 104 m(6)324.613 116 s(=)352.036 122 s(K) 352.036 121.895 s(KL)352.036 122 s(.)380.459 108 s(=)406.882 122 s(8) 406.882 122 s 1.841 462.879 111.981 435.056 106 m(6)434.306 118 s(=) 461.729 122 s(K)461.729 123.895 s(KL)461.729 124 s(.)490.152 108 s(=) 516.576 122 s(8)516.576 124 s 16 76(@)543.999 104 b %7/2 1.802 366.897 143.981 325.363 145.974 m 1.802 366.897 146.981 325.363 148.974 m(K)324.613 157.974 s(KL) 324.613 158 s(K)338.324 157.316 s(KL)338.324 160 s(K)352.036 156.658 s(KL) 352.036 158 s(6)365.747 156 s 1.818 408.032 145.978 380.209 142 m(6) 379.459 154 s(K)406.882 157.921 s(KL)406.882 158 s 1.802 476.591 145.981 435.056 147.974 m 1.802 476.591 148.981 435.056 150.974 m(\()430.056 160 s(K) 434.306 159.974 s(KL)434.306 160 s(K)448.017 159.316 s(KL)448.017 162 s(K) 461.729 158.658 s(KL)461.729 160 s(6)475.441 158 s 1.818 517.726 147.978 489.902 144 m(6)489.152 156 s(K)516.576 159.921 s(KL) 516.576 160 s 16 120(@)543.999 148 b %7/1 1.802 366.897 191.981 325.363 193.974 m 1.802 366.897 194.981 325.363 196.974 m(K)324.613 205.974 s(KL) 324.613 206 s 291.963 212 327.613 212 5 cv(K)338.324 205.316 s(KL) 338.324 208 s(K)352.036 204.658 s(KL)352.036 206 s(6)365.747 204 s 1.841 408.032 195.981 380.209 190 m(6)379.459 202 s(K)406.882 207.895 s(KL) 406.882 208 s 1.802 476.591 193.981 435.056 195.974 m 1.802 476.591 196.981 435.056 198.974 m(K)434.306 207.974 s(KL) 434.306 208 s 409.882 214 437.306 214 5 cv(=)448.017 210 s(K) 448.017 207.316 s(KL)448.017 210 s(K)461.729 206.658 s(KL)461.729 208 s(6) 475.441 206 s 1.841 517.726 197.982 489.902 192 m(\()484.902 204 s(6) 489.152 204 s(=)516.576 210 s(K)516.576 209.896 s(KL)516.576 210 s 519.576 216 542.999 216 5 cv 16 164(@)543.999 192 b %7/0 (FFFFCCCCCCC)64 192 s (C)533.999 192 s (FFFFCCCCCCC)64 148 s (C)533.999 148 s (FFFFCCCCCCC)64 104 s (C)533.999 104 s (FFFFCCCCCCC)64 60 s (C)533.999 60 s rm 8 ss(Computer typesetting by Philip Hazel)423.112 30 s pagesave restore showpage %%Page: 2 2 %%BeginPageSetup /pagesave save def %%EndPageSetup rm 10 ss(2 )44.2 800 s( )558 800 s mf 10 ss(!)64 753 s(')80 759 s(') 84.5 765 s(!)64 709 s(')80 715 s(')84.5 721 s(#)64 665 s(')80 669 s(') 84.5 675 s(")63.5 621 s(')80 623 s(')84.5 629 s 16 621(@)64 753 b 60.5 769 621 k %8/4 (=)97 639 s(6)97 641 s 1.8 175.178 625 142.727 625 m 1.8 175.178 628 142.727 628 m(=)141.977 639 s(K)141.977 637 s(KL) 141.977 641 s 100 647 144.977 647 5 cv(=)152.661 639 s(K)152.661 637 s(KL) 152.661 639 s(=)163.344 639 s(K)163.344 637 s(KL)163.344 641 s(6) 174.028 637 s 1.879 201.032 625.002 187.705 629 m(\()182.705 643 s(=x=) 186.955 639 s(K)186.955 641 s(KL)186.955 643 s(=)199.882 639 s(K) 199.882 637.122 s(KL)199.882 639 s 1.807 235.487 630.98 213.72 629 m(=) 212.97 639 s(6)212.97 641 s(=x=)234.337 639 s(K)234.337 642.944 s(KL) 234.337 643 s(@)255.704 621 s %8/3 1.866 119.517 674.985 97.75 669 m(6)97 681 s(=x=)118.367 683 s(K) 118.367 686.875 s(KL)118.367 687 s(.)142.977 669 s(=x=)163.344 683 s(HK) 163.344 685 s(KL)163.344 687 s 1.8 201.032 667 187.705 667 m(6) 186.955 679 s(6)199.882 679 s 1.807 235.487 662.964 213.72 664.944 m(K) 212.97 676.944 s(KL)212.97 677 s(\()230.087 675 s(6)234.337 675 s 16 637(@)255.704 665 b %8/2 1.802 132.444 708.977 97.75 710.954 m 1.802 132.444 711.977 97.75 713.954 m(K)97 722.954 s(KL)97 723 s(K) 107.683 722.346 s(KL)107.683 725 s(K)118.367 721.737 s(KL)118.367 723 s(\() 127.044 721 s(6)131.294 721 s 1.829 164.494 710.983 142.727 707 m(6) 141.977 719 s(K)163.344 722.91 s(KL)163.344 723 s(8)186.955 725 s(\() 195.632 707 s(7)199.882 707 s -1.807 240.587 727.036 218.82 725.056 m(J) 212.97 709.056 s(JL)212.97 709 s(5)234.337 711 s 16 681(@)255.704 709 b %8/1 1.802 132.444 756.977 97.75 758.954 m 1.802 132.444 759.977 97.75 761.954 m(=)97 771 s(K)97 770.954 s(KL) 97 771 s 90 777 100 777 3 cv(=)107.683 771 s(K)107.683 770.346 s(KL) 107.683 773 s(=)118.367 771 s(K)118.367 769.737 s(KL)118.367 771 s(6) 131.294 769 s 1.866 164.494 760.985 142.727 755 m(6)141.977 767 s(=) 163.344 771 s(K)163.344 772.875 s(KL)163.344 773 s(>)163.344 773 s 1.884 201.032 746.876 187.705 751.007 m(=)186.955 771 s(K) 186.955 763.007 s(KL)186.955 773 s(6)199.882 759 s 1.8 246.17 747 213.72 747 m 1.8 246.17 750 213.72 750 m(6)212.97 759 s 202.882 766 215.97 766 2.926 cv(K)223.653 759 s(KL)223.653 763 s(K) 234.337 759 s(KL)234.337 761 s(6)245.02 759 s 16 725(@)255.704 753 b %8/0 rm 10 ss(8)64 777 s 70.5 775 62 775 62 786 70.5 786 70.5 775 5 62 775 0.666 ll %9/4 1.884 282.12 622.876 262.864 628.845 m mf 10 ss(=x=)262.114 639 s(K) 262.114 640.845 s(KL)262.114 645 s(6)280.97 635 s 1.82 307.761 626.996 294.54 625 m(6)293.79 637 s(=)306.611 639 s(K) 306.611 638.935 s(KL)306.611 639 s 1.884 352.738 621.747 330.971 615 m(6) 330.221 627 s(=)351.588 639 s(K)351.588 633.623 s(KL)351.588 641 s 1.88 378.379 618.879 365.159 622.871 m(K)364.409 634.871 s(KL) 364.409 635 s(6)377.229 631 s(@)390.049 621 s %9/3 1.884 282.12 662.876 262.864 668.845 m(=)262.114 683 s(K) 262.114 680.845 s(KL)262.114 685 s(\215)271.17 677 s(')274.67 675 s(\216) 279.17 677 s(6)280.97 675 s 1.82 307.761 658.939 294.54 660.935 m(K) 293.79 672.935 s(KL)293.79 673 s(6)306.611 671 s 1.829 352.738 668.983 330.971 665 m(6)330.221 677 s(K)351.588 680.91 s(KL) 351.588 681 s 1.884 378.379 663.098 365.159 659 m(6)364.409 671 s(K) 377.229 674.974 s(KL)377.229 677 s 16 637(@)390.049 665 b %9/2 1.884 282.12 704.876 262.864 710.845 m(K)262.114 722.845 s(KL) 262.114 723 s(6)280.97 717 s(6)293.79 715 s 1.884 352.738 707.747 330.971 701 m(6)330.221 713 s(K)351.588 719.623 s(KL) 351.588 723 s -1.88 383.479 729.121 370.259 725.129 m(J) 364.409 709.129 s(JL)364.409 709 s(5)377.229 713 s 16 681(@)390.049 709 b %9/1 (=)262.114 771 s(6)262.114 771 s 1.82 320.688 752.939 294.54 756.913 m 1.82 320.688 755.939 307.361 757.965 m(K)293.79 768.913 s(KL) 293.79 769 s(K)306.611 766.965 s(KL)306.611 767 s(\()315.288 765 s(6) 319.538 765 s 1.8 352.738 753 330.971 753 m 1.8 342.055 756 330.971 756 m(K)330.221 765 s(KL)330.221 767 s(6) 340.905 765 s(K)351.588 765 s(KL)351.588 767 s(.)365.409 757 s(8) 377.229 761 s 16 725(@)390.049 753 b %9/0 %10/4 1.824 421.219 620.934 397.209 624.919 m(K)396.459 636.919 s(KL) 396.459 637 s(6)420.069 633 s 1.807 463.953 624.964 442.186 626.944 m(=) 441.436 639 s(K)441.436 638.944 s(KL)441.436 639 s(6)462.803 637 s 1.829 506.688 618.927 484.92 622.91 m(K)484.17 634.91 s(KL)484.17 635 s(6) 505.538 631 s 1.884 532.328 622.876 519.108 626.974 m(=)518.358 639 s(K) 518.358 638.974 s(KL)518.358 641 s(6)531.178 635 s(@)543.998 621 s %10/3 (6)396.459 673 s(6)441.436 671 s 1.884 506.688 671.748 484.92 665 m(6) 484.17 677 s(=)505.538 683 s(K)505.538 683.624 s(KL)505.538 685 s 1.88 532.328 664.879 519.108 668.871 m(K)518.358 680.871 s(KL) 518.358 681 s(6)531.178 677 s 16 637(@)543.998 665 b %10/2 -1.854 426.319 731.1 402.309 725.122 m(J)396.459 709.122 s(JL) 396.459 709 s(5)420.069 715 s -1.884 469.053 735.124 447.286 728.377 m(J) 441.436 712.377 s(JL)441.436 711 s(\()458.553 719 s(5)462.803 719 s 1.829 506.688 700.927 484.92 704.91 m(K)484.17 716.91 s(KL)484.17 717 s(6) 505.538 713 s 1.884 532.328 701.098 519.108 697 m(6)518.358 709 s(Kxx~K) 531.178 712.974 s(KL)531.178 723 s 534.178 729 542.998 729 2.646 cv 16 681(@)543.998 709 b %10/1 1.8 431.903 751 397.209 751 m 1.8 431.903 754 397.209 754 m(6) 396.459 763 s(\()405.136 765 s(K)409.386 763 s(KL)409.386 765 s(K) 420.069 763 s(KL)420.069 767 s(K)430.753 763 s(KL)430.753 765 s 1.8 474.637 753 442.186 753 m 1.8 474.637 756 442.186 756 m(6) 441.436 765 s(K)452.12 765 s(KL)452.12 767 s(K)462.803 765 s(KL) 462.803 769 s(K)473.487 765 s(KL)473.487 767 s 1.8 506.688 753 484.92 753 m 1.8 496.004 756 484.92 756 m(K)484.17 765 s (KL)484.17 767 s(6)494.854 765 s(K)505.538 765 s(KL)505.538 767 s(.) 519.358 757 s(=x=)531.178 771 s(HK)531.178 773 s(KL)531.178 775 s 16 725(@)543.998 753 b %10/0 (FFFFCCCCCCC)64 753 s (C)533.998 753 s (FFFFCCCCCCC)64 709 s (C)533.998 709 s (FFFFCCCCCCC)64 665 s (C)533.998 665 s (FFFFCCCCCCC)64 621 s (C)533.998 621 s (!)64 566 s(')80 572 s(')84.5 578 s(!)64 522 s(')80 528 s(')84.5 534 s(#) 64 478 s(')80 482 s(')84.5 488 s(")63.5 434 s(')80 436 s(')84.5 442 s 16 434(@)64 566 b 60.5 582 434 k %11/4 1.867 112.177 433.889 97.75 437.885 m(K)97 449.885 s(KL)97 450 s(6) 111.027 446 s 1.884 149.583 425.876 125.805 433.247 m(=)125.055 452 s(K) 125.055 445.247 s(KL)125.055 452 s(6)148.433 438 s 1.8 243.097 425.988 172.561 427.963 m(K)171.811 439.963 s(KL) 171.811 440 s(Kxx~K)195.19 439.309 s(KL)195.19 450 s(\()214.318 442 s(K) 218.568 438.654 s(KL)218.568 442 s(6)241.947 438 s(@)265.325 434 s %11/3 (=)97 496 s(6)97 496 s 1.825 149.583 475.933 125.805 479.927 m(K) 125.055 491.927 s(KL)125.055 492 s(\()144.183 488 s(6)148.433 488 s 1.8 196.34 478 172.561 478 m(6)171.811 490 s(6)195.19 490 s 1.8 243.097 472 219.318 472 m(6)218.568 484 s(6)241.947 484 s 16 450(@)265.325 478 b %11/2 1.884 112.177 528.472 97.75 524 m(6)97 536 s 90 542 100 542 3 cv(=) 111.027 540 s(K)111.027 540.348 s(KL)111.027 542 s 1.806 149.583 515.966 125.805 517.963 m(K)125.055 529.963 s(KL) 125.055 530 s(6)148.433 528 s 1.856 196.34 519.992 172.561 514 m(6) 171.811 526 s(K)195.19 531.891 s(KL)195.19 532 s -1.825 248.197 536.006 224.418 540 m(5)218.568 524 s(\()237.697 520 s(J) 241.947 520.073 s(JL)241.947 520 s 16 494(@)265.325 522 b %11/1 1.884 112.177 568.472 97.75 564 m(6)97 576 s(=x=)111.027 584 s(K) 111.027 580.348 s(KL)111.027 590 s 1.8 161.272 566 125.805 566 m 1.8 161.272 569 125.805 569 m(\()120.805 578 s(6)125.055 578 s(K) 136.744 578 s(KL)136.744 580 s(K)148.433 578 s(KL)148.433 582 s(K) 160.122 578 s(KL)160.122 580 s 1.8 208.029 568 172.561 568 m 1.8 208.029 571 172.561 571 m(6)171.811 580 s(K)183.501 580 s(KL) 183.501 582 s(=)195.19 584 s(K)195.19 580 s(KL)195.19 584 s(K) 206.879 580 s(KL)206.879 582 s 1.894 254.786 552.177 219.318 563.845 m 1.894 254.786 555.177 219.318 566.845 m(K)218.568 575.845 s(KL) 218.568 582 s(6)230.257 572 s(K)241.947 568.154 s(KL)241.947 570 s(K) 253.636 564.308 s(KL)253.636 568 s 16 538(@)265.325 566 b %11/0 rm 10 ss(11)64 590 s 75.5 588 62 588 62 599 75.5 599 75.5 588 5 62 588 0.666 ll %12/4 -1.884 292.907 455.438 278.188 460 m mf 10 ss(5)272.338 444 s(J) 286.657 439.562 s(JL)286.657 434 s -1.817 330.313 454.055 315.886 452.065 m(J)310.036 436.065 s(JL) 310.036 436 s(5)324.063 438 s(5)338.383 430 s(-)358.087 438 s (B)383.35 434 s(@)381.45 434 s(xI)378.95 434 s(@)383.35 434 s %12/3 (6)272.338 484 s 1.817 325.213 471.945 310.786 473.935 m(K) 310.036 485.935 s(KL)310.036 486 s(6)324.063 484 s(6)338.383 484 s(-) 358.087 482 s 16 450(B)383.35 478 b 16 450(@)381.45 478 b(xI) 378.95 478 s 16 450(@)383.35 478 b %12/2 (7)272.338 522 s(5)286.657 522 s(\()319.388 520 s(7)324.063 520 s(5) 338.383 522 s(-)358.087 526 s 16 494(B)383.35 522 b 16 494(@)381.45 522 b(xI)378.95 522 s 16 494(@)383.35 522 b %12/1 -1.82 304.597 582.175 278.188 586.162 m -1.82 304.597 579.175 292.507 581 m(J)272.338 570.162 s(JL)272.338 570 s(5) 286.657 568 s(J)298.347 566.235 s(JL)298.347 566 s(5)310.036 568 s(5) 338.383 566 s(-)358.087 570 s 16 538(B)383.35 566 b 16 538(@)381.45 566 b(xI)378.95 566 s 16 538(@)383.35 566 b %12/0 %13/4 bi 10 ss(p)391.363 424 s mf 10 ss(.)391.363 438 s 1.8 451.176 432 405.14 432 m(6)404.39 444 s(>)404.39 446 s(=x=) 435.998 452 s(Kxx~K)435.998 444 s(KL)435.998 458 s(>)435.998 458 s(6) 450.026 444 s(>)450.026 446 s(.)465.054 438 s 1.8 521.77 432 478.831 432 m(6)478.081 444 s(>)478.081 446 s(=x=) 497.241 452 s(Kxx~K)497.241 444 s(KL)497.241 458 s(>)497.241 458 s(6) 520.62 444 s(>)520.62 446 s(@)543.998 434 s %13/3 bi 10 ss(p)391.363 468 s mf 10 ss(.)391.363 482 s -1.8 456.276 506 410.24 506 m(Jww|J)404.39 490 s(JL)404.39 476 s(>) 404.39 468 s(5)435.998 490 s(>)435.998 482 s(Jww|J)450.026 490 s(JL) 450.026 476 s(>)450.026 468 s(.)465.054 482 s -1.8 526.87 506 483.931 506 m(Jww|J)478.081 490 s(JL)478.081 476 s(>) 478.081 468 s(5)497.241 490 s(>)497.241 482 s(Jww|J)520.62 490 s(JL) 520.62 476 s(>)520.62 468 s 16 450(@)543.998 478 b %13/2 bi 10 ss(p)391.363 512 s mf 10 ss(.)391.363 526 s -1.8 456.276 546 410.24 546 m(')399.89 526 s(J)404.39 530 s(JL) 404.39 526 s(>)404.39 518 s(5)435.998 530 s(>)435.998 522 s(J) 450.026 530 s(JL)450.026 526 s(>)450.026 518 s(.)465.054 526 s -1.8 526.87 544 483.931 544 m(Jww|J)478.081 528 s(L)478.081 518 s(>) 478.081 510 s(\()492.991 528 s(5)497.241 528 s(>)497.241 518 s(\() 516.37 514 s(=)520.62 516 s(Jww|J)520.62 528 s(JL)520.62 514 s(>) 520.62 506 s 16 494(@)543.998 522 b %13/1 1.8 424.7 566 391.113 566 m 1.8 424.7 569 412.611 569 m 1.8 424.7 572 412.611 572 m bi 10 ss(p)390.363 556 s mf 10 ss(K) 390.363 578 s(KL)390.363 580 s(?)398.763 582 s(\210)390.363 588 s(\() 407.611 578 s(6)411.861 578 s(K)423.55 578 s(KL)423.55 580 s 1.884 451.176 561.876 436.748 566.348 m(')431.498 584 s(=)435.998 584 s(K) 435.998 578.348 s(KL)435.998 584 s(>)435.998 584 s(6)450.026 574 s(>) 450.026 574 s 1.807 486.702 561.992 464.804 560 m 1.807 486.702 564.992 481.702 564.537 m(\()459.804 572 s(6)464.054 572 s(?) 472.454 574 s(\210)464.054 585 s(K)485.552 573.956 s(KL)485.552 574 s 1.8 533.459 560 497.991 560 m 1.8 533.459 563 497.991 563 m(K) 497.241 572 s(KL)497.241 576 s(6)508.931 572 s(K)520.62 572 s(KL) 520.62 574 s(K)532.309 572 s(KL)532.309 576 s 16 538(@)543.998 566 b %13/0 (FFFFCCCCCCC)64 566 s (C)533.998 566 s (FFFFCCCCCCC)64 522 s (C)533.998 522 s (FFFFCCCCCCC)64 478 s (C)533.998 478 s (FFFFCCCCCCC)64 434 s (C)533.998 434 s (!)64 379 s(')80 385 s(')84.5 391 s(!)64 335 s(')80 341 s(')84.5 347 s(#) 64 291 s(')80 295 s(')84.5 301 s(")63.5 247 s(')80 249 s(')84.5 255 s 16 247(@)64 379 b 60.5 395 247 k %14/4 1.884 125.117 251.483 97.75 243 m(6)97 255 s(>)97 255 s(=x=) 123.967 265 s(K)123.967 263.359 s(KL)123.967 269 s(>)123.967 269 s 1.875 179.051 246.883 151.684 254.874 m(=)150.934 265 s(K) 150.934 266.874 s(KL)150.934 267 s(>)150.934 267 s(6)177.901 259 s(>) 177.901 259 s 1.842 232.985 246.912 205.618 252.905 m(=)204.868 265 s(K) 204.868 264.905 s(KL)204.868 265 s(>)204.868 265 s(6)231.835 259 s(>) 231.835 259 s 1.819 286.92 238.942 259.553 242.937 m(K)258.803 254.937 s (KL)258.803 255 s(>)258.803 255 s(6)285.77 251 s(>)285.77 251 s (@)312.737 247 s %14/3 1.884 125.117 287.483 97.75 279 m(6)97 291 s(>)97 291 s(K) 123.967 299.359 s(KL)123.967 305 s(>)123.967 305 s 1.842 179.051 292.993 151.684 287 m(6)150.934 299 s(>)150.934 299 s(K) 177.901 304.905 s(KL)177.901 305 s(>)177.901 305 s(6)204.868 305 s 1.8 286.92 293 259.553 293 m(6)258.803 305 s(>)258.803 305 s(6) 285.77 305 s(>)285.77 305 s 16 263(@)312.737 291 b %14/2 (.)98 339 s(6)123.967 343 s(\()173.226 341 s(8)177.901 341 s(6) 204.868 343 s(z.w{{y.)259.803 339 s 1.8 300.403 333 273.036 333 m 1.8 300.403 336 273.036 336 m(K)272.286 345 s(KL)272.286 347 s(6) 285.77 345 s(K)299.253 345 s(KL)299.253 347 s 16 307(@)312.737 335 b %14/1 1.8 138.6 373 97.75 373 m 1.8 138.6 376 97.75 376 m(K)97 385 s(KL) 97 387 s(\()106.233 385 s(6)110.483 385 s(K)123.967 385 s(KL) 123.967 387 s(Kxx~K)137.45 385 s(L)137.45 395 s 1.8 192.535 377 151.684 377 m 1.8 192.535 380 151.684 380 m(K) 150.934 389 s(KL)150.934 393 s(K)164.417 389 s(KL)164.417 391 s(K) 177.901 389 s(KL)177.901 393 s(6)191.385 389 s 1.802 246.469 376.981 205.618 378.941 m 1.802 246.469 379.981 205.618 381.941 m(K)204.868 390.941 s(KL) 204.868 391 s(K)218.352 390.294 s(KL)218.352 393 s(K)231.835 389.647 s(KL) 231.835 391 s(6)245.319 389 s 1.833 300.403 382.965 259.553 375 m 1.833 300.403 385.965 259.553 378 m(6)258.803 387 s(K)272.286 389.629 s(KL) 272.286 395 s(K)285.77 392.258 s(KL)285.77 393 s(K)299.253 394.887 s(KL) 299.253 395 s 16 351(@)312.737 379 b %14/0 rm 10 ss(14)64 403 s 75.5 401 62 401 62 412 75.5 412 75.5 401 5 62 401 0.666 ll %15/4 1.804 351.139 246.977 323.676 245 m mf 10 ss(6)322.926 257 s(>) 322.926 259 s(K)349.989 258.948 s(KL)349.989 259 s(>)349.989 259 s 1.819 405.074 244.942 377.706 248.937 m(')372.456 261 s(K) 376.956 260.937 s(KL)376.956 261 s(>)376.956 261 s(6)403.924 257 s(>) 403.924 259 s(6)430.891 259 s 1.8 531.665 247 490.814 247 m 1.8 531.665 250 490.814 250 m(6)490.064 259 s 433.891 265 493.064 265 5 cv(\()499.298 261 s(K)503.548 259 s(KL)503.548 261 s(\()512.781 263 s(K) 517.031 259 s(KL)517.031 263 s(6)530.515 259 s(@)543.999 247 s %15/3 (6)322.926 303 s 1.842 405.074 290.993 377.706 285 m(6)376.956 297 s(>) 376.956 299 s(K)403.924 302.905 s(KL)403.924 303 s(>)403.924 303 s(6) 430.891 299 s 1.819 518.181 282.942 490.814 286.937 m(K) 490.064 298.937 s(KL)490.064 299 s(>)490.064 299 s(\()512.356 295 s(6) 517.031 295 s(>)517.031 295 s 16 263(@)543.999 291 b %15/2 1.802 364.623 328.981 323.676 330.946 m 1.802 364.623 331.981 359.623 332.221 m(K)322.926 342.946 s(KL) 322.926 343 s(?)331.326 343 s(\215)352.693 343 s(')356.193 341 s(\216) 360.693 343 s(6)363.473 341 s(')372.456 339 s(5)376.956 339 s -1.842 464.108 347.007 436.741 353 m(5)430.891 337 s(>)430.891 327 s(J) 457.858 331.095 s(JL)457.858 331 s(>)457.858 323 s(\()485.814 327 s(=) 490.064 329 s(7)490.064 327 s(>)490.064 319 s(8)517.031 345 s(>) 517.031 347 s 16 307(@)543.999 335 b %15/1 1.8 364.623 383 323.676 383 m 1.8 364.623 386 323.676 386 m(') 318.426 397 s(=)322.926 397 s(K)322.926 395 s(KL)322.926 397 s(6) 336.506 395 s(=)349.989 397 s(K)349.989 395 s(KL)349.989 397 s(6) 363.473 395 s 1.819 418.557 374.941 377.706 380.905 m 1.819 418.557 377.941 377.706 383.905 m(K)376.956 392.905 s(KL) 376.956 393 s(K)390.44 390.937 s(KL)390.44 391 s(K)403.924 388.968 s(KL) 403.924 389 s(6)417.407 387 s 1.801 477.731 370.983 431.641 372.964 m 1.801 477.731 373.983 431.641 375.964 m(\()426.641 385 s(K) 430.891 384.964 s(KL)430.891 385 s(K)444.374 384.385 s(KL)444.374 387 s(K) 457.858 383.805 s(KL)457.858 385 s(\215\(\216)466.531 383 s(6) 476.581 383 s 1.884 518.181 377.483 490.814 369 m(6)490.064 381 s(K) 517.031 389.359 s(KL)517.031 395 s(>)517.031 395 s 16 351(@)543.999 379 b %15/0 (FFFFCCCCCCC)64 379 s (C)533.999 379 s (FFFFCCCCCCC)64 335 s (C)533.999 335 s (FFFFCCCCCCC)64 291 s (C)533.999 291 s (FFFFCCCCCCC)64 247 s (C)533.999 247 s (!)64 192 s(')80 198 s(')84.5 204 s(!)64 148 s(')80 154 s(')84.5 160 s(#) 64 104 s(')80 108 s(')84.5 114 s(")63.5 60 s(')80 62 s(')84.5 68 s 16 60(@)64 192 b 60.5 208 60 k %16/4 1.8 137.776 64 97.75 64 m 1.8 137.776 67 97.75 67 m(=)97 78 s(K)97 76 s(KL) 97 78 s(\()105.958 76 s(6)110.208 76 s(=)123.417 78 s(K)123.417 76 s(KL) 123.417 78 s(=)136.626 78 s(K)136.626 76 s(KL)136.626 80 s 1.8 190.612 66 150.585 66 m 1.8 190.612 69 150.585 69 m(=x=)149.835 78 s(K) 149.835 78 s(KL)149.835 82 s(=)163.044 78 s(K)163.044 78 s(KL) 163.044 80 s(=x=)176.253 78 s(K)176.253 78 s(KL)176.253 82 s(=) 189.462 78 s(6)189.462 78 s 1.801 254.554 61.983 208.974 63.942 m 1.801 254.554 64.983 208.974 66.942 m(K)208.224 75.942 s(KL)208.224 76 s(=) 221.433 78 s(K)221.433 75.375 s(KL)221.433 78 s(\215\(\216)230.145 76 s(K) 240.195 74.568 s(KL)240.195 76 s(6)253.404 74 s 1.819 294.181 63.995 267.363 60 m(6)266.613 72 s(>)266.613 72 s(\215\(\216) 282.981 76 s(K)293.031 75.936 s(KL)293.031 76 s(>)293.031 76 s (@)319.449 60 s %16/3 -1.802 142.876 128.02 102.85 126.059 m -1.802 142.876 125.02 102.85 123.059 m(J)97 110.059 s(JL)97 110 s(\() 105.958 108 s(J)110.208 110.706 s(JL)110.208 108 s(J)123.417 111.353 s(JL) 123.417 110 s(5)136.626 112 s 1.8 190.612 98 150.585 98 m 1.8 190.612 101 150.585 101 m(K)149.835 110 s(KL)149.835 114 s(K) 163.044 110 s(KL)163.044 112 s(K)176.253 110 s(KL)176.253 114 s(6) 189.462 110 s -1.8 259.654 126 214.074 126 m -1.8 259.654 123 214.074 123 m(\215\(\216)198.174 108 s(J)208.224 110 s(JL) 208.224 108 s(5)221.433 110 s(J)240.195 110 s(JL)240.195 108 s(J) 253.404 110 s(JL)253.404 106 s -1.819 299.281 124.059 272.463 120.064 m(J) 266.613 104.064 s(JL)266.613 104 s(>)266.613 96 s(5)293.031 108 s(>) 293.031 100 s 16 76(@)319.449 104 b %16/2 1.802 137.776 145.98 97.75 147.941 m 1.802 137.776 148.98 97.75 150.941 m(K)97 159.941 s(KL)97 160 s(K) 110.208 159.294 s(KL)110.208 162 s(K)123.417 158.647 s(KL)123.417 160 s(6) 136.626 158 s 1.8 190.612 142 150.585 142 m 1.8 190.612 145 150.585 145 m(K)149.835 154 s(KL)149.835 156 s(\() 158.794 154 s(6)163.044 154 s(K)176.253 154 s(KL)176.253 156 s(K) 189.462 154 s(KL)189.462 160 s 1.801 254.554 143.983 208.974 145.942 m 1.801 254.554 146.983 208.974 148.942 m(K)208.224 157.942 s(KL) 208.224 158 s(K)221.433 157.375 s(KL)221.433 160 s(K)240.195 156.568 s(KL) 240.195 158 s(6)253.404 156 s 1.819 294.181 145.995 267.363 142 m(6) 266.613 154 s(K)293.031 157.936 s(KL)293.031 158 s 16 120(@)319.449 148 b %16/1 (6)97 208 s 1.884 177.403 190.313 150.585 182 m(6)149.835 194 s(>) 149.835 196 s(K)176.253 202.189 s(KL)176.253 208 s(>)176.253 208 s(6) 208.224 208 s(z.w{{y.)267.613 196 s 1.819 307.39 193.941 280.572 197.936 m 1.819 307.39 196.941 280.572 200.936 m(')275.322 210 s(=)279.822 210 s(K) 279.822 209.936 s(KL)279.822 210 s(K)293.031 207.968 s(KL)293.031 208 s(6) 306.24 206 s 16 164(@)319.449 192 b %16/0 rm 10 ss(16)64 216 s 75.5 214 62 214 62 225 75.5 225 75.5 214 5 62 214 0.666 ll %17/4 1.884 354.941 51.876 328.124 60.189 m mf 10 ss(=)327.374 78 s(K) 327.374 72.189 s(KL)327.374 78 s(>)327.374 78 s(6)353.791 64 s(>) 353.791 64 s 1.884 407.777 62.313 380.959 54 m(6)380.209 66 s(>) 380.209 68 s(=)406.627 78 s(K)406.627 74.189 s(KL)406.627 80 s(>) 406.627 80 s 1.884 450.045 55.876 433.795 60.913 m(=x=)433.045 78 s(K) 433.045 72.913 s(KL)433.045 82 s(>)433.045 82 s(6)448.895 68 s(>) 448.895 68 s 1.808 505.522 61.962 465.496 58 m(6)464.746 70 s(>) 464.746 72 s(')499.422 74 s(K)504.372 73.922 s(KL)504.372 74 s(>) 504.372 74 s(@)543.999 60 s %17/3 1.878 354.941 105.991 328.124 98 m(6)327.374 110 s(>)327.374 112 s(K) 353.791 117.872 s(KL)353.791 118 s(>)353.791 118 s 1.819 407.777 103.995 380.959 100 m(6)380.209 112 s(>)380.209 112 s(K) 406.627 115.936 s(KL)406.627 116 s(>)406.627 116 s 1.853 450.045 97.902 433.795 101.899 m(K)433.045 113.899 s(KL) 433.045 114 s(>)433.045 116 s(6)448.895 110 s(>)448.895 112 s 1.835 505.522 111.965 465.496 104 m(6)464.746 116 s(>)464.746 116 s(=) 504.372 122 s(K)504.372 123.885 s(KL)504.372 124 s(>)504.372 124 s 16 76(@)543.999 104 b %17/2 (7)327.374 150 s(6)353.791 156 s(\()401.952 154 s(8)406.627 154 s 1.884 450.045 149.037 433.795 144 m(6)433.045 156 s(K)448.895 160.913 s(KL) 448.895 164 s(6)464.746 156 s 467.746 162 542.999 162 5 cv 16 120(@)543.999 148 b %17/1 1.8 368.15 188 328.124 188 m 1.8 368.15 191 328.124 191 m(K) 327.374 200 s(KL)327.374 204 s(K)340.582 200 s(KL)340.582 202 s(K) 353.791 200 s(KL)353.791 204 s(6)367 200 s 1.8 420.986 190 380.959 190 m 1.8 420.986 193 380.959 193 m(K)380.209 202 s(KL)380.209 206 s(K) 393.418 202 s(KL)393.418 204 s(K)406.627 202 s(KL)406.627 206 s(6) 419.836 202 s 1.884 450.045 201.037 433.795 196 m(6)433.045 208 s(=x=) 448.895 210 s(K)448.895 212.913 s(KL)448.895 214 s 1.819 479.104 197.942 465.496 199.928 m 1.819 479.104 200.942 465.496 202.928 m 1.819 479.104 203.942 465.496 205.928 m(=)464.746 210 s(K) 464.746 211.928 s(KL)464.746 212 s(')473.454 210 s(=)477.954 210 s(6) 477.954 210 s(z.w{{y.)492.163 196 s 1.819 518.731 193.942 505.122 195.928 m 1.819 518.731 196.942 505.122 198.928 m 1.819 518.731 199.942 505.122 201.928 m(K)504.372 207.928 s(KL) 504.372 208 s(6)517.581 206 s(z.w{{y.)531.79 196 s 16 164(@)543.999 192 b %17/0 (FFFFCCCCCCC)64 192 s (C)533.999 192 s (FFFFCCCCCCC)64 148 s (C)533.999 148 s (FFFFCCCCCCC)64 104 s (C)533.999 104 s (FFFFCCCCCCC)64 60 s (C)533.999 60 s pagesave restore showpage %%Page: 3 3 %%BeginPageSetup /pagesave save def %%EndPageSetup rm 10 ss( )44.2 800 s( 3)553 800 s mf 10 ss(!)64 753 s(')80 759 s(') 84.5 765 s(!)64 709 s(')80 715 s(')84.5 721 s(#)64 665 s(')80 669 s(') 84.5 675 s(")63.5 621 s(')80 623 s(')84.5 629 s 16 621(@)64 753 b 60.5 769 621 k %18/4 1.806 121.188 622.992 97.75 621 m(6)97 633 s(>)97 633 s(')115.538 635 s(K) 120.038 634.958 s(KL)120.038 635 s(>)120.038 635 s 1.819 150.25 620.998 136.837 619 m(6)136.087 631 s(>)136.087 633 s(K) 149.1 632.938 s(KL)149.1 633 s(>)149.1 633 s 1.884 176.275 617.158 162.862 613 m(6)162.112 625 s(>)162.112 625 s(K) 175.125 629.034 s(KL)175.125 633 s(>)175.125 633 s 1.878 212.326 618.88 198.913 622.877 m(K)198.163 634.877 s(KL) 198.163 635 s(>)198.163 635 s(6)211.176 631 s(>)211.176 633 s (@)224.188 621 s %18/3 1.884 121.188 658.876 97.75 666.141 m(K)97 678.141 s(KL)97 679 s(>) 97 679 s(6)120.038 671 s(>)120.038 673 s 1.819 150.25 666.94 136.837 668.938 m(')131.587 681 s(K) 136.087 680.938 s(KL)136.087 681 s(>)136.087 681 s(6)149.1 679 s(>) 149.1 679 s 1.805 188.469 664.969 162.862 666.966 m 1.805 188.469 667.969 183.469 668.359 m(K)162.112 678.966 s(KL) 162.112 679 s(?)170.512 681 s(>)162.112 679 s(6)187.319 677 s(>) 187.319 677 s 1.884 212.326 667.158 198.913 663 m(6)198.163 675 s(>) 198.163 677 s(K)211.176 679.034 s(KL)211.176 681 s(>)211.176 681 s 16 637(@)224.188 665 b %18/2 1.822 110.344 702.937 97.75 704.926 m 1.822 110.344 705.937 97.75 707.926 m(K)97 716.926 s(KL)97 717 s 90 723 100 723 3 cv(\()104.944 715 s(6)109.194 715 s(6)120.038 717 s(8) 149.1 715 s -1.894 193.569 724.576 167.962 733 m -1.894 193.569 721.576 180.975 725.719 m(5)162.112 717 s(J) 175.125 712.719 s(JL)175.125 707 s(J)187.319 708.707 s(JL)187.319 705 s -1.884 217.426 733.124 204.013 728.966 m(=)198.163 703 s(J) 198.163 712.966 s(JL)198.163 703 s(5)211.176 717 s 16 681(@)224.188 709 b %18/1 1.804 126.393 754.976 97.75 753 m 1.804 126.393 757.976 121.393 757.631 m(6)97 765 s(?)105.4 765 s(K) 125.243 766.948 s(KL)125.243 767 s(6)136.087 763 s 1.8 188.469 747 162.862 747 m 1.8 188.469 750 175.875 750 m(K) 162.112 759 s(KL)162.112 765 s(Kxx~K)175.125 759 s(L)175.125 769 s(\() 183.069 759 s(6)187.319 759 s 1.884 212.326 753.158 198.913 749 m(6) 198.163 761 s(>)198.163 761 s(K)211.176 765.034 s(KL)211.176 767 s(>) 211.176 767 s 16 725(@)224.188 753 b %18/0 rm 10 ss(18)64 777 s 75.5 775 62 775 62 786 75.5 786 75.5 775 5 62 775 0.666 ll %19/4 1.806 254.882 622.992 231.444 621 m mf 10 ss(6)230.694 633 s(>) 230.694 633 s(')249.232 635 s(K)253.732 634.958 s(KL)253.732 635 s(>) 253.732 635 s 1.819 283.944 620.998 270.531 619 m(6)269.781 631 s(>) 269.781 633 s(K)282.794 632.938 s(KL)282.794 633 s(>)282.794 633 s 1.884 309.969 617.158 296.556 613 m(6)295.806 625 s(>)295.806 625 s(=) 308.819 639 s(K)308.819 629.034 s(KL)308.819 639 s(>)308.819 639 s 1.829 344.669 618.928 322.582 622.925 m(\()317.582 635 s(K) 321.832 634.925 s(KL)321.832 635 s(>)321.832 635 s(6)343.519 631 s(>) 343.519 633 s(@)365.207 621 s %19/3 1.857 254.882 672.976 231.444 667 m(6)230.694 679 s(>)230.694 679 s(=) 253.732 683 s(K)253.732 684.874 s(KL)253.732 685 s(>)253.732 685 s 1.819 283.944 666.94 270.531 668.938 m(')265.281 681 s(K) 269.781 680.938 s(KL)269.781 681 s(>)269.781 681 s(6)282.794 679 s(>) 282.794 679 s 1.878 309.969 662.88 296.556 666.877 m(K)295.806 678.877 s (KL)295.806 679 s(>)295.806 679 s(6)308.819 675 s(>)308.819 677 s 1.884 344.669 665.846 322.582 659 m(6)321.832 671 s(>)321.832 673 s(\() 339.269 681 s(K)343.519 677.722 s(KL)343.519 681 s(>)343.519 681 s 16 637(@)365.207 665 b %19/2 -1.822 249.138 731.011 236.544 733 m -1.822 249.138 728.011 236.544 730 m(5)230.694 717 s 214.176 715 233.694 715 -4.855 cv(\()238.638 715 s(J)242.888 715.074 s(JL) 242.888 715 s(6)253.732 717 s(8)282.794 715 s(6)295.806 717 s(z.w{{y.) 322.832 713 s 1.829 355.513 704.928 333.425 708.925 m 1.829 355.513 707.928 333.425 711.925 m(K)332.675 720.925 s(KL) 332.675 721 s(K)343.519 718.963 s(KL)343.519 719 s(6)354.363 717 s 16 681(@)365.207 709 b %19/1 1.804 260.087 754.976 231.444 753 m 1.804 260.087 757.976 255.087 757.631 m(6)230.694 765 s(?)239.094 765 s(K) 258.937 766.948 s(KL)258.937 767 s(6)269.781 763 s(6)295.806 761 s(z.w{{y.) 322.832 757 s 1.829 355.513 752.928 333.425 756.925 m 1.829 355.513 755.928 333.425 759.925 m(K)332.675 768.925 s(KL) 332.675 769 s(K)343.519 766.963 s(KL)343.519 767 s(6)354.363 765 s 16 725(@)365.207 753 b %19/0 %20/4 1.884 402.008 614.876 379.863 621.74 m(K)379.113 633.74 s(KL) 379.113 637 s(>)379.113 637 s(6)400.858 627 s(>)400.858 629 s 1.884 436.708 617.157 423.296 613 m(6)422.546 625 s(>)422.546 625 s(K) 435.558 629.033 s(KL)435.558 631 s(>)435.558 633 s(5)457.246 623 s(.) 501.622 625 s(7)522.31 627 s(@)543.997 621 s %20/3 1.8 402.008 665 379.863 665 m(6)379.113 677 s(>)379.113 677 s(6) 400.858 677 s(>)400.858 677 s 1.819 436.708 664.94 423.296 666.938 m(K) 422.546 678.938 s(KL)422.546 679 s(>)422.546 679 s(6)435.558 677 s(>) 435.558 677 s(6)457.246 677 s(.)501.622 669 s(8)522.31 677 s 16 637(@)543.997 665 b %20/2 -1.827 396.264 729.012 384.963 731 m -1.827 396.264 726.012 384.963 728 m(\215)369.313 717 s(')372.813 715 s(\216) 377.313 717 s(5)379.113 715 s(J)390.014 713.082 s(JL)390.014 713 s(5) 400.858 715 s(7)435.558 713 s(5)457.246 715 s(z.w{{y.)501.622 713 s 1.829 534.303 700.928 512.216 704.925 m 1.829 534.303 703.928 512.216 707.925 m(K)511.466 716.925 s(KL) 511.466 717 s(K)522.31 714.963 s(KL)522.31 715 s(6)533.153 713 s 16 681(@)543.997 709 b %20/1 1.813 412.852 746.952 379.863 750.943 m 1.813 412.852 749.952 401.608 751.312 m(K)379.113 762.943 s(KL) 379.113 763 s(K)400.858 760.312 s(KL)400.858 761 s(6)411.702 759 s 1.824 447.552 748.935 423.296 752.912 m 1.824 447.552 751.935 436.308 753.779 m(K)422.546 764.912 s(KL) 422.546 765 s(K)435.558 762.779 s(KL)435.558 763 s(6)446.402 761 s 1.8 490.928 747 457.996 747 m 1.8 490.928 750 457.996 750 m(K) 457.246 759 s(KL)457.246 763 s(K)468.09 759 s(KL)468.09 761 s(K) 478.934 759 s(KL)478.934 763 s(6)489.778 759 s(6)500.622 767 s 503.622 773 542.997 773 5 cv 16 725(@)543.997 753 b %20/0 rm 12 ss(A)365.207 781 s 375.271 779 363.207 779 363.207 792 375.271 792 375.271 779 5 363.207 779 0.8 ll mf 10 ss (FFFFCCCCCCC)64 753 s (C)533.997 753 s (FFFFCCCCCCC)64 709 s (C)533.997 709 s (FFFFCCCCCCC)64 665 s (C)533.997 665 s (FFFFCCCCCCC)64 621 s (C)533.997 621 s (!)64 566 s(')80 572 s(')84.5 578 s(!)64 522 s(')80 528 s(')84.5 534 s(#) 64 478 s(')80 482 s(')84.5 488 s(")63.5 434 s(')80 436 s(')84.5 442 s 16 434(@)64 566 b 60.5 582 434 k %21/4 (6)97 446 s(?)105.4 446 s(7)149.152 438 s(6)169.172 444 s 1.8 232.385 432 201.954 432 m 1.8 232.385 435 201.954 435 m(6) 201.204 444 s 172.172 451 204.204 451 5 cv(K)211.214 444 s(KL) 211.214 446 s(K)221.225 444 s(KL)221.225 448 s(6)231.235 444 s (@)241.245 434 s %21/3 (6)97 492 s(?)105.4 494 s(8)149.152 492 s(6)169.172 490 s(?) 177.572 490 s(8)221.225 484 s 16 450(@)241.245 478 b %21/2 (5)97 528 s(?)105.4 530 s(\()144.477 520 s(7)149.152 520 s(=) 169.172 516 s(5)169.172 516 s(?)177.572 518 s 1.884 232.385 513.876 221.975 517.103 m 1.884 232.385 516.876 221.975 520.103 m(K)221.225 529.103 s(KL) 221.225 530 s(6)231.235 526 s 16 494(@)241.245 522 b %21/1 1.827 120.272 563.929 97.75 567.915 m 1.827 120.272 566.929 109.862 568.772 m(K)97 579.915 s(KL)97 580 s 90 586 100 586 3 cv(\()104.862 578 s(K)109.112 577.772 s(KL) 109.112 578 s(6)119.122 576 s 1.8 160.312 560 129.882 560 m 1.8 160.312 563 129.882 563 m(K)129.132 572 s(KL)129.132 578 s(K) 139.142 572 s(KL)139.142 574 s(Kxx~K)149.152 572 s(L)149.152 582 s(6) 159.162 572 s 1.828 192.344 555.928 169.922 559.919 m 1.828 192.344 558.928 181.934 560.781 m(K)169.172 571.919 s(KL) 169.172 572 s 162.162 579 172.172 579 2.003 cv(K)181.184 569.781 s(KL) 181.184 570 s(6)191.194 568 s 1.884 222.375 564.33 201.954 558 m(6) 201.204 570 s(K)221.225 576.206 s(KL)221.225 580 s 16 538(@)241.245 566 b %21/0 rm 10 ss(21)64 590 s 75.5 588 62 588 62 599 75.5 599 75.5 588 5 62 588 0.666 ll %22/4 mf 10 ss(6)247.251 446 s(?)255.651 446 s(7)299.403 438 s(6)319.423 444 s 1.8 382.636 432 352.205 432 m 1.8 382.636 435 352.205 435 m(6) 351.455 444 s 322.423 451 354.455 451 5 cv(K)361.465 444 s(KL) 361.465 446 s(K)371.476 444 s(KL)371.476 448 s(6)381.486 444 s (@)391.496 434 s %22/3 (6)247.251 492 s(?)255.651 494 s(8)299.403 492 s(6)319.423 490 s(?) 327.823 490 s(8)371.476 484 s 16 450(@)391.496 478 b %22/2 (5)247.251 522 s(?)255.651 522 s(\()294.728 520 s(7)299.403 520 s(=) 319.423 516 s(5)319.423 516 s(?)327.823 518 s 1.884 382.636 513.876 372.226 517.103 m 1.884 382.636 516.876 372.226 520.103 m(K)371.476 529.103 s(KL) 371.476 530 s(6)381.486 526 s 16 494(@)391.496 522 b %22/1 1.827 270.523 563.929 248.001 567.915 m 1.827 270.523 566.929 260.113 568.772 m(K)247.251 579.915 s(KL) 247.251 580 s 224.225 586 250.251 586 5 cv(\()255.113 578 s(K) 259.363 577.772 s(KL)259.363 578 s(6)269.373 576 s 1.8 310.563 560 280.133 560 m 1.8 310.563 563 280.133 563 m(K) 279.383 572 s(KL)279.383 578 s(K)289.393 572 s(KL)289.393 574 s(=) 299.403 584 s(Kxx~K)299.403 572 s(KL)299.403 586 s(6)309.413 572 s 1.828 342.595 555.928 320.173 559.919 m 1.828 342.595 558.928 332.185 560.781 m(K)319.423 571.919 s(KL) 319.423 572 s 312.413 579 322.423 579 2.003 cv(K)331.435 569.781 s(KL) 331.435 570 s(6)341.445 568 s 1.884 372.626 564.33 352.205 558 m(6) 351.455 570 s(')366.976 578 s(K)371.476 576.206 s(KL)371.476 578 s 16 538(@)391.496 566 b %22/0 %23/4 (6)397.502 450 s(?)405.902 450 s(7)449.554 436 s(6)471.926 442 s 1.8 535.139 430 504.709 430 m 1.8 535.139 433 504.709 433 m(6) 503.959 442 s 474.926 448 506.959 448 5 cv(K)513.969 442 s(KL) 513.969 444 s(K)523.979 442 s(KL)523.979 446 s(6)533.989 442 s (@)543.999 434 s %23/3 (5)397.502 482 s(?)405.902 482 s(8)449.554 486 s(6)471.926 488 s(?) 480.326 490 s(8)523.979 488 s 16 450(@)543.999 478 b %23/2 (5)397.502 522 s(?)405.902 522 s(7)449.554 518 s(=)471.926 516 s(5) 471.926 514 s(?)480.326 514 s -1.884 540.239 540.773 529.829 544 m -1.884 540.239 537.773 529.829 541 m(5)523.979 528 s(J)533.989 524.897 s (JL)533.989 524 s 16 494(@)543.999 522 b %23/1 1.828 420.674 561.928 398.252 565.919 m 1.828 420.674 564.928 410.264 566.781 m(K)397.502 577.919 s(KL) 397.502 578 s 374.476 584 400.502 584 5 cv(K)409.514 575.781 s(KL) 409.514 576 s(6)419.524 574 s 1.8 463.066 558 430.284 558 m 1.8 463.066 561 430.284 561 m(K)429.534 570 s(KL)429.534 576 s(K) 439.544 570 s(KL)439.544 572 s(Kxx~K)449.554 570 s(L)449.554 580 s(') 457.416 570 s(6)461.916 570 s 1.828 495.099 553.929 472.676 557.92 m 1.828 495.099 556.929 484.689 558.782 m(K)471.926 569.92 s(KL) 471.926 570 s 464.916 576 474.926 576 2.003 cv(K)483.939 567.782 s(KL) 483.939 568 s(6)493.949 566 s 1.884 525.129 562.33 504.709 556 m(6) 503.959 568 s(K)523.979 574.206 s(KL)523.979 578 s 526.979 584 542.999 584 3.806 cv 16 538(@)543.999 566 b %23/0 (FFFFCCCCCCC)64 566 s (C)533.999 566 s (FFFFCCCCCCC)64 522 s (C)533.999 522 s (FFFFCCCCCCC)64 478 s (C)533.999 478 s (FFFFCCCCCCC)64 434 s (C)533.999 434 s (!)64 379 s(')80 385 s(')84.5 391 s(!)64 335 s(')80 341 s(')84.5 347 s(#) 64 291 s(')80 295 s(')84.5 301 s(")63.5 247 s(')80 249 s(')84.5 255 s 16 247(@)64 379 b 60.5 395 247 k %24/4 1.876 111.296 248.996 97.75 245 m(6)97 257 s(K)110.146 260.878 s(KL) 110.146 261 s 1.884 155.12 236.876 132.808 243.792 m(K)132.058 255.792 s (KL)132.058 263 s(6)153.97 249 s 1.804 205.517 246.993 176.632 245 m 1.804 205.517 249.993 200.517 249.648 m(6)175.882 257 s(?)184.282 259 s(K) 204.367 258.965 s(KL)204.367 259 s 1.828 249.341 238.928 216.073 244.916 m 1.828 249.341 241.928 216.073 247.916 m(K)215.323 256.916 s(KL) 215.323 257 s(K)226.279 254.944 s(KL)226.279 255 s(K)237.235 252.972 s(KL) 237.235 253 s(6)248.191 251 s(@)259.147 247 s %24/3 1.884 111.296 289.199 97.75 285 m(6)97 297 s(K)110.146 301.075 s(KL) 110.146 303 s 1.863 155.12 290.893 132.808 296.872 m(=)132.058 309 s(K) 132.058 308.872 s(KL)132.058 309 s(6)153.97 303 s(6)175.882 303 s(-) 216.323 295 s 16 263(@)259.147 291 b %24/2 -1.819 116.396 353.009 102.85 355 m(5)97 339 s(J)110.146 337.068 s(JL) 110.146 337 s -1.8 171.176 351 137.908 351 m -1.8 171.176 348 137.908 348 m(5)132.058 335 s 113.146 334 135.058 333 -5 cv(J)143.014 335 s(JL)143.014 333 s(5)153.97 335 s(J)164.926 335 s(JL) 164.926 331 s(=)175.882 329 s(5)175.882 329 s(-)216.323 339 s 16 307(@)259.147 335 b %24/1 1.823 122.252 374.935 97.75 378.928 m 1.823 122.252 377.935 110.896 379.786 m(K)97 390.928 s(KL)97 391 s 90 397 100 397 3 cv(K)110.146 388.786 s(KL)110.146 389 s(6)121.102 387 s 1.8 166.076 373 132.808 373 m 1.8 166.076 376 132.808 376 m(K) 132.058 385 s(KL)132.058 389 s(K)143.014 385 s(KL)143.014 387 s(K) 153.97 385 s(KL)153.97 389 s(6)164.926 385 s -1.828 204.044 395.007 181.732 399 m -1.828 193.088 393.968 181.732 396 m(5)175.882 383 s(J)186.838 381.039 s (JL)186.838 381 s(J)197.794 379.078 s(JL)197.794 379 s(-)216.323 383 s 16 351(@)259.147 379 b %24/0 rm 10 ss(24)64 403 s 75.5 401 62 401 62 412 75.5 412 75.5 401 5 62 401 0.666 ll %25/4 1.884 280.015 241.199 266.469 237 m bi 10 ss(f)265.719 227 s(f) -0.18 0 rs mf 10 ss(6)265.719 249 s(K)278.865 253.075 s(KL)278.865 263 s 1.876 306.309 244.882 292.762 248.878 m(K)292.012 260.878 s(KL) 292.012 261 s(6)305.159 257 s -1.884 355.233 275.124 332.921 268.208 m(J) 327.071 252.208 s(JL)327.071 245 s(5)348.983 259 s -1.876 390.292 265.004 376.745 269 m(5)370.895 253 s(J)384.042 249.122 s (JL)384.042 249 s(@)397.189 247 s %25/3 bi 10 ss(f)265.719 281 s(f)-0.18 0 rs mf 10 ss(6)265.719 303 s 1.884 306.309 284.876 292.762 289.075 m(K)292.012 301.075 s(KL) 292.012 303 s(6)305.159 297 s(5)327.071 295 s 1.884 385.192 290.876 371.645 295.075 m(=)370.895 309 s(K) 370.895 307.075 s(KL)370.895 309 s(6)384.042 303 s 16 263(@)397.189 291 b %25/2 bi 10 ss(f)265.719 325 s(f)-0.18 0 rs mf 10 ss(=)265.719 353 s(6) 265.719 355 s(6)292.012 349 s 1.8 361.089 331 327.821 331 m 1.8 361.089 334 327.821 334 m(K)327.071 343 s(KL)327.071 345 s(6) 338.027 343 s(K)348.983 343 s(KL)348.983 345 s(K)359.939 343 s(KL) 359.939 347 s 1.876 385.192 332.882 371.645 336.878 m(K) 370.895 348.878 s(KL)370.895 349 s(6)384.042 345 s 16 307(@)397.189 335 b %25/1 bi 10 ss(f)265.719 369 s(f)-0.18 0 rs mf 10 ss(=x=)265.719 397 s(K) 265.719 399 s(KL)265.719 403 s 1.823 317.265 383.007 292.762 387 m 1.823 317.265 386.007 305.909 387.858 m(=x=)292.012 397 s(K) 292.012 399 s(KL)292.012 401 s(=)305.159 397 s(K)305.159 396.858 s(KL) 305.159 399 s(=)316.115 397 s(K)316.115 395.072 s(KL)316.115 397 s 1.8 350.133 385 327.821 385 m 1.8 339.177 388 327.821 388 m(=) 327.071 397 s(K)327.071 397 s(KL)327.071 399 s(=)338.027 397 s(6) 338.027 397 s(=)348.983 397 s(K)348.983 397 s(KL)348.983 399 s(.) 371.895 383 s(')379.542 397 s(=)384.042 397 s(8)384.042 397 s 16 351(@)397.189 379 b %25/0 %26/4 1.884 418.057 247.199 404.511 243 m(6)403.761 255 s(=x=)416.907 265 s(K) 416.907 259.075 s(KL)416.907 269 s 1.876 444.351 250.882 430.804 254.878 m(=)430.054 265 s(K) 430.054 266.878 s(KL)430.054 267 s(6)443.201 263 s 1.884 488.175 245.916 465.863 239 m(6)465.113 251 s(K)487.025 257.792 s(KL) 487.025 259 s 1.863 523.234 246.893 500.922 252.872 m(=)500.172 265 s(K) 500.172 264.872 s(KL)500.172 265 s(6)522.084 259 s(@)543.996 247 s %26/3 (8)403.761 301 s(=)416.907 309 s(6)416.907 309 s(8)443.201 303 s 1.828 488.175 292.993 465.863 289 m(6)465.113 301 s(K)487.025 304.922 s(KL) 487.025 305 s 1.828 523.234 296.993 500.922 293 m(6)500.172 305 s(=) 522.084 309 s(K)522.084 308.922 s(KL)522.084 309 s 16 263(@)543.996 291 b %26/2 1.884 418.057 333.199 404.511 329 m(6)403.761 341 s(K)416.907 345.075 s(KL) 416.907 347 s(6)430.054 341 s -1.828 493.275 357.071 470.963 353.078 m(J) 465.113 337.078 s(JL)465.113 337 s(5)487.025 341 s 1.8 534.19 331 500.922 331 m 1.8 534.19 334 500.922 334 m(6) 500.172 343 s(K)511.128 343 s(KL)511.128 345 s(K)522.084 343 s(KL) 522.084 347 s(K)533.04 343 s(KL)533.04 345 s 16 307(@)543.996 335 b %26/1 (6)403.761 395 s 1.823 455.307 376.935 430.804 380.928 m 1.823 455.307 379.935 443.951 381.786 m(K)430.054 392.928 s(KL) 430.054 393 s(K)443.201 390.786 s(KL)443.201 391 s(6)454.157 389 s 1.8 488.175 377 465.863 377 m 1.8 477.219 380 465.863 380 m(K) 465.113 389 s(KL)465.113 391 s(6)476.069 389 s(K)487.025 389 s(KL) 487.025 391 s 1.8 534.19 379 500.922 379 m 1.8 534.19 382 500.922 382 m(6) 500.172 391 s 490.025 397 503.172 397 2.944 cv(K)511.128 391 s(KL) 511.128 393 s(K)522.084 391 s(KL)522.084 395 s(K)533.04 391 s(KL) 533.04 393 s 16 351(@)543.996 379 b %26/0 (FFFFCCCCCCC)64 379 s (C)533.996 379 s (FFFFCCCCCCC)64 335 s (C)533.996 335 s (FFFFCCCCCCC)64 291 s (C)533.996 291 s (FFFFCCCCCCC)64 247 s (C)533.996 247 s (!)64 192 s(')80 198 s(')84.5 204 s(!)64 148 s(')80 154 s(')84.5 160 s(#) 64 104 s(')80 108 s(')84.5 114 s(")63.5 60 s(')80 62 s(')84.5 68 s 16 60(@)64 192 b 60.5 208 60 k %27/4 1.803 127.728 59.974 97.75 61.952 m(K)97 73.952 s(KL)97 74 s(6) 126.578 72 s 1.815 186.884 57.946 156.906 61.933 m(K)156.156 73.933 s(KL) 156.156 74 s(6)185.734 70 s 1.815 246.041 59.946 216.063 63.933 m(K) 215.313 75.933 s(KL)215.313 76 s(6)244.891 72 s 1.884 305.198 51.876 275.219 61.169 m(=)274.469 78 s(K)274.469 73.169 s(KL) 274.469 78 s(6)304.048 64 s(@)333.626 60 s %27/3 (=)97 122 s(6)97 124 s(6)156.156 120 s 1.835 246.041 109.995 216.063 104 m(6)215.313 116 s(=)244.891 122 s(K) 244.891 121.915 s(KL)244.891 122 s 1.815 305.198 107.947 275.219 111.934 m(=)274.469 122 s(K) 274.469 123.934 s(KL)274.469 124 s(6)304.048 120 s 16 76(@)333.626 104 b %27/2 1.8 142.517 142 97.75 142 m 1.8 142.517 145 97.75 145 m(K)97 154 s(KL) 97 156 s(6)111.789 154 s(K)126.578 154 s(KL)126.578 156 s(K) 141.367 154 s(KL)141.367 158 s 1.8 201.674 144 156.906 144 m 1.8 201.674 147 156.906 147 m(6)156.156 156 s(K)170.945 156 s(KL) 170.945 160 s(K)185.734 156 s(KL)185.734 158 s(6)200.524 156 s -1.8 265.93 170 221.163 170 m -1.8 265.93 167 221.163 167 m(5) 215.313 154 s(J)230.102 154 s(JL)230.102 152 s(5)244.891 154 s(J) 259.68 154 s(JL)259.68 150 s -1.815 310.298 172.053 280.319 168.066 m(J) 274.469 152.066 s(JL)274.469 152 s(5)304.048 156 s 16 120(@)333.626 148 b %27/1 1.8 142.517 190 97.75 190 m 1.8 142.517 193 97.75 193 m(K)97 202 s(KL) 97 204 s(6)111.789 202 s(K)126.578 202 s(KL)126.578 204 s(K) 141.367 202 s(KL)141.367 206 s 1.8 201.674 192 156.906 192 m 1.8 201.674 195 156.906 195 m(6)156.156 204 s(K)170.945 204 s(KL) 170.945 208 s(K)185.734 204 s(KL)185.734 206 s(6)200.524 204 s 1.8 260.83 186 216.063 186 m 1.8 260.83 189 216.063 189 m(K) 215.313 198 s(KL)215.313 202 s(K)230.102 198 s(KL)230.102 200 s(K) 244.891 198 s(KL)244.891 202 s(6)259.68 198 s 1.8 319.987 188 275.219 188 m 1.8 319.987 191 275.219 191 m(K) 274.469 200 s(KL)274.469 204 s(K)289.259 200 s(KL)289.259 202 s(K) 304.048 200 s(KL)304.048 204 s(6)318.837 200 s 16 164(@)333.626 192 b %27/0 rm 10 ss(27)64 216 s 75.5 214 62 214 62 225 75.5 225 75.5 214 5 62 214 0.666 ll %28/4 1.835 373.227 59.995 343.249 54 m mf 10 ss(6)342.499 66 s(K) 372.077 71.915 s(KL)372.077 72 s 1.81 420.551 57.996 402.405 56 m(6) 401.655 68 s(K)419.401 69.952 s(KL)419.401 70 s -1.815 473.346 82.054 443.368 78.067 m(J)437.518 62.067 s(JL) 437.518 62 s(5)467.096 66 s -1.843 520.67 84.088 502.524 80.096 m(J) 496.674 64.096 s(JL)496.674 64 s(5)514.42 68 s(@)543.999 60 s %28/3 1.815 373.227 99.946 343.249 103.933 m(K)342.499 115.933 s(KL) 342.499 116 s(6)372.077 112 s 1.81 420.551 103.956 402.405 105.952 m(K) 401.655 117.952 s(KL)401.655 118 s(6)419.401 116 s 1.884 468.246 113.293 438.268 104 m(6)437.518 116 s(=x=)467.096 122 s(K) 467.096 125.169 s(KL)467.096 126 s 1.884 515.57 111.625 497.424 106 m(6) 496.674 118 s(=)514.42 122 s(K)514.42 123.501 s(KL)514.42 124 s 16 76(@)543.999 104 b %28/2 -1.861 363.538 168.006 348.349 172 m -1.861 363.538 165.006 348.349 169 m(5)342.499 156 s 307.048 154 345.499 154 -5 cv(J)357.288 152.111 s(JL)357.288 152 s(5) 372.077 154 s(7)419.401 152 s 1.8 483.035 146 438.268 146 m 1.8 483.035 149 438.268 149 m(6)437.518 158 s(K)452.307 158 s(KL) 452.307 160 s(K)467.096 158 s(KL)467.096 162 s(K)481.885 158 s(KL) 481.885 160 s 1.843 515.57 143.912 497.424 147.904 m(K)496.674 159.904 s (KL)496.674 160 s(6)514.42 156 s 517.42 162 542.999 162 5 cv 16 120(@)543.999 148 b %28/1 1.8 388.016 186 343.249 186 m 1.8 388.016 189 372.827 189 m(K) 342.499 198 s(KL)342.499 206 s(6)372.077 198 s(K)386.866 198 s(KL) 386.866 200 s(6)401.655 200 s(\210)401.655 211 s(8)437.518 198 s(=) 467.096 210 s(6)467.096 212 s 1.815 530.36 195.948 515.17 197.937 m 1.815 530.36 198.948 515.17 200.937 m(=)514.42 210 s(K)514.42 209.937 s(KL) 514.42 210 s(6)529.21 208 s 16 164(@)543.999 192 b %28/0 (FFFFCCCCCCC)64 192 s (C)533.999 192 s (FFFFCCCCCCC)64 148 s (C)533.999 148 s (FFFFCCCCCCC)64 104 s (C)533.999 104 s (FFFFCCCCCCC)64 60 s (C)533.999 60 s pagesave restore showpage %%Page: 4 4 %%BeginPageSetup /pagesave save def %%EndPageSetup rm 10 ss(4 )44.2 800 s( )558 800 s mf 10 ss(!)64 753 s(')80 759 s(') 84.5 765 s(!)64 709 s(')80 715 s(')84.5 721 s(#)64 665 s(')80 669 s(') 84.5 675 s(")63.5 621 s(')80 623 s(')84.5 629 s 16 621(@)64 753 b 60.5 769 621 k %29/4 1.865 134.291 624.975 97.75 615 m(6)97 627 s(K)133.141 636.866 s(KL) 133.141 637 s 1.865 206.575 626.975 170.033 617 m(6)169.283 629 s(=) 205.425 639 s(K)205.425 638.866 s(KL)205.425 639 s 1.81 278.858 614.957 242.317 618.939 m(K)241.567 630.939 s(KL) 241.567 631 s(6)277.708 627 s 1.829 336.685 616.927 314.6 620.924 m(K) 313.85 632.924 s(KL)313.85 633 s(6)335.535 629 s(@)357.22 621 s %29/3 1.81 134.291 660.957 97.75 664.939 m(K)97 676.939 s(KL)97 677 s(6) 133.141 673 s 1.801 224.646 660.985 170.033 662.951 m 1.801 224.646 663.985 219.646 664.165 m(K)169.283 674.951 s(KL) 169.283 675 s(?)177.683 677 s(6)223.496 673 s 1.8 296.929 659 242.317 659 m 1.8 296.929 662 278.458 662 m(6) 241.567 671 s(K)277.708 671 s(KL)277.708 673 s(6)295.779 671 s -1.8 341.785 685 319.7 685 m(5)313.85 669 s(5)335.535 669 s 16 637(@)357.22 665 b %29/2 (8)97 717 s 90 723 100 723 3 cv(6)133.141 715 s(7)205.425 711 s -1.801 302.029 723.034 247.417 725 m -1.801 302.029 720.034 297.029 720.214 m(5)241.567 709 s(?)249.967 709 s(J) 295.779 707.049 s(JL)295.779 707 s -1.884 341.785 741.124 319.7 734.278 m(Jww|J)313.85 718.278 s(JL) 313.85 705 s(5)335.535 725 s 16 681(@)357.22 709 b %29/1 1.8 152.362 751 97.75 751 m 1.8 152.362 754 97.75 754 m(K)97 763 s(KL) 97 767 s(K)115.07 763 s(KL)115.07 765 s(K)133.141 763 s(KL)133.141 767 s(6) 151.212 763 s 1.829 224.646 744.312 170.033 754.306 m 1.829 224.646 747.312 170.033 757.306 m(K)169.283 766.306 s(KL) 169.283 769 s(6)187.354 763 s(K)205.425 759.693 s(KL)205.425 761 s(K) 223.496 756.386 s(KL)223.496 759 s 1.8 296.929 741 242.317 741 m 1.8 296.929 744 242.317 744 m(K)241.567 753 s(KL)241.567 757 s(6) 259.637 753 s(Kxx~K)277.708 753 s(KL)277.708 767 s(K)295.779 753 s(KL) 295.779 757 s 1.884 336.685 753.846 314.6 747 m(6)313.85 759 s(=) 335.535 771 s(K)335.535 765.722 s(KL)335.535 773 s 16 725(@)357.22 753 b %29/0 rm 10 ss(29)64 777 s 75.5 775 62 775 62 786 75.5 786 75.5 775 5 62 775 0.666 ll %30/4 1.824 405.352 620.992 368.811 615 m mf 10 ss(6)368.061 627 s(K) 404.202 632.927 s(KL)404.202 633 s 1.807 463.179 618.987 441.094 617 m(6) 440.344 629 s(K)462.029 630.951 s(KL)462.029 631 s(5)484.165 623 s(-) 514.078 625 s(B)542.498 621 s(@)540.498 621 s %30/3 -1.81 410.452 689.043 373.911 685.061 m(J)368.061 669.061 s(JL) 368.061 669 s(5)404.202 673 s 1.807 463.179 664.964 441.094 666.951 m(K) 440.344 678.951 s(KL)440.344 679 s(6)462.029 677 s(6)484.165 677 s(-) 514.078 669 s 16 637(B)542.498 665 b 16 637(@)540.498 665 b %30/2 -1.841 392.381 717.011 373.911 721 m -1.841 392.381 714.011 373.911 718 m(5)368.061 705 s(=)386.131 703 s(J) 386.131 701.097 s(JL)386.131 701 s(5)404.202 715 s(7)462.029 713 s(5) 484.165 715 s(-)514.078 713 s 16 681(B)542.498 709 b 16 681(@)540.498 709 b %30/1 -1.819 428.523 777.697 373.911 769.724 m -1.819 428.523 774.697 410.052 772 m(J)368.061 753.724 s(JL) 368.061 753 s(5)404.202 759 s(J)422.273 761.638 s(JL)422.273 761 s(6) 440.344 761 s(\210)440.344 772 s(6)484.165 759 s(-)514.078 757 s 16 725(B)542.498 753 b 16 725(@)540.498 753 b %30/0 (FFFFCCCCCCC)64 753 s (C)533.998 753 s (FFFFCCCCCCC)64 709 s (C)533.998 709 s (FFFFCCCCCCC)64 665 s (C)533.998 665 s (FFFFCCCCCCC)64 621 s (C)533.998 621 s rm 12 ss(II)300.004 517 s rm 10 ss(V)65.665 464 s(iolin I)-0.6 0 rs mf 10 ss(!)104.12 460 s(')120.12 466 s(')124.62 472 s bf 11.8 ss(3) 129.12 468 s(8)129.12 460.15 s rm 10 ss(V)64 420 s(iolin II)-0.6 0 rs mf 10 ss(!)104.12 416 s(')120.12 422 s(')124.62 428 s bf 11.8 ss(3) 129.12 424 s(8)129.12 416.15 s rm 10 ss(V)70.25 376 s(iola)-0.6 0 rs mf 10 ss(#)104.12 372 s(')120.12 376 s(')124.62 382 s bf 11.8 ss(3) 129.12 380 s(8)129.12 372.15 s rm 10 ss(Cello)70.225 337 s(Bass) 71.615 327 s mf 10 ss(")103.62 328 s(')120.12 330 s(')124.62 336 s bf 11.8 ss(3)129.12 336 s(8)129.12 328.15 s mf 10 ss 16 328(@)104.12 460 b 100.62 476 328 k %1/4 bi 10 ss(p)144.02 318 s mf 10 ss(.)144.02 332 s 1.873 171.026 327.884 157.198 331.88 m(K)156.448 343.88 s(KL) 156.448 344 s(6)169.876 340 s(@)203.445 328 s %1/3 bi 10 ss(p)144.02 362 s mf 10 ss(.)144.02 376 s 1.884 171.026 367.876 157.198 372.162 m(K)156.448 384.162 s(KL) 156.448 386 s(6)169.876 380 s 16 344(@)203.445 372 b %1/2 bi 10 ss(p)143.02 405 s mf 10 ss(6)143.02 426 s 1.8 193.405 422 170.626 422 m 1.8 193.405 425 170.626 425 m(=) 169.876 434 s(K)169.876 434 s(KL)169.876 436 s(=)181.066 434 s(6) 181.066 434 s(=)192.255 434 s(K)192.255 434 s(KL)192.255 436 s it 9 ss(3) 182.065 443 s 180.565 446.15 169.376 446.15 2 169.376 444.15 0.3 ll 199.255 444.15 199.255 446.15 2 188.065 446.15 0.3 ll mf 10 ss 16 388(@)203.445 416 b %1/1 bi 10 ss(p)143.02 449 s mf 10 ss(6)143.02 470 s 1.8 193.405 466 170.626 466 m 1.8 193.405 469 170.626 469 m(=) 169.876 478 s(K)169.876 478 s(KL)169.876 480 s(=)181.066 478 s(6) 181.066 478 s(=)192.255 478 s(K)192.255 478 s(KL)192.255 480 s it 9 ss(3) 182.065 487 s 180.565 490.15 169.376 490.15 2 169.376 488.15 0.3 ll 199.255 488.15 199.255 490.15 2 188.065 490.15 0.3 ll mf 10 ss 16 432(@)203.445 460 b %1/0 bf 10 ss(Moderato e dolce)129.12 500 s %2/4 1.818 227.359 331.994 213.509 330 m mf 10 ss(6)212.759 342 s(K) 226.209 343.936 s(KL)226.209 344 s(.)240.637 332 s(@)253.065 328 s %2/3 1.818 227.359 367.994 213.509 366 m(6)212.759 378 s(K)226.209 379.936 s(KL) 226.209 380 s(.)240.637 376 s 16 344(@)253.065 372 b %2/2 1.818 227.359 419.994 213.509 418 m(%)207.759 430 s(6)212.759 430 s(\210) 212.759 441 s(K)226.209 431.936 s(KL)226.209 432 s(.)240.637 420 s 16 388(@)253.065 416 b %2/1 1.818 227.359 463.994 213.509 462 m(%)207.759 474 s(6)212.759 474 s(\210) 212.759 485 s(K)226.209 475.936 s(KL)226.209 476 s(.)240.637 464 s 16 432(@)253.065 460 b %2/0 %3/4 1.8 307.926 322 260.529 322 m(=)259.779 346 s(Kxx~K)259.779 334 s(KL) 259.779 346 s(=)273.207 346 s(Kxx~K)273.207 334 s(KL)273.207 348 s(6) 306.776 334 s(@)342.113 328 s %3/3 (6)259.779 386 s(8)306.776 378 s 16 344(@)342.113 372 b %3/2 (8)259.779 428 s 1.827 296.736 409.93 273.957 413.916 m 1.827 296.736 412.93 273.957 416.916 m(K)273.207 425.916 s(KL) 273.207 426 s(K)284.396 423.958 s(KL)284.396 424 s(6)295.586 422 s it 9 ss(3)285.396 439 s 283.896 442.15 272.707 442.15 2 272.707 440.15 0.3 ll 302.586 440.15 302.586 442.15 2 291.396 442.15 0.3 ll -1.823 337.174 432.024 312.626 436 m -1.823 337.174 429.024 312.626 433 m mf 10 ss(5)306.776 420 s(J) 317.965 418.188 s(JL)317.965 418 s(%)325.924 416 s(J)330.924 416.089 s(JL) 330.924 416 s it 9 ss(3)319.85 439 s 318.35 442.15 306.276 442.15 2 306.276 440.15 0.3 ll 337.924 440.15 337.924 442.15 2 325.85 442.15 0.3 ll mf 10 ss 16 388(@)342.113 416 b %3/1 (8)259.779 472 s 1.827 296.736 453.93 273.957 457.916 m 1.827 296.736 456.93 273.957 460.916 m(K)273.207 469.916 s(KL) 273.207 470 s(K)284.396 467.958 s(KL)284.396 468 s(6)295.586 466 s it 9 ss(3)285.396 483 s 283.896 486.15 272.707 486.15 2 272.707 484.15 0.3 ll 302.586 484.15 302.586 486.15 2 291.396 486.15 0.3 ll -1.823 337.174 476.024 312.626 480 m -1.823 337.174 473.024 312.626 477 m mf 10 ss(5)306.776 464 s(J) 317.965 462.188 s(JL)317.965 462 s(%)325.924 460 s(J)330.924 460.089 s(JL) 330.924 460 s it 9 ss(3)319.85 483 s 318.35 486.15 306.276 486.15 2 306.276 484.15 0.3 ll 337.924 484.15 337.924 486.15 2 325.85 486.15 0.3 ll mf 10 ss 16 432(@)342.113 460 b %3/0 %4/4 1.8 388.023 320 349.577 320 m(K)348.827 332 s(KL)348.827 336 s(6) 373.444 332 s(K)386.873 332 s(KL)386.873 334 s(@)400.301 328 s %4/3 1.838 388.023 371.996 349.577 364 m(6)348.827 376 s(K)373.444 381.12 s(KL) 373.444 386 s(%)381.873 384 s(K)386.873 383.913 s(KL)386.873 384 s 16 344(@)400.301 372 b %4/2 -1.818 368.505 436.058 354.677 434.067 m -1.818 368.505 433.058 354.677 431.067 m -1.818 368.505 430.058 363.505 429.338 m(J)348.827 418.067 s(JL) 348.827 418 s(?)357.227 420 s(5)362.255 420 s -1.818 393.123 436.009 379.294 438 m(5)373.444 422 s(J)386.873 420.067 s (JL)386.873 420 s 16 388(@)400.301 416 b %4/1 -1.818 368.505 480.058 354.677 478.067 m -1.818 368.505 477.058 354.677 475.067 m -1.818 368.505 474.058 363.505 473.338 m(J)348.827 462.067 s(JL) 348.827 462 s(?)357.227 464 s(5)362.255 464 s -1.818 393.123 480.009 379.294 482 m(5)373.444 466 s(J)386.873 464.067 s (JL)386.873 464 s 16 432(@)400.301 460 b %4/0 %5/4 (.)408.015 332 s 1.873 455.162 327.884 441.333 331.88 m(K) 440.583 343.88 s(KL)440.583 344 s(6)454.012 340 s(@)470.837 328 s %5/3 (.)408.015 376 s 1.873 455.162 377.996 441.333 374 m(6)440.583 386 s(=) 454.012 390 s(K)454.012 389.88 s(KL)454.012 390 s 16 344(@)470.837 372 b %5/2 -1.8 435.644 442 412.865 442 m -1.8 435.644 439 412.865 439 m(J) 407.015 426 s(JL)407.015 422 s(J)418.204 426 s(JL)418.204 418 s(5) 429.394 426 s 1.883 460.798 419.995 441.333 414 m 1.883 460.798 422.995 455.798 421.455 m(6)440.583 426 s(?)448.983 428 s(K) 459.648 431.872 s(KL)459.648 432 s 16 388(@)470.837 416 b %5/1 -1.8 435.644 486 412.865 486 m -1.8 435.644 483 412.865 483 m(J) 407.015 470 s(JL)407.015 466 s(J)418.204 470 s(JL)418.204 462 s(5) 429.394 470 s 1.883 460.798 463.995 441.333 458 m 1.883 460.798 466.995 455.798 465.455 m(6)440.583 470 s(?)448.983 472 s(K) 459.648 475.872 s(KL)459.648 476 s 16 432(@)470.837 460 b %5/0 %6/4 (.)481.151 332 s 1.873 528.32 321.884 514.491 325.88 m(%)508.241 338 s(K) 513.741 337.88 s(KL)513.741 338 s(6)527.17 334 s(@)543.995 328 s %6/3 (.)481.151 376 s 1.884 528.32 371.876 514.491 376.162 m(=x=) 513.741 390 s(K)513.741 388.162 s(KL)513.741 394 s(%)522.17 384 s(6) 527.17 384 s 16 344(@)543.995 372 b %6/2 1.8 503.702 414 480.901 414 m 1.8 503.702 417 480.901 417 m(%) 475.151 430 s(K)480.151 426 s(KL)480.151 430 s(6)491.362 426 s(=) 502.552 434 s(K)502.552 426 s(KL)502.552 434 s 1.837 533.956 425.99 514.491 422 m 1.837 533.956 428.99 528.956 427.965 m(=)513.741 434 s(6)513.741 434 s(?) 522.141 436 s(=x=)532.806 434 s(K)532.806 437.908 s(KL)532.806 438 s 16 388(@)543.995 416 b %6/1 1.8 503.702 458 480.901 458 m 1.8 503.702 461 480.901 461 m(%) 475.151 474 s(K)480.151 470 s(KL)480.151 474 s(6)491.362 470 s(=) 502.552 478 s(K)502.552 470 s(KL)502.552 478 s 1.837 533.956 469.99 514.491 466 m 1.837 533.956 472.99 528.956 471.965 m(=)513.741 478 s(6)513.741 478 s(?) 522.141 480 s(=x=)532.806 478 s(K)532.806 481.908 s(KL)532.806 482 s 16 432(@)543.995 460 b %6/0 (FFFFCCC)104.12 460 s (C)533.995 460 s (FFFFCCC)104.12 416 s (C)533.995 416 s (FFFFCCC)104.12 372 s (C)533.995 372 s (FFFFCCC)104.12 328 s (C)533.995 328 s (!)64 224 s(')80 230 s(')84.5 236 s(!)64 180 s(')80 186 s(')84.5 192 s(#) 64 136 s(')80 140 s(')84.5 146 s(")63.5 92 s(')80 94 s(')84.5 100 s 16 92(@)64 224 b 60.5 240 92 k %7/4 1.8 167.913 90 97.75 90 m(K)97 102 s(KL)97 104 s(%)126.381 102 s(6) 131.881 102 s(K)166.763 102 s(KL)166.763 104 s(@)201.644 92 s %7/3 1.8 167.913 138 97.75 138 m(6)97 150 s(K)131.881 150 s(KL)131.881 152 s(6) 166.763 150 s 16 108(@)201.644 136 b %7/2 1.8 121.404 184 97.75 184 m 1.8 121.404 187 97.75 187 m(=)97 198 s(K) 97 196 s(KL)97 200 s(6)108.627 196 s(=x=)120.254 198 s(K)120.254 196 s(KL) 120.254 204 s 1.825 156.285 184.003 132.631 188 m 1.825 156.285 187.003 132.631 191 m(=x=)131.881 198 s(K)131.881 200 s(KL) 131.881 202 s(=)143.508 198 s(K)143.508 198.036 s(KL)143.508 200 s(=) 155.135 198 s(K)155.135 196.071 s(KL)155.135 198 s 1.825 191.167 183.932 167.513 187.929 m 1.825 191.167 186.932 167.513 190.929 m(=)166.763 198 s(K) 166.763 199.929 s(KL)166.763 200 s(=)178.39 198 s(K)178.39 197.965 s(KL) 178.39 198 s(6)190.017 196 s 16 152(@)201.644 180 b %7/1 1.8 121.404 228 97.75 228 m 1.8 121.404 231 97.75 231 m(=)97 242 s(K) 97 240 s(KL)97 244 s(6)108.627 240 s(=x=)120.254 242 s(K)120.254 240 s(KL) 120.254 248 s 1.825 156.285 228.003 132.631 232 m 1.825 156.285 231.003 132.631 235 m(=x=)131.881 242 s(K)131.881 244 s(KL) 131.881 246 s(=)143.508 242 s(K)143.508 242.036 s(KL)143.508 244 s(=) 155.135 242 s(K)155.135 240.071 s(KL)155.135 242 s 1.825 191.167 227.932 167.513 231.929 m 1.825 191.167 230.932 167.513 234.929 m(=)166.763 242 s(K) 166.763 243.929 s(KL)166.763 244 s(=)178.39 242 s(K)178.39 241.965 s(KL) 178.39 242 s(6)190.017 240 s 16 196(@)201.644 224 b %7/0 rm 10 ss(7)64 248 s 70.5 246 62 246 62 257 70.5 257 70.5 246 5 62 246 0.666 ll %8/4 -1.8 228.822 114 214.47 114 m mf 10 ss(5)208.62 98 s it 10 ss(C.B.) 216.682 117 s mf 10 ss(5)222.572 98 s(=)222.572 86 s(5)222.572 84 s(.) 237.525 96 s(@)250.477 92 s %8/3 1.817 223.722 139.945 209.37 141.939 m(=)208.62 154 s(K)208.62 153.939 s (KL)208.62 154 s(6)222.572 152 s(.)237.525 140 s 16 108(@)250.477 136 b %8/2 1.817 223.722 181.945 209.37 183.939 m(K)208.62 195.939 s(KL) 208.62 196 s(\210)208.62 204 s(%)217.572 194 s(6)222.572 194 s(.) 237.525 184 s 16 152(@)250.477 180 b %8/1 1.817 223.722 225.945 209.37 227.939 m(K)208.62 239.939 s(KL) 208.62 240 s(\210)208.62 248 s(%)217.572 238 s(6)222.572 238 s(.) 237.525 228 s 16 196(@)250.477 224 b %8/0 %9/4 (.)258.453 96 s 1.811 307.437 95.955 272.155 99.941 m(=)271.405 110 s(K) 271.405 111.941 s(KL)271.405 112 s(6)306.287 108 s(@)341.168 92 s %9/3 (.)258.453 140 s 1.811 307.437 131.955 272.155 135.941 m(K) 271.405 147.941 s(KL)271.405 148 s(6)306.287 144 s 16 108(@)341.168 136 b %9/2 (=)257.453 198 s(8)257.453 200 s 1.8 295.809 186 272.155 186 m 1.8 295.809 189 272.155 189 m(=)271.405 198 s(K)271.405 198 s(KL) 271.405 200 s 260.453 206 274.405 206 3.185 cv(=)283.032 198 s(6) 283.032 198 s(=)294.659 198 s(K)294.659 198 s(KL)294.659 200 s 1.825 330.691 177.932 307.037 181.929 m 1.825 330.691 180.932 307.037 184.929 m(K)306.287 193.929 s(KL) 306.287 194 s(K)317.914 191.965 s(KL)317.914 192 s(6)329.541 190 s 16 152(@)341.168 180 b %9/1 (=)257.453 242 s(8)257.453 244 s 1.8 295.809 230 272.155 230 m 1.8 295.809 233 272.155 233 m(=)271.405 242 s(K)271.405 242 s(KL) 271.405 244 s 260.453 250 274.405 250 3.185 cv(=)283.032 242 s(6) 283.032 242 s(=)294.659 242 s(K)294.659 242 s(KL)294.659 244 s 1.825 330.691 221.932 307.037 225.929 m 1.825 330.691 224.932 307.037 228.929 m(K)306.287 237.929 s(KL) 306.287 238 s(K)317.914 235.965 s(KL)317.914 236 s(6)329.541 234 s 16 196(@)341.168 224 b %9/0 %10/4 1.823 398.128 89.936 348.894 97.911 m(=)348.144 110 s(K) 348.144 109.911 s(KL)348.144 110 s(K)383.025 104.261 s(KL)383.025 106 s(6) 396.978 102 s(@)414.569 92 s %10/3 1.871 398.128 143.982 348.894 130 m(6)348.144 142 s(=)383.025 154 s(K) 383.025 151.906 s(KL)383.025 156 s(=)396.978 154 s(K)396.978 155.868 s(KL) 396.978 156 s 16 108(@)414.569 136 b %10/2 1.825 372.548 183.997 348.894 180 m 1.825 372.548 186.997 348.894 183 m(6) 348.144 192 s(K)359.771 193.964 s(KL)359.771 194 s(K)371.398 195.929 s(KL) 371.398 196 s 1.808 404.092 179.96 383.775 181.951 m 1.808 404.092 182.96 399.092 183.45 m(K)383.025 193.951 s(KL) 383.025 194 s(?)391.425 196 s(6)402.942 192 s 16 152(@)414.569 180 b %10/1 1.825 372.548 227.997 348.894 224 m 1.825 372.548 230.997 348.894 227 m(6) 348.144 236 s(K)359.771 237.964 s(KL)359.771 238 s(K)371.398 239.929 s(KL) 371.398 240 s 1.808 404.092 223.96 383.775 225.951 m 1.808 404.092 226.96 399.092 227.45 m(K)383.025 237.951 s(KL) 383.025 238 s(?)391.425 240 s(6)402.942 236 s 16 196(@)414.569 224 b %10/0 %11/4 1.877 449.254 87.882 422.295 95.861 m 1.877 449.254 90.882 422.295 98.861 m 1.877 449.254 93.882 444.254 95.362 m(K)421.545 107.861 s(KL) 421.545 108 s(?)429.945 108 s(6)448.104 100 s -1.884 489.236 110.668 465.582 118 m(5)459.732 102 s(J)482.986 94.792 s(JL) 482.986 88 s(@)496.939 92 s %11/3 1.819 449.254 137.941 422.295 141.93 m 1.819 449.254 140.941 422.295 144.93 m 1.819 449.254 143.941 444.254 144.681 m(=)421.545 154 s(K) 421.545 153.93 s(KL)421.545 154 s(?)429.945 156 s(6)448.104 150 s 1.806 484.136 133.967 460.482 135.953 m(K)459.732 147.953 s(KL) 459.732 148 s(6)482.986 146 s 16 108(@)496.939 136 b %11/2 1.8 445.949 176 422.295 176 m 1.8 445.949 179 422.295 179 m(K) 421.545 188 s(KL)421.545 190 s(K)433.172 188 s(KL)433.172 192 s(6) 444.799 188 s 1.8 484.136 174 460.482 174 m 1.8 472.509 177 460.482 177 m(6)459.732 186 s(K)471.359 186 s(KL) 471.359 188 s(K)482.986 186 s(KL)482.986 188 s(\210)482.986 199 s 16 152(@)496.939 180 b %11/1 1.8 445.949 220 422.295 220 m 1.8 445.949 223 422.295 223 m(K) 421.545 232 s(KL)421.545 234 s(K)433.172 232 s(KL)433.172 236 s(6) 444.799 232 s 1.8 484.136 218 460.482 218 m 1.8 472.509 221 460.482 221 m(6)459.732 230 s(K)471.359 230 s(KL) 471.359 232 s(K)482.986 230 s(KL)482.986 232 s(\210)482.986 243 s 16 196(@)496.939 224 b %11/0 %12/4 (5)503.915 94 s(.)523.519 96 s(B)542.196 92 s(@)540.296 92 s(xI) 537.796 92 s(@)543.996 92 s %12/3 (6)503.915 144 s(.)523.519 140 s 16 108(B)542.196 136 b 16 108(@)540.296 136 b(xI)537.796 136 s 16 108(@)543.996 136 b %12/2 (6)503.915 186 s(.)523.519 184 s 16 152(B)542.196 180 b 16 152(@)540.296 180 b(xI)537.796 180 s 16 152(@)543.996 180 b %12/1 (6)503.915 230 s(.)523.519 228 s 16 196(B)542.196 224 b 16 196(@)540.296 224 b(xI)537.796 224 s 16 196(@)543.996 224 b %12/0 (FFFFCCCCCCC)64 224 s (C)533.996 224 s (FFFFCCCCCCC)64 180 s (C)533.996 180 s (FFFFCCCCCCC)64 136 s (C)533.996 136 s (FFFFCCCCCCC)64 92 s (C)533.996 92 s pagesave restore showpage %%Page: 5 5 %%BeginPageSetup /pagesave save def %%EndPageSetup rm 10 ss( )44.2 800 s( 5)553 800 s mf 10 ss(!)64 753 s(')80 759 s(') 84.5 765 s(!)64 709 s(')80 715 s(')84.5 721 s(#)64 665 s(')80 669 s(') 84.5 675 s(")63.5 621 s(')80 623 s(')84.5 629 s 16 621(@)64 753 b 60.5 769 621 k %13/4 (.)98 625 s 1.811 147.005 624.955 111.38 628.945 m(=)110.63 639 s(K) 110.63 640.945 s(KL)110.63 641 s(\()141.18 637 s(6)145.855 637 s (@)179.931 621 s %13/3 (.)98 669 s 1.811 147.005 660.955 111.38 664.945 m(K)110.63 676.945 s(KL) 110.63 677 s(6)145.855 673 s 16 637(@)179.931 665 b %13/2 (8)97 719 s 1.859 134.497 712.987 111.38 707 m 1.859 134.497 715.987 111.38 710 m(6)110.63 719 s 100 726 113.63 726 3.089 cv(K)121.988 721.941 s(KL)121.988 723 s(K)133.347 724.883 s(KL) 133.347 725 s 1.826 169.722 710.931 146.605 714.93 m 1.826 169.722 713.931 146.605 717.93 m(')141.355 727 s(=)145.855 727 s(K) 145.855 726.93 s(KL)145.855 727 s(K)157.214 724.965 s(KL)157.214 725 s(6) 168.572 723 s 16 681(@)179.931 709 b %13/1 (8)97 763 s 1.859 134.497 756.987 111.38 751 m 1.859 134.497 759.987 111.38 754 m(6)110.63 763 s 100 770 113.63 770 3.089 cv(K)121.988 765.941 s(KL)121.988 767 s(K)133.347 768.883 s(KL) 133.347 769 s 1.826 169.722 754.931 146.605 758.93 m 1.826 169.722 757.931 146.605 761.93 m(')141.355 771 s(=)145.855 771 s(K) 145.855 770.93 s(KL)145.855 771 s(K)157.214 768.965 s(KL)157.214 769 s(6) 168.572 767 s 16 725(@)179.931 753 b %13/0 rm 10 ss(13)64 777 s 75.5 775 62 775 62 786 75.5 786 75.5 775 5 62 775 0.666 ll %14/4 -1.803 261.147 645.023 192.596 641.048 m mf 10 ss(J)186.746 625.048 s(JL) 186.746 625 s(J)220.821 627.024 s(JL)220.821 627 s(5)254.897 629 s (@)288.973 621 s %14/3 1.806 256.047 672.963 187.496 667 m(6)186.746 679 s(\()216.146 683 s(=) 220.821 683 s(K)220.821 681.964 s(KL)220.821 683 s(=)254.897 683 s(K) 254.897 684.929 s(KL)254.897 685 s 16 637(@)288.973 665 b %14/2 1.8 210.613 707 187.496 707 m 1.8 210.613 710 187.496 710 m(K) 186.746 719 s(KL)186.746 721 s(6)198.104 719 s(K)209.463 719 s(KL) 209.463 721 s 1.8 244.688 709 221.571 709 m 1.8 244.688 712 221.571 712 m(K)220.821 721 s(KL)220.821 723 s(6) 232.18 721 s(K)243.538 721 s(KL)243.538 723 s 1.894 278.764 704.868 255.647 712.473 m 1.894 278.764 707.868 255.647 715.473 m(K)254.897 724.473 s(KL) 254.897 725 s(K)266.256 720.736 s(KL)266.256 721 s(6)277.614 717 s 16 681(@)288.973 709 b %14/1 1.8 210.613 751 187.496 751 m 1.8 210.613 754 187.496 754 m(K) 186.746 763 s(KL)186.746 765 s(6)198.104 763 s(K)209.463 763 s(KL) 209.463 765 s 1.8 244.688 753 221.571 753 m 1.8 244.688 756 221.571 756 m(K)220.821 765 s(KL)220.821 767 s(6) 232.18 765 s(K)243.538 765 s(KL)243.538 767 s 1.894 278.764 748.868 255.647 756.473 m 1.894 278.764 751.868 255.647 759.473 m(K)254.897 768.473 s(KL) 254.897 769 s(K)266.256 764.736 s(KL)266.256 765 s(6)277.614 761 s 16 725(@)288.973 753 b %14/0 %15/4 1.802 333.14 620.966 298.638 619 m(6)297.888 631 s(K)331.99 632.943 s(KL) 331.99 633 s(7)366.066 619 s(@)401.038 621 s %15/3 1.803 367.216 664.977 298.638 668.954 m(')293.388 681 s(K) 297.888 680.954 s(KL)297.888 681 s(K)331.99 678.977 s(KL)331.99 679 s(6) 366.066 677 s 16 637(@)401.038 665 b %15/2 1.826 321.782 710.98 298.638 707 m 1.826 321.782 713.98 298.638 710 m(6) 297.888 719 s(K)309.273 720.958 s(KL)309.273 721 s(K)320.632 722.911 s(KL) 320.632 723 s 1.8 355.857 705 332.74 705 m 1.8 355.857 708 332.74 708 m(K) 331.99 717 s(KL)331.99 721 s(6)343.349 717 s(K)354.707 717 s(KL) 354.707 721 s 1.824 390.829 702.899 366.816 706.885 m 1.824 390.829 705.899 366.816 709.885 m(K)366.066 718.885 s(KL) 366.066 719 s(6)377.425 717 s(\()385.429 715 s(K)389.679 714.966 s(KL) 389.679 715 s 16 681(@)401.038 709 b %15/1 1.826 321.782 754.98 298.638 751 m 1.826 321.782 757.98 298.638 754 m(6) 297.888 763 s(K)309.273 764.958 s(KL)309.273 765 s(K)320.632 766.911 s(KL) 320.632 767 s 1.8 355.857 749 332.74 749 m 1.8 355.857 752 332.74 752 m(K) 331.99 761 s(KL)331.99 765 s(6)343.349 761 s(K)354.707 761 s(KL) 354.707 765 s 1.824 390.829 746.899 366.816 750.885 m 1.824 390.829 749.899 366.816 753.885 m(K)366.066 762.885 s(KL) 366.066 763 s(6)377.425 761 s(\()385.429 759 s(K)389.679 758.966 s(KL) 389.679 759 s 16 725(@)401.038 753 b %15/0 %16/4 (7)409.703 625 s 1.871 438.421 625.002 424.391 629 m(=x=)423.641 639 s(K) 423.641 641 s(KL)423.641 643 s(=)437.271 639 s(K)437.271 637.116 s(KL) 437.271 639 s(@)450.902 621 s %16/3 1.8 438.421 663 410.453 663 m(6)409.703 675 s(K)423.641 675 s(KL) 423.641 679 s(6)437.271 675 s 16 637(@)450.902 665 b %16/2 (\()405.453 715 s(8)409.703 715 s(6)423.641 717 s 16 681(@)450.902 709 b %16/1 (\()405.453 759 s(8)409.703 759 s(6)423.641 761 s 16 725(@)450.902 753 b %16/0 %17/4 (.)458.717 625 s 1.812 511.071 618.953 476.596 622.952 m(\215\(\216) 465.796 635 s(K)475.846 634.952 s(KL)475.846 635 s(6)509.921 631 s (@)543.997 621 s %17/3 (.)458.717 669 s 1.812 511.071 668.953 476.596 672.952 m(=)475.846 683 s(K) 475.846 684.952 s(KL)475.846 685 s(\215\(\216)498.866 681 s(6) 509.921 681 s 16 637(@)543.997 665 b %17/2 (8)457.717 721 s 1.8 499.713 709 476.596 709 m 1.8 499.713 712 476.596 712 m(6)475.846 721 s 460.717 727 478.846 727 4.438 cv(K)487.204 721 s(KL)487.204 725 s(K)498.563 721 s(KL) 498.563 723 s 1.826 533.789 704.931 510.671 708.93 m 1.826 533.789 707.931 510.671 711.93 m(K)509.921 720.93 s(KL) 509.921 721 s(K)521.28 718.965 s(KL)521.28 719 s(6)532.639 717 s 16 681(@)543.997 709 b %17/1 (8)457.717 765 s 1.8 499.713 753 476.596 753 m 1.8 499.713 756 476.596 756 m(6)475.846 765 s 460.717 771 478.846 771 4.438 cv(K)487.204 765 s(KL)487.204 769 s(K)498.563 765 s(KL) 498.563 767 s 1.826 533.789 748.931 510.671 752.93 m 1.826 533.789 751.931 510.671 755.93 m(K)509.921 764.93 s(KL) 509.921 765 s(K)521.28 762.965 s(KL)521.28 763 s(6)532.639 761 s 16 725(@)543.997 753 b %17/0 (FFFFCCCCCCC)64 753 s (C)533.997 753 s (FFFFCCCCCCC)64 709 s (C)533.997 709 s (FFFFCCCCCCC)64 665 s (C)533.997 665 s (FFFFCCCCCCC)64 621 s (C)533.997 621 s (!)64 566 s(')80 572 s(')84.5 578 s(!)64 522 s(')80 528 s(')84.5 534 s(#) 64 478 s(')80 482 s(')84.5 488 s(")63.5 434 s(')80 436 s(')84.5 442 s 16 434(@)64 566 b 60.5 582 434 k %18/4 -1.802 176.745 456.022 102.85 452.032 m(J)97 436.032 s(JL)97 436 s(J) 133.747 438.016 s(JL)133.747 438 s(5)170.495 440 s(@)207.243 434 s %18/3 1.805 171.645 483.985 97.75 478 m(6)97 490 s(K)133.747 492.976 s(KL) 133.747 494 s(=)170.495 496 s(K)170.495 495.953 s(KL)170.495 496 s 16 450(@)207.243 478 b %18/2 1.8 122.648 518 97.75 518 m 1.8 122.648 521 97.75 521 m(K)97 530 s(KL) 97 532 s(6)109.249 530 s(K)121.498 530 s(KL)121.498 532 s 1.8 159.396 520 134.497 520 m 1.8 159.396 523 134.497 523 m(K) 133.747 532 s(KL)133.747 534 s(6)145.997 532 s(K)158.246 532 s(KL) 158.246 534 s 1.8 196.144 516 171.245 516 m 1.8 196.144 519 171.245 519 m(K)170.495 528 s(KL)170.495 536 s(6) 182.745 528 s(=)194.994 540 s(Kxx~K)194.994 528 s(KL)194.994 542 s 16 494(@)207.243 522 b %18/1 1.8 122.648 562 97.75 562 m 1.8 122.648 565 97.75 565 m(K)97 574 s(KL) 97 576 s(6)109.249 574 s(K)121.498 574 s(KL)121.498 576 s 1.8 159.396 564 134.497 564 m 1.8 159.396 567 134.497 567 m(K) 133.747 576 s(KL)133.747 578 s(6)145.997 576 s(K)158.246 576 s(KL) 158.246 578 s 1.8 196.144 560 171.245 560 m 1.8 196.144 563 171.245 563 m(K)170.495 572 s(KL)170.495 580 s(6) 182.745 572 s(=)194.994 584 s(Kxx~K)194.994 572 s(KL)194.994 586 s 16 538(@)207.243 566 b %18/0 rm 10 ss(18)64 590 s 75.5 588 62 588 62 599 75.5 599 75.5 588 5 62 588 0.666 ll %19/4 mf 10 ss(8)214.592 442 s -1.884 272.289 455.319 257.189 460 m(5) 251.339 444 s(J)266.039 439.443 s(JL)266.039 430 s(@)280.738 434 s %19/3 1.84 234.115 479.915 215.342 483.913 m 1.84 234.115 482.915 215.342 486.913 m(=)214.592 496 s(K) 214.592 495.913 s(KL)214.592 496 s 173.495 502 217.592 502 5 cv(6) 232.965 492 s 1.815 267.189 475.947 252.089 477.94 m(K)251.339 489.94 s(KL) 251.339 490 s(6)266.039 488 s 16 450(@)280.738 478 b %19/2 1.822 240.24 521.936 215.342 525.919 m 1.822 240.24 524.936 215.342 528.919 m(K)214.592 537.919 s(KL) 214.592 538 s(K)226.841 535.96 s(KL)226.841 536 s(6)239.09 534 s 1.815 267.189 517.947 252.089 519.94 m(K)251.339 531.94 s(KL) 251.339 532 s(6)266.039 530 s 16 494(@)280.738 522 b %19/1 1.822 240.24 565.936 215.342 569.919 m 1.822 240.24 568.936 215.342 572.919 m(K)214.592 581.919 s(KL) 214.592 582 s(K)226.841 579.96 s(KL)226.841 580 s(6)239.09 578 s 1.815 267.189 561.947 252.089 563.94 m(K)251.339 575.94 s(KL) 251.339 576 s(6)266.039 574 s 16 538(@)280.738 566 b %19/0 %20/4 (7)288.087 436 s 1.861 318.942 433.894 303.843 437.88 m(K) 303.093 449.88 s(KL)303.093 450 s(6)317.792 446 s(@)348.695 434 s %20/3 1.894 318.942 482.968 288.837 473.064 m(K)288.087 485.064 s(KL) 288.087 486 s(6)303.093 490 s(=)317.792 496 s(K)317.792 494.836 s(KL) 317.792 496 s 16 450(@)348.695 478 b %20/2 (8)288.087 528 s 1.812 337.596 523.492 303.843 519.51 m 1.812 337.596 526.492 324.947 525 m 1.812 337.596 529.492 324.947 528 m(K) 303.093 531.51 s(KL)303.093 532 s(?)311.493 534 s(\()319.947 534 s(6) 324.197 534 s(K)336.446 535.445 s(KL)336.446 536 s 16 494(@)348.695 522 b %20/1 (8)288.087 572 s 1.812 337.596 567.492 303.843 563.51 m 1.812 337.596 570.492 324.947 569 m 1.812 337.596 573.492 324.947 572 m(K) 303.093 575.51 s(KL)303.093 576 s(?)311.493 578 s(\()319.947 578 s(6) 324.197 578 s(K)336.446 579.445 s(KL)336.446 580 s 16 538(@)348.695 566 b %20/0 %21/4 1.81 413.633 433.019 358.644 439.012 m 1.81 373.754 440.366 358.644 442.012 m 1.81 373.754 443.366 368.754 443.911 m(=)357.894 452 s(K) 357.894 451.012 s(KL)357.894 452 s(?)366.294 454 s(K)372.604 449.409 s(KL) 372.604 450 s(6)385.534 448 s(K)412.483 445.062 s(KL)412.483 446 s (@)451.681 434 s %21/3 1.804 413.633 483.959 358.644 480 m(6)357.894 492 s(=)385.534 496 s(K) 385.534 493.99 s(KL)385.534 498 s(=)412.483 496 s(K)412.483 495.93 s(KL) 412.483 496 s 16 450(@)451.681 478 b %21/2 1.807 401.383 525.404 358.644 521.43 m 1.807 401.383 528.404 358.644 524.43 m 1.807 373.754 528.835 368.754 528.37 m 1.807 401.383 531.404 396.383 530.939 m(\()353.644 534 s(K) 357.894 533.43 s(KL)357.894 534 s(?)366.294 534 s(K)372.604 534.798 s(KL) 372.604 538 s(%)380.534 536 s(6)385.534 536 s(?)393.934 538 s(K) 400.233 537.367 s(KL)400.233 538 s 1.8 440.581 523 413.233 523 m 1.8 440.581 526 413.233 526 m 1.8 440.581 529 427.932 529 m 1.8 440.581 532 427.932 532 m(K)412.483 535 s(KL)412.483 538 s(?) 420.883 538 s(K)427.182 535 s(KL)427.182 536 s(K)439.431 535 s(KL) 439.431 538 s 16 494(@)451.681 522 b %21/1 1.807 401.383 569.404 358.644 565.43 m 1.807 401.383 572.404 358.644 568.43 m 1.807 373.754 572.835 368.754 572.37 m 1.807 401.383 575.404 396.383 574.939 m(\()353.644 578 s(K) 357.894 577.43 s(KL)357.894 578 s(?)366.294 578 s(K)372.604 578.798 s(KL) 372.604 582 s(%)380.534 580 s(6)385.534 580 s(?)393.934 582 s(K) 400.233 581.367 s(KL)400.233 582 s 1.8 440.581 567 413.233 567 m 1.8 440.581 570 413.233 570 m 1.8 440.581 573 427.932 573 m 1.8 440.581 576 427.932 576 m(K)412.483 579 s(KL)412.483 582 s(?) 420.883 582 s(K)427.182 579 s(KL)427.182 580 s(K)439.431 579 s(KL) 439.431 582 s 16 538(@)451.681 566 b %21/0 %22/4 1.8 514.243 428 462.38 428 m(%)456.63 444 s(K)461.63 440 s(KL) 461.63 444 s(6)498.394 440 s(K)513.093 440 s(KL)513.093 444 s (@)543.996 434 s %22/3 1.8 514.243 478 462.38 478 m(K)461.63 490 s(KL)461.63 494 s(%) 492.894 490 s(6)498.394 490 s(K)513.093 490 s(KL)513.093 494 s 16 450(@)543.996 478 b %22/2 1.8 487.294 520 462.38 520 m 1.8 487.294 523 462.38 523 m(=)461.63 540 s(K) 461.63 532 s(KL)461.63 540 s(6)473.895 532 s(=x=)486.144 540 s(Kxx~K) 486.144 532 s(KL)486.144 544 s 1.812 532.897 526.018 499.144 530 m 1.812 532.897 529.018 520.247 530.51 m 1.812 532.897 532.018 520.247 533.51 m(=x=)498.394 540 s(K)498.394 542 s (KL)498.394 544 s(?)506.794 546 s(=)519.497 540 s(K)519.497 539.51 s(KL) 519.497 542 s(=)531.747 540 s(K)531.747 538.065 s(KL)531.747 540 s 16 494(@)543.996 522 b %22/1 1.8 487.294 564 462.38 564 m 1.8 487.294 567 462.38 567 m(=)461.63 584 s(K) 461.63 576 s(KL)461.63 584 s(6)473.895 576 s(=x=)486.144 584 s(Kxx~K) 486.144 576 s(KL)486.144 588 s 1.812 532.897 570.018 499.144 574 m 1.812 532.897 573.018 520.247 574.51 m 1.812 532.897 576.018 520.247 577.51 m(=x=)498.394 584 s(K)498.394 586 s (KL)498.394 588 s(?)506.794 590 s(=)519.497 584 s(K)519.497 583.51 s(KL) 519.497 586 s(=)531.747 584 s(K)531.747 582.065 s(KL)531.747 584 s 16 538(@)543.996 566 b %22/0 (FFFFCCCCCCC)64 566 s (C)533.996 566 s (FFFFCCCCCCC)64 522 s (C)533.996 522 s (FFFFCCCCCCC)64 478 s (C)533.996 478 s (FFFFCCCCCCC)64 434 s (C)533.996 434 s (!)64 379 s(')80 385 s(')84.5 391 s(!)64 335 s(')80 341 s(')84.5 347 s(#) 64 291 s(')80 295 s(')84.5 301 s(")63.5 247 s(')80 249 s(')84.5 255 s 16 247(@)64 379 b 60.5 395 247 k %23/4 1.8 163.219 245 97.75 245 m(K)97 257 s(KL)97 259 s(%)125.336 257 s(6) 130.836 257 s(K)162.069 257 s(KL)162.069 259 s(@)193.302 247 s %23/3 1.884 121.574 294.385 97.75 287 m 1.884 121.574 297.385 97.75 290 m 1.884 121.574 300.385 116.574 298.835 m(6)97 299 s(?)105.4 299 s(=) 120.424 309 s(K)120.424 306.261 s(KL)120.424 309 s 1.803 163.219 292.975 131.586 294.967 m(K)130.836 306.967 s(KL) 130.836 307 s(6)162.069 305 s 16 263(@)193.302 291 b %23/2 1.8 118.972 339 97.75 339 m 1.8 118.972 342 97.75 342 m(=)97 353 s(K) 97 351 s(KL)97 355 s(6)107.411 351 s(=x=)117.822 353 s(K)117.822 351 s(KL) 117.822 359 s 1.831 152.808 339.011 131.586 343 m 1.831 152.808 342.011 131.586 346 m(=x=)130.836 353 s(K)130.836 355 s(KL) 130.836 357 s(=)141.247 353 s(K)141.247 353.043 s(KL)141.247 355 s(=) 151.658 353 s(K)151.658 351.086 s(KL)151.658 353 s 1.831 184.041 338.925 162.819 342.914 m 1.831 184.041 341.925 162.819 345.914 m(=)162.069 353 s(K) 162.069 354.914 s(KL)162.069 355 s(=)172.48 353 s(K)172.48 352.957 s(KL) 172.48 353 s(6)182.891 351 s 16 307(@)193.302 335 b %23/1 1.8 118.972 383 97.75 383 m 1.8 118.972 386 97.75 386 m(=)97 397 s(K) 97 395 s(KL)97 399 s(6)107.411 395 s(=x=)117.822 397 s(K)117.822 395 s(KL) 117.822 403 s 1.831 152.808 383.011 131.586 387 m 1.831 152.808 386.011 131.586 390 m(=x=)130.836 397 s(K)130.836 399 s(KL) 130.836 401 s(=)141.247 397 s(K)141.247 397.043 s(KL)141.247 399 s(=) 151.658 397 s(K)151.658 395.086 s(KL)151.658 397 s 1.831 184.041 382.925 162.819 386.914 m 1.831 184.041 385.925 162.819 389.914 m(=)162.069 397 s(K) 162.069 398.914 s(KL)162.069 399 s(=)172.48 397 s(K)172.48 396.957 s(KL) 172.48 397 s(6)182.891 395 s 16 351(@)193.302 379 b %23/0 rm 10 ss(23)64 403 s 75.5 401 62 401 62 412 75.5 412 75.5 401 5 62 401 0.666 ll %24/4 mf 10 ss(8)199.548 253 s 1.818 227.454 252.942 213.676 254.939 m(=) 212.926 265 s(K)212.926 266.939 s(KL)212.926 267 s(=)226.304 265 s(6) 226.304 265 s(@)238.797 247 s %24/3 1.843 227.454 290.912 200.298 296.886 m(=)199.548 309 s(K) 199.548 308.886 s(KL)199.548 309 s(K)212.926 305.943 s(KL)212.926 307 s(%) 221.304 303 s(6)226.304 303 s 16 263(@)238.797 291 b %24/2 1.818 214.076 336.942 200.298 338.939 m(K)199.548 350.939 s(KL) 199.548 351 s(%)207.926 349 s(6)212.926 349 s(.)227.304 339 s 16 307(@)238.797 335 b %24/1 1.818 214.076 380.942 200.298 382.939 m(K)199.548 394.939 s(KL) 199.548 395 s(%)207.926 393 s(6)212.926 393 s(.)227.304 383 s 16 351(@)238.797 379 b %24/0 %25/4 1.807 289.919 246.153 245.793 250.124 m(K)245.043 262.124 s(KL) 245.043 263 s(6)257.536 261 s(K)288.769 258.189 s(KL)288.769 259 s (@)320.002 247 s %25/3 1.8 289.919 285 245.793 285 m(K)245.043 297 s(KL)245.043 305 s(6) 257.536 297 s(K)288.769 297 s(KL)288.769 299 s 16 263(@)320.002 291 b %25/2 (8)245.043 345 s 1.894 279.508 339.982 258.286 333 m 1.894 279.508 342.982 258.286 336 m(6)257.536 345 s 248.043 352 260.536 352 2.747 cv(K)267.947 348.425 s(KL)267.947 351 s(=) 278.358 353 s(K)278.358 351.85 s(KL)278.358 353 s 1.8 310.741 341 289.519 341 m 1.8 310.741 344 289.519 344 m(=) 288.769 353 s(K)288.769 353 s(KL)288.769 355 s(=)299.18 353 s(6) 299.18 353 s(=)309.591 353 s(K)309.591 353 s(KL)309.591 355 s 16 307(@)320.002 335 b %25/1 (8)245.043 389 s 1.894 279.508 383.982 258.286 377 m 1.894 279.508 386.982 258.286 380 m(6)257.536 389 s 248.043 396 260.536 396 2.747 cv(K)267.947 392.425 s(KL)267.947 395 s(=) 278.358 397 s(K)278.358 395.85 s(KL)278.358 397 s 1.8 310.741 385 289.519 385 m 1.8 310.741 388 289.519 388 m(=) 288.769 397 s(K)288.769 397 s(KL)288.769 399 s(=)299.18 397 s(6) 299.18 397 s(=)309.591 397 s(K)309.591 397 s(KL)309.591 399 s 16 351(@)320.002 379 b %25/0 %26/4 1.824 377.683 239.256 329.598 247.238 m(K)328.848 259.238 s(KL) 328.848 261 s(%)337.333 257 s(6)342.333 257 s(K)376.533 251.323 s(KL) 376.533 253 s(@)407.766 247 s %26/3 1.8 377.683 291 329.598 291 m(%)323.848 303 s(6)328.848 303 s(K) 342.333 303 s(KL)342.333 307 s(6)376.533 303 s 16 263(@)407.766 291 b %26/2 (8)328.848 343 s 1.894 367.272 338.958 343.083 331 m 1.894 367.272 341.958 343.083 334 m(6)342.333 343 s 331.848 349 345.333 349 3.045 cv(%)350.711 349 s(K)355.711 347.401 s(KL) 355.711 349 s(K)366.122 350.826 s(KL)366.122 351 s 1.8 398.505 339 377.283 339 m 1.8 398.505 342 377.283 342 m(=) 376.533 353 s(K)376.533 351 s(KL)376.533 353 s(6)386.944 351 s(=) 397.355 353 s(K)397.355 351 s(KL)397.355 353 s 16 307(@)407.766 335 b %26/1 (8)328.848 387 s 1.894 367.272 382.958 343.083 375 m 1.894 367.272 385.958 343.083 378 m(6)342.333 387 s 331.848 393 345.333 393 3.045 cv(%)350.711 393 s(K)355.711 391.401 s(KL) 355.711 393 s(K)366.122 394.826 s(KL)366.122 395 s 1.8 398.505 383 377.283 383 m 1.8 398.505 386 377.283 386 m(=) 376.533 397 s(K)376.533 395 s(KL)376.533 397 s(6)386.944 395 s(=) 397.355 397 s(K)397.355 395 s(KL)397.355 397 s 16 351(@)407.766 379 b %26/0 %27/4 1.8 441.033 239 414.762 239 m(K)414.012 251 s(KL)414.012 259 s(6) 426.505 251 s(K)439.883 251 s(KL)439.883 253 s(@)452.376 247 s %27/3 1.8 441.033 291 414.762 291 m(K)414.012 303 s(KL)414.012 305 s(K) 426.505 303 s(KL)426.505 307 s(%)434.883 303 s(6)439.883 303 s 16 263(@)452.376 291 b %27/2 1.8 441.033 327 414.762 327 m(K)414.012 339 s(KL)414.012 341 s(K) 426.505 339 s(KL)426.505 343 s(6)439.883 339 s 16 307(@)452.376 335 b %27/1 1.8 441.033 371 414.762 371 m(K)414.012 383 s(KL)414.012 385 s(K) 426.505 383 s(KL)426.505 387 s(6)439.883 383 s 16 351(@)452.376 379 b %27/0 %28/4 -1.8 519.009 265 464.472 265 m(5)458.622 249 s(J)481.526 249 s(JL) 481.526 245 s(J)512.759 249 s(JL)512.759 247 s(@)543.992 247 s %28/3 1.81 513.909 298.999 459.372 293 m(6)458.622 305 s(=x=)481.526 309 s(K) 481.526 307.519 s(KL)481.526 313 s(=)512.759 309 s(K)512.759 310.955 s(KL) 512.759 311 s 16 263(@)543.992 291 b %28/2 1.884 472.265 328.996 459.372 325 m 1.884 472.265 331.996 459.372 328 m 1.884 472.265 334.996 467.265 333.446 m(6)458.622 337 s(?)467.022 339 s (Kxx~K)471.115 340.872 s(KL)471.115 351 s 1.831 503.498 338.925 482.276 342.914 m 1.831 503.498 341.925 482.276 345.914 m(=)481.526 353 s(K) 481.526 354.914 s(KL)481.526 355 s(=)491.937 353 s(K)491.937 352.957 s(KL) 491.937 353 s(6)502.348 351 s 1.8 534.731 335 513.509 335 m 1.8 534.731 338 513.509 338 m(K)512.759 347 s(KL)512.759 349 s(K) 523.17 347 s(KL)523.17 351 s(6)533.581 347 s 16 307(@)543.992 335 b %28/1 1.884 472.265 372.996 459.372 369 m 1.884 472.265 375.996 459.372 372 m 1.884 472.265 378.996 467.265 377.446 m(6)458.622 381 s(?)467.022 383 s (Kxx~K)471.115 384.872 s(KL)471.115 395 s 1.831 503.498 382.925 482.276 386.914 m 1.831 503.498 385.925 482.276 389.914 m(=)481.526 397 s(K) 481.526 398.914 s(KL)481.526 399 s(=)491.937 397 s(K)491.937 396.957 s(KL) 491.937 397 s(6)502.348 395 s 1.8 534.731 379 513.509 379 m 1.8 534.731 382 513.509 382 m(K)512.759 391 s(KL)512.759 393 s(K) 523.17 391 s(KL)523.17 395 s(6)533.581 391 s 16 351(@)543.992 379 b %28/0 (FFFFCCCCCCC)64 379 s (C)533.992 379 s (FFFFCCCCCCC)64 335 s (C)533.992 335 s (FFFFCCCCCCC)64 291 s (C)533.992 291 s (FFFFCCCCCCC)64 247 s (C)533.992 247 s (!)64 192 s(')80 198 s(')84.5 204 s(!)64 148 s(')80 154 s(')84.5 160 s(#) 64 104 s(')80 108 s(')84.5 114 s(")63.5 60 s(')80 62 s(')84.5 68 s 16 60(@)64 192 b 60.5 208 60 k %29/4 1.814 176.888 59.971 97.75 50 m(6)97 62 s(Kxx~K)119.496 64.834 s(KL) 119.496 76 s(K)175.738 71.92 s(KL)175.738 72 s(@)231.98 60 s %29/3 1.8 176.888 106 97.75 106 m(=)97 122 s(K)97 118 s(KL)97 122 s(6) 119.496 118 s(=x=)175.738 122 s(K)175.738 118 s(KL)175.738 126 s 16 76(@)231.98 104 b %29/2 (8)97 158 s 1.809 158.14 149.978 120.246 146 m 1.809 158.14 152.978 120.246 149 m(6)119.496 158 s 100 165 122.496 165 5 cv(\()133.993 160 s(K)138.243 159.968 s(KL)138.243 160 s(%) 151.99 162 s(K)156.99 161.936 s(KL)156.99 162 s 1.809 214.382 155.978 176.488 152 m 1.809 214.382 158.978 176.488 155 m(6) 175.738 164 s(=)194.485 166 s(K)194.485 165.968 s(KL)194.485 166 s(=) 213.232 166 s(K)213.232 167.936 s(KL)213.232 168 s 16 120(@)231.98 148 b %29/1 (8)97 202 s 1.809 158.14 193.978 120.246 190 m 1.809 158.14 196.978 120.246 193 m(6)119.496 202 s 100 209 122.496 209 5 cv(\()133.993 204 s(K)138.243 203.968 s(KL)138.243 204 s(%) 151.99 206 s(K)156.99 205.936 s(KL)156.99 206 s 1.809 214.382 199.978 176.488 196 m 1.809 214.382 202.978 176.488 199 m(6) 175.738 208 s(=)194.485 210 s(K)194.485 209.968 s(KL)194.485 210 s(=) 213.232 210 s(K)213.232 211.936 s(KL)213.232 212 s 16 164(@)231.98 192 b %29/0 rm 10 ss(29)64 216 s 75.5 214 62 214 62 225 75.5 225 75.5 214 5 62 214 0.666 ll %30/4 1.813 310.779 53.951 246.578 61.911 m mf 10 ss(K)245.828 73.911 s(KL) 245.828 74 s(%)281.633 70 s(K)287.133 68.79 s(KL)287.133 70 s(6) 309.629 66 s(@)358.164 60 s %30/3 1.8 310.779 104 246.578 104 m(%)240.828 116 s(6)245.828 116 s(K) 287.133 116 s(KL)287.133 120 s(6)309.629 116 s 16 76(@)358.164 104 b %30/2 1.884 269.536 151.116 246.578 144 m 1.884 269.536 154.116 246.578 147 m 1.884 269.536 157.116 264.536 155.566 m(6)245.828 156 s(?)254.228 156 s (=x=)268.386 166 s(K)268.386 162.992 s(KL)268.386 170 s 1.805 340.567 152.049 287.883 156 m 1.805 340.567 155.049 321.42 156.485 m 1.805 340.567 158.049 321.42 159.485 m(=x=)287.133 166 s(K)287.133 168 s (KL)287.133 170 s(?)295.533 172 s(=)320.67 166 s(K)320.67 165.485 s(KL) 320.67 168 s(=)339.417 166 s(K)339.417 164.079 s(KL)339.417 166 s 16 120(@)358.164 148 b %30/1 1.884 269.536 195.116 246.578 188 m 1.884 269.536 198.116 246.578 191 m 1.884 269.536 201.116 264.536 199.566 m(6)245.828 200 s(?)254.228 200 s (=x=)268.386 210 s(K)268.386 206.992 s(KL)268.386 214 s 1.805 340.567 196.049 287.883 200 m 1.805 340.567 199.049 321.42 200.485 m 1.805 340.567 202.049 321.42 203.485 m(=x=)287.133 210 s(K)287.133 212 s (KL)287.133 214 s(?)295.533 216 s(=)320.67 210 s(K)320.67 209.485 s(KL) 320.67 212 s(=)339.417 210 s(K)339.417 208.079 s(KL)339.417 210 s 16 164(@)358.164 192 b %30/0 %31/4 -1.803 438.718 82.025 375.262 78.028 m -1.803 419.97 77.844 375.262 75.028 m -1.803 419.97 74.844 414.97 74.529 m(J)369.412 62.028 s(JL)369.412 62 s(?) 377.812 64 s(J)413.72 64.819 s(JL)413.72 64 s(5)432.468 66 s it 10 ss(C.B.) 449.074 84 s mf 10 ss(7)454.964 66 s(=)454.964 54 s(5)454.964 52 s (@)478.211 60 s %31/3 1.8 456.114 104 370.162 104 m(K)369.412 116 s(KL)369.412 118 s(K) 432.468 116 s(KL)432.468 118 s(%)449.964 116 s(6)454.964 116 s 16 76(@)478.211 104 b %31/2 1.839 408.056 148.005 370.162 156 m 1.839 408.056 151.005 370.162 159 m (=x=)369.412 166 s(K)369.412 168 s(KL)369.412 172 s(=)388.159 166 s(K) 388.159 164.045 s(KL)388.159 168 s(K)406.906 160.089 s(KL)406.906 164 s 1.806 456.114 153.966 433.218 155.957 m(=)432.468 166 s(K) 432.468 167.957 s(KL)432.468 168 s(=)454.964 166 s(6)454.964 166 s(\210) 454.964 174 s 16 120(@)478.211 148 b %31/1 1.839 408.056 192.005 370.162 200 m 1.839 408.056 195.005 370.162 203 m (=x=)369.412 210 s(K)369.412 212 s(KL)369.412 216 s(=)388.159 210 s(K) 388.159 208.045 s(KL)388.159 212 s(K)406.906 204.089 s(KL)406.906 208 s 1.806 456.114 197.966 433.218 199.957 m(=)432.468 210 s(K) 432.468 211.957 s(KL)432.468 212 s(=)454.964 210 s(6)454.964 210 s(\210) 454.964 218 s 16 164(@)478.211 192 b %31/0 %32/4 (5)489.459 58 s(.)520.454 64 s(B)542.498 60 s(@)540.498 60 s %32/3 (6)489.459 118 s(.)520.454 108 s 16 76(B)542.498 104 b 16 76(@)540.498 104 b %32/2 (6)489.459 164 s(.)520.454 152 s 16 120(B)542.498 148 b 16 120(@)540.498 148 b %32/1 (6)489.459 208 s(.)520.454 196 s 16 164(B)542.498 192 b 16 164(@)540.498 192 b %32/0 (FFFFCCCCCCC)64 192 s (C)533.998 192 s (FFFFCCCCCCC)64 148 s (C)533.998 148 s (FFFFCCCCCCC)64 104 s (C)533.998 104 s (FFFFCCCCCCC)64 60 s (C)533.998 60 s pagesave restore showpage %%Page: 6 6 %%BeginPageSetup /pagesave save def %%EndPageSetup rm 10 ss(6 )44.2 800 s( )558 800 s rm 12 ss(III)298.006 773.5 s rm 10 ss (V)65.665 720.5 s(iolin I)-0.6 0 rs mf 10 ss(!)104.12 716.5 s(') 120.12 722.5 s(')124.62 728.5 s bf 11.8 ss(6)129.12 724.5 s(8) 129.12 716.65 s rm 10 ss(V)64 676.5 s(iolin II)-0.6 0 rs mf 10 ss(!) 104.12 672.5 s(')120.12 678.5 s(')124.62 684.5 s bf 11.8 ss(6) 129.12 680.5 s(8)129.12 672.65 s rm 10 ss(V)70.25 632.5 s(iola)-0.6 0 rs mf 10 ss(#)104.12 628.5 s(')120.12 632.5 s(')124.62 638.5 s bf 11.8 ss(6) 129.12 636.5 s(8)129.12 628.65 s rm 10 ss(Cello)70.225 593.5 s(Bass) 71.615 583.5 s mf 10 ss(")103.62 584.5 s(')120.12 586.5 s(') 124.62 592.5 s bf 11.8 ss(6)129.12 592.5 s(8)129.12 584.65 s mf 10 ss 16 584.5(@)104.12 716.5 b 100.62 732.5 584.5 k %1/4 bi 10 ss(f)143.02 574.5 s mf 10 ss(5)143.02 586.5 s(?)151.42 588.5 s(5) 174.05 588.5 s(?)182.45 588.5 s(@)213.947 584.5 s %1/3 bi 10 ss(f)143.02 618.5 s mf 10 ss(6)143.02 640.5 s(?)151.42 640.5 s(6) 174.05 644.5 s(?)182.45 644.5 s 16 600.5(@)213.947 628.5 b %1/2 bi 10 ss(f)143.02 662.5 s mf 10 ss(=)143.02 690.5 s(6)143.02 692.5 s(>) 143.02 692.5 s(8)160.751 682.5 s(>)160.751 684.5 s 1.819 201.798 668.441 174.8 672.436 m(K)174.05 684.436 s(KL) 174.05 684.5 s(K)187.349 682.468 s(KL)187.349 682.5 s(6)200.648 680.5 s 16 644.5(@)213.947 672.5 b %1/1 bi 10 ss(f)143.02 706.5 s mf 10 ss(=)143.02 734.5 s(6)143.02 736.5 s(>) 143.02 736.5 s(8)160.751 726.5 s(>)160.751 728.5 s 1.819 201.798 712.441 174.8 716.436 m(K)174.05 728.436 s(KL) 174.05 728.5 s(K)187.349 726.468 s(KL)187.349 726.5 s(6)200.648 724.5 s 16 688.5(@)213.947 716.5 b %1/0 bf 10 ss(Allegr)129.12 751.5 s(o)-0.18 0 rs %2/4 mf 10 ss(5)221.1 590.5 s(?)229.5 592.5 s(5)260.996 588.5 s(?) 269.396 588.5 s(@)300.893 584.5 s %2/3 (6)221.1 640.5 s(?)229.5 640.5 s(6)260.996 644.5 s(?)269.396 644.5 s 16 600.5(@)300.893 628.5 b %2/2 1.877 248.847 674.491 221.85 666.5 m(6)221.1 678.5 s(K)234.398 682.436 s (KL)234.398 682.5 s(K)247.697 686.372 s(KL)247.697 686.5 s 1.8 288.744 668.5 261.746 668.5 m(K)260.996 680.5 s(KL)260.996 684.5 s(6) 274.295 680.5 s(K)287.594 680.5 s(KL)287.594 688.5 s 16 644.5(@)300.893 672.5 b %2/1 1.877 248.847 718.491 221.85 710.5 m(6)221.1 722.5 s(K)234.398 726.436 s (KL)234.398 726.5 s(K)247.697 730.372 s(KL)247.697 730.5 s 1.8 288.744 712.5 261.746 712.5 m(K)260.996 724.5 s(KL)260.996 728.5 s(6) 274.295 724.5 s(K)287.594 724.5 s(KL)287.594 732.5 s 16 688.5(@)300.893 716.5 b %2/0 %3/4 (6)308.046 590.5 s(?)316.446 592.5 s(6)347.942 592.5 s(8)374.54 594.5 s (@)387.839 584.5 s %3/3 (=)308.046 646.5 s(6)308.046 646.5 s(8)334.643 640.5 s 1.819 375.69 626.441 348.692 630.436 m(K)347.942 642.436 s(KL) 347.942 642.5 s(K)361.241 640.468 s(KL)361.241 640.5 s(6)374.54 638.5 s 16 600.5(@)387.839 628.5 b %3/2 1.843 335.793 680.493 308.796 674.5 m(6)308.046 686.5 s(=) 321.344 690.5 s(K)321.344 689.452 s(KL)321.344 690.5 s(=)334.643 690.5 s(K) 334.643 692.404 s(KL)334.643 692.5 s 1.819 375.69 668.441 348.692 672.436 m(K)347.942 684.436 s(KL) 347.942 684.5 s(K)361.241 682.468 s(KL)361.241 682.5 s(6)374.54 680.5 s 16 644.5(@)387.839 672.5 b %3/1 1.843 335.793 724.493 308.796 718.5 m(6)308.046 730.5 s(=) 321.344 734.5 s(K)321.344 733.452 s(KL)321.344 734.5 s(=)334.643 734.5 s(K) 334.643 736.404 s(KL)334.643 736.5 s 1.819 375.69 712.441 348.692 716.436 m(K)347.942 728.436 s(KL) 347.942 728.5 s(K)361.241 726.468 s(KL)361.241 726.5 s(6)374.54 724.5 s 16 688.5(@)387.839 716.5 b %3/0 %4/4 (5)394.992 586.5 s(7)412.723 588.5 s -1.819 458.87 602.505 431.872 606.5 m(5)426.022 590.5 s(J) 439.321 588.532 s(JL)439.321 588.5 s(J)452.62 586.564 s(JL) 452.62 586.5 s(@)465.919 584.5 s %4/3 (6)394.992 636.5 s(8)412.723 638.5 s(6)426.022 640.5 s(=)452.62 646.5 s(8) 452.62 646.5 s 16 600.5(@)465.919 628.5 b %4/2 (6)394.992 678.5 s(?)403.392 680.5 s(.)427.022 676.5 s(.)440.321 676.5 s(8) 452.62 682.5 s 16 644.5(@)465.919 672.5 b %4/1 (6)394.992 722.5 s(?)403.392 724.5 s(.)427.022 720.5 s(.)440.321 720.5 s(8) 452.62 730.5 s 16 688.5(@)465.919 716.5 b %4/0 %5/4 (6)473.072 592.5 s(?)481.472 592.5 s(6)512.968 592.5 s 476.072 598.5 515.968 598.5 5 cv(8)530.7 596.5 s(@)543.999 584.5 s %5/3 (=)473.072 646.5 s(4)473.072 646.5 s(?)481.472 648.5 s 16 600.5(@)543.999 628.5 b %5/2 1.8 500.819 672.5 473.822 672.5 m(6)473.072 684.5 s(>)473.072 684.5 s(6) 486.37 684.5 s(>)486.37 684.5 s(6)499.669 684.5 s(>)499.669 684.5 s(6) 512.968 684.5 s(?)521.368 684.5 s 16 644.5(@)543.999 672.5 b %5/1 1.8 500.819 720.5 473.822 720.5 m(6)473.072 732.5 s(>)473.072 732.5 s(6) 486.37 732.5 s(>)486.37 732.5 s(6)499.669 732.5 s(>)499.669 732.5 s(6) 512.968 732.5 s(=)530.7 734.5 s(8)530.7 736.5 s 16 688.5(@)543.999 716.5 b %5/0 (FFFFCCC)104.12 716.5 s (C)533.999 716.5 s (FFFFCCC)104.12 672.5 s (C)533.999 672.5 s (FFFFCCC)104.12 628.5 s (C)533.999 628.5 s (FFFFCCC)104.12 584.5 s (C)533.999 584.5 s (!)64 540.5 s(')80 546.5 s(')84.5 552.5 s(!)64 496.5 s(')80 502.5 s(') 84.5 508.5 s(#)64 452.5 s(')80 456.5 s(')84.5 462.5 s(")63.5 408.5 s(') 80 410.5 s(')84.5 416.5 s 16 408.5(@)64 540.5 b 60.5 556.5 408.5 k %6/4 (6)97 424.5 s(?)105.4 424.5 s(6)142.481 424.5 s 100 430.5 145.481 430.5 5 cv(8)162.694 414.5 s(@)177.855 408.5 s %6/3 (5)97 456.5 s(?)105.4 456.5 s(5)142.481 456.5 s 100 454.5 145.481 454.5 -5 cv(.)163.694 456.5 s 16 424.5(@)177.855 452.5 b %6/2 1.8 128.47 494.5 97.75 494.5 m(6)97 506.5 s(>)97 508.5 s(6) 112.16 506.5 s(>)112.16 508.5 s(6)127.32 506.5 s(>)127.32 508.5 s(6) 142.481 506.5 s(?)150.881 508.5 s 16 468.5(@)177.855 496.5 b %6/1 1.8 128.47 542.5 97.75 542.5 m(6)97 554.5 s(>)97 554.5 s(6) 112.16 554.5 s(>)112.16 554.5 s(6)127.32 554.5 s(>)127.32 554.5 s(6) 142.481 554.5 s(=)162.694 558.5 s(8)162.694 560.5 s 16 512.5(@)177.855 540.5 b %6/0 rm 10 ss(6)64 564.5 s 70.5 562.5 62 562.5 62 573.5 70.5 573.5 70.5 562.5 5 62 562.5 0.666 ll %7/4 mf 10 ss(5)186.009 412.5 s(?)194.409 412.5 s(5)231.49 410.5 s(?) 239.89 412.5 s(@)276.971 408.5 s %7/3 (6)186.009 458.5 s(?)194.409 460.5 s(6)231.49 464.5 s(?)239.89 464.5 s 16 424.5(@)276.971 452.5 b %7/2 (5)186.009 500.5 s(?)194.409 500.5 s(5)231.49 502.5 s(8)261.811 504.5 s 16 468.5(@)276.971 496.5 b %7/1 1.815 217.479 536.448 186.759 540.441 m(K)186.009 552.441 s(KL) 186.009 552.5 s(K)201.169 550.471 s(KL)201.169 550.5 s(6)216.329 548.5 s 1.8 262.961 534.5 232.24 534.5 m(K)231.49 546.5 s(KL)231.49 550.5 s(6) 246.65 546.5 s(K)261.811 546.5 s(KL)261.811 554.5 s 16 512.5(@)276.971 540.5 b %7/0 %8/4 (5)285.125 404.5 s(8)305.338 418.5 s -1.815 357.069 426.507 326.348 430.5 m(5)320.498 414.5 s(J) 335.659 412.53 s(JL)335.659 412.5 s(J)350.819 410.559 s(JL) 350.819 410.5 s(@)365.98 408.5 s %8/3 (6)285.125 464.5 s(8)305.338 458.5 s(5)320.498 450.5 s(7)350.819 456.5 s 16 424.5(@)365.98 452.5 b %8/2 (5)285.125 502.5 s(7)305.338 500.5 s(.)321.498 500.5 s(.)336.659 500.5 s(7) 350.819 492.5 s 16 468.5(@)365.98 496.5 b %8/1 (6)285.125 550.5 s(8)305.338 548.5 s(.)321.498 544.5 s(.)336.659 544.5 s(7) 350.819 540.5 s 16 512.5(@)365.98 540.5 b %8/0 %9/4 (6)374.134 416.5 s(?)382.534 416.5 s(6)419.615 416.5 s 377.134 422.5 422.615 422.5 5 cv(8)439.828 420.5 s(@)454.989 408.5 s %9/3 (3)374.134 456.5 s(?)382.534 456.5 s 16 424.5(@)454.989 452.5 b %9/2 -1.8 410.704 510.5 379.984 510.5 m(5)374.134 494.5 s(>)374.134 486.5 s(5) 389.294 494.5 s(>)389.294 486.5 s(5)404.454 494.5 s(>)404.454 486.5 s(5) 419.615 494.5 s(?)428.015 496.5 s 16 468.5(@)454.989 496.5 b %9/1 -1.8 410.704 558.5 379.984 558.5 m(5)374.134 542.5 s(>)374.134 532.5 s(5) 389.294 542.5 s(>)389.294 532.5 s(5)404.454 542.5 s(>)404.454 532.5 s(5) 419.615 542.5 s(7)439.828 546.5 s 16 512.5(@)454.989 540.5 b %9/0 %10/4 (6)463.143 424.5 s(?)471.543 424.5 s(6)508.624 424.5 s 466.143 430.5 511.624 430.5 5 cv(8)528.837 414.5 s(@)543.998 408.5 s %10/3 (5)463.143 456.5 s(?)471.543 456.5 s(5)508.624 456.5 s 466.143 454.5 511.624 454.5 -5 cv(8)528.837 464.5 s 16 424.5(@)543.998 452.5 b %10/2 -1.8 499.713 508.5 468.993 508.5 m(5)463.143 492.5 s(>)463.143 484.5 s(5) 478.303 492.5 s(>)478.303 484.5 s(5)493.463 492.5 s(>)493.463 484.5 s(5) 508.624 492.5 s(?)517.024 492.5 s 16 468.5(@)543.998 496.5 b %10/1 -1.8 499.713 556.5 468.993 556.5 m(5)463.143 540.5 s(>)463.143 532.5 s(5) 478.303 540.5 s(>)478.303 532.5 s(5)493.463 540.5 s(>)493.463 532.5 s(5) 508.624 540.5 s(7)528.837 546.5 s 16 512.5(@)543.998 540.5 b %10/0 (FFFFCCCCCCC)64 540.5 s (C)533.998 540.5 s (FFFFCCCCCCC)64 496.5 s (C)533.998 496.5 s (FFFFCCCCCCC)64 452.5 s (C)533.998 452.5 s (FFFFCCCCCCC)64 408.5 s (C)533.998 408.5 s (!)64 364.5 s(')80 370.5 s(')84.5 376.5 s(!)64 320.5 s(')80 326.5 s(') 84.5 332.5 s(#)64 276.5 s(')80 280.5 s(')84.5 286.5 s(")63.5 232.5 s(') 80 234.5 s(')84.5 240.5 s 16 232.5(@)64 364.5 b 60.5 380.5 232.5 k %11/4 (5)97 236.5 s(?)105.4 236.5 s(5)139.591 234.5 s(?)147.991 236.5 s (@)182.183 232.5 s %11/3 (5)97 282.5 s(?)105.4 284.5 s(5)139.591 274.5 s(?)147.991 276.5 s 16 248.5(@)182.183 276.5 b %11/2 (=w=)97 314.5 s(J)97 312.5 s(JL)97 310.5 s(?)105.4 312.5 s(=) 139.591 314.5 s(5)139.591 312.5 s(7)167.986 316.5 s 16 292.5(@)182.183 320.5 b %11/1 -1.817 131.644 374.527 102.85 378.5 m(5)97 362.5 s(J)111.197 360.541 s(JL) 111.197 360.5 s(=)125.394 358.5 s(J)125.394 358.582 s(JL)125.394 358.5 s -1.894 174.236 386.632 145.441 377.159 m(J)139.591 361.159 s(JL) 139.591 360.5 s(J)153.789 365.83 s(JL)153.789 364.5 s(5)167.986 370.5 s 16 336.5(@)182.183 364.5 b %11/0 rm 10 ss(11)64 388.5 s 75.5 386.5 62 386.5 62 397.5 75.5 397.5 75.5 386.5 5 62 386.5 0.666 ll %12/4 mf 10 ss(6)189.819 242.5 s(7)208.748 228.5 s -1.817 257.59 244.527 228.796 248.5 m(5)222.946 232.5 s(J) 237.143 230.541 s(JL)237.143 230.5 s(J)251.34 228.582 s(JL) 251.34 228.5 s(@)265.537 232.5 s %12/3 (5)189.819 274.5 s(7)208.748 278.5 s -1.817 257.59 294.527 228.796 298.5 m(5)222.946 282.5 s(J) 237.143 280.541 s(JL)237.143 280.5 s(J)251.34 278.582 s(JL) 251.34 278.5 s 16 248.5(@)265.537 276.5 b %12/2 (=)189.819 314.5 s(5)189.819 312.5 s(=w=)208.748 314.5 s(EJ) 208.748 312.5 s(JL)208.748 310.5 s(.)223.946 324.5 s(.)238.143 324.5 s(8) 251.34 328.5 s(>)251.34 328.5 s 16 292.5(@)265.537 320.5 b %12/1 (5)189.819 360.5 s(=)208.748 358.5 s(7)208.748 358.5 s(.)223.946 368.5 s(.) 238.143 368.5 s(8)251.34 372.5 s(>)251.34 372.5 s 16 336.5(@)265.537 364.5 b %12/0 %13/4 (5)273.173 234.5 s(?)281.573 236.5 s(5)315.764 236.5 s(?)324.164 236.5 s (@)358.356 232.5 s %13/3 (3)273.173 280.5 s(?)281.573 280.5 s 16 248.5(@)358.356 276.5 b %13/2 1.8 302.717 312.5 273.923 312.5 m(K)273.173 324.5 s(KL)273.173 330.5 s(>) 273.173 332.5 s(6)287.37 324.5 s(K)301.567 324.5 s(KL)301.567 326.5 s 1.8 345.309 312.5 316.514 312.5 m(\()311.514 332.5 s(K)315.764 324.5 s(KL) 315.764 332.5 s(>)315.764 332.5 s(6)329.962 324.5 s(K)344.159 324.5 s(KL) 344.159 326.5 s 16 292.5(@)358.356 320.5 b %13/1 1.8 302.717 356.5 273.923 356.5 m(K)273.173 368.5 s(KL)273.173 374.5 s(>) 273.173 376.5 s(6)287.37 368.5 s(K)301.567 368.5 s(KL)301.567 370.5 s 1.8 345.309 356.5 316.514 356.5 m(\()311.514 376.5 s(K)315.764 368.5 s(KL) 315.764 376.5 s(>)315.764 376.5 s(6)329.962 368.5 s(K)344.159 368.5 s(KL) 344.159 370.5 s 16 336.5(@)358.356 364.5 b %13/0 %14/4 (6)365.992 238.5 s(?)374.392 240.5 s(\()403.908 240.5 s(6) 408.583 240.5 s(?)416.983 240.5 s(@)451.175 232.5 s %14/3 (5)365.992 280.5 s(?)374.392 280.5 s(5)408.583 280.5 s 368.992 278.5 411.583 278.5 -5 cv(8)436.978 290.5 s 16 248.5(@)451.175 276.5 b %14/2 1.8 395.536 312.5 366.742 312.5 m(Kxx~K)365.992 324.5 s(L) 365.992 334.5 s(>)365.992 334.5 s(6)380.189 324.5 s(K)394.386 324.5 s(KL) 394.386 326.5 s 1.8 438.128 312.5 409.333 312.5 m(Kxx~K)408.583 324.5 s(KL) 408.583 336.5 s(>)408.583 336.5 s(6)422.781 324.5 s(K)436.978 324.5 s(KL) 436.978 326.5 s 16 292.5(@)451.175 320.5 b %14/1 1.8 395.536 356.5 366.742 356.5 m(Kxx~K)365.992 368.5 s(L) 365.992 378.5 s(>)365.992 378.5 s(6)380.189 368.5 s(K)394.386 368.5 s(KL) 394.386 370.5 s 1.8 438.128 356.5 409.333 356.5 m(Kxx~K)408.583 368.5 s(KL) 408.583 380.5 s(>)408.583 380.5 s(6)422.781 368.5 s(K)436.978 368.5 s(KL) 436.978 370.5 s 16 336.5(@)451.175 364.5 b %14/0 %15/4 (6)458.811 242.5 s(?)467.211 244.5 s(6)501.402 248.5 s(?)509.802 248.5 s (@)543.994 232.5 s %15/3 (5)458.811 282.5 s(?)467.211 284.5 s(5)501.402 280.5 s(8)529.797 284.5 s(>) 529.797 284.5 s 16 248.5(@)543.994 276.5 b %15/2 1.8 488.355 320.5 459.561 320.5 m(=)458.811 338.5 s(K)458.811 332.5 s(KL) 458.811 338.5 s(>)458.811 338.5 s(\()468.758 332.5 s(6)473.008 332.5 s(K) 487.205 332.5 s(KL)487.205 334.5 s(5)501.402 320.5 s(7)529.797 326.5 s 16 292.5(@)543.994 320.5 b %15/1 1.8 488.355 364.5 459.561 364.5 m(=)458.811 382.5 s(K)458.811 376.5 s(KL) 458.811 382.5 s(>)458.811 382.5 s(\()468.758 376.5 s(6)473.008 376.5 s(K) 487.205 376.5 s(KL)487.205 378.5 s 1.838 530.947 368.489 502.152 362.5 m(6) 501.402 374.5 s(=)515.6 382.5 s(K)515.6 377.453 s(KL)515.6 384.5 s(K) 529.797 380.406 s(KL)529.797 380.5 s 16 336.5(@)543.994 364.5 b %15/0 (FFFFCCCCCCC)64 364.5 s (C)533.994 364.5 s (FFFFCCCCCCC)64 320.5 s (C)533.994 320.5 s (FFFFCCCCCCC)64 276.5 s (C)533.994 276.5 s (FFFFCCCCCCC)64 232.5 s (C)533.994 232.5 s (!)64 188.5 s(')80 194.5 s(')84.5 200.5 s(!)64 144.5 s(')80 150.5 s(') 84.5 156.5 s(#)64 100.5 s(')80 104.5 s(')84.5 110.5 s(")63.5 56.5 s(') 80 58.5 s(')84.5 64.5 s 16 56.5(@)64 188.5 b 60.5 204.5 56.5 k %16/4 1.8 130.761 48.5 97.75 48.5 m(=)97 74.5 s(Kxx~K)97 60.5 s(KL)97 74.5 s(6) 113.305 60.5 s(=)129.611 74.5 s(Kxx~K)129.611 60.5 s(KL)129.611 74.5 s 1.813 179.679 56.452 146.667 60.446 m(K)145.917 72.446 s(KL) 145.917 72.5 s(K)162.223 70.473 s(KL)162.223 70.5 s(6)178.529 68.5 s (@)194.835 56.5 s %16/3 (6)97 106.5 s(\()124.936 110.5 s(8)129.611 110.5 s 1.813 179.679 98.452 146.667 102.446 m(K)145.917 114.446 s(KL) 145.917 114.5 s(K)162.223 112.473 s(KL)162.223 112.5 s(6)178.529 110.5 s 16 72.5(@)194.835 100.5 b %16/2 (5)97 148.5 s(7)129.611 146.5 s(.)146.917 148.5 s(.)163.223 148.5 s(8) 178.529 160.5 s 16 116.5(@)194.835 144.5 b %16/1 (6)97 202.5 s(\()124.936 200.5 s(8)129.611 200.5 s(.)146.917 192.5 s(.) 163.223 192.5 s(8)178.529 204.5 s 16 160.5(@)194.835 188.5 b %16/0 rm 10 ss(16)64 212.5 s 75.5 210.5 62 210.5 62 221.5 75.5 221.5 75.5 210.5 5 62 210.5 0.666 ll %17/4 mf 10 ss(6)203.605 70.5 s(?)212.005 72.5 s(6)252.522 68.5 s(?) 260.922 68.5 s(@)301.44 56.5 s %17/3 (6)203.605 116.5 s(=)236.216 118.5 s(8)236.216 120.5 s(6)252.522 108.5 s(7) 285.134 104.5 s 16 72.5(@)301.44 100.5 b %17/2 1.8 237.366 140.5 204.355 140.5 m(K)203.605 152.5 s(KL)203.605 160.5 s(6) 219.91 152.5 s(K)236.216 152.5 s(KL)236.216 158.5 s(6)252.522 158.5 s(\() 280.459 156.5 s(8)285.134 156.5 s 16 116.5(@)301.44 144.5 b %17/1 (=x=)203.605 206.5 s(K)203.605 208.5 s(KL)203.605 210.5 s(=) 236.216 206.5 s(8)236.216 206.5 s 1.813 286.284 192.452 253.272 196.446 m(=)252.522 206.5 s(K) 252.522 208.446 s(KL)252.522 208.5 s(=)268.828 206.5 s(K) 268.828 206.473 s(KL)268.828 206.5 s(6)285.134 204.5 s 16 160.5(@)301.44 188.5 b %17/0 %18/4 (6)310.21 66.5 s(8)342.821 68.5 s(6)359.127 70.5 s(8)391.739 72.5 s (@)408.045 56.5 s %18/3 (6)310.21 106.5 s(8)342.821 114.5 s(6)359.127 112.5 s(8)391.739 112.5 s 16 72.5(@)408.045 100.5 b %18/2 (6)310.21 158.5 s(8)342.821 150.5 s(6)359.127 152.5 s(7)391.739 144.5 s 16 116.5(@)408.045 144.5 b %18/1 1.829 343.971 187.477 310.96 193.451 m(=)310.21 206.5 s(K) 310.21 205.451 s(KL)310.21 206.5 s(6)326.515 202.5 s(\()338.571 200.5 s(K) 342.821 199.549 s(KL)342.821 200.5 s 1.8 392.889 184.5 359.877 184.5 m(K) 359.127 196.5 s(KL)359.127 202.5 s(6)375.433 196.5 s(K)391.739 196.5 s(KL) 391.739 198.5 s 16 160.5(@)408.045 188.5 b %18/0 %19/4 (=)416.815 74.5 s(6)416.815 74.5 s(?)425.215 76.5 s(5)465.732 60.5 s(?) 474.132 60.5 s(@)491.822 56.5 s %19/3 (6)416.815 106.5 s(?)425.215 108.5 s(6)465.732 106.5 s(?)474.132 108.5 s 16 72.5(@)491.822 100.5 b %19/2 (5)416.815 144.5 s(?)425.215 144.5 s(\()461.057 142.5 s(5) 465.732 142.5 s(?)474.132 144.5 s 16 116.5(@)491.822 144.5 b %19/1 -1.8 455.676 210.5 422.665 210.5 m(J)416.815 194.5 s(JL)416.815 192.5 s(5) 433.12 194.5 s(J)449.426 194.5 s(JL)449.426 192.5 s(5)465.732 190.5 s(?) 474.132 192.5 s 16 160.5(@)491.822 188.5 b %19/0 %20/4 (3)500.592 52.5 s(?)508.992 52.5 s(B)542.196 56.5 s(@)540.296 56.5 s(xI) 537.796 56.5 s(@)543.996 56.5 s %20/3 (4)500.592 106.5 s(?)508.992 108.5 s 16 72.5(B)542.196 100.5 b 16 72.5(@)540.296 100.5 b(xI)537.796 100.5 s 16 72.5(@)543.996 100.5 b %20/2 (3)500.592 144.5 s(?)508.992 144.5 s 16 116.5(B)542.196 144.5 b 16 116.5(@)540.296 144.5 b(xI)537.796 144.5 s 16 116.5(@)543.996 144.5 b %20/1 (3)500.592 188.5 s(?)508.992 188.5 s 16 160.5(B)542.196 188.5 b 16 160.5(@)540.296 188.5 b(xI)537.796 188.5 s 16 160.5(@)543.996 188.5 b %20/0 (FFFFCCCCCCC)64 188.5 s (C)533.996 188.5 s (FFFFCCCCCCC)64 144.5 s (C)533.996 144.5 s (FFFFCCCCCCC)64 100.5 s (C)533.996 100.5 s (FFFFCCCCCCC)64 56.5 s (C)533.996 56.5 s pagesave restore showpage %%Page: 7 7 %%BeginPageSetup /pagesave save def %%EndPageSetup rm 10 ss( )44.2 800 s( 7)553 800 s mf 10 ss(!)64 753 s(')80 759 s(') 84.5 765 s(!)64 709 s(')80 715 s(')84.5 721 s(#)64 665 s(')80 669 s(') 84.5 675 s(")63.5 621 s(')80 623 s(')84.5 629 s 16 621(@)64 753 b 60.5 769 621 k %21/4 (6)99 631 s(?)107.4 633 s(6)134.217 633 s(?)142.617 633 s (@)179.494 621 s %21/3 (6)99 671 s(?)107.4 673 s(\()129.542 675 s(6)134.217 675 s(?) 142.617 677 s 16 637(@)179.494 665 b %21/2 (6)99 723 s(>)99 723 s(7)119.125 713 s(>)119.125 705 s -1.815 170.652 727.024 140.067 731 m(5)134.217 715 s(J)149.31 713.038 s(JL) 149.31 713 s(J)164.402 711.076 s(JL)164.402 711 s 16 681(@)179.494 709 b %21/1 (6)99 767 s(>)99 767 s(7)119.125 757 s(>)119.125 749 s -1.815 170.652 771.024 140.067 775 m(5)134.217 759 s(J)149.31 757.038 s(JL) 149.31 757 s(J)164.402 755.076 s(JL)164.402 755 s 16 725(@)179.494 753 b %21/0 rm 10 ss(21)64 777 s 75.5 775 62 775 62 786 75.5 786 75.5 775 5 62 775 0.666 ll %22/4 mf 10 ss(6)187.611 635 s(?)196.011 637 s(6)232.888 633 s(?)241.288 633 s (@)278.165 621 s %22/3 (6)187.611 671 s(?)196.011 673 s(\()228.213 675 s(6)232.888 675 s(?) 241.288 677 s 16 637(@)278.165 665 b %22/2 -1.86 224.045 733.104 193.461 725.122 m(J)187.611 709.122 s(JL) 187.611 709 s(J)202.703 713.061 s(JL)202.703 713 s(5)217.795 717 s -1.8 269.322 735 238.738 735 m(J)232.888 719 s(JL)232.888 715 s(J) 247.98 719 s(JL)247.98 711 s(5)263.072 719 s 16 681(@)278.165 709 b %22/1 -1.86 224.045 777.104 193.461 769.122 m(J)187.611 753.122 s(JL) 187.611 753 s(J)202.703 757.061 s(JL)202.703 757 s(5)217.795 761 s -1.8 269.322 779 238.738 779 m(J)232.888 763 s(JL)232.888 759 s(J) 247.98 763 s(JL)247.98 755 s(5)263.072 763 s 16 725(@)278.165 753 b %22/0 %23/4 (6)286.282 635 s(?)294.682 637 s(6)331.559 637 s(=)361.743 639 s(8) 361.743 639 s(@)376.836 621 s %23/3 (6)286.282 677 s(8)316.466 671 s(6)331.559 673 s(\()357.068 675 s(8) 361.743 675 s 16 637(@)376.836 665 b %23/2 1.834 317.616 710.994 287.032 705 m(6)286.282 717 s(\()297.124 721 s(K) 301.374 719.958 s(KL)301.374 721 s(K)316.466 722.916 s(KL)316.466 723 s -1.815 367.993 727.025 337.409 731 m(5)331.559 715 s(J)346.651 713.039 s (JL)346.651 713 s(J)361.743 711.077 s(JL)361.743 711 s 16 681(@)376.836 709 b %23/1 1.834 317.616 754.994 287.032 749 m(6)286.282 761 s(\()297.124 765 s(K) 301.374 763.958 s(KL)301.374 765 s(K)316.466 766.916 s(KL)316.466 767 s -1.815 367.993 771.025 337.409 775 m(5)331.559 759 s(J)346.651 757.039 s (JL)346.651 757 s(J)361.743 755.077 s(JL)361.743 755 s 16 725(@)376.836 753 b %23/0 %24/4 (6)384.953 631 s(8)405.076 629 s(6)420.169 627 s(7)440.293 625 s (@)455.385 621 s %24/3 (6)384.953 677 s(7)405.076 667 s(5)420.169 669 s(7)440.293 671 s 16 637(@)455.385 665 b %24/2 (3)384.953 709 s(?)393.353 709 s 16 681(@)455.385 709 b %24/1 (3)384.953 753 s(?)393.353 753 s 16 725(@)455.385 753 b %24/0 %25/4 (5)463.502 623 s(?)471.902 625 s(5)498.718 625 s(?)507.118 625 s (@)543.995 621 s %25/3 (6)463.502 673 s(=)483.625 683 s(8)483.625 683 s(6)498.718 681 s(=) 528.903 683 s(8)528.903 685 s 16 637(@)543.995 665 b %25/2 (=)463.502 727 s(6)463.502 729 s(>)463.502 729 s(8)483.625 719 s(>) 483.625 721 s 1.815 530.053 704.948 499.468 708.924 m(K) 498.718 720.924 s(KL)498.718 721 s(K)513.81 718.963 s(KL)513.81 719 s(6) 528.903 717 s 16 681(@)543.995 709 b %25/1 (=)463.502 771 s(6)463.502 773 s(>)463.502 773 s(8)483.625 763 s(>) 483.625 765 s 1.815 530.053 748.948 499.468 752.924 m(K) 498.718 764.924 s(KL)498.718 765 s(K)513.81 762.963 s(KL)513.81 763 s(6) 528.903 761 s 16 725(@)543.995 753 b %25/0 (FFFFCCCCCCC)64 753 s (C)533.995 753 s (FFFFCCCCCCC)64 709 s (C)533.995 709 s (FFFFCCCCCCC)64 665 s (C)533.995 665 s (FFFFCCCCCCC)64 621 s (C)533.995 621 s (!)64 566 s(')80 572 s(')84.5 578 s(!)64 522 s(')80 528 s(')84.5 534 s(#) 64 478 s(')80 482 s(')84.5 488 s(")63.5 434 s(')80 436 s(')84.5 442 s 16 434(@)64 566 b 60.5 582 434 k %26/4 (5)97 440 s(?)105.4 442 s(5)139.438 438 s(?)147.838 438 s (@)181.877 434 s %26/3 (6)97 490 s(?)105.4 490 s(6)139.438 494 s(?)147.838 494 s 16 450(@)181.877 478 b %26/2 1.868 126.442 523.976 97.75 516 m(6)97 528 s(K)111.146 531.932 s(KL) 111.146 532 s(K)125.292 535.865 s(KL)125.292 536 s 1.8 168.881 518 140.188 518 m(K)139.438 530 s(KL)139.438 534 s(6) 153.584 530 s(K)167.731 530 s(KL)167.731 538 s 16 494(@)181.877 522 b %26/1 1.868 126.442 567.976 97.75 560 m(6)97 572 s(K)111.146 575.932 s(KL) 111.146 576 s(K)125.292 579.865 s(KL)125.292 580 s 1.8 168.881 562 140.188 562 m(K)139.438 574 s(KL)139.438 578 s(6) 153.584 574 s(K)167.731 574 s(KL)167.731 582 s 16 538(@)181.877 566 b %26/0 rm 10 ss(26)64 590 s 75.5 588 62 588 62 599 75.5 599 75.5 588 5 62 588 0.666 ll %27/4 mf 10 ss(6)189.485 440 s(?)197.885 442 s(6)231.923 442 s(8)260.216 444 s (@)274.362 434 s %27/3 (=)189.485 496 s(6)189.485 496 s(8)217.777 490 s 1.817 261.366 475.944 232.673 479.932 m(K)231.923 491.932 s(KL) 231.923 492 s(K)246.069 489.966 s(KL)246.069 490 s(6)260.216 488 s 16 450(@)274.362 478 b %27/2 1.838 218.927 529.996 190.235 524 m(6)189.485 536 s(=)203.631 540 s(K) 203.631 538.956 s(KL)203.631 540 s(=)217.777 540 s(K)217.777 541.913 s(KL) 217.777 542 s 1.817 261.366 517.944 232.673 521.932 m(K) 231.923 533.932 s(KL)231.923 534 s(K)246.069 531.966 s(KL)246.069 532 s(6) 260.216 530 s 16 494(@)274.362 522 b %27/1 1.838 218.927 573.996 190.235 568 m(6)189.485 580 s(=)203.631 584 s(K) 203.631 582.956 s(KL)203.631 584 s(=)217.777 584 s(K)217.777 585.913 s(KL) 217.777 586 s 1.817 261.366 561.944 232.673 565.932 m(K) 231.923 577.932 s(KL)231.923 578 s(K)246.069 575.966 s(KL)246.069 576 s(6) 260.216 574 s 16 538(@)274.362 566 b %27/0 %28/4 (5)281.97 436 s(7)300.831 438 s -1.817 349.52 452.012 320.827 456 m(5) 314.977 440 s(J)329.124 438.034 s(JL)329.124 438 s(J)343.27 436.068 s(JL) 343.27 436 s(@)357.416 434 s %28/3 (6)281.97 486 s(8)300.831 488 s 1.817 344.42 473.944 315.727 477.932 m(K) 314.977 489.932 s(KL)314.977 490 s(K)329.124 487.966 s(KL)329.124 488 s(6) 343.27 486 s 16 450(@)357.416 478 b %28/2 (6)281.97 528 s(?)290.37 530 s(6)314.977 528 s 284.97 535 317.977 535 5 cv(=)343.27 540 s(8)343.27 542 s 16 494(@)357.416 522 b %28/1 (6)281.97 572 s(?)290.37 574 s(6)314.977 572 s 284.97 579 317.977 579 5 cv(=)343.27 584 s(8)343.27 586 s 16 538(@)357.416 566 b %28/0 %29/4 (5)365.024 438 s(?)373.424 438 s(6)407.462 442 s(?)415.862 442 s (@)449.901 434 s %29/3 (6)365.024 488 s(?)373.424 490 s(=)407.462 496 s(6)407.462 498 s(?) 415.862 498 s 16 450(@)449.901 478 b %29/2 1.8 394.466 528 365.774 528 m(=)365.024 540 s(6)365.024 540 s(=) 379.17 540 s(K)379.17 540 s(KL)379.17 542 s(=)393.316 540 s(6) 393.316 540 s 1.8 436.905 524 408.212 524 m(K)407.462 536 s(KL) 407.462 538 s(%)416.608 536 s(6)421.608 536 s(K)435.755 536 s(KL) 435.755 538 s 16 494(@)449.901 522 b %29/1 1.8 394.466 572 365.774 572 m(=)365.024 584 s(6)365.024 584 s(=) 379.17 584 s(K)379.17 584 s(KL)379.17 586 s(=)393.316 584 s(6) 393.316 584 s 1.8 436.905 568 408.212 568 m(K)407.462 580 s(KL) 407.462 582 s(%)416.608 580 s(6)421.608 580 s(K)435.755 580 s(KL) 435.755 582 s 16 538(@)449.901 566 b %29/0 %30/4 (6)459.009 440 s(?)467.409 442 s 1.817 530.997 431.988 502.305 428 m(6) 501.555 440 s 462.009 447 504.555 447 5 cv(\()511.451 442 s(K) 515.701 441.966 s(KL)515.701 442 s(%)524.847 444 s(K)529.847 443.932 s(KL) 529.847 444 s(@)543.994 434 s %30/3 (6)459.009 494 s(?)467.409 494 s(6)501.555 494 s 462.009 500 504.555 500 5 cv(8)529.847 494 s 16 450(@)543.994 478 b %30/2 1.8 488.559 520 459.759 520 m(%)454.009 536 s(K)459.009 532 s(KL) 459.009 536 s(=)473.262 540 s(K)473.262 532 s(KL)473.262 540 s(6) 487.409 532 s(6)501.555 530 s(?)509.955 530 s 16 494(@)543.994 522 b %30/1 1.8 488.559 564 459.759 564 m(%)454.009 580 s(K)459.009 576 s(KL) 459.009 580 s(=)473.262 584 s(K)473.262 576 s(KL)473.262 584 s(6) 487.409 576 s(6)501.555 574 s(?)509.955 574 s 16 538(@)543.994 566 b %30/0 (FFFFCCCCCCC)64 566 s (C)533.994 566 s (FFFFCCCCCCC)64 522 s (C)533.994 522 s (FFFFCCCCCCC)64 478 s (C)533.994 478 s (FFFFCCCCCCC)64 434 s (C)533.994 434 s (!)64 379 s(')80 385 s(')84.5 391 s(!)64 335 s(')80 341 s(')84.5 347 s(#) 64 291 s(')80 295 s(')84.5 301 s(")63.5 247 s(')80 249 s(')84.5 255 s 16 247(@)64 379 b 60.5 395 247 k %31/4 (6)97 259 s(?)105.4 259 s(6)142.175 259 s 100 265 145.175 265 5 cv(8) 172.292 259 s(@)187.35 247 s %31/3 (6)97 299 s(?)105.4 299 s(6)142.175 305 s(?)150.575 307 s 16 263(@)187.35 291 b %31/2 (5)97 341 s(7)127.116 337 s(5)142.175 333 s(?)150.575 335 s 16 307(@)187.35 335 b %31/1 -1.815 133.366 397.003 102.85 401 m(5)97 385 s(J)112.058 383.028 s(JL) 112.058 383 s(J)127.116 381.055 s(JL)127.116 381 s 1.8 173.442 373 142.925 373 m(6)142.175 385 s(K)157.233 385 s(KL) 157.233 389 s(K)172.292 385 s(KL)172.292 387 s 16 351(@)187.35 379 b %31/0 rm 10 ss(31)64 403 s 75.5 401 62 401 62 412 75.5 412 75.5 401 5 62 401 0.666 ll %32/4 1.8 228.217 245 197.699 245 m mf 10 ss(%)191.949 257 s(6)196.949 257 s(K) 212.008 257 s(KL)212.008 261 s(K)227.067 257 s(KL)227.067 259 s 1.815 273.392 240.948 242.875 244.945 m(K)242.125 256.945 s(KL) 242.125 257 s(\()252.934 255 s(K)257.184 254.973 s(KL)257.184 255 s(6) 272.242 253 s(@)287.3 247 s %32/3 (4)196.949 307 s(?)205.349 307 s 16 263(@)287.3 291 b %32/2 (5)196.949 331 s(?)205.349 331 s(5)242.125 331 s 199.949 329 245.125 329 -5 cv(%)266.742 349 s(8)272.242 349 s(>)272.242 349 s 16 307(@)287.3 335 b %32/1 (6)196.949 389 s(?)205.349 391 s(6)242.125 389 s 199.949 396 245.125 396 5 cv(=)272.242 397 s(8)272.242 397 s(>)272.242 397 s 16 351(@)287.3 379 b %32/0 %33/4 (=)295.399 265 s(4)295.399 267 s(?)303.799 267 s(@)365.672 247 s %33/3 (4)295.399 299 s(?)303.799 299 s 16 263(@)365.672 291 b %33/2 (6)295.399 351 s(\()311.227 347 s(8)315.477 347 s(>)315.477 347 s(%) 325.535 349 s(6)330.535 349 s(>)330.535 349 s(8)350.613 345 s(>) 350.613 347 s 16 307(@)365.672 335 b %33/1 (=)295.399 397 s(6)295.399 399 s(8)315.477 395 s(>)315.477 395 s(=) 330.535 397 s(6)330.535 397 s(>)330.535 397 s(8)350.613 389 s(>) 350.613 391 s 16 351(@)365.672 379 b %33/0 rm 12 ss(A)287.3 410 s 297.364 408 285.3 408 285.3 421 297.364 421 297.364 408 5 285.3 408 0.8 ll %34/4 1.815 406.539 244.997 376.021 241 m mf 10 ss(6)375.271 253 s(\() 386.08 255 s(K)390.33 254.972 s(KL)390.33 255 s(%)400.389 257 s(K) 405.389 256.945 s(KL)405.389 257 s(6)420.447 259 s(?)428.847 259 s (@)455.584 247 s %34/3 (%)370.271 303 s(6)375.271 303 s(8)405.389 307 s(6)420.447 305 s(?) 428.847 307 s 16 263(@)455.584 291 b %34/2 (=)375.271 353 s(6)375.271 353 s(8)405.389 345 s(>)405.389 347 s(6) 420.447 345 s(>)420.447 347 s(8)440.525 341 s(>)440.525 343 s 16 307(@)455.584 335 b %34/1 (=x=)375.271 397 s(K)375.271 399 s(KL)375.271 401 s(=)405.389 397 s(8) 405.389 397 s(>)405.389 397 s(=)420.447 397 s(6)420.447 399 s(>) 420.447 399 s(8)440.525 389 s(>)440.525 391 s 16 351(@)455.584 379 b %34/0 %35/4 (-)464.683 251 s(?)470.583 255 s(.)499.819 251 s(.)514.878 251 s(8) 528.936 253 s(@)543.994 247 s %35/3 (-)464.683 295 s(?)470.583 299 s(.)499.819 295 s(.)514.878 295 s(=x=) 528.936 309 s(HK)528.936 311 s(KL)528.936 313 s 16 263(@)543.994 291 b %35/2 (=)463.683 353 s(6)463.683 355 s(8)483.761 351 s(>)483.761 351 s 1.815 530.086 336.948 499.569 340.945 m(=)498.819 353 s(K) 498.819 352.945 s(KL)498.819 353 s(K)513.878 350.973 s(KL)513.878 351 s(%) 523.936 349 s(6)528.936 349 s 16 307(@)543.994 335 b %35/1 (=x=)463.683 397 s(K)463.683 399 s(KL)463.683 403 s(=)483.761 397 s(8) 483.761 399 s(>)483.761 399 s 1.815 530.086 383.003 499.569 387 m(=x=) 498.819 397 s(K)498.819 399 s(KL)498.819 401 s(=)513.878 397 s(K) 513.878 397.028 s(KL)513.878 399 s(=)528.936 397 s(K)528.936 395.055 s(KL) 528.936 397 s 16 351(@)543.994 379 b %35/0 (FFFFCCCCCCC)64 379 s (C)533.994 379 s (FFFFCCCCCCC)64 335 s (C)533.994 335 s (FFFFCCCCCCC)64 291 s (C)533.994 291 s (FFFFCCCCCCC)64 247 s (C)533.994 247 s (!)64 192 s(')80 198 s(')84.5 204 s(!)64 148 s(')80 154 s(')84.5 160 s(#) 64 104 s(')80 108 s(')84.5 114 s(")63.5 60 s(')80 62 s(')84.5 68 s 16 60(@)64 192 b 60.5 208 60 k %36/4 -1.894 133.265 77.994 102.85 88 m(5)97 72 s(J)112.007 67.063 s(JL) 112.007 58 s(J)127.015 62.126 s(JL)127.015 60 s(5)142.022 62 s(7) 175.033 64 s(@)190.04 60 s %36/3 (=x=)97 122 s(K)97 124 s(KL)97 126 s(?)105.4 128 s(=x=)142.022 122 s(K) 142.022 124 s(KL)142.022 126 s(8)175.033 118 s 16 76(@)190.04 104 b %36/2 (6)97 164 s(?)105.4 164 s 1.812 176.183 147.953 142.772 151.928 m(K) 142.022 163.928 s(KL)142.022 164 s 100 170 145.022 170 5 cv(\215\(\216) 149.975 162 s(K)160.025 161.786 s(KL)160.025 162 s(6)175.033 160 s 16 120(@)190.04 148 b %36/1 (=)97 210 s(6)97 212 s(?)105.4 212 s 1.812 176.183 195.953 142.772 199.928 m(=)142.022 210 s(K) 142.022 211.928 s(KL)142.022 212 s 100 218 145.022 218 5 cv(=) 160.025 210 s(K)160.025 209.786 s(KL)160.025 210 s(6)175.033 208 s 16 164(@)190.04 192 b %36/0 rm 10 ss(36)64 216 s 75.5 214 62 214 62 225 75.5 225 75.5 214 5 62 214 0.666 ll %37/4 mf 10 ss(6)199.612 66 s(8)229.635 68 s(6)244.643 66 s it 10 ss(C.B.) 268.768 84 s mf 10 ss(7)274.658 66 s(=)274.658 54 s(5)274.658 52 s (@)289.666 60 s %37/3 (6)199.612 112 s(=)229.635 122 s(8)229.635 124 s(6)244.643 112 s(8) 274.658 112 s 16 76(@)289.666 104 b %37/2 (6)199.612 158 s(7)229.635 150 s(5)244.643 150 s(%)269.158 148 s(7) 274.658 148 s 16 120(@)289.666 148 b %37/1 1.8 230.785 190 200.362 190 m(%)194.612 206 s(K)199.612 202 s(KL) 199.612 206 s(6)214.628 202 s(K)229.635 202 s(KL)229.635 208 s 1.8 275.808 184 245.393 184 m(K)244.643 196 s(KL)244.643 198 s(K) 259.651 196 s(KL)259.651 200 s(6)274.658 196 s 16 164(@)289.666 192 b %37/0 %38/4 (5)297.738 58 s(7)317.748 66 s(6)332.755 72 s(8)352.765 70 s (@)367.773 60 s %38/3 (6)297.738 112 s(?)306.138 112 s(6)332.755 112 s 300.738 118 335.755 118 5 cv(7)352.765 108 s 16 76(@)367.773 104 b %38/2 (3)297.738 150 s(?)306.138 152 s 16 120(@)367.773 148 b %38/1 (3)297.738 194 s(?)306.138 196 s 16 164(@)367.773 192 b %38/0 %39/4 (6)375.845 68 s(?)384.245 68 s(6)420.867 68 s 378.845 74 423.867 74 5 cv(8) 440.877 72 s(@)455.885 60 s %39/3 (=)375.845 122 s(4)375.845 122 s(?)384.245 124 s 16 76(@)455.885 104 b %39/2 1.8 407.01 148 376.595 148 m(6)375.845 160 s(>)375.845 160 s(6) 390.852 160 s(>)390.852 160 s(6)405.86 160 s(>)405.86 160 s(6) 420.867 160 s(?)429.267 160 s 16 120(@)455.885 148 b %39/1 1.8 407.01 196 376.595 196 m(6)375.845 208 s(>)375.845 208 s(6) 390.852 208 s(>)390.852 208 s(6)405.86 208 s(>)405.86 208 s(6) 420.867 208 s(=)440.877 210 s(8)440.877 212 s 16 164(@)455.885 192 b %39/0 %40/4 (6)463.957 76 s(?)472.357 76 s(6)508.979 76 s 466.957 82 511.979 82 5 cv(8) 528.989 66 s(@)543.997 60 s %40/3 (5)463.957 108 s(?)472.357 108 s(5)508.979 108 s 466.957 106 511.979 106 -5 cv(8)528.989 116 s 16 76(@)543.997 104 b %40/2 1.8 495.122 146 464.707 146 m(6)463.957 158 s(>)463.957 160 s(6) 478.964 158 s(>)478.964 160 s(6)493.972 158 s(>)493.972 160 s(6) 508.979 158 s(?)517.379 160 s 16 120(@)543.997 148 b %40/1 1.8 495.122 194 464.707 194 m(6)463.957 206 s(>)463.957 206 s(6) 478.964 206 s(>)478.964 206 s(6)493.972 206 s(>)493.972 206 s(6) 508.979 206 s(=)528.989 210 s(8)528.989 212 s 16 164(@)543.997 192 b %40/0 (FFFFCCCCCCC)64 192 s (C)533.997 192 s (FFFFCCCCCCC)64 148 s (C)533.997 148 s (FFFFCCCCCCC)64 104 s (C)533.997 104 s (FFFFCCCCCCC)64 60 s (C)533.997 60 s pagesave restore showpage %%Page: 8 8 %%BeginPageSetup /pagesave save def %%EndPageSetup rm 10 ss(8 )44.2 800 s( )558 800 s mf 10 ss(!)64 753 s(')80 759 s(') 84.5 765 s(!)64 709 s(')80 715 s(')84.5 721 s(#)64 665 s(')80 669 s(') 84.5 675 s(")63.5 621 s(')80 623 s(')84.5 629 s 16 621(@)64 753 b 60.5 769 621 k %41/4 (5)97 625 s(?)105.4 625 s(5)143.641 623 s(?)152.041 625 s (@)190.282 621 s %41/3 (6)97 671 s(?)105.4 673 s(6)143.641 677 s(?)152.041 677 s 16 637(@)190.282 665 b %41/2 (5)97 713 s(?)105.4 713 s(5)143.641 715 s(8)174.735 719 s 16 681(@)190.282 709 b %41/1 1.814 129.244 748.949 97.75 752.948 m(K)97 764.948 s(KL)97 765 s(K) 112.547 762.974 s(KL)112.547 763 s(6)128.094 761 s 1.8 175.885 747 144.391 747 m(K)143.641 759 s(KL)143.641 763 s(6) 159.188 759 s(K)174.735 759 s(KL)174.735 767 s 16 725(@)190.282 753 b %41/0 rm 10 ss(41)64 777 s 75.5 775 62 775 62 786 75.5 786 75.5 775 5 62 775 0.666 ll %42/4 mf 10 ss(6)198.644 631 s(?)207.044 633 s(-)235.92 625 s(?)241.82 629 s (@)259.795 621 s %42/3 (6)198.644 677 s(?)207.044 677 s(-)235.92 669 s(?)241.82 673 s 16 637(@)259.795 665 b %42/2 (5)198.644 715 s(7)219.373 713 s(-)235.92 713 s(?)241.82 717 s 16 681(@)259.795 709 b %42/1 (6)198.644 763 s(8)219.373 761 s(-)235.92 757 s(?)241.82 761 s 16 725(@)259.795 753 b %42/0 %43/4 (6)268.157 629 s(?)276.557 629 s(6)314.798 629 s 271.157 635 317.798 635 5 cv(8)335.527 633 s(@)351.074 621 s %43/3 (3)268.157 669 s(?)276.557 669 s 16 637(@)351.074 665 b %43/2 -1.8 305.501 723 274.007 723 m(5)268.157 707 s(>)268.157 699 s(5) 283.704 707 s(>)283.704 699 s(5)299.251 707 s(>)299.251 699 s(5) 314.798 707 s(?)323.198 709 s 16 681(@)351.074 709 b %43/1 -1.8 305.501 771 274.007 771 m(5)268.157 755 s(>)268.157 745 s(5) 283.704 755 s(>)283.704 745 s(5)299.251 755 s(>)299.251 745 s(5) 314.798 755 s(7)335.527 759 s 16 725(@)351.074 753 b %43/0 %44/4 (6)359.436 637 s(?)367.836 637 s(6)406.077 637 s 362.436 643 409.077 643 5 cv(8)426.806 627 s(@)442.353 621 s %44/3 (5)359.436 669 s(?)367.836 669 s(5)406.077 669 s 362.436 667 409.077 667 -5 cv(8)426.806 677 s 16 637(@)442.353 665 b %44/2 -1.8 396.78 721 365.286 721 m(5)359.436 705 s(>)359.436 697 s(5) 374.983 705 s(>)374.983 697 s(5)390.53 705 s(>)390.53 697 s(5) 406.077 705 s(?)414.477 705 s 16 681(@)442.353 709 b %44/1 -1.8 396.78 769 365.286 769 m(5)359.436 753 s(>)359.436 745 s(5) 374.983 753 s(>)374.983 745 s(5)390.53 753 s(>)390.53 745 s(5) 406.077 753 s(7)426.806 759 s 16 725(@)442.353 753 b %44/0 %45/4 (5)450.715 625 s(?)459.115 625 s(5)497.356 623 s(?)505.756 625 s (@)543.997 621 s %45/3 (5)450.715 671 s(?)459.115 673 s(5)497.356 663 s(?)505.756 665 s 16 637(@)543.997 665 b %45/2 (=w=)450.715 703 s(J)450.715 701 s(JL)450.715 699 s(?)459.115 701 s(=) 497.356 703 s(5)497.356 701 s(7)528.45 705 s 16 681(@)543.997 709 b %45/1 -1.814 488.059 763.001 456.565 767 m(5)450.715 751 s(J)466.262 749.026 s (JL)466.262 749 s(=)481.809 747 s(J)481.809 747.052 s(JL)481.809 747 s -1.888 534.7 775.127 503.206 765.144 m(J)497.356 749.144 s(JL) 497.356 749 s(J)512.903 754.072 s(JL)512.903 753 s(5)528.45 759 s 16 725(@)543.997 753 b %45/0 (FFFFCCCCCCC)64 753 s (C)533.997 753 s (FFFFCCCCCCC)64 709 s (C)533.997 709 s (FFFFCCCCCCC)64 665 s (C)533.997 665 s (FFFFCCCCCCC)64 621 s (C)533.997 621 s (!)64 566 s(')80 572 s(')84.5 578 s(!)64 522 s(')80 528 s(')84.5 534 s(#) 64 478 s(')80 482 s(')84.5 488 s(")63.5 434 s(')80 436 s(')84.5 442 s 16 434(@)64 566 b 60.5 582 434 k %46/4 (5)97 430 s(8)116.766 444 s 1.815 162.391 425.947 132.341 429.943 m(K) 131.591 441.943 s(KL)131.591 442 s(K)146.416 439.972 s(KL)146.416 440 s(6) 161.241 438 s(@)176.067 434 s %46/3 (5)97 476 s(7)116.766 480 s -1.815 167.491 496.004 137.441 500 m(5) 131.591 484 s(J)146.416 482.029 s(JL)146.416 482 s(J)161.241 480.057 s(JL) 161.241 480 s 16 450(@)176.067 478 b %46/2 (=)97 516 s(5)97 514 s(=w=)116.766 516 s(EJ)116.766 514 s(JL) 116.766 512 s(-)132.591 526 s(?)138.491 530 s 16 494(@)176.067 522 b %46/1 (5)97 562 s(=)116.766 560 s(7)116.766 560 s(-)132.591 570 s(?) 138.491 574 s 16 538(@)176.067 566 b %46/0 rm 10 ss(46)64 590 s 75.5 588 62 588 62 599 75.5 599 75.5 588 5 62 588 0.666 ll %47/4 mf 10 ss(5)184.041 436 s(?)192.441 438 s(5)218.632 438 s(?)227.032 438 s (@)263.108 434 s %47/3 (6)184.041 486 s(=)203.807 496 s(8)203.807 496 s(6)218.632 494 s(=) 248.282 496 s(8)248.282 498 s 16 450(@)263.108 478 b %47/2 (=)184.041 540 s(6)184.041 542 s(>)184.041 542 s(8)203.807 532 s(>) 203.807 534 s 1.815 249.432 517.947 219.382 521.943 m(K) 218.632 533.943 s(KL)218.632 534 s(K)233.457 531.972 s(KL)233.457 532 s(6) 248.282 530 s 16 494(@)263.108 522 b %47/1 (=)184.041 584 s(6)184.041 586 s(>)184.041 586 s(8)203.807 576 s(>) 203.807 578 s 1.815 249.432 561.947 219.382 565.943 m(K) 218.632 577.943 s(KL)218.632 578 s(K)233.457 575.972 s(KL)233.457 576 s(6) 248.282 574 s 16 538(@)263.108 566 b %47/0 rm 12 ss(B)176.067 597 s 185.471 595 174.067 595 174.067 608 185.471 608 185.471 595 5 174.067 595 0.8 ll %48/4 mf 10 ss(5)271.082 440 s(?)279.482 442 s(5)315.557 438 s(?)323.957 438 s (@)360.033 434 s %48/3 (6)271.082 490 s(?)279.482 490 s(6)315.557 494 s(?)323.957 494 s 16 450(@)360.033 478 b %48/2 1.862 301.882 523.993 271.832 516 m(6)271.082 528 s(K)285.907 531.943 s(KL) 285.907 532 s(K)300.732 535.886 s(KL)300.732 536 s 1.8 346.357 518 316.307 518 m(K)315.557 530 s(KL)315.557 534 s(6) 330.382 530 s(K)345.207 530 s(KL)345.207 538 s 16 494(@)360.033 522 b %48/1 1.862 301.882 567.993 271.832 560 m(6)271.082 572 s(K)285.907 575.943 s(KL) 285.907 576 s(K)300.732 579.886 s(KL)300.732 580 s 1.8 346.357 562 316.307 562 m(K)315.557 574 s(KL)315.557 578 s(6) 330.382 574 s(K)345.207 574 s(KL)345.207 582 s 16 538(@)360.033 566 b %48/0 %49/4 (6)368.007 440 s(?)376.407 442 s(6)412.482 442 s(?)420.882 442 s (@)447.074 434 s %49/3 (=)368.007 496 s(6)368.007 496 s(?)376.407 498 s(=)412.482 496 s(6) 412.482 496 s(8)432.248 492 s 16 450(@)447.074 478 b %49/2 1.835 398.807 529.979 368.757 524 m(6)368.007 536 s(=)382.832 540 s(K) 382.832 538.95 s(KL)382.832 540 s(=)397.657 540 s(K)397.657 541.9 s(KL) 397.657 542 s(6)412.482 538 s(>)412.482 538 s(8)432.248 534 s(>) 432.248 534 s 16 494(@)447.074 522 b %49/1 1.835 398.807 573.979 368.757 568 m(6)368.007 580 s(=)382.832 584 s(K) 382.832 582.95 s(KL)382.832 584 s(=)397.657 584 s(K)397.657 585.9 s(KL) 397.657 586 s(6)412.482 582 s(>)412.482 582 s(=x=)432.248 584 s(HK) 432.248 586 s(KL)432.248 588 s(>)432.248 588 s 16 538(@)447.074 566 b %49/0 %50/4 (6)455.048 444 s(?)463.448 446 s(-)500.523 438 s(8)529.173 440 s (@)543.999 434 s %50/3 (6)455.048 490 s(?)463.448 490 s(.)500.523 482 s(.)515.348 482 s(8) 529.173 490 s 16 450(@)543.999 478 b %50/2 (6)455.048 530 s(?)463.448 530 s(.)500.523 526 s(.)515.348 526 s(8) 529.173 536 s 16 494(@)543.999 522 b %50/1 1.815 485.848 569.947 455.798 573.943 m(=)455.048 584 s(K) 455.048 585.943 s(KL)455.048 586 s(=)469.873 584 s(K)469.873 583.972 s(KL) 469.873 584 s(6)484.698 582 s(>)484.698 582 s(6)499.523 580 s(') 524.223 584 s(=)529.173 584 s(8)529.173 584 s 16 538(@)543.999 566 b %50/0 (FFFFCCCCCCC)64 566 s (C)533.999 566 s (FFFFCCCCCCC)64 522 s (C)533.999 522 s (FFFFCCCCCCC)64 478 s (C)533.999 478 s (FFFFCCCCCCC)64 434 s (C)533.999 434 s (!)64 379 s(')80 385 s(')84.5 391 s(!)64 335 s(')80 341 s(')84.5 347 s(#) 64 291 s(')80 295 s(')84.5 301 s(")63.5 247 s(')80 249 s(')84.5 255 s 16 247(@)64 379 b 60.5 395 247 k %51/4 (6)97 255 s(?)105.4 255 s(6)152.229 253 s(?)160.629 255 s (@)207.459 247 s %51/3 (6)97 301 s(?)105.4 303 s(=)152.229 309 s(6)152.229 309 s(?) 160.629 311 s 16 263(@)207.459 291 b %51/2 (6)97 341 s(8)133.819 351 s 1.8 190.199 333 152.979 333 m(K) 152.229 345 s(KL)152.229 349 s(6)170.639 345 s(K)189.049 345 s(KL) 189.049 349 s(>)189.049 349 s 16 307(@)207.459 335 b %51/1 1.8 134.969 379 97.75 379 m(K)97 391 s(KL)97 395 s(6)115.409 391 s(K) 133.819 391 s(KL)133.819 395 s(>)133.819 395 s 1.8 190.199 377 152.979 377 m(K)152.229 389 s(KL)152.229 393 s(6) 170.639 389 s(K)189.049 389 s(KL)189.049 393 s(>)189.049 393 s 16 351(@)207.459 379 b %51/0 rm 10 ss(51)64 403 s 75.5 401 62 401 62 412 75.5 412 75.5 401 5 62 401 0.666 ll %52/4 mf 10 ss(5)217.361 251 s(?)225.761 251 s(5)272.59 249 s(?)280.99 251 s (@)315.547 247 s %52/3 (6)217.361 307 s(?)225.761 307 s(=)272.59 309 s(6)272.59 309 s(8) 297.137 299 s 16 263(@)315.547 291 b %52/2 1.8 255.33 331 218.111 331 m(K)217.361 343 s(KL)217.361 347 s(6) 235.77 343 s(K)254.18 343 s(KL)254.18 347 s(>)254.18 347 s(6) 272.59 345 s(>)272.59 347 s(8)297.137 349 s(>)297.137 349 s 16 307(@)315.547 335 b %52/1 1.8 255.33 375 218.111 375 m(K)217.361 387 s(KL)217.361 391 s(6) 235.77 387 s(K)254.18 387 s(KL)254.18 391 s(>)254.18 391 s(6) 272.59 389 s(>)272.59 391 s(8)297.137 393 s(>)297.137 393 s 16 351(@)315.547 379 b %52/0 %53/4 (6)325.449 255 s(?)333.849 255 s(6)380.678 257 s(?)389.078 259 s (@)435.908 247 s %53/3 1.84 363.418 290.964 326.199 283 m(6)325.449 295 s(K)343.858 298.939 s(KL) 343.858 305 s(K)362.268 302.879 s(KL)362.268 303 s 1.81 418.648 284.957 381.428 288.939 m(K)380.678 300.939 s(KL) 380.678 301 s(K)399.088 298.97 s(KL)399.088 299 s(6)417.498 297 s 16 263(@)435.908 291 b %53/2 1.84 363.418 332.964 326.199 325 m(6)325.449 337 s(K)343.858 340.939 s(KL) 343.858 347 s(K)362.268 344.879 s(KL)362.268 345 s 1.81 418.648 326.957 381.428 330.939 m(K)380.678 342.939 s(KL) 380.678 343 s(K)399.088 340.97 s(KL)399.088 341 s(6)417.498 339 s 16 307(@)435.908 335 b %53/1 1.84 363.418 376.964 326.199 369 m(6)325.449 381 s(K)343.858 384.939 s(KL) 343.858 391 s(K)362.268 388.879 s(KL)362.268 389 s 1.81 418.648 370.957 381.428 374.939 m(K)380.678 386.939 s(KL) 380.678 387 s(K)399.088 384.97 s(KL)399.088 385 s(6)417.498 383 s 16 351(@)435.908 379 b %53/0 %54/4 (5)445.81 249 s(?)454.21 251 s(-)489.767 251 s(7)525.586 253 s (@)543.996 247 s %54/3 (6)445.81 299 s(?)454.21 299 s(.)489.767 295 s(.)508.177 295 s(8) 525.586 303 s 16 263(@)543.996 291 b %54/2 (6)445.81 341 s(>)445.81 343 s(8)470.357 345 s(>)470.357 347 s 1.8 526.736 323 489.517 323 m(Kxx~K)488.767 335 s(KL)488.767 349 s(6) 507.177 335 s(')521.086 339 s(K)525.586 335 s(KL)525.586 339 s 16 307(@)543.996 335 b %54/1 (6)445.81 385 s(>)445.81 387 s(8)470.357 389 s(>)470.357 391 s 1.8 526.736 367 489.517 367 m(Kxx~K)488.767 379 s(KL)488.767 393 s(6) 507.177 379 s(')521.086 383 s(K)525.586 379 s(KL)525.586 383 s 16 351(@)543.996 379 b %54/0 (FFFFCCCCCCC)64 379 s (C)533.996 379 s (FFFFCCCCCCC)64 335 s (C)533.996 335 s (FFFFCCCCCCC)64 291 s (C)533.996 291 s (FFFFCCCCCCC)64 247 s (C)533.996 247 s (!)64 192 s(')80 198 s(')84.5 204 s(!)64 148 s(')80 154 s(')84.5 160 s(#) 64 104 s(')80 108 s(')84.5 114 s(")63.5 60 s(')80 62 s(')84.5 68 s 16 60(@)64 192 b 60.5 208 60 k %55/4 (6)97 68 s(?)105.4 68 s(6)158.199 70 s(?)166.599 72 s(@)219.399 60 s %55/3 (5)97 108 s(?)105.4 108 s(5)158.199 106 s(8)198.999 114 s 16 76(@)219.399 104 b %55/2 1.874 138.949 149.988 97.75 138 m(6)97 150 s(K)117.399 155.936 s(KL) 117.399 164 s(K)137.799 161.872 s(KL)137.799 162 s 1.808 200.149 143.961 158.949 147.957 m(K)158.199 159.957 s(KL) 158.199 160 s(K)178.599 157.979 s(KL)178.599 158 s(6)198.999 156 s 16 120(@)219.399 148 b %55/1 1.874 138.949 193.988 97.75 182 m(6)97 194 s(K)117.399 199.936 s(KL) 117.399 208 s(K)137.799 205.872 s(KL)137.799 206 s 1.808 200.149 187.961 158.949 191.957 m(K)158.199 203.957 s(KL) 158.199 204 s(K)178.599 201.979 s(KL)178.599 202 s(6)198.999 200 s 16 164(@)219.399 192 b %55/0 rm 10 ss(55)64 216 s 75.5 214 62 214 62 225 75.5 225 75.5 214 5 62 214 0.666 ll %56/4 mf 10 ss(6)230.371 72 s(?)238.771 72 s(6)291.57 66 s(8)332.37 68 s (@)352.77 60 s %56/3 (6)230.371 112 s(?)238.771 112 s(6)291.57 116 s(7)332.37 108 s 16 76(@)352.77 104 b %56/2 1.8 272.32 142 231.121 142 m(6)230.371 154 s(K)250.77 154 s(KL) 250.77 158 s(K)271.17 154 s(KL)271.17 156 s -1.808 338.62 166.004 297.42 170 m(5)291.57 154 s(J)311.97 152.022 s(JL) 311.97 152 s(J)332.37 150.043 s(JL)332.37 150 s 16 120(@)352.77 148 b %56/1 1.8 272.32 186 231.121 186 m(6)230.371 198 s(K)250.77 198 s(KL) 250.77 202 s(K)271.17 198 s(KL)271.17 200 s -1.808 338.62 210.004 297.42 214 m(5)291.57 198 s(J)311.97 196.022 s(JL) 311.97 196 s(J)332.37 194.043 s(JL)332.37 194 s 16 164(@)352.77 192 b %56/0 %57/4 (6)363.742 70 s(?)372.142 72 s(5)424.941 56 s(?)433.341 56 s (@)486.141 60 s %57/3 (5)363.742 108 s(?)372.142 108 s(5)424.941 106 s(?)433.341 108 s 16 76(@)486.141 104 b %57/2 -1.808 410.791 160.004 369.592 164 m(5)363.742 148 s(J)384.141 146.022 s (JL)384.141 146 s(J)404.541 144.043 s(JL)404.541 144 s -1.808 471.991 158.004 430.791 162 m(5)424.941 146 s(J)445.341 144.022 s (JL)445.341 144 s(=)465.741 142 s(J)465.741 142.043 s(JL)465.741 142 s 16 120(@)486.141 148 b %57/1 -1.808 410.791 204.004 369.592 208 m(5)363.742 192 s(J)384.141 190.022 s (JL)384.141 190 s(J)404.541 188.043 s(JL)404.541 188 s -1.808 471.991 202.004 430.791 206 m(5)424.941 190 s(J)445.341 188.022 s (JL)445.341 188 s(=)465.741 186 s(J)465.741 186.043 s(JL)465.741 186 s 16 164(@)486.141 192 b %57/0 %58/4 (3)497.113 62 s(?)505.513 64 s(B)542.497 60 s(@)540.497 60 s %58/3 (3)497.113 108 s(?)505.513 108 s 16 76(B)542.497 104 b 16 76(@)540.497 104 b %58/2 (=)497.113 142 s(3)497.113 140 s(?)505.513 140 s 16 120(B)542.497 148 b 16 120(@)540.497 148 b %58/1 (=)497.113 186 s(3)497.113 184 s(?)505.513 184 s 16 164(B)542.497 192 b 16 164(@)540.497 192 b %58/0 (FFFFCCCCCCC)64 192 s (C)533.997 192 s (FFFFCCCCCCC)64 148 s (C)533.997 148 s (FFFFCCCCCCC)64 104 s (C)533.997 104 s (FFFFCCCCCCC)64 60 s (C)533.997 60 s pagesave restore showpage %%Trailer %%Pages: 8 pmw-4.27/testdist/outfiles/Test08.ps0000644000222100022210000013605412247665016015511 0ustar ph10ph10%!PS-Adobe-3.0 %%Creator: Philip's Music Writer 4.27 (Built 25-Oct-2013) %%CreationDate: Tue Dec 3 17:23:06 2013 %%Pages: (atend) %%DocumentNeededResources: font Times-Roman Times-Italic %%+ font Times-Bold Times-BoldItalic Symbol %%+ font PMW-Music %%DocumentSuppliedResources: font PMW-Music %%Requirements: numcopies(1) %%EndComments %%BeginPaperSize: a4 a4 %%EndPaperSize %%BeginProlog %%Header file for PMW PostScript output /LowerEncoding 256 array def LowerEncoding 0 [ /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /space/exclam/quotedbl/numbersign /dollar/percent/ampersand/quotesingle /parenleft/parenright/asterisk/plus /comma/hyphen/period/slash /zero/one/two/three /four/five/six/seven /eight/nine/colon/semicolon /less/equal/greater/question /at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O /P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft /backslash/bracketright/asciicircum/underscore /grave/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o /p/q/r/s/t/u/v/w/x/y/z/braceleft /bar/braceright/asciitilde/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /space/exclamdown/cent/sterling /currency/yen/brokenbar/section /dieresis/copyright/ordfeminine/guillemotleft /logicalnot/hyphen/registered/macron /degree/plusminus/twosuperior/threesuperior /acute/mu/paragraph/bullet /cedilla/onesuperior/ordmasculine/guillemotright /onequarter/onehalf/threequarters/questiondown /Agrave/Aacute/Acircumflex/Atilde /Adieresis/Aring/AE/Ccedilla /Egrave/Eacute/Ecircumflex/Edieresis /Igrave/Iacute/Icircumflex/Idieresis /Eth/Ntilde/Ograve/Oacute /Ocircumflex/Otilde/Odieresis/multiply /Oslash/Ugrave/Uacute/Ucircumflex /Udieresis/Yacute/Thorn/germandbls /agrave/aacute/acircumflex/atilde /adieresis/aring/ae/ccedilla /egrave/eacute/ecircumflex/edieresis /igrave/iacute/icircumflex/idieresis /eth/ntilde/ograve/oacute /ocircumflex/otilde/odieresis/divide /oslash/ugrave/uacute/ucircumflex /udieresis/yacute/thorn/ydieresis ]putinterval /UpperEncoding 256 array def UpperEncoding 0 [ /Amacron/amacron/Abreve/abreve /Aogonek/aogonek/Cacute/cacute /Ccircumflex/ccircumflex/Cdotaccent/cdotaccent /Ccaron/ccaron/Dcaron/dcaron /Dcroat/dcroat/Emacron/emacron /Ebreve/ebreve/Edotaccent/edotaccent /Eogonek/eogonek/Ecaron/ecaron /Gcircumflex/gcircumflex/Gbreve/gbreve /Gdotaccent/gdotaccent/Gcommaaccent/gcommaaccent /Hcircumflex/hcircumflex/Hbar/hbar /Itilde/itilde/Imacron/imacron /Ibreve/ibreve/Iogonek/iogonek /Idotaccent/dotlessi/IJ/ij /Jcircumflex/jcircumflex/Kcommaaccent/kcommaaccent /kgreenlandic/Lacute/lacute/Lcommaaccent /lcommaaccent/Lcaron/lcaron/Ldot /ldot/Lslash/lslash/Nacute /nacute/Ncommaaccent/ncommaaccent/Ncaron /ncaron/napostrophe/Eng/eng /Omacron/omacron/Obreve/obreve /Ohungarumlaut/ohungarumlaut/OE/oe /Racute/racute/Rcommaaccent/rcommaaccent /Rcaron/rcaron/Sacute/sacute /Scircumflex/scircumflex/Scedilla/scedilla /Scaron/scaron/Tcedilla/tcedilla /Tcaron/tcaron/Tbar/tbar /Utilde/utilde/Umacron/umacron /Ubreve/ubreve/Uring/uring /Uhungarumlaut/uhungarumlaut/Uogonek/uogonek /Wcircumflex/wcircumflex/Ycircumflex/ycircumflex /Ydieresis/Zacute/zacute/Zdotaccent /zdotaccent/Zcaron/zcaron/longs /Delta/Euro/Scommaaccent/Tcommaaccent /breve/caron/circumflex/commaaccent /dagger/daggerdbl/dotaccent/ellipsis /emdash/endash/fi/fl /florin/fraction/greaterequal/guilsinglleft /guilsinglright/hungarumlaut/lessequal/lozenge /minus/notequal/ogonek/partialdiff /periodcentered/perthousand/quotedblbase/quotedblleft /quotedblright/quoteleft/quoteright/quotesinglbase /radical/ring/scommaaccent/summation /tcommaaccent/tilde/trademark/infinity ]putinterval /F/fill load def /GS/gsave load def /GR/grestore load def /Mt/moveto load def/Lt/lineto load def /R/rotate load def /Rl/rlineto load def/Rm/rmoveto load def /Ct/curveto load def/Rc/rcurveto load def /S/stroke load def /Slw/setlinewidth load def /Slc/setlinecap load def /Slj/setlinejoin load def /Sg/setgray load def /Sd/setdash load def /T/translate load def /clx 0 def/cly 0 def/crx 0 def/cry 0 def /inf{dup dup findfont 3 1 roll FontDirectory exch known {pop}{(**** Font ")print 100 string cvs print (" is not loaded ****\r\n)print stop}ifelse dup dup/Encoding get StandardEncoding eq {maxlength dup dict/newfont0 exch def dict/newfont1 exch def dup {1 index/FID eq{pop pop}{newfont0 3 1 roll put}ifelse}forall {1 index/FID eq{pop pop}{newfont1 3 1 roll put}ifelse}forall newfont1/Encoding UpperEncoding put dup newfont1 definefont def newfont0/Encoding LowerEncoding put dup newfont0 definefont def } {3 1 roll def def}ifelse }bind def /ss{scalefont setfont}bind def /sm{makefont setfont}bind def /ssr{scalefont [-1 0 0 1 0 0] makefont setfont}bind def /smr{makefont [-1 0 0 1 0 0] makefont setfont}bind def /b{/y exch def/x exch def/w exch def/z exch def/v exch def {x y Mt w show y z gt{/y y v sub def y z lt{/y z def}if} {exit}ifelse}loop}bind def /br{gsave translate dup 0.11 gt {0.11}{dup 2.0 div 0.055 add}ifelse exch scale 2{0.0 0.0 Mt 100.0 20.0 -50.0 245.0 60.0 260.0 curveto -50.0 245.0 60.0 20.0 0.0 0.0 curveto fill 1.0 -1.0 scale}repeat grestore}bind def /br2{gsave translate dup 0.11 gt {0.11}{dup 2.0 div 0.055 add}ifelse exch scale 2{0.0 0.0 Mt 95.0 40.0 -43.0 218.0 37.0 256.0 curveto -59.0 219.0 66.0 34.0 0.0 0.0 curveto fill 1.0 -1.0 scale}repeat grestore}bind def /cc{/u exch def/y1 exch def/x1 exch def/y0 exch def/x0 exch def /w y1 y0 sub dup mul x1 x0 sub dup mul add sqrt 2 div def /v w 2 mul 3 div dup 10 gt {pop 10} if def x0 x1 add 2.0 div y0 y1 add 2.0 div translate y1 y0 sub x1 x0 sub atan rotate}bind def /cA{/cry exch def/crx exch def/cly exch def/clx exch def}bind def /cd{w neg 0.05 moveto v w sub clx add u cly add w v sub crx add u cry add w 0.05 curveto w -0.05 lineto w v sub crx add u cry add 1 sub v w sub clx add u cly add 1 sub w neg -0.05 curveto closepath fill}bind def /cv{gsave cc cd grestore}bind def /cwd{w neg 0.05 moveto v w sub clx add u cly add w v sub crx add cry u sub w 0.05 curveto w -0.05 lineto w v sub crx add cry u sub 1 sub v w sub clx add u cly add 1 sub w neg -0.05 curveto closepath fill}bind def /cvw{gsave cc cwd grestore}bind def /cem{dup 1 eq cly cry eq and{pop 0 u cly add 0.75 mul /t2 0 def} {/x1 v w sub clx add def /x2 w v sub crx add def /y1 u cly add def u mul cry add /y2 exch def /t 0.5 def /a 2 w mul x1 x2 sub 3 mul add def /b x2 2 x1 mul sub w sub 3 mul def /c x1 w add 3 mul def a t mul b add t mul c add t mul w sub /t1 a 3 mul t mul b 2 mul add t mul c add def /a y1 y2 sub 3 mul def /b 3 y2 mul 6 y1 mul sub def /c 3 y1 mul def a t mul b add t mul c add t mul /t2 a 3 mul t mul b 2 mul add t mul c add def }ifelse translate t2 0 ne {t2 t1 atan rotate} if 0 2 moveto 4 add neg 0 exch rlineto 0.4 Slw stroke}bind def /cve{gsave cc cd 0.8 1 cem grestore}bind def /cvwe{gsave cc cwd 0.8 -1 cem grestore}bind def /dl{gsave 0 Sd 0 dtransform exch floor exch idtransform pop Slw Mt Lt stroke grestore}bind def /k{/y1 exch def/y2 exch def/x exch def currentfont mf y2 y1 sub dup 16 gt {pop 16}if dup 1 sub /y exch def dup y2 exch sub /y2 exch def 16 div 10 mul ss x y2 Mt (\260) show {/y2 y2 y sub def y2 y1 le {exit}if x y2 Mt (B)show}loop x y1 Mt (\261)show setfont}bind def /l{Slw Mt Lt stroke}bind def /ll{Slw Mt 1 1 3 -1 roll{pop Lt}for stroke}bind def /m{/y0 exch def/x0 exch def/y1 exch def/x1 exch def/z exch def x0 y0 Mt x1 y1 Lt x1 y1 z add Lt x0 y0 z add Lt fill}bind def /rs{rmoveto show}bind def /s{moveto show}bind def /sh{show}bind def /wrs{rmoveto 0 32 4 -1 roll widthshow}bind def /ws{moveto 0 32 4 -1 roll widthshow}bind def /wsh{0 32 4 -1 roll widthshow}bind def /ST{/n exch def/g exch def/t exch def/w exch def/y exch def/x exch def 1 1 n {pop x y transform round exch round exch itransform Mt w 0 Rl y g add /y exch def}for t Slw S}bind def %%EndProlog %%BeginSetup %%BeginResource: font PMW-Music 11 dict begin /FontInfo 8 dict dup begin /version (58.01) readonly def /Notice (Copyright (c) November 2010 Philip Hazel) readonly def /FullName (PMW-Music) readonly def /FamilyName (PMW-Music) readonly def /Weight (Medium) readonly def /ItalicAngle 2 def /isFixedPitch false def /UnderlinePosition -98 def /UnderlineThickness 54 def end readonly def /FontName /PMW-Music def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /FontBBox {-150 -1400 50000 2300} readonly def /Encoding 256 array def 0 1 31 {Encoding exch /.notdef put} for Encoding 32 [/sp/trebleclef/bassclef/altoclef/star/sharp/doublesharp /flat/natural/tfermata/brest/sbrest/mrest/crest/qrest/bfermata /longrest/breve/semibreve/uminim/dminim/ucrotchet/dcrotchet/uquaver/dquaver /usquaver/dsquaver/usqtail/dsqtail/ledger/vdot/hdot/barsingle/bardouble /barthick/stave1/pstave1/uqtail/stave10/pstave10/dqtail/repeatdots /ustem/dstem/cnh/mnh/comma/mordent/dmordent/imordent/dimordent/turn /hbar/accent1/caesura/accent2/accent3/accent4/accent5/bardotted /caesura1/little8/C/cut/tilde/thumba/thumbb/ds1/ds2/downa/downb/upa /upb/iturn/seven/four/hcnh/hmnh/xnh/xustem/xdstem/fustem/fdstem/six /gdot/gring/d1/d4/u4/l1/r1/bs/ds/fs/us/.notdef/tick/uacc/dacc/grid /barshort/breath/vring/cross/trill/scaesura/lcaesura/sbra/sket/rbra /rket/rep/repdots/vtilde/trem/circ/cutcirc/slur1/slur2/up/down /iC/icut/unibreve/accent6/srbra/srket/angle1/angle2/angle3/angle4 /ped/uvtilde/dvtilde/nail/angle5/angle6/stave21/stave31/stave41/stave61 /hclef/oldbassclef/oldaltoclef/bratop/brabot/direct/five/major/dimsh /hdimsh/gcross/ledger2/srm1/srm2/u12/d12/halfsharp1/halfsharp2 /halfflat1/halfflat2/icomma/accent7/accent8]putinterval 196 1 246 {Encoding exch /.notdef put}for Encoding 247 [/stave210/stave310/stave410/stave610 /.notdef/.notdef/.notdef/.notdef/.notdef]putinterval currentdict end currentfile eexec d9d66f633b846a989b9974b0179fc6cc445bc2c03103c68570a7b354a4a280ae 6fbf7f9888e039ab60fcaf852eb4ce3afeb979d5ea70fde44a2ae5c8c0166c27 bf9665eea11c7d2329c1a211dd26bb372be5822f5ea70d99eb578c7befd44cdf 045a363056e5e1cc51525ea6fc061dcebb337208eff729802376a2801424f670 0e7e6397b28f15bc10b40012b0a3eaeb2693e8f7f627c4c9c7c6c5bff105c1e4 1b2b9e8f09253b61177e95ea219474796072f4c3189f7cfc7630142215dbc8a8 fd63d147033a0c9c786e17355fa8d996a3a7b5d213ac8011fd31a12930a87f86 374c1921aaa9ed181b43541cdf6e376bb4f2801faa9b01dcc0569ac59cfc4768 afdc549a30d41f5705e4231d3bc540161d390b4980ef9fe489ac4df99f83a8e2 00182cd152eb35a61aa915230f1090fd0bc8d4644f836c3da157c564b2a8fb7e 7d3203ca17088a579aab355eb45038ff45d5eb2357959a2c7c04421c41d3b822 d0471ae18607c80503c0b319348683bc6bc87e075a8eb4bb34729c4145b2b5a0 df1a88b2d7e0940aa3d4bafa502b87d9313153f661019a817ab20e1a772ad0d5 51ae7fdce4e21f426a6726c39c88124f8cbf10bb7394e90e9d28efdffef75078 f7ab1d7fe8387e1e65c4ff67d054ae6a0937e4d59889656ac37afde0362d76ab 05f9c223c52f04b6279e055419d3630d5057b50b4c4492891f7a36d03859e220 2d89747f1d486e9449a3448f81c240adc9e5476c6de456d76c4237055c0c30b6 80738211ddb90bcc73982467076cba36a60ec6a6584d9d9bf0df2b8462ceb1be 79c1276d2865b0f3518664a960036ca2d00c7829a967ac16b5c833f2e143efc0 f93826a8d09414c4ae7cb17623edc8f599b895ed0d3f4bea8bfd9b414cc39c0e 4080180fe8286b05065a10df4d691d38f73bc82d6142bdded07ffff7017f7803 cb03226f4d6501c203f8ee4e08ff5f8eda81278aaa6378b2d95ad6dfc7bc2e11 aa696cf2618a5737f03bce6c46c635caf89d23de81693159167b74cda0a15dcd 491b2ba489f28d410f1835d0fb7a9be1e3e5e7b76996e1d85cb9b62bb0619bdc 78b85ad2731fb580466cd92159c7f0e53f0896e154ec770cb55c55b09ec7b405 251e205992ac88e0bb583792edc9a21143a3ab447d4769e84016aea06413b52a 9ad5bbf68c05b2d1fbd434a1d61a903b6d2e81cba8f422998f51dab989a49b7c 2d0ee5cf9f5cfea4fd5f7686eb2e9d29bb4fd4b117bd407534ab7aea4068f8a1 f3f89f61f1b341c9c31755c876038a2707314ba7f51f25ae9b81cb7170f24d97 f792f849fb28eb31704aa5826296042664f4324d94dd8644d43f3d3ba8ef474f 37ab52149ca62286bc986a59f4dc01c95106a325ad9eb4e22badbf89c3c329d2 cbe4d3f3c64fd1b40dd441f2f8e45df63e6cf107d5a0efb2930fe55c04c6d01a 23b40b4706ef7ec9e6447190cebceb1293800d461512b42c06825d1ea511b7a7 031286c05dd8536baf9159f6d3ecb5c23c3677795a29aad9be47a0d7a127e3ad 051d57de2b0969ba89d906f64a4834fb7912a5c1f39a8cdac5367a06ec532870 fd72e532680e064d490d975feb7bbcdd84ea1b060476b844a6fc153691d6eeeb e72d71ef5ee59f6bfbfeb9e166e0304f50b91d8e401fac3257b56ae63d9ac6e3 a27fd33f1b43075c792597372d77a93912bc83e4aced15502c9f549e725ee735 8cf609891f05fede798f758940ee09d2947af5a290f2b4540b6a931d9d8e1176 5c0c4f14dd4f2ae0a056e42b7842e4a37a854fd70f2268833d8b0a5a5124ac92 d5abea2bc4a82267734407be662c088ce63084f851af93ed826c3d6d417c679b c3d5faa174c9248fb2706f46a9611cd21c2952e70ef36ddfa951b6df819c7c49 04b8a5a08ade3960e46860fa6ed29caa9d332be99f25a6c2e627402f09a5e140 3ac599195881326c44e6deda9d38ab32544e7b21749b5f933ceee3818853248a c038736c4486f46ff5853684760814f2dc64f282f7619c34885396a300e041d4 4931a4951469f5de55d0282ab491a456ed329ba83756285e2e637ce00e925b79 6a5e7de954b276e92b958ea4119200955d906a275b2640f2881224816febf38c ae5a330d8c4d31c68dac342210d5b0ed554e0d57e7b486022aaab11ec40753d8 ad557122b58a7ef70f0676e41f9c29feedac4d10808370b03202d11e5911e056 5502c18e30c2086795534f946639ef524469e7628abf78b2ad634d1c30315202 2bf1ae1c038093dda6e3dd5ca785626841806f19db4edefb4352255a40a6fd2d e5b292d963047035bf20765a1724da4ceb6596e5fa97d7b8fa9f3ecb4b88197e b88466dd7b189aaf8603193b647abb7bcd00005212a18872c0145d3378b097b2 8dfc782b3bff19d16c0fc15c0dcb4c59318183cacd60f4a6bb68be52381277e4 f01f081110b5549a1178bb1f260a83c6185569012e906e6f3e2efd3be510c8d5 359170a08dccef71cf290c76297a1a4b5cc979a25285a9bbbd06a29109fb026c 5ed7c864cfbd56af94b980775295d1cedf1e2d29bb4374919a1837a325daae46 3420aa39e8adc0a6d1508ec3109400eba448f2c83949001fc47f5cad8d4abf40 05805a03e5debcb69a94d9de331cd65d7f1f6de6141eff2045466417110ebe68 0b7164d627bc55b3362049f5e720c1fbc78138cb39eb79e66cb7f7f0bb778afc 9f71dadc6df0dce778b2a5500ad6d77ec30ec68484fb9acc886f9f17b85a057b a9cc45cf70a2ab800d6a4790ea19c7bb8042ee22148df7df8b2a3b6a024003af 4ff4306ecc2b060304f8c6f66b8c0a6e93ce65360a9cd69b61f86a8dfb73c68d c21db4b6c6dcf79e667772b21c7c466e32c5d527c69368ae0e89a4d4cdb4891f 3d4d979f9173d37b0b14a078b061c3a647d1446862ccbb83e0f0c52e55f62571 d261f9025b9b76b19a4387c9be977a75a9f3081fadd4a0497049db2b25ed2e1b 2f1d2330b45df4d9046c5d6b93cc37b9f5cc6efb382fe3c1cfb2149369e96049 943b8bb24ac4cc79d6f5700e7674c56b90093ea2040bd564d03b248e7e7501bc 984034757fb9a8ab0915a676cbd53f3f680aed60d401953b080bf8339b2e86bc 5afa1596cd942d225a2f4955693042f9283b5d609f297a6f60a4a1a1b3af3b75 b2ebf205ea219cf61f378872247fe2284ac99a5e29a31ea3daadec1080e9a252 504d9980bbea3845e145ca1fc919db615740a5d81e188cd9ec7de7467f77e23c af9879f9b562af2382f271794641e9c498cc7257071a9a037f4df9df87289d8c 973909959329980b26acd05b0ef35e9b60101bfa019acde608ced1432c68bd26 1b4db2b2f16deca61e710e8bab3c99bca591f6b1491ffceebba2c75a3e7802a8 e5170e660125475f75be93ec815304bfa33a26a1371c21ce78c58d2c700c91be 8aa8d468fce514189054972132e57e69422dae4588d5de9f3344cb59d505c421 1b8b27fc1c22a82a062d76ad9e6e3a4add530aaa501e20293be5c19916331c05 ac9b774007afeac38ad564a281afffb6fd41002837678f0741eeb025ec3d6c23 140420f6943d17a1d84e301863a849290aaad57b545f97493b1f3693fcceec9e fc8310bf367204a88570d92045d3dedce44692ac4858a4950f39903095bc974b 067283afe304317fa6c0eeeff03cc68723468d73d881caac31300836687ec574 c06e46cb22fcdc7c315b06cf8a13c01830498b2f379c96dbbc04b1f579f7fb12 d8c1bc2a676fbe690a6787fc77414718b5dd3f742689b39aa8cb6f6a34bcebc4 9b9aaaee962a77fa014d203415495311226d9c03c80b6dcbad39450fc44184fd e12a276d4e87cd954b0db7c58049084003014dd1920351a6a59b9ee428bf67fd 1b931e652870068d9feb0866d2e825e6404056ee589c7e406718004e0df8cfa2 04d21df791632359cc821e8652e6104eec4c1207c704167f70010e9afd6ec0aa 02fac84771d34e38bef362797bae62cc06fe81c069bf04d9edb277a90fa75f4b e79b3c0a8804adbebbcad3c464aa14a393f6ea75dcd5b420f9fb320398ecea1a c3acc08af37f7c14f14075f95c4961df04b45088dd75e338a2629647ec421849 f9948b9a17e33408239210566599f792a4c0934f88069a146f66b9c5bfa541a2 4b68fb5bd566f3ea28053dd386d2babdd8fe08e9763633933844fa5417f29ba7 60b235097764864d61ae1213aa8d3c4436911ff0b77aef7cb6d899ce0e8c2312 66d552dc691c783da623fb308ffd42f141d7e05b9db1b5fef691967f4e42f77c f0b3ccae74717e0b0ef02f152c89f9c1b1ef8cac955d3c024c04e0c8830b7884 ef8490ed1fd4b718977da0be6b8cef615ebd95e41c04bf119e9064a7723c8e67 2f84a9f02707f08c1423387092004c5499f20397855b03e12a48cfd90e9f4b1e 0e2ce907e86716c43cb9fe377cf4a38afcbf860074cca3c3580730147bbd280f aa4711be6c7ca74633545acc6e1ba2003e9eac90099a00406cae1b04b906d896 1bc0589e9046c3450ff07624f3e8bc0241e3e2356dee09b92ce70d48a52da586 8528da6c89e780f1b121839418ab684a92b4187d184a8616e73f8d961257083b 935358f1e6d6fb68c173e5e38969c8f2a68724ca12a86ece19f1a79ac9b9913f f14c9e37d08f89e84b1d6d1ce4fa8b8c32a139c950f6e83471b38702e695bc7b e8d87c77805d33e6536a5095ceb6e726ed0500b41c941d173233771e6aca5e2a 8a0974f6f726bb5dfd2f7adfdc64095d4421984d879a40e27f3da62a433f03f8 25465338bd92d7408ab4b30ed357474d07f49b4a9d5c5891c11ca620a0ed4c9b cb476ad89efaa734d9d11e55bdad6163c867c56543d2edf445f8336473f81d72 40e675ee76e15e68c7295fe4c4727049007e3fd6a3bf5be662846c669965c39e ee26797951ce86d4e2db76070ce1217c9c9dbada0a8e53e450bec992724150a9 34f7ca6b7c092e12726cf0ee125608a4e58f3c54f1b3466c47acc11a7fb86d15 56bc15dc4999f52616f1d45745a4719df7849fca9430b7e2fcf0c72dfca8e2c5 b205f65ff646084b03779616126dc0108574d98b20dcd787f99305e593a3ff30 39132a62240bb9c47f7aba86bd61fa30e7751cdfbfb630c159d016ee70c8a273 1a167494354bee5fa39bb0a233580913943e029ce518d75f30af7cb2d3ed2103 d8abbac569cab1a9daaf125e79d5b327e69489eec94bf0e537724799f6e42c6c ba604976a498266555197e5290968486e625bb933e6588019e496c647f574522 7f8817ef98e28a27158cc58a48d264f6b95cbf2e1d92399d423e31ac7a077588 466f725090359c69e0fc91072df81fadd46069bbcefcaa77cfb7fa3e96034026 35a8296bf9c1d0a7fbab44a815ab741f36aefa60b2825671b0ab55db353d186e 90ed303b9caa7d0f52f9b74273042c3297e64b7264f38c0b849b1099a2b1ead1 89c6b6ee20b3f32aee24ba734e809ae500f6d48a50e6eadbfe61e660028476d1 254dd0467c140e698527a278c910e03f4341f0dece94a430db441f8a4fa73954 edc0534e2bfbae3205749cf27945909d28da83e440a5558aaa8eca7a9a4c8243 f0a60c5211ec2197fac453f01520ead1b20621962324543c2729d977cda3eac4 0ff0c0fa1096315ba2eee3d71cdf2c5bb1d9a4d4ed2147dfbd673f79cc1dc21b a77ac1096bd93b15f31467919e432c204640a81694abe315fcee9a3e9ef27f86 57c1d4aae410a23e44d0ce9fab50f953c81e33f6ec39837b20cf8fd0cc76a029 8f12e76a4c78b40798819f7919a0d24a42cef3074b8de0cb5e418201d41f431c 68e92c1827a4c9cfc968063e76038a494bdd4fb5e957d57aab2fa31bf1830b1e d3bb12f34f3fb17bfd73a349d706138da54671b43450f22f40cd7cbf50476a5b 2c73dccace0b74fa671007e4e95bbd79173c5d37047e511d49a110f81ff7ca8b 5fe0ed67a5efa1a87670db0ea31a11ee76b4af2dda3a6367df3c2b4e7cd868c1 604d872998326c710c206b78d6b9ebeaa14ff4841d18163a1b0738b3c9c2a952 3ec59bca6623329181bbed1662963564b1a7b48e08b120c0b1e2e28e9f076196 0f7a72f4118dfe57672c96ab72589dcdb652ff0580bed4a9c42ca35fcb1e6595 bf4fb078cb8531d2b589b0258fb14aaa9752283e94da2822810fa00220ecc76b fa0bf30ab93c612d2f6fa13c02443dd179c5ccfc0312d70d4509c558631a1b83 00301b494062dd506e84bef5d3e734f6af4b506f9b6ef43641f25a699cb7f70b 646e8b334fa8305bbe6e2f9596579f7db9e28c6e3cbac6a244984cb1dbcf751c 748afeea4610cd4c1cbfac10c9852a32b6f912bbe967a68c9678a83b03d3a589 55e21dfaec2921bafbd868fc6c5dbf9e6ff8d93c8d5a30a5903eaa82757ef344 ef36e216f96cd68b0f90b54579e11a40cf33c17fae2ddba456e1b85458cbf05d 928fb1ccae12f39e215c4c68b7f22ddd26d0f271e77b0f2cc2d6a9a7f37db7a7 621c4ec4e126ef4f231a2bd811cba54ac5ea84386cfd985ba17506d0d7c552c2 aa2b5fefb49cf5b7b1b16bbaa38fb408cef612e7260d088712d60c57af8291e6 9401fe2d8c879d563e7d988bc522100bd0e905a7dd25189a771076e75998d37e df26f0dd5e302eec87c087bd54289ab3f3c013b3a64b8bd4a0acdbcb32858e0e b407557f336b89be676f94fa5e41f2db1938288948b2eee549393213cebdc36d 9e241b237e78fb7226633fc67a127e48e43ddadbfe12aaa41bf7cff47115524b b853d3bef16514c2723b057e3cb74f0e6f043a25e7ecff0bf7620140f11b57a8 9e343a4fe17cafd950735383d05ea02d410d26c0ed305a619a461c08155ace2a c0888f257a301272ca78d533bab54f54d001dc6c205ff6324ebc1942320e3f8c 7c00eddba2962f7d8b8b194ad83e47b13083caf11e64dc89119d7127b9be5538 6b703d42d1edfd7db2f3fa122f1acde1ea43eedb955593c14dabea0ea66c6328 f39d3de6562fe906da301dc1ab7a83bf88cab1eb9923c5f1085bcaf02b8fa410 5c531836956c509ab18cc19bc5c248a2eef7566792982a43ec89d63b31e001fb b2ccc234e03e4572ce089d02bdf9dc0190af8dbc2c7ccc22196e3bc17c3e37c8 9a742f07edcadccc8d7597a4ed227f4ee37e843718e15da7208f8d2f2ffa12ee c007346e4cad0bb1aacf73e0edfcdc725be54ff6103eb3080881b1ef78267290 abc87920cf63f402a019e5c6e328f78707ac983bf0bc32cf4673d6bb966c9cd7 3b3c64b76a925b15225054a970acf61f123c44e51dd944426493fdf54646ecec 87e538cd1a130a43e1fd6274ac12ce5663534f65210c1e438118e34112c119aa 0e311185ca3977c6da19e0e73f9ef47ede1bc60f1891dc3302d01d7138da0867 1bae87b54e594f06e26c0e01b11693e994722daf37dfae35d1c63f7946f31167 32415ceaa09a865c28ccd57f9d41e19123e2cdab7e3e2bd29dee275f30075bce 458ddb09c2d5fea6e0e2a744009f6abddf5c34fb3caf51ece4665704bbb215e4 7107a1745424e6ab9071d2008cbe279c0b5ccb8ab61afa38b3d6195f652eb5e1 7a32a358e8ba8e02888b97e3ba3b695ea0062bb1cdb5ac5fee551e9eda4f070c 3dcf504cad12914caa34b39a494f539f1bf2ef77223c233a57f11cccea4f79ef f782c9c42efab4dbb360ca7518709ff4691fd9b9451e24fee60b2053167b96d4 f47fdce601a10d0dba330116a5dd0adfa44f7ec578c5ccdefda203bc220e5ec8 128e67fe500412d234fa0caeaf0a927d5cfd89d46bf3362e2ea172e09fd4d126 51ae59dfb15484b29ef2d5abd39e387202cc9348d00ee7a6dafa810bb68ad460 0c2e61a128d692502c2080311a7c99e30671d200ca812755a79ddc1e281a0c11 359ffc8341a508486c7677cce56b24bd2cac1b9457d2aa9b701cf9d7a74f8d6b a285e3b342e5232977abce1e51a95b0b148ba89fa492fc93e67f91042242ef87 f0a83ca51a752255a9eee173e2b2e69b4d88394a8f5584f9265597cc42fec4c1 cc727c7ade1b3407db4e0ebd6cf4848504df6cdecb476ce74aa817dca0e51c0d a3f14a1bcce37adff3bd7d08b44876e1b08789b630a3d070b53f3a8fe7ef8bef 539522d521b1319455c3999ab3f6fdcf92f28a36152a6574f62ba51ef90e1f3b c89ec530004dfcdd7a7b1c8038957ae361d921dc976b899b46f67eb824732282 e0207eb3f113c267b2154ed423f9084b56cfa1dd26508c3295d844e1549b63f2 26bb27f7ecb4ca36fe55ad817d952767b49d78f4576448eff1679851a415f918 0cf5ae1157b06c47e44c70774d6ffba7d8f86ba0160d55e21db737e10b2a91c7 05286b7c7dd9cc027ee23f3b3b46c3271a274868311d56931361dcd37542d1ac 67dc26954a733f9662dc9308f9639b944894f6f19848fbc3f44cb8bf3d5f6b39 fc78127ddaa6243cac012fe0cd52efbbed8b4bf857b3a1bb2b7e7e44bc8b0faa d715b0c6fbf4a4a9071cf299e0cacb88593fd61e5a0dc9fe7ed040e17dae132d eb17ff933db6927e892b3919cc14ca1908f557607b1dfbf48dc3d6aaa862d8c6 5dc9b2f3cc127e70d10c3a04ee17d357c93527eeffcf18792383b73459d50bcf ced1527e0520a397f7ec692a12f0693150885fcee5087b5d94b2ed81ebe967e1 fc32853cb465bb8b66453574c4ba998c91641e35a2fe6e521883fe344b27cb10 7031369baca8bdc5f4b9a2f44180c0ac498f171a416c8fdae8ba089819eb0256 17094a93681a3b3d100ec7f45839e9d42a09d0d75b8a05f6da5458eb6151be55 3fa2413df3364cb39a368d22643cc13b695eda2ba739e77125516dcb203d4764 e21c4075a931da7518471e4251a9782ee15bd2a5e94398e09a07fd265edf618f 71d439f8129c6b7402a05ff14547308fd9dc5e7c96f620a2682b50a7859eec5b da71f4c6e12059e8dd3916bfdfd0e151fa4b5aaa90435d1d42ab092c9c421657 d5bb283717759416257016e9314f54455ec9448f77df7e53c24fe8d96ec1c68c a7fd651af1e71686d2347af1ec6f9b790c185fd352ac03047f6c920bbb872fcb fbdb7566c75ab06d93278df61d8070a9951766b46720da236d8d4e7b4893aba8 ed4ac9406fe383631457095ca9993db527e7a37c9419b7abedfb7d41a460b9c4 9fb39efcf3631da0dbd315788ad98295fbb62e11655c0cc1ab2fb0e54e01ba9f b16cc2c1f82e48b3bfef4b4d339d7f0df8e001dc2a5911b4b92fb7eb428873eb 8a5acce25fd9f47faff3e0733d38b86a244ea1952ce528b8abf9493b1b307bc4 7a4fa41bbce361d2a6bf9a6820a231a58e89a9d214fadd6aadcbedaa150a4f27 9efe67012114205991c643e6ea1411203926bc0804572e0b727913402a466f8b f111844675dd5109212e5447f682e2959232ad21a218ff49479714aadb0618d3 fb488ebb29b2939059d1f794c277515eb400e5c626a811ce2a7a247e9e904b64 5609b594431433470ddcec6974f0f3d77651793ad7ce23ee72111474cfe2ca02 51c4d90c0b02ac9d7670c3795df594074759f38fc2ebe6a2a797d54628a50676 6f1e2263844d597fd845687a44f72a539a8661a9a9064c78071c040d1f0a45fd e2cccd2268919227e8e2c05befee614a9535a6adb324624425290d7032f6dfce 19342467ccf344114425ca8f9ed74899dcbd8d373879ca8f83d953021259f998 338d2e7a5cb54321f8057d70d5a02fa8aef3aea24854a9a21e45428a97397cc3 58aec6ec45fa9199579406c2e842549e1639d80b2a6b2502f28c8f4f94fba297 938a3c986ed1dba4c3b384bc43d7bb6becb71195475398313bf8774355562800 bf86d8f75101683880ae686ac36b757ce0e4adee09ef68f8fb5e891e956ee62e 346adb50098c5b7ded6374bff775ef4fd58a5910d980a635576e20e7b11797a1 7c44b0d347ec9b56cfca607866ea109d54fc992b1376eebd4d201a876e8564b9 f8ebd34de83bfc90c10d8ea85b556cb5fb74c447bde7329334b29c788cae8f02 de02daabf74f0bcdcf64064c91f366db4bb68794c9c41765bfaadfb514f487dd 096b2ad1f1404a836a809a20dc813a277c749ad0c4c45e6374630a4999ec512b fe9f990a74a05ff7e6c2b1ade33fd14670c6ef97ad99ccbb996b12d0172a88e1 b923f85a17213d52ae7e3886c50e125d38b8f97692cb2a5b3e03f21188f763e9 7eec87182ae517e42d9590f73c2594a7e5f61b9a5bf15a7eed29a754f729d532 dfa74519696cf75ae98a471ec88b3ed550730f50f519ac629691a47e19343c05 1b6d466acb89f50db25a9beae2b0eb79a96d2c0189febc516e68f70aa6bc09f9 129b0fd837e87d16fbe4a7a4456663cc7346218be042b965dedc22b7cb5f811e a445a5651759ac076b49d476e5f89c218bda4ec9582c95149b5f2d8a49c80ead 3ce0df6ea52db964cdc0ef2164bd21f818ef287cb3337b4d8a6aa34a336be17c d808a00949f82017f831b771473ef12a2661ab1fc21c3e344899d6a73ef7ff83 694abb48072daa7841dbb31498a9cc29b07bb0dcf709cae5014c2cc9073a1e5b a29d67f72a030496798f04171ed6a45105fbb58ca261d3ab9dcb57fc28b50cae 57c4203ae09a58bbca20a4613bcdff264adbbac8ad7ea0c2fabe4f07aa453618 e1591258a2a18e0fd974135fb890beba5bb115a8dd6491ad3299e27506ecdb8a e9c074ad5f1a553bb14f1aa35b9cabcd645ee452166f331319a5a953a922cc14 5f683e88ccdfc3d64d61b317df7e6022e9d50b28aba224d6a03a34a9d8242f39 e34cd7b5e46f37291f5d75bdc1bb586ac86778c1a496f321808cc0da6fb3a6e1 d4cd8c8e37c1e2c1d98384ea5a1654caf3b360d4fc77c3c3faf94466de5208b3 2935fde906ebf2d98ccba2cdabcd8197947f5e801ca0981a82b091a51c8ae0ba de5b69f3c9c0026fdd590e1e2cd526e7f7096570a53bbf917ee0a2a519ea4f15 f24cb5a8dd227ef2d8459ed65c31f5c19c9270028ad027c131e73c3c6f70b9d2 f2288bf3b41affb66db183903f464999bc5cf41602a50db4cd4f06ef1105214c cb7eadc45b06dc96636884a3d6d7a8374c57daaaecd35f52aa4db430e1c63995 bbe2b7bca8360dd4ad7dfbb0aeac6ba567251655c0e587d9dbf612b92bfc10ce db038669f091a3fb55034808c478ea0e0896037a1c5b442b8eb5923bda950ff5 72d305439fa14d73563da1105b1cb0dd7feb729e7d02368071dc03f11d647e25 46e5e870a784152f3317900f59f6f8f0d5a585ea6c1a0d5315625c0916906302 df05d68b2514a493918d94d99cb53f6deba91893597a866fa8383288acc52dcd c28693cb63d003a4a3248005b70e35cc45292fbdec55ae303f37ed3cecb8d0bd cccd224b63a6328ebb6f1192e962b4d9c160f30b753a3f974767aa5f8d5e9f11 5f6a834747814afd7f7e7d4e90d46ede92f8a810311bc28bcc0027e674efdcbe 3e40e2378ba1b9d7354e8be4e313322c2aba1e03d2f810cc09b78197e8214d46 6f5531094a7b8cecee5aeb2c693d4b382edf7d9d715d4cd12ce39d510885240b dbf096994f947ebf264ca3848ae72b3a2acf8cf2904a4b5b2fd5a3f590f4a475 25b967f5bcb647a537b6a4bb99be6ba00c9e96a51b2345fc48a8ac1f7cf4c9eb 329915effc052bc6fae5e25b08151e54129c8f5ff8896d0d4ed79b43ed124865 f79622a6cfd362e64e8e88e417a7b8204f133cfcaa7ac70df4b072bd808c6971 a0f2cc29008d5afa6648411b5deba3aac749fba957b0be5dc72696d1ccd3bd95 b2ada03d95bd1c2e7a10beffe96b9154cf9b1ea22c5ad3ed8d79af6df9c5fc46 7aae44e7f8558889afee261b8bb6c43785152943785407b575aa9de5f6c921f9 fa660b14626f5e1034cca473a6a7c16e597492013f9531c67a35fee2e56a2ab1 e4b9e834fab1fe22a52d785dc1995badcc84f2d32e0f9d029eb0ff5eb2e69843 fa738bf19d33087e9c0618371f5098b1e2e309d45485b4d6b37e557baab7152e feebd0b2c10c1a45494853962e0345b6b72967c886c311e47a1e5896260757c3 29d82d254d57e38e0e89ca1d9c746ad36e246978f307be1329914e7862a0f8cc b14f06cff9c03fd6cab3bb4cdedab7f0e1711b3d31b022af53cd82585ae82145 dcd76f76fa2bb84da98a2a3e46fca1d9e7ea0a91866201e08712220cf0d6d5f5 91a3283ee986ec9e7f25efa757a93322d0eaf07e9cdfa316ca5f96169ce85895 407ad045ce86d9f35b49cfd6bf116d22d70aad5777dd46aca0ac938cdb0859a0 96a63b955eb4c8d8666179b1e6d95fb193889028666c17ff613ad70c8e9c84a8 c66cafa7496fefc65a69b94b9ba5e1d5b944b8ffaa613fd3d04cc26796c0a5ba 2d6d6bb91772ca88f254a48ed8acfda7532d98f9d5b7d88cc0b0e57e5d02d327 4be18983b93de871c80dd536b7cbc274729c142a869ca7d6247c769ce44fb92a 90b197da1818303000994e0a6cce0fd6a524b0d5d33802ff7bc6099ca05a77e1 5f5b1a7a379baf044715bb6cc9943e5be7feda7733687e9e7f960594d1cd925d dcc26c02a8f37102c39272fa0dc6fc3f5fb20f81d61131e7dc39e862aac67cb4 bb9db02cea461eb5bc66b3d0b6bd78afd0f9536f5f907d53139b574fd40818fa f3c85343b5b8e77b8d164bafa35075acf022679a99145c46339f12a31bccc31b c17731415fd5a998d2a8e33c4fe39c1fe4d711dbe2b0ffc47a171a1ae9016c20 98f041ce3a0240bed3fd2e2e174a19bf5c396965897b3b64019e4e22130be4fb 6b8f3589719040c2b123716934d430aaec0bf30c04ce6e1980552947d3233966 1f72ec517f6318586521e5d4c45a58bc53530fa66efd6f7ef3d94fcc35afc26a b4dab34757b5933c85717090211219dafdbcbea0d8dbfd99fc05288feaaf19bb e8c905b49e7aebdc42529c6ec1f7c3ed523b399f2a71e61448b8829873afb8d9 d3cdeeafcf60fdeb9c878f6386fb58f180bacf6e99374e89e2704d3e69262b16 07547873c342d897940b8496d1f38e9088ce93dbda7e866ccc8c068fc7210223 1b27bad26cb4eb65dead908f9542a0b68b7a5d0b4ed989a8fc74f5e4d5a1fe2d e408abdae204cc186e0a2b67749500b3f8c51260ea094affc634a4953447c3cf fd2fbc2698bb86143bce8b232722518ec936358c7fbf69effbebdf6c3610ecc5 957fc30ab08d2e2f12ac47ddc6322a710b76f900c3dda591f048886f80165704 1f712a84065107083c0f79ea7fe4f92faae9c9c04cea4384478390f1affd066d 18ec102b5154b78ee8d468a4162c0b3a10bd19e1312e9d8564d5aa5da77f7e56 1b6852c00138225f9101fb1407fdb9ea605c8e0862d81aac19b869af18630b27 38d8bb635ba12ec2461ad673a27aee5bdb592d8bf08da6c14815ea3e59466eae b887ce5b0ec2f54dbdbd30424f317f45c6ae5d1cd6f44316c122ffd7c178fdbb 8a068cabba00c126bcad2f17a454d0810a0533629ff6b1069d5cccd5f5e52d1b 07869a59eaef3456267bf050eeda457c1029fee50b395fbea1dc6d7d7cd18d76 76ed7a78cdda4f105166f61ac728ad25beb547d071e0e515840dc9559551bfdb 454b080cc49e268fdf556161a92fe7d93219b395625eadcfbcfa8a9ed61bd7e6 f42d58a138020f2a69951d2f67641c39e98bb2a4441b0ebccaeab4e731e734f4 136e6b193011bb221ee9d099ba6a23a5f1340a1234a50a4cbbd172cce6cd2b60 15e10de447c4df7db80ab79c4840dff6c7eb06cd931aa58c001c02229220086e c1f2c3544af0a581afb28103ff5ccb7488ba861edccab702611dcf1628f77669 3bb25210bbcafa72dd0a5955a85419c425b9b176ee110f88e341751a56a2dc61 209df3ba68eed540b6df151f60ca61a8a4f93456aa864e179ddab8844290677b 669ccf3a67a2025b5cf5b4d7d2dc7e1e665bb55e72b8d02ef4735d6c68764ed6 93322f99d69636df06023648c22f86953046bcc662d6079ae2c7314bfff5f5d9 bbfe514c8beb08eb4a469c2b8e496671de9227b64ec3a26db6202935f7b92a6d a03d7c9d53126432b6337cccd64c650e0d4d6e3032ada066c9b2b891f5b74900 a9c3b0481aacf53671ed0d841106f05792d76db3626655f8677323d0b5d817d0 e7f0a221493ca7ffa8ad261e9663ea965a3bc82ef4d9031103337a868f80ab46 4f4a0df2f735b25807c9f3268a7e0711ffe63eddad14787806e67ec144ef1d17 083343ebd10a7e9aff9e6c1e349c7926ed0f3d878fa8b13f2904cf4efad6ca39 1bcf1f1f4083e5cee93da0746c5cf983004657c5c8fe4eece7dc424f72866db6 86212292fd27831b68e36bb169ed0df0d23eed7c87fa905de280da096e57e140 69e00680deaf32aa3986d48eea8811c87d7082371d3d48049611253d1d0c5e17 c80a7df4469c54882ab077cc8f0defd8b88232205c3406db6bbb157580bff648 e16b07a670f7fde9388e018153644252dca0a7fb24b50991c2e699c90d827fd9 b5ddf4cb8f2048f8d4476b649727d7654fd450ea19a29e4bd087a073404d6406 58c8f54ff20565298cdbe2a6cce4a24e2861a92b14212a05e854d04aa4bfe13e a5fb10d7736a8f03e6e306d669bc6f6cbb29b34958a8f4208e4b394959fe8668 e540699edffc8aad936f803b2abcf963889c85bc44acf6c9cc2ce2a12716f7a6 37c07d2d6879ce05971c3842d69bd02a41e3da3aa881eff4a38f9997494e922d 550f63938ceae8afd845a348c43f45f3f7173ddff3f885611d402f2477ee706d 8e530fcd2b6ea54093e445adca8c022ee291329e37228c5757270e9f21a5b2bb deb0a0f2d25224b0fb67a610cfce5a7fe61dc6ff049f489f1e15699a229d1555 fa976700d9fa69fb212aaa6d8a7d5604ded821ae4c63f87af0b4272ae421a29d 8801b6025ae855c0b1b978ad52c1a8869d81a2a50f65806fe9627bddede8891d d8a37af1dfa7cd7293c3938d32e410bf39437bdf149cd0ceee8809e3e8bd9584 aa3588ba05f51ed661bd48a1e11feafece70752b7b9ccd8b590afd25b0d91843 189c395e9c3409117be9784048bac366cda47f117b9260318bc8a894045e5bee 3a1e39af73458bd24b269b5ff40b96abaa885d1e895447297375eb8493d7282b ff7bd2b53ef951d02283d782e1bbb3068d2bfdaf811b6d4dcaf4b2a962783e12 f9f6b211bd4356914f3e3e7a3dfee75d69123468815e6fc7bf6e037fde16f129 ff01ab1eaf878bb0a12620a9aaa6907c4c88c18390d11553507d8d58a9ad0e51 a34ab4ba2e2128ad04deb5cf7d232d245ca20323a5b797b566ff73fc6dfc8bfd 262ca73f501e8d62b807cf9239e32740a2c2c7e6e3b3049508cfa7bfe22e2795 c469e5aa2c2b944c62b734b983024ee9541b60b9e9dbd27e72625f6cfe218ff9 417a053298ee1042d72f2749fd4b21d6afbeca64cd21722628dc52e8d9a675aa b4378ca91ee21bd5e41d78f78208db17434eb55be3eb95f8e69957c0ff3ad892 bbed02be41e9b29d6dd30b94c0a8a0c3a23f5e1906a2930b434e4520148f17af eb3a6f22d2bf6ba1f23c3eb89b66e14f20e409671c4b65f80490c8a3c60bae6e 9a2c69f153ae23b4117078eea05b7c40f0b484c8d11ee2b563533b23166b760a d3e22fca2b5b5667b800ec7037de99a585a7081d565eb61f8e7641f58ac1901e 1030da028db2ff84da46b251061212dd2d90194e5a8f64edd40a2fc547d5ae86 86bc73ff0a665456746074519505db6b1a96042b1674d89e1b00329deab4d97b 86a8d3edfc29fc47971b2e19dc715fe9a3369addb725a8f4b14094a4bd81b77b 5bb38ccbc7a8e1647767d3d660dcd19bcd09c1e5f9237ec7d37ee1930df5f0f1 2d0881eebd0cca2fcd994fd445ad2e620a7386c3a10d7dbda53d5893c4fa70a2 ddf4d0d5af1be8049bd3a57a580e5fb587eb5e3d0aaf73d40ff2134d17ef736a 36335066a493bdad7b4d5540a00cee82bf1b1832eb9c06325f7d2591bb1f6a2c b4ddfb4df9814dad3c9a59b05d57d8be208810831fb650efd8bc629c4c006e9b adbf2a6d0bc51cd88c47b6518e9183d9f25c4de7c6842f37cfd0c44518bcca18 6cd7d8709bfe03d9cac1ed9e19e0119ec41b6028fc2870e465ef7c24118ed54e d81de4113e04a7c4eca75d5c9f460324a84af18c3950b5d253fc11325a15af12 0e36f90bee4787a175c6ab7c1a39be8ffe1324a827028101243f60844594737b 7f597005909fcba78840e6297b099163a356c77032055920da96bf7374a5cd38 f71a74a4cc74c33d1be512f1a1af7aafd876e1d5eb115e945adc76d991b13bfe 165ef522d5e6b85f8da52053f20ba774670ba913e7fa1cce03293a4cbb5a8969 6572e555aa0a83fca4557954d438000d29bfefb09d87962751c77f15793a83b7 cdc6e6f0c4d7fad961d4ef287e00d44a1f61ba6fc0786c13ed8a2550a1914ae5 f1eb15a53984f208e755a9ee908a48b8038d0c219aeadbe303c2cf28c6d7db63 fd1777db279471c852890d0a018d7660617a94911be483486b2c3be1fae8070d d929d68c2356d58d84986662ce0e783e27852b4afdbf8c97f1e47672a96aa0ac f8ee51676e0be143cb4dae6cd40628d0b7012f1ffd638b14f7311f33103fb53b d91e689cf8b6d4930fb4da13bd6343f97e51613b9e6ca03e2fab85f12b1cd835 1078b58f1b82be751a2dcaa1907b2b7bec05ddc488d7388e9d1b29543de2ad43 6b75f758b144fd7b93a4e3876dc06010507f3e7037f3f8f078f24fb5972f7e73 5922b8942dc840cfa4e3d713026fe17362a47fc060c7282a9f7684d89921e1ac 2963a1cdfd4682857b4285e68483576bf2a05491d74a390dd017a95d0ebbe786 8250bb41eb0aa7226bde3a4dfb5b27d7f97421029f2bcfd26fc1a0f3c256b9ae 837aa46745d5de4c5c275ae1f625630648840e9fd199a3c4d00262c696bcfbe0 8c7870e1d46c02a919e381d27455dd4ed5049d33eac72c56810409a6cf74f242 d35ca15c50cd05b546e643835cccf8b8b7ab291bb362bfc92bae2d06c815d612 309ecb8d79321f1a633a934d61a4a0c873637fc83695b61135748ec860785f60 6cd96e593035ccb3103ef1048ea34dec7e52a185915852151dbb086768085f47 9e89ab18c2cfc112b6673118f12d7665c5adaa6853eb08b0bf6061e0b8a0adcb 86e2f9be796a4586cbba8946c9a797aa830858ac6358c4dc5ec98d6e3653ad65 8428f17dcd36cceabdd86e4a2ae4792444b7daeb08958ec834d699e4f9e960e8 5a883744174e66c192f05ab50e2d7978325436b90e06d67fe84a1010b3ad5e36 3a477bcdd07f49becc828dc7f48fd214fb139b57a237ee1e3668255af55a4135 ba74aa557ba6287fa08a4805235fbf4373ec0ed49aa31fa3f99f990f2ce9c12b b54bf5b52f80dc67e494b0958f473f9d0bff8831a33d17dc910b6dd45bf2ff37 b1eb44f40972d710a0d19f6046afe4484ad2a48412ae185ca10c3ac5cb192edf b172b5626e7023012a6ea10d9c8d749b0d91c563c2b9c025fd7cb4ccacbc5478 5bde2cb58d942e2c9fc3e4b22703c1db47f629ab36088cde1105e7a8c624ff7e 01d26899399ff91f4f39b1150dfee69f465f44a9f289c78fd050d7bf66200a93 326acbef82918a3bc1829452b0c3a5bf15b974cc4c85b9aa0a8e9e437819a8af 5ef3df8c5f451e7dfb18bc2cae853988b550dd963c5f150324f5348bee3a5709 c15026d9b4a90e50c8b0b8f13a46e63744e95b50f495ae6c30a612643316cb42 0a737e142d8fd6322a635641bd24afcf438b121b178d004bb29fcde186f9f873 b8172f44a6f75622d9d64b07b998d220bcde05d9f2839328105bd016cb80730f a67fcd5598437d21f60b7b184d1ca74e661a3b3d100ec7f45839e96e0fb74c39 faa05e9905e9074a8825683cd47f9efa112c3891cf8648e418f237c923208fb2 bc20674bef2cf1de80fc61c3e30669c9b01976598849fe3d9155920ae3c009b7 a7f9de4589b512b6219900c73731245412952085c619563c723d61c0270b2a94 9340b5d26323bb7857e6eff428f18a49327242a5e7e4ae7ffa30e9385a02a454 9edbe201c62fb7a47d1f217947eec329a8cf4ec750190bb8989aa848fc3762ee db9ec2bd3cb7221bb4fa7654046fe8522e4768b5b01197dc84d4f868bcbdf293 282da8a907a9ae670b6366bfbd07ef6534127eff7a7f99ef5441f750a7f0fdd7 16ac827cbcee87ba2c9c3a4e4fd9e0ab389af7a9d524dce404a46d147607dc7c cff13180b64a7ff61d4fa6b82ed0736a251f5d912d96569c2e454f52190180d8 614a372969c52351ac3dd829bf24c08f6bb5bdce3dc7cface8a3ac69b2c54a49 f61fcfaed3b3ad2e266a2099e19a9b6275f8e27769f0b4c13aaf831a0e9dfbb6 18c83d8a278edea2cd628326ad659f1e1cc456d98916f0c6d1b4856bb1919f4d ac7adddb448825967ae9a1c158b1f601a7efbec3e76bfd7869be9060622770ea 785279366700c330843b3bed717b82003c5569330da07c8b09ecbab3b013f084 6a314a8a7bf3f03727e91e3c60bbfb7cb9ddaa30f5de85da4d2dd4911c9c61da 3767f9c533c58748d89f96fc94a25c89d0ef1120d3263568a911f0978a312a7a faae86dc56ebe5af19b0b25c2df0947caf214ff95816b017481ef9e3ba594bbc 80bf7e3e8aeb52e397022b93ab95957753a094b1e52bff8e3d7f0d04a17cd286 e274add583659138334576917cd517b0394969603e833ea4de0c5b38c84c0488 1cd8c904f7b3da660cc12d37945325bf9f06bbace83f1b64fd8f997563ce8efb 82747a72c81691f88c898f11ea2c054aaa6bbf514cfca02b56cc99e5dff1a481 94fe5039ad6acdbef5843c8e4fbd04bed9d9b6af1420fae38cfd1772b2e3e1cc f7e4450a01668388fc4ddab08cc24af6bfabddcb99712100c58ccf5e9c9a17c5 e40d316fadc3bfa62294a091ed266bda81880f3bfeb6f6cb9f8c9ab03c73ed64 52ad9eeb2d3ac8635cd9d2459b2c2d34f952bd75def9f84a60be2254409d33dd 04ca06b44cbb8c4586ff98376b6aeef2fc171b07786381dd978e4c366345441b 280c8d25c53ed779369e14f6d7066db2c7dbe003500314505e1c3671fc3b0ddd dee36439ac826862509d543302c387d54cebdcb6a5502376213596596380ba14 b7880a934ab08a6abf6dd4093dec4128c8082f3d92b5d2d92cc286268f1be343 312773834d2d1f8433d6ad2a938859502d867dc25f0cd96e98e4bf4de131dfb7 a510583fba93ae8718a1f89d60e5b5ec026d91d28ab3e9ab81d44f8b010f1138 83325a09382ac02e6f7fb07fa95f90c75d2d926c8ba15701bb16f608b91478e3 bbe8762c90ec7d507f9ea95d4c3f46465a2331b859db5d6cd9b590e1130c4681 297cf28679c41a91175d4a5f4c580a1de13371a453bd5e0d38a0b7c0807f0db0 2deab94fb7aa3c7f3138042ae532fabdffdf953b8feb36631b29f5ab0bc0438c 5f9ab0ed3eb87ff056c5552083b2cc268689be24162942776f59b7f9e4f5b41f 81e5c947ae042d24df262097bb9218842738845fe30e36afd81ccf6e2c90d34c 5dfbda79c932d4baca44490de00b02ca929433e1f25000ccf537d144ecbf943a c21727920d9beb432402fb17ebce944da34f6fcd02332c53ddc0c3cc2536cda6 7f80282b423be2e01a464d062226b47b9cb5b4e45bd5079ccef3a064af2aaba0 905c5f1a3a9a333bbcae9123c29153710fc66fcb65e318ac005e551729143d67 da0dd0c698dd7e387844f603cc17451bbb725e2b531a85cac01ec08bf1b9ddef a0f9483de34ce375c835aa613b2f289d124087071ed8b4a37a0aff1981a10b02 fcf7281c0d03a84feca7443b91ae6653659df5e26fe1e0d5927daf090bf54fd4 e730348d1e83f6cdd345b5331906d30858b8944043dd5ac14859db6e68360a18 c7fd1b027d91a14312fc35a30dd12d6983fa9d9526e0559bfc376385715da2af 4908b2b2ee3388cf1fd9b7bbd5da15434739e2f12f44481527dec6241d7dc090 79ca05f15d5aaa3507ebb89e0bf0bdd55f45fad40756621200e4b883facc6c00 c0f6e41068e0a32547afe4dbc0be8e5e57836d47d81f746a931411c615a145f3 afe966876ea51677709da171d16671ecaeb08c8e5799102210c7c0e4b2083148 0ba6de1793b208efd7e5b958b04840c57b7042fd3cf0a7912e238315325f665d 458e6158aa22701949facece70812472f30bf5e8fc544ba99a643876cc41ed10 48daeeb69ab01af53d9018687bee2bb47b6d4acdf1ee04a46b1a488708eb2cf5 7733261d6453d095af9549b122c6e183b76cba9def22cbce32c49dc615c0988a 428dae015300fac0988ca0c6c710de1cec4bd2686562dd31c73d70bbf2697942 7bb004e3b5e0039fe7f069073a17144ef3301bdc8b2f64bf80e69378dfe988f4 bf3fcdb94b79673c06452035bc0b82acb500b8611a958a7882bd4542d895fbf4 a0e0ed758057bd468c31e7a746a72ff9360340bab2e50ee83f152cfe04d8fceb cf05f7198e08ea12f9b2b15f79a2c7c20025664b25dc6cd3866641dbb5b638f6 cf50f20f6ddd40cfe3ec12be71746d38f82e71cb2fecbf616bf275e9911fc886 c8dda19ae13c8359a162e7a5d643867c138b7a27af42cd13dbeb39675fc9bedb f9ee5af9bef261dfe00b7a380866f5146460f4326c02591ff735c6c5edb7d2e2 648a99d75b0c6e56e58e1ab20eb30c26df1cbbb93539de70fd5109089c085dc9 86a1149ce85dde78d04629e2119c3b1defbd74348ee124188aa072c646eb4369 61c2af77048a217f8a87d0c1be164877e38905b9c64c4ca7bb245e3f42604d2f c444db2c200ae6dfcc4c121137174bffe00b8cfce8387ee395c9e2d7796d0b65 da7a0e628f11141f1464b641f82a6d647a706189d18d5a400229ec79fa6e3c1e 561a53f006ffc78822f0a7e8517a920265e4ef96615ee775c1ab93d839dc4fad 5dcd0adb608f0d3812be8681e0b59f084761d99de6b08c026005ecd0ee54508c 238309ed46163b5fb393891d90d8cd03ba417a04d6784396e7e8d282a3b84431 df3f324c703a4988c50004c716bdb31e4eadcc915e78a6b1898026d2dceaeaef a6e82b0ee80fc15221de932095e35adccbcf4ae515b504e4763ad46ca8c568a5 e2605171ad638caaeb21a80cb5877e2da5f053c3ba0db377121a6798d59ad99d fab5488cd3b25bdd8b3a26a3805ede14114e72b50c9c8fe2a8c6384aebf27dbd 5df066b1f4476f4b9d457018fbb57c22622b9e4a3cffb970da1a887bcae6123c b46af62e50ec8ee8fee48fb97f127897313af992c2ceb38b2e7cb704b851a492 5fddb642aa7d5ff2db9dd54dc1980a33df42045e02a2ef62748384a976fc35d4 702aadaccbe7cb9752d28c3a9d15fe8389c92c21ddabf3cba6b69e857565df1b 0139de5682df570e15411924a259f42a86a3d4d2d28c28252a66eedc95adedab a7c61857886af046f66f314880e161176f93395cde18578d7d7596b8c3422841 5fb26419e6316192efe069e49d948fba20bc602f81030806a0665c9cb9ff1449 9ddc0b5fec5fe41f09092ff543a6557b399f57b9bb39ca2d86309eae7c9f91a8 3fe58466c209c521aaa358aefb0b07a8125ab587c4f15fb38e6493fffd24f615 492759cf86fe0caf7049c448929bba2ee8be67eaa0e0aaa9b5f636917cd01d66 897982861ee57528c388adc791cdd1a857949ee4906ac4e85962866fa79d529b 7544adbe7fd7d6bec3fd3ce6bf589e6fe7a9f41962769bd41ea21b3a9e258fe5 a5f8a6ce8ffac7016d5b2cd8b5f46f9d53bcc33658f5b23a851bf6803519da02 426af58a0790a33efdb65e2d6cd034c264d1e1c18d6c8b0ddb845a4bc0425329 88b00ebc782cb7c99a9fa21669a752e9e951c24309317da475601ac02d614bb1 d16d3fccfe3d2f6535b7770dbbc7a7a44055fa5aee59ee1e83ae3af53c138e98 7a5aba2257e904fb80fe99f6c98394084b3cce03dccfb9279fc1fdbd19472b58 d8e5bcd8a3a7a3a5db4f5b50dc8e1ab20629f13d610a751b8a3609e782a2d9e7 e9e703b5726a50229a3a479431c3640efedec0f5a84b217bd0b7d62071520179 895001bb04a291c250a79f6e4ffb1e121f880872e5557cf73b3d5668b7cfb285 f51310968de06ccee34bde0e84275f5ab2a72bc3f9a63f48f8955681f615f091 c95b0e944030a4ab48a511b48015cbe8e01cd6322a500b702a9f85900e1ae8c7 b98db59f0d6d8d73d546f1409d93689bf313e812bdd928e05b5488d9cb66b738 3408a5815a170e93fd30f68f82818148a0bf8786d6bfcd09442046fd9748401c a8d7e4598397eafe105882d035d45d1d6ec61079de963db02500e255c774e8bf 307bf9371f54258aa40237d5bd1581008a9875e30abdf7da39cc41ef4677662e 3f98d02015c91f234a541df1958cdf067918d71d054da3f3d3ef37d193690dfd 9d6a3212a0422c96e7b40e66b7a243a7acfcabe0c5466e7c0d425d228586864b 772d5a2b0912b061ce0d15fb76728df33e5c42b125a9fa7d5fb443d54de43df7 a47a0106a80b7c2823bf7060a7e3e81e0cb7d7442057e93b6f38593b900b4e52 1a0113c06ceaa6e5d632c7c5e9492ad0546f85313238d39bab419ab657d04ee0 166667660ae8631ade889d60972b2908a6ca4c410e8c06451ce1eec3ecfa092a f30b6046756ab995176ebee3683ba8570d69ca581b52a81a21322e744792df16 9f035497dee5701193d55350b11978cf074444691b5cc3513a3cb8eff7f067f7 96edee530ddd825671f5bccbafcc30718a1902b173652e114862815fd0ead797 88362354737e832fa7dd46fd76f8e7b140d84053ebe209b5e9556b2f723ec229 3424d02f8da40f6a4c5ee291b658eb17408bbb2bc98689d0826fdb41428ee6ae 39475c480489083bc7b7f606f68086b7b9b205b4e513af8b73da6c2d0f3eb1ff 70d97d205532cc0bd6f6d4f4fc37ae957a48353d45434c7257051b263b82333d df2d8acd0b7c7bb6b8ad9643bc1fd0b5eb0732776022d6213932021a08f0734a 3b35694705a828587bb9c4196dfc4059a9837e7c46dbe6153def24dba61d3f25 9bc5d63f030fd860e9801dca7b81d0d4dc3d8c4cbaec3b9a769fcc09d7fac8ed 4c046e0b64bb8db2bafed5c91b39fe0885cd5e6bb5fad3917d664238c4642fef 6c4c554296df92a9563a29430485ac48c2a0f02ad39398126843ba348005aada 3cbc9211dfeb94a6d1b4b14d7138d4e2583d721bc9595e05c733043ba6d86f91 5dd250546f22f9746df5c4ac9f99106073336949dbdeb1ed3dc746587c1adfd8 48dcbafe2cf0c204c44793e7892ecdb55c246cecce60f467c2991989f5be9d21 4d72a888116d8a945376697b5d7034d62a680f9e91011a57b797d9576b043d1c 4b73666a7275e93a3b7b52feb6e8424f19a4914d4f4ce621efec308d83ba912b 7f5e0089ad1c15175216c27afef512f05312e2bee6c5778c5625354b9b3c70a6 2923140eb3f350d73d06ab95c5232a86199f41695b6cfcad052a5dc27d0705ea b4c94332d917236dc24f52172c94e05c3ff9203fbd34c13ad9d9e076dba1e23e 47bcf2c96a1c8b3ffcf2419f7d5b47795d9d2923fa5905b5ce3b4f332a89c5da 71afbfc57de12ad8d8678d1f67c1898c18249faf4d9f427019445425a11fff30 9164be83b0594c5f312d653513ade66d5ddf29738cb823bee179ff864d01a740 f759f64e5ce1d82f7841118b263929951fa7896a87c7949d9ffe0c5c5fa07fc3 e3dd043a9e4ccfea80de6ab6f460c46f852753220acc9645419b13634bf351ba 35a1126d0164e6e64518a2ad5522a73fe38612a34cb6671c48bc18c919305bfb 35c57b0c8e221fa7519d5b1d6d168d8bc0375d174eab1ae6e9e44fbb7d9ca6a2 f04c813f119939714322cb87c693a2499c9c269bfda53c78e7f04c775ad407be 49f8679e345bef9d531654e2377e61bddfa4f8aebe5bb6dd862d298519bcec25 54c40969c9d1fd16e5a126cb22b8bd3976f68ecc8fc8dc9c0fbf51dd20c839d3 b921da7d0aeb93aedc761f31f3a3401f83be4d38169ab5368ff41481d638736a a71f624adb3c4a275e6b353f139e089f0e02a27bb003c8fa5eba4f1b989b3282 8dd8d049529a84b2727733df2790637e437581de00fd5aa03c516360e4644d55 aedaefa76f7f729dbdfe2fcbd2c05dd593c74f4eea31518b09d8bf2094354040 c260b7b4bc3a6238bcb61b03e6de12e3d63be9f7b5f34441d9a44304911eb92f 93107eda8946de92bfebacdbd2d950d92150d1f831d6829fad5d62c75e5860d9 cb3e3062cf867305a0ddc020bf4bac7a2d899a9481a391152151857cd53a97a6 6f7cd99c190f119185d33e49f6ab5ce20e61540b21387358f1233d2b39e69924 7ac33ac73e337a1a54e9d574ba856e0d3cd7267483581dba9491619f91b12996 d1c33f89d5dd6407bb98323467e9a6e3be4afc06c5006e19ab8ad06b0a01fdd2 ad742bff310f17f16193d7ab584c71c34372690521e0afbc4e6051025ec9a4db affc01120edf545631e4fcc2a65c488f25f640260982b7458f83125581d36f18 55ab4d823dd44112967e4fd41cdd60d6644617a638ffd5c9d89d2a95bc4b1b9b 8178777184d48f314554a19a444fdd509ebd345b19a411bedf5a0f59e9c4dfd5 6facbb6ee71145168e06a6049f1e2b0e3f91ff26a2cce2db8a256400876db370 17cb684540eea84942aa295cb079951554614e45f8d0910e15093aa1d4877c3f 543f0957ce9074aa051182c9ba6cf64058a403cc63cad5335f51aa32c76e3d8e a3677bbdb623c2c5febec43e5490decf54bcf7d9cf35a4e5b9ab5577649cb61d a65b3fb13156130c55b44a78849ff4d84136f8ee4f2a368de63f5799c822c3f0 b27770a29973541c4e137774fa958c0ea6227a57610bc6f056662ab2f7ab4aac 6893826c13d3147b6fa6075cd4784cb799cfd972d9566227db5b25bef8641534 6fb8cee4e06dc0fc49be6237a2720e3f9b7bc7f22a0a5ff2c276c2aaa00ab372 7e59f1642709f1216403c0f694914e0be6c5165b21c1a736bdf04da8cd699fdb 1b9e1553a56314b73ba74d83ccdb0723469ebe15cf10d7bb4d16f1c0878ffe68 f015da3e534334f53a2591d30199a0ccfc0f3a239559e4d0c7fa1fca44442141 3bc003d6be7ebf1e9affec62467e98ece66bb2216b4cb5ce45113e75ee023635 9a3ca384d603136fe5b5da21465e6d406931020d030ad932cbaa597e170298b2 12b15b8434612b12d13844a3e5a46597b4c26148a3d6f5c42fe2d949dcb64b40 44034791b7d780f75d119422d56fae911d5ec40189a4957b13b9b75d991ba190 fd3944c8ea1b756747a0b14492b04053dab4418ea5a96e1b6b12ccdfe739d392 d023e003e0463dfff9ad29e5a0547d5101e9d6ecb59f376860952fb748d15b68 1070ba9d08b9436b65b80b20d7c6b65e4476553338f9f17dafb46471d293de8a afe9d55d30c38a475b9e8d00d02690ce3562ba9583038b5fed7940cb4d7cd5d9 79e2532f65689847 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndResource %%IncludeResource: font Times-Roman /rm /rmX /Times-Roman inf %%IncludeResource: font Times-Italic /it /itX /Times-Italic inf %%IncludeResource: font Times-Bold /bf /bfX /Times-Bold inf %%IncludeResource: font Times-BoldItalic /bi /biX /Times-BoldItalic inf %%IncludeResource: font Symbol /sy /syX /Symbol inf %%IncludeResource: font PMW-Music /mf /mfX /PMW-Music inf %%EndSetup %%Page: 1 1 %%BeginPageSetup /pagesave save def %%EndPageSetup mf 10 ss(!)64 760 s bf 11.8 ss(4)77 768 s(4)77 760.15 s %1/1 mf 10 ss(2)96.9 758 s(\245\221\221\221\221)96.9 742 s(\))96.9 779 s(=) 96.9 754 s(2)96.9 754 s(=w=)96.9 754 s(2)96.9 750 s(=w=w=)96.9 754 s(2) 96.9 744 s(B)127.4 760 s(@)125.4 760 s (CCCCCC)64 760 s (C)118.9 760 s pagesave restore showpage %%Trailer %%Pages: 1 pmw-4.27/testdist/outfiles/Test07.ps0000644000222100022210000013760512247665016015513 0ustar ph10ph10%!PS-Adobe-3.0 %%Creator: Philip's Music Writer 4.27 (Built 25-Oct-2013) %%CreationDate: Tue Dec 3 17:23:06 2013 %%Pages: (atend) %%DocumentNeededResources: font Times-Roman Times-Italic %%+ font Times-Bold Times-BoldItalic Symbol %%+ font PMW-Music Helvetica %%DocumentSuppliedResources: font PMW-Music %%Requirements: numcopies(1) %%EndComments %%BeginPaperSize: a4 a4 %%EndPaperSize %%BeginProlog %%Header file for PMW PostScript output /LowerEncoding 256 array def LowerEncoding 0 [ /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /space/exclam/quotedbl/numbersign /dollar/percent/ampersand/quotesingle /parenleft/parenright/asterisk/plus /comma/hyphen/period/slash /zero/one/two/three /four/five/six/seven /eight/nine/colon/semicolon /less/equal/greater/question /at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O /P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft /backslash/bracketright/asciicircum/underscore /grave/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o /p/q/r/s/t/u/v/w/x/y/z/braceleft /bar/braceright/asciitilde/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /space/exclamdown/cent/sterling /currency/yen/brokenbar/section /dieresis/copyright/ordfeminine/guillemotleft /logicalnot/hyphen/registered/macron /degree/plusminus/twosuperior/threesuperior /acute/mu/paragraph/bullet /cedilla/onesuperior/ordmasculine/guillemotright /onequarter/onehalf/threequarters/questiondown /Agrave/Aacute/Acircumflex/Atilde /Adieresis/Aring/AE/Ccedilla /Egrave/Eacute/Ecircumflex/Edieresis /Igrave/Iacute/Icircumflex/Idieresis /Eth/Ntilde/Ograve/Oacute /Ocircumflex/Otilde/Odieresis/multiply /Oslash/Ugrave/Uacute/Ucircumflex /Udieresis/Yacute/Thorn/germandbls /agrave/aacute/acircumflex/atilde /adieresis/aring/ae/ccedilla /egrave/eacute/ecircumflex/edieresis /igrave/iacute/icircumflex/idieresis /eth/ntilde/ograve/oacute /ocircumflex/otilde/odieresis/divide /oslash/ugrave/uacute/ucircumflex /udieresis/yacute/thorn/ydieresis ]putinterval /UpperEncoding 256 array def UpperEncoding 0 [ /Amacron/amacron/Abreve/abreve /Aogonek/aogonek/Cacute/cacute /Ccircumflex/ccircumflex/Cdotaccent/cdotaccent /Ccaron/ccaron/Dcaron/dcaron /Dcroat/dcroat/Emacron/emacron /Ebreve/ebreve/Edotaccent/edotaccent /Eogonek/eogonek/Ecaron/ecaron /Gcircumflex/gcircumflex/Gbreve/gbreve /Gdotaccent/gdotaccent/Gcommaaccent/gcommaaccent /Hcircumflex/hcircumflex/Hbar/hbar /Itilde/itilde/Imacron/imacron /Ibreve/ibreve/Iogonek/iogonek /Idotaccent/dotlessi/IJ/ij /Jcircumflex/jcircumflex/Kcommaaccent/kcommaaccent /kgreenlandic/Lacute/lacute/Lcommaaccent /lcommaaccent/Lcaron/lcaron/Ldot /ldot/Lslash/lslash/Nacute /nacute/Ncommaaccent/ncommaaccent/Ncaron /ncaron/napostrophe/Eng/eng /Omacron/omacron/Obreve/obreve /Ohungarumlaut/ohungarumlaut/OE/oe /Racute/racute/Rcommaaccent/rcommaaccent /Rcaron/rcaron/Sacute/sacute /Scircumflex/scircumflex/Scedilla/scedilla /Scaron/scaron/Tcedilla/tcedilla /Tcaron/tcaron/Tbar/tbar /Utilde/utilde/Umacron/umacron /Ubreve/ubreve/Uring/uring /Uhungarumlaut/uhungarumlaut/Uogonek/uogonek /Wcircumflex/wcircumflex/Ycircumflex/ycircumflex /Ydieresis/Zacute/zacute/Zdotaccent /zdotaccent/Zcaron/zcaron/longs /Delta/Euro/Scommaaccent/Tcommaaccent /breve/caron/circumflex/commaaccent /dagger/daggerdbl/dotaccent/ellipsis /emdash/endash/fi/fl /florin/fraction/greaterequal/guilsinglleft /guilsinglright/hungarumlaut/lessequal/lozenge /minus/notequal/ogonek/partialdiff /periodcentered/perthousand/quotedblbase/quotedblleft /quotedblright/quoteleft/quoteright/quotesinglbase /radical/ring/scommaaccent/summation /tcommaaccent/tilde/trademark/infinity ]putinterval /F/fill load def /GS/gsave load def /GR/grestore load def /Mt/moveto load def/Lt/lineto load def /R/rotate load def /Rl/rlineto load def/Rm/rmoveto load def /Ct/curveto load def/Rc/rcurveto load def /S/stroke load def /Slw/setlinewidth load def /Slc/setlinecap load def /Slj/setlinejoin load def /Sg/setgray load def /Sd/setdash load def /T/translate load def /clx 0 def/cly 0 def/crx 0 def/cry 0 def /inf{dup dup findfont 3 1 roll FontDirectory exch known {pop}{(**** Font ")print 100 string cvs print (" is not loaded ****\r\n)print stop}ifelse dup dup/Encoding get StandardEncoding eq {maxlength dup dict/newfont0 exch def dict/newfont1 exch def dup {1 index/FID eq{pop pop}{newfont0 3 1 roll put}ifelse}forall {1 index/FID eq{pop pop}{newfont1 3 1 roll put}ifelse}forall newfont1/Encoding UpperEncoding put dup newfont1 definefont def newfont0/Encoding LowerEncoding put dup newfont0 definefont def } {3 1 roll def def}ifelse }bind def /ss{scalefont setfont}bind def /sm{makefont setfont}bind def /ssr{scalefont [-1 0 0 1 0 0] makefont setfont}bind def /smr{makefont [-1 0 0 1 0 0] makefont setfont}bind def /b{/y exch def/x exch def/w exch def/z exch def/v exch def {x y Mt w show y z gt{/y y v sub def y z lt{/y z def}if} {exit}ifelse}loop}bind def /br{gsave translate dup 0.11 gt {0.11}{dup 2.0 div 0.055 add}ifelse exch scale 2{0.0 0.0 Mt 100.0 20.0 -50.0 245.0 60.0 260.0 curveto -50.0 245.0 60.0 20.0 0.0 0.0 curveto fill 1.0 -1.0 scale}repeat grestore}bind def /br2{gsave translate dup 0.11 gt {0.11}{dup 2.0 div 0.055 add}ifelse exch scale 2{0.0 0.0 Mt 95.0 40.0 -43.0 218.0 37.0 256.0 curveto -59.0 219.0 66.0 34.0 0.0 0.0 curveto fill 1.0 -1.0 scale}repeat grestore}bind def /cc{/u exch def/y1 exch def/x1 exch def/y0 exch def/x0 exch def /w y1 y0 sub dup mul x1 x0 sub dup mul add sqrt 2 div def /v w 2 mul 3 div dup 10 gt {pop 10} if def x0 x1 add 2.0 div y0 y1 add 2.0 div translate y1 y0 sub x1 x0 sub atan rotate}bind def /cA{/cry exch def/crx exch def/cly exch def/clx exch def}bind def /cd{w neg 0.05 moveto v w sub clx add u cly add w v sub crx add u cry add w 0.05 curveto w -0.05 lineto w v sub crx add u cry add 1 sub v w sub clx add u cly add 1 sub w neg -0.05 curveto closepath fill}bind def /cv{gsave cc cd grestore}bind def /cwd{w neg 0.05 moveto v w sub clx add u cly add w v sub crx add cry u sub w 0.05 curveto w -0.05 lineto w v sub crx add cry u sub 1 sub v w sub clx add u cly add 1 sub w neg -0.05 curveto closepath fill}bind def /cvw{gsave cc cwd grestore}bind def /cem{dup 1 eq cly cry eq and{pop 0 u cly add 0.75 mul /t2 0 def} {/x1 v w sub clx add def /x2 w v sub crx add def /y1 u cly add def u mul cry add /y2 exch def /t 0.5 def /a 2 w mul x1 x2 sub 3 mul add def /b x2 2 x1 mul sub w sub 3 mul def /c x1 w add 3 mul def a t mul b add t mul c add t mul w sub /t1 a 3 mul t mul b 2 mul add t mul c add def /a y1 y2 sub 3 mul def /b 3 y2 mul 6 y1 mul sub def /c 3 y1 mul def a t mul b add t mul c add t mul /t2 a 3 mul t mul b 2 mul add t mul c add def }ifelse translate t2 0 ne {t2 t1 atan rotate} if 0 2 moveto 4 add neg 0 exch rlineto 0.4 Slw stroke}bind def /cve{gsave cc cd 0.8 1 cem grestore}bind def /cvwe{gsave cc cwd 0.8 -1 cem grestore}bind def /dl{gsave 0 Sd 0 dtransform exch floor exch idtransform pop Slw Mt Lt stroke grestore}bind def /k{/y1 exch def/y2 exch def/x exch def currentfont mf y2 y1 sub dup 16 gt {pop 16}if dup 1 sub /y exch def dup y2 exch sub /y2 exch def 16 div 10 mul ss x y2 Mt (\260) show {/y2 y2 y sub def y2 y1 le {exit}if x y2 Mt (B)show}loop x y1 Mt (\261)show setfont}bind def /l{Slw Mt Lt stroke}bind def /ll{Slw Mt 1 1 3 -1 roll{pop Lt}for stroke}bind def /m{/y0 exch def/x0 exch def/y1 exch def/x1 exch def/z exch def x0 y0 Mt x1 y1 Lt x1 y1 z add Lt x0 y0 z add Lt fill}bind def /rs{rmoveto show}bind def /s{moveto show}bind def /sh{show}bind def /wrs{rmoveto 0 32 4 -1 roll widthshow}bind def /ws{moveto 0 32 4 -1 roll widthshow}bind def /wsh{0 32 4 -1 roll widthshow}bind def /ST{/n exch def/g exch def/t exch def/w exch def/y exch def/x exch def 1 1 n {pop x y transform round exch round exch itransform Mt w 0 Rl y g add /y exch def}for t Slw S}bind def %%EndProlog %%BeginSetup %%BeginResource: font PMW-Music 11 dict begin /FontInfo 8 dict dup begin /version (58.01) readonly def /Notice (Copyright (c) November 2010 Philip Hazel) readonly def /FullName (PMW-Music) readonly def /FamilyName (PMW-Music) readonly def /Weight (Medium) readonly def /ItalicAngle 2 def /isFixedPitch false def /UnderlinePosition -98 def /UnderlineThickness 54 def end readonly def /FontName /PMW-Music def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /FontBBox {-150 -1400 50000 2300} readonly def /Encoding 256 array def 0 1 31 {Encoding exch /.notdef put} for Encoding 32 [/sp/trebleclef/bassclef/altoclef/star/sharp/doublesharp /flat/natural/tfermata/brest/sbrest/mrest/crest/qrest/bfermata /longrest/breve/semibreve/uminim/dminim/ucrotchet/dcrotchet/uquaver/dquaver /usquaver/dsquaver/usqtail/dsqtail/ledger/vdot/hdot/barsingle/bardouble /barthick/stave1/pstave1/uqtail/stave10/pstave10/dqtail/repeatdots /ustem/dstem/cnh/mnh/comma/mordent/dmordent/imordent/dimordent/turn /hbar/accent1/caesura/accent2/accent3/accent4/accent5/bardotted /caesura1/little8/C/cut/tilde/thumba/thumbb/ds1/ds2/downa/downb/upa /upb/iturn/seven/four/hcnh/hmnh/xnh/xustem/xdstem/fustem/fdstem/six /gdot/gring/d1/d4/u4/l1/r1/bs/ds/fs/us/.notdef/tick/uacc/dacc/grid /barshort/breath/vring/cross/trill/scaesura/lcaesura/sbra/sket/rbra /rket/rep/repdots/vtilde/trem/circ/cutcirc/slur1/slur2/up/down /iC/icut/unibreve/accent6/srbra/srket/angle1/angle2/angle3/angle4 /ped/uvtilde/dvtilde/nail/angle5/angle6/stave21/stave31/stave41/stave61 /hclef/oldbassclef/oldaltoclef/bratop/brabot/direct/five/major/dimsh /hdimsh/gcross/ledger2/srm1/srm2/u12/d12/halfsharp1/halfsharp2 /halfflat1/halfflat2/icomma/accent7/accent8]putinterval 196 1 246 {Encoding exch /.notdef put}for Encoding 247 [/stave210/stave310/stave410/stave610 /.notdef/.notdef/.notdef/.notdef/.notdef]putinterval currentdict end currentfile eexec d9d66f633b846a989b9974b0179fc6cc445bc2c03103c68570a7b354a4a280ae 6fbf7f9888e039ab60fcaf852eb4ce3afeb979d5ea70fde44a2ae5c8c0166c27 bf9665eea11c7d2329c1a211dd26bb372be5822f5ea70d99eb578c7befd44cdf 045a363056e5e1cc51525ea6fc061dcebb337208eff729802376a2801424f670 0e7e6397b28f15bc10b40012b0a3eaeb2693e8f7f627c4c9c7c6c5bff105c1e4 1b2b9e8f09253b61177e95ea219474796072f4c3189f7cfc7630142215dbc8a8 fd63d147033a0c9c786e17355fa8d996a3a7b5d213ac8011fd31a12930a87f86 374c1921aaa9ed181b43541cdf6e376bb4f2801faa9b01dcc0569ac59cfc4768 afdc549a30d41f5705e4231d3bc540161d390b4980ef9fe489ac4df99f83a8e2 00182cd152eb35a61aa915230f1090fd0bc8d4644f836c3da157c564b2a8fb7e 7d3203ca17088a579aab355eb45038ff45d5eb2357959a2c7c04421c41d3b822 d0471ae18607c80503c0b319348683bc6bc87e075a8eb4bb34729c4145b2b5a0 df1a88b2d7e0940aa3d4bafa502b87d9313153f661019a817ab20e1a772ad0d5 51ae7fdce4e21f426a6726c39c88124f8cbf10bb7394e90e9d28efdffef75078 f7ab1d7fe8387e1e65c4ff67d054ae6a0937e4d59889656ac37afde0362d76ab 05f9c223c52f04b6279e055419d3630d5057b50b4c4492891f7a36d03859e220 2d89747f1d486e9449a3448f81c240adc9e5476c6de456d76c4237055c0c30b6 80738211ddb90bcc73982467076cba36a60ec6a6584d9d9bf0df2b8462ceb1be 79c1276d2865b0f3518664a960036ca2d00c7829a967ac16b5c833f2e143efc0 f93826a8d09414c4ae7cb17623edc8f599b895ed0d3f4bea8bfd9b414cc39c0e 4080180fe8286b05065a10df4d691d38f73bc82d6142bdded07ffff7017f7803 cb03226f4d6501c203f8ee4e08ff5f8eda81278aaa6378b2d95ad6dfc7bc2e11 aa696cf2618a5737f03bce6c46c635caf89d23de81693159167b74cda0a15dcd 491b2ba489f28d410f1835d0fb7a9be1e3e5e7b76996e1d85cb9b62bb0619bdc 78b85ad2731fb580466cd92159c7f0e53f0896e154ec770cb55c55b09ec7b405 251e205992ac88e0bb583792edc9a21143a3ab447d4769e84016aea06413b52a 9ad5bbf68c05b2d1fbd434a1d61a903b6d2e81cba8f422998f51dab989a49b7c 2d0ee5cf9f5cfea4fd5f7686eb2e9d29bb4fd4b117bd407534ab7aea4068f8a1 f3f89f61f1b341c9c31755c876038a2707314ba7f51f25ae9b81cb7170f24d97 f792f849fb28eb31704aa5826296042664f4324d94dd8644d43f3d3ba8ef474f 37ab52149ca62286bc986a59f4dc01c95106a325ad9eb4e22badbf89c3c329d2 cbe4d3f3c64fd1b40dd441f2f8e45df63e6cf107d5a0efb2930fe55c04c6d01a 23b40b4706ef7ec9e6447190cebceb1293800d461512b42c06825d1ea511b7a7 031286c05dd8536baf9159f6d3ecb5c23c3677795a29aad9be47a0d7a127e3ad 051d57de2b0969ba89d906f64a4834fb7912a5c1f39a8cdac5367a06ec532870 fd72e532680e064d490d975feb7bbcdd84ea1b060476b844a6fc153691d6eeeb e72d71ef5ee59f6bfbfeb9e166e0304f50b91d8e401fac3257b56ae63d9ac6e3 a27fd33f1b43075c792597372d77a93912bc83e4aced15502c9f549e725ee735 8cf609891f05fede798f758940ee09d2947af5a290f2b4540b6a931d9d8e1176 5c0c4f14dd4f2ae0a056e42b7842e4a37a854fd70f2268833d8b0a5a5124ac92 d5abea2bc4a82267734407be662c088ce63084f851af93ed826c3d6d417c679b c3d5faa174c9248fb2706f46a9611cd21c2952e70ef36ddfa951b6df819c7c49 04b8a5a08ade3960e46860fa6ed29caa9d332be99f25a6c2e627402f09a5e140 3ac599195881326c44e6deda9d38ab32544e7b21749b5f933ceee3818853248a c038736c4486f46ff5853684760814f2dc64f282f7619c34885396a300e041d4 4931a4951469f5de55d0282ab491a456ed329ba83756285e2e637ce00e925b79 6a5e7de954b276e92b958ea4119200955d906a275b2640f2881224816febf38c ae5a330d8c4d31c68dac342210d5b0ed554e0d57e7b486022aaab11ec40753d8 ad557122b58a7ef70f0676e41f9c29feedac4d10808370b03202d11e5911e056 5502c18e30c2086795534f946639ef524469e7628abf78b2ad634d1c30315202 2bf1ae1c038093dda6e3dd5ca785626841806f19db4edefb4352255a40a6fd2d e5b292d963047035bf20765a1724da4ceb6596e5fa97d7b8fa9f3ecb4b88197e b88466dd7b189aaf8603193b647abb7bcd00005212a18872c0145d3378b097b2 8dfc782b3bff19d16c0fc15c0dcb4c59318183cacd60f4a6bb68be52381277e4 f01f081110b5549a1178bb1f260a83c6185569012e906e6f3e2efd3be510c8d5 359170a08dccef71cf290c76297a1a4b5cc979a25285a9bbbd06a29109fb026c 5ed7c864cfbd56af94b980775295d1cedf1e2d29bb4374919a1837a325daae46 3420aa39e8adc0a6d1508ec3109400eba448f2c83949001fc47f5cad8d4abf40 05805a03e5debcb69a94d9de331cd65d7f1f6de6141eff2045466417110ebe68 0b7164d627bc55b3362049f5e720c1fbc78138cb39eb79e66cb7f7f0bb778afc 9f71dadc6df0dce778b2a5500ad6d77ec30ec68484fb9acc886f9f17b85a057b a9cc45cf70a2ab800d6a4790ea19c7bb8042ee22148df7df8b2a3b6a024003af 4ff4306ecc2b060304f8c6f66b8c0a6e93ce65360a9cd69b61f86a8dfb73c68d c21db4b6c6dcf79e667772b21c7c466e32c5d527c69368ae0e89a4d4cdb4891f 3d4d979f9173d37b0b14a078b061c3a647d1446862ccbb83e0f0c52e55f62571 d261f9025b9b76b19a4387c9be977a75a9f3081fadd4a0497049db2b25ed2e1b 2f1d2330b45df4d9046c5d6b93cc37b9f5cc6efb382fe3c1cfb2149369e96049 943b8bb24ac4cc79d6f5700e7674c56b90093ea2040bd564d03b248e7e7501bc 984034757fb9a8ab0915a676cbd53f3f680aed60d401953b080bf8339b2e86bc 5afa1596cd942d225a2f4955693042f9283b5d609f297a6f60a4a1a1b3af3b75 b2ebf205ea219cf61f378872247fe2284ac99a5e29a31ea3daadec1080e9a252 504d9980bbea3845e145ca1fc919db615740a5d81e188cd9ec7de7467f77e23c af9879f9b562af2382f271794641e9c498cc7257071a9a037f4df9df87289d8c 973909959329980b26acd05b0ef35e9b60101bfa019acde608ced1432c68bd26 1b4db2b2f16deca61e710e8bab3c99bca591f6b1491ffceebba2c75a3e7802a8 e5170e660125475f75be93ec815304bfa33a26a1371c21ce78c58d2c700c91be 8aa8d468fce514189054972132e57e69422dae4588d5de9f3344cb59d505c421 1b8b27fc1c22a82a062d76ad9e6e3a4add530aaa501e20293be5c19916331c05 ac9b774007afeac38ad564a281afffb6fd41002837678f0741eeb025ec3d6c23 140420f6943d17a1d84e301863a849290aaad57b545f97493b1f3693fcceec9e fc8310bf367204a88570d92045d3dedce44692ac4858a4950f39903095bc974b 067283afe304317fa6c0eeeff03cc68723468d73d881caac31300836687ec574 c06e46cb22fcdc7c315b06cf8a13c01830498b2f379c96dbbc04b1f579f7fb12 d8c1bc2a676fbe690a6787fc77414718b5dd3f742689b39aa8cb6f6a34bcebc4 9b9aaaee962a77fa014d203415495311226d9c03c80b6dcbad39450fc44184fd e12a276d4e87cd954b0db7c58049084003014dd1920351a6a59b9ee428bf67fd 1b931e652870068d9feb0866d2e825e6404056ee589c7e406718004e0df8cfa2 04d21df791632359cc821e8652e6104eec4c1207c704167f70010e9afd6ec0aa 02fac84771d34e38bef362797bae62cc06fe81c069bf04d9edb277a90fa75f4b e79b3c0a8804adbebbcad3c464aa14a393f6ea75dcd5b420f9fb320398ecea1a c3acc08af37f7c14f14075f95c4961df04b45088dd75e338a2629647ec421849 f9948b9a17e33408239210566599f792a4c0934f88069a146f66b9c5bfa541a2 4b68fb5bd566f3ea28053dd386d2babdd8fe08e9763633933844fa5417f29ba7 60b235097764864d61ae1213aa8d3c4436911ff0b77aef7cb6d899ce0e8c2312 66d552dc691c783da623fb308ffd42f141d7e05b9db1b5fef691967f4e42f77c f0b3ccae74717e0b0ef02f152c89f9c1b1ef8cac955d3c024c04e0c8830b7884 ef8490ed1fd4b718977da0be6b8cef615ebd95e41c04bf119e9064a7723c8e67 2f84a9f02707f08c1423387092004c5499f20397855b03e12a48cfd90e9f4b1e 0e2ce907e86716c43cb9fe377cf4a38afcbf860074cca3c3580730147bbd280f aa4711be6c7ca74633545acc6e1ba2003e9eac90099a00406cae1b04b906d896 1bc0589e9046c3450ff07624f3e8bc0241e3e2356dee09b92ce70d48a52da586 8528da6c89e780f1b121839418ab684a92b4187d184a8616e73f8d961257083b 935358f1e6d6fb68c173e5e38969c8f2a68724ca12a86ece19f1a79ac9b9913f f14c9e37d08f89e84b1d6d1ce4fa8b8c32a139c950f6e83471b38702e695bc7b e8d87c77805d33e6536a5095ceb6e726ed0500b41c941d173233771e6aca5e2a 8a0974f6f726bb5dfd2f7adfdc64095d4421984d879a40e27f3da62a433f03f8 25465338bd92d7408ab4b30ed357474d07f49b4a9d5c5891c11ca620a0ed4c9b cb476ad89efaa734d9d11e55bdad6163c867c56543d2edf445f8336473f81d72 40e675ee76e15e68c7295fe4c4727049007e3fd6a3bf5be662846c669965c39e ee26797951ce86d4e2db76070ce1217c9c9dbada0a8e53e450bec992724150a9 34f7ca6b7c092e12726cf0ee125608a4e58f3c54f1b3466c47acc11a7fb86d15 56bc15dc4999f52616f1d45745a4719df7849fca9430b7e2fcf0c72dfca8e2c5 b205f65ff646084b03779616126dc0108574d98b20dcd787f99305e593a3ff30 39132a62240bb9c47f7aba86bd61fa30e7751cdfbfb630c159d016ee70c8a273 1a167494354bee5fa39bb0a233580913943e029ce518d75f30af7cb2d3ed2103 d8abbac569cab1a9daaf125e79d5b327e69489eec94bf0e537724799f6e42c6c ba604976a498266555197e5290968486e625bb933e6588019e496c647f574522 7f8817ef98e28a27158cc58a48d264f6b95cbf2e1d92399d423e31ac7a077588 466f725090359c69e0fc91072df81fadd46069bbcefcaa77cfb7fa3e96034026 35a8296bf9c1d0a7fbab44a815ab741f36aefa60b2825671b0ab55db353d186e 90ed303b9caa7d0f52f9b74273042c3297e64b7264f38c0b849b1099a2b1ead1 89c6b6ee20b3f32aee24ba734e809ae500f6d48a50e6eadbfe61e660028476d1 254dd0467c140e698527a278c910e03f4341f0dece94a430db441f8a4fa73954 edc0534e2bfbae3205749cf27945909d28da83e440a5558aaa8eca7a9a4c8243 f0a60c5211ec2197fac453f01520ead1b20621962324543c2729d977cda3eac4 0ff0c0fa1096315ba2eee3d71cdf2c5bb1d9a4d4ed2147dfbd673f79cc1dc21b a77ac1096bd93b15f31467919e432c204640a81694abe315fcee9a3e9ef27f86 57c1d4aae410a23e44d0ce9fab50f953c81e33f6ec39837b20cf8fd0cc76a029 8f12e76a4c78b40798819f7919a0d24a42cef3074b8de0cb5e418201d41f431c 68e92c1827a4c9cfc968063e76038a494bdd4fb5e957d57aab2fa31bf1830b1e d3bb12f34f3fb17bfd73a349d706138da54671b43450f22f40cd7cbf50476a5b 2c73dccace0b74fa671007e4e95bbd79173c5d37047e511d49a110f81ff7ca8b 5fe0ed67a5efa1a87670db0ea31a11ee76b4af2dda3a6367df3c2b4e7cd868c1 604d872998326c710c206b78d6b9ebeaa14ff4841d18163a1b0738b3c9c2a952 3ec59bca6623329181bbed1662963564b1a7b48e08b120c0b1e2e28e9f076196 0f7a72f4118dfe57672c96ab72589dcdb652ff0580bed4a9c42ca35fcb1e6595 bf4fb078cb8531d2b589b0258fb14aaa9752283e94da2822810fa00220ecc76b fa0bf30ab93c612d2f6fa13c02443dd179c5ccfc0312d70d4509c558631a1b83 00301b494062dd506e84bef5d3e734f6af4b506f9b6ef43641f25a699cb7f70b 646e8b334fa8305bbe6e2f9596579f7db9e28c6e3cbac6a244984cb1dbcf751c 748afeea4610cd4c1cbfac10c9852a32b6f912bbe967a68c9678a83b03d3a589 55e21dfaec2921bafbd868fc6c5dbf9e6ff8d93c8d5a30a5903eaa82757ef344 ef36e216f96cd68b0f90b54579e11a40cf33c17fae2ddba456e1b85458cbf05d 928fb1ccae12f39e215c4c68b7f22ddd26d0f271e77b0f2cc2d6a9a7f37db7a7 621c4ec4e126ef4f231a2bd811cba54ac5ea84386cfd985ba17506d0d7c552c2 aa2b5fefb49cf5b7b1b16bbaa38fb408cef612e7260d088712d60c57af8291e6 9401fe2d8c879d563e7d988bc522100bd0e905a7dd25189a771076e75998d37e df26f0dd5e302eec87c087bd54289ab3f3c013b3a64b8bd4a0acdbcb32858e0e b407557f336b89be676f94fa5e41f2db1938288948b2eee549393213cebdc36d 9e241b237e78fb7226633fc67a127e48e43ddadbfe12aaa41bf7cff47115524b b853d3bef16514c2723b057e3cb74f0e6f043a25e7ecff0bf7620140f11b57a8 9e343a4fe17cafd950735383d05ea02d410d26c0ed305a619a461c08155ace2a c0888f257a301272ca78d533bab54f54d001dc6c205ff6324ebc1942320e3f8c 7c00eddba2962f7d8b8b194ad83e47b13083caf11e64dc89119d7127b9be5538 6b703d42d1edfd7db2f3fa122f1acde1ea43eedb955593c14dabea0ea66c6328 f39d3de6562fe906da301dc1ab7a83bf88cab1eb9923c5f1085bcaf02b8fa410 5c531836956c509ab18cc19bc5c248a2eef7566792982a43ec89d63b31e001fb b2ccc234e03e4572ce089d02bdf9dc0190af8dbc2c7ccc22196e3bc17c3e37c8 9a742f07edcadccc8d7597a4ed227f4ee37e843718e15da7208f8d2f2ffa12ee c007346e4cad0bb1aacf73e0edfcdc725be54ff6103eb3080881b1ef78267290 abc87920cf63f402a019e5c6e328f78707ac983bf0bc32cf4673d6bb966c9cd7 3b3c64b76a925b15225054a970acf61f123c44e51dd944426493fdf54646ecec 87e538cd1a130a43e1fd6274ac12ce5663534f65210c1e438118e34112c119aa 0e311185ca3977c6da19e0e73f9ef47ede1bc60f1891dc3302d01d7138da0867 1bae87b54e594f06e26c0e01b11693e994722daf37dfae35d1c63f7946f31167 32415ceaa09a865c28ccd57f9d41e19123e2cdab7e3e2bd29dee275f30075bce 458ddb09c2d5fea6e0e2a744009f6abddf5c34fb3caf51ece4665704bbb215e4 7107a1745424e6ab9071d2008cbe279c0b5ccb8ab61afa38b3d6195f652eb5e1 7a32a358e8ba8e02888b97e3ba3b695ea0062bb1cdb5ac5fee551e9eda4f070c 3dcf504cad12914caa34b39a494f539f1bf2ef77223c233a57f11cccea4f79ef f782c9c42efab4dbb360ca7518709ff4691fd9b9451e24fee60b2053167b96d4 f47fdce601a10d0dba330116a5dd0adfa44f7ec578c5ccdefda203bc220e5ec8 128e67fe500412d234fa0caeaf0a927d5cfd89d46bf3362e2ea172e09fd4d126 51ae59dfb15484b29ef2d5abd39e387202cc9348d00ee7a6dafa810bb68ad460 0c2e61a128d692502c2080311a7c99e30671d200ca812755a79ddc1e281a0c11 359ffc8341a508486c7677cce56b24bd2cac1b9457d2aa9b701cf9d7a74f8d6b a285e3b342e5232977abce1e51a95b0b148ba89fa492fc93e67f91042242ef87 f0a83ca51a752255a9eee173e2b2e69b4d88394a8f5584f9265597cc42fec4c1 cc727c7ade1b3407db4e0ebd6cf4848504df6cdecb476ce74aa817dca0e51c0d a3f14a1bcce37adff3bd7d08b44876e1b08789b630a3d070b53f3a8fe7ef8bef 539522d521b1319455c3999ab3f6fdcf92f28a36152a6574f62ba51ef90e1f3b c89ec530004dfcdd7a7b1c8038957ae361d921dc976b899b46f67eb824732282 e0207eb3f113c267b2154ed423f9084b56cfa1dd26508c3295d844e1549b63f2 26bb27f7ecb4ca36fe55ad817d952767b49d78f4576448eff1679851a415f918 0cf5ae1157b06c47e44c70774d6ffba7d8f86ba0160d55e21db737e10b2a91c7 05286b7c7dd9cc027ee23f3b3b46c3271a274868311d56931361dcd37542d1ac 67dc26954a733f9662dc9308f9639b944894f6f19848fbc3f44cb8bf3d5f6b39 fc78127ddaa6243cac012fe0cd52efbbed8b4bf857b3a1bb2b7e7e44bc8b0faa d715b0c6fbf4a4a9071cf299e0cacb88593fd61e5a0dc9fe7ed040e17dae132d eb17ff933db6927e892b3919cc14ca1908f557607b1dfbf48dc3d6aaa862d8c6 5dc9b2f3cc127e70d10c3a04ee17d357c93527eeffcf18792383b73459d50bcf ced1527e0520a397f7ec692a12f0693150885fcee5087b5d94b2ed81ebe967e1 fc32853cb465bb8b66453574c4ba998c91641e35a2fe6e521883fe344b27cb10 7031369baca8bdc5f4b9a2f44180c0ac498f171a416c8fdae8ba089819eb0256 17094a93681a3b3d100ec7f45839e9d42a09d0d75b8a05f6da5458eb6151be55 3fa2413df3364cb39a368d22643cc13b695eda2ba739e77125516dcb203d4764 e21c4075a931da7518471e4251a9782ee15bd2a5e94398e09a07fd265edf618f 71d439f8129c6b7402a05ff14547308fd9dc5e7c96f620a2682b50a7859eec5b da71f4c6e12059e8dd3916bfdfd0e151fa4b5aaa90435d1d42ab092c9c421657 d5bb283717759416257016e9314f54455ec9448f77df7e53c24fe8d96ec1c68c a7fd651af1e71686d2347af1ec6f9b790c185fd352ac03047f6c920bbb872fcb fbdb7566c75ab06d93278df61d8070a9951766b46720da236d8d4e7b4893aba8 ed4ac9406fe383631457095ca9993db527e7a37c9419b7abedfb7d41a460b9c4 9fb39efcf3631da0dbd315788ad98295fbb62e11655c0cc1ab2fb0e54e01ba9f b16cc2c1f82e48b3bfef4b4d339d7f0df8e001dc2a5911b4b92fb7eb428873eb 8a5acce25fd9f47faff3e0733d38b86a244ea1952ce528b8abf9493b1b307bc4 7a4fa41bbce361d2a6bf9a6820a231a58e89a9d214fadd6aadcbedaa150a4f27 9efe67012114205991c643e6ea1411203926bc0804572e0b727913402a466f8b f111844675dd5109212e5447f682e2959232ad21a218ff49479714aadb0618d3 fb488ebb29b2939059d1f794c277515eb400e5c626a811ce2a7a247e9e904b64 5609b594431433470ddcec6974f0f3d77651793ad7ce23ee72111474cfe2ca02 51c4d90c0b02ac9d7670c3795df594074759f38fc2ebe6a2a797d54628a50676 6f1e2263844d597fd845687a44f72a539a8661a9a9064c78071c040d1f0a45fd e2cccd2268919227e8e2c05befee614a9535a6adb324624425290d7032f6dfce 19342467ccf344114425ca8f9ed74899dcbd8d373879ca8f83d953021259f998 338d2e7a5cb54321f8057d70d5a02fa8aef3aea24854a9a21e45428a97397cc3 58aec6ec45fa9199579406c2e842549e1639d80b2a6b2502f28c8f4f94fba297 938a3c986ed1dba4c3b384bc43d7bb6becb71195475398313bf8774355562800 bf86d8f75101683880ae686ac36b757ce0e4adee09ef68f8fb5e891e956ee62e 346adb50098c5b7ded6374bff775ef4fd58a5910d980a635576e20e7b11797a1 7c44b0d347ec9b56cfca607866ea109d54fc992b1376eebd4d201a876e8564b9 f8ebd34de83bfc90c10d8ea85b556cb5fb74c447bde7329334b29c788cae8f02 de02daabf74f0bcdcf64064c91f366db4bb68794c9c41765bfaadfb514f487dd 096b2ad1f1404a836a809a20dc813a277c749ad0c4c45e6374630a4999ec512b fe9f990a74a05ff7e6c2b1ade33fd14670c6ef97ad99ccbb996b12d0172a88e1 b923f85a17213d52ae7e3886c50e125d38b8f97692cb2a5b3e03f21188f763e9 7eec87182ae517e42d9590f73c2594a7e5f61b9a5bf15a7eed29a754f729d532 dfa74519696cf75ae98a471ec88b3ed550730f50f519ac629691a47e19343c05 1b6d466acb89f50db25a9beae2b0eb79a96d2c0189febc516e68f70aa6bc09f9 129b0fd837e87d16fbe4a7a4456663cc7346218be042b965dedc22b7cb5f811e a445a5651759ac076b49d476e5f89c218bda4ec9582c95149b5f2d8a49c80ead 3ce0df6ea52db964cdc0ef2164bd21f818ef287cb3337b4d8a6aa34a336be17c d808a00949f82017f831b771473ef12a2661ab1fc21c3e344899d6a73ef7ff83 694abb48072daa7841dbb31498a9cc29b07bb0dcf709cae5014c2cc9073a1e5b a29d67f72a030496798f04171ed6a45105fbb58ca261d3ab9dcb57fc28b50cae 57c4203ae09a58bbca20a4613bcdff264adbbac8ad7ea0c2fabe4f07aa453618 e1591258a2a18e0fd974135fb890beba5bb115a8dd6491ad3299e27506ecdb8a e9c074ad5f1a553bb14f1aa35b9cabcd645ee452166f331319a5a953a922cc14 5f683e88ccdfc3d64d61b317df7e6022e9d50b28aba224d6a03a34a9d8242f39 e34cd7b5e46f37291f5d75bdc1bb586ac86778c1a496f321808cc0da6fb3a6e1 d4cd8c8e37c1e2c1d98384ea5a1654caf3b360d4fc77c3c3faf94466de5208b3 2935fde906ebf2d98ccba2cdabcd8197947f5e801ca0981a82b091a51c8ae0ba de5b69f3c9c0026fdd590e1e2cd526e7f7096570a53bbf917ee0a2a519ea4f15 f24cb5a8dd227ef2d8459ed65c31f5c19c9270028ad027c131e73c3c6f70b9d2 f2288bf3b41affb66db183903f464999bc5cf41602a50db4cd4f06ef1105214c cb7eadc45b06dc96636884a3d6d7a8374c57daaaecd35f52aa4db430e1c63995 bbe2b7bca8360dd4ad7dfbb0aeac6ba567251655c0e587d9dbf612b92bfc10ce db038669f091a3fb55034808c478ea0e0896037a1c5b442b8eb5923bda950ff5 72d305439fa14d73563da1105b1cb0dd7feb729e7d02368071dc03f11d647e25 46e5e870a784152f3317900f59f6f8f0d5a585ea6c1a0d5315625c0916906302 df05d68b2514a493918d94d99cb53f6deba91893597a866fa8383288acc52dcd c28693cb63d003a4a3248005b70e35cc45292fbdec55ae303f37ed3cecb8d0bd cccd224b63a6328ebb6f1192e962b4d9c160f30b753a3f974767aa5f8d5e9f11 5f6a834747814afd7f7e7d4e90d46ede92f8a810311bc28bcc0027e674efdcbe 3e40e2378ba1b9d7354e8be4e313322c2aba1e03d2f810cc09b78197e8214d46 6f5531094a7b8cecee5aeb2c693d4b382edf7d9d715d4cd12ce39d510885240b dbf096994f947ebf264ca3848ae72b3a2acf8cf2904a4b5b2fd5a3f590f4a475 25b967f5bcb647a537b6a4bb99be6ba00c9e96a51b2345fc48a8ac1f7cf4c9eb 329915effc052bc6fae5e25b08151e54129c8f5ff8896d0d4ed79b43ed124865 f79622a6cfd362e64e8e88e417a7b8204f133cfcaa7ac70df4b072bd808c6971 a0f2cc29008d5afa6648411b5deba3aac749fba957b0be5dc72696d1ccd3bd95 b2ada03d95bd1c2e7a10beffe96b9154cf9b1ea22c5ad3ed8d79af6df9c5fc46 7aae44e7f8558889afee261b8bb6c43785152943785407b575aa9de5f6c921f9 fa660b14626f5e1034cca473a6a7c16e597492013f9531c67a35fee2e56a2ab1 e4b9e834fab1fe22a52d785dc1995badcc84f2d32e0f9d029eb0ff5eb2e69843 fa738bf19d33087e9c0618371f5098b1e2e309d45485b4d6b37e557baab7152e feebd0b2c10c1a45494853962e0345b6b72967c886c311e47a1e5896260757c3 29d82d254d57e38e0e89ca1d9c746ad36e246978f307be1329914e7862a0f8cc b14f06cff9c03fd6cab3bb4cdedab7f0e1711b3d31b022af53cd82585ae82145 dcd76f76fa2bb84da98a2a3e46fca1d9e7ea0a91866201e08712220cf0d6d5f5 91a3283ee986ec9e7f25efa757a93322d0eaf07e9cdfa316ca5f96169ce85895 407ad045ce86d9f35b49cfd6bf116d22d70aad5777dd46aca0ac938cdb0859a0 96a63b955eb4c8d8666179b1e6d95fb193889028666c17ff613ad70c8e9c84a8 c66cafa7496fefc65a69b94b9ba5e1d5b944b8ffaa613fd3d04cc26796c0a5ba 2d6d6bb91772ca88f254a48ed8acfda7532d98f9d5b7d88cc0b0e57e5d02d327 4be18983b93de871c80dd536b7cbc274729c142a869ca7d6247c769ce44fb92a 90b197da1818303000994e0a6cce0fd6a524b0d5d33802ff7bc6099ca05a77e1 5f5b1a7a379baf044715bb6cc9943e5be7feda7733687e9e7f960594d1cd925d dcc26c02a8f37102c39272fa0dc6fc3f5fb20f81d61131e7dc39e862aac67cb4 bb9db02cea461eb5bc66b3d0b6bd78afd0f9536f5f907d53139b574fd40818fa f3c85343b5b8e77b8d164bafa35075acf022679a99145c46339f12a31bccc31b c17731415fd5a998d2a8e33c4fe39c1fe4d711dbe2b0ffc47a171a1ae9016c20 98f041ce3a0240bed3fd2e2e174a19bf5c396965897b3b64019e4e22130be4fb 6b8f3589719040c2b123716934d430aaec0bf30c04ce6e1980552947d3233966 1f72ec517f6318586521e5d4c45a58bc53530fa66efd6f7ef3d94fcc35afc26a b4dab34757b5933c85717090211219dafdbcbea0d8dbfd99fc05288feaaf19bb e8c905b49e7aebdc42529c6ec1f7c3ed523b399f2a71e61448b8829873afb8d9 d3cdeeafcf60fdeb9c878f6386fb58f180bacf6e99374e89e2704d3e69262b16 07547873c342d897940b8496d1f38e9088ce93dbda7e866ccc8c068fc7210223 1b27bad26cb4eb65dead908f9542a0b68b7a5d0b4ed989a8fc74f5e4d5a1fe2d e408abdae204cc186e0a2b67749500b3f8c51260ea094affc634a4953447c3cf fd2fbc2698bb86143bce8b232722518ec936358c7fbf69effbebdf6c3610ecc5 957fc30ab08d2e2f12ac47ddc6322a710b76f900c3dda591f048886f80165704 1f712a84065107083c0f79ea7fe4f92faae9c9c04cea4384478390f1affd066d 18ec102b5154b78ee8d468a4162c0b3a10bd19e1312e9d8564d5aa5da77f7e56 1b6852c00138225f9101fb1407fdb9ea605c8e0862d81aac19b869af18630b27 38d8bb635ba12ec2461ad673a27aee5bdb592d8bf08da6c14815ea3e59466eae b887ce5b0ec2f54dbdbd30424f317f45c6ae5d1cd6f44316c122ffd7c178fdbb 8a068cabba00c126bcad2f17a454d0810a0533629ff6b1069d5cccd5f5e52d1b 07869a59eaef3456267bf050eeda457c1029fee50b395fbea1dc6d7d7cd18d76 76ed7a78cdda4f105166f61ac728ad25beb547d071e0e515840dc9559551bfdb 454b080cc49e268fdf556161a92fe7d93219b395625eadcfbcfa8a9ed61bd7e6 f42d58a138020f2a69951d2f67641c39e98bb2a4441b0ebccaeab4e731e734f4 136e6b193011bb221ee9d099ba6a23a5f1340a1234a50a4cbbd172cce6cd2b60 15e10de447c4df7db80ab79c4840dff6c7eb06cd931aa58c001c02229220086e c1f2c3544af0a581afb28103ff5ccb7488ba861edccab702611dcf1628f77669 3bb25210bbcafa72dd0a5955a85419c425b9b176ee110f88e341751a56a2dc61 209df3ba68eed540b6df151f60ca61a8a4f93456aa864e179ddab8844290677b 669ccf3a67a2025b5cf5b4d7d2dc7e1e665bb55e72b8d02ef4735d6c68764ed6 93322f99d69636df06023648c22f86953046bcc662d6079ae2c7314bfff5f5d9 bbfe514c8beb08eb4a469c2b8e496671de9227b64ec3a26db6202935f7b92a6d a03d7c9d53126432b6337cccd64c650e0d4d6e3032ada066c9b2b891f5b74900 a9c3b0481aacf53671ed0d841106f05792d76db3626655f8677323d0b5d817d0 e7f0a221493ca7ffa8ad261e9663ea965a3bc82ef4d9031103337a868f80ab46 4f4a0df2f735b25807c9f3268a7e0711ffe63eddad14787806e67ec144ef1d17 083343ebd10a7e9aff9e6c1e349c7926ed0f3d878fa8b13f2904cf4efad6ca39 1bcf1f1f4083e5cee93da0746c5cf983004657c5c8fe4eece7dc424f72866db6 86212292fd27831b68e36bb169ed0df0d23eed7c87fa905de280da096e57e140 69e00680deaf32aa3986d48eea8811c87d7082371d3d48049611253d1d0c5e17 c80a7df4469c54882ab077cc8f0defd8b88232205c3406db6bbb157580bff648 e16b07a670f7fde9388e018153644252dca0a7fb24b50991c2e699c90d827fd9 b5ddf4cb8f2048f8d4476b649727d7654fd450ea19a29e4bd087a073404d6406 58c8f54ff20565298cdbe2a6cce4a24e2861a92b14212a05e854d04aa4bfe13e a5fb10d7736a8f03e6e306d669bc6f6cbb29b34958a8f4208e4b394959fe8668 e540699edffc8aad936f803b2abcf963889c85bc44acf6c9cc2ce2a12716f7a6 37c07d2d6879ce05971c3842d69bd02a41e3da3aa881eff4a38f9997494e922d 550f63938ceae8afd845a348c43f45f3f7173ddff3f885611d402f2477ee706d 8e530fcd2b6ea54093e445adca8c022ee291329e37228c5757270e9f21a5b2bb deb0a0f2d25224b0fb67a610cfce5a7fe61dc6ff049f489f1e15699a229d1555 fa976700d9fa69fb212aaa6d8a7d5604ded821ae4c63f87af0b4272ae421a29d 8801b6025ae855c0b1b978ad52c1a8869d81a2a50f65806fe9627bddede8891d d8a37af1dfa7cd7293c3938d32e410bf39437bdf149cd0ceee8809e3e8bd9584 aa3588ba05f51ed661bd48a1e11feafece70752b7b9ccd8b590afd25b0d91843 189c395e9c3409117be9784048bac366cda47f117b9260318bc8a894045e5bee 3a1e39af73458bd24b269b5ff40b96abaa885d1e895447297375eb8493d7282b ff7bd2b53ef951d02283d782e1bbb3068d2bfdaf811b6d4dcaf4b2a962783e12 f9f6b211bd4356914f3e3e7a3dfee75d69123468815e6fc7bf6e037fde16f129 ff01ab1eaf878bb0a12620a9aaa6907c4c88c18390d11553507d8d58a9ad0e51 a34ab4ba2e2128ad04deb5cf7d232d245ca20323a5b797b566ff73fc6dfc8bfd 262ca73f501e8d62b807cf9239e32740a2c2c7e6e3b3049508cfa7bfe22e2795 c469e5aa2c2b944c62b734b983024ee9541b60b9e9dbd27e72625f6cfe218ff9 417a053298ee1042d72f2749fd4b21d6afbeca64cd21722628dc52e8d9a675aa b4378ca91ee21bd5e41d78f78208db17434eb55be3eb95f8e69957c0ff3ad892 bbed02be41e9b29d6dd30b94c0a8a0c3a23f5e1906a2930b434e4520148f17af eb3a6f22d2bf6ba1f23c3eb89b66e14f20e409671c4b65f80490c8a3c60bae6e 9a2c69f153ae23b4117078eea05b7c40f0b484c8d11ee2b563533b23166b760a d3e22fca2b5b5667b800ec7037de99a585a7081d565eb61f8e7641f58ac1901e 1030da028db2ff84da46b251061212dd2d90194e5a8f64edd40a2fc547d5ae86 86bc73ff0a665456746074519505db6b1a96042b1674d89e1b00329deab4d97b 86a8d3edfc29fc47971b2e19dc715fe9a3369addb725a8f4b14094a4bd81b77b 5bb38ccbc7a8e1647767d3d660dcd19bcd09c1e5f9237ec7d37ee1930df5f0f1 2d0881eebd0cca2fcd994fd445ad2e620a7386c3a10d7dbda53d5893c4fa70a2 ddf4d0d5af1be8049bd3a57a580e5fb587eb5e3d0aaf73d40ff2134d17ef736a 36335066a493bdad7b4d5540a00cee82bf1b1832eb9c06325f7d2591bb1f6a2c b4ddfb4df9814dad3c9a59b05d57d8be208810831fb650efd8bc629c4c006e9b adbf2a6d0bc51cd88c47b6518e9183d9f25c4de7c6842f37cfd0c44518bcca18 6cd7d8709bfe03d9cac1ed9e19e0119ec41b6028fc2870e465ef7c24118ed54e d81de4113e04a7c4eca75d5c9f460324a84af18c3950b5d253fc11325a15af12 0e36f90bee4787a175c6ab7c1a39be8ffe1324a827028101243f60844594737b 7f597005909fcba78840e6297b099163a356c77032055920da96bf7374a5cd38 f71a74a4cc74c33d1be512f1a1af7aafd876e1d5eb115e945adc76d991b13bfe 165ef522d5e6b85f8da52053f20ba774670ba913e7fa1cce03293a4cbb5a8969 6572e555aa0a83fca4557954d438000d29bfefb09d87962751c77f15793a83b7 cdc6e6f0c4d7fad961d4ef287e00d44a1f61ba6fc0786c13ed8a2550a1914ae5 f1eb15a53984f208e755a9ee908a48b8038d0c219aeadbe303c2cf28c6d7db63 fd1777db279471c852890d0a018d7660617a94911be483486b2c3be1fae8070d d929d68c2356d58d84986662ce0e783e27852b4afdbf8c97f1e47672a96aa0ac f8ee51676e0be143cb4dae6cd40628d0b7012f1ffd638b14f7311f33103fb53b d91e689cf8b6d4930fb4da13bd6343f97e51613b9e6ca03e2fab85f12b1cd835 1078b58f1b82be751a2dcaa1907b2b7bec05ddc488d7388e9d1b29543de2ad43 6b75f758b144fd7b93a4e3876dc06010507f3e7037f3f8f078f24fb5972f7e73 5922b8942dc840cfa4e3d713026fe17362a47fc060c7282a9f7684d89921e1ac 2963a1cdfd4682857b4285e68483576bf2a05491d74a390dd017a95d0ebbe786 8250bb41eb0aa7226bde3a4dfb5b27d7f97421029f2bcfd26fc1a0f3c256b9ae 837aa46745d5de4c5c275ae1f625630648840e9fd199a3c4d00262c696bcfbe0 8c7870e1d46c02a919e381d27455dd4ed5049d33eac72c56810409a6cf74f242 d35ca15c50cd05b546e643835cccf8b8b7ab291bb362bfc92bae2d06c815d612 309ecb8d79321f1a633a934d61a4a0c873637fc83695b61135748ec860785f60 6cd96e593035ccb3103ef1048ea34dec7e52a185915852151dbb086768085f47 9e89ab18c2cfc112b6673118f12d7665c5adaa6853eb08b0bf6061e0b8a0adcb 86e2f9be796a4586cbba8946c9a797aa830858ac6358c4dc5ec98d6e3653ad65 8428f17dcd36cceabdd86e4a2ae4792444b7daeb08958ec834d699e4f9e960e8 5a883744174e66c192f05ab50e2d7978325436b90e06d67fe84a1010b3ad5e36 3a477bcdd07f49becc828dc7f48fd214fb139b57a237ee1e3668255af55a4135 ba74aa557ba6287fa08a4805235fbf4373ec0ed49aa31fa3f99f990f2ce9c12b b54bf5b52f80dc67e494b0958f473f9d0bff8831a33d17dc910b6dd45bf2ff37 b1eb44f40972d710a0d19f6046afe4484ad2a48412ae185ca10c3ac5cb192edf b172b5626e7023012a6ea10d9c8d749b0d91c563c2b9c025fd7cb4ccacbc5478 5bde2cb58d942e2c9fc3e4b22703c1db47f629ab36088cde1105e7a8c624ff7e 01d26899399ff91f4f39b1150dfee69f465f44a9f289c78fd050d7bf66200a93 326acbef82918a3bc1829452b0c3a5bf15b974cc4c85b9aa0a8e9e437819a8af 5ef3df8c5f451e7dfb18bc2cae853988b550dd963c5f150324f5348bee3a5709 c15026d9b4a90e50c8b0b8f13a46e63744e95b50f495ae6c30a612643316cb42 0a737e142d8fd6322a635641bd24afcf438b121b178d004bb29fcde186f9f873 b8172f44a6f75622d9d64b07b998d220bcde05d9f2839328105bd016cb80730f a67fcd5598437d21f60b7b184d1ca74e661a3b3d100ec7f45839e96e0fb74c39 faa05e9905e9074a8825683cd47f9efa112c3891cf8648e418f237c923208fb2 bc20674bef2cf1de80fc61c3e30669c9b01976598849fe3d9155920ae3c009b7 a7f9de4589b512b6219900c73731245412952085c619563c723d61c0270b2a94 9340b5d26323bb7857e6eff428f18a49327242a5e7e4ae7ffa30e9385a02a454 9edbe201c62fb7a47d1f217947eec329a8cf4ec750190bb8989aa848fc3762ee db9ec2bd3cb7221bb4fa7654046fe8522e4768b5b01197dc84d4f868bcbdf293 282da8a907a9ae670b6366bfbd07ef6534127eff7a7f99ef5441f750a7f0fdd7 16ac827cbcee87ba2c9c3a4e4fd9e0ab389af7a9d524dce404a46d147607dc7c cff13180b64a7ff61d4fa6b82ed0736a251f5d912d96569c2e454f52190180d8 614a372969c52351ac3dd829bf24c08f6bb5bdce3dc7cface8a3ac69b2c54a49 f61fcfaed3b3ad2e266a2099e19a9b6275f8e27769f0b4c13aaf831a0e9dfbb6 18c83d8a278edea2cd628326ad659f1e1cc456d98916f0c6d1b4856bb1919f4d ac7adddb448825967ae9a1c158b1f601a7efbec3e76bfd7869be9060622770ea 785279366700c330843b3bed717b82003c5569330da07c8b09ecbab3b013f084 6a314a8a7bf3f03727e91e3c60bbfb7cb9ddaa30f5de85da4d2dd4911c9c61da 3767f9c533c58748d89f96fc94a25c89d0ef1120d3263568a911f0978a312a7a faae86dc56ebe5af19b0b25c2df0947caf214ff95816b017481ef9e3ba594bbc 80bf7e3e8aeb52e397022b93ab95957753a094b1e52bff8e3d7f0d04a17cd286 e274add583659138334576917cd517b0394969603e833ea4de0c5b38c84c0488 1cd8c904f7b3da660cc12d37945325bf9f06bbace83f1b64fd8f997563ce8efb 82747a72c81691f88c898f11ea2c054aaa6bbf514cfca02b56cc99e5dff1a481 94fe5039ad6acdbef5843c8e4fbd04bed9d9b6af1420fae38cfd1772b2e3e1cc f7e4450a01668388fc4ddab08cc24af6bfabddcb99712100c58ccf5e9c9a17c5 e40d316fadc3bfa62294a091ed266bda81880f3bfeb6f6cb9f8c9ab03c73ed64 52ad9eeb2d3ac8635cd9d2459b2c2d34f952bd75def9f84a60be2254409d33dd 04ca06b44cbb8c4586ff98376b6aeef2fc171b07786381dd978e4c366345441b 280c8d25c53ed779369e14f6d7066db2c7dbe003500314505e1c3671fc3b0ddd dee36439ac826862509d543302c387d54cebdcb6a5502376213596596380ba14 b7880a934ab08a6abf6dd4093dec4128c8082f3d92b5d2d92cc286268f1be343 312773834d2d1f8433d6ad2a938859502d867dc25f0cd96e98e4bf4de131dfb7 a510583fba93ae8718a1f89d60e5b5ec026d91d28ab3e9ab81d44f8b010f1138 83325a09382ac02e6f7fb07fa95f90c75d2d926c8ba15701bb16f608b91478e3 bbe8762c90ec7d507f9ea95d4c3f46465a2331b859db5d6cd9b590e1130c4681 297cf28679c41a91175d4a5f4c580a1de13371a453bd5e0d38a0b7c0807f0db0 2deab94fb7aa3c7f3138042ae532fabdffdf953b8feb36631b29f5ab0bc0438c 5f9ab0ed3eb87ff056c5552083b2cc268689be24162942776f59b7f9e4f5b41f 81e5c947ae042d24df262097bb9218842738845fe30e36afd81ccf6e2c90d34c 5dfbda79c932d4baca44490de00b02ca929433e1f25000ccf537d144ecbf943a c21727920d9beb432402fb17ebce944da34f6fcd02332c53ddc0c3cc2536cda6 7f80282b423be2e01a464d062226b47b9cb5b4e45bd5079ccef3a064af2aaba0 905c5f1a3a9a333bbcae9123c29153710fc66fcb65e318ac005e551729143d67 da0dd0c698dd7e387844f603cc17451bbb725e2b531a85cac01ec08bf1b9ddef a0f9483de34ce375c835aa613b2f289d124087071ed8b4a37a0aff1981a10b02 fcf7281c0d03a84feca7443b91ae6653659df5e26fe1e0d5927daf090bf54fd4 e730348d1e83f6cdd345b5331906d30858b8944043dd5ac14859db6e68360a18 c7fd1b027d91a14312fc35a30dd12d6983fa9d9526e0559bfc376385715da2af 4908b2b2ee3388cf1fd9b7bbd5da15434739e2f12f44481527dec6241d7dc090 79ca05f15d5aaa3507ebb89e0bf0bdd55f45fad40756621200e4b883facc6c00 c0f6e41068e0a32547afe4dbc0be8e5e57836d47d81f746a931411c615a145f3 afe966876ea51677709da171d16671ecaeb08c8e5799102210c7c0e4b2083148 0ba6de1793b208efd7e5b958b04840c57b7042fd3cf0a7912e238315325f665d 458e6158aa22701949facece70812472f30bf5e8fc544ba99a643876cc41ed10 48daeeb69ab01af53d9018687bee2bb47b6d4acdf1ee04a46b1a488708eb2cf5 7733261d6453d095af9549b122c6e183b76cba9def22cbce32c49dc615c0988a 428dae015300fac0988ca0c6c710de1cec4bd2686562dd31c73d70bbf2697942 7bb004e3b5e0039fe7f069073a17144ef3301bdc8b2f64bf80e69378dfe988f4 bf3fcdb94b79673c06452035bc0b82acb500b8611a958a7882bd4542d895fbf4 a0e0ed758057bd468c31e7a746a72ff9360340bab2e50ee83f152cfe04d8fceb cf05f7198e08ea12f9b2b15f79a2c7c20025664b25dc6cd3866641dbb5b638f6 cf50f20f6ddd40cfe3ec12be71746d38f82e71cb2fecbf616bf275e9911fc886 c8dda19ae13c8359a162e7a5d643867c138b7a27af42cd13dbeb39675fc9bedb f9ee5af9bef261dfe00b7a380866f5146460f4326c02591ff735c6c5edb7d2e2 648a99d75b0c6e56e58e1ab20eb30c26df1cbbb93539de70fd5109089c085dc9 86a1149ce85dde78d04629e2119c3b1defbd74348ee124188aa072c646eb4369 61c2af77048a217f8a87d0c1be164877e38905b9c64c4ca7bb245e3f42604d2f c444db2c200ae6dfcc4c121137174bffe00b8cfce8387ee395c9e2d7796d0b65 da7a0e628f11141f1464b641f82a6d647a706189d18d5a400229ec79fa6e3c1e 561a53f006ffc78822f0a7e8517a920265e4ef96615ee775c1ab93d839dc4fad 5dcd0adb608f0d3812be8681e0b59f084761d99de6b08c026005ecd0ee54508c 238309ed46163b5fb393891d90d8cd03ba417a04d6784396e7e8d282a3b84431 df3f324c703a4988c50004c716bdb31e4eadcc915e78a6b1898026d2dceaeaef a6e82b0ee80fc15221de932095e35adccbcf4ae515b504e4763ad46ca8c568a5 e2605171ad638caaeb21a80cb5877e2da5f053c3ba0db377121a6798d59ad99d fab5488cd3b25bdd8b3a26a3805ede14114e72b50c9c8fe2a8c6384aebf27dbd 5df066b1f4476f4b9d457018fbb57c22622b9e4a3cffb970da1a887bcae6123c b46af62e50ec8ee8fee48fb97f127897313af992c2ceb38b2e7cb704b851a492 5fddb642aa7d5ff2db9dd54dc1980a33df42045e02a2ef62748384a976fc35d4 702aadaccbe7cb9752d28c3a9d15fe8389c92c21ddabf3cba6b69e857565df1b 0139de5682df570e15411924a259f42a86a3d4d2d28c28252a66eedc95adedab a7c61857886af046f66f314880e161176f93395cde18578d7d7596b8c3422841 5fb26419e6316192efe069e49d948fba20bc602f81030806a0665c9cb9ff1449 9ddc0b5fec5fe41f09092ff543a6557b399f57b9bb39ca2d86309eae7c9f91a8 3fe58466c209c521aaa358aefb0b07a8125ab587c4f15fb38e6493fffd24f615 492759cf86fe0caf7049c448929bba2ee8be67eaa0e0aaa9b5f636917cd01d66 897982861ee57528c388adc791cdd1a857949ee4906ac4e85962866fa79d529b 7544adbe7fd7d6bec3fd3ce6bf589e6fe7a9f41962769bd41ea21b3a9e258fe5 a5f8a6ce8ffac7016d5b2cd8b5f46f9d53bcc33658f5b23a851bf6803519da02 426af58a0790a33efdb65e2d6cd034c264d1e1c18d6c8b0ddb845a4bc0425329 88b00ebc782cb7c99a9fa21669a752e9e951c24309317da475601ac02d614bb1 d16d3fccfe3d2f6535b7770dbbc7a7a44055fa5aee59ee1e83ae3af53c138e98 7a5aba2257e904fb80fe99f6c98394084b3cce03dccfb9279fc1fdbd19472b58 d8e5bcd8a3a7a3a5db4f5b50dc8e1ab20629f13d610a751b8a3609e782a2d9e7 e9e703b5726a50229a3a479431c3640efedec0f5a84b217bd0b7d62071520179 895001bb04a291c250a79f6e4ffb1e121f880872e5557cf73b3d5668b7cfb285 f51310968de06ccee34bde0e84275f5ab2a72bc3f9a63f48f8955681f615f091 c95b0e944030a4ab48a511b48015cbe8e01cd6322a500b702a9f85900e1ae8c7 b98db59f0d6d8d73d546f1409d93689bf313e812bdd928e05b5488d9cb66b738 3408a5815a170e93fd30f68f82818148a0bf8786d6bfcd09442046fd9748401c a8d7e4598397eafe105882d035d45d1d6ec61079de963db02500e255c774e8bf 307bf9371f54258aa40237d5bd1581008a9875e30abdf7da39cc41ef4677662e 3f98d02015c91f234a541df1958cdf067918d71d054da3f3d3ef37d193690dfd 9d6a3212a0422c96e7b40e66b7a243a7acfcabe0c5466e7c0d425d228586864b 772d5a2b0912b061ce0d15fb76728df33e5c42b125a9fa7d5fb443d54de43df7 a47a0106a80b7c2823bf7060a7e3e81e0cb7d7442057e93b6f38593b900b4e52 1a0113c06ceaa6e5d632c7c5e9492ad0546f85313238d39bab419ab657d04ee0 166667660ae8631ade889d60972b2908a6ca4c410e8c06451ce1eec3ecfa092a f30b6046756ab995176ebee3683ba8570d69ca581b52a81a21322e744792df16 9f035497dee5701193d55350b11978cf074444691b5cc3513a3cb8eff7f067f7 96edee530ddd825671f5bccbafcc30718a1902b173652e114862815fd0ead797 88362354737e832fa7dd46fd76f8e7b140d84053ebe209b5e9556b2f723ec229 3424d02f8da40f6a4c5ee291b658eb17408bbb2bc98689d0826fdb41428ee6ae 39475c480489083bc7b7f606f68086b7b9b205b4e513af8b73da6c2d0f3eb1ff 70d97d205532cc0bd6f6d4f4fc37ae957a48353d45434c7257051b263b82333d df2d8acd0b7c7bb6b8ad9643bc1fd0b5eb0732776022d6213932021a08f0734a 3b35694705a828587bb9c4196dfc4059a9837e7c46dbe6153def24dba61d3f25 9bc5d63f030fd860e9801dca7b81d0d4dc3d8c4cbaec3b9a769fcc09d7fac8ed 4c046e0b64bb8db2bafed5c91b39fe0885cd5e6bb5fad3917d664238c4642fef 6c4c554296df92a9563a29430485ac48c2a0f02ad39398126843ba348005aada 3cbc9211dfeb94a6d1b4b14d7138d4e2583d721bc9595e05c733043ba6d86f91 5dd250546f22f9746df5c4ac9f99106073336949dbdeb1ed3dc746587c1adfd8 48dcbafe2cf0c204c44793e7892ecdb55c246cecce60f467c2991989f5be9d21 4d72a888116d8a945376697b5d7034d62a680f9e91011a57b797d9576b043d1c 4b73666a7275e93a3b7b52feb6e8424f19a4914d4f4ce621efec308d83ba912b 7f5e0089ad1c15175216c27afef512f05312e2bee6c5778c5625354b9b3c70a6 2923140eb3f350d73d06ab95c5232a86199f41695b6cfcad052a5dc27d0705ea b4c94332d917236dc24f52172c94e05c3ff9203fbd34c13ad9d9e076dba1e23e 47bcf2c96a1c8b3ffcf2419f7d5b47795d9d2923fa5905b5ce3b4f332a89c5da 71afbfc57de12ad8d8678d1f67c1898c18249faf4d9f427019445425a11fff30 9164be83b0594c5f312d653513ade66d5ddf29738cb823bee179ff864d01a740 f759f64e5ce1d82f7841118b263929951fa7896a87c7949d9ffe0c5c5fa07fc3 e3dd043a9e4ccfea80de6ab6f460c46f852753220acc9645419b13634bf351ba 35a1126d0164e6e64518a2ad5522a73fe38612a34cb6671c48bc18c919305bfb 35c57b0c8e221fa7519d5b1d6d168d8bc0375d174eab1ae6e9e44fbb7d9ca6a2 f04c813f119939714322cb87c693a2499c9c269bfda53c78e7f04c775ad407be 49f8679e345bef9d531654e2377e61bddfa4f8aebe5bb6dd862d298519bcec25 54c40969c9d1fd16e5a126cb22b8bd3976f68ecc8fc8dc9c0fbf51dd20c839d3 b921da7d0aeb93aedc761f31f3a3401f83be4d38169ab5368ff41481d638736a a71f624adb3c4a275e6b353f139e089f0e02a27bb003c8fa5eba4f1b989b3282 8dd8d049529a84b2727733df2790637e437581de00fd5aa03c516360e4644d55 aedaefa76f7f729dbdfe2fcbd2c05dd593c74f4eea31518b09d8bf2094354040 c260b7b4bc3a6238bcb61b03e6de12e3d63be9f7b5f34441d9a44304911eb92f 93107eda8946de92bfebacdbd2d950d92150d1f831d6829fad5d62c75e5860d9 cb3e3062cf867305a0ddc020bf4bac7a2d899a9481a391152151857cd53a97a6 6f7cd99c190f119185d33e49f6ab5ce20e61540b21387358f1233d2b39e69924 7ac33ac73e337a1a54e9d574ba856e0d3cd7267483581dba9491619f91b12996 d1c33f89d5dd6407bb98323467e9a6e3be4afc06c5006e19ab8ad06b0a01fdd2 ad742bff310f17f16193d7ab584c71c34372690521e0afbc4e6051025ec9a4db affc01120edf545631e4fcc2a65c488f25f640260982b7458f83125581d36f18 55ab4d823dd44112967e4fd41cdd60d6644617a638ffd5c9d89d2a95bc4b1b9b 8178777184d48f314554a19a444fdd509ebd345b19a411bedf5a0f59e9c4dfd5 6facbb6ee71145168e06a6049f1e2b0e3f91ff26a2cce2db8a256400876db370 17cb684540eea84942aa295cb079951554614e45f8d0910e15093aa1d4877c3f 543f0957ce9074aa051182c9ba6cf64058a403cc63cad5335f51aa32c76e3d8e a3677bbdb623c2c5febec43e5490decf54bcf7d9cf35a4e5b9ab5577649cb61d a65b3fb13156130c55b44a78849ff4d84136f8ee4f2a368de63f5799c822c3f0 b27770a29973541c4e137774fa958c0ea6227a57610bc6f056662ab2f7ab4aac 6893826c13d3147b6fa6075cd4784cb799cfd972d9566227db5b25bef8641534 6fb8cee4e06dc0fc49be6237a2720e3f9b7bc7f22a0a5ff2c276c2aaa00ab372 7e59f1642709f1216403c0f694914e0be6c5165b21c1a736bdf04da8cd699fdb 1b9e1553a56314b73ba74d83ccdb0723469ebe15cf10d7bb4d16f1c0878ffe68 f015da3e534334f53a2591d30199a0ccfc0f3a239559e4d0c7fa1fca44442141 3bc003d6be7ebf1e9affec62467e98ece66bb2216b4cb5ce45113e75ee023635 9a3ca384d603136fe5b5da21465e6d406931020d030ad932cbaa597e170298b2 12b15b8434612b12d13844a3e5a46597b4c26148a3d6f5c42fe2d949dcb64b40 44034791b7d780f75d119422d56fae911d5ec40189a4957b13b9b75d991ba190 fd3944c8ea1b756747a0b14492b04053dab4418ea5a96e1b6b12ccdfe739d392 d023e003e0463dfff9ad29e5a0547d5101e9d6ecb59f376860952fb748d15b68 1070ba9d08b9436b65b80b20d7c6b65e4476553338f9f17dafb46471d293de8a afe9d55d30c38a475b9e8d00d02690ce3562ba9583038b5fed7940cb4d7cd5d9 79e2532f65689847 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndResource %%IncludeResource: font Times-Roman /rm /rmX /Times-Roman inf %%IncludeResource: font Times-Italic /it /itX /Times-Italic inf %%IncludeResource: font Times-Bold /bf /bfX /Times-Bold inf %%IncludeResource: font Times-BoldItalic /bi /biX /Times-BoldItalic inf %%IncludeResource: font Symbol /sy /syX /Symbol inf %%IncludeResource: font PMW-Music /mf /mfX /PMW-Music inf %%IncludeResource: font Helvetica /xf8 /xf8X /Helvetica inf %%EndSetup %%Page: 1 1 %%BeginPageSetup /pagesave save def %%EndPageSetup rm 14 ss(F)193.015 760 s(anc)-0.21 0 rs(y font and character demonstration) -0.21 0 rs rm 10 ss(T)64 744 s(en point stretched 1.0)-0.7 0 rs rm [7.999 0 0 10 0 0] sm(T)64 734 s(en point stretched 0.8)-0.559 0 rs rm [15 0 0 10 0 0] sm(T)64 724 s(en point stretched 1.5)-1.05 0 rs rm [10 0 3.639 10 0 0] sm(T)64 714 s(en pointSheared 20)-0.7 0 rs rm 14 ss (Dv)64 684 s (o)-0.28 0 rs rmX 14 ss (Y)sh rm 14 ss (\341k, Gli\350re, F)sh (aur\351, Lopes Gra\347a, v)-0.21 0 rs(on Preu\337en, Back)-0.28 0 rs (er Gr\370ndahl)-0.14 0 rs(Bullet \267 and dagger )64 664 s rmX 14 ss (\210)sh rm 14 ss( and lozenge )sh rmX 14 ss(\227)sh rm 14 ss( )sh xf8 14 ss(and another typef)266.79 664 s(ace)-0.42 0 rs bf 12 ss (The f)64 624 s (ollo)-0.3 0 rs (wing can appear only on sta)-0.12 0 rs(v)-0.3 0 rs (es )-0.12 0 rs bfX 12 ss(\215)sh bf 12 ss( this sta)sh(v)-0.3 0 rs (e is in)-0.12 0 rs(visible!)-0.48 0 rs rm [0 10 -10 0 0 0] sm(V) 64 581 s(ertical)0 -1.11 rs %1/1 it [9.899 9.899 -9.899 9.899 0 0] sm(Rotated)81 567 s it [9.899 -9.899 9.899 9.899 0 0] sm(Rotated)115 595 s pagesave restore showpage %%Trailer %%Pages: 1 pmw-4.27/testdist/outfiles/Test03.ps0000644000222100022210000017474212247665016015512 0ustar ph10ph10%!PS-Adobe-3.0 %%Creator: Philip's Music Writer 4.27 (Built 25-Oct-2013) %%CreationDate: Tue Dec 3 17:23:05 2013 %%Pages: (atend) %%DocumentNeededResources: font Times-Roman Times-Italic %%+ font Times-Bold Times-BoldItalic Symbol %%+ font PMW-Music %%DocumentSuppliedResources: font PMW-Music %%Requirements: numcopies(1) %%EndComments %%BeginPaperSize: a4 a4 %%EndPaperSize %%BeginProlog %%Header file for PMW PostScript output /LowerEncoding 256 array def LowerEncoding 0 [ /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /space/exclam/quotedbl/numbersign /dollar/percent/ampersand/quotesingle /parenleft/parenright/asterisk/plus /comma/hyphen/period/slash /zero/one/two/three /four/five/six/seven /eight/nine/colon/semicolon /less/equal/greater/question /at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O /P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft /backslash/bracketright/asciicircum/underscore /grave/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o /p/q/r/s/t/u/v/w/x/y/z/braceleft /bar/braceright/asciitilde/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /space/exclamdown/cent/sterling /currency/yen/brokenbar/section /dieresis/copyright/ordfeminine/guillemotleft /logicalnot/hyphen/registered/macron /degree/plusminus/twosuperior/threesuperior /acute/mu/paragraph/bullet /cedilla/onesuperior/ordmasculine/guillemotright /onequarter/onehalf/threequarters/questiondown /Agrave/Aacute/Acircumflex/Atilde /Adieresis/Aring/AE/Ccedilla /Egrave/Eacute/Ecircumflex/Edieresis /Igrave/Iacute/Icircumflex/Idieresis /Eth/Ntilde/Ograve/Oacute /Ocircumflex/Otilde/Odieresis/multiply /Oslash/Ugrave/Uacute/Ucircumflex /Udieresis/Yacute/Thorn/germandbls /agrave/aacute/acircumflex/atilde /adieresis/aring/ae/ccedilla /egrave/eacute/ecircumflex/edieresis /igrave/iacute/icircumflex/idieresis /eth/ntilde/ograve/oacute /ocircumflex/otilde/odieresis/divide /oslash/ugrave/uacute/ucircumflex /udieresis/yacute/thorn/ydieresis ]putinterval /UpperEncoding 256 array def UpperEncoding 0 [ /Amacron/amacron/Abreve/abreve /Aogonek/aogonek/Cacute/cacute /Ccircumflex/ccircumflex/Cdotaccent/cdotaccent /Ccaron/ccaron/Dcaron/dcaron /Dcroat/dcroat/Emacron/emacron /Ebreve/ebreve/Edotaccent/edotaccent /Eogonek/eogonek/Ecaron/ecaron /Gcircumflex/gcircumflex/Gbreve/gbreve /Gdotaccent/gdotaccent/Gcommaaccent/gcommaaccent /Hcircumflex/hcircumflex/Hbar/hbar /Itilde/itilde/Imacron/imacron /Ibreve/ibreve/Iogonek/iogonek /Idotaccent/dotlessi/IJ/ij /Jcircumflex/jcircumflex/Kcommaaccent/kcommaaccent /kgreenlandic/Lacute/lacute/Lcommaaccent /lcommaaccent/Lcaron/lcaron/Ldot /ldot/Lslash/lslash/Nacute /nacute/Ncommaaccent/ncommaaccent/Ncaron /ncaron/napostrophe/Eng/eng /Omacron/omacron/Obreve/obreve /Ohungarumlaut/ohungarumlaut/OE/oe /Racute/racute/Rcommaaccent/rcommaaccent /Rcaron/rcaron/Sacute/sacute /Scircumflex/scircumflex/Scedilla/scedilla /Scaron/scaron/Tcedilla/tcedilla /Tcaron/tcaron/Tbar/tbar /Utilde/utilde/Umacron/umacron /Ubreve/ubreve/Uring/uring /Uhungarumlaut/uhungarumlaut/Uogonek/uogonek /Wcircumflex/wcircumflex/Ycircumflex/ycircumflex /Ydieresis/Zacute/zacute/Zdotaccent /zdotaccent/Zcaron/zcaron/longs /Delta/Euro/Scommaaccent/Tcommaaccent /breve/caron/circumflex/commaaccent /dagger/daggerdbl/dotaccent/ellipsis /emdash/endash/fi/fl /florin/fraction/greaterequal/guilsinglleft /guilsinglright/hungarumlaut/lessequal/lozenge /minus/notequal/ogonek/partialdiff /periodcentered/perthousand/quotedblbase/quotedblleft /quotedblright/quoteleft/quoteright/quotesinglbase /radical/ring/scommaaccent/summation /tcommaaccent/tilde/trademark/infinity ]putinterval /F/fill load def /GS/gsave load def /GR/grestore load def /Mt/moveto load def/Lt/lineto load def /R/rotate load def /Rl/rlineto load def/Rm/rmoveto load def /Ct/curveto load def/Rc/rcurveto load def /S/stroke load def /Slw/setlinewidth load def /Slc/setlinecap load def /Slj/setlinejoin load def /Sg/setgray load def /Sd/setdash load def /T/translate load def /clx 0 def/cly 0 def/crx 0 def/cry 0 def /inf{dup dup findfont 3 1 roll FontDirectory exch known {pop}{(**** Font ")print 100 string cvs print (" is not loaded ****\r\n)print stop}ifelse dup dup/Encoding get StandardEncoding eq {maxlength dup dict/newfont0 exch def dict/newfont1 exch def dup {1 index/FID eq{pop pop}{newfont0 3 1 roll put}ifelse}forall {1 index/FID eq{pop pop}{newfont1 3 1 roll put}ifelse}forall newfont1/Encoding UpperEncoding put dup newfont1 definefont def newfont0/Encoding LowerEncoding put dup newfont0 definefont def } {3 1 roll def def}ifelse }bind def /ss{scalefont setfont}bind def /sm{makefont setfont}bind def /ssr{scalefont [-1 0 0 1 0 0] makefont setfont}bind def /smr{makefont [-1 0 0 1 0 0] makefont setfont}bind def /b{/y exch def/x exch def/w exch def/z exch def/v exch def {x y Mt w show y z gt{/y y v sub def y z lt{/y z def}if} {exit}ifelse}loop}bind def /br{gsave translate dup 0.11 gt {0.11}{dup 2.0 div 0.055 add}ifelse exch scale 2{0.0 0.0 Mt 100.0 20.0 -50.0 245.0 60.0 260.0 curveto -50.0 245.0 60.0 20.0 0.0 0.0 curveto fill 1.0 -1.0 scale}repeat grestore}bind def /br2{gsave translate dup 0.11 gt {0.11}{dup 2.0 div 0.055 add}ifelse exch scale 2{0.0 0.0 Mt 95.0 40.0 -43.0 218.0 37.0 256.0 curveto -59.0 219.0 66.0 34.0 0.0 0.0 curveto fill 1.0 -1.0 scale}repeat grestore}bind def /cc{/u exch def/y1 exch def/x1 exch def/y0 exch def/x0 exch def /w y1 y0 sub dup mul x1 x0 sub dup mul add sqrt 2 div def /v w 2 mul 3 div dup 10 gt {pop 10} if def x0 x1 add 2.0 div y0 y1 add 2.0 div translate y1 y0 sub x1 x0 sub atan rotate}bind def /cA{/cry exch def/crx exch def/cly exch def/clx exch def}bind def /cd{w neg 0.05 moveto v w sub clx add u cly add w v sub crx add u cry add w 0.05 curveto w -0.05 lineto w v sub crx add u cry add 1 sub v w sub clx add u cly add 1 sub w neg -0.05 curveto closepath fill}bind def /cv{gsave cc cd grestore}bind def /cwd{w neg 0.05 moveto v w sub clx add u cly add w v sub crx add cry u sub w 0.05 curveto w -0.05 lineto w v sub crx add cry u sub 1 sub v w sub clx add u cly add 1 sub w neg -0.05 curveto closepath fill}bind def /cvw{gsave cc cwd grestore}bind def /cem{dup 1 eq cly cry eq and{pop 0 u cly add 0.75 mul /t2 0 def} {/x1 v w sub clx add def /x2 w v sub crx add def /y1 u cly add def u mul cry add /y2 exch def /t 0.5 def /a 2 w mul x1 x2 sub 3 mul add def /b x2 2 x1 mul sub w sub 3 mul def /c x1 w add 3 mul def a t mul b add t mul c add t mul w sub /t1 a 3 mul t mul b 2 mul add t mul c add def /a y1 y2 sub 3 mul def /b 3 y2 mul 6 y1 mul sub def /c 3 y1 mul def a t mul b add t mul c add t mul /t2 a 3 mul t mul b 2 mul add t mul c add def }ifelse translate t2 0 ne {t2 t1 atan rotate} if 0 2 moveto 4 add neg 0 exch rlineto 0.4 Slw stroke}bind def /cve{gsave cc cd 0.8 1 cem grestore}bind def /cvwe{gsave cc cwd 0.8 -1 cem grestore}bind def /dl{gsave 0 Sd 0 dtransform exch floor exch idtransform pop Slw Mt Lt stroke grestore}bind def /k{/y1 exch def/y2 exch def/x exch def currentfont mf y2 y1 sub dup 16 gt {pop 16}if dup 1 sub /y exch def dup y2 exch sub /y2 exch def 16 div 10 mul ss x y2 Mt (\260) show {/y2 y2 y sub def y2 y1 le {exit}if x y2 Mt (B)show}loop x y1 Mt (\261)show setfont}bind def /l{Slw Mt Lt stroke}bind def /ll{Slw Mt 1 1 3 -1 roll{pop Lt}for stroke}bind def /m{/y0 exch def/x0 exch def/y1 exch def/x1 exch def/z exch def x0 y0 Mt x1 y1 Lt x1 y1 z add Lt x0 y0 z add Lt fill}bind def /rs{rmoveto show}bind def /s{moveto show}bind def /sh{show}bind def /wrs{rmoveto 0 32 4 -1 roll widthshow}bind def /ws{moveto 0 32 4 -1 roll widthshow}bind def /wsh{0 32 4 -1 roll widthshow}bind def /ST{/n exch def/g exch def/t exch def/w exch def/y exch def/x exch def 1 1 n {pop x y transform round exch round exch itransform Mt w 0 Rl y g add /y exch def}for t Slw S}bind def %%EndProlog %%BeginSetup %%BeginResource: font PMW-Music 11 dict begin /FontInfo 8 dict dup begin /version (58.01) readonly def /Notice (Copyright (c) November 2010 Philip Hazel) readonly def /FullName (PMW-Music) readonly def /FamilyName (PMW-Music) readonly def /Weight (Medium) readonly def /ItalicAngle 2 def /isFixedPitch false def /UnderlinePosition -98 def /UnderlineThickness 54 def end readonly def /FontName /PMW-Music def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /FontBBox {-150 -1400 50000 2300} readonly def /Encoding 256 array def 0 1 31 {Encoding exch /.notdef put} for Encoding 32 [/sp/trebleclef/bassclef/altoclef/star/sharp/doublesharp /flat/natural/tfermata/brest/sbrest/mrest/crest/qrest/bfermata /longrest/breve/semibreve/uminim/dminim/ucrotchet/dcrotchet/uquaver/dquaver /usquaver/dsquaver/usqtail/dsqtail/ledger/vdot/hdot/barsingle/bardouble /barthick/stave1/pstave1/uqtail/stave10/pstave10/dqtail/repeatdots /ustem/dstem/cnh/mnh/comma/mordent/dmordent/imordent/dimordent/turn /hbar/accent1/caesura/accent2/accent3/accent4/accent5/bardotted /caesura1/little8/C/cut/tilde/thumba/thumbb/ds1/ds2/downa/downb/upa /upb/iturn/seven/four/hcnh/hmnh/xnh/xustem/xdstem/fustem/fdstem/six /gdot/gring/d1/d4/u4/l1/r1/bs/ds/fs/us/.notdef/tick/uacc/dacc/grid /barshort/breath/vring/cross/trill/scaesura/lcaesura/sbra/sket/rbra /rket/rep/repdots/vtilde/trem/circ/cutcirc/slur1/slur2/up/down /iC/icut/unibreve/accent6/srbra/srket/angle1/angle2/angle3/angle4 /ped/uvtilde/dvtilde/nail/angle5/angle6/stave21/stave31/stave41/stave61 /hclef/oldbassclef/oldaltoclef/bratop/brabot/direct/five/major/dimsh /hdimsh/gcross/ledger2/srm1/srm2/u12/d12/halfsharp1/halfsharp2 /halfflat1/halfflat2/icomma/accent7/accent8]putinterval 196 1 246 {Encoding exch /.notdef put}for Encoding 247 [/stave210/stave310/stave410/stave610 /.notdef/.notdef/.notdef/.notdef/.notdef]putinterval currentdict end currentfile eexec d9d66f633b846a989b9974b0179fc6cc445bc2c03103c68570a7b354a4a280ae 6fbf7f9888e039ab60fcaf852eb4ce3afeb979d5ea70fde44a2ae5c8c0166c27 bf9665eea11c7d2329c1a211dd26bb372be5822f5ea70d99eb578c7befd44cdf 045a363056e5e1cc51525ea6fc061dcebb337208eff729802376a2801424f670 0e7e6397b28f15bc10b40012b0a3eaeb2693e8f7f627c4c9c7c6c5bff105c1e4 1b2b9e8f09253b61177e95ea219474796072f4c3189f7cfc7630142215dbc8a8 fd63d147033a0c9c786e17355fa8d996a3a7b5d213ac8011fd31a12930a87f86 374c1921aaa9ed181b43541cdf6e376bb4f2801faa9b01dcc0569ac59cfc4768 afdc549a30d41f5705e4231d3bc540161d390b4980ef9fe489ac4df99f83a8e2 00182cd152eb35a61aa915230f1090fd0bc8d4644f836c3da157c564b2a8fb7e 7d3203ca17088a579aab355eb45038ff45d5eb2357959a2c7c04421c41d3b822 d0471ae18607c80503c0b319348683bc6bc87e075a8eb4bb34729c4145b2b5a0 df1a88b2d7e0940aa3d4bafa502b87d9313153f661019a817ab20e1a772ad0d5 51ae7fdce4e21f426a6726c39c88124f8cbf10bb7394e90e9d28efdffef75078 f7ab1d7fe8387e1e65c4ff67d054ae6a0937e4d59889656ac37afde0362d76ab 05f9c223c52f04b6279e055419d3630d5057b50b4c4492891f7a36d03859e220 2d89747f1d486e9449a3448f81c240adc9e5476c6de456d76c4237055c0c30b6 80738211ddb90bcc73982467076cba36a60ec6a6584d9d9bf0df2b8462ceb1be 79c1276d2865b0f3518664a960036ca2d00c7829a967ac16b5c833f2e143efc0 f93826a8d09414c4ae7cb17623edc8f599b895ed0d3f4bea8bfd9b414cc39c0e 4080180fe8286b05065a10df4d691d38f73bc82d6142bdded07ffff7017f7803 cb03226f4d6501c203f8ee4e08ff5f8eda81278aaa6378b2d95ad6dfc7bc2e11 aa696cf2618a5737f03bce6c46c635caf89d23de81693159167b74cda0a15dcd 491b2ba489f28d410f1835d0fb7a9be1e3e5e7b76996e1d85cb9b62bb0619bdc 78b85ad2731fb580466cd92159c7f0e53f0896e154ec770cb55c55b09ec7b405 251e205992ac88e0bb583792edc9a21143a3ab447d4769e84016aea06413b52a 9ad5bbf68c05b2d1fbd434a1d61a903b6d2e81cba8f422998f51dab989a49b7c 2d0ee5cf9f5cfea4fd5f7686eb2e9d29bb4fd4b117bd407534ab7aea4068f8a1 f3f89f61f1b341c9c31755c876038a2707314ba7f51f25ae9b81cb7170f24d97 f792f849fb28eb31704aa5826296042664f4324d94dd8644d43f3d3ba8ef474f 37ab52149ca62286bc986a59f4dc01c95106a325ad9eb4e22badbf89c3c329d2 cbe4d3f3c64fd1b40dd441f2f8e45df63e6cf107d5a0efb2930fe55c04c6d01a 23b40b4706ef7ec9e6447190cebceb1293800d461512b42c06825d1ea511b7a7 031286c05dd8536baf9159f6d3ecb5c23c3677795a29aad9be47a0d7a127e3ad 051d57de2b0969ba89d906f64a4834fb7912a5c1f39a8cdac5367a06ec532870 fd72e532680e064d490d975feb7bbcdd84ea1b060476b844a6fc153691d6eeeb e72d71ef5ee59f6bfbfeb9e166e0304f50b91d8e401fac3257b56ae63d9ac6e3 a27fd33f1b43075c792597372d77a93912bc83e4aced15502c9f549e725ee735 8cf609891f05fede798f758940ee09d2947af5a290f2b4540b6a931d9d8e1176 5c0c4f14dd4f2ae0a056e42b7842e4a37a854fd70f2268833d8b0a5a5124ac92 d5abea2bc4a82267734407be662c088ce63084f851af93ed826c3d6d417c679b c3d5faa174c9248fb2706f46a9611cd21c2952e70ef36ddfa951b6df819c7c49 04b8a5a08ade3960e46860fa6ed29caa9d332be99f25a6c2e627402f09a5e140 3ac599195881326c44e6deda9d38ab32544e7b21749b5f933ceee3818853248a c038736c4486f46ff5853684760814f2dc64f282f7619c34885396a300e041d4 4931a4951469f5de55d0282ab491a456ed329ba83756285e2e637ce00e925b79 6a5e7de954b276e92b958ea4119200955d906a275b2640f2881224816febf38c ae5a330d8c4d31c68dac342210d5b0ed554e0d57e7b486022aaab11ec40753d8 ad557122b58a7ef70f0676e41f9c29feedac4d10808370b03202d11e5911e056 5502c18e30c2086795534f946639ef524469e7628abf78b2ad634d1c30315202 2bf1ae1c038093dda6e3dd5ca785626841806f19db4edefb4352255a40a6fd2d e5b292d963047035bf20765a1724da4ceb6596e5fa97d7b8fa9f3ecb4b88197e b88466dd7b189aaf8603193b647abb7bcd00005212a18872c0145d3378b097b2 8dfc782b3bff19d16c0fc15c0dcb4c59318183cacd60f4a6bb68be52381277e4 f01f081110b5549a1178bb1f260a83c6185569012e906e6f3e2efd3be510c8d5 359170a08dccef71cf290c76297a1a4b5cc979a25285a9bbbd06a29109fb026c 5ed7c864cfbd56af94b980775295d1cedf1e2d29bb4374919a1837a325daae46 3420aa39e8adc0a6d1508ec3109400eba448f2c83949001fc47f5cad8d4abf40 05805a03e5debcb69a94d9de331cd65d7f1f6de6141eff2045466417110ebe68 0b7164d627bc55b3362049f5e720c1fbc78138cb39eb79e66cb7f7f0bb778afc 9f71dadc6df0dce778b2a5500ad6d77ec30ec68484fb9acc886f9f17b85a057b a9cc45cf70a2ab800d6a4790ea19c7bb8042ee22148df7df8b2a3b6a024003af 4ff4306ecc2b060304f8c6f66b8c0a6e93ce65360a9cd69b61f86a8dfb73c68d c21db4b6c6dcf79e667772b21c7c466e32c5d527c69368ae0e89a4d4cdb4891f 3d4d979f9173d37b0b14a078b061c3a647d1446862ccbb83e0f0c52e55f62571 d261f9025b9b76b19a4387c9be977a75a9f3081fadd4a0497049db2b25ed2e1b 2f1d2330b45df4d9046c5d6b93cc37b9f5cc6efb382fe3c1cfb2149369e96049 943b8bb24ac4cc79d6f5700e7674c56b90093ea2040bd564d03b248e7e7501bc 984034757fb9a8ab0915a676cbd53f3f680aed60d401953b080bf8339b2e86bc 5afa1596cd942d225a2f4955693042f9283b5d609f297a6f60a4a1a1b3af3b75 b2ebf205ea219cf61f378872247fe2284ac99a5e29a31ea3daadec1080e9a252 504d9980bbea3845e145ca1fc919db615740a5d81e188cd9ec7de7467f77e23c af9879f9b562af2382f271794641e9c498cc7257071a9a037f4df9df87289d8c 973909959329980b26acd05b0ef35e9b60101bfa019acde608ced1432c68bd26 1b4db2b2f16deca61e710e8bab3c99bca591f6b1491ffceebba2c75a3e7802a8 e5170e660125475f75be93ec815304bfa33a26a1371c21ce78c58d2c700c91be 8aa8d468fce514189054972132e57e69422dae4588d5de9f3344cb59d505c421 1b8b27fc1c22a82a062d76ad9e6e3a4add530aaa501e20293be5c19916331c05 ac9b774007afeac38ad564a281afffb6fd41002837678f0741eeb025ec3d6c23 140420f6943d17a1d84e301863a849290aaad57b545f97493b1f3693fcceec9e fc8310bf367204a88570d92045d3dedce44692ac4858a4950f39903095bc974b 067283afe304317fa6c0eeeff03cc68723468d73d881caac31300836687ec574 c06e46cb22fcdc7c315b06cf8a13c01830498b2f379c96dbbc04b1f579f7fb12 d8c1bc2a676fbe690a6787fc77414718b5dd3f742689b39aa8cb6f6a34bcebc4 9b9aaaee962a77fa014d203415495311226d9c03c80b6dcbad39450fc44184fd e12a276d4e87cd954b0db7c58049084003014dd1920351a6a59b9ee428bf67fd 1b931e652870068d9feb0866d2e825e6404056ee589c7e406718004e0df8cfa2 04d21df791632359cc821e8652e6104eec4c1207c704167f70010e9afd6ec0aa 02fac84771d34e38bef362797bae62cc06fe81c069bf04d9edb277a90fa75f4b e79b3c0a8804adbebbcad3c464aa14a393f6ea75dcd5b420f9fb320398ecea1a c3acc08af37f7c14f14075f95c4961df04b45088dd75e338a2629647ec421849 f9948b9a17e33408239210566599f792a4c0934f88069a146f66b9c5bfa541a2 4b68fb5bd566f3ea28053dd386d2babdd8fe08e9763633933844fa5417f29ba7 60b235097764864d61ae1213aa8d3c4436911ff0b77aef7cb6d899ce0e8c2312 66d552dc691c783da623fb308ffd42f141d7e05b9db1b5fef691967f4e42f77c f0b3ccae74717e0b0ef02f152c89f9c1b1ef8cac955d3c024c04e0c8830b7884 ef8490ed1fd4b718977da0be6b8cef615ebd95e41c04bf119e9064a7723c8e67 2f84a9f02707f08c1423387092004c5499f20397855b03e12a48cfd90e9f4b1e 0e2ce907e86716c43cb9fe377cf4a38afcbf860074cca3c3580730147bbd280f aa4711be6c7ca74633545acc6e1ba2003e9eac90099a00406cae1b04b906d896 1bc0589e9046c3450ff07624f3e8bc0241e3e2356dee09b92ce70d48a52da586 8528da6c89e780f1b121839418ab684a92b4187d184a8616e73f8d961257083b 935358f1e6d6fb68c173e5e38969c8f2a68724ca12a86ece19f1a79ac9b9913f f14c9e37d08f89e84b1d6d1ce4fa8b8c32a139c950f6e83471b38702e695bc7b e8d87c77805d33e6536a5095ceb6e726ed0500b41c941d173233771e6aca5e2a 8a0974f6f726bb5dfd2f7adfdc64095d4421984d879a40e27f3da62a433f03f8 25465338bd92d7408ab4b30ed357474d07f49b4a9d5c5891c11ca620a0ed4c9b cb476ad89efaa734d9d11e55bdad6163c867c56543d2edf445f8336473f81d72 40e675ee76e15e68c7295fe4c4727049007e3fd6a3bf5be662846c669965c39e ee26797951ce86d4e2db76070ce1217c9c9dbada0a8e53e450bec992724150a9 34f7ca6b7c092e12726cf0ee125608a4e58f3c54f1b3466c47acc11a7fb86d15 56bc15dc4999f52616f1d45745a4719df7849fca9430b7e2fcf0c72dfca8e2c5 b205f65ff646084b03779616126dc0108574d98b20dcd787f99305e593a3ff30 39132a62240bb9c47f7aba86bd61fa30e7751cdfbfb630c159d016ee70c8a273 1a167494354bee5fa39bb0a233580913943e029ce518d75f30af7cb2d3ed2103 d8abbac569cab1a9daaf125e79d5b327e69489eec94bf0e537724799f6e42c6c ba604976a498266555197e5290968486e625bb933e6588019e496c647f574522 7f8817ef98e28a27158cc58a48d264f6b95cbf2e1d92399d423e31ac7a077588 466f725090359c69e0fc91072df81fadd46069bbcefcaa77cfb7fa3e96034026 35a8296bf9c1d0a7fbab44a815ab741f36aefa60b2825671b0ab55db353d186e 90ed303b9caa7d0f52f9b74273042c3297e64b7264f38c0b849b1099a2b1ead1 89c6b6ee20b3f32aee24ba734e809ae500f6d48a50e6eadbfe61e660028476d1 254dd0467c140e698527a278c910e03f4341f0dece94a430db441f8a4fa73954 edc0534e2bfbae3205749cf27945909d28da83e440a5558aaa8eca7a9a4c8243 f0a60c5211ec2197fac453f01520ead1b20621962324543c2729d977cda3eac4 0ff0c0fa1096315ba2eee3d71cdf2c5bb1d9a4d4ed2147dfbd673f79cc1dc21b a77ac1096bd93b15f31467919e432c204640a81694abe315fcee9a3e9ef27f86 57c1d4aae410a23e44d0ce9fab50f953c81e33f6ec39837b20cf8fd0cc76a029 8f12e76a4c78b40798819f7919a0d24a42cef3074b8de0cb5e418201d41f431c 68e92c1827a4c9cfc968063e76038a494bdd4fb5e957d57aab2fa31bf1830b1e d3bb12f34f3fb17bfd73a349d706138da54671b43450f22f40cd7cbf50476a5b 2c73dccace0b74fa671007e4e95bbd79173c5d37047e511d49a110f81ff7ca8b 5fe0ed67a5efa1a87670db0ea31a11ee76b4af2dda3a6367df3c2b4e7cd868c1 604d872998326c710c206b78d6b9ebeaa14ff4841d18163a1b0738b3c9c2a952 3ec59bca6623329181bbed1662963564b1a7b48e08b120c0b1e2e28e9f076196 0f7a72f4118dfe57672c96ab72589dcdb652ff0580bed4a9c42ca35fcb1e6595 bf4fb078cb8531d2b589b0258fb14aaa9752283e94da2822810fa00220ecc76b fa0bf30ab93c612d2f6fa13c02443dd179c5ccfc0312d70d4509c558631a1b83 00301b494062dd506e84bef5d3e734f6af4b506f9b6ef43641f25a699cb7f70b 646e8b334fa8305bbe6e2f9596579f7db9e28c6e3cbac6a244984cb1dbcf751c 748afeea4610cd4c1cbfac10c9852a32b6f912bbe967a68c9678a83b03d3a589 55e21dfaec2921bafbd868fc6c5dbf9e6ff8d93c8d5a30a5903eaa82757ef344 ef36e216f96cd68b0f90b54579e11a40cf33c17fae2ddba456e1b85458cbf05d 928fb1ccae12f39e215c4c68b7f22ddd26d0f271e77b0f2cc2d6a9a7f37db7a7 621c4ec4e126ef4f231a2bd811cba54ac5ea84386cfd985ba17506d0d7c552c2 aa2b5fefb49cf5b7b1b16bbaa38fb408cef612e7260d088712d60c57af8291e6 9401fe2d8c879d563e7d988bc522100bd0e905a7dd25189a771076e75998d37e df26f0dd5e302eec87c087bd54289ab3f3c013b3a64b8bd4a0acdbcb32858e0e b407557f336b89be676f94fa5e41f2db1938288948b2eee549393213cebdc36d 9e241b237e78fb7226633fc67a127e48e43ddadbfe12aaa41bf7cff47115524b b853d3bef16514c2723b057e3cb74f0e6f043a25e7ecff0bf7620140f11b57a8 9e343a4fe17cafd950735383d05ea02d410d26c0ed305a619a461c08155ace2a c0888f257a301272ca78d533bab54f54d001dc6c205ff6324ebc1942320e3f8c 7c00eddba2962f7d8b8b194ad83e47b13083caf11e64dc89119d7127b9be5538 6b703d42d1edfd7db2f3fa122f1acde1ea43eedb955593c14dabea0ea66c6328 f39d3de6562fe906da301dc1ab7a83bf88cab1eb9923c5f1085bcaf02b8fa410 5c531836956c509ab18cc19bc5c248a2eef7566792982a43ec89d63b31e001fb b2ccc234e03e4572ce089d02bdf9dc0190af8dbc2c7ccc22196e3bc17c3e37c8 9a742f07edcadccc8d7597a4ed227f4ee37e843718e15da7208f8d2f2ffa12ee c007346e4cad0bb1aacf73e0edfcdc725be54ff6103eb3080881b1ef78267290 abc87920cf63f402a019e5c6e328f78707ac983bf0bc32cf4673d6bb966c9cd7 3b3c64b76a925b15225054a970acf61f123c44e51dd944426493fdf54646ecec 87e538cd1a130a43e1fd6274ac12ce5663534f65210c1e438118e34112c119aa 0e311185ca3977c6da19e0e73f9ef47ede1bc60f1891dc3302d01d7138da0867 1bae87b54e594f06e26c0e01b11693e994722daf37dfae35d1c63f7946f31167 32415ceaa09a865c28ccd57f9d41e19123e2cdab7e3e2bd29dee275f30075bce 458ddb09c2d5fea6e0e2a744009f6abddf5c34fb3caf51ece4665704bbb215e4 7107a1745424e6ab9071d2008cbe279c0b5ccb8ab61afa38b3d6195f652eb5e1 7a32a358e8ba8e02888b97e3ba3b695ea0062bb1cdb5ac5fee551e9eda4f070c 3dcf504cad12914caa34b39a494f539f1bf2ef77223c233a57f11cccea4f79ef f782c9c42efab4dbb360ca7518709ff4691fd9b9451e24fee60b2053167b96d4 f47fdce601a10d0dba330116a5dd0adfa44f7ec578c5ccdefda203bc220e5ec8 128e67fe500412d234fa0caeaf0a927d5cfd89d46bf3362e2ea172e09fd4d126 51ae59dfb15484b29ef2d5abd39e387202cc9348d00ee7a6dafa810bb68ad460 0c2e61a128d692502c2080311a7c99e30671d200ca812755a79ddc1e281a0c11 359ffc8341a508486c7677cce56b24bd2cac1b9457d2aa9b701cf9d7a74f8d6b a285e3b342e5232977abce1e51a95b0b148ba89fa492fc93e67f91042242ef87 f0a83ca51a752255a9eee173e2b2e69b4d88394a8f5584f9265597cc42fec4c1 cc727c7ade1b3407db4e0ebd6cf4848504df6cdecb476ce74aa817dca0e51c0d a3f14a1bcce37adff3bd7d08b44876e1b08789b630a3d070b53f3a8fe7ef8bef 539522d521b1319455c3999ab3f6fdcf92f28a36152a6574f62ba51ef90e1f3b c89ec530004dfcdd7a7b1c8038957ae361d921dc976b899b46f67eb824732282 e0207eb3f113c267b2154ed423f9084b56cfa1dd26508c3295d844e1549b63f2 26bb27f7ecb4ca36fe55ad817d952767b49d78f4576448eff1679851a415f918 0cf5ae1157b06c47e44c70774d6ffba7d8f86ba0160d55e21db737e10b2a91c7 05286b7c7dd9cc027ee23f3b3b46c3271a274868311d56931361dcd37542d1ac 67dc26954a733f9662dc9308f9639b944894f6f19848fbc3f44cb8bf3d5f6b39 fc78127ddaa6243cac012fe0cd52efbbed8b4bf857b3a1bb2b7e7e44bc8b0faa d715b0c6fbf4a4a9071cf299e0cacb88593fd61e5a0dc9fe7ed040e17dae132d eb17ff933db6927e892b3919cc14ca1908f557607b1dfbf48dc3d6aaa862d8c6 5dc9b2f3cc127e70d10c3a04ee17d357c93527eeffcf18792383b73459d50bcf ced1527e0520a397f7ec692a12f0693150885fcee5087b5d94b2ed81ebe967e1 fc32853cb465bb8b66453574c4ba998c91641e35a2fe6e521883fe344b27cb10 7031369baca8bdc5f4b9a2f44180c0ac498f171a416c8fdae8ba089819eb0256 17094a93681a3b3d100ec7f45839e9d42a09d0d75b8a05f6da5458eb6151be55 3fa2413df3364cb39a368d22643cc13b695eda2ba739e77125516dcb203d4764 e21c4075a931da7518471e4251a9782ee15bd2a5e94398e09a07fd265edf618f 71d439f8129c6b7402a05ff14547308fd9dc5e7c96f620a2682b50a7859eec5b da71f4c6e12059e8dd3916bfdfd0e151fa4b5aaa90435d1d42ab092c9c421657 d5bb283717759416257016e9314f54455ec9448f77df7e53c24fe8d96ec1c68c a7fd651af1e71686d2347af1ec6f9b790c185fd352ac03047f6c920bbb872fcb fbdb7566c75ab06d93278df61d8070a9951766b46720da236d8d4e7b4893aba8 ed4ac9406fe383631457095ca9993db527e7a37c9419b7abedfb7d41a460b9c4 9fb39efcf3631da0dbd315788ad98295fbb62e11655c0cc1ab2fb0e54e01ba9f b16cc2c1f82e48b3bfef4b4d339d7f0df8e001dc2a5911b4b92fb7eb428873eb 8a5acce25fd9f47faff3e0733d38b86a244ea1952ce528b8abf9493b1b307bc4 7a4fa41bbce361d2a6bf9a6820a231a58e89a9d214fadd6aadcbedaa150a4f27 9efe67012114205991c643e6ea1411203926bc0804572e0b727913402a466f8b f111844675dd5109212e5447f682e2959232ad21a218ff49479714aadb0618d3 fb488ebb29b2939059d1f794c277515eb400e5c626a811ce2a7a247e9e904b64 5609b594431433470ddcec6974f0f3d77651793ad7ce23ee72111474cfe2ca02 51c4d90c0b02ac9d7670c3795df594074759f38fc2ebe6a2a797d54628a50676 6f1e2263844d597fd845687a44f72a539a8661a9a9064c78071c040d1f0a45fd e2cccd2268919227e8e2c05befee614a9535a6adb324624425290d7032f6dfce 19342467ccf344114425ca8f9ed74899dcbd8d373879ca8f83d953021259f998 338d2e7a5cb54321f8057d70d5a02fa8aef3aea24854a9a21e45428a97397cc3 58aec6ec45fa9199579406c2e842549e1639d80b2a6b2502f28c8f4f94fba297 938a3c986ed1dba4c3b384bc43d7bb6becb71195475398313bf8774355562800 bf86d8f75101683880ae686ac36b757ce0e4adee09ef68f8fb5e891e956ee62e 346adb50098c5b7ded6374bff775ef4fd58a5910d980a635576e20e7b11797a1 7c44b0d347ec9b56cfca607866ea109d54fc992b1376eebd4d201a876e8564b9 f8ebd34de83bfc90c10d8ea85b556cb5fb74c447bde7329334b29c788cae8f02 de02daabf74f0bcdcf64064c91f366db4bb68794c9c41765bfaadfb514f487dd 096b2ad1f1404a836a809a20dc813a277c749ad0c4c45e6374630a4999ec512b fe9f990a74a05ff7e6c2b1ade33fd14670c6ef97ad99ccbb996b12d0172a88e1 b923f85a17213d52ae7e3886c50e125d38b8f97692cb2a5b3e03f21188f763e9 7eec87182ae517e42d9590f73c2594a7e5f61b9a5bf15a7eed29a754f729d532 dfa74519696cf75ae98a471ec88b3ed550730f50f519ac629691a47e19343c05 1b6d466acb89f50db25a9beae2b0eb79a96d2c0189febc516e68f70aa6bc09f9 129b0fd837e87d16fbe4a7a4456663cc7346218be042b965dedc22b7cb5f811e a445a5651759ac076b49d476e5f89c218bda4ec9582c95149b5f2d8a49c80ead 3ce0df6ea52db964cdc0ef2164bd21f818ef287cb3337b4d8a6aa34a336be17c d808a00949f82017f831b771473ef12a2661ab1fc21c3e344899d6a73ef7ff83 694abb48072daa7841dbb31498a9cc29b07bb0dcf709cae5014c2cc9073a1e5b a29d67f72a030496798f04171ed6a45105fbb58ca261d3ab9dcb57fc28b50cae 57c4203ae09a58bbca20a4613bcdff264adbbac8ad7ea0c2fabe4f07aa453618 e1591258a2a18e0fd974135fb890beba5bb115a8dd6491ad3299e27506ecdb8a e9c074ad5f1a553bb14f1aa35b9cabcd645ee452166f331319a5a953a922cc14 5f683e88ccdfc3d64d61b317df7e6022e9d50b28aba224d6a03a34a9d8242f39 e34cd7b5e46f37291f5d75bdc1bb586ac86778c1a496f321808cc0da6fb3a6e1 d4cd8c8e37c1e2c1d98384ea5a1654caf3b360d4fc77c3c3faf94466de5208b3 2935fde906ebf2d98ccba2cdabcd8197947f5e801ca0981a82b091a51c8ae0ba de5b69f3c9c0026fdd590e1e2cd526e7f7096570a53bbf917ee0a2a519ea4f15 f24cb5a8dd227ef2d8459ed65c31f5c19c9270028ad027c131e73c3c6f70b9d2 f2288bf3b41affb66db183903f464999bc5cf41602a50db4cd4f06ef1105214c cb7eadc45b06dc96636884a3d6d7a8374c57daaaecd35f52aa4db430e1c63995 bbe2b7bca8360dd4ad7dfbb0aeac6ba567251655c0e587d9dbf612b92bfc10ce db038669f091a3fb55034808c478ea0e0896037a1c5b442b8eb5923bda950ff5 72d305439fa14d73563da1105b1cb0dd7feb729e7d02368071dc03f11d647e25 46e5e870a784152f3317900f59f6f8f0d5a585ea6c1a0d5315625c0916906302 df05d68b2514a493918d94d99cb53f6deba91893597a866fa8383288acc52dcd c28693cb63d003a4a3248005b70e35cc45292fbdec55ae303f37ed3cecb8d0bd cccd224b63a6328ebb6f1192e962b4d9c160f30b753a3f974767aa5f8d5e9f11 5f6a834747814afd7f7e7d4e90d46ede92f8a810311bc28bcc0027e674efdcbe 3e40e2378ba1b9d7354e8be4e313322c2aba1e03d2f810cc09b78197e8214d46 6f5531094a7b8cecee5aeb2c693d4b382edf7d9d715d4cd12ce39d510885240b dbf096994f947ebf264ca3848ae72b3a2acf8cf2904a4b5b2fd5a3f590f4a475 25b967f5bcb647a537b6a4bb99be6ba00c9e96a51b2345fc48a8ac1f7cf4c9eb 329915effc052bc6fae5e25b08151e54129c8f5ff8896d0d4ed79b43ed124865 f79622a6cfd362e64e8e88e417a7b8204f133cfcaa7ac70df4b072bd808c6971 a0f2cc29008d5afa6648411b5deba3aac749fba957b0be5dc72696d1ccd3bd95 b2ada03d95bd1c2e7a10beffe96b9154cf9b1ea22c5ad3ed8d79af6df9c5fc46 7aae44e7f8558889afee261b8bb6c43785152943785407b575aa9de5f6c921f9 fa660b14626f5e1034cca473a6a7c16e597492013f9531c67a35fee2e56a2ab1 e4b9e834fab1fe22a52d785dc1995badcc84f2d32e0f9d029eb0ff5eb2e69843 fa738bf19d33087e9c0618371f5098b1e2e309d45485b4d6b37e557baab7152e feebd0b2c10c1a45494853962e0345b6b72967c886c311e47a1e5896260757c3 29d82d254d57e38e0e89ca1d9c746ad36e246978f307be1329914e7862a0f8cc b14f06cff9c03fd6cab3bb4cdedab7f0e1711b3d31b022af53cd82585ae82145 dcd76f76fa2bb84da98a2a3e46fca1d9e7ea0a91866201e08712220cf0d6d5f5 91a3283ee986ec9e7f25efa757a93322d0eaf07e9cdfa316ca5f96169ce85895 407ad045ce86d9f35b49cfd6bf116d22d70aad5777dd46aca0ac938cdb0859a0 96a63b955eb4c8d8666179b1e6d95fb193889028666c17ff613ad70c8e9c84a8 c66cafa7496fefc65a69b94b9ba5e1d5b944b8ffaa613fd3d04cc26796c0a5ba 2d6d6bb91772ca88f254a48ed8acfda7532d98f9d5b7d88cc0b0e57e5d02d327 4be18983b93de871c80dd536b7cbc274729c142a869ca7d6247c769ce44fb92a 90b197da1818303000994e0a6cce0fd6a524b0d5d33802ff7bc6099ca05a77e1 5f5b1a7a379baf044715bb6cc9943e5be7feda7733687e9e7f960594d1cd925d dcc26c02a8f37102c39272fa0dc6fc3f5fb20f81d61131e7dc39e862aac67cb4 bb9db02cea461eb5bc66b3d0b6bd78afd0f9536f5f907d53139b574fd40818fa f3c85343b5b8e77b8d164bafa35075acf022679a99145c46339f12a31bccc31b c17731415fd5a998d2a8e33c4fe39c1fe4d711dbe2b0ffc47a171a1ae9016c20 98f041ce3a0240bed3fd2e2e174a19bf5c396965897b3b64019e4e22130be4fb 6b8f3589719040c2b123716934d430aaec0bf30c04ce6e1980552947d3233966 1f72ec517f6318586521e5d4c45a58bc53530fa66efd6f7ef3d94fcc35afc26a b4dab34757b5933c85717090211219dafdbcbea0d8dbfd99fc05288feaaf19bb e8c905b49e7aebdc42529c6ec1f7c3ed523b399f2a71e61448b8829873afb8d9 d3cdeeafcf60fdeb9c878f6386fb58f180bacf6e99374e89e2704d3e69262b16 07547873c342d897940b8496d1f38e9088ce93dbda7e866ccc8c068fc7210223 1b27bad26cb4eb65dead908f9542a0b68b7a5d0b4ed989a8fc74f5e4d5a1fe2d e408abdae204cc186e0a2b67749500b3f8c51260ea094affc634a4953447c3cf fd2fbc2698bb86143bce8b232722518ec936358c7fbf69effbebdf6c3610ecc5 957fc30ab08d2e2f12ac47ddc6322a710b76f900c3dda591f048886f80165704 1f712a84065107083c0f79ea7fe4f92faae9c9c04cea4384478390f1affd066d 18ec102b5154b78ee8d468a4162c0b3a10bd19e1312e9d8564d5aa5da77f7e56 1b6852c00138225f9101fb1407fdb9ea605c8e0862d81aac19b869af18630b27 38d8bb635ba12ec2461ad673a27aee5bdb592d8bf08da6c14815ea3e59466eae b887ce5b0ec2f54dbdbd30424f317f45c6ae5d1cd6f44316c122ffd7c178fdbb 8a068cabba00c126bcad2f17a454d0810a0533629ff6b1069d5cccd5f5e52d1b 07869a59eaef3456267bf050eeda457c1029fee50b395fbea1dc6d7d7cd18d76 76ed7a78cdda4f105166f61ac728ad25beb547d071e0e515840dc9559551bfdb 454b080cc49e268fdf556161a92fe7d93219b395625eadcfbcfa8a9ed61bd7e6 f42d58a138020f2a69951d2f67641c39e98bb2a4441b0ebccaeab4e731e734f4 136e6b193011bb221ee9d099ba6a23a5f1340a1234a50a4cbbd172cce6cd2b60 15e10de447c4df7db80ab79c4840dff6c7eb06cd931aa58c001c02229220086e c1f2c3544af0a581afb28103ff5ccb7488ba861edccab702611dcf1628f77669 3bb25210bbcafa72dd0a5955a85419c425b9b176ee110f88e341751a56a2dc61 209df3ba68eed540b6df151f60ca61a8a4f93456aa864e179ddab8844290677b 669ccf3a67a2025b5cf5b4d7d2dc7e1e665bb55e72b8d02ef4735d6c68764ed6 93322f99d69636df06023648c22f86953046bcc662d6079ae2c7314bfff5f5d9 bbfe514c8beb08eb4a469c2b8e496671de9227b64ec3a26db6202935f7b92a6d a03d7c9d53126432b6337cccd64c650e0d4d6e3032ada066c9b2b891f5b74900 a9c3b0481aacf53671ed0d841106f05792d76db3626655f8677323d0b5d817d0 e7f0a221493ca7ffa8ad261e9663ea965a3bc82ef4d9031103337a868f80ab46 4f4a0df2f735b25807c9f3268a7e0711ffe63eddad14787806e67ec144ef1d17 083343ebd10a7e9aff9e6c1e349c7926ed0f3d878fa8b13f2904cf4efad6ca39 1bcf1f1f4083e5cee93da0746c5cf983004657c5c8fe4eece7dc424f72866db6 86212292fd27831b68e36bb169ed0df0d23eed7c87fa905de280da096e57e140 69e00680deaf32aa3986d48eea8811c87d7082371d3d48049611253d1d0c5e17 c80a7df4469c54882ab077cc8f0defd8b88232205c3406db6bbb157580bff648 e16b07a670f7fde9388e018153644252dca0a7fb24b50991c2e699c90d827fd9 b5ddf4cb8f2048f8d4476b649727d7654fd450ea19a29e4bd087a073404d6406 58c8f54ff20565298cdbe2a6cce4a24e2861a92b14212a05e854d04aa4bfe13e a5fb10d7736a8f03e6e306d669bc6f6cbb29b34958a8f4208e4b394959fe8668 e540699edffc8aad936f803b2abcf963889c85bc44acf6c9cc2ce2a12716f7a6 37c07d2d6879ce05971c3842d69bd02a41e3da3aa881eff4a38f9997494e922d 550f63938ceae8afd845a348c43f45f3f7173ddff3f885611d402f2477ee706d 8e530fcd2b6ea54093e445adca8c022ee291329e37228c5757270e9f21a5b2bb deb0a0f2d25224b0fb67a610cfce5a7fe61dc6ff049f489f1e15699a229d1555 fa976700d9fa69fb212aaa6d8a7d5604ded821ae4c63f87af0b4272ae421a29d 8801b6025ae855c0b1b978ad52c1a8869d81a2a50f65806fe9627bddede8891d d8a37af1dfa7cd7293c3938d32e410bf39437bdf149cd0ceee8809e3e8bd9584 aa3588ba05f51ed661bd48a1e11feafece70752b7b9ccd8b590afd25b0d91843 189c395e9c3409117be9784048bac366cda47f117b9260318bc8a894045e5bee 3a1e39af73458bd24b269b5ff40b96abaa885d1e895447297375eb8493d7282b ff7bd2b53ef951d02283d782e1bbb3068d2bfdaf811b6d4dcaf4b2a962783e12 f9f6b211bd4356914f3e3e7a3dfee75d69123468815e6fc7bf6e037fde16f129 ff01ab1eaf878bb0a12620a9aaa6907c4c88c18390d11553507d8d58a9ad0e51 a34ab4ba2e2128ad04deb5cf7d232d245ca20323a5b797b566ff73fc6dfc8bfd 262ca73f501e8d62b807cf9239e32740a2c2c7e6e3b3049508cfa7bfe22e2795 c469e5aa2c2b944c62b734b983024ee9541b60b9e9dbd27e72625f6cfe218ff9 417a053298ee1042d72f2749fd4b21d6afbeca64cd21722628dc52e8d9a675aa b4378ca91ee21bd5e41d78f78208db17434eb55be3eb95f8e69957c0ff3ad892 bbed02be41e9b29d6dd30b94c0a8a0c3a23f5e1906a2930b434e4520148f17af eb3a6f22d2bf6ba1f23c3eb89b66e14f20e409671c4b65f80490c8a3c60bae6e 9a2c69f153ae23b4117078eea05b7c40f0b484c8d11ee2b563533b23166b760a d3e22fca2b5b5667b800ec7037de99a585a7081d565eb61f8e7641f58ac1901e 1030da028db2ff84da46b251061212dd2d90194e5a8f64edd40a2fc547d5ae86 86bc73ff0a665456746074519505db6b1a96042b1674d89e1b00329deab4d97b 86a8d3edfc29fc47971b2e19dc715fe9a3369addb725a8f4b14094a4bd81b77b 5bb38ccbc7a8e1647767d3d660dcd19bcd09c1e5f9237ec7d37ee1930df5f0f1 2d0881eebd0cca2fcd994fd445ad2e620a7386c3a10d7dbda53d5893c4fa70a2 ddf4d0d5af1be8049bd3a57a580e5fb587eb5e3d0aaf73d40ff2134d17ef736a 36335066a493bdad7b4d5540a00cee82bf1b1832eb9c06325f7d2591bb1f6a2c b4ddfb4df9814dad3c9a59b05d57d8be208810831fb650efd8bc629c4c006e9b adbf2a6d0bc51cd88c47b6518e9183d9f25c4de7c6842f37cfd0c44518bcca18 6cd7d8709bfe03d9cac1ed9e19e0119ec41b6028fc2870e465ef7c24118ed54e d81de4113e04a7c4eca75d5c9f460324a84af18c3950b5d253fc11325a15af12 0e36f90bee4787a175c6ab7c1a39be8ffe1324a827028101243f60844594737b 7f597005909fcba78840e6297b099163a356c77032055920da96bf7374a5cd38 f71a74a4cc74c33d1be512f1a1af7aafd876e1d5eb115e945adc76d991b13bfe 165ef522d5e6b85f8da52053f20ba774670ba913e7fa1cce03293a4cbb5a8969 6572e555aa0a83fca4557954d438000d29bfefb09d87962751c77f15793a83b7 cdc6e6f0c4d7fad961d4ef287e00d44a1f61ba6fc0786c13ed8a2550a1914ae5 f1eb15a53984f208e755a9ee908a48b8038d0c219aeadbe303c2cf28c6d7db63 fd1777db279471c852890d0a018d7660617a94911be483486b2c3be1fae8070d d929d68c2356d58d84986662ce0e783e27852b4afdbf8c97f1e47672a96aa0ac f8ee51676e0be143cb4dae6cd40628d0b7012f1ffd638b14f7311f33103fb53b d91e689cf8b6d4930fb4da13bd6343f97e51613b9e6ca03e2fab85f12b1cd835 1078b58f1b82be751a2dcaa1907b2b7bec05ddc488d7388e9d1b29543de2ad43 6b75f758b144fd7b93a4e3876dc06010507f3e7037f3f8f078f24fb5972f7e73 5922b8942dc840cfa4e3d713026fe17362a47fc060c7282a9f7684d89921e1ac 2963a1cdfd4682857b4285e68483576bf2a05491d74a390dd017a95d0ebbe786 8250bb41eb0aa7226bde3a4dfb5b27d7f97421029f2bcfd26fc1a0f3c256b9ae 837aa46745d5de4c5c275ae1f625630648840e9fd199a3c4d00262c696bcfbe0 8c7870e1d46c02a919e381d27455dd4ed5049d33eac72c56810409a6cf74f242 d35ca15c50cd05b546e643835cccf8b8b7ab291bb362bfc92bae2d06c815d612 309ecb8d79321f1a633a934d61a4a0c873637fc83695b61135748ec860785f60 6cd96e593035ccb3103ef1048ea34dec7e52a185915852151dbb086768085f47 9e89ab18c2cfc112b6673118f12d7665c5adaa6853eb08b0bf6061e0b8a0adcb 86e2f9be796a4586cbba8946c9a797aa830858ac6358c4dc5ec98d6e3653ad65 8428f17dcd36cceabdd86e4a2ae4792444b7daeb08958ec834d699e4f9e960e8 5a883744174e66c192f05ab50e2d7978325436b90e06d67fe84a1010b3ad5e36 3a477bcdd07f49becc828dc7f48fd214fb139b57a237ee1e3668255af55a4135 ba74aa557ba6287fa08a4805235fbf4373ec0ed49aa31fa3f99f990f2ce9c12b b54bf5b52f80dc67e494b0958f473f9d0bff8831a33d17dc910b6dd45bf2ff37 b1eb44f40972d710a0d19f6046afe4484ad2a48412ae185ca10c3ac5cb192edf b172b5626e7023012a6ea10d9c8d749b0d91c563c2b9c025fd7cb4ccacbc5478 5bde2cb58d942e2c9fc3e4b22703c1db47f629ab36088cde1105e7a8c624ff7e 01d26899399ff91f4f39b1150dfee69f465f44a9f289c78fd050d7bf66200a93 326acbef82918a3bc1829452b0c3a5bf15b974cc4c85b9aa0a8e9e437819a8af 5ef3df8c5f451e7dfb18bc2cae853988b550dd963c5f150324f5348bee3a5709 c15026d9b4a90e50c8b0b8f13a46e63744e95b50f495ae6c30a612643316cb42 0a737e142d8fd6322a635641bd24afcf438b121b178d004bb29fcde186f9f873 b8172f44a6f75622d9d64b07b998d220bcde05d9f2839328105bd016cb80730f a67fcd5598437d21f60b7b184d1ca74e661a3b3d100ec7f45839e96e0fb74c39 faa05e9905e9074a8825683cd47f9efa112c3891cf8648e418f237c923208fb2 bc20674bef2cf1de80fc61c3e30669c9b01976598849fe3d9155920ae3c009b7 a7f9de4589b512b6219900c73731245412952085c619563c723d61c0270b2a94 9340b5d26323bb7857e6eff428f18a49327242a5e7e4ae7ffa30e9385a02a454 9edbe201c62fb7a47d1f217947eec329a8cf4ec750190bb8989aa848fc3762ee db9ec2bd3cb7221bb4fa7654046fe8522e4768b5b01197dc84d4f868bcbdf293 282da8a907a9ae670b6366bfbd07ef6534127eff7a7f99ef5441f750a7f0fdd7 16ac827cbcee87ba2c9c3a4e4fd9e0ab389af7a9d524dce404a46d147607dc7c cff13180b64a7ff61d4fa6b82ed0736a251f5d912d96569c2e454f52190180d8 614a372969c52351ac3dd829bf24c08f6bb5bdce3dc7cface8a3ac69b2c54a49 f61fcfaed3b3ad2e266a2099e19a9b6275f8e27769f0b4c13aaf831a0e9dfbb6 18c83d8a278edea2cd628326ad659f1e1cc456d98916f0c6d1b4856bb1919f4d ac7adddb448825967ae9a1c158b1f601a7efbec3e76bfd7869be9060622770ea 785279366700c330843b3bed717b82003c5569330da07c8b09ecbab3b013f084 6a314a8a7bf3f03727e91e3c60bbfb7cb9ddaa30f5de85da4d2dd4911c9c61da 3767f9c533c58748d89f96fc94a25c89d0ef1120d3263568a911f0978a312a7a faae86dc56ebe5af19b0b25c2df0947caf214ff95816b017481ef9e3ba594bbc 80bf7e3e8aeb52e397022b93ab95957753a094b1e52bff8e3d7f0d04a17cd286 e274add583659138334576917cd517b0394969603e833ea4de0c5b38c84c0488 1cd8c904f7b3da660cc12d37945325bf9f06bbace83f1b64fd8f997563ce8efb 82747a72c81691f88c898f11ea2c054aaa6bbf514cfca02b56cc99e5dff1a481 94fe5039ad6acdbef5843c8e4fbd04bed9d9b6af1420fae38cfd1772b2e3e1cc f7e4450a01668388fc4ddab08cc24af6bfabddcb99712100c58ccf5e9c9a17c5 e40d316fadc3bfa62294a091ed266bda81880f3bfeb6f6cb9f8c9ab03c73ed64 52ad9eeb2d3ac8635cd9d2459b2c2d34f952bd75def9f84a60be2254409d33dd 04ca06b44cbb8c4586ff98376b6aeef2fc171b07786381dd978e4c366345441b 280c8d25c53ed779369e14f6d7066db2c7dbe003500314505e1c3671fc3b0ddd dee36439ac826862509d543302c387d54cebdcb6a5502376213596596380ba14 b7880a934ab08a6abf6dd4093dec4128c8082f3d92b5d2d92cc286268f1be343 312773834d2d1f8433d6ad2a938859502d867dc25f0cd96e98e4bf4de131dfb7 a510583fba93ae8718a1f89d60e5b5ec026d91d28ab3e9ab81d44f8b010f1138 83325a09382ac02e6f7fb07fa95f90c75d2d926c8ba15701bb16f608b91478e3 bbe8762c90ec7d507f9ea95d4c3f46465a2331b859db5d6cd9b590e1130c4681 297cf28679c41a91175d4a5f4c580a1de13371a453bd5e0d38a0b7c0807f0db0 2deab94fb7aa3c7f3138042ae532fabdffdf953b8feb36631b29f5ab0bc0438c 5f9ab0ed3eb87ff056c5552083b2cc268689be24162942776f59b7f9e4f5b41f 81e5c947ae042d24df262097bb9218842738845fe30e36afd81ccf6e2c90d34c 5dfbda79c932d4baca44490de00b02ca929433e1f25000ccf537d144ecbf943a c21727920d9beb432402fb17ebce944da34f6fcd02332c53ddc0c3cc2536cda6 7f80282b423be2e01a464d062226b47b9cb5b4e45bd5079ccef3a064af2aaba0 905c5f1a3a9a333bbcae9123c29153710fc66fcb65e318ac005e551729143d67 da0dd0c698dd7e387844f603cc17451bbb725e2b531a85cac01ec08bf1b9ddef a0f9483de34ce375c835aa613b2f289d124087071ed8b4a37a0aff1981a10b02 fcf7281c0d03a84feca7443b91ae6653659df5e26fe1e0d5927daf090bf54fd4 e730348d1e83f6cdd345b5331906d30858b8944043dd5ac14859db6e68360a18 c7fd1b027d91a14312fc35a30dd12d6983fa9d9526e0559bfc376385715da2af 4908b2b2ee3388cf1fd9b7bbd5da15434739e2f12f44481527dec6241d7dc090 79ca05f15d5aaa3507ebb89e0bf0bdd55f45fad40756621200e4b883facc6c00 c0f6e41068e0a32547afe4dbc0be8e5e57836d47d81f746a931411c615a145f3 afe966876ea51677709da171d16671ecaeb08c8e5799102210c7c0e4b2083148 0ba6de1793b208efd7e5b958b04840c57b7042fd3cf0a7912e238315325f665d 458e6158aa22701949facece70812472f30bf5e8fc544ba99a643876cc41ed10 48daeeb69ab01af53d9018687bee2bb47b6d4acdf1ee04a46b1a488708eb2cf5 7733261d6453d095af9549b122c6e183b76cba9def22cbce32c49dc615c0988a 428dae015300fac0988ca0c6c710de1cec4bd2686562dd31c73d70bbf2697942 7bb004e3b5e0039fe7f069073a17144ef3301bdc8b2f64bf80e69378dfe988f4 bf3fcdb94b79673c06452035bc0b82acb500b8611a958a7882bd4542d895fbf4 a0e0ed758057bd468c31e7a746a72ff9360340bab2e50ee83f152cfe04d8fceb cf05f7198e08ea12f9b2b15f79a2c7c20025664b25dc6cd3866641dbb5b638f6 cf50f20f6ddd40cfe3ec12be71746d38f82e71cb2fecbf616bf275e9911fc886 c8dda19ae13c8359a162e7a5d643867c138b7a27af42cd13dbeb39675fc9bedb f9ee5af9bef261dfe00b7a380866f5146460f4326c02591ff735c6c5edb7d2e2 648a99d75b0c6e56e58e1ab20eb30c26df1cbbb93539de70fd5109089c085dc9 86a1149ce85dde78d04629e2119c3b1defbd74348ee124188aa072c646eb4369 61c2af77048a217f8a87d0c1be164877e38905b9c64c4ca7bb245e3f42604d2f c444db2c200ae6dfcc4c121137174bffe00b8cfce8387ee395c9e2d7796d0b65 da7a0e628f11141f1464b641f82a6d647a706189d18d5a400229ec79fa6e3c1e 561a53f006ffc78822f0a7e8517a920265e4ef96615ee775c1ab93d839dc4fad 5dcd0adb608f0d3812be8681e0b59f084761d99de6b08c026005ecd0ee54508c 238309ed46163b5fb393891d90d8cd03ba417a04d6784396e7e8d282a3b84431 df3f324c703a4988c50004c716bdb31e4eadcc915e78a6b1898026d2dceaeaef a6e82b0ee80fc15221de932095e35adccbcf4ae515b504e4763ad46ca8c568a5 e2605171ad638caaeb21a80cb5877e2da5f053c3ba0db377121a6798d59ad99d fab5488cd3b25bdd8b3a26a3805ede14114e72b50c9c8fe2a8c6384aebf27dbd 5df066b1f4476f4b9d457018fbb57c22622b9e4a3cffb970da1a887bcae6123c b46af62e50ec8ee8fee48fb97f127897313af992c2ceb38b2e7cb704b851a492 5fddb642aa7d5ff2db9dd54dc1980a33df42045e02a2ef62748384a976fc35d4 702aadaccbe7cb9752d28c3a9d15fe8389c92c21ddabf3cba6b69e857565df1b 0139de5682df570e15411924a259f42a86a3d4d2d28c28252a66eedc95adedab a7c61857886af046f66f314880e161176f93395cde18578d7d7596b8c3422841 5fb26419e6316192efe069e49d948fba20bc602f81030806a0665c9cb9ff1449 9ddc0b5fec5fe41f09092ff543a6557b399f57b9bb39ca2d86309eae7c9f91a8 3fe58466c209c521aaa358aefb0b07a8125ab587c4f15fb38e6493fffd24f615 492759cf86fe0caf7049c448929bba2ee8be67eaa0e0aaa9b5f636917cd01d66 897982861ee57528c388adc791cdd1a857949ee4906ac4e85962866fa79d529b 7544adbe7fd7d6bec3fd3ce6bf589e6fe7a9f41962769bd41ea21b3a9e258fe5 a5f8a6ce8ffac7016d5b2cd8b5f46f9d53bcc33658f5b23a851bf6803519da02 426af58a0790a33efdb65e2d6cd034c264d1e1c18d6c8b0ddb845a4bc0425329 88b00ebc782cb7c99a9fa21669a752e9e951c24309317da475601ac02d614bb1 d16d3fccfe3d2f6535b7770dbbc7a7a44055fa5aee59ee1e83ae3af53c138e98 7a5aba2257e904fb80fe99f6c98394084b3cce03dccfb9279fc1fdbd19472b58 d8e5bcd8a3a7a3a5db4f5b50dc8e1ab20629f13d610a751b8a3609e782a2d9e7 e9e703b5726a50229a3a479431c3640efedec0f5a84b217bd0b7d62071520179 895001bb04a291c250a79f6e4ffb1e121f880872e5557cf73b3d5668b7cfb285 f51310968de06ccee34bde0e84275f5ab2a72bc3f9a63f48f8955681f615f091 c95b0e944030a4ab48a511b48015cbe8e01cd6322a500b702a9f85900e1ae8c7 b98db59f0d6d8d73d546f1409d93689bf313e812bdd928e05b5488d9cb66b738 3408a5815a170e93fd30f68f82818148a0bf8786d6bfcd09442046fd9748401c a8d7e4598397eafe105882d035d45d1d6ec61079de963db02500e255c774e8bf 307bf9371f54258aa40237d5bd1581008a9875e30abdf7da39cc41ef4677662e 3f98d02015c91f234a541df1958cdf067918d71d054da3f3d3ef37d193690dfd 9d6a3212a0422c96e7b40e66b7a243a7acfcabe0c5466e7c0d425d228586864b 772d5a2b0912b061ce0d15fb76728df33e5c42b125a9fa7d5fb443d54de43df7 a47a0106a80b7c2823bf7060a7e3e81e0cb7d7442057e93b6f38593b900b4e52 1a0113c06ceaa6e5d632c7c5e9492ad0546f85313238d39bab419ab657d04ee0 166667660ae8631ade889d60972b2908a6ca4c410e8c06451ce1eec3ecfa092a f30b6046756ab995176ebee3683ba8570d69ca581b52a81a21322e744792df16 9f035497dee5701193d55350b11978cf074444691b5cc3513a3cb8eff7f067f7 96edee530ddd825671f5bccbafcc30718a1902b173652e114862815fd0ead797 88362354737e832fa7dd46fd76f8e7b140d84053ebe209b5e9556b2f723ec229 3424d02f8da40f6a4c5ee291b658eb17408bbb2bc98689d0826fdb41428ee6ae 39475c480489083bc7b7f606f68086b7b9b205b4e513af8b73da6c2d0f3eb1ff 70d97d205532cc0bd6f6d4f4fc37ae957a48353d45434c7257051b263b82333d df2d8acd0b7c7bb6b8ad9643bc1fd0b5eb0732776022d6213932021a08f0734a 3b35694705a828587bb9c4196dfc4059a9837e7c46dbe6153def24dba61d3f25 9bc5d63f030fd860e9801dca7b81d0d4dc3d8c4cbaec3b9a769fcc09d7fac8ed 4c046e0b64bb8db2bafed5c91b39fe0885cd5e6bb5fad3917d664238c4642fef 6c4c554296df92a9563a29430485ac48c2a0f02ad39398126843ba348005aada 3cbc9211dfeb94a6d1b4b14d7138d4e2583d721bc9595e05c733043ba6d86f91 5dd250546f22f9746df5c4ac9f99106073336949dbdeb1ed3dc746587c1adfd8 48dcbafe2cf0c204c44793e7892ecdb55c246cecce60f467c2991989f5be9d21 4d72a888116d8a945376697b5d7034d62a680f9e91011a57b797d9576b043d1c 4b73666a7275e93a3b7b52feb6e8424f19a4914d4f4ce621efec308d83ba912b 7f5e0089ad1c15175216c27afef512f05312e2bee6c5778c5625354b9b3c70a6 2923140eb3f350d73d06ab95c5232a86199f41695b6cfcad052a5dc27d0705ea b4c94332d917236dc24f52172c94e05c3ff9203fbd34c13ad9d9e076dba1e23e 47bcf2c96a1c8b3ffcf2419f7d5b47795d9d2923fa5905b5ce3b4f332a89c5da 71afbfc57de12ad8d8678d1f67c1898c18249faf4d9f427019445425a11fff30 9164be83b0594c5f312d653513ade66d5ddf29738cb823bee179ff864d01a740 f759f64e5ce1d82f7841118b263929951fa7896a87c7949d9ffe0c5c5fa07fc3 e3dd043a9e4ccfea80de6ab6f460c46f852753220acc9645419b13634bf351ba 35a1126d0164e6e64518a2ad5522a73fe38612a34cb6671c48bc18c919305bfb 35c57b0c8e221fa7519d5b1d6d168d8bc0375d174eab1ae6e9e44fbb7d9ca6a2 f04c813f119939714322cb87c693a2499c9c269bfda53c78e7f04c775ad407be 49f8679e345bef9d531654e2377e61bddfa4f8aebe5bb6dd862d298519bcec25 54c40969c9d1fd16e5a126cb22b8bd3976f68ecc8fc8dc9c0fbf51dd20c839d3 b921da7d0aeb93aedc761f31f3a3401f83be4d38169ab5368ff41481d638736a a71f624adb3c4a275e6b353f139e089f0e02a27bb003c8fa5eba4f1b989b3282 8dd8d049529a84b2727733df2790637e437581de00fd5aa03c516360e4644d55 aedaefa76f7f729dbdfe2fcbd2c05dd593c74f4eea31518b09d8bf2094354040 c260b7b4bc3a6238bcb61b03e6de12e3d63be9f7b5f34441d9a44304911eb92f 93107eda8946de92bfebacdbd2d950d92150d1f831d6829fad5d62c75e5860d9 cb3e3062cf867305a0ddc020bf4bac7a2d899a9481a391152151857cd53a97a6 6f7cd99c190f119185d33e49f6ab5ce20e61540b21387358f1233d2b39e69924 7ac33ac73e337a1a54e9d574ba856e0d3cd7267483581dba9491619f91b12996 d1c33f89d5dd6407bb98323467e9a6e3be4afc06c5006e19ab8ad06b0a01fdd2 ad742bff310f17f16193d7ab584c71c34372690521e0afbc4e6051025ec9a4db affc01120edf545631e4fcc2a65c488f25f640260982b7458f83125581d36f18 55ab4d823dd44112967e4fd41cdd60d6644617a638ffd5c9d89d2a95bc4b1b9b 8178777184d48f314554a19a444fdd509ebd345b19a411bedf5a0f59e9c4dfd5 6facbb6ee71145168e06a6049f1e2b0e3f91ff26a2cce2db8a256400876db370 17cb684540eea84942aa295cb079951554614e45f8d0910e15093aa1d4877c3f 543f0957ce9074aa051182c9ba6cf64058a403cc63cad5335f51aa32c76e3d8e a3677bbdb623c2c5febec43e5490decf54bcf7d9cf35a4e5b9ab5577649cb61d a65b3fb13156130c55b44a78849ff4d84136f8ee4f2a368de63f5799c822c3f0 b27770a29973541c4e137774fa958c0ea6227a57610bc6f056662ab2f7ab4aac 6893826c13d3147b6fa6075cd4784cb799cfd972d9566227db5b25bef8641534 6fb8cee4e06dc0fc49be6237a2720e3f9b7bc7f22a0a5ff2c276c2aaa00ab372 7e59f1642709f1216403c0f694914e0be6c5165b21c1a736bdf04da8cd699fdb 1b9e1553a56314b73ba74d83ccdb0723469ebe15cf10d7bb4d16f1c0878ffe68 f015da3e534334f53a2591d30199a0ccfc0f3a239559e4d0c7fa1fca44442141 3bc003d6be7ebf1e9affec62467e98ece66bb2216b4cb5ce45113e75ee023635 9a3ca384d603136fe5b5da21465e6d406931020d030ad932cbaa597e170298b2 12b15b8434612b12d13844a3e5a46597b4c26148a3d6f5c42fe2d949dcb64b40 44034791b7d780f75d119422d56fae911d5ec40189a4957b13b9b75d991ba190 fd3944c8ea1b756747a0b14492b04053dab4418ea5a96e1b6b12ccdfe739d392 d023e003e0463dfff9ad29e5a0547d5101e9d6ecb59f376860952fb748d15b68 1070ba9d08b9436b65b80b20d7c6b65e4476553338f9f17dafb46471d293de8a afe9d55d30c38a475b9e8d00d02690ce3562ba9583038b5fed7940cb4d7cd5d9 79e2532f65689847 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndResource %%IncludeResource: font Times-Roman /rm /rmX /Times-Roman inf %%IncludeResource: font Times-Italic /it /itX /Times-Italic inf %%IncludeResource: font Times-Bold /bf /bfX /Times-Bold inf %%IncludeResource: font Times-BoldItalic /bi /biX /Times-BoldItalic inf %%IncludeResource: font Symbol /sy /syX /Symbol inf %%IncludeResource: font PMW-Music /mf /mfX /PMW-Music inf %%EndSetup %%Page: 1 1 %%BeginPageSetup /pagesave save def %%EndPageSetup rm 13 ss(Mahler)285.228 760 s it 13 ss(Das Lied von der Er)206.279 747 s (de)-0.481 0 rs(, )-0.13 0 rs rm 13 ss(Der )330.598 747 s(Abschied) -0.715 0 rs mf 10 ss(!)104 700 s(')120 706 s(')124.5 712 s(!)104 634 s(') 120 640 s(')124.5 646 s(!)104 634 s(')120 640 s(')124.5 646 s(") 103.5 576 s(')120 578 s(')124.5 584 s(")103.5 576 s(')120 578 s(') 124.5 584 s 16 576(@)104 700 b 0.141 97 613 br %1/5 (\()142.15 574 s(4)146.4 574 s(?)154.8 576 s(@)230.583 576 s %1/4 (\215)136.6 590 s(')140.1 588 s(\216)144.6 590 s(5)146.4 588 s(U) 147.4 601 s 134.4 598 149.4 598 4.5 cv(\()163.233 588 s(5)167.483 588 s(U) 168.483 601 s(\()184.112 590 s(5)188.362 590 s(U)189.362 603 s(\() 204.343 592 s(5)208.593 592 s(U)209.593 605 s it 9 ss(4)178.496 616 s 176.996 619.15 145.9 619.15 2 145.9 617.15 0.3 ll 215.593 617.15 215.593 619.15 2 184.496 619.15 0.3 ll mf 10 ss(@)230.583 576 s %1/3 (4)146.4 634 s(?)154.8 634 s(\()142.15 640 s(4)146.4 640 s(?)154.8 642 s 16 592(@)230.583 634 b %1/2 -1.816 225.234 654.002 152.25 664 m -1.816 225.234 651.002 220.234 651.687 m(5)146.4 648 s 134.4 654 149.4 654 4.5 cv(J)160.524 646.066 s(JL)160.524 646 s(J) 174.443 644.159 s(JL)174.443 644 s(J)188.362 642.252 s(JL)188.362 642 s(\() 198.031 640 s(J)202.281 640.345 s(JL)202.281 640 s(?)210.681 642 s(J) 218.984 638.056 s(JL)218.984 638 s(@)230.583 634 s %1/1 rm 10 ss(- ses.)138.4 690 s it 10 ss(- len.)138.4 680 s mf 10 ss(') 141.9 702 s(3)146.4 702 s 134.4 718 149.4 718 4.5 cv(-)203.281 704 s (@)230.583 700 s %2/5 (4)244.392 580 s(?)252.792 580 s(4)244.392 584 s(?)252.792 584 s(') 235.142 588 s(4)244.392 588 s(?)252.792 588 s(')239.892 592 s(4) 244.392 592 s(?)252.792 592 s(@)288.605 576 s %2/4 (@)288.605 576 s %2/3 (4)244.392 644 s(6)270.046 632 s(U)271.046 610 s 16 592(@)288.605 634 b %2/2 (\()240.142 652 s(=)244.392 652 s(3)244.392 652 s(?)252.792 654 s 226.984 656.741 247.392 662 6 cv(@)288.605 634 s %2/1 rm 10 ss(do not hurry)256.594 721 s(nicht eilen)256.594 731 s mf 10 ss(+) 256.594 708 s(@)288.605 700 s %3/5 (\()298.414 576 s(4)302.664 576 s(?)311.064 576 s(4)302.664 584 s(?) 311.064 584 s(\()293.164 588 s(4)302.664 588 s(?)311.064 588 s(%) 297.664 594 s(=)302.664 594 s(4)302.664 594 s(?)311.064 596 s (@)375.091 576 s %3/4 (@)375.091 576 s %3/3 it 10 ss( cr)312.664 598 s(esc. - - -)-0.37 0 rs mf 10 ss(4) 302.664 632 s 273.046 630 301.664 630 -5 cv 247.392 630 300.664 620 -20 cv(4)336.209 640 s it 9 ss(2)320.436 611 s 318.936 614.15 302.164 614.15 2 302.164 616.15 0.3 ll 343.209 616.15 343.209 614.15 2 326.436 614.15 0.3 ll mf 10 ss 16 592(@)375.091 634 b %3/2 (=)302.664 652 s(5)302.664 652 s 255.392 658 305.664 658 5 cv(%) 314.506 650 s(5)319.506 650 s 252.392 668 322.506 660 8 cv(5) 336.209 648 s(%)347.912 642 s(5)352.912 642 s it 9 ss(4)328.788 670 s 327.288 673.15 302.164 673.15 2 302.164 671.15 0.3 ll 359.912 671.15 359.912 673.15 2 334.788 673.15 0.3 ll mf 7 ss(%)361.591 656.6 s(=) 365.091 652.6 s(=)365.091 656.6 s(\2017)365.091 656.6 s 355.912 640 370.091 647 -6.253 cv mf 10 ss(@)375.091 634 s %3/1 (+)328.848 708 s(@)375.091 700 s %4/5 (4)384.65 578 s(?)393.05 580 s(4)384.65 586 s(?)393.05 588 s (@)428.083 576 s %4/4 (@)428.083 576 s %4/3 it 12 ss(s)365.65 598 s bi 12 ss(f pp)370.318 598 s mf 10 ss(-) 385.65 626 s(%)396.404 628 s(=)401.404 628 s(4)401.404 628 s(?) 409.804 630 s(U)402.404 606 s it 9 ss(4)394.527 603 s 393.027 606.15 385.15 606.15 2 385.15 608.15 0.3 ll 408.404 608.15 408.404 606.15 2 400.527 606.15 0.3 ll mf 10 ss 16 592(@)428.083 634 b %4/2 (%)379.65 656 s(=x=)384.65 652 s(3)384.65 656 s(?)393.05 658 s (@)428.083 634 s %4/1 rm 12 ss(33)375.091 722 s 388.491 720 373.091 720 373.091 733 388.491 733 388.491 720 5 373.091 720 0.8 ll mf 10 ss(+)398.587 708 s (@)428.083 700 s %5/5 (\()432.892 578 s(4)437.142 578 s(?)445.542 580 s(4)437.142 586 s(?) 445.542 588 s(')432.642 590 s(4)437.142 590 s(?)445.542 592 s (@)503.995 576 s %5/4 (@)503.995 576 s %5/3 (=)437.142 628 s(6)437.142 628 s 404.404 626 436.142 626 -5 cv it 10 ss (espr)453.886 643 s(.)-1.11 0 rs mf 10 ss(6)453.886 630 s 404.404 616 451.886 622 -10 cv(6)470.589 632 s(6)487.292 634 s it 9 ss(4) 463.217 604 s 461.717 607.15 436.642 607.15 2 436.642 609.15 0.3 ll 494.292 609.15 494.292 607.15 2 469.217 607.15 0.3 ll 490.292 632 502.995 632 -2.81 cv mf 10 ss 16 592(@)503.995 634 b %5/2 (=x=)437.142 652 s(3)437.142 656 s(?)445.542 658 s 395.65 662 439.142 662 5 cv 448.142 662 502.995 662 5 cv(@)503.995 634 s %5/1 (+)463.039 708 s(@)503.995 700 s (FFFCCCCCCCCC)104 700 s (C)493.995 700 s (FFFCCCCCCCCC)104 634 s (C)493.995 634 s (FFFCCCCCCCCC)104 576 s (C)493.995 576 s (!)104 522 s(')120 528 s(')124.5 534 s(!)104 456 s(')120 462 s(') 124.5 468 s(!)104 456 s(')120 462 s(')124.5 468 s(")103.5 398 s(') 120 400 s(')124.5 406 s(")103.5 398 s(')120 400 s(')124.5 406 s 16 398(@)104 522 b 0.141 97 435 br %6/5 (4)140.85 402 s(?)149.25 402 s(4)140.85 408 s(?)149.25 410 s(\() 136.6 412 s(4)140.85 412 s(?)149.25 414 s(=x=)140.85 416 s(4) 140.85 420 s(?)149.25 422 s 143.85 402 179.85 402 -6 cv 149.85 410 179.85 410 -6 cv 151.85 416 179.85 416 6 cv 143.85 426 179.85 426 6 cv(@)191.913 398 s %6/4 (@)191.913 398 s %6/3 (6)140.85 456 s 129 454 139.85 454 -2.255 cv it 10 ss(cr)156.293 422.5 s (esc. -)-0.37 0 rs mf 10 ss(%)154.293 456 s(6)159.293 456 s(U) 160.293 434 s(6)175.603 458 s(U)176.603 436 s 16 414(@)191.913 456 b %6/2 (=x=)140.85 474 s(5)140.85 478 s 129 484 143.85 484 3.455 cv(%) 154.293 478 s(=x=)159.293 474 s(3)159.293 478 s(U)160.293 491 s (@)191.913 456 s %6/1 (+)156.956 530 s(@)191.913 522 s %7/5 (@)259.396 398 s %7/4 (3)200.629 394 s(?)209.029 394 s(@)259.396 398 s %7/3 it 10 ss(- - - - - - )194.629 421 s mf 10 ss(6)200.629 458 s 178.603 455 199.629 455 -5 cv(\()211.108 456 s(6)215.358 456 s(U) 216.358 434 s(\()225.787 454 s(6)230.037 454 s(U)231.037 432 s rm 9.5 ss( ) 246.53 424.5 s mf 10 ss(')240.217 454 s(6)244.717 454 s(U)245.717 432 s it 9 ss(4)223.673 429 s 222.173 432.15 200.129 432.15 2 200.129 434.15 0.3 ll 251.717 434.15 251.717 432.15 2 229.673 432.15 0.3 ll mf 10 ss 16 414(@)259.396 456 b %7/2 (%)195.629 478 s(=x=)200.629 474 s(3)200.629 478 s(?)209.029 480 s(U) 201.629 491 s(@)259.396 456 s %7/1 (+)222.654 530 s(@)259.396 522 s %8/5 (4)265.512 400 s(4)265.512 408 s(4)265.512 414 s(\()285.727 400 s(4) 289.977 400 s(4)289.977 408 s(')285.477 412 s(4)289.977 412 s it 9 ss(2) 278.744 379 s 277.244 382.15 265.012 382.15 2 265.012 384.15 0.3 ll 296.977 384.15 296.977 382.15 2 284.744 382.15 0.3 ll mf 10 ss (@)314.442 398 s %8/4 (-)266.512 422 s(-)282.822 422 s(=)298.132 416 s(5)298.132 418 s (@)314.442 398 s %8/3 bi 12 ss(p)266.512 446 s mf 10 ss 16 414(@)314.442 456 b %8/2 (=x=)265.512 474 s(K)265.512 476 s(KL)265.512 478 s 211.629 484 268.512 484 5 cv(=x=)281.822 474 s(K)281.822 476 s(KM) 281.822 480 s 307.822 453.5 281.822 450 0.2 l 307.822 446.5 281.822 450 0.2 l(@)314.442 456 s %8/1 (+)283.919 530 s(@)314.442 522 s %9/5 (4)320.558 402 s(?)328.958 402 s(4)320.558 406 s(?)328.958 406 s(4) 320.558 410 s(?)328.958 410 s(@)457.258 398 s %9/4 -1.8 430.887 438 326.408 438 m(=)320.558 416 s(J)320.558 422 s(JL) 320.558 418 s 306.132 424 323.558 424 4.227 cv(=x=)343.086 416 s(J) 343.086 422 s(JL)343.086 420 s 306.132 434 346.086 442 6 cv(=x=) 363.474 416 s(5)363.474 422 s(U)364.474 436 s(%)378.862 422 s(=x=) 383.862 416 s(5)383.862 422 s(U)384.862 436 s(5)383.862 412 s(=x=x=) 404.249 416 s(xxxq|q|q|q|q)404.249 422 s(qL)404.249 426 s(U) 405.249 436 s(=x=x=)424.637 416 s(xxxq|q|q|q|q|q)424.637 422 s(qL) 424.637 424 s(U)425.637 436 s(@)457.258 398 s %9/3 16 414(@)457.258 456 b %9/2 1.829 354.43 458.005 321.308 464 m 1.829 354.43 461.005 321.308 467 m(=x=) 320.558 474 s(K)320.558 476 s(KL)320.558 480 s 284.822 486 323.558 486 5 cv(\()328.642 478 s(=x=)332.892 474 s(K)332.892 473.768 s(KL) 332.892 478 s it 10 ss(veloce)343.086 483 s(cr)343.086 448 s(esc. molto) -0.37 0 rs mf 10 ss(=)343.086 474 s(K)343.086 471.923 s(KL)343.086 476 s(=) 353.28 474 s(K)353.28 470.078 s(KL)353.28 474 s 1.833 395.206 453.923 364.224 459.902 m 1.833 395.206 456.923 364.224 462.902 m(K)363.474 471.902 s(KL) 363.474 472 s(K)373.668 469.935 s(KL)373.668 470 s(K)383.862 467.968 s(KL) 383.862 468 s(6)394.056 466 s -1.833 441.081 474.021 410.099 480 m -1.833 441.081 471.021 410.099 477 m(5)404.249 464 s(J)414.443 462.033 s (JL)414.443 462 s(J)424.637 460.066 s(JL)424.637 460 s(J) 434.831 458.098 s(JL)434.831 458 s(\))434.831 479.063 s mf 7 ss(=) 447.258 474.6 s(=)447.258 478.6 s(\2017)447.258 478.6 s 437.831 455 450.258 471 -5.728 cv mf 10 ss(@)457.258 456 s %9/1 (-)321.558 526 s it 10 ss(appassionato)344.474 542 s mf 10 ss(-) 364.474 526 s rm 9.5 ss(O)403.82 508 s it 9.5 ss(O)403.82 497 s mf 10 ss(5) 404.249 522 s mf 7 ss(\2017)447.258 530.6 s 407.249 520 450.258 528 -5 cv 445.758 532 412.249 524 0.3 l 453.258 547.9 410.249 544.4 0.2 l 453.258 540.9 410.249 544.4 0.2 l mf 10 ss(@)457.258 522 s %10/5 (4)465.224 404 s(?)473.624 406 s(4)465.224 408 s(?)473.624 410 s(4) 465.224 414 s(?)473.624 414 s(@)503.996 398 s %10/4 (\()460.974 420 s(=x=)465.224 416 s(3)465.224 420 s(\()483.436 422 s(=x=) 487.686 416 s(5)487.686 422 s 473.224 426 489.686 429 3.938 cv 495.686 428 502.996 428 1.193 cv(@)503.996 398 s %10/3 bi 12 ss(fp)477.627 444 s mf 10 ss 16 414(@)503.996 456 b %10/2 (=x=)465.224 474 s(K)465.224 476 s(KM)465.224 478 s(?)473.624 480 s 468.224 484 502.996 484 5 cv(@)503.996 456 s %10/1 bi 12 ss(\(f\))457.224 542 s rm 10 ss(steady)473.224 546 s(nicht eilen) 465.224 556 s rm 9.5 ss(beau)459.256 508 s it 9.5 ss(Sc)456.687 497 s(h\366n) -0.142 0 rs mf 10 ss(4)465.224 530 s(?)473.624 530 s 468.224 536 502.996 536 5 cv rm 9.5 ss(-)489.297 497 s(-)488.012 508 s mf 10 ss(@)503.996 522 s (FFFCCCCCCCCC)104 522 s (C)493.996 522 s (FFFCCCCCCCCC)104 456 s (C)493.996 456 s (FFFCCCCCCCCC)104 398 s (C)493.996 398 s (!)104 344 s(')120 350 s(')124.5 356 s(!)104 267 s(')120 273 s(') 124.5 279 s(!)104 267 s(')120 273 s(')124.5 279 s(")103.5 209 s(') 120 211 s(')124.5 217 s(")103.5 209 s(')120 211 s(')124.5 217 s 16 209(@)104 344 b 0.141 97 246 br %11/5 (4)136 215 s(4)136 219 s(4)136 225 s(=x=)136 227 s(4)136 233 s(%) 183.308 213 s(6)188.808 213 s(6)188.808 219 s(6)188.808 225 s(\() 184.133 231 s(=x=)188.808 227 s(6)188.808 231 s 145 227 186.808 227 -6 cv 145 221 182.808 221 -6 cv(@)215.077 209 s %11/4 (=x=)142 227 s(5)142 233 s 129 239 145 239 3.8 cv(@)215.077 209 s %11/3 it 10 ss(cr)154.253 243.5 s(esc.)-0.37 0 rs mf 10 ss(%)149.253 267 s(6) 154.253 267 s(6)178.57 273 s(6)196.823 271 s it 9 ss(4)170.911 250 s 169.411 253.15 142.5 253.15 2 142.5 251.15 0.3 ll 203.823 255.15 203.823 253.15 2 176.911 253.15 0.3 ll mf 10 ss 16 225(@)215.077 267 b %11/2 (=)136 285 s(4)136 287 s(?)144.4 287 s 129 293 138 293 2.7 cv (@)215.077 267 s %11/1 rm 9.5 ss(-)129.723 328.5 s(ty!)133.723 328.5 s(-)126.294 317.5 s it 9.5 ss(heit!)130.294 317.5 s mf 10 ss(4)136 350 s(?)144.4 352 s 129 357 139 357 3 cv(@)215.077 344 s %12/5 (\()220.281 213 s(4)229.031 213 s(?)237.431 213 s(\()224.781 219 s(4) 229.031 219 s(?)237.431 221 s(4)229.031 225 s(?)237.431 225 s (@)289.942 209 s %12/4 (-)230.031 233 s(')244.879 231 s(=x=)249.379 227 s(3)249.379 231 s (@)289.942 209 s %12/3 (%)224.031 267 s(4)229.031 267 s rm 9.5 ss(- - - - - ) 12.516 187.976 243.5 ws( )271.473 245.5 s mf 10 ss(6)269.66 269 s 16 225(@)289.942 267 b %12/2 (=)229.031 285 s(3)229.031 287 s 139 293 232.031 293 5 cv(\() 264.985 281 s(5)269.66 281 s(@)289.942 267 s %12/1 (-)230.031 348 s(-)250.379 348 s rm 9.5 ss(O)269.231 328.5 s it 9.5 ss(O) 269.231 317.5 s mf 10 ss(5)269.66 344 s(@)289.942 344 s %13/5 (4)297.546 205 s(?)305.946 205 s(K)297.546 219 s(KM)297.546 223 s(?) 305.946 225 s(@)388.805 209 s %13/4 -1.815 379.844 237.062 303.396 247 m(=x=)297.546 227 s(5)297.546 231 s 257.379 237 300.546 237 5 cv(=)312.756 227 s(J)312.756 229.023 s(JL) 312.756 229 s(=)327.965 227 s(J)327.965 227.046 s(JL)327.965 227 s(J) 343.175 225.069 s(JL)343.175 225 s(J)358.385 223.091 s(JL)358.385 223 s(J) 373.594 221.114 s(JL)373.594 221 s(@)388.805 209 s %13/3 (6)297.546 269 s 272.66 266 296.546 266 -5 cv(6)321.534 271 s(U) 322.534 249 s(6)343.175 277 s(U)344.175 255 s bi 12 ss(f)364.817 241 s mf 10 ss(6)364.817 275 s(U)365.817 253 s it 9 ss(4)332.181 247 s 330.681 250.15 297.046 250.15 2 297.046 252.15 0.3 ll 371.817 252.15 371.817 250.15 2 338.181 250.15 0.3 ll mf 10 ss 16 225(@)388.805 267 b %13/2 (5)297.546 281 s 277.66 287 300.546 287 5 cv(5)317.042 283 s(=) 334.218 285 s(5)334.218 285 s(=)352.132 285 s(5)352.132 287 s(=x=) 369.309 285 s(5)369.309 289 s it 9 ss(5)334.427 306 s 332.927 309.15 297.046 309.15 2 297.046 307.15 0.3 ll 376.309 307.15 376.309 309.15 2 340.427 309.15 0.3 ll mf 10 ss(@)388.805 267 s %13/1 rm 9.5 ss(life)294.215 328.5 s it 9.5 ss(e)298.437 317.5 s mf 10 ss(5) 297.546 346 s rm 9.5 ss(of)320.578 328.5 s mf 10 ss(5)321.534 348 s 300.546 343 324.534 346 -5 cv rm 9.5 ss(end)339.316 328.5 s(-) 320.589 317.5 s it 9.5 ss(wi)341.687 317.5 s mf 10 ss(5)343.175 350 s rm 9.5 ss(-)355.281 328.5 s(less)360.692 328.5 s(-)354.253 317.5 s it 9.5 ss(g)361.006 317.5 s(en)-0.095 0 rs mf 10 ss(6)364.817 352 s it 9 ss(4)332.181 368 s 330.681 371.15 297.046 371.15 2 297.046 369.15 0.3 ll 371.817 369.15 371.817 371.15 2 338.181 371.15 0.3 ll mf 10 ss(@)388.805 344 s %14/5 (,)397.409 209 s(=w=)420.747 203 s(4)420.747 197 s(4)420.747 211 s it 9 ss(2)410.078 176 s 408.578 179.15 396.909 179.15 2 396.909 181.15 0.3 ll 427.747 181.15 427.747 179.15 2 416.078 179.15 0.3 ll mf 10 ss(@)445.086 209 s %14/4 (=x=)396.409 227 s(3)396.409 233 s(?)404.809 233 s(=)396.409 227 s(3) 396.409 229 s(?)404.809 229 s(3)396.409 225 s(?)404.809 225 s(3) 396.409 219 s(?)404.809 221 s(@)445.086 209 s %14/3 bi 12 ss(p)397.409 257 s it 10 ss(cr)419.747 257 s(esc.)-0.37 0 rs mf 10 ss 16 225(@)445.086 267 b %14/2 (4)396.409 279 s(=x=x=)396.409 285 s(4)396.409 293 s(U)397.409 295 s(4) 420.747 277 s(=x=)420.747 285 s(4)420.747 291 s(U)421.747 293 s it 9 ss(2) 409.578 305 s 408.078 308.15 395.909 308.15 2 395.909 306.15 0.3 ll 427.747 306.15 427.747 308.15 2 415.578 308.15 0.3 ll mf 10 ss (@)445.086 267 s %14/1 rm 12 ss(34)377.805 367 s 391.205 365 375.805 365 375.805 378 391.205 378 391.205 365 5 375.805 365 0.8 ll rm 9.5 ss(lo) 391.372 328.5 s(v)-0.142 0 rs(e)-0.142 0 rs it 9.5 ss(Lie) 393.339 317.5 s mf 10 ss(4)396.409 356 s(4)420.747 352 s 399.409 362 423.747 358 5 cv it 9 ss(2)409.578 369 s 408.078 372.15 395.909 372.15 2 395.909 370.15 0.3 ll 427.747 370.15 427.747 372.15 2 415.578 372.15 0.3 ll mf 10 ss(@)445.086 344 s %15/5 (=w=)455.29 203 s(4)455.29 197 s(4)455.29 211 s 423.747 195 454.54 195 -5 cv 428.247 212 454.54 212 -5 cv(')475.155 195 s(=w=w=)479.655 203 s(4) 479.655 195 s(')475.155 209 s(4)479.655 209 s it 9 ss(2)468.472 174 s 466.972 177.15 454.79 177.15 2 454.79 179.15 0.3 ll 486.655 179.15 486.655 177.15 2 474.472 177.15 0.3 ll mf 10 ss(@)503.994 209 s %15/4 (=x=)455.29 227 s(3)455.29 233 s(?)463.69 233 s(=)455.29 227 s(3) 455.29 229 s(?)463.69 229 s(3)455.29 225 s(?)463.69 225 s(3)455.29 219 s(?) 463.69 221 s 407.909 239 458.29 239 5 cv 407.909 232 454.54 232 5 cv 407.909 228 454.54 228 5 cv 407.909 222 454.54 222 5 cv(@)503.994 209 s %15/3 16 225(@)503.994 267 b %15/2 (%)450.29 275 s(4)455.29 275 s(%)450.29 289 s(=x=)455.29 285 s(4) 455.29 289 s(U)456.29 291 s(4)479.655 277 s(=x=)479.655 285 s(4) 479.655 291 s(U)480.655 293 s it 9 ss(2)468.472 304 s 466.972 307.15 454.79 307.15 2 454.79 305.15 0.3 ll 486.655 305.15 486.655 307.15 2 474.472 307.15 0.3 ll mf 10 ss(@)503.994 267 s %15/1 rm 9.5 ss(-)427.657 328.5 s(ing,)451.032 328.5 s(-)425.356 317.5 s it 9.5 ss(bens,)448.396 317.5 s mf 10 ss(%)450.29 352 s(4)455.29 352 s rm 9.5 ss(____)466.548 328.5 s(___)469.184 317.5 s(_)479.905 317.5 s mf 10 ss(4)479.655 354 s 458.29 358 482.655 361 5 cv it 9 ss(2) 468.472 368 s 466.972 371.15 454.79 371.15 2 454.79 369.15 0.3 ll 486.655 369.15 486.655 371.15 2 474.472 371.15 0.3 ll rm 9.5 ss(_) 480.655 317.5 s(_)480.655 328.5 s mf 10 ss(@)503.994 344 s (FFFCCCCCCCCC)104 344 s (C)493.994 344 s (FFFCCCCCCCCC)104 267 s (C)493.994 267 s (FFFCCCCCCCCC)104 209 s (C)493.994 209 s pagesave restore showpage %%Trailer %%Pages: 1 pmw-4.27/testdist/outfiles/Test01.ps0000644000222100022210000020744412247665016015504 0ustar ph10ph10%!PS-Adobe-3.0 %%Creator: Philip's Music Writer 4.27 (Built 25-Oct-2013) %%CreationDate: Tue Dec 3 17:23:05 2013 %%Pages: (atend) %%DocumentNeededResources: font Times-Roman Times-Italic %%+ font Times-Bold Times-BoldItalic Symbol %%+ font PMW-Music %%DocumentSuppliedResources: font PMW-Music %%Requirements: numcopies(1) %%EndComments %%BeginPaperSize: a4 a4 %%EndPaperSize %%BeginProlog %%Header file for PMW PostScript output /LowerEncoding 256 array def LowerEncoding 0 [ /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /space/exclam/quotedbl/numbersign /dollar/percent/ampersand/quotesingle /parenleft/parenright/asterisk/plus /comma/hyphen/period/slash /zero/one/two/three /four/five/six/seven /eight/nine/colon/semicolon /less/equal/greater/question /at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O /P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft /backslash/bracketright/asciicircum/underscore /grave/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o /p/q/r/s/t/u/v/w/x/y/z/braceleft /bar/braceright/asciitilde/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /currency/currency/currency/currency /space/exclamdown/cent/sterling /currency/yen/brokenbar/section /dieresis/copyright/ordfeminine/guillemotleft /logicalnot/hyphen/registered/macron /degree/plusminus/twosuperior/threesuperior /acute/mu/paragraph/bullet /cedilla/onesuperior/ordmasculine/guillemotright /onequarter/onehalf/threequarters/questiondown /Agrave/Aacute/Acircumflex/Atilde /Adieresis/Aring/AE/Ccedilla /Egrave/Eacute/Ecircumflex/Edieresis /Igrave/Iacute/Icircumflex/Idieresis /Eth/Ntilde/Ograve/Oacute /Ocircumflex/Otilde/Odieresis/multiply /Oslash/Ugrave/Uacute/Ucircumflex /Udieresis/Yacute/Thorn/germandbls /agrave/aacute/acircumflex/atilde /adieresis/aring/ae/ccedilla /egrave/eacute/ecircumflex/edieresis /igrave/iacute/icircumflex/idieresis /eth/ntilde/ograve/oacute /ocircumflex/otilde/odieresis/divide /oslash/ugrave/uacute/ucircumflex /udieresis/yacute/thorn/ydieresis ]putinterval /UpperEncoding 256 array def UpperEncoding 0 [ /Amacron/amacron/Abreve/abreve /Aogonek/aogonek/Cacute/cacute /Ccircumflex/ccircumflex/Cdotaccent/cdotaccent /Ccaron/ccaron/Dcaron/dcaron /Dcroat/dcroat/Emacron/emacron /Ebreve/ebreve/Edotaccent/edotaccent /Eogonek/eogonek/Ecaron/ecaron /Gcircumflex/gcircumflex/Gbreve/gbreve /Gdotaccent/gdotaccent/Gcommaaccent/gcommaaccent /Hcircumflex/hcircumflex/Hbar/hbar /Itilde/itilde/Imacron/imacron /Ibreve/ibreve/Iogonek/iogonek /Idotaccent/dotlessi/IJ/ij /Jcircumflex/jcircumflex/Kcommaaccent/kcommaaccent /kgreenlandic/Lacute/lacute/Lcommaaccent /lcommaaccent/Lcaron/lcaron/Ldot /ldot/Lslash/lslash/Nacute /nacute/Ncommaaccent/ncommaaccent/Ncaron /ncaron/napostrophe/Eng/eng /Omacron/omacron/Obreve/obreve /Ohungarumlaut/ohungarumlaut/OE/oe /Racute/racute/Rcommaaccent/rcommaaccent /Rcaron/rcaron/Sacute/sacute /Scircumflex/scircumflex/Scedilla/scedilla /Scaron/scaron/Tcedilla/tcedilla /Tcaron/tcaron/Tbar/tbar /Utilde/utilde/Umacron/umacron /Ubreve/ubreve/Uring/uring /Uhungarumlaut/uhungarumlaut/Uogonek/uogonek /Wcircumflex/wcircumflex/Ycircumflex/ycircumflex /Ydieresis/Zacute/zacute/Zdotaccent /zdotaccent/Zcaron/zcaron/longs /Delta/Euro/Scommaaccent/Tcommaaccent /breve/caron/circumflex/commaaccent /dagger/daggerdbl/dotaccent/ellipsis /emdash/endash/fi/fl /florin/fraction/greaterequal/guilsinglleft /guilsinglright/hungarumlaut/lessequal/lozenge /minus/notequal/ogonek/partialdiff /periodcentered/perthousand/quotedblbase/quotedblleft /quotedblright/quoteleft/quoteright/quotesinglbase /radical/ring/scommaaccent/summation /tcommaaccent/tilde/trademark/infinity ]putinterval /F/fill load def /GS/gsave load def /GR/grestore load def /Mt/moveto load def/Lt/lineto load def /R/rotate load def /Rl/rlineto load def/Rm/rmoveto load def /Ct/curveto load def/Rc/rcurveto load def /S/stroke load def /Slw/setlinewidth load def /Slc/setlinecap load def /Slj/setlinejoin load def /Sg/setgray load def /Sd/setdash load def /T/translate load def /clx 0 def/cly 0 def/crx 0 def/cry 0 def /inf{dup dup findfont 3 1 roll FontDirectory exch known {pop}{(**** Font ")print 100 string cvs print (" is not loaded ****\r\n)print stop}ifelse dup dup/Encoding get StandardEncoding eq {maxlength dup dict/newfont0 exch def dict/newfont1 exch def dup {1 index/FID eq{pop pop}{newfont0 3 1 roll put}ifelse}forall {1 index/FID eq{pop pop}{newfont1 3 1 roll put}ifelse}forall newfont1/Encoding UpperEncoding put dup newfont1 definefont def newfont0/Encoding LowerEncoding put dup newfont0 definefont def } {3 1 roll def def}ifelse }bind def /ss{scalefont setfont}bind def /sm{makefont setfont}bind def /ssr{scalefont [-1 0 0 1 0 0] makefont setfont}bind def /smr{makefont [-1 0 0 1 0 0] makefont setfont}bind def /b{/y exch def/x exch def/w exch def/z exch def/v exch def {x y Mt w show y z gt{/y y v sub def y z lt{/y z def}if} {exit}ifelse}loop}bind def /br{gsave translate dup 0.11 gt {0.11}{dup 2.0 div 0.055 add}ifelse exch scale 2{0.0 0.0 Mt 100.0 20.0 -50.0 245.0 60.0 260.0 curveto -50.0 245.0 60.0 20.0 0.0 0.0 curveto fill 1.0 -1.0 scale}repeat grestore}bind def /br2{gsave translate dup 0.11 gt {0.11}{dup 2.0 div 0.055 add}ifelse exch scale 2{0.0 0.0 Mt 95.0 40.0 -43.0 218.0 37.0 256.0 curveto -59.0 219.0 66.0 34.0 0.0 0.0 curveto fill 1.0 -1.0 scale}repeat grestore}bind def /cc{/u exch def/y1 exch def/x1 exch def/y0 exch def/x0 exch def /w y1 y0 sub dup mul x1 x0 sub dup mul add sqrt 2 div def /v w 2 mul 3 div dup 10 gt {pop 10} if def x0 x1 add 2.0 div y0 y1 add 2.0 div translate y1 y0 sub x1 x0 sub atan rotate}bind def /cA{/cry exch def/crx exch def/cly exch def/clx exch def}bind def /cd{w neg 0.05 moveto v w sub clx add u cly add w v sub crx add u cry add w 0.05 curveto w -0.05 lineto w v sub crx add u cry add 1 sub v w sub clx add u cly add 1 sub w neg -0.05 curveto closepath fill}bind def /cv{gsave cc cd grestore}bind def /cwd{w neg 0.05 moveto v w sub clx add u cly add w v sub crx add cry u sub w 0.05 curveto w -0.05 lineto w v sub crx add cry u sub 1 sub v w sub clx add u cly add 1 sub w neg -0.05 curveto closepath fill}bind def /cvw{gsave cc cwd grestore}bind def /cem{dup 1 eq cly cry eq and{pop 0 u cly add 0.75 mul /t2 0 def} {/x1 v w sub clx add def /x2 w v sub crx add def /y1 u cly add def u mul cry add /y2 exch def /t 0.5 def /a 2 w mul x1 x2 sub 3 mul add def /b x2 2 x1 mul sub w sub 3 mul def /c x1 w add 3 mul def a t mul b add t mul c add t mul w sub /t1 a 3 mul t mul b 2 mul add t mul c add def /a y1 y2 sub 3 mul def /b 3 y2 mul 6 y1 mul sub def /c 3 y1 mul def a t mul b add t mul c add t mul /t2 a 3 mul t mul b 2 mul add t mul c add def }ifelse translate t2 0 ne {t2 t1 atan rotate} if 0 2 moveto 4 add neg 0 exch rlineto 0.4 Slw stroke}bind def /cve{gsave cc cd 0.8 1 cem grestore}bind def /cvwe{gsave cc cwd 0.8 -1 cem grestore}bind def /dl{gsave 0 Sd 0 dtransform exch floor exch idtransform pop Slw Mt Lt stroke grestore}bind def /k{/y1 exch def/y2 exch def/x exch def currentfont mf y2 y1 sub dup 16 gt {pop 16}if dup 1 sub /y exch def dup y2 exch sub /y2 exch def 16 div 10 mul ss x y2 Mt (\260) show {/y2 y2 y sub def y2 y1 le {exit}if x y2 Mt (B)show}loop x y1 Mt (\261)show setfont}bind def /l{Slw Mt Lt stroke}bind def /ll{Slw Mt 1 1 3 -1 roll{pop Lt}for stroke}bind def /m{/y0 exch def/x0 exch def/y1 exch def/x1 exch def/z exch def x0 y0 Mt x1 y1 Lt x1 y1 z add Lt x0 y0 z add Lt fill}bind def /rs{rmoveto show}bind def /s{moveto show}bind def /sh{show}bind def /wrs{rmoveto 0 32 4 -1 roll widthshow}bind def /ws{moveto 0 32 4 -1 roll widthshow}bind def /wsh{0 32 4 -1 roll widthshow}bind def /ST{/n exch def/g exch def/t exch def/w exch def/y exch def/x exch def 1 1 n {pop x y transform round exch round exch itransform Mt w 0 Rl y g add /y exch def}for t Slw S}bind def %%EndProlog %%BeginSetup %%BeginResource: font PMW-Music 11 dict begin /FontInfo 8 dict dup begin /version (58.01) readonly def /Notice (Copyright (c) November 2010 Philip Hazel) readonly def /FullName (PMW-Music) readonly def /FamilyName (PMW-Music) readonly def /Weight (Medium) readonly def /ItalicAngle 2 def /isFixedPitch false def /UnderlinePosition -98 def /UnderlineThickness 54 def end readonly def /FontName /PMW-Music def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /FontBBox {-150 -1400 50000 2300} readonly def /Encoding 256 array def 0 1 31 {Encoding exch /.notdef put} for Encoding 32 [/sp/trebleclef/bassclef/altoclef/star/sharp/doublesharp /flat/natural/tfermata/brest/sbrest/mrest/crest/qrest/bfermata /longrest/breve/semibreve/uminim/dminim/ucrotchet/dcrotchet/uquaver/dquaver /usquaver/dsquaver/usqtail/dsqtail/ledger/vdot/hdot/barsingle/bardouble /barthick/stave1/pstave1/uqtail/stave10/pstave10/dqtail/repeatdots /ustem/dstem/cnh/mnh/comma/mordent/dmordent/imordent/dimordent/turn /hbar/accent1/caesura/accent2/accent3/accent4/accent5/bardotted /caesura1/little8/C/cut/tilde/thumba/thumbb/ds1/ds2/downa/downb/upa /upb/iturn/seven/four/hcnh/hmnh/xnh/xustem/xdstem/fustem/fdstem/six /gdot/gring/d1/d4/u4/l1/r1/bs/ds/fs/us/.notdef/tick/uacc/dacc/grid /barshort/breath/vring/cross/trill/scaesura/lcaesura/sbra/sket/rbra /rket/rep/repdots/vtilde/trem/circ/cutcirc/slur1/slur2/up/down /iC/icut/unibreve/accent6/srbra/srket/angle1/angle2/angle3/angle4 /ped/uvtilde/dvtilde/nail/angle5/angle6/stave21/stave31/stave41/stave61 /hclef/oldbassclef/oldaltoclef/bratop/brabot/direct/five/major/dimsh /hdimsh/gcross/ledger2/srm1/srm2/u12/d12/halfsharp1/halfsharp2 /halfflat1/halfflat2/icomma/accent7/accent8]putinterval 196 1 246 {Encoding exch /.notdef put}for Encoding 247 [/stave210/stave310/stave410/stave610 /.notdef/.notdef/.notdef/.notdef/.notdef]putinterval currentdict end currentfile eexec d9d66f633b846a989b9974b0179fc6cc445bc2c03103c68570a7b354a4a280ae 6fbf7f9888e039ab60fcaf852eb4ce3afeb979d5ea70fde44a2ae5c8c0166c27 bf9665eea11c7d2329c1a211dd26bb372be5822f5ea70d99eb578c7befd44cdf 045a363056e5e1cc51525ea6fc061dcebb337208eff729802376a2801424f670 0e7e6397b28f15bc10b40012b0a3eaeb2693e8f7f627c4c9c7c6c5bff105c1e4 1b2b9e8f09253b61177e95ea219474796072f4c3189f7cfc7630142215dbc8a8 fd63d147033a0c9c786e17355fa8d996a3a7b5d213ac8011fd31a12930a87f86 374c1921aaa9ed181b43541cdf6e376bb4f2801faa9b01dcc0569ac59cfc4768 afdc549a30d41f5705e4231d3bc540161d390b4980ef9fe489ac4df99f83a8e2 00182cd152eb35a61aa915230f1090fd0bc8d4644f836c3da157c564b2a8fb7e 7d3203ca17088a579aab355eb45038ff45d5eb2357959a2c7c04421c41d3b822 d0471ae18607c80503c0b319348683bc6bc87e075a8eb4bb34729c4145b2b5a0 df1a88b2d7e0940aa3d4bafa502b87d9313153f661019a817ab20e1a772ad0d5 51ae7fdce4e21f426a6726c39c88124f8cbf10bb7394e90e9d28efdffef75078 f7ab1d7fe8387e1e65c4ff67d054ae6a0937e4d59889656ac37afde0362d76ab 05f9c223c52f04b6279e055419d3630d5057b50b4c4492891f7a36d03859e220 2d89747f1d486e9449a3448f81c240adc9e5476c6de456d76c4237055c0c30b6 80738211ddb90bcc73982467076cba36a60ec6a6584d9d9bf0df2b8462ceb1be 79c1276d2865b0f3518664a960036ca2d00c7829a967ac16b5c833f2e143efc0 f93826a8d09414c4ae7cb17623edc8f599b895ed0d3f4bea8bfd9b414cc39c0e 4080180fe8286b05065a10df4d691d38f73bc82d6142bdded07ffff7017f7803 cb03226f4d6501c203f8ee4e08ff5f8eda81278aaa6378b2d95ad6dfc7bc2e11 aa696cf2618a5737f03bce6c46c635caf89d23de81693159167b74cda0a15dcd 491b2ba489f28d410f1835d0fb7a9be1e3e5e7b76996e1d85cb9b62bb0619bdc 78b85ad2731fb580466cd92159c7f0e53f0896e154ec770cb55c55b09ec7b405 251e205992ac88e0bb583792edc9a21143a3ab447d4769e84016aea06413b52a 9ad5bbf68c05b2d1fbd434a1d61a903b6d2e81cba8f422998f51dab989a49b7c 2d0ee5cf9f5cfea4fd5f7686eb2e9d29bb4fd4b117bd407534ab7aea4068f8a1 f3f89f61f1b341c9c31755c876038a2707314ba7f51f25ae9b81cb7170f24d97 f792f849fb28eb31704aa5826296042664f4324d94dd8644d43f3d3ba8ef474f 37ab52149ca62286bc986a59f4dc01c95106a325ad9eb4e22badbf89c3c329d2 cbe4d3f3c64fd1b40dd441f2f8e45df63e6cf107d5a0efb2930fe55c04c6d01a 23b40b4706ef7ec9e6447190cebceb1293800d461512b42c06825d1ea511b7a7 031286c05dd8536baf9159f6d3ecb5c23c3677795a29aad9be47a0d7a127e3ad 051d57de2b0969ba89d906f64a4834fb7912a5c1f39a8cdac5367a06ec532870 fd72e532680e064d490d975feb7bbcdd84ea1b060476b844a6fc153691d6eeeb e72d71ef5ee59f6bfbfeb9e166e0304f50b91d8e401fac3257b56ae63d9ac6e3 a27fd33f1b43075c792597372d77a93912bc83e4aced15502c9f549e725ee735 8cf609891f05fede798f758940ee09d2947af5a290f2b4540b6a931d9d8e1176 5c0c4f14dd4f2ae0a056e42b7842e4a37a854fd70f2268833d8b0a5a5124ac92 d5abea2bc4a82267734407be662c088ce63084f851af93ed826c3d6d417c679b c3d5faa174c9248fb2706f46a9611cd21c2952e70ef36ddfa951b6df819c7c49 04b8a5a08ade3960e46860fa6ed29caa9d332be99f25a6c2e627402f09a5e140 3ac599195881326c44e6deda9d38ab32544e7b21749b5f933ceee3818853248a c038736c4486f46ff5853684760814f2dc64f282f7619c34885396a300e041d4 4931a4951469f5de55d0282ab491a456ed329ba83756285e2e637ce00e925b79 6a5e7de954b276e92b958ea4119200955d906a275b2640f2881224816febf38c ae5a330d8c4d31c68dac342210d5b0ed554e0d57e7b486022aaab11ec40753d8 ad557122b58a7ef70f0676e41f9c29feedac4d10808370b03202d11e5911e056 5502c18e30c2086795534f946639ef524469e7628abf78b2ad634d1c30315202 2bf1ae1c038093dda6e3dd5ca785626841806f19db4edefb4352255a40a6fd2d e5b292d963047035bf20765a1724da4ceb6596e5fa97d7b8fa9f3ecb4b88197e b88466dd7b189aaf8603193b647abb7bcd00005212a18872c0145d3378b097b2 8dfc782b3bff19d16c0fc15c0dcb4c59318183cacd60f4a6bb68be52381277e4 f01f081110b5549a1178bb1f260a83c6185569012e906e6f3e2efd3be510c8d5 359170a08dccef71cf290c76297a1a4b5cc979a25285a9bbbd06a29109fb026c 5ed7c864cfbd56af94b980775295d1cedf1e2d29bb4374919a1837a325daae46 3420aa39e8adc0a6d1508ec3109400eba448f2c83949001fc47f5cad8d4abf40 05805a03e5debcb69a94d9de331cd65d7f1f6de6141eff2045466417110ebe68 0b7164d627bc55b3362049f5e720c1fbc78138cb39eb79e66cb7f7f0bb778afc 9f71dadc6df0dce778b2a5500ad6d77ec30ec68484fb9acc886f9f17b85a057b a9cc45cf70a2ab800d6a4790ea19c7bb8042ee22148df7df8b2a3b6a024003af 4ff4306ecc2b060304f8c6f66b8c0a6e93ce65360a9cd69b61f86a8dfb73c68d c21db4b6c6dcf79e667772b21c7c466e32c5d527c69368ae0e89a4d4cdb4891f 3d4d979f9173d37b0b14a078b061c3a647d1446862ccbb83e0f0c52e55f62571 d261f9025b9b76b19a4387c9be977a75a9f3081fadd4a0497049db2b25ed2e1b 2f1d2330b45df4d9046c5d6b93cc37b9f5cc6efb382fe3c1cfb2149369e96049 943b8bb24ac4cc79d6f5700e7674c56b90093ea2040bd564d03b248e7e7501bc 984034757fb9a8ab0915a676cbd53f3f680aed60d401953b080bf8339b2e86bc 5afa1596cd942d225a2f4955693042f9283b5d609f297a6f60a4a1a1b3af3b75 b2ebf205ea219cf61f378872247fe2284ac99a5e29a31ea3daadec1080e9a252 504d9980bbea3845e145ca1fc919db615740a5d81e188cd9ec7de7467f77e23c af9879f9b562af2382f271794641e9c498cc7257071a9a037f4df9df87289d8c 973909959329980b26acd05b0ef35e9b60101bfa019acde608ced1432c68bd26 1b4db2b2f16deca61e710e8bab3c99bca591f6b1491ffceebba2c75a3e7802a8 e5170e660125475f75be93ec815304bfa33a26a1371c21ce78c58d2c700c91be 8aa8d468fce514189054972132e57e69422dae4588d5de9f3344cb59d505c421 1b8b27fc1c22a82a062d76ad9e6e3a4add530aaa501e20293be5c19916331c05 ac9b774007afeac38ad564a281afffb6fd41002837678f0741eeb025ec3d6c23 140420f6943d17a1d84e301863a849290aaad57b545f97493b1f3693fcceec9e fc8310bf367204a88570d92045d3dedce44692ac4858a4950f39903095bc974b 067283afe304317fa6c0eeeff03cc68723468d73d881caac31300836687ec574 c06e46cb22fcdc7c315b06cf8a13c01830498b2f379c96dbbc04b1f579f7fb12 d8c1bc2a676fbe690a6787fc77414718b5dd3f742689b39aa8cb6f6a34bcebc4 9b9aaaee962a77fa014d203415495311226d9c03c80b6dcbad39450fc44184fd e12a276d4e87cd954b0db7c58049084003014dd1920351a6a59b9ee428bf67fd 1b931e652870068d9feb0866d2e825e6404056ee589c7e406718004e0df8cfa2 04d21df791632359cc821e8652e6104eec4c1207c704167f70010e9afd6ec0aa 02fac84771d34e38bef362797bae62cc06fe81c069bf04d9edb277a90fa75f4b e79b3c0a8804adbebbcad3c464aa14a393f6ea75dcd5b420f9fb320398ecea1a c3acc08af37f7c14f14075f95c4961df04b45088dd75e338a2629647ec421849 f9948b9a17e33408239210566599f792a4c0934f88069a146f66b9c5bfa541a2 4b68fb5bd566f3ea28053dd386d2babdd8fe08e9763633933844fa5417f29ba7 60b235097764864d61ae1213aa8d3c4436911ff0b77aef7cb6d899ce0e8c2312 66d552dc691c783da623fb308ffd42f141d7e05b9db1b5fef691967f4e42f77c f0b3ccae74717e0b0ef02f152c89f9c1b1ef8cac955d3c024c04e0c8830b7884 ef8490ed1fd4b718977da0be6b8cef615ebd95e41c04bf119e9064a7723c8e67 2f84a9f02707f08c1423387092004c5499f20397855b03e12a48cfd90e9f4b1e 0e2ce907e86716c43cb9fe377cf4a38afcbf860074cca3c3580730147bbd280f aa4711be6c7ca74633545acc6e1ba2003e9eac90099a00406cae1b04b906d896 1bc0589e9046c3450ff07624f3e8bc0241e3e2356dee09b92ce70d48a52da586 8528da6c89e780f1b121839418ab684a92b4187d184a8616e73f8d961257083b 935358f1e6d6fb68c173e5e38969c8f2a68724ca12a86ece19f1a79ac9b9913f f14c9e37d08f89e84b1d6d1ce4fa8b8c32a139c950f6e83471b38702e695bc7b e8d87c77805d33e6536a5095ceb6e726ed0500b41c941d173233771e6aca5e2a 8a0974f6f726bb5dfd2f7adfdc64095d4421984d879a40e27f3da62a433f03f8 25465338bd92d7408ab4b30ed357474d07f49b4a9d5c5891c11ca620a0ed4c9b cb476ad89efaa734d9d11e55bdad6163c867c56543d2edf445f8336473f81d72 40e675ee76e15e68c7295fe4c4727049007e3fd6a3bf5be662846c669965c39e ee26797951ce86d4e2db76070ce1217c9c9dbada0a8e53e450bec992724150a9 34f7ca6b7c092e12726cf0ee125608a4e58f3c54f1b3466c47acc11a7fb86d15 56bc15dc4999f52616f1d45745a4719df7849fca9430b7e2fcf0c72dfca8e2c5 b205f65ff646084b03779616126dc0108574d98b20dcd787f99305e593a3ff30 39132a62240bb9c47f7aba86bd61fa30e7751cdfbfb630c159d016ee70c8a273 1a167494354bee5fa39bb0a233580913943e029ce518d75f30af7cb2d3ed2103 d8abbac569cab1a9daaf125e79d5b327e69489eec94bf0e537724799f6e42c6c ba604976a498266555197e5290968486e625bb933e6588019e496c647f574522 7f8817ef98e28a27158cc58a48d264f6b95cbf2e1d92399d423e31ac7a077588 466f725090359c69e0fc91072df81fadd46069bbcefcaa77cfb7fa3e96034026 35a8296bf9c1d0a7fbab44a815ab741f36aefa60b2825671b0ab55db353d186e 90ed303b9caa7d0f52f9b74273042c3297e64b7264f38c0b849b1099a2b1ead1 89c6b6ee20b3f32aee24ba734e809ae500f6d48a50e6eadbfe61e660028476d1 254dd0467c140e698527a278c910e03f4341f0dece94a430db441f8a4fa73954 edc0534e2bfbae3205749cf27945909d28da83e440a5558aaa8eca7a9a4c8243 f0a60c5211ec2197fac453f01520ead1b20621962324543c2729d977cda3eac4 0ff0c0fa1096315ba2eee3d71cdf2c5bb1d9a4d4ed2147dfbd673f79cc1dc21b a77ac1096bd93b15f31467919e432c204640a81694abe315fcee9a3e9ef27f86 57c1d4aae410a23e44d0ce9fab50f953c81e33f6ec39837b20cf8fd0cc76a029 8f12e76a4c78b40798819f7919a0d24a42cef3074b8de0cb5e418201d41f431c 68e92c1827a4c9cfc968063e76038a494bdd4fb5e957d57aab2fa31bf1830b1e d3bb12f34f3fb17bfd73a349d706138da54671b43450f22f40cd7cbf50476a5b 2c73dccace0b74fa671007e4e95bbd79173c5d37047e511d49a110f81ff7ca8b 5fe0ed67a5efa1a87670db0ea31a11ee76b4af2dda3a6367df3c2b4e7cd868c1 604d872998326c710c206b78d6b9ebeaa14ff4841d18163a1b0738b3c9c2a952 3ec59bca6623329181bbed1662963564b1a7b48e08b120c0b1e2e28e9f076196 0f7a72f4118dfe57672c96ab72589dcdb652ff0580bed4a9c42ca35fcb1e6595 bf4fb078cb8531d2b589b0258fb14aaa9752283e94da2822810fa00220ecc76b fa0bf30ab93c612d2f6fa13c02443dd179c5ccfc0312d70d4509c558631a1b83 00301b494062dd506e84bef5d3e734f6af4b506f9b6ef43641f25a699cb7f70b 646e8b334fa8305bbe6e2f9596579f7db9e28c6e3cbac6a244984cb1dbcf751c 748afeea4610cd4c1cbfac10c9852a32b6f912bbe967a68c9678a83b03d3a589 55e21dfaec2921bafbd868fc6c5dbf9e6ff8d93c8d5a30a5903eaa82757ef344 ef36e216f96cd68b0f90b54579e11a40cf33c17fae2ddba456e1b85458cbf05d 928fb1ccae12f39e215c4c68b7f22ddd26d0f271e77b0f2cc2d6a9a7f37db7a7 621c4ec4e126ef4f231a2bd811cba54ac5ea84386cfd985ba17506d0d7c552c2 aa2b5fefb49cf5b7b1b16bbaa38fb408cef612e7260d088712d60c57af8291e6 9401fe2d8c879d563e7d988bc522100bd0e905a7dd25189a771076e75998d37e df26f0dd5e302eec87c087bd54289ab3f3c013b3a64b8bd4a0acdbcb32858e0e b407557f336b89be676f94fa5e41f2db1938288948b2eee549393213cebdc36d 9e241b237e78fb7226633fc67a127e48e43ddadbfe12aaa41bf7cff47115524b b853d3bef16514c2723b057e3cb74f0e6f043a25e7ecff0bf7620140f11b57a8 9e343a4fe17cafd950735383d05ea02d410d26c0ed305a619a461c08155ace2a c0888f257a301272ca78d533bab54f54d001dc6c205ff6324ebc1942320e3f8c 7c00eddba2962f7d8b8b194ad83e47b13083caf11e64dc89119d7127b9be5538 6b703d42d1edfd7db2f3fa122f1acde1ea43eedb955593c14dabea0ea66c6328 f39d3de6562fe906da301dc1ab7a83bf88cab1eb9923c5f1085bcaf02b8fa410 5c531836956c509ab18cc19bc5c248a2eef7566792982a43ec89d63b31e001fb b2ccc234e03e4572ce089d02bdf9dc0190af8dbc2c7ccc22196e3bc17c3e37c8 9a742f07edcadccc8d7597a4ed227f4ee37e843718e15da7208f8d2f2ffa12ee c007346e4cad0bb1aacf73e0edfcdc725be54ff6103eb3080881b1ef78267290 abc87920cf63f402a019e5c6e328f78707ac983bf0bc32cf4673d6bb966c9cd7 3b3c64b76a925b15225054a970acf61f123c44e51dd944426493fdf54646ecec 87e538cd1a130a43e1fd6274ac12ce5663534f65210c1e438118e34112c119aa 0e311185ca3977c6da19e0e73f9ef47ede1bc60f1891dc3302d01d7138da0867 1bae87b54e594f06e26c0e01b11693e994722daf37dfae35d1c63f7946f31167 32415ceaa09a865c28ccd57f9d41e19123e2cdab7e3e2bd29dee275f30075bce 458ddb09c2d5fea6e0e2a744009f6abddf5c34fb3caf51ece4665704bbb215e4 7107a1745424e6ab9071d2008cbe279c0b5ccb8ab61afa38b3d6195f652eb5e1 7a32a358e8ba8e02888b97e3ba3b695ea0062bb1cdb5ac5fee551e9eda4f070c 3dcf504cad12914caa34b39a494f539f1bf2ef77223c233a57f11cccea4f79ef f782c9c42efab4dbb360ca7518709ff4691fd9b9451e24fee60b2053167b96d4 f47fdce601a10d0dba330116a5dd0adfa44f7ec578c5ccdefda203bc220e5ec8 128e67fe500412d234fa0caeaf0a927d5cfd89d46bf3362e2ea172e09fd4d126 51ae59dfb15484b29ef2d5abd39e387202cc9348d00ee7a6dafa810bb68ad460 0c2e61a128d692502c2080311a7c99e30671d200ca812755a79ddc1e281a0c11 359ffc8341a508486c7677cce56b24bd2cac1b9457d2aa9b701cf9d7a74f8d6b a285e3b342e5232977abce1e51a95b0b148ba89fa492fc93e67f91042242ef87 f0a83ca51a752255a9eee173e2b2e69b4d88394a8f5584f9265597cc42fec4c1 cc727c7ade1b3407db4e0ebd6cf4848504df6cdecb476ce74aa817dca0e51c0d a3f14a1bcce37adff3bd7d08b44876e1b08789b630a3d070b53f3a8fe7ef8bef 539522d521b1319455c3999ab3f6fdcf92f28a36152a6574f62ba51ef90e1f3b c89ec530004dfcdd7a7b1c8038957ae361d921dc976b899b46f67eb824732282 e0207eb3f113c267b2154ed423f9084b56cfa1dd26508c3295d844e1549b63f2 26bb27f7ecb4ca36fe55ad817d952767b49d78f4576448eff1679851a415f918 0cf5ae1157b06c47e44c70774d6ffba7d8f86ba0160d55e21db737e10b2a91c7 05286b7c7dd9cc027ee23f3b3b46c3271a274868311d56931361dcd37542d1ac 67dc26954a733f9662dc9308f9639b944894f6f19848fbc3f44cb8bf3d5f6b39 fc78127ddaa6243cac012fe0cd52efbbed8b4bf857b3a1bb2b7e7e44bc8b0faa d715b0c6fbf4a4a9071cf299e0cacb88593fd61e5a0dc9fe7ed040e17dae132d eb17ff933db6927e892b3919cc14ca1908f557607b1dfbf48dc3d6aaa862d8c6 5dc9b2f3cc127e70d10c3a04ee17d357c93527eeffcf18792383b73459d50bcf ced1527e0520a397f7ec692a12f0693150885fcee5087b5d94b2ed81ebe967e1 fc32853cb465bb8b66453574c4ba998c91641e35a2fe6e521883fe344b27cb10 7031369baca8bdc5f4b9a2f44180c0ac498f171a416c8fdae8ba089819eb0256 17094a93681a3b3d100ec7f45839e9d42a09d0d75b8a05f6da5458eb6151be55 3fa2413df3364cb39a368d22643cc13b695eda2ba739e77125516dcb203d4764 e21c4075a931da7518471e4251a9782ee15bd2a5e94398e09a07fd265edf618f 71d439f8129c6b7402a05ff14547308fd9dc5e7c96f620a2682b50a7859eec5b da71f4c6e12059e8dd3916bfdfd0e151fa4b5aaa90435d1d42ab092c9c421657 d5bb283717759416257016e9314f54455ec9448f77df7e53c24fe8d96ec1c68c a7fd651af1e71686d2347af1ec6f9b790c185fd352ac03047f6c920bbb872fcb fbdb7566c75ab06d93278df61d8070a9951766b46720da236d8d4e7b4893aba8 ed4ac9406fe383631457095ca9993db527e7a37c9419b7abedfb7d41a460b9c4 9fb39efcf3631da0dbd315788ad98295fbb62e11655c0cc1ab2fb0e54e01ba9f b16cc2c1f82e48b3bfef4b4d339d7f0df8e001dc2a5911b4b92fb7eb428873eb 8a5acce25fd9f47faff3e0733d38b86a244ea1952ce528b8abf9493b1b307bc4 7a4fa41bbce361d2a6bf9a6820a231a58e89a9d214fadd6aadcbedaa150a4f27 9efe67012114205991c643e6ea1411203926bc0804572e0b727913402a466f8b f111844675dd5109212e5447f682e2959232ad21a218ff49479714aadb0618d3 fb488ebb29b2939059d1f794c277515eb400e5c626a811ce2a7a247e9e904b64 5609b594431433470ddcec6974f0f3d77651793ad7ce23ee72111474cfe2ca02 51c4d90c0b02ac9d7670c3795df594074759f38fc2ebe6a2a797d54628a50676 6f1e2263844d597fd845687a44f72a539a8661a9a9064c78071c040d1f0a45fd e2cccd2268919227e8e2c05befee614a9535a6adb324624425290d7032f6dfce 19342467ccf344114425ca8f9ed74899dcbd8d373879ca8f83d953021259f998 338d2e7a5cb54321f8057d70d5a02fa8aef3aea24854a9a21e45428a97397cc3 58aec6ec45fa9199579406c2e842549e1639d80b2a6b2502f28c8f4f94fba297 938a3c986ed1dba4c3b384bc43d7bb6becb71195475398313bf8774355562800 bf86d8f75101683880ae686ac36b757ce0e4adee09ef68f8fb5e891e956ee62e 346adb50098c5b7ded6374bff775ef4fd58a5910d980a635576e20e7b11797a1 7c44b0d347ec9b56cfca607866ea109d54fc992b1376eebd4d201a876e8564b9 f8ebd34de83bfc90c10d8ea85b556cb5fb74c447bde7329334b29c788cae8f02 de02daabf74f0bcdcf64064c91f366db4bb68794c9c41765bfaadfb514f487dd 096b2ad1f1404a836a809a20dc813a277c749ad0c4c45e6374630a4999ec512b fe9f990a74a05ff7e6c2b1ade33fd14670c6ef97ad99ccbb996b12d0172a88e1 b923f85a17213d52ae7e3886c50e125d38b8f97692cb2a5b3e03f21188f763e9 7eec87182ae517e42d9590f73c2594a7e5f61b9a5bf15a7eed29a754f729d532 dfa74519696cf75ae98a471ec88b3ed550730f50f519ac629691a47e19343c05 1b6d466acb89f50db25a9beae2b0eb79a96d2c0189febc516e68f70aa6bc09f9 129b0fd837e87d16fbe4a7a4456663cc7346218be042b965dedc22b7cb5f811e a445a5651759ac076b49d476e5f89c218bda4ec9582c95149b5f2d8a49c80ead 3ce0df6ea52db964cdc0ef2164bd21f818ef287cb3337b4d8a6aa34a336be17c d808a00949f82017f831b771473ef12a2661ab1fc21c3e344899d6a73ef7ff83 694abb48072daa7841dbb31498a9cc29b07bb0dcf709cae5014c2cc9073a1e5b a29d67f72a030496798f04171ed6a45105fbb58ca261d3ab9dcb57fc28b50cae 57c4203ae09a58bbca20a4613bcdff264adbbac8ad7ea0c2fabe4f07aa453618 e1591258a2a18e0fd974135fb890beba5bb115a8dd6491ad3299e27506ecdb8a e9c074ad5f1a553bb14f1aa35b9cabcd645ee452166f331319a5a953a922cc14 5f683e88ccdfc3d64d61b317df7e6022e9d50b28aba224d6a03a34a9d8242f39 e34cd7b5e46f37291f5d75bdc1bb586ac86778c1a496f321808cc0da6fb3a6e1 d4cd8c8e37c1e2c1d98384ea5a1654caf3b360d4fc77c3c3faf94466de5208b3 2935fde906ebf2d98ccba2cdabcd8197947f5e801ca0981a82b091a51c8ae0ba de5b69f3c9c0026fdd590e1e2cd526e7f7096570a53bbf917ee0a2a519ea4f15 f24cb5a8dd227ef2d8459ed65c31f5c19c9270028ad027c131e73c3c6f70b9d2 f2288bf3b41affb66db183903f464999bc5cf41602a50db4cd4f06ef1105214c cb7eadc45b06dc96636884a3d6d7a8374c57daaaecd35f52aa4db430e1c63995 bbe2b7bca8360dd4ad7dfbb0aeac6ba567251655c0e587d9dbf612b92bfc10ce db038669f091a3fb55034808c478ea0e0896037a1c5b442b8eb5923bda950ff5 72d305439fa14d73563da1105b1cb0dd7feb729e7d02368071dc03f11d647e25 46e5e870a784152f3317900f59f6f8f0d5a585ea6c1a0d5315625c0916906302 df05d68b2514a493918d94d99cb53f6deba91893597a866fa8383288acc52dcd c28693cb63d003a4a3248005b70e35cc45292fbdec55ae303f37ed3cecb8d0bd cccd224b63a6328ebb6f1192e962b4d9c160f30b753a3f974767aa5f8d5e9f11 5f6a834747814afd7f7e7d4e90d46ede92f8a810311bc28bcc0027e674efdcbe 3e40e2378ba1b9d7354e8be4e313322c2aba1e03d2f810cc09b78197e8214d46 6f5531094a7b8cecee5aeb2c693d4b382edf7d9d715d4cd12ce39d510885240b dbf096994f947ebf264ca3848ae72b3a2acf8cf2904a4b5b2fd5a3f590f4a475 25b967f5bcb647a537b6a4bb99be6ba00c9e96a51b2345fc48a8ac1f7cf4c9eb 329915effc052bc6fae5e25b08151e54129c8f5ff8896d0d4ed79b43ed124865 f79622a6cfd362e64e8e88e417a7b8204f133cfcaa7ac70df4b072bd808c6971 a0f2cc29008d5afa6648411b5deba3aac749fba957b0be5dc72696d1ccd3bd95 b2ada03d95bd1c2e7a10beffe96b9154cf9b1ea22c5ad3ed8d79af6df9c5fc46 7aae44e7f8558889afee261b8bb6c43785152943785407b575aa9de5f6c921f9 fa660b14626f5e1034cca473a6a7c16e597492013f9531c67a35fee2e56a2ab1 e4b9e834fab1fe22a52d785dc1995badcc84f2d32e0f9d029eb0ff5eb2e69843 fa738bf19d33087e9c0618371f5098b1e2e309d45485b4d6b37e557baab7152e feebd0b2c10c1a45494853962e0345b6b72967c886c311e47a1e5896260757c3 29d82d254d57e38e0e89ca1d9c746ad36e246978f307be1329914e7862a0f8cc b14f06cff9c03fd6cab3bb4cdedab7f0e1711b3d31b022af53cd82585ae82145 dcd76f76fa2bb84da98a2a3e46fca1d9e7ea0a91866201e08712220cf0d6d5f5 91a3283ee986ec9e7f25efa757a93322d0eaf07e9cdfa316ca5f96169ce85895 407ad045ce86d9f35b49cfd6bf116d22d70aad5777dd46aca0ac938cdb0859a0 96a63b955eb4c8d8666179b1e6d95fb193889028666c17ff613ad70c8e9c84a8 c66cafa7496fefc65a69b94b9ba5e1d5b944b8ffaa613fd3d04cc26796c0a5ba 2d6d6bb91772ca88f254a48ed8acfda7532d98f9d5b7d88cc0b0e57e5d02d327 4be18983b93de871c80dd536b7cbc274729c142a869ca7d6247c769ce44fb92a 90b197da1818303000994e0a6cce0fd6a524b0d5d33802ff7bc6099ca05a77e1 5f5b1a7a379baf044715bb6cc9943e5be7feda7733687e9e7f960594d1cd925d dcc26c02a8f37102c39272fa0dc6fc3f5fb20f81d61131e7dc39e862aac67cb4 bb9db02cea461eb5bc66b3d0b6bd78afd0f9536f5f907d53139b574fd40818fa f3c85343b5b8e77b8d164bafa35075acf022679a99145c46339f12a31bccc31b c17731415fd5a998d2a8e33c4fe39c1fe4d711dbe2b0ffc47a171a1ae9016c20 98f041ce3a0240bed3fd2e2e174a19bf5c396965897b3b64019e4e22130be4fb 6b8f3589719040c2b123716934d430aaec0bf30c04ce6e1980552947d3233966 1f72ec517f6318586521e5d4c45a58bc53530fa66efd6f7ef3d94fcc35afc26a b4dab34757b5933c85717090211219dafdbcbea0d8dbfd99fc05288feaaf19bb e8c905b49e7aebdc42529c6ec1f7c3ed523b399f2a71e61448b8829873afb8d9 d3cdeeafcf60fdeb9c878f6386fb58f180bacf6e99374e89e2704d3e69262b16 07547873c342d897940b8496d1f38e9088ce93dbda7e866ccc8c068fc7210223 1b27bad26cb4eb65dead908f9542a0b68b7a5d0b4ed989a8fc74f5e4d5a1fe2d e408abdae204cc186e0a2b67749500b3f8c51260ea094affc634a4953447c3cf fd2fbc2698bb86143bce8b232722518ec936358c7fbf69effbebdf6c3610ecc5 957fc30ab08d2e2f12ac47ddc6322a710b76f900c3dda591f048886f80165704 1f712a84065107083c0f79ea7fe4f92faae9c9c04cea4384478390f1affd066d 18ec102b5154b78ee8d468a4162c0b3a10bd19e1312e9d8564d5aa5da77f7e56 1b6852c00138225f9101fb1407fdb9ea605c8e0862d81aac19b869af18630b27 38d8bb635ba12ec2461ad673a27aee5bdb592d8bf08da6c14815ea3e59466eae b887ce5b0ec2f54dbdbd30424f317f45c6ae5d1cd6f44316c122ffd7c178fdbb 8a068cabba00c126bcad2f17a454d0810a0533629ff6b1069d5cccd5f5e52d1b 07869a59eaef3456267bf050eeda457c1029fee50b395fbea1dc6d7d7cd18d76 76ed7a78cdda4f105166f61ac728ad25beb547d071e0e515840dc9559551bfdb 454b080cc49e268fdf556161a92fe7d93219b395625eadcfbcfa8a9ed61bd7e6 f42d58a138020f2a69951d2f67641c39e98bb2a4441b0ebccaeab4e731e734f4 136e6b193011bb221ee9d099ba6a23a5f1340a1234a50a4cbbd172cce6cd2b60 15e10de447c4df7db80ab79c4840dff6c7eb06cd931aa58c001c02229220086e c1f2c3544af0a581afb28103ff5ccb7488ba861edccab702611dcf1628f77669 3bb25210bbcafa72dd0a5955a85419c425b9b176ee110f88e341751a56a2dc61 209df3ba68eed540b6df151f60ca61a8a4f93456aa864e179ddab8844290677b 669ccf3a67a2025b5cf5b4d7d2dc7e1e665bb55e72b8d02ef4735d6c68764ed6 93322f99d69636df06023648c22f86953046bcc662d6079ae2c7314bfff5f5d9 bbfe514c8beb08eb4a469c2b8e496671de9227b64ec3a26db6202935f7b92a6d a03d7c9d53126432b6337cccd64c650e0d4d6e3032ada066c9b2b891f5b74900 a9c3b0481aacf53671ed0d841106f05792d76db3626655f8677323d0b5d817d0 e7f0a221493ca7ffa8ad261e9663ea965a3bc82ef4d9031103337a868f80ab46 4f4a0df2f735b25807c9f3268a7e0711ffe63eddad14787806e67ec144ef1d17 083343ebd10a7e9aff9e6c1e349c7926ed0f3d878fa8b13f2904cf4efad6ca39 1bcf1f1f4083e5cee93da0746c5cf983004657c5c8fe4eece7dc424f72866db6 86212292fd27831b68e36bb169ed0df0d23eed7c87fa905de280da096e57e140 69e00680deaf32aa3986d48eea8811c87d7082371d3d48049611253d1d0c5e17 c80a7df4469c54882ab077cc8f0defd8b88232205c3406db6bbb157580bff648 e16b07a670f7fde9388e018153644252dca0a7fb24b50991c2e699c90d827fd9 b5ddf4cb8f2048f8d4476b649727d7654fd450ea19a29e4bd087a073404d6406 58c8f54ff20565298cdbe2a6cce4a24e2861a92b14212a05e854d04aa4bfe13e a5fb10d7736a8f03e6e306d669bc6f6cbb29b34958a8f4208e4b394959fe8668 e540699edffc8aad936f803b2abcf963889c85bc44acf6c9cc2ce2a12716f7a6 37c07d2d6879ce05971c3842d69bd02a41e3da3aa881eff4a38f9997494e922d 550f63938ceae8afd845a348c43f45f3f7173ddff3f885611d402f2477ee706d 8e530fcd2b6ea54093e445adca8c022ee291329e37228c5757270e9f21a5b2bb deb0a0f2d25224b0fb67a610cfce5a7fe61dc6ff049f489f1e15699a229d1555 fa976700d9fa69fb212aaa6d8a7d5604ded821ae4c63f87af0b4272ae421a29d 8801b6025ae855c0b1b978ad52c1a8869d81a2a50f65806fe9627bddede8891d d8a37af1dfa7cd7293c3938d32e410bf39437bdf149cd0ceee8809e3e8bd9584 aa3588ba05f51ed661bd48a1e11feafece70752b7b9ccd8b590afd25b0d91843 189c395e9c3409117be9784048bac366cda47f117b9260318bc8a894045e5bee 3a1e39af73458bd24b269b5ff40b96abaa885d1e895447297375eb8493d7282b ff7bd2b53ef951d02283d782e1bbb3068d2bfdaf811b6d4dcaf4b2a962783e12 f9f6b211bd4356914f3e3e7a3dfee75d69123468815e6fc7bf6e037fde16f129 ff01ab1eaf878bb0a12620a9aaa6907c4c88c18390d11553507d8d58a9ad0e51 a34ab4ba2e2128ad04deb5cf7d232d245ca20323a5b797b566ff73fc6dfc8bfd 262ca73f501e8d62b807cf9239e32740a2c2c7e6e3b3049508cfa7bfe22e2795 c469e5aa2c2b944c62b734b983024ee9541b60b9e9dbd27e72625f6cfe218ff9 417a053298ee1042d72f2749fd4b21d6afbeca64cd21722628dc52e8d9a675aa b4378ca91ee21bd5e41d78f78208db17434eb55be3eb95f8e69957c0ff3ad892 bbed02be41e9b29d6dd30b94c0a8a0c3a23f5e1906a2930b434e4520148f17af eb3a6f22d2bf6ba1f23c3eb89b66e14f20e409671c4b65f80490c8a3c60bae6e 9a2c69f153ae23b4117078eea05b7c40f0b484c8d11ee2b563533b23166b760a d3e22fca2b5b5667b800ec7037de99a585a7081d565eb61f8e7641f58ac1901e 1030da028db2ff84da46b251061212dd2d90194e5a8f64edd40a2fc547d5ae86 86bc73ff0a665456746074519505db6b1a96042b1674d89e1b00329deab4d97b 86a8d3edfc29fc47971b2e19dc715fe9a3369addb725a8f4b14094a4bd81b77b 5bb38ccbc7a8e1647767d3d660dcd19bcd09c1e5f9237ec7d37ee1930df5f0f1 2d0881eebd0cca2fcd994fd445ad2e620a7386c3a10d7dbda53d5893c4fa70a2 ddf4d0d5af1be8049bd3a57a580e5fb587eb5e3d0aaf73d40ff2134d17ef736a 36335066a493bdad7b4d5540a00cee82bf1b1832eb9c06325f7d2591bb1f6a2c b4ddfb4df9814dad3c9a59b05d57d8be208810831fb650efd8bc629c4c006e9b adbf2a6d0bc51cd88c47b6518e9183d9f25c4de7c6842f37cfd0c44518bcca18 6cd7d8709bfe03d9cac1ed9e19e0119ec41b6028fc2870e465ef7c24118ed54e d81de4113e04a7c4eca75d5c9f460324a84af18c3950b5d253fc11325a15af12 0e36f90bee4787a175c6ab7c1a39be8ffe1324a827028101243f60844594737b 7f597005909fcba78840e6297b099163a356c77032055920da96bf7374a5cd38 f71a74a4cc74c33d1be512f1a1af7aafd876e1d5eb115e945adc76d991b13bfe 165ef522d5e6b85f8da52053f20ba774670ba913e7fa1cce03293a4cbb5a8969 6572e555aa0a83fca4557954d438000d29bfefb09d87962751c77f15793a83b7 cdc6e6f0c4d7fad961d4ef287e00d44a1f61ba6fc0786c13ed8a2550a1914ae5 f1eb15a53984f208e755a9ee908a48b8038d0c219aeadbe303c2cf28c6d7db63 fd1777db279471c852890d0a018d7660617a94911be483486b2c3be1fae8070d d929d68c2356d58d84986662ce0e783e27852b4afdbf8c97f1e47672a96aa0ac f8ee51676e0be143cb4dae6cd40628d0b7012f1ffd638b14f7311f33103fb53b d91e689cf8b6d4930fb4da13bd6343f97e51613b9e6ca03e2fab85f12b1cd835 1078b58f1b82be751a2dcaa1907b2b7bec05ddc488d7388e9d1b29543de2ad43 6b75f758b144fd7b93a4e3876dc06010507f3e7037f3f8f078f24fb5972f7e73 5922b8942dc840cfa4e3d713026fe17362a47fc060c7282a9f7684d89921e1ac 2963a1cdfd4682857b4285e68483576bf2a05491d74a390dd017a95d0ebbe786 8250bb41eb0aa7226bde3a4dfb5b27d7f97421029f2bcfd26fc1a0f3c256b9ae 837aa46745d5de4c5c275ae1f625630648840e9fd199a3c4d00262c696bcfbe0 8c7870e1d46c02a919e381d27455dd4ed5049d33eac72c56810409a6cf74f242 d35ca15c50cd05b546e643835cccf8b8b7ab291bb362bfc92bae2d06c815d612 309ecb8d79321f1a633a934d61a4a0c873637fc83695b61135748ec860785f60 6cd96e593035ccb3103ef1048ea34dec7e52a185915852151dbb086768085f47 9e89ab18c2cfc112b6673118f12d7665c5adaa6853eb08b0bf6061e0b8a0adcb 86e2f9be796a4586cbba8946c9a797aa830858ac6358c4dc5ec98d6e3653ad65 8428f17dcd36cceabdd86e4a2ae4792444b7daeb08958ec834d699e4f9e960e8 5a883744174e66c192f05ab50e2d7978325436b90e06d67fe84a1010b3ad5e36 3a477bcdd07f49becc828dc7f48fd214fb139b57a237ee1e3668255af55a4135 ba74aa557ba6287fa08a4805235fbf4373ec0ed49aa31fa3f99f990f2ce9c12b b54bf5b52f80dc67e494b0958f473f9d0bff8831a33d17dc910b6dd45bf2ff37 b1eb44f40972d710a0d19f6046afe4484ad2a48412ae185ca10c3ac5cb192edf b172b5626e7023012a6ea10d9c8d749b0d91c563c2b9c025fd7cb4ccacbc5478 5bde2cb58d942e2c9fc3e4b22703c1db47f629ab36088cde1105e7a8c624ff7e 01d26899399ff91f4f39b1150dfee69f465f44a9f289c78fd050d7bf66200a93 326acbef82918a3bc1829452b0c3a5bf15b974cc4c85b9aa0a8e9e437819a8af 5ef3df8c5f451e7dfb18bc2cae853988b550dd963c5f150324f5348bee3a5709 c15026d9b4a90e50c8b0b8f13a46e63744e95b50f495ae6c30a612643316cb42 0a737e142d8fd6322a635641bd24afcf438b121b178d004bb29fcde186f9f873 b8172f44a6f75622d9d64b07b998d220bcde05d9f2839328105bd016cb80730f a67fcd5598437d21f60b7b184d1ca74e661a3b3d100ec7f45839e96e0fb74c39 faa05e9905e9074a8825683cd47f9efa112c3891cf8648e418f237c923208fb2 bc20674bef2cf1de80fc61c3e30669c9b01976598849fe3d9155920ae3c009b7 a7f9de4589b512b6219900c73731245412952085c619563c723d61c0270b2a94 9340b5d26323bb7857e6eff428f18a49327242a5e7e4ae7ffa30e9385a02a454 9edbe201c62fb7a47d1f217947eec329a8cf4ec750190bb8989aa848fc3762ee db9ec2bd3cb7221bb4fa7654046fe8522e4768b5b01197dc84d4f868bcbdf293 282da8a907a9ae670b6366bfbd07ef6534127eff7a7f99ef5441f750a7f0fdd7 16ac827cbcee87ba2c9c3a4e4fd9e0ab389af7a9d524dce404a46d147607dc7c cff13180b64a7ff61d4fa6b82ed0736a251f5d912d96569c2e454f52190180d8 614a372969c52351ac3dd829bf24c08f6bb5bdce3dc7cface8a3ac69b2c54a49 f61fcfaed3b3ad2e266a2099e19a9b6275f8e27769f0b4c13aaf831a0e9dfbb6 18c83d8a278edea2cd628326ad659f1e1cc456d98916f0c6d1b4856bb1919f4d ac7adddb448825967ae9a1c158b1f601a7efbec3e76bfd7869be9060622770ea 785279366700c330843b3bed717b82003c5569330da07c8b09ecbab3b013f084 6a314a8a7bf3f03727e91e3c60bbfb7cb9ddaa30f5de85da4d2dd4911c9c61da 3767f9c533c58748d89f96fc94a25c89d0ef1120d3263568a911f0978a312a7a faae86dc56ebe5af19b0b25c2df0947caf214ff95816b017481ef9e3ba594bbc 80bf7e3e8aeb52e397022b93ab95957753a094b1e52bff8e3d7f0d04a17cd286 e274add583659138334576917cd517b0394969603e833ea4de0c5b38c84c0488 1cd8c904f7b3da660cc12d37945325bf9f06bbace83f1b64fd8f997563ce8efb 82747a72c81691f88c898f11ea2c054aaa6bbf514cfca02b56cc99e5dff1a481 94fe5039ad6acdbef5843c8e4fbd04bed9d9b6af1420fae38cfd1772b2e3e1cc f7e4450a01668388fc4ddab08cc24af6bfabddcb99712100c58ccf5e9c9a17c5 e40d316fadc3bfa62294a091ed266bda81880f3bfeb6f6cb9f8c9ab03c73ed64 52ad9eeb2d3ac8635cd9d2459b2c2d34f952bd75def9f84a60be2254409d33dd 04ca06b44cbb8c4586ff98376b6aeef2fc171b07786381dd978e4c366345441b 280c8d25c53ed779369e14f6d7066db2c7dbe003500314505e1c3671fc3b0ddd dee36439ac826862509d543302c387d54cebdcb6a5502376213596596380ba14 b7880a934ab08a6abf6dd4093dec4128c8082f3d92b5d2d92cc286268f1be343 312773834d2d1f8433d6ad2a938859502d867dc25f0cd96e98e4bf4de131dfb7 a510583fba93ae8718a1f89d60e5b5ec026d91d28ab3e9ab81d44f8b010f1138 83325a09382ac02e6f7fb07fa95f90c75d2d926c8ba15701bb16f608b91478e3 bbe8762c90ec7d507f9ea95d4c3f46465a2331b859db5d6cd9b590e1130c4681 297cf28679c41a91175d4a5f4c580a1de13371a453bd5e0d38a0b7c0807f0db0 2deab94fb7aa3c7f3138042ae532fabdffdf953b8feb36631b29f5ab0bc0438c 5f9ab0ed3eb87ff056c5552083b2cc268689be24162942776f59b7f9e4f5b41f 81e5c947ae042d24df262097bb9218842738845fe30e36afd81ccf6e2c90d34c 5dfbda79c932d4baca44490de00b02ca929433e1f25000ccf537d144ecbf943a c21727920d9beb432402fb17ebce944da34f6fcd02332c53ddc0c3cc2536cda6 7f80282b423be2e01a464d062226b47b9cb5b4e45bd5079ccef3a064af2aaba0 905c5f1a3a9a333bbcae9123c29153710fc66fcb65e318ac005e551729143d67 da0dd0c698dd7e387844f603cc17451bbb725e2b531a85cac01ec08bf1b9ddef a0f9483de34ce375c835aa613b2f289d124087071ed8b4a37a0aff1981a10b02 fcf7281c0d03a84feca7443b91ae6653659df5e26fe1e0d5927daf090bf54fd4 e730348d1e83f6cdd345b5331906d30858b8944043dd5ac14859db6e68360a18 c7fd1b027d91a14312fc35a30dd12d6983fa9d9526e0559bfc376385715da2af 4908b2b2ee3388cf1fd9b7bbd5da15434739e2f12f44481527dec6241d7dc090 79ca05f15d5aaa3507ebb89e0bf0bdd55f45fad40756621200e4b883facc6c00 c0f6e41068e0a32547afe4dbc0be8e5e57836d47d81f746a931411c615a145f3 afe966876ea51677709da171d16671ecaeb08c8e5799102210c7c0e4b2083148 0ba6de1793b208efd7e5b958b04840c57b7042fd3cf0a7912e238315325f665d 458e6158aa22701949facece70812472f30bf5e8fc544ba99a643876cc41ed10 48daeeb69ab01af53d9018687bee2bb47b6d4acdf1ee04a46b1a488708eb2cf5 7733261d6453d095af9549b122c6e183b76cba9def22cbce32c49dc615c0988a 428dae015300fac0988ca0c6c710de1cec4bd2686562dd31c73d70bbf2697942 7bb004e3b5e0039fe7f069073a17144ef3301bdc8b2f64bf80e69378dfe988f4 bf3fcdb94b79673c06452035bc0b82acb500b8611a958a7882bd4542d895fbf4 a0e0ed758057bd468c31e7a746a72ff9360340bab2e50ee83f152cfe04d8fceb cf05f7198e08ea12f9b2b15f79a2c7c20025664b25dc6cd3866641dbb5b638f6 cf50f20f6ddd40cfe3ec12be71746d38f82e71cb2fecbf616bf275e9911fc886 c8dda19ae13c8359a162e7a5d643867c138b7a27af42cd13dbeb39675fc9bedb f9ee5af9bef261dfe00b7a380866f5146460f4326c02591ff735c6c5edb7d2e2 648a99d75b0c6e56e58e1ab20eb30c26df1cbbb93539de70fd5109089c085dc9 86a1149ce85dde78d04629e2119c3b1defbd74348ee124188aa072c646eb4369 61c2af77048a217f8a87d0c1be164877e38905b9c64c4ca7bb245e3f42604d2f c444db2c200ae6dfcc4c121137174bffe00b8cfce8387ee395c9e2d7796d0b65 da7a0e628f11141f1464b641f82a6d647a706189d18d5a400229ec79fa6e3c1e 561a53f006ffc78822f0a7e8517a920265e4ef96615ee775c1ab93d839dc4fad 5dcd0adb608f0d3812be8681e0b59f084761d99de6b08c026005ecd0ee54508c 238309ed46163b5fb393891d90d8cd03ba417a04d6784396e7e8d282a3b84431 df3f324c703a4988c50004c716bdb31e4eadcc915e78a6b1898026d2dceaeaef a6e82b0ee80fc15221de932095e35adccbcf4ae515b504e4763ad46ca8c568a5 e2605171ad638caaeb21a80cb5877e2da5f053c3ba0db377121a6798d59ad99d fab5488cd3b25bdd8b3a26a3805ede14114e72b50c9c8fe2a8c6384aebf27dbd 5df066b1f4476f4b9d457018fbb57c22622b9e4a3cffb970da1a887bcae6123c b46af62e50ec8ee8fee48fb97f127897313af992c2ceb38b2e7cb704b851a492 5fddb642aa7d5ff2db9dd54dc1980a33df42045e02a2ef62748384a976fc35d4 702aadaccbe7cb9752d28c3a9d15fe8389c92c21ddabf3cba6b69e857565df1b 0139de5682df570e15411924a259f42a86a3d4d2d28c28252a66eedc95adedab a7c61857886af046f66f314880e161176f93395cde18578d7d7596b8c3422841 5fb26419e6316192efe069e49d948fba20bc602f81030806a0665c9cb9ff1449 9ddc0b5fec5fe41f09092ff543a6557b399f57b9bb39ca2d86309eae7c9f91a8 3fe58466c209c521aaa358aefb0b07a8125ab587c4f15fb38e6493fffd24f615 492759cf86fe0caf7049c448929bba2ee8be67eaa0e0aaa9b5f636917cd01d66 897982861ee57528c388adc791cdd1a857949ee4906ac4e85962866fa79d529b 7544adbe7fd7d6bec3fd3ce6bf589e6fe7a9f41962769bd41ea21b3a9e258fe5 a5f8a6ce8ffac7016d5b2cd8b5f46f9d53bcc33658f5b23a851bf6803519da02 426af58a0790a33efdb65e2d6cd034c264d1e1c18d6c8b0ddb845a4bc0425329 88b00ebc782cb7c99a9fa21669a752e9e951c24309317da475601ac02d614bb1 d16d3fccfe3d2f6535b7770dbbc7a7a44055fa5aee59ee1e83ae3af53c138e98 7a5aba2257e904fb80fe99f6c98394084b3cce03dccfb9279fc1fdbd19472b58 d8e5bcd8a3a7a3a5db4f5b50dc8e1ab20629f13d610a751b8a3609e782a2d9e7 e9e703b5726a50229a3a479431c3640efedec0f5a84b217bd0b7d62071520179 895001bb04a291c250a79f6e4ffb1e121f880872e5557cf73b3d5668b7cfb285 f51310968de06ccee34bde0e84275f5ab2a72bc3f9a63f48f8955681f615f091 c95b0e944030a4ab48a511b48015cbe8e01cd6322a500b702a9f85900e1ae8c7 b98db59f0d6d8d73d546f1409d93689bf313e812bdd928e05b5488d9cb66b738 3408a5815a170e93fd30f68f82818148a0bf8786d6bfcd09442046fd9748401c a8d7e4598397eafe105882d035d45d1d6ec61079de963db02500e255c774e8bf 307bf9371f54258aa40237d5bd1581008a9875e30abdf7da39cc41ef4677662e 3f98d02015c91f234a541df1958cdf067918d71d054da3f3d3ef37d193690dfd 9d6a3212a0422c96e7b40e66b7a243a7acfcabe0c5466e7c0d425d228586864b 772d5a2b0912b061ce0d15fb76728df33e5c42b125a9fa7d5fb443d54de43df7 a47a0106a80b7c2823bf7060a7e3e81e0cb7d7442057e93b6f38593b900b4e52 1a0113c06ceaa6e5d632c7c5e9492ad0546f85313238d39bab419ab657d04ee0 166667660ae8631ade889d60972b2908a6ca4c410e8c06451ce1eec3ecfa092a f30b6046756ab995176ebee3683ba8570d69ca581b52a81a21322e744792df16 9f035497dee5701193d55350b11978cf074444691b5cc3513a3cb8eff7f067f7 96edee530ddd825671f5bccbafcc30718a1902b173652e114862815fd0ead797 88362354737e832fa7dd46fd76f8e7b140d84053ebe209b5e9556b2f723ec229 3424d02f8da40f6a4c5ee291b658eb17408bbb2bc98689d0826fdb41428ee6ae 39475c480489083bc7b7f606f68086b7b9b205b4e513af8b73da6c2d0f3eb1ff 70d97d205532cc0bd6f6d4f4fc37ae957a48353d45434c7257051b263b82333d df2d8acd0b7c7bb6b8ad9643bc1fd0b5eb0732776022d6213932021a08f0734a 3b35694705a828587bb9c4196dfc4059a9837e7c46dbe6153def24dba61d3f25 9bc5d63f030fd860e9801dca7b81d0d4dc3d8c4cbaec3b9a769fcc09d7fac8ed 4c046e0b64bb8db2bafed5c91b39fe0885cd5e6bb5fad3917d664238c4642fef 6c4c554296df92a9563a29430485ac48c2a0f02ad39398126843ba348005aada 3cbc9211dfeb94a6d1b4b14d7138d4e2583d721bc9595e05c733043ba6d86f91 5dd250546f22f9746df5c4ac9f99106073336949dbdeb1ed3dc746587c1adfd8 48dcbafe2cf0c204c44793e7892ecdb55c246cecce60f467c2991989f5be9d21 4d72a888116d8a945376697b5d7034d62a680f9e91011a57b797d9576b043d1c 4b73666a7275e93a3b7b52feb6e8424f19a4914d4f4ce621efec308d83ba912b 7f5e0089ad1c15175216c27afef512f05312e2bee6c5778c5625354b9b3c70a6 2923140eb3f350d73d06ab95c5232a86199f41695b6cfcad052a5dc27d0705ea b4c94332d917236dc24f52172c94e05c3ff9203fbd34c13ad9d9e076dba1e23e 47bcf2c96a1c8b3ffcf2419f7d5b47795d9d2923fa5905b5ce3b4f332a89c5da 71afbfc57de12ad8d8678d1f67c1898c18249faf4d9f427019445425a11fff30 9164be83b0594c5f312d653513ade66d5ddf29738cb823bee179ff864d01a740 f759f64e5ce1d82f7841118b263929951fa7896a87c7949d9ffe0c5c5fa07fc3 e3dd043a9e4ccfea80de6ab6f460c46f852753220acc9645419b13634bf351ba 35a1126d0164e6e64518a2ad5522a73fe38612a34cb6671c48bc18c919305bfb 35c57b0c8e221fa7519d5b1d6d168d8bc0375d174eab1ae6e9e44fbb7d9ca6a2 f04c813f119939714322cb87c693a2499c9c269bfda53c78e7f04c775ad407be 49f8679e345bef9d531654e2377e61bddfa4f8aebe5bb6dd862d298519bcec25 54c40969c9d1fd16e5a126cb22b8bd3976f68ecc8fc8dc9c0fbf51dd20c839d3 b921da7d0aeb93aedc761f31f3a3401f83be4d38169ab5368ff41481d638736a a71f624adb3c4a275e6b353f139e089f0e02a27bb003c8fa5eba4f1b989b3282 8dd8d049529a84b2727733df2790637e437581de00fd5aa03c516360e4644d55 aedaefa76f7f729dbdfe2fcbd2c05dd593c74f4eea31518b09d8bf2094354040 c260b7b4bc3a6238bcb61b03e6de12e3d63be9f7b5f34441d9a44304911eb92f 93107eda8946de92bfebacdbd2d950d92150d1f831d6829fad5d62c75e5860d9 cb3e3062cf867305a0ddc020bf4bac7a2d899a9481a391152151857cd53a97a6 6f7cd99c190f119185d33e49f6ab5ce20e61540b21387358f1233d2b39e69924 7ac33ac73e337a1a54e9d574ba856e0d3cd7267483581dba9491619f91b12996 d1c33f89d5dd6407bb98323467e9a6e3be4afc06c5006e19ab8ad06b0a01fdd2 ad742bff310f17f16193d7ab584c71c34372690521e0afbc4e6051025ec9a4db affc01120edf545631e4fcc2a65c488f25f640260982b7458f83125581d36f18 55ab4d823dd44112967e4fd41cdd60d6644617a638ffd5c9d89d2a95bc4b1b9b 8178777184d48f314554a19a444fdd509ebd345b19a411bedf5a0f59e9c4dfd5 6facbb6ee71145168e06a6049f1e2b0e3f91ff26a2cce2db8a256400876db370 17cb684540eea84942aa295cb079951554614e45f8d0910e15093aa1d4877c3f 543f0957ce9074aa051182c9ba6cf64058a403cc63cad5335f51aa32c76e3d8e a3677bbdb623c2c5febec43e5490decf54bcf7d9cf35a4e5b9ab5577649cb61d a65b3fb13156130c55b44a78849ff4d84136f8ee4f2a368de63f5799c822c3f0 b27770a29973541c4e137774fa958c0ea6227a57610bc6f056662ab2f7ab4aac 6893826c13d3147b6fa6075cd4784cb799cfd972d9566227db5b25bef8641534 6fb8cee4e06dc0fc49be6237a2720e3f9b7bc7f22a0a5ff2c276c2aaa00ab372 7e59f1642709f1216403c0f694914e0be6c5165b21c1a736bdf04da8cd699fdb 1b9e1553a56314b73ba74d83ccdb0723469ebe15cf10d7bb4d16f1c0878ffe68 f015da3e534334f53a2591d30199a0ccfc0f3a239559e4d0c7fa1fca44442141 3bc003d6be7ebf1e9affec62467e98ece66bb2216b4cb5ce45113e75ee023635 9a3ca384d603136fe5b5da21465e6d406931020d030ad932cbaa597e170298b2 12b15b8434612b12d13844a3e5a46597b4c26148a3d6f5c42fe2d949dcb64b40 44034791b7d780f75d119422d56fae911d5ec40189a4957b13b9b75d991ba190 fd3944c8ea1b756747a0b14492b04053dab4418ea5a96e1b6b12ccdfe739d392 d023e003e0463dfff9ad29e5a0547d5101e9d6ecb59f376860952fb748d15b68 1070ba9d08b9436b65b80b20d7c6b65e4476553338f9f17dafb46471d293de8a afe9d55d30c38a475b9e8d00d02690ce3562ba9583038b5fed7940cb4d7cd5d9 79e2532f65689847 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndResource %%IncludeResource: font Times-Roman /rm /rmX /Times-Roman inf %%IncludeResource: font Times-Italic /it /itX /Times-Italic inf %%IncludeResource: font Times-Bold /bf /bfX /Times-Bold inf %%IncludeResource: font Times-BoldItalic /bi /biX /Times-BoldItalic inf %%IncludeResource: font Symbol /sy /syX /Symbol inf %%IncludeResource: font PMW-Music /mf /mfX /PMW-Music inf %%EndSetup %%Page: 1 1 %%BeginPageSetup /pagesave save def %%EndPageSetup rm 17 ss(Credo)283.226 760 s mf 10 ss(!)58 726 s bf 11.8 ss(3)78 734 s(4) 78 726.15 s mf 10 ss(")57.5 682 s bf 11.8 ss(3)78 690 s(4)78 682.15 s mf 10 ss 16 682(@)54 726 b 0.115 47 712 br2 %1/7 -1.831 129.506 696.03 97.75 702 m -1.831 129.506 693.03 114.853 695.785 m(5)91.9 686 s(J)109.003 682.785 s (JL)109.003 680 s(J)123.256 680.106 s(JL)123.256 680 s -1.831 175.117 696.03 143.36 702 m -1.831 175.117 693.03 160.463 695.785 m(5)137.51 686 s(J) 154.613 682.785 s(JL)154.613 680 s(J)168.867 680.105 s(JL)168.867 680 s -1.831 220.727 696.03 188.97 702 m -1.831 220.727 693.03 206.073 695.785 m(5)183.12 686 s(J) 200.223 682.785 s(JL)200.223 680 s(J)214.477 680.105 s(JL)214.477 680 s (@)228.73 682 s %1/6 -1.831 129.506 730.03 97.75 736 m -1.831 129.506 727.03 114.853 729.785 m rm 10 ss(Alle)77.9 748 s (gro Maestoso)-0.15 0 rs bi 10 ss(f)91.9 710 s mf 10 ss(=)91.9 720 s(5) 91.9 720 s(=w=)109.003 720 s(J)109.003 716.785 s(JL)109.003 714 s(=w=) 123.256 720 s(J)123.256 714.106 s(JL)123.256 714 s -1.831 175.117 730.03 143.36 736 m -1.831 175.117 727.03 160.463 729.785 m(=)137.51 720 s(5)137.51 720 s(=w=) 154.613 720 s(J)154.613 716.785 s(JL)154.613 714 s(=w=)168.867 720 s(J) 168.867 714.105 s(JL)168.867 714 s -1.831 220.727 730.03 188.97 736 m -1.831 220.727 727.03 206.073 729.785 m(=)183.12 720 s(5)183.12 720 s(=w=) 200.223 720 s(J)200.223 716.785 s(JL)200.223 714 s(=w=)214.477 720 s(J) 214.477 714.105 s(JL)214.477 714 s 16 698(@)228.73 726 b %2/7 1.83 281.838 680.711 238.679 672.727 m 1.83 281.838 683.711 267.185 681 m(K)237.929 684.727 s(KL)237.929 686 s(6) 266.435 690 s(=)266.435 700 s(6)266.435 700 s(K)280.688 692.637 s(KL) 280.688 694 s(=)280.688 700 s(K)280.688 700.637 s(KL)280.688 702 s 1.8 324.598 688 295.692 688 m(=)294.942 700 s(6)294.942 700 s(=x=) 294.942 700 s(6)294.942 704 s(=)323.448 700 s(6)323.448 700 s(=x=) 323.448 700 s(6)323.448 704 s 1.8 381.612 682 352.705 682 m(6) 351.955 694 s(=)351.955 700 s(6)351.955 702 s(6)380.462 694 s(=) 380.462 700 s(6)380.462 702 s(@)408.968 682 s %2/6 1.8 281.838 720 238.679 720 m 1.8 281.838 723 238.679 723 m(K) 237.929 732 s(KL)237.929 734 s(K)237.929 736 s(KL)237.929 738 s(6) 252.182 732 s(6)252.182 736 s(K)266.435 732 s(KL)266.435 734 s(6) 280.688 732 s(6)280.688 736 s 1.8 338.852 720 295.692 720 m 1.8 338.852 723 295.692 723 m(K)294.942 732 s(KL)294.942 734 s(K) 294.942 736 s(KL)294.942 738 s(6)309.195 732 s(6)309.195 736 s(K) 323.448 732 s(KL)323.448 734 s(K)323.448 736 s(KL)323.448 738 s(K) 337.702 732 s(KL)337.702 736 s(K)337.702 736 s(KL)337.702 740 s 1.8 395.865 720 352.705 720 m 1.8 395.865 723 352.705 723 m(6) 351.955 732 s(6)351.955 742 s(K)366.208 732 s(KL)366.208 734 s(=) 366.208 744 s(K)366.208 742 s(KL)366.208 744 s(K)380.462 732 s(KL) 380.462 736 s(K)380.462 736 s(KL)380.462 740 s(6)394.715 732 s(6) 394.715 742 s 16 698(@)408.968 726 b %3/7 (=)418.167 700 s(8)418.167 700 s -1.8 454.774 696 440.121 696 m -1.8 454.774 693 440.121 693 m(5)434.271 680 s(5)448.524 680 s -1.831 500.384 696.03 468.627 702 m -1.831 500.384 693.03 485.731 695.785 m(5)462.777 686 s(J) 479.881 682.785 s(JL)479.881 680 s(J)494.134 680.105 s(JL)494.134 680 s -1.831 545.994 696.03 514.237 702 m -1.831 545.994 693.03 531.341 695.785 m(5)508.387 686 s(J) 525.491 682.785 s(JL)525.491 680 s(J)539.744 680.105 s(JL)539.744 680 s (@)553.998 682 s %3/6 (8)418.167 734 s(6)418.167 738 s -1.8 454.774 734 440.121 734 m -1.8 454.774 731 440.121 731 m(=w=)434.271 720 s(J)434.271 718 s(JL) 434.271 714 s(=w=)448.524 720 s(J)448.524 718 s(JL)448.524 714 s -1.831 500.384 730.03 468.627 736 m -1.831 500.384 727.03 485.731 729.785 m(=)462.777 720 s(5)462.777 720 s (=w=)479.881 720 s(J)479.881 716.785 s(JL)479.881 714 s(=w=) 494.134 720 s(J)494.134 714.105 s(JL)494.134 714 s -1.831 545.994 730.03 514.237 736 m -1.831 545.994 727.03 531.341 729.785 m(=)508.387 720 s(5)508.387 720 s (=w=)525.491 720 s(J)525.491 716.785 s(JL)525.491 714 s(=w=) 539.744 720 s(J)539.744 714.105 s(JL)539.744 714 s 16 698(@)553.998 726 b (FFFFCCCCCCCCC)54 726 s (C)543.998 726 s (FFFFCCCCCCCCC)54 682 s (C)543.998 682 s (!)58 623 s(")57.5 579 s 16 579(@)54 623 b 0.115 47 609 br2 %4/7 -1.8 114.514 599 87.85 599 m(5)82 583 s(5)108.264 583 s 1.845 161.944 578.91 135.279 584.909 m(=)134.529 597 s(K) 134.529 596.909 s(KL)134.529 597 s(6)160.794 591 s 1.82 214.474 570.94 187.809 574.939 m(K)187.059 586.939 s(KL) 187.059 587 s(6)213.324 583 s(@)239.589 579 s %4/6 1.8 122.547 617 82.75 617 m 1.8 122.547 620 82.75 620 m(K)82 629 s(KL) 82 631 s(K)82 633 s(KL)82 635 s(6)95.132 629 s(6)95.132 633 s(K) 108.264 629 s(KL)108.264 631 s(K)108.264 633 s(KL)108.264 635 s(K) 121.397 629 s(KL)121.397 633 s(K)121.397 633 s(KL)121.397 637 s 1.8 175.077 619 135.279 619 m 1.8 175.077 622 135.279 622 m(K) 134.529 631 s(KL)134.529 635 s(K)134.529 635 s(KL)134.529 639 s(K) 147.662 631 s(KL)147.662 633 s(K)147.662 635 s(KL)147.662 637 s(6) 160.794 631 s(6)160.794 635 s(K)173.927 631 s(KL)173.927 633 s(K) 173.927 635 s(KL)173.927 637 s 1.8 227.607 623 187.809 623 m 1.8 227.607 626 187.809 626 m(6)187.059 635 s(6)187.059 639 s(K) 200.192 635 s(KL)200.192 637 s(=)200.192 641 s(K)200.192 639 s(KL) 200.192 641 s(K)213.324 635 s(KL)213.324 639 s(')208.824 643 s(=) 213.324 641 s(K)213.324 639 s(KL)213.324 643 s(6)226.457 635 s(6) 226.457 639 s 16 595(@)239.589 623 b rm 10 ss(4)54 647 s %5/7 1.8 291.901 571 248.815 571 m 1.8 291.901 574 278.369 574 m mf 10 ss(K) 248.065 583 s(KL)248.065 589 s(6)277.619 583 s(6)290.751 583 s 1.8 333.925 571 304.634 571 m 1.8 333.925 574 320.393 574 m(K) 303.884 583 s(KL)303.884 589 s(6)319.643 583 s(6)332.775 583 s 1.8 375.949 571 346.658 571 m 1.8 375.949 574 362.417 574 m(K) 345.908 583 s(KL)345.908 589 s(6)361.667 583 s(6)374.799 583 s (@)387.932 579 s %5/6 (=)248.065 641 s(7)248.065 641 s(5)248.065 637 s 1.8 291.901 605 248.815 605 m 1.8 291.901 608 278.369 608 m(K) 248.065 617 s(KL)248.065 623 s(=)277.619 617 s(6)277.619 617 s(=) 290.751 617 s(6)290.751 617 s -1.837 339.025 633.025 309.734 639 m -1.837 339.025 630.025 325.493 632.786 m(5)303.884 623 s(=)319.643 617 s(J) 319.643 619.786 s(JL)319.643 617 s(=)332.775 617 s(J)332.775 617.107 s(JL) 332.775 617 s -1.837 381.049 633.025 351.758 639 m -1.837 381.049 630.025 367.517 632.786 m(5)345.908 623 s(=)361.667 617 s(J) 361.667 619.786 s(JL)361.667 617 s(=)374.799 617 s(J)374.799 617.107 s(JL) 374.799 617 s 16 595(@)387.932 623 b %6/7 -1.884 428.922 596.735 402.258 605 m(5)396.408 589 s(J)422.672 580.859 s (JL)422.672 575 s 1.805 476.352 578.999 449.687 577 m(6)448.937 589 s(K) 475.202 590.969 s(KL)475.202 591 s 1.82 528.882 576.94 502.217 580.939 m(K) 501.467 592.939 s(KL)501.467 593 s(6)527.732 589 s(@)553.997 579 s %6/6 1.8 436.955 625 397.158 625 m 1.8 436.955 628 397.158 628 m(6) 396.408 637 s(=)396.408 641 s(6)396.408 641 s(K)409.54 637 s(KL) 409.54 639 s(')405.04 643 s(=)409.54 641 s(K)409.54 641 s(KL) 409.54 643 s(=)422.672 641 s(K)422.672 637 s(KL)422.672 641 s(=x=) 422.672 641 s(K)422.672 641 s(KL)422.672 645 s(K)435.805 637 s(KL) 435.805 639 s(=)435.805 641 s(K)435.805 641 s(KL)435.805 643 s 1.8 489.485 623 449.687 623 m 1.8 489.485 626 449.687 626 m(K) 448.937 635 s(KL)448.937 637 s(=)448.937 641 s(K)448.937 639 s(KL) 448.937 641 s(K)462.07 635 s(KL)462.07 639 s(=)462.07 641 s(K) 462.07 639 s(KL)462.07 643 s(6)475.202 635 s(6)475.202 639 s(K) 488.335 635 s(KL)488.335 637 s(=)488.335 641 s(K)488.335 639 s(KL) 488.335 641 s 1.8 542.015 619 502.217 619 m 1.8 542.015 622 502.217 622 m(K)501.467 631 s(KL)501.467 633 s(K) 501.467 635 s(KL)501.467 637 s(K)514.6 631 s(KL)514.6 635 s(K) 514.6 635 s(KL)514.6 639 s(6)527.732 631 s(6)527.732 635 s(K) 540.865 631 s(KL)540.865 633 s(K)540.865 635 s(KL)540.865 637 s 16 595(@)553.997 623 b (FFFFCCCCCCCCC)54 623 s (C)543.997 623 s (FFFFCCCCCCCCC)54 579 s (C)543.997 579 s (!)58 520 s(")57.5 476 s 16 476(@)54 520 b 0.115 47 506 br2 %7/7 1.8 119.633 470 87.6 470 m 1.8 119.633 473 104.88 473 m(K)86.85 482 s(KL) 86.85 488 s(6)104.13 482 s(6)118.483 482 s 1.8 165.562 470 133.585 470 m 1.8 165.562 473 150.809 473 m(K)132.835 482 s(KL)132.835 488 s(6) 150.059 482 s(6)164.412 482 s 1.8 211.491 470 179.514 470 m 1.8 211.491 473 196.738 473 m(K)178.764 482 s(KL)178.764 488 s(6) 195.988 482 s(6)210.341 482 s(@)224.694 476 s %7/6 -1.894 124.733 535.462 92.7 546 m -1.894 124.733 532.462 109.98 537.315 m(5)86.85 530 s(\()82.6 526 s(5) 86.85 526 s(J)104.13 524.315 s(JL)104.13 516 s(J)118.483 519.593 s(JL) 118.483 516 s -1.831 170.662 532.021 138.685 538 m -1.831 170.662 529.021 155.909 531.78 m(5)132.835 522 s(J) 150.059 518.78 s(JL)150.059 516 s(J)164.412 516.096 s(JL)164.412 516 s -1.831 216.591 532.021 184.614 538 m -1.831 216.591 529.021 201.838 531.78 m(5)178.764 522 s(J) 195.988 518.78 s(JL)195.988 516 s(J)210.341 516.096 s(JL)210.341 516 s 16 492(@)224.694 520 b rm 10 ss(7)54 544 s %8/7 1.8 264.571 476 235.457 476 m mf 10 ss(6)234.707 488 s(6)263.421 488 s 1.837 321.981 475.995 292.876 470 m(6)292.126 482 s(K)320.831 487.913 s(KL) 320.831 488 s -1.816 384.492 498.055 355.387 494.068 m(J) 349.537 478.068 s(JL)349.537 478 s(5)378.242 482 s(@)406.947 476 s %8/6 -1.801 284.023 544.018 240.557 542.019 m -1.801 284.023 541.018 240.557 539.019 m(\()230.457 526 s(J) 234.707 526.019 s(JL)234.707 526 s(J)234.707 522.019 s(JL)234.707 522 s(J) 249.068 526.679 s(JL)249.068 524 s(%)244.068 520 s(J)249.068 522.679 s(JL) 249.068 520 s(J)263.421 527.339 s(JL)263.421 526 s(J)263.421 523.339 s(JL) 263.421 522 s(5)277.773 528 s(5)277.773 524 s 1.8 336.334 512 292.876 512 m 1.8 336.334 515 292.876 515 m(K) 292.126 524 s(KL)292.126 526 s(K)292.126 528 s(KL)292.126 530 s(6) 306.479 524 s(6)306.479 528 s(K)320.831 524 s(KL)320.831 526 s(K) 320.831 528 s(KL)320.831 530 s(K)335.184 524 s(KL)335.184 528 s(K) 335.184 528 s(KL)335.184 532 s 1.801 393.745 515.981 350.287 517.98 m 1.801 393.745 518.981 350.287 520.98 m(K)349.537 529.98 s(KL) 349.537 530 s(\()345.287 534 s(K)349.537 533.98 s(KL)349.537 534 s(K) 363.889 529.32 s(KL)363.889 532 s(K)363.889 533.32 s(KL)363.889 536 s(K) 378.242 528.66 s(KL)378.242 530 s(K)378.242 532.66 s(KL)378.242 534 s(6) 392.595 528 s(6)392.595 532 s 16 492(@)406.947 520 b %9/7 (7)416.21 474 s(.)434.433 480 s(-)463.139 480 s(-)509.068 480 s (@)553.997 476 s %9/6 1.814 448.936 517.997 416.96 514 m 1.814 448.936 520.997 434.183 519.152 m(6)416.21 526 s(6)416.21 530 s(K) 433.433 528.152 s(KL)433.433 530 s(K)447.786 529.947 s(KL)447.786 530 s 1.8 494.865 518 462.889 518 m 1.8 494.865 521 480.112 521 m(K) 462.139 530 s(KL)462.139 536 s(6)479.362 530 s(6)493.715 530 s 1.8 540.794 518 508.818 518 m 1.8 540.794 521 526.042 521 m(K) 508.068 530 s(KL)508.068 536 s(6)525.292 530 s(6)539.644 530 s 16 492(@)553.997 520 b (FFFFCCCCCCCCC)54 520 s (C)543.997 520 s (FFFFCCCCCCCCC)54 476 s (C)543.997 476 s (!)58 417 s(")57.5 373 s 16 373(@)54 417 b 0.115 47 403 br2 %10/7 (.)83 377 s 1.8 108.766 373 96.722 373 m 1.8 108.766 376 96.722 376 m(6) 95.972 385 s(6)107.616 385 s 1.8 146.026 373 120.01 373 m 1.8 146.026 376 133.983 376 m(=)119.26 391 s(K)119.26 385 s(KL) 119.26 391 s(6)133.233 385 s(6)144.876 385 s 1.8 183.287 373 157.27 373 m 1.8 183.287 376 171.243 376 m(=) 156.52 391 s(K)156.52 385 s(KL)156.52 391 s(6)170.493 385 s(6) 182.137 385 s(@)193.781 373 s %10/6 (3)88 433 s(?)96.4 433 s 1.8 108.766 411 82.75 411 m 1.8 108.766 414 96.722 414 m(Kxx~K)82 423 s(L)82 433 s(6)95.972 423 s(6) 107.616 423 s 1.8 146.026 411 120.01 411 m 1.8 146.026 414 133.983 414 m(K) 119.26 423 s(KL)119.26 429 s(6)133.233 423 s(6)144.876 423 s 1.8 183.287 411 157.27 411 m 1.8 183.287 414 171.243 414 m(K) 156.52 423 s(KL)156.52 429 s(6)170.493 423 s(6)182.137 423 s 16 389(@)193.781 417 b rm 10 ss(10)54 441 s %11/7 mf 10 ss(.)202.296 377 s -1.8 233.162 393 221.118 393 m -1.8 233.162 390 221.118 390 m(5)215.268 377 s(5)226.912 377 s 1.8 265.322 367 239.306 367 m 1.8 265.322 370 253.279 370 m(K) 238.556 379 s(KL)238.556 383 s(6)252.529 379 s(6)264.172 379 s 1.8 302.583 369 276.566 369 m 1.8 302.583 372 290.539 372 m(K) 275.816 381 s(KL)275.816 385 s(6)289.789 381 s(6)301.433 381 s (@)313.077 373 s %11/6 (5)201.296 433 s(7)238.556 433 s 209.296 439 241.556 439 5 cv(5) 252.529 431 s(7)289.789 429 s 1.846 228.062 410.23 202.046 416.213 m 1.846 228.062 413.23 216.018 416 m(K)201.296 428.213 s(KL)201.296 429 s(6) 215.268 425 s(K)226.912 422.322 s(KL)226.912 423 s 1.8 253.679 409 239.306 409 m(6)238.556 421 s(6)252.529 421 s 1.817 290.939 412.997 276.566 411 m(6)275.816 423 s(K)289.789 424.942 s(KL) 289.789 425 s 16 389(@)313.077 417 b %12/7 1.8 347.358 371 321.342 371 m 1.8 347.358 374 335.314 374 m(K) 320.592 383 s(KL)320.592 387 s(6)334.564 383 s(6)346.208 383 s 1.8 384.618 373 358.602 373 m 1.8 384.618 376 372.575 376 m(K) 357.852 385 s(KL)357.852 389 s(6)371.825 385 s(6)383.468 385 s(6) 406.756 377 s(=)406.756 391 s(6)406.756 391 s(@)444.016 373 s %12/6 (5)320.592 429 s -1.8 401.362 443 363.702 443 m -1.8 401.362 440 389.318 440 m -1.8 401.362 437 389.318 437 m(5) 357.852 427 s(?)366.252 429 s(\210)357.852 447 s(J)383.468 427 s(JL) 383.468 425 s(5)395.112 427 s 1.846 347.358 406.23 321.342 412.213 m 1.846 347.358 409.23 335.314 412 m(K)320.592 424.213 s(KL)320.592 425 s(6) 334.564 421 s(K)346.208 418.322 s(KL)346.208 419 s(6)357.852 417 s 1.894 433.523 411.559 407.506 403 m 1.894 433.523 414.559 421.479 410.597 m(6)406.756 415 s(6)406.756 425 s (Kxx~K)420.729 419.597 s(KL)420.729 433 s(K)432.373 423.427 s(KL) 432.373 433 s 16 389(@)444.016 417 b %13/7 (.)452.531 377 s 1.8 478.297 373 466.253 373 m 1.8 478.297 376 466.253 376 m(6)465.503 385 s(6)477.147 385 s 1.884 503.914 364.876 489.541 369.331 m(=)488.791 391 s(K) 488.791 381.331 s(KL)488.791 391 s(6)502.764 377 s -1.884 546.274 396.545 531.901 401 m(5)526.051 385 s(J)540.024 380.669 s (JL)540.024 371 s(@)553.997 373 s %13/6 (=x=)451.531 435 s(K)451.531 437 s(KL)451.531 439 s(.)489.791 421 s -1.884 520.657 441.124 508.614 437.391 m -1.884 520.657 438.124 508.614 434.391 m(J)502.764 421.391 s(JL) 502.764 415 s(5)514.407 425 s -1.884 546.274 439.124 531.901 434.669 m(J) 526.051 418.669 s(JL)526.051 413 s(5)540.024 423 s 16 389(@)553.997 417 b (FFFFCCCCCCCCC)54 417 s (C)543.997 417 s (FFFFCCCCCCCCC)54 373 s (C)543.997 373 s (!)58 314 s(!)58 270 s(!)58 226 s(!)58 182 s(")57.5 138 s(!)58 94 s(") 57.5 50 s 16 50(@)54 314 b 50.5 330 138 k 0.115 47 80 br2 %14/7 (7)82 54 s -1.8 119.987 64 105.161 64 m -1.8 119.987 61 105.161 61 m(5) 99.311 48 s(5)113.737 48 s -1.83 166.151 64.023 134.013 70 m -1.83 166.151 61.023 151.325 63.78 m(5)128.163 54 s(J)145.475 50.78 s(JL) 145.475 48 s(J)159.901 48.097 s(JL)159.901 48 s -1.83 212.315 64.023 180.177 70 m -1.83 212.315 61.023 197.489 63.78 m(5) 174.327 54 s(J)191.639 50.78 s(JL)191.639 48 s(J)206.065 48.097 s(JL) 206.065 48 s(@)220.491 50 s %14/6 (7)82 102 s(5)82 92 s -1.8 119.987 102 105.161 102 m -1.8 119.987 99 105.161 99 m(=w=)99.311 88 s(J)99.311 86 s(JL) 99.311 82 s(=w=)113.737 88 s(J)113.737 86 s(JL)113.737 82 s -1.83 166.151 98.023 134.013 104 m -1.83 166.151 95.023 151.325 97.78 m(=) 128.163 88 s(5)128.163 88 s(=w=)145.475 88 s(J)145.475 84.78 s(JL) 145.475 82 s(=w=)159.901 88 s(J)159.901 82.097 s(JL)159.901 82 s -1.83 212.315 98.023 180.177 104 m -1.83 212.315 95.023 197.489 97.78 m(=) 174.327 88 s(5)174.327 88 s(=w=)191.639 88 s(J)191.639 84.78 s(JL) 191.639 82 s(=w=)206.065 88 s(J)206.065 82.097 s(JL)206.065 82 s 16 66(@)220.491 94 b %14/5 bi 10 ss(f)72 157 s rm 10 ss(Cre)77.78 127 s mf 10 ss(=)82 156 s(6) 82 156 s rm 10 ss(-)106.901 127 s(do,)124.913 127 s mf 10 ss(5) 128.163 142 s(-)175.327 142 s(@)220.491 138 s %14/4 bi 10 ss(f)82 202 s rm 10 ss(Cre)77.78 168 s mf 10 ss(6)82 190 s rm 10 ss(-)106.901 168 s(do,)124.913 168 s mf 10 ss(6)128.163 190 s(-) 175.327 186 s(@)220.491 182 s %14/3 bi 10 ss(f)82 246 s rm 10 ss(Cre)77.78 215 s mf 10 ss(5)82 228 s rm 10 ss(-)106.901 215 s(do,)124.913 215 s mf 10 ss(5)128.163 224 s(-) 175.327 230 s(@)220.491 226 s %14/2 bi 10 ss(f)82 290 s rm 10 ss(Cre)77.78 254 s mf 10 ss(6)82 278 s rm 10 ss(-)106.901 254 s(do,)124.913 254 s mf 10 ss(5)128.163 272 s(-) 175.327 274 s(@)220.491 270 s %14/1 bi 10 ss(f)82 334 s rm 10 ss(Cre)77.78 300 s mf 10 ss(6)82 326 s rm 10 ss(-)106.901 300 s(do,)124.913 300 s mf 10 ss(6)128.163 322 s(-) 175.327 318 s(@)220.491 314 s rm 10 ss(14)54 338 s %15/7 1.827 275.869 48.898 230.552 40.923 m 1.827 275.869 51.898 259.404 49 m mf 10 ss(K)229.802 52.923 s(KL)229.802 54 s(6)258.654 58 s(=) 258.654 68 s(6)258.654 68 s(K)274.719 60.828 s(KL)274.719 62 s(=) 274.719 68 s(K)274.719 68.828 s(KL)274.719 70 s 1.8 320.787 56 291.535 56 m(=)290.785 68 s(6)290.785 68 s(=x=) 290.785 68 s(6)290.785 72 s(=)319.637 68 s(6)319.637 68 s(=x=) 319.637 68 s(6)319.637 72 s 1.8 378.493 50 349.24 50 m(6)348.49 62 s(=) 348.49 68 s(6)348.49 70 s(6)377.343 62 s(=)377.343 68 s(6)377.343 70 s (@)406.195 50 s %15/6 1.8 275.869 88 230.552 88 m 1.8 275.869 91 230.552 91 m(K)229.802 100 s(KL) 229.802 102 s(K)229.802 104 s(KL)229.802 106 s(6)244.228 100 s(6) 244.228 104 s(K)258.654 100 s(KL)258.654 102 s(6)274.719 100 s(6) 274.719 104 s 1.8 335.214 88 291.535 88 m 1.8 335.214 91 291.535 91 m(K) 290.785 100 s(KL)290.785 102 s(K)290.785 104 s(KL)290.785 106 s(6) 305.211 100 s(6)305.211 104 s(K)319.637 100 s(KL)319.637 102 s(K) 319.637 104 s(KL)319.637 106 s(K)334.064 100 s(KL)334.064 104 s(K) 334.064 104 s(KL)334.064 108 s 1.8 392.919 88 349.24 88 m 1.8 392.919 91 349.24 91 m(6)348.49 100 s(6)348.49 110 s(K)362.916 100 s (KL)362.916 102 s(=)362.916 112 s(K)362.916 110 s(KL)362.916 112 s(K) 377.343 100 s(KL)377.343 104 s(K)377.343 104 s(KL)377.343 108 s(6) 391.769 100 s(6)391.769 110 s 16 66(@)406.195 94 b %15/5 rm 10 ss(cre)226.697 127 s mf 10 ss(=)229.802 156 s(8)229.802 156 s rm 10 ss(-)246.115 127 s(do)256.654 127 s mf 10 ss(=)258.654 156 s(:) 258.654 156 s rm 10 ss(in)273.829 127 s mf 10 ss(=)274.719 156 s(:) 274.719 156 s rm 10 ss(un)288.785 127 s mf 10 ss(=)290.785 156 s(8) 290.785 156 s rm 10 ss(-)305.851 127 s(um)316.247 127 s mf 10 ss(=) 319.637 156 s(8)319.637 156 s rm 10 ss(De)345.66 127 s mf 10 ss(6) 348.49 150 s(@)406.195 138 s %15/4 rm 10 ss(cre)226.697 168 s mf 10 ss(8)229.802 194 s rm 10 ss(-) 246.115 168 s(do)256.654 168 s mf 10 ss(:)258.654 194 s rm 10 ss(in) 273.829 168 s mf 10 ss(:)274.719 194 s rm 10 ss(un)288.785 168 s mf 10 ss(8)290.785 194 s rm 10 ss(-)305.851 168 s(um)316.247 168 s mf 10 ss(8)319.637 194 s rm 10 ss(De)345.66 168 s mf 10 ss(6) 348.49 192 s(@)406.195 182 s %15/3 rm 10 ss(cre)226.697 215 s mf 10 ss(7)229.802 228 s rm 10 ss(-) 246.115 215 s(do)256.654 215 s mf 10 ss(9)258.654 228 s rm 10 ss(in) 273.829 215 s mf 10 ss(9)274.719 228 s rm 10 ss(un)288.785 215 s mf 10 ss(7)290.785 228 s rm 10 ss(-)305.851 215 s(um)316.247 215 s mf 10 ss(7)319.637 228 s rm 10 ss(De)345.66 215 s mf 10 ss(5) 348.49 228 s(@)406.195 226 s %15/2 rm 10 ss(cre)226.697 254 s mf 10 ss(8)229.802 278 s rm 10 ss(-) 246.115 254 s(do)256.654 254 s mf 10 ss(:)258.654 278 s rm 10 ss(in) 273.829 254 s mf 10 ss(:)274.719 278 s rm 10 ss(un)288.785 254 s mf 10 ss(8)290.785 278 s rm 10 ss(-)305.851 254 s(um)316.247 254 s mf 10 ss(8)319.637 278 s rm 10 ss(De)345.66 254 s mf 10 ss(6) 348.49 276 s(@)406.195 270 s %15/1 rm 10 ss(cre)226.697 300 s mf 10 ss(8)229.802 326 s rm 10 ss(-) 246.115 300 s(do)256.654 300 s mf 10 ss(:)258.654 326 s rm 10 ss(in) 273.829 300 s mf 10 ss(:)274.719 326 s rm 10 ss(un)288.785 300 s mf 10 ss(8)290.785 326 s rm 10 ss(-)305.851 300 s(um)316.247 300 s mf 10 ss(8)319.637 326 s rm 10 ss(De)345.66 300 s mf 10 ss(6) 348.49 330 s(@)406.195 314 s %16/7 (7)415.506 54 s -1.8 453.493 64 438.667 64 m -1.8 453.493 61 438.667 61 m(5)432.817 48 s(5)447.243 48 s -1.83 499.657 64.023 467.519 70 m -1.83 499.657 61.023 484.831 63.78 m(5) 461.669 54 s(J)478.981 50.78 s(JL)478.981 48 s(J)493.407 48.097 s(JL) 493.407 48 s -1.83 545.821 64.023 513.683 70 m -1.83 545.821 61.023 530.995 63.78 m(5)507.833 54 s(J)525.145 50.78 s(JL) 525.145 48 s(J)539.571 48.097 s(JL)539.571 48 s(@)553.997 50 s %16/6 (8)415.506 102 s(6)415.506 106 s -1.8 453.493 102 438.667 102 m -1.8 453.493 99 438.667 99 m(=w=)432.817 88 s(J)432.817 86 s(JL) 432.817 82 s(=w=)447.243 88 s(J)447.243 86 s(JL)447.243 82 s -1.83 499.657 98.023 467.519 104 m -1.83 499.657 95.023 484.831 97.78 m(=) 461.669 88 s(5)461.669 88 s(=w=)478.981 88 s(J)478.981 84.78 s(JL) 478.981 82 s(=w=)493.407 88 s(J)493.407 82.097 s(JL)493.407 82 s -1.83 545.821 98.023 513.683 104 m -1.83 545.821 95.023 530.995 97.78 m(=) 507.833 88 s(5)507.833 88 s(=w=)525.145 88 s(J)525.145 84.78 s(JL) 525.145 82 s(=w=)539.571 88 s(J)539.571 82.097 s(JL)539.571 82 s 16 66(@)553.997 94 b %16/5 rm 10 ss(- - )16.391 371.317 127 ws(um,)410.866 127 s mf 10 ss(=) 415.506 156 s(6)415.506 156 s(-)462.669 142 s(-)508.833 142 s (@)553.997 138 s %16/4 rm 10 ss(- - )16.391 371.317 168 ws(um,)410.866 168 s mf 10 ss(6) 415.506 194 s(-)462.669 186 s(-)508.833 186 s(@)553.997 182 s %16/3 rm 10 ss(- - )16.391 371.317 215 ws(um,)410.866 215 s mf 10 ss(5) 415.506 228 s(-)462.669 230 s(-)508.833 230 s(@)553.997 226 s %16/2 rm 10 ss(- - )16.391 371.317 254 ws(um,)410.866 254 s mf 10 ss(6) 415.506 278 s(-)462.669 274 s(-)508.833 274 s(@)553.997 270 s %16/1 rm 10 ss(- - )16.391 371.317 300 ws(um,)410.866 300 s mf 10 ss(6) 415.506 326 s(-)462.669 318 s(-)508.833 318 s(@)553.997 314 s (FFFFCCCCCCCCC)54 314 s (C)543.997 314 s (FFFFCCCCCCCCC)54 270 s (C)543.997 270 s (FFFFCCCCCCCCC)54 226 s (C)543.997 226 s (FFFFCCCCCCCCC)54 182 s (C)543.997 182 s (FFFFCCCCCCCCC)54 138 s (C)543.997 138 s (FFFFCCCCCCCCC)54 94 s (C)543.997 94 s (FFFFCCCCCCCCC)54 50 s (C)543.997 50 s pagesave restore showpage %%Trailer %%Pages: 1 pmw-4.27/post-install0000755000222100022210000000313412247665016012730 0ustar ph10ph10#! /bin/sh BINDIR=$1 DATADIR=$2 MANDIR=$3 cat < Adobe Core 35 AFM Files with 314 Glyph Entries - ReadMe

Adobe Core 35 AFM Files with 314 Glyph Entries - ReadMe

This file and the 35 PostScript(R) AFM files it accompanies may be used, copied, and distributed for any purpose and without charge, with or without modification, provided that all copyright notices are retained; that the AFM files are not distributed without this file; that all modifications to this file or any of the AFM files are prominently noted in the modified file(s); and that this paragraph is not modified. Adobe Systems has no responsibility or obligation to support the use of the AFM files.
pmw-4.27/fontmetrics/Helvetica-Bold.afm0000644000222100022210000021361512247665016016164 0ustar ph10ph10StartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Thu May 1 12:43:52 1997 Comment PH added entry for Euro character, copied from a different version, 19 July 2009. Comment PH added additional characters (after Euro) 18 November 2013 Comment UniqueID 43052 Comment VMusage 37169 48194 FontName Helvetica-Bold FullName Helvetica Bold FamilyName Helvetica Weight Bold ItalicAngle 0 IsFixedPitch false FontBBox -170 -228 1003 962 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All Rights Reserved.Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 718 XHeight 532 Ascender 718 Descender -207 StdHW 118 StdVW 140 StartCharMetrics 361 C 32 ; WX 278 ; N space ; B 0 0 0 0 ; C 33 ; WX 333 ; N exclam ; B 90 0 244 718 ; C 34 ; WX 474 ; N quotedbl ; B 98 447 376 718 ; C 35 ; WX 556 ; N numbersign ; B 18 0 538 698 ; C 36 ; WX 556 ; N dollar ; B 30 -115 523 775 ; C 37 ; WX 889 ; N percent ; B 28 -19 861 710 ; C 38 ; WX 722 ; N ampersand ; B 54 -19 701 718 ; C 39 ; WX 278 ; N quoteright ; B 69 445 209 718 ; C 40 ; WX 333 ; N parenleft ; B 35 -208 314 734 ; C 41 ; WX 333 ; N parenright ; B 19 -208 298 734 ; C 42 ; WX 389 ; N asterisk ; B 27 387 362 718 ; C 43 ; WX 584 ; N plus ; B 40 0 544 506 ; C 44 ; WX 278 ; N comma ; B 64 -168 214 146 ; C 45 ; WX 333 ; N hyphen ; B 27 215 306 345 ; C 46 ; WX 278 ; N period ; B 64 0 214 146 ; C 47 ; WX 278 ; N slash ; B -33 -19 311 737 ; C 48 ; WX 556 ; N zero ; B 32 -19 524 710 ; C 49 ; WX 556 ; N one ; B 69 0 378 710 ; C 50 ; WX 556 ; N two ; B 26 0 511 710 ; C 51 ; WX 556 ; N three ; B 27 -19 516 710 ; C 52 ; WX 556 ; N four ; B 27 0 526 710 ; C 53 ; WX 556 ; N five ; B 27 -19 516 698 ; C 54 ; WX 556 ; N six ; B 31 -19 520 710 ; C 55 ; WX 556 ; N seven ; B 25 0 528 698 ; C 56 ; WX 556 ; N eight ; B 32 -19 524 710 ; C 57 ; WX 556 ; N nine ; B 30 -19 522 710 ; C 58 ; WX 333 ; N colon ; B 92 0 242 512 ; C 59 ; WX 333 ; N semicolon ; B 92 -168 242 512 ; C 60 ; WX 584 ; N less ; B 38 -8 546 514 ; C 61 ; WX 584 ; N equal ; B 40 87 544 419 ; C 62 ; WX 584 ; N greater ; B 38 -8 546 514 ; C 63 ; WX 611 ; N question ; B 60 0 556 727 ; C 64 ; WX 975 ; N at ; B 118 -19 856 737 ; C 65 ; WX 722 ; N A ; B 20 0 702 718 ; C 66 ; WX 722 ; N B ; B 76 0 669 718 ; C 67 ; WX 722 ; N C ; B 44 -19 684 737 ; C 68 ; WX 722 ; N D ; B 76 0 685 718 ; C 69 ; WX 667 ; N E ; B 76 0 621 718 ; C 70 ; WX 611 ; N F ; B 76 0 587 718 ; C 71 ; WX 778 ; N G ; B 44 -19 713 737 ; C 72 ; WX 722 ; N H ; B 71 0 651 718 ; C 73 ; WX 278 ; N I ; B 64 0 214 718 ; C 74 ; WX 556 ; N J ; B 22 -18 484 718 ; C 75 ; WX 722 ; N K ; B 87 0 722 718 ; C 76 ; WX 611 ; N L ; B 76 0 583 718 ; C 77 ; WX 833 ; N M ; B 69 0 765 718 ; C 78 ; WX 722 ; N N ; B 69 0 654 718 ; C 79 ; WX 778 ; N O ; B 44 -19 734 737 ; C 80 ; WX 667 ; N P ; B 76 0 627 718 ; C 81 ; WX 778 ; N Q ; B 44 -52 737 737 ; C 82 ; WX 722 ; N R ; B 76 0 677 718 ; C 83 ; WX 667 ; N S ; B 39 -19 629 737 ; C 84 ; WX 611 ; N T ; B 14 0 598 718 ; C 85 ; WX 722 ; N U ; B 72 -19 651 718 ; C 86 ; WX 667 ; N V ; B 19 0 648 718 ; C 87 ; WX 944 ; N W ; B 16 0 929 718 ; C 88 ; WX 667 ; N X ; B 14 0 653 718 ; C 89 ; WX 667 ; N Y ; B 15 0 653 718 ; C 90 ; WX 611 ; N Z ; B 25 0 586 718 ; C 91 ; WX 333 ; N bracketleft ; B 63 -196 309 722 ; C 92 ; WX 278 ; N backslash ; B -33 -19 311 737 ; C 93 ; WX 333 ; N bracketright ; B 24 -196 270 722 ; C 94 ; WX 584 ; N asciicircum ; B 62 323 522 698 ; C 95 ; WX 556 ; N underscore ; B 0 -125 556 -75 ; C 96 ; WX 278 ; N quoteleft ; B 69 454 209 727 ; C 97 ; WX 556 ; N a ; B 29 -14 527 546 ; C 98 ; WX 611 ; N b ; B 61 -14 578 718 ; C 99 ; WX 556 ; N c ; B 34 -14 524 546 ; C 100 ; WX 611 ; N d ; B 34 -14 551 718 ; C 101 ; WX 556 ; N e ; B 23 -14 528 546 ; C 102 ; WX 333 ; N f ; B 10 0 318 727 ; L i fi ; L l fl ; C 103 ; WX 611 ; N g ; B 40 -217 553 546 ; C 104 ; WX 611 ; N h ; B 65 0 546 718 ; C 105 ; WX 278 ; N i ; B 69 0 209 725 ; C 106 ; WX 278 ; N j ; B 3 -214 209 725 ; C 107 ; WX 556 ; N k ; B 69 0 562 718 ; C 108 ; WX 278 ; N l ; B 69 0 209 718 ; C 109 ; WX 889 ; N m ; B 64 0 826 546 ; C 110 ; WX 611 ; N n ; B 65 0 546 546 ; C 111 ; WX 611 ; N o ; B 34 -14 578 546 ; C 112 ; WX 611 ; N p ; B 62 -207 578 546 ; C 113 ; WX 611 ; N q ; B 34 -207 552 546 ; C 114 ; WX 389 ; N r ; B 64 0 373 546 ; C 115 ; WX 556 ; N s ; B 30 -14 519 546 ; C 116 ; WX 333 ; N t ; B 10 -6 309 676 ; C 117 ; WX 611 ; N u ; B 66 -14 545 532 ; C 118 ; WX 556 ; N v ; B 13 0 543 532 ; C 119 ; WX 778 ; N w ; B 10 0 769 532 ; C 120 ; WX 556 ; N x ; B 15 0 541 532 ; C 121 ; WX 556 ; N y ; B 10 -214 539 532 ; C 122 ; WX 500 ; N z ; B 20 0 480 532 ; C 123 ; WX 389 ; N braceleft ; B 48 -196 365 722 ; C 124 ; WX 280 ; N bar ; B 84 -225 196 775 ; C 125 ; WX 389 ; N braceright ; B 24 -196 341 722 ; C 126 ; WX 584 ; N asciitilde ; B 61 163 523 343 ; C 161 ; WX 333 ; N exclamdown ; B 90 -186 244 532 ; C 162 ; WX 556 ; N cent ; B 34 -118 524 628 ; C 163 ; WX 556 ; N sterling ; B 28 -16 541 718 ; C 164 ; WX 167 ; N fraction ; B -170 -19 336 710 ; C 165 ; WX 556 ; N yen ; B -9 0 565 698 ; C 166 ; WX 556 ; N florin ; B -10 -210 516 737 ; C 167 ; WX 556 ; N section ; B 34 -184 522 727 ; C 168 ; WX 556 ; N currency ; B -3 76 559 636 ; C 169 ; WX 238 ; N quotesingle ; B 70 447 168 718 ; C 170 ; WX 500 ; N quotedblleft ; B 64 454 436 727 ; C 171 ; WX 556 ; N guillemotleft ; B 88 76 468 484 ; C 172 ; WX 333 ; N guilsinglleft ; B 83 76 250 484 ; C 173 ; WX 333 ; N guilsinglright ; B 83 76 250 484 ; C 174 ; WX 611 ; N fi ; B 10 0 542 727 ; C 175 ; WX 611 ; N fl ; B 10 0 542 727 ; C 177 ; WX 556 ; N endash ; B 0 227 556 333 ; C 178 ; WX 556 ; N dagger ; B 36 -171 520 718 ; C 179 ; WX 556 ; N daggerdbl ; B 36 -171 520 718 ; C 180 ; WX 278 ; N periodcentered ; B 58 172 220 334 ; C 182 ; WX 556 ; N paragraph ; B -8 -191 539 700 ; C 183 ; WX 350 ; N bullet ; B 10 194 340 524 ; C 184 ; WX 278 ; N quotesinglbase ; B 69 -146 209 127 ; C 185 ; WX 500 ; N quotedblbase ; B 64 -146 436 127 ; C 186 ; WX 500 ; N quotedblright ; B 64 445 436 718 ; C 187 ; WX 556 ; N guillemotright ; B 88 76 468 484 ; C 188 ; WX 1000 ; N ellipsis ; B 92 0 908 146 ; C 189 ; WX 1000 ; N perthousand ; B -3 -19 1003 710 ; C 191 ; WX 611 ; N questiondown ; B 55 -195 551 532 ; C 193 ; WX 333 ; N grave ; B -23 604 225 750 ; C 194 ; WX 333 ; N acute ; B 108 604 356 750 ; C 195 ; WX 333 ; N circumflex ; B -10 604 343 750 ; C 196 ; WX 333 ; N tilde ; B -17 610 350 737 ; C 197 ; WX 333 ; N macron ; B -6 604 339 678 ; C 198 ; WX 333 ; N breve ; B -2 604 335 750 ; C 199 ; WX 333 ; N dotaccent ; B 104 614 230 729 ; C 200 ; WX 333 ; N dieresis ; B 6 614 327 729 ; C 202 ; WX 333 ; N ring ; B 59 568 275 776 ; C 203 ; WX 333 ; N cedilla ; B 6 -228 245 0 ; C 205 ; WX 333 ; N hungarumlaut ; B 9 604 486 750 ; C 206 ; WX 333 ; N ogonek ; B 71 -228 304 0 ; C 207 ; WX 333 ; N caron ; B -10 604 343 750 ; C 208 ; WX 1000 ; N emdash ; B 0 227 1000 333 ; C 225 ; WX 1000 ; N AE ; B 5 0 954 718 ; C 227 ; WX 370 ; N ordfeminine ; B 22 401 347 737 ; C 232 ; WX 611 ; N Lslash ; B -20 0 583 718 ; C 233 ; WX 778 ; N Oslash ; B 33 -27 744 745 ; C 234 ; WX 1000 ; N OE ; B 37 -19 961 737 ; C 235 ; WX 365 ; N ordmasculine ; B 6 401 360 737 ; C 241 ; WX 889 ; N ae ; B 29 -14 858 546 ; C 245 ; WX 278 ; N dotlessi ; B 69 0 209 532 ; C 248 ; WX 278 ; N lslash ; B -18 0 296 718 ; C 249 ; WX 611 ; N oslash ; B 22 -29 589 560 ; C 250 ; WX 944 ; N oe ; B 34 -14 912 546 ; C 251 ; WX 611 ; N germandbls ; B 69 -14 579 731 ; C -1 ; WX 278 ; N Idieresis ; B -21 0 300 915 ; C -1 ; WX 556 ; N eacute ; B 23 -14 528 750 ; C -1 ; WX 556 ; N abreve ; B 29 -14 527 750 ; C -1 ; WX 611 ; N uhungarumlaut ; B 66 -14 625 750 ; C -1 ; WX 556 ; N ecaron ; B 23 -14 528 750 ; C -1 ; WX 667 ; N Ydieresis ; B 15 0 653 915 ; C -1 ; WX 584 ; N divide ; B 40 -42 544 548 ; C -1 ; WX 667 ; N Yacute ; B 15 0 653 936 ; C -1 ; WX 722 ; N Acircumflex ; B 20 0 702 936 ; C -1 ; WX 556 ; N aacute ; B 29 -14 527 750 ; C -1 ; WX 722 ; N Ucircumflex ; B 72 -19 651 936 ; C -1 ; WX 556 ; N yacute ; B 10 -214 539 750 ; C -1 ; WX 556 ; N scommaaccent ; B 30 -228 519 546 ; C -1 ; WX 556 ; N ecircumflex ; B 23 -14 528 750 ; C -1 ; WX 722 ; N Uring ; B 72 -19 651 962 ; C -1 ; WX 722 ; N Udieresis ; B 72 -19 651 915 ; C -1 ; WX 556 ; N aogonek ; B 29 -224 545 546 ; C -1 ; WX 722 ; N Uacute ; B 72 -19 651 936 ; C -1 ; WX 611 ; N uogonek ; B 66 -228 545 532 ; C -1 ; WX 667 ; N Edieresis ; B 76 0 621 915 ; C -1 ; WX 722 ; N Dcroat ; B -5 0 685 718 ; C -1 ; WX 250 ; N commaaccent ; B 64 -228 199 -50 ; C -1 ; WX 737 ; N copyright ; B -11 -19 749 737 ; C -1 ; WX 667 ; N Emacron ; B 76 0 621 864 ; C -1 ; WX 556 ; N ccaron ; B 34 -14 524 750 ; C -1 ; WX 556 ; N aring ; B 29 -14 527 776 ; C -1 ; WX 722 ; N Ncommaaccent ; B 69 -228 654 718 ; C -1 ; WX 278 ; N lacute ; B 69 0 329 936 ; C -1 ; WX 556 ; N agrave ; B 29 -14 527 750 ; C -1 ; WX 611 ; N Tcommaaccent ; B 14 -228 598 718 ; C -1 ; WX 722 ; N Cacute ; B 44 -19 684 936 ; C -1 ; WX 556 ; N atilde ; B 29 -14 527 737 ; C -1 ; WX 667 ; N Edotaccent ; B 76 0 621 915 ; C -1 ; WX 556 ; N scaron ; B 30 -14 519 750 ; C -1 ; WX 556 ; N scedilla ; B 30 -228 519 546 ; C -1 ; WX 278 ; N iacute ; B 69 0 329 750 ; C -1 ; WX 494 ; N lozenge ; B 10 0 484 745 ; C -1 ; WX 722 ; N Rcaron ; B 76 0 677 936 ; C -1 ; WX 778 ; N Gcommaaccent ; B 44 -228 713 737 ; C -1 ; WX 611 ; N ucircumflex ; B 66 -14 545 750 ; C -1 ; WX 556 ; N acircumflex ; B 29 -14 527 750 ; C -1 ; WX 722 ; N Amacron ; B 20 0 702 864 ; C -1 ; WX 389 ; N rcaron ; B 18 0 373 750 ; C -1 ; WX 556 ; N ccedilla ; B 34 -228 524 546 ; C -1 ; WX 611 ; N Zdotaccent ; B 25 0 586 915 ; C -1 ; WX 667 ; N Thorn ; B 76 0 627 718 ; C -1 ; WX 778 ; N Omacron ; B 44 -19 734 864 ; C -1 ; WX 722 ; N Racute ; B 76 0 677 936 ; C -1 ; WX 667 ; N Sacute ; B 39 -19 629 936 ; C -1 ; WX 743 ; N dcaron ; B 34 -14 750 718 ; C -1 ; WX 722 ; N Umacron ; B 72 -19 651 864 ; C -1 ; WX 611 ; N uring ; B 66 -14 545 776 ; C -1 ; WX 333 ; N threesuperior ; B 8 271 326 710 ; C -1 ; WX 778 ; N Ograve ; B 44 -19 734 936 ; C -1 ; WX 722 ; N Agrave ; B 20 0 702 936 ; C -1 ; WX 722 ; N Abreve ; B 20 0 702 936 ; C -1 ; WX 584 ; N multiply ; B 40 1 545 505 ; C -1 ; WX 611 ; N uacute ; B 66 -14 545 750 ; C -1 ; WX 611 ; N Tcaron ; B 14 0 598 936 ; C -1 ; WX 494 ; N partialdiff ; B 11 -21 494 750 ; C -1 ; WX 556 ; N ydieresis ; B 10 -214 539 729 ; C -1 ; WX 722 ; N Nacute ; B 69 0 654 936 ; C -1 ; WX 278 ; N icircumflex ; B -37 0 316 750 ; C -1 ; WX 667 ; N Ecircumflex ; B 76 0 621 936 ; C -1 ; WX 556 ; N adieresis ; B 29 -14 527 729 ; C -1 ; WX 556 ; N edieresis ; B 23 -14 528 729 ; C -1 ; WX 556 ; N cacute ; B 34 -14 524 750 ; C -1 ; WX 611 ; N nacute ; B 65 0 546 750 ; C -1 ; WX 611 ; N umacron ; B 66 -14 545 678 ; C -1 ; WX 722 ; N Ncaron ; B 69 0 654 936 ; C -1 ; WX 278 ; N Iacute ; B 64 0 329 936 ; C -1 ; WX 584 ; N plusminus ; B 40 0 544 506 ; C -1 ; WX 280 ; N brokenbar ; B 84 -150 196 700 ; C -1 ; WX 737 ; N registered ; B -11 -19 748 737 ; C -1 ; WX 778 ; N Gbreve ; B 44 -19 713 936 ; C -1 ; WX 278 ; N Idotaccent ; B 64 0 214 915 ; C -1 ; WX 600 ; N summation ; B 14 -10 585 706 ; C -1 ; WX 667 ; N Egrave ; B 76 0 621 936 ; C -1 ; WX 389 ; N racute ; B 64 0 384 750 ; C -1 ; WX 611 ; N omacron ; B 34 -14 578 678 ; C -1 ; WX 611 ; N Zacute ; B 25 0 586 936 ; C -1 ; WX 611 ; N Zcaron ; B 25 0 586 936 ; C -1 ; WX 549 ; N greaterequal ; B 26 0 523 704 ; C -1 ; WX 722 ; N Eth ; B -5 0 685 718 ; C -1 ; WX 722 ; N Ccedilla ; B 44 -228 684 737 ; C -1 ; WX 278 ; N lcommaaccent ; B 69 -228 213 718 ; C -1 ; WX 389 ; N tcaron ; B 10 -6 421 878 ; C -1 ; WX 556 ; N eogonek ; B 23 -228 528 546 ; C -1 ; WX 722 ; N Uogonek ; B 72 -228 651 718 ; C -1 ; WX 722 ; N Aacute ; B 20 0 702 936 ; C -1 ; WX 722 ; N Adieresis ; B 20 0 702 915 ; C -1 ; WX 556 ; N egrave ; B 23 -14 528 750 ; C -1 ; WX 500 ; N zacute ; B 20 0 480 750 ; C -1 ; WX 278 ; N iogonek ; B 16 -224 249 725 ; C -1 ; WX 778 ; N Oacute ; B 44 -19 734 936 ; C -1 ; WX 611 ; N oacute ; B 34 -14 578 750 ; C -1 ; WX 556 ; N amacron ; B 29 -14 527 678 ; C -1 ; WX 556 ; N sacute ; B 30 -14 519 750 ; C -1 ; WX 278 ; N idieresis ; B -21 0 300 729 ; C -1 ; WX 778 ; N Ocircumflex ; B 44 -19 734 936 ; C -1 ; WX 722 ; N Ugrave ; B 72 -19 651 936 ; C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; C -1 ; WX 611 ; N thorn ; B 62 -208 578 718 ; C -1 ; WX 333 ; N twosuperior ; B 9 283 324 710 ; C -1 ; WX 778 ; N Odieresis ; B 44 -19 734 915 ; C -1 ; WX 611 ; N mu ; B 66 -207 545 532 ; C -1 ; WX 278 ; N igrave ; B -50 0 209 750 ; C -1 ; WX 611 ; N ohungarumlaut ; B 34 -14 625 750 ; C -1 ; WX 667 ; N Eogonek ; B 76 -224 639 718 ; C -1 ; WX 611 ; N dcroat ; B 34 -14 650 718 ; C -1 ; WX 834 ; N threequarters ; B 16 -19 799 710 ; C -1 ; WX 667 ; N Scedilla ; B 39 -228 629 737 ; C -1 ; WX 400 ; N lcaron ; B 69 0 408 718 ; C -1 ; WX 722 ; N Kcommaaccent ; B 87 -228 722 718 ; C -1 ; WX 611 ; N Lacute ; B 76 0 583 936 ; C -1 ; WX 1000 ; N trademark ; B 44 306 956 718 ; C -1 ; WX 556 ; N edotaccent ; B 23 -14 528 729 ; C -1 ; WX 278 ; N Igrave ; B -50 0 214 936 ; C -1 ; WX 278 ; N Imacron ; B -33 0 312 864 ; C -1 ; WX 611 ; N Lcaron ; B 76 0 583 718 ; C -1 ; WX 834 ; N onehalf ; B 26 -19 794 710 ; C -1 ; WX 549 ; N lessequal ; B 29 0 526 704 ; C -1 ; WX 611 ; N ocircumflex ; B 34 -14 578 750 ; C -1 ; WX 611 ; N ntilde ; B 65 0 546 737 ; C -1 ; WX 722 ; N Uhungarumlaut ; B 72 -19 681 936 ; C -1 ; WX 667 ; N Eacute ; B 76 0 621 936 ; C -1 ; WX 556 ; N emacron ; B 23 -14 528 678 ; C -1 ; WX 611 ; N gbreve ; B 40 -217 553 750 ; C -1 ; WX 834 ; N onequarter ; B 26 -19 766 710 ; C -1 ; WX 667 ; N Scaron ; B 39 -19 629 936 ; C -1 ; WX 667 ; N Scommaaccent ; B 39 -228 629 737 ; C -1 ; WX 778 ; N Ohungarumlaut ; B 44 -19 734 936 ; C -1 ; WX 400 ; N degree ; B 57 426 343 712 ; C -1 ; WX 611 ; N ograve ; B 34 -14 578 750 ; C -1 ; WX 722 ; N Ccaron ; B 44 -19 684 936 ; C -1 ; WX 611 ; N ugrave ; B 66 -14 545 750 ; C -1 ; WX 549 ; N radical ; B 10 -46 512 850 ; C -1 ; WX 722 ; N Dcaron ; B 76 0 685 936 ; C -1 ; WX 389 ; N rcommaaccent ; B 64 -228 373 546 ; C -1 ; WX 722 ; N Ntilde ; B 69 0 654 923 ; C -1 ; WX 611 ; N otilde ; B 34 -14 578 737 ; C -1 ; WX 722 ; N Rcommaaccent ; B 76 -228 677 718 ; C -1 ; WX 611 ; N Lcommaaccent ; B 76 -228 583 718 ; C -1 ; WX 722 ; N Atilde ; B 20 0 702 923 ; C -1 ; WX 722 ; N Aogonek ; B 20 -224 742 718 ; C -1 ; WX 722 ; N Aring ; B 20 0 702 962 ; C -1 ; WX 778 ; N Otilde ; B 44 -19 734 923 ; C -1 ; WX 500 ; N zdotaccent ; B 20 0 480 729 ; C -1 ; WX 667 ; N Ecaron ; B 76 0 621 936 ; C -1 ; WX 278 ; N Iogonek ; B -11 -228 222 718 ; C -1 ; WX 556 ; N kcommaaccent ; B 69 -228 562 718 ; C -1 ; WX 584 ; N minus ; B 40 197 544 309 ; C -1 ; WX 278 ; N Icircumflex ; B -37 0 316 936 ; C -1 ; WX 611 ; N ncaron ; B 65 0 546 750 ; C -1 ; WX 333 ; N tcommaaccent ; B 10 -228 309 676 ; C -1 ; WX 584 ; N logicalnot ; B 40 108 544 419 ; C -1 ; WX 611 ; N odieresis ; B 34 -14 578 729 ; C -1 ; WX 611 ; N udieresis ; B 66 -14 545 729 ; C -1 ; WX 549 ; N notequal ; B 15 -49 540 570 ; C -1 ; WX 611 ; N gcommaaccent ; B 40 -217 553 850 ; C -1 ; WX 611 ; N eth ; B 34 -14 578 737 ; C -1 ; WX 500 ; N zcaron ; B 20 0 480 750 ; C -1 ; WX 611 ; N ncommaaccent ; B 65 -228 546 546 ; C -1 ; WX 333 ; N onesuperior ; B 26 283 237 710 ; C -1 ; WX 278 ; N imacron ; B -8 0 285 678 ; C -1 ; WX 556 ; N Euro ; B 0 0 0 0 ; C -1 ; WX 722 ; N Ccircumflex ; B 44 -23 685 979 ; C -1 ; WX 556 ; N ccircumflex ; B 34 -23 522 790 ; C -1 ; WX 722 ; N Cdotaccent ; B 44 -23 685 951 ; C -1 ; WX 556 ; N cdotaccent ; B 34 -23 522 762 ; C -1 ; WX 667 ; N Ebreve ; B 79 0 624 972 ; C -1 ; WX 556 ; N ebreve ; B 22 -23 525 783 ; C -1 ; WX 778 ; N Gcircumflex ; B 42 -23 711 979 ; C -1 ; WX 611 ; N gcircumflex ; B 34 -218 541 790 ; C -1 ; WX 778 ; N Gdotaccent ; B 42 -23 711 951 ; C -1 ; WX 611 ; N gdotaccent ; B 34 -218 541 762 ; C -1 ; WX 722 ; N Hcircumflex ; B 68 0 657 979 ; C -1 ; WX 611 ; N hcircumflex ; B 67 0 541 979 ; C -1 ; WX 752 ; N Hbar ; B 26 0 726 729 ; C -1 ; WX 611 ; N hbar ; B 16 0 541 729 ; C -1 ; WX 278 ; N Itilde ; B -39 0 315 957 ; C -1 ; WX 278 ; N itilde ; B -40 0 314 768 ; C -1 ; WX 278 ; N Ibreve ; B 6 0 270 972 ; C -1 ; WX 278 ; N ibreve ; B 5 0 269 783 ; C -1 ; WX 808 ; N IJ ; B 63 -23 740 729 ; C -1 ; WX 492 ; N ij ; B 67 -218 418 729 ; C -1 ; WX 556 ; N Jcircumflex ; B 24 -23 570 979 ; C -1 ; WX 278 ; N jcircumflex ; B -19 -218 299 783 ; C -1 ; WX 573 ; N kgreenlandic ; B 59 0 548 540 ; C -1 ; WX 611 ; N Ldot ; B 80 0 579 729 ; C -1 ; WX 556 ; N ldot ; B 67 0 444 729 ; C -1 ; WX 611 ; N napostrophe ; B 63 0 546 849 ; C -1 ; WX 722 ; N Eng ; B 68 -172 661 729 ; C -1 ; WX 611 ; N eng ; B 63 -187 546 549 ; C -1 ; WX 778 ; N Obreve ; B 40 -23 742 972 ; C -1 ; WX 611 ; N obreve ; B 35 -23 569 783 ; C -1 ; WX 667 ; N Scircumflex ; B 32 -23 633 979 ; C -1 ; WX 556 ; N scircumflex ; B 29 -23 520 790 ; C -1 ; WX 611 ; N Tbar ; B 14 0 598 729 ; C -1 ; WX 333 ; N tbar ; B 14 -23 302 674 ; C -1 ; WX 611 ; N Tcedilla ; B 14 -228 598 718 ; C -1 ; WX 333 ; N tcedilla ; B 10 -228 309 676 ; C -1 ; WX 722 ; N Utilde ; B 76 -23 654 957 ; C -1 ; WX 611 ; N utilde ; B 58 -23 541 768 ; C -1 ; WX 722 ; N Ubreve ; B 76 -23 654 972 ; C -1 ; WX 611 ; N ubreve ; B 58 -23 541 783 ; C -1 ; WX 944 ; N Wcircumflex ; B 13 0 932 979 ; C -1 ; WX 778 ; N wcircumflex ; B 5 0 766 790 ; C -1 ; WX 667 ; N Ycircumflex ; B 27 0 650 979 ; C -1 ; WX 556 ; N ycircumflex ; B 9 -219 538 790 ; C -1 ; WX 333 ; N longs ; B 14 0 308 729 ; C -1 ; WX 871 ; N infinity ; B 29 109 847 592 ; EndCharMetrics StartKernData StartKernPairs 2481 KPX A C -40 KPX A Cacute -40 KPX A Ccaron -40 KPX A Ccedilla -40 KPX A G -50 KPX A Gbreve -50 KPX A Gcommaaccent -50 KPX A O -40 KPX A Oacute -40 KPX A Ocircumflex -40 KPX A Odieresis -40 KPX A Ograve -40 KPX A Ohungarumlaut -40 KPX A Omacron -40 KPX A Oslash -40 KPX A Otilde -40 KPX A Q -40 KPX A T -90 KPX A Tcaron -90 KPX A Tcommaaccent -90 KPX A U -50 KPX A Uacute -50 KPX A Ucircumflex -50 KPX A Udieresis -50 KPX A Ugrave -50 KPX A Uhungarumlaut -50 KPX A Umacron -50 KPX A Uogonek -50 KPX A Uring -50 KPX A V -80 KPX A W -60 KPX A Y -110 KPX A Yacute -110 KPX A Ydieresis -110 KPX A u -30 KPX A uacute -30 KPX A ucircumflex -30 KPX A udieresis -30 KPX A ugrave -30 KPX A uhungarumlaut -30 KPX A umacron -30 KPX A uogonek -30 KPX A uring -30 KPX A v -40 KPX A w -30 KPX A y -30 KPX A yacute -30 KPX A ydieresis -30 KPX Aacute C -40 KPX Aacute Cacute -40 KPX Aacute Ccaron -40 KPX Aacute Ccedilla -40 KPX Aacute G -50 KPX Aacute Gbreve -50 KPX Aacute Gcommaaccent -50 KPX Aacute O -40 KPX Aacute Oacute -40 KPX Aacute Ocircumflex -40 KPX Aacute Odieresis -40 KPX Aacute Ograve -40 KPX Aacute Ohungarumlaut -40 KPX Aacute Omacron -40 KPX Aacute Oslash -40 KPX Aacute Otilde -40 KPX Aacute Q -40 KPX Aacute T -90 KPX Aacute Tcaron -90 KPX Aacute Tcommaaccent -90 KPX Aacute U -50 KPX Aacute Uacute -50 KPX Aacute Ucircumflex -50 KPX Aacute Udieresis -50 KPX Aacute Ugrave -50 KPX Aacute Uhungarumlaut -50 KPX Aacute Umacron -50 KPX Aacute Uogonek -50 KPX Aacute Uring -50 KPX Aacute V -80 KPX Aacute W -60 KPX Aacute Y -110 KPX Aacute Yacute -110 KPX Aacute Ydieresis -110 KPX Aacute u -30 KPX Aacute uacute -30 KPX Aacute ucircumflex -30 KPX Aacute udieresis -30 KPX Aacute ugrave -30 KPX Aacute uhungarumlaut -30 KPX Aacute umacron -30 KPX Aacute uogonek -30 KPX Aacute uring -30 KPX Aacute v -40 KPX Aacute w -30 KPX Aacute y -30 KPX Aacute yacute -30 KPX Aacute ydieresis -30 KPX Abreve C -40 KPX Abreve Cacute -40 KPX Abreve Ccaron -40 KPX Abreve Ccedilla -40 KPX Abreve G -50 KPX Abreve Gbreve -50 KPX Abreve Gcommaaccent -50 KPX Abreve O -40 KPX Abreve Oacute -40 KPX Abreve Ocircumflex -40 KPX Abreve Odieresis -40 KPX Abreve Ograve -40 KPX Abreve Ohungarumlaut -40 KPX Abreve Omacron -40 KPX Abreve Oslash -40 KPX Abreve Otilde -40 KPX Abreve Q -40 KPX Abreve T -90 KPX Abreve Tcaron -90 KPX Abreve Tcommaaccent -90 KPX Abreve U -50 KPX Abreve Uacute -50 KPX Abreve Ucircumflex -50 KPX Abreve Udieresis -50 KPX Abreve Ugrave -50 KPX Abreve Uhungarumlaut -50 KPX Abreve Umacron -50 KPX Abreve Uogonek -50 KPX Abreve Uring -50 KPX Abreve V -80 KPX Abreve W -60 KPX Abreve Y -110 KPX Abreve Yacute -110 KPX Abreve Ydieresis -110 KPX Abreve u -30 KPX Abreve uacute -30 KPX Abreve ucircumflex -30 KPX Abreve udieresis -30 KPX Abreve ugrave -30 KPX Abreve uhungarumlaut -30 KPX Abreve umacron -30 KPX Abreve uogonek -30 KPX Abreve uring -30 KPX Abreve v -40 KPX Abreve w -30 KPX Abreve y -30 KPX Abreve yacute -30 KPX Abreve ydieresis -30 KPX Acircumflex C -40 KPX Acircumflex Cacute -40 KPX Acircumflex Ccaron -40 KPX Acircumflex Ccedilla -40 KPX Acircumflex G -50 KPX Acircumflex Gbreve -50 KPX Acircumflex Gcommaaccent -50 KPX Acircumflex O -40 KPX Acircumflex Oacute -40 KPX Acircumflex Ocircumflex -40 KPX Acircumflex Odieresis -40 KPX Acircumflex Ograve -40 KPX Acircumflex Ohungarumlaut -40 KPX Acircumflex Omacron -40 KPX Acircumflex Oslash -40 KPX Acircumflex Otilde -40 KPX Acircumflex Q -40 KPX Acircumflex T -90 KPX Acircumflex Tcaron -90 KPX Acircumflex Tcommaaccent -90 KPX Acircumflex U -50 KPX Acircumflex Uacute -50 KPX Acircumflex Ucircumflex -50 KPX Acircumflex Udieresis -50 KPX Acircumflex Ugrave -50 KPX Acircumflex Uhungarumlaut -50 KPX Acircumflex Umacron -50 KPX Acircumflex Uogonek -50 KPX Acircumflex Uring -50 KPX Acircumflex V -80 KPX Acircumflex W -60 KPX Acircumflex Y -110 KPX Acircumflex Yacute -110 KPX Acircumflex Ydieresis -110 KPX Acircumflex u -30 KPX Acircumflex uacute -30 KPX Acircumflex ucircumflex -30 KPX Acircumflex udieresis -30 KPX Acircumflex ugrave -30 KPX Acircumflex uhungarumlaut -30 KPX Acircumflex umacron -30 KPX Acircumflex uogonek -30 KPX Acircumflex uring -30 KPX Acircumflex v -40 KPX Acircumflex w -30 KPX Acircumflex y -30 KPX Acircumflex yacute -30 KPX Acircumflex ydieresis -30 KPX Adieresis C -40 KPX Adieresis Cacute -40 KPX Adieresis Ccaron -40 KPX Adieresis Ccedilla -40 KPX Adieresis G -50 KPX Adieresis Gbreve -50 KPX Adieresis Gcommaaccent -50 KPX Adieresis O -40 KPX Adieresis Oacute -40 KPX Adieresis Ocircumflex -40 KPX Adieresis Odieresis -40 KPX Adieresis Ograve -40 KPX Adieresis Ohungarumlaut -40 KPX Adieresis Omacron -40 KPX Adieresis Oslash -40 KPX Adieresis Otilde -40 KPX Adieresis Q -40 KPX Adieresis T -90 KPX Adieresis Tcaron -90 KPX Adieresis Tcommaaccent -90 KPX Adieresis U -50 KPX Adieresis Uacute -50 KPX Adieresis Ucircumflex -50 KPX Adieresis Udieresis -50 KPX Adieresis Ugrave -50 KPX Adieresis Uhungarumlaut -50 KPX Adieresis Umacron -50 KPX Adieresis Uogonek -50 KPX Adieresis Uring -50 KPX Adieresis V -80 KPX Adieresis W -60 KPX Adieresis Y -110 KPX Adieresis Yacute -110 KPX Adieresis Ydieresis -110 KPX Adieresis u -30 KPX Adieresis uacute -30 KPX Adieresis ucircumflex -30 KPX Adieresis udieresis -30 KPX Adieresis ugrave -30 KPX Adieresis uhungarumlaut -30 KPX Adieresis umacron -30 KPX Adieresis uogonek -30 KPX Adieresis uring -30 KPX Adieresis v -40 KPX Adieresis w -30 KPX Adieresis y -30 KPX Adieresis yacute -30 KPX Adieresis ydieresis -30 KPX Agrave C -40 KPX Agrave Cacute -40 KPX Agrave Ccaron -40 KPX Agrave Ccedilla -40 KPX Agrave G -50 KPX Agrave Gbreve -50 KPX Agrave Gcommaaccent -50 KPX Agrave O -40 KPX Agrave Oacute -40 KPX Agrave Ocircumflex -40 KPX Agrave Odieresis -40 KPX Agrave Ograve -40 KPX Agrave Ohungarumlaut -40 KPX Agrave Omacron -40 KPX Agrave Oslash -40 KPX Agrave Otilde -40 KPX Agrave Q -40 KPX Agrave T -90 KPX Agrave Tcaron -90 KPX Agrave Tcommaaccent -90 KPX Agrave U -50 KPX Agrave Uacute -50 KPX Agrave Ucircumflex -50 KPX Agrave Udieresis -50 KPX Agrave Ugrave -50 KPX Agrave Uhungarumlaut -50 KPX Agrave Umacron -50 KPX Agrave Uogonek -50 KPX Agrave Uring -50 KPX Agrave V -80 KPX Agrave W -60 KPX Agrave Y -110 KPX Agrave Yacute -110 KPX Agrave Ydieresis -110 KPX Agrave u -30 KPX Agrave uacute -30 KPX Agrave ucircumflex -30 KPX Agrave udieresis -30 KPX Agrave ugrave -30 KPX Agrave uhungarumlaut -30 KPX Agrave umacron -30 KPX Agrave uogonek -30 KPX Agrave uring -30 KPX Agrave v -40 KPX Agrave w -30 KPX Agrave y -30 KPX Agrave yacute -30 KPX Agrave ydieresis -30 KPX Amacron C -40 KPX Amacron Cacute -40 KPX Amacron Ccaron -40 KPX Amacron Ccedilla -40 KPX Amacron G -50 KPX Amacron Gbreve -50 KPX Amacron Gcommaaccent -50 KPX Amacron O -40 KPX Amacron Oacute -40 KPX Amacron Ocircumflex -40 KPX Amacron Odieresis -40 KPX Amacron Ograve -40 KPX Amacron Ohungarumlaut -40 KPX Amacron Omacron -40 KPX Amacron Oslash -40 KPX Amacron Otilde -40 KPX Amacron Q -40 KPX Amacron T -90 KPX Amacron Tcaron -90 KPX Amacron Tcommaaccent -90 KPX Amacron U -50 KPX Amacron Uacute -50 KPX Amacron Ucircumflex -50 KPX Amacron Udieresis -50 KPX Amacron Ugrave -50 KPX Amacron Uhungarumlaut -50 KPX Amacron Umacron -50 KPX Amacron Uogonek -50 KPX Amacron Uring -50 KPX Amacron V -80 KPX Amacron W -60 KPX Amacron Y -110 KPX Amacron Yacute -110 KPX Amacron Ydieresis -110 KPX Amacron u -30 KPX Amacron uacute -30 KPX Amacron ucircumflex -30 KPX Amacron udieresis -30 KPX Amacron ugrave -30 KPX Amacron uhungarumlaut -30 KPX Amacron umacron -30 KPX Amacron uogonek -30 KPX Amacron uring -30 KPX Amacron v -40 KPX Amacron w -30 KPX Amacron y -30 KPX Amacron yacute -30 KPX Amacron ydieresis -30 KPX Aogonek C -40 KPX Aogonek Cacute -40 KPX Aogonek Ccaron -40 KPX Aogonek Ccedilla -40 KPX Aogonek G -50 KPX Aogonek Gbreve -50 KPX Aogonek Gcommaaccent -50 KPX Aogonek O -40 KPX Aogonek Oacute -40 KPX Aogonek Ocircumflex -40 KPX Aogonek Odieresis -40 KPX Aogonek Ograve -40 KPX Aogonek Ohungarumlaut -40 KPX Aogonek Omacron -40 KPX Aogonek Oslash -40 KPX Aogonek Otilde -40 KPX Aogonek Q -40 KPX Aogonek T -90 KPX Aogonek Tcaron -90 KPX Aogonek Tcommaaccent -90 KPX Aogonek U -50 KPX Aogonek Uacute -50 KPX Aogonek Ucircumflex -50 KPX Aogonek Udieresis -50 KPX Aogonek Ugrave -50 KPX Aogonek Uhungarumlaut -50 KPX Aogonek Umacron -50 KPX Aogonek Uogonek -50 KPX Aogonek Uring -50 KPX Aogonek V -80 KPX Aogonek W -60 KPX Aogonek Y -110 KPX Aogonek Yacute -110 KPX Aogonek Ydieresis -110 KPX Aogonek u -30 KPX Aogonek uacute -30 KPX Aogonek ucircumflex -30 KPX Aogonek udieresis -30 KPX Aogonek ugrave -30 KPX Aogonek uhungarumlaut -30 KPX Aogonek umacron -30 KPX Aogonek uogonek -30 KPX Aogonek uring -30 KPX Aogonek v -40 KPX Aogonek w -30 KPX Aogonek y -30 KPX Aogonek yacute -30 KPX Aogonek ydieresis -30 KPX Aring C -40 KPX Aring Cacute -40 KPX Aring Ccaron -40 KPX Aring Ccedilla -40 KPX Aring G -50 KPX Aring Gbreve -50 KPX Aring Gcommaaccent -50 KPX Aring O -40 KPX Aring Oacute -40 KPX Aring Ocircumflex -40 KPX Aring Odieresis -40 KPX Aring Ograve -40 KPX Aring Ohungarumlaut -40 KPX Aring Omacron -40 KPX Aring Oslash -40 KPX Aring Otilde -40 KPX Aring Q -40 KPX Aring T -90 KPX Aring Tcaron -90 KPX Aring Tcommaaccent -90 KPX Aring U -50 KPX Aring Uacute -50 KPX Aring Ucircumflex -50 KPX Aring Udieresis -50 KPX Aring Ugrave -50 KPX Aring Uhungarumlaut -50 KPX Aring Umacron -50 KPX Aring Uogonek -50 KPX Aring Uring -50 KPX Aring V -80 KPX Aring W -60 KPX Aring Y -110 KPX Aring Yacute -110 KPX Aring Ydieresis -110 KPX Aring u -30 KPX Aring uacute -30 KPX Aring ucircumflex -30 KPX Aring udieresis -30 KPX Aring ugrave -30 KPX Aring uhungarumlaut -30 KPX Aring umacron -30 KPX Aring uogonek -30 KPX Aring uring -30 KPX Aring v -40 KPX Aring w -30 KPX Aring y -30 KPX Aring yacute -30 KPX Aring ydieresis -30 KPX Atilde C -40 KPX Atilde Cacute -40 KPX Atilde Ccaron -40 KPX Atilde Ccedilla -40 KPX Atilde G -50 KPX Atilde Gbreve -50 KPX Atilde Gcommaaccent -50 KPX Atilde O -40 KPX Atilde Oacute -40 KPX Atilde Ocircumflex -40 KPX Atilde Odieresis -40 KPX Atilde Ograve -40 KPX Atilde Ohungarumlaut -40 KPX Atilde Omacron -40 KPX Atilde Oslash -40 KPX Atilde Otilde -40 KPX Atilde Q -40 KPX Atilde T -90 KPX Atilde Tcaron -90 KPX Atilde Tcommaaccent -90 KPX Atilde U -50 KPX Atilde Uacute -50 KPX Atilde Ucircumflex -50 KPX Atilde Udieresis -50 KPX Atilde Ugrave -50 KPX Atilde Uhungarumlaut -50 KPX Atilde Umacron -50 KPX Atilde Uogonek -50 KPX Atilde Uring -50 KPX Atilde V -80 KPX Atilde W -60 KPX Atilde Y -110 KPX Atilde Yacute -110 KPX Atilde Ydieresis -110 KPX Atilde u -30 KPX Atilde uacute -30 KPX Atilde ucircumflex -30 KPX Atilde udieresis -30 KPX Atilde ugrave -30 KPX Atilde uhungarumlaut -30 KPX Atilde umacron -30 KPX Atilde uogonek -30 KPX Atilde uring -30 KPX Atilde v -40 KPX Atilde w -30 KPX Atilde y -30 KPX Atilde yacute -30 KPX Atilde ydieresis -30 KPX B A -30 KPX B Aacute -30 KPX B Abreve -30 KPX B Acircumflex -30 KPX B Adieresis -30 KPX B Agrave -30 KPX B Amacron -30 KPX B Aogonek -30 KPX B Aring -30 KPX B Atilde -30 KPX B U -10 KPX B Uacute -10 KPX B Ucircumflex -10 KPX B Udieresis -10 KPX B Ugrave -10 KPX B Uhungarumlaut -10 KPX B Umacron -10 KPX B Uogonek -10 KPX B Uring -10 KPX D A -40 KPX D Aacute -40 KPX D Abreve -40 KPX D Acircumflex -40 KPX D Adieresis -40 KPX D Agrave -40 KPX D Amacron -40 KPX D Aogonek -40 KPX D Aring -40 KPX D Atilde -40 KPX D V -40 KPX D W -40 KPX D Y -70 KPX D Yacute -70 KPX D Ydieresis -70 KPX D comma -30 KPX D period -30 KPX Dcaron A -40 KPX Dcaron Aacute -40 KPX Dcaron Abreve -40 KPX Dcaron Acircumflex -40 KPX Dcaron Adieresis -40 KPX Dcaron Agrave -40 KPX Dcaron Amacron -40 KPX Dcaron Aogonek -40 KPX Dcaron Aring -40 KPX Dcaron Atilde -40 KPX Dcaron V -40 KPX Dcaron W -40 KPX Dcaron Y -70 KPX Dcaron Yacute -70 KPX Dcaron Ydieresis -70 KPX Dcaron comma -30 KPX Dcaron period -30 KPX Dcroat A -40 KPX Dcroat Aacute -40 KPX Dcroat Abreve -40 KPX Dcroat Acircumflex -40 KPX Dcroat Adieresis -40 KPX Dcroat Agrave -40 KPX Dcroat Amacron -40 KPX Dcroat Aogonek -40 KPX Dcroat Aring -40 KPX Dcroat Atilde -40 KPX Dcroat V -40 KPX Dcroat W -40 KPX Dcroat Y -70 KPX Dcroat Yacute -70 KPX Dcroat Ydieresis -70 KPX Dcroat comma -30 KPX Dcroat period -30 KPX F A -80 KPX F Aacute -80 KPX F Abreve -80 KPX F Acircumflex -80 KPX F Adieresis -80 KPX F Agrave -80 KPX F Amacron -80 KPX F Aogonek -80 KPX F Aring -80 KPX F Atilde -80 KPX F a -20 KPX F aacute -20 KPX F abreve -20 KPX F acircumflex -20 KPX F adieresis -20 KPX F agrave -20 KPX F amacron -20 KPX F aogonek -20 KPX F aring -20 KPX F atilde -20 KPX F comma -100 KPX F period -100 KPX J A -20 KPX J Aacute -20 KPX J Abreve -20 KPX J Acircumflex -20 KPX J Adieresis -20 KPX J Agrave -20 KPX J Amacron -20 KPX J Aogonek -20 KPX J Aring -20 KPX J Atilde -20 KPX J comma -20 KPX J period -20 KPX J u -20 KPX J uacute -20 KPX J ucircumflex -20 KPX J udieresis -20 KPX J ugrave -20 KPX J uhungarumlaut -20 KPX J umacron -20 KPX J uogonek -20 KPX J uring -20 KPX K O -30 KPX K Oacute -30 KPX K Ocircumflex -30 KPX K Odieresis -30 KPX K Ograve -30 KPX K Ohungarumlaut -30 KPX K Omacron -30 KPX K Oslash -30 KPX K Otilde -30 KPX K e -15 KPX K eacute -15 KPX K ecaron -15 KPX K ecircumflex -15 KPX K edieresis -15 KPX K edotaccent -15 KPX K egrave -15 KPX K emacron -15 KPX K eogonek -15 KPX K o -35 KPX K oacute -35 KPX K ocircumflex -35 KPX K odieresis -35 KPX K ograve -35 KPX K ohungarumlaut -35 KPX K omacron -35 KPX K oslash -35 KPX K otilde -35 KPX K u -30 KPX K uacute -30 KPX K ucircumflex -30 KPX K udieresis -30 KPX K ugrave -30 KPX K uhungarumlaut -30 KPX K umacron -30 KPX K uogonek -30 KPX K uring -30 KPX K y -40 KPX K yacute -40 KPX K ydieresis -40 KPX Kcommaaccent O -30 KPX Kcommaaccent Oacute -30 KPX Kcommaaccent Ocircumflex -30 KPX Kcommaaccent Odieresis -30 KPX Kcommaaccent Ograve -30 KPX Kcommaaccent Ohungarumlaut -30 KPX Kcommaaccent Omacron -30 KPX Kcommaaccent Oslash -30 KPX Kcommaaccent Otilde -30 KPX Kcommaaccent e -15 KPX Kcommaaccent eacute -15 KPX Kcommaaccent ecaron -15 KPX Kcommaaccent ecircumflex -15 KPX Kcommaaccent edieresis -15 KPX Kcommaaccent edotaccent -15 KPX Kcommaaccent egrave -15 KPX Kcommaaccent emacron -15 KPX Kcommaaccent eogonek -15 KPX Kcommaaccent o -35 KPX Kcommaaccent oacute -35 KPX Kcommaaccent ocircumflex -35 KPX Kcommaaccent odieresis -35 KPX Kcommaaccent ograve -35 KPX Kcommaaccent ohungarumlaut -35 KPX Kcommaaccent omacron -35 KPX Kcommaaccent oslash -35 KPX Kcommaaccent otilde -35 KPX Kcommaaccent u -30 KPX Kcommaaccent uacute -30 KPX Kcommaaccent ucircumflex -30 KPX Kcommaaccent udieresis -30 KPX Kcommaaccent ugrave -30 KPX Kcommaaccent uhungarumlaut -30 KPX Kcommaaccent umacron -30 KPX Kcommaaccent uogonek -30 KPX Kcommaaccent uring -30 KPX Kcommaaccent y -40 KPX Kcommaaccent yacute -40 KPX Kcommaaccent ydieresis -40 KPX L T -90 KPX L Tcaron -90 KPX L Tcommaaccent -90 KPX L V -110 KPX L W -80 KPX L Y -120 KPX L Yacute -120 KPX L Ydieresis -120 KPX L quotedblright -140 KPX L quoteright -140 KPX L y -30 KPX L yacute -30 KPX L ydieresis -30 KPX Lacute T -90 KPX Lacute Tcaron -90 KPX Lacute Tcommaaccent -90 KPX Lacute V -110 KPX Lacute W -80 KPX Lacute Y -120 KPX Lacute Yacute -120 KPX Lacute Ydieresis -120 KPX Lacute quotedblright -140 KPX Lacute quoteright -140 KPX Lacute y -30 KPX Lacute yacute -30 KPX Lacute ydieresis -30 KPX Lcommaaccent T -90 KPX Lcommaaccent Tcaron -90 KPX Lcommaaccent Tcommaaccent -90 KPX Lcommaaccent V -110 KPX Lcommaaccent W -80 KPX Lcommaaccent Y -120 KPX Lcommaaccent Yacute -120 KPX Lcommaaccent Ydieresis -120 KPX Lcommaaccent quotedblright -140 KPX Lcommaaccent quoteright -140 KPX Lcommaaccent y -30 KPX Lcommaaccent yacute -30 KPX Lcommaaccent ydieresis -30 KPX Lslash T -90 KPX Lslash Tcaron -90 KPX Lslash Tcommaaccent -90 KPX Lslash V -110 KPX Lslash W -80 KPX Lslash Y -120 KPX Lslash Yacute -120 KPX Lslash Ydieresis -120 KPX Lslash quotedblright -140 KPX Lslash quoteright -140 KPX Lslash y -30 KPX Lslash yacute -30 KPX Lslash ydieresis -30 KPX O A -50 KPX O Aacute -50 KPX O Abreve -50 KPX O Acircumflex -50 KPX O Adieresis -50 KPX O Agrave -50 KPX O Amacron -50 KPX O Aogonek -50 KPX O Aring -50 KPX O Atilde -50 KPX O T -40 KPX O Tcaron -40 KPX O Tcommaaccent -40 KPX O V -50 KPX O W -50 KPX O X -50 KPX O Y -70 KPX O Yacute -70 KPX O Ydieresis -70 KPX O comma -40 KPX O period -40 KPX Oacute A -50 KPX Oacute Aacute -50 KPX Oacute Abreve -50 KPX Oacute Acircumflex -50 KPX Oacute Adieresis -50 KPX Oacute Agrave -50 KPX Oacute Amacron -50 KPX Oacute Aogonek -50 KPX Oacute Aring -50 KPX Oacute Atilde -50 KPX Oacute T -40 KPX Oacute Tcaron -40 KPX Oacute Tcommaaccent -40 KPX Oacute V -50 KPX Oacute W -50 KPX Oacute X -50 KPX Oacute Y -70 KPX Oacute Yacute -70 KPX Oacute Ydieresis -70 KPX Oacute comma -40 KPX Oacute period -40 KPX Ocircumflex A -50 KPX Ocircumflex Aacute -50 KPX Ocircumflex Abreve -50 KPX Ocircumflex Acircumflex -50 KPX Ocircumflex Adieresis -50 KPX Ocircumflex Agrave -50 KPX Ocircumflex Amacron -50 KPX Ocircumflex Aogonek -50 KPX Ocircumflex Aring -50 KPX Ocircumflex Atilde -50 KPX Ocircumflex T -40 KPX Ocircumflex Tcaron -40 KPX Ocircumflex Tcommaaccent -40 KPX Ocircumflex V -50 KPX Ocircumflex W -50 KPX Ocircumflex X -50 KPX Ocircumflex Y -70 KPX Ocircumflex Yacute -70 KPX Ocircumflex Ydieresis -70 KPX Ocircumflex comma -40 KPX Ocircumflex period -40 KPX Odieresis A -50 KPX Odieresis Aacute -50 KPX Odieresis Abreve -50 KPX Odieresis Acircumflex -50 KPX Odieresis Adieresis -50 KPX Odieresis Agrave -50 KPX Odieresis Amacron -50 KPX Odieresis Aogonek -50 KPX Odieresis Aring -50 KPX Odieresis Atilde -50 KPX Odieresis T -40 KPX Odieresis Tcaron -40 KPX Odieresis Tcommaaccent -40 KPX Odieresis V -50 KPX Odieresis W -50 KPX Odieresis X -50 KPX Odieresis Y -70 KPX Odieresis Yacute -70 KPX Odieresis Ydieresis -70 KPX Odieresis comma -40 KPX Odieresis period -40 KPX Ograve A -50 KPX Ograve Aacute -50 KPX Ograve Abreve -50 KPX Ograve Acircumflex -50 KPX Ograve Adieresis -50 KPX Ograve Agrave -50 KPX Ograve Amacron -50 KPX Ograve Aogonek -50 KPX Ograve Aring -50 KPX Ograve Atilde -50 KPX Ograve T -40 KPX Ograve Tcaron -40 KPX Ograve Tcommaaccent -40 KPX Ograve V -50 KPX Ograve W -50 KPX Ograve X -50 KPX Ograve Y -70 KPX Ograve Yacute -70 KPX Ograve Ydieresis -70 KPX Ograve comma -40 KPX Ograve period -40 KPX Ohungarumlaut A -50 KPX Ohungarumlaut Aacute -50 KPX Ohungarumlaut Abreve -50 KPX Ohungarumlaut Acircumflex -50 KPX Ohungarumlaut Adieresis -50 KPX Ohungarumlaut Agrave -50 KPX Ohungarumlaut Amacron -50 KPX Ohungarumlaut Aogonek -50 KPX Ohungarumlaut Aring -50 KPX Ohungarumlaut Atilde -50 KPX Ohungarumlaut T -40 KPX Ohungarumlaut Tcaron -40 KPX Ohungarumlaut Tcommaaccent -40 KPX Ohungarumlaut V -50 KPX Ohungarumlaut W -50 KPX Ohungarumlaut X -50 KPX Ohungarumlaut Y -70 KPX Ohungarumlaut Yacute -70 KPX Ohungarumlaut Ydieresis -70 KPX Ohungarumlaut comma -40 KPX Ohungarumlaut period -40 KPX Omacron A -50 KPX Omacron Aacute -50 KPX Omacron Abreve -50 KPX Omacron Acircumflex -50 KPX Omacron Adieresis -50 KPX Omacron Agrave -50 KPX Omacron Amacron -50 KPX Omacron Aogonek -50 KPX Omacron Aring -50 KPX Omacron Atilde -50 KPX Omacron T -40 KPX Omacron Tcaron -40 KPX Omacron Tcommaaccent -40 KPX Omacron V -50 KPX Omacron W -50 KPX Omacron X -50 KPX Omacron Y -70 KPX Omacron Yacute -70 KPX Omacron Ydieresis -70 KPX Omacron comma -40 KPX Omacron period -40 KPX Oslash A -50 KPX Oslash Aacute -50 KPX Oslash Abreve -50 KPX Oslash Acircumflex -50 KPX Oslash Adieresis -50 KPX Oslash Agrave -50 KPX Oslash Amacron -50 KPX Oslash Aogonek -50 KPX Oslash Aring -50 KPX Oslash Atilde -50 KPX Oslash T -40 KPX Oslash Tcaron -40 KPX Oslash Tcommaaccent -40 KPX Oslash V -50 KPX Oslash W -50 KPX Oslash X -50 KPX Oslash Y -70 KPX Oslash Yacute -70 KPX Oslash Ydieresis -70 KPX Oslash comma -40 KPX Oslash period -40 KPX Otilde A -50 KPX Otilde Aacute -50 KPX Otilde Abreve -50 KPX Otilde Acircumflex -50 KPX Otilde Adieresis -50 KPX Otilde Agrave -50 KPX Otilde Amacron -50 KPX Otilde Aogonek -50 KPX Otilde Aring -50 KPX Otilde Atilde -50 KPX Otilde T -40 KPX Otilde Tcaron -40 KPX Otilde Tcommaaccent -40 KPX Otilde V -50 KPX Otilde W -50 KPX Otilde X -50 KPX Otilde Y -70 KPX Otilde Yacute -70 KPX Otilde Ydieresis -70 KPX Otilde comma -40 KPX Otilde period -40 KPX P A -100 KPX P Aacute -100 KPX P Abreve -100 KPX P Acircumflex -100 KPX P Adieresis -100 KPX P Agrave -100 KPX P Amacron -100 KPX P Aogonek -100 KPX P Aring -100 KPX P Atilde -100 KPX P a -30 KPX P aacute -30 KPX P abreve -30 KPX P acircumflex -30 KPX P adieresis -30 KPX P agrave -30 KPX P amacron -30 KPX P aogonek -30 KPX P aring -30 KPX P atilde -30 KPX P comma -120 KPX P e -30 KPX P eacute -30 KPX P ecaron -30 KPX P ecircumflex -30 KPX P edieresis -30 KPX P edotaccent -30 KPX P egrave -30 KPX P emacron -30 KPX P eogonek -30 KPX P o -40 KPX P oacute -40 KPX P ocircumflex -40 KPX P odieresis -40 KPX P ograve -40 KPX P ohungarumlaut -40 KPX P omacron -40 KPX P oslash -40 KPX P otilde -40 KPX P period -120 KPX Q U -10 KPX Q Uacute -10 KPX Q Ucircumflex -10 KPX Q Udieresis -10 KPX Q Ugrave -10 KPX Q Uhungarumlaut -10 KPX Q Umacron -10 KPX Q Uogonek -10 KPX Q Uring -10 KPX Q comma 20 KPX Q period 20 KPX R O -20 KPX R Oacute -20 KPX R Ocircumflex -20 KPX R Odieresis -20 KPX R Ograve -20 KPX R Ohungarumlaut -20 KPX R Omacron -20 KPX R Oslash -20 KPX R Otilde -20 KPX R T -20 KPX R Tcaron -20 KPX R Tcommaaccent -20 KPX R U -20 KPX R Uacute -20 KPX R Ucircumflex -20 KPX R Udieresis -20 KPX R Ugrave -20 KPX R Uhungarumlaut -20 KPX R Umacron -20 KPX R Uogonek -20 KPX R Uring -20 KPX R V -50 KPX R W -40 KPX R Y -50 KPX R Yacute -50 KPX R Ydieresis -50 KPX Racute O -20 KPX Racute Oacute -20 KPX Racute Ocircumflex -20 KPX Racute Odieresis -20 KPX Racute Ograve -20 KPX Racute Ohungarumlaut -20 KPX Racute Omacron -20 KPX Racute Oslash -20 KPX Racute Otilde -20 KPX Racute T -20 KPX Racute Tcaron -20 KPX Racute Tcommaaccent -20 KPX Racute U -20 KPX Racute Uacute -20 KPX Racute Ucircumflex -20 KPX Racute Udieresis -20 KPX Racute Ugrave -20 KPX Racute Uhungarumlaut -20 KPX Racute Umacron -20 KPX Racute Uogonek -20 KPX Racute Uring -20 KPX Racute V -50 KPX Racute W -40 KPX Racute Y -50 KPX Racute Yacute -50 KPX Racute Ydieresis -50 KPX Rcaron O -20 KPX Rcaron Oacute -20 KPX Rcaron Ocircumflex -20 KPX Rcaron Odieresis -20 KPX Rcaron Ograve -20 KPX Rcaron Ohungarumlaut -20 KPX Rcaron Omacron -20 KPX Rcaron Oslash -20 KPX Rcaron Otilde -20 KPX Rcaron T -20 KPX Rcaron Tcaron -20 KPX Rcaron Tcommaaccent -20 KPX Rcaron U -20 KPX Rcaron Uacute -20 KPX Rcaron Ucircumflex -20 KPX Rcaron Udieresis -20 KPX Rcaron Ugrave -20 KPX Rcaron Uhungarumlaut -20 KPX Rcaron Umacron -20 KPX Rcaron Uogonek -20 KPX Rcaron Uring -20 KPX Rcaron V -50 KPX Rcaron W -40 KPX Rcaron Y -50 KPX Rcaron Yacute -50 KPX Rcaron Ydieresis -50 KPX Rcommaaccent O -20 KPX Rcommaaccent Oacute -20 KPX Rcommaaccent Ocircumflex -20 KPX Rcommaaccent Odieresis -20 KPX Rcommaaccent Ograve -20 KPX Rcommaaccent Ohungarumlaut -20 KPX Rcommaaccent Omacron -20 KPX Rcommaaccent Oslash -20 KPX Rcommaaccent Otilde -20 KPX Rcommaaccent T -20 KPX Rcommaaccent Tcaron -20 KPX Rcommaaccent Tcommaaccent -20 KPX Rcommaaccent U -20 KPX Rcommaaccent Uacute -20 KPX Rcommaaccent Ucircumflex -20 KPX Rcommaaccent Udieresis -20 KPX Rcommaaccent Ugrave -20 KPX Rcommaaccent Uhungarumlaut -20 KPX Rcommaaccent Umacron -20 KPX Rcommaaccent Uogonek -20 KPX Rcommaaccent Uring -20 KPX Rcommaaccent V -50 KPX Rcommaaccent W -40 KPX Rcommaaccent Y -50 KPX Rcommaaccent Yacute -50 KPX Rcommaaccent Ydieresis -50 KPX T A -90 KPX T Aacute -90 KPX T Abreve -90 KPX T Acircumflex -90 KPX T Adieresis -90 KPX T Agrave -90 KPX T Amacron -90 KPX T Aogonek -90 KPX T Aring -90 KPX T Atilde -90 KPX T O -40 KPX T Oacute -40 KPX T Ocircumflex -40 KPX T Odieresis -40 KPX T Ograve -40 KPX T Ohungarumlaut -40 KPX T Omacron -40 KPX T Oslash -40 KPX T Otilde -40 KPX T a -80 KPX T aacute -80 KPX T abreve -80 KPX T acircumflex -80 KPX T adieresis -80 KPX T agrave -80 KPX T amacron -80 KPX T aogonek -80 KPX T aring -80 KPX T atilde -80 KPX T colon -40 KPX T comma -80 KPX T e -60 KPX T eacute -60 KPX T ecaron -60 KPX T ecircumflex -60 KPX T edieresis -60 KPX T edotaccent -60 KPX T egrave -60 KPX T emacron -60 KPX T eogonek -60 KPX T hyphen -120 KPX T o -80 KPX T oacute -80 KPX T ocircumflex -80 KPX T odieresis -80 KPX T ograve -80 KPX T ohungarumlaut -80 KPX T omacron -80 KPX T oslash -80 KPX T otilde -80 KPX T period -80 KPX T r -80 KPX T racute -80 KPX T rcommaaccent -80 KPX T semicolon -40 KPX T u -90 KPX T uacute -90 KPX T ucircumflex -90 KPX T udieresis -90 KPX T ugrave -90 KPX T uhungarumlaut -90 KPX T umacron -90 KPX T uogonek -90 KPX T uring -90 KPX T w -60 KPX T y -60 KPX T yacute -60 KPX T ydieresis -60 KPX Tcaron A -90 KPX Tcaron Aacute -90 KPX Tcaron Abreve -90 KPX Tcaron Acircumflex -90 KPX Tcaron Adieresis -90 KPX Tcaron Agrave -90 KPX Tcaron Amacron -90 KPX Tcaron Aogonek -90 KPX Tcaron Aring -90 KPX Tcaron Atilde -90 KPX Tcaron O -40 KPX Tcaron Oacute -40 KPX Tcaron Ocircumflex -40 KPX Tcaron Odieresis -40 KPX Tcaron Ograve -40 KPX Tcaron Ohungarumlaut -40 KPX Tcaron Omacron -40 KPX Tcaron Oslash -40 KPX Tcaron Otilde -40 KPX Tcaron a -80 KPX Tcaron aacute -80 KPX Tcaron abreve -80 KPX Tcaron acircumflex -80 KPX Tcaron adieresis -80 KPX Tcaron agrave -80 KPX Tcaron amacron -80 KPX Tcaron aogonek -80 KPX Tcaron aring -80 KPX Tcaron atilde -80 KPX Tcaron colon -40 KPX Tcaron comma -80 KPX Tcaron e -60 KPX Tcaron eacute -60 KPX Tcaron ecaron -60 KPX Tcaron ecircumflex -60 KPX Tcaron edieresis -60 KPX Tcaron edotaccent -60 KPX Tcaron egrave -60 KPX Tcaron emacron -60 KPX Tcaron eogonek -60 KPX Tcaron hyphen -120 KPX Tcaron o -80 KPX Tcaron oacute -80 KPX Tcaron ocircumflex -80 KPX Tcaron odieresis -80 KPX Tcaron ograve -80 KPX Tcaron ohungarumlaut -80 KPX Tcaron omacron -80 KPX Tcaron oslash -80 KPX Tcaron otilde -80 KPX Tcaron period -80 KPX Tcaron r -80 KPX Tcaron racute -80 KPX Tcaron rcommaaccent -80 KPX Tcaron semicolon -40 KPX Tcaron u -90 KPX Tcaron uacute -90 KPX Tcaron ucircumflex -90 KPX Tcaron udieresis -90 KPX Tcaron ugrave -90 KPX Tcaron uhungarumlaut -90 KPX Tcaron umacron -90 KPX Tcaron uogonek -90 KPX Tcaron uring -90 KPX Tcaron w -60 KPX Tcaron y -60 KPX Tcaron yacute -60 KPX Tcaron ydieresis -60 KPX Tcommaaccent A -90 KPX Tcommaaccent Aacute -90 KPX Tcommaaccent Abreve -90 KPX Tcommaaccent Acircumflex -90 KPX Tcommaaccent Adieresis -90 KPX Tcommaaccent Agrave -90 KPX Tcommaaccent Amacron -90 KPX Tcommaaccent Aogonek -90 KPX Tcommaaccent Aring -90 KPX Tcommaaccent Atilde -90 KPX Tcommaaccent O -40 KPX Tcommaaccent Oacute -40 KPX Tcommaaccent Ocircumflex -40 KPX Tcommaaccent Odieresis -40 KPX Tcommaaccent Ograve -40 KPX Tcommaaccent Ohungarumlaut -40 KPX Tcommaaccent Omacron -40 KPX Tcommaaccent Oslash -40 KPX Tcommaaccent Otilde -40 KPX Tcommaaccent a -80 KPX Tcommaaccent aacute -80 KPX Tcommaaccent abreve -80 KPX Tcommaaccent acircumflex -80 KPX Tcommaaccent adieresis -80 KPX Tcommaaccent agrave -80 KPX Tcommaaccent amacron -80 KPX Tcommaaccent aogonek -80 KPX Tcommaaccent aring -80 KPX Tcommaaccent atilde -80 KPX Tcommaaccent colon -40 KPX Tcommaaccent comma -80 KPX Tcommaaccent e -60 KPX Tcommaaccent eacute -60 KPX Tcommaaccent ecaron -60 KPX Tcommaaccent ecircumflex -60 KPX Tcommaaccent edieresis -60 KPX Tcommaaccent edotaccent -60 KPX Tcommaaccent egrave -60 KPX Tcommaaccent emacron -60 KPX Tcommaaccent eogonek -60 KPX Tcommaaccent hyphen -120 KPX Tcommaaccent o -80 KPX Tcommaaccent oacute -80 KPX Tcommaaccent ocircumflex -80 KPX Tcommaaccent odieresis -80 KPX Tcommaaccent ograve -80 KPX Tcommaaccent ohungarumlaut -80 KPX Tcommaaccent omacron -80 KPX Tcommaaccent oslash -80 KPX Tcommaaccent otilde -80 KPX Tcommaaccent period -80 KPX Tcommaaccent r -80 KPX Tcommaaccent racute -80 KPX Tcommaaccent rcommaaccent -80 KPX Tcommaaccent semicolon -40 KPX Tcommaaccent u -90 KPX Tcommaaccent uacute -90 KPX Tcommaaccent ucircumflex -90 KPX Tcommaaccent udieresis -90 KPX Tcommaaccent ugrave -90 KPX Tcommaaccent uhungarumlaut -90 KPX Tcommaaccent umacron -90 KPX Tcommaaccent uogonek -90 KPX Tcommaaccent uring -90 KPX Tcommaaccent w -60 KPX Tcommaaccent y -60 KPX Tcommaaccent yacute -60 KPX Tcommaaccent ydieresis -60 KPX U A -50 KPX U Aacute -50 KPX U Abreve -50 KPX U Acircumflex -50 KPX U Adieresis -50 KPX U Agrave -50 KPX U Amacron -50 KPX U Aogonek -50 KPX U Aring -50 KPX U Atilde -50 KPX U comma -30 KPX U period -30 KPX Uacute A -50 KPX Uacute Aacute -50 KPX Uacute Abreve -50 KPX Uacute Acircumflex -50 KPX Uacute Adieresis -50 KPX Uacute Agrave -50 KPX Uacute Amacron -50 KPX Uacute Aogonek -50 KPX Uacute Aring -50 KPX Uacute Atilde -50 KPX Uacute comma -30 KPX Uacute period -30 KPX Ucircumflex A -50 KPX Ucircumflex Aacute -50 KPX Ucircumflex Abreve -50 KPX Ucircumflex Acircumflex -50 KPX Ucircumflex Adieresis -50 KPX Ucircumflex Agrave -50 KPX Ucircumflex Amacron -50 KPX Ucircumflex Aogonek -50 KPX Ucircumflex Aring -50 KPX Ucircumflex Atilde -50 KPX Ucircumflex comma -30 KPX Ucircumflex period -30 KPX Udieresis A -50 KPX Udieresis Aacute -50 KPX Udieresis Abreve -50 KPX Udieresis Acircumflex -50 KPX Udieresis Adieresis -50 KPX Udieresis Agrave -50 KPX Udieresis Amacron -50 KPX Udieresis Aogonek -50 KPX Udieresis Aring -50 KPX Udieresis Atilde -50 KPX Udieresis comma -30 KPX Udieresis period -30 KPX Ugrave A -50 KPX Ugrave Aacute -50 KPX Ugrave Abreve -50 KPX Ugrave Acircumflex -50 KPX Ugrave Adieresis -50 KPX Ugrave Agrave -50 KPX Ugrave Amacron -50 KPX Ugrave Aogonek -50 KPX Ugrave Aring -50 KPX Ugrave Atilde -50 KPX Ugrave comma -30 KPX Ugrave period -30 KPX Uhungarumlaut A -50 KPX Uhungarumlaut Aacute -50 KPX Uhungarumlaut Abreve -50 KPX Uhungarumlaut Acircumflex -50 KPX Uhungarumlaut Adieresis -50 KPX Uhungarumlaut Agrave -50 KPX Uhungarumlaut Amacron -50 KPX Uhungarumlaut Aogonek -50 KPX Uhungarumlaut Aring -50 KPX Uhungarumlaut Atilde -50 KPX Uhungarumlaut comma -30 KPX Uhungarumlaut period -30 KPX Umacron A -50 KPX Umacron Aacute -50 KPX Umacron Abreve -50 KPX Umacron Acircumflex -50 KPX Umacron Adieresis -50 KPX Umacron Agrave -50 KPX Umacron Amacron -50 KPX Umacron Aogonek -50 KPX Umacron Aring -50 KPX Umacron Atilde -50 KPX Umacron comma -30 KPX Umacron period -30 KPX Uogonek A -50 KPX Uogonek Aacute -50 KPX Uogonek Abreve -50 KPX Uogonek Acircumflex -50 KPX Uogonek Adieresis -50 KPX Uogonek Agrave -50 KPX Uogonek Amacron -50 KPX Uogonek Aogonek -50 KPX Uogonek Aring -50 KPX Uogonek Atilde -50 KPX Uogonek comma -30 KPX Uogonek period -30 KPX Uring A -50 KPX Uring Aacute -50 KPX Uring Abreve -50 KPX Uring Acircumflex -50 KPX Uring Adieresis -50 KPX Uring Agrave -50 KPX Uring Amacron -50 KPX Uring Aogonek -50 KPX Uring Aring -50 KPX Uring Atilde -50 KPX Uring comma -30 KPX Uring period -30 KPX V A -80 KPX V Aacute -80 KPX V Abreve -80 KPX V Acircumflex -80 KPX V Adieresis -80 KPX V Agrave -80 KPX V Amacron -80 KPX V Aogonek -80 KPX V Aring -80 KPX V Atilde -80 KPX V G -50 KPX V Gbreve -50 KPX V Gcommaaccent -50 KPX V O -50 KPX V Oacute -50 KPX V Ocircumflex -50 KPX V Odieresis -50 KPX V Ograve -50 KPX V Ohungarumlaut -50 KPX V Omacron -50 KPX V Oslash -50 KPX V Otilde -50 KPX V a -60 KPX V aacute -60 KPX V abreve -60 KPX V acircumflex -60 KPX V adieresis -60 KPX V agrave -60 KPX V amacron -60 KPX V aogonek -60 KPX V aring -60 KPX V atilde -60 KPX V colon -40 KPX V comma -120 KPX V e -50 KPX V eacute -50 KPX V ecaron -50 KPX V ecircumflex -50 KPX V edieresis -50 KPX V edotaccent -50 KPX V egrave -50 KPX V emacron -50 KPX V eogonek -50 KPX V hyphen -80 KPX V o -90 KPX V oacute -90 KPX V ocircumflex -90 KPX V odieresis -90 KPX V ograve -90 KPX V ohungarumlaut -90 KPX V omacron -90 KPX V oslash -90 KPX V otilde -90 KPX V period -120 KPX V semicolon -40 KPX V u -60 KPX V uacute -60 KPX V ucircumflex -60 KPX V udieresis -60 KPX V ugrave -60 KPX V uhungarumlaut -60 KPX V umacron -60 KPX V uogonek -60 KPX V uring -60 KPX W A -60 KPX W Aacute -60 KPX W Abreve -60 KPX W Acircumflex -60 KPX W Adieresis -60 KPX W Agrave -60 KPX W Amacron -60 KPX W Aogonek -60 KPX W Aring -60 KPX W Atilde -60 KPX W O -20 KPX W Oacute -20 KPX W Ocircumflex -20 KPX W Odieresis -20 KPX W Ograve -20 KPX W Ohungarumlaut -20 KPX W Omacron -20 KPX W Oslash -20 KPX W Otilde -20 KPX W a -40 KPX W aacute -40 KPX W abreve -40 KPX W acircumflex -40 KPX W adieresis -40 KPX W agrave -40 KPX W amacron -40 KPX W aogonek -40 KPX W aring -40 KPX W atilde -40 KPX W colon -10 KPX W comma -80 KPX W e -35 KPX W eacute -35 KPX W ecaron -35 KPX W ecircumflex -35 KPX W edieresis -35 KPX W edotaccent -35 KPX W egrave -35 KPX W emacron -35 KPX W eogonek -35 KPX W hyphen -40 KPX W o -60 KPX W oacute -60 KPX W ocircumflex -60 KPX W odieresis -60 KPX W ograve -60 KPX W ohungarumlaut -60 KPX W omacron -60 KPX W oslash -60 KPX W otilde -60 KPX W period -80 KPX W semicolon -10 KPX W u -45 KPX W uacute -45 KPX W ucircumflex -45 KPX W udieresis -45 KPX W ugrave -45 KPX W uhungarumlaut -45 KPX W umacron -45 KPX W uogonek -45 KPX W uring -45 KPX W y -20 KPX W yacute -20 KPX W ydieresis -20 KPX Y A -110 KPX Y Aacute -110 KPX Y Abreve -110 KPX Y Acircumflex -110 KPX Y Adieresis -110 KPX Y Agrave -110 KPX Y Amacron -110 KPX Y Aogonek -110 KPX Y Aring -110 KPX Y Atilde -110 KPX Y O -70 KPX Y Oacute -70 KPX Y Ocircumflex -70 KPX Y Odieresis -70 KPX Y Ograve -70 KPX Y Ohungarumlaut -70 KPX Y Omacron -70 KPX Y Oslash -70 KPX Y Otilde -70 KPX Y a -90 KPX Y aacute -90 KPX Y abreve -90 KPX Y acircumflex -90 KPX Y adieresis -90 KPX Y agrave -90 KPX Y amacron -90 KPX Y aogonek -90 KPX Y aring -90 KPX Y atilde -90 KPX Y colon -50 KPX Y comma -100 KPX Y e -80 KPX Y eacute -80 KPX Y ecaron -80 KPX Y ecircumflex -80 KPX Y edieresis -80 KPX Y edotaccent -80 KPX Y egrave -80 KPX Y emacron -80 KPX Y eogonek -80 KPX Y o -100 KPX Y oacute -100 KPX Y ocircumflex -100 KPX Y odieresis -100 KPX Y ograve -100 KPX Y ohungarumlaut -100 KPX Y omacron -100 KPX Y oslash -100 KPX Y otilde -100 KPX Y period -100 KPX Y semicolon -50 KPX Y u -100 KPX Y uacute -100 KPX Y ucircumflex -100 KPX Y udieresis -100 KPX Y ugrave -100 KPX Y uhungarumlaut -100 KPX Y umacron -100 KPX Y uogonek -100 KPX Y uring -100 KPX Yacute A -110 KPX Yacute Aacute -110 KPX Yacute Abreve -110 KPX Yacute Acircumflex -110 KPX Yacute Adieresis -110 KPX Yacute Agrave -110 KPX Yacute Amacron -110 KPX Yacute Aogonek -110 KPX Yacute Aring -110 KPX Yacute Atilde -110 KPX Yacute O -70 KPX Yacute Oacute -70 KPX Yacute Ocircumflex -70 KPX Yacute Odieresis -70 KPX Yacute Ograve -70 KPX Yacute Ohungarumlaut -70 KPX Yacute Omacron -70 KPX Yacute Oslash -70 KPX Yacute Otilde -70 KPX Yacute a -90 KPX Yacute aacute -90 KPX Yacute abreve -90 KPX Yacute acircumflex -90 KPX Yacute adieresis -90 KPX Yacute agrave -90 KPX Yacute amacron -90 KPX Yacute aogonek -90 KPX Yacute aring -90 KPX Yacute atilde -90 KPX Yacute colon -50 KPX Yacute comma -100 KPX Yacute e -80 KPX Yacute eacute -80 KPX Yacute ecaron -80 KPX Yacute ecircumflex -80 KPX Yacute edieresis -80 KPX Yacute edotaccent -80 KPX Yacute egrave -80 KPX Yacute emacron -80 KPX Yacute eogonek -80 KPX Yacute o -100 KPX Yacute oacute -100 KPX Yacute ocircumflex -100 KPX Yacute odieresis -100 KPX Yacute ograve -100 KPX Yacute ohungarumlaut -100 KPX Yacute omacron -100 KPX Yacute oslash -100 KPX Yacute otilde -100 KPX Yacute period -100 KPX Yacute semicolon -50 KPX Yacute u -100 KPX Yacute uacute -100 KPX Yacute ucircumflex -100 KPX Yacute udieresis -100 KPX Yacute ugrave -100 KPX Yacute uhungarumlaut -100 KPX Yacute umacron -100 KPX Yacute uogonek -100 KPX Yacute uring -100 KPX Ydieresis A -110 KPX Ydieresis Aacute -110 KPX Ydieresis Abreve -110 KPX Ydieresis Acircumflex -110 KPX Ydieresis Adieresis -110 KPX Ydieresis Agrave -110 KPX Ydieresis Amacron -110 KPX Ydieresis Aogonek -110 KPX Ydieresis Aring -110 KPX Ydieresis Atilde -110 KPX Ydieresis O -70 KPX Ydieresis Oacute -70 KPX Ydieresis Ocircumflex -70 KPX Ydieresis Odieresis -70 KPX Ydieresis Ograve -70 KPX Ydieresis Ohungarumlaut -70 KPX Ydieresis Omacron -70 KPX Ydieresis Oslash -70 KPX Ydieresis Otilde -70 KPX Ydieresis a -90 KPX Ydieresis aacute -90 KPX Ydieresis abreve -90 KPX Ydieresis acircumflex -90 KPX Ydieresis adieresis -90 KPX Ydieresis agrave -90 KPX Ydieresis amacron -90 KPX Ydieresis aogonek -90 KPX Ydieresis aring -90 KPX Ydieresis atilde -90 KPX Ydieresis colon -50 KPX Ydieresis comma -100 KPX Ydieresis e -80 KPX Ydieresis eacute -80 KPX Ydieresis ecaron -80 KPX Ydieresis ecircumflex -80 KPX Ydieresis edieresis -80 KPX Ydieresis edotaccent -80 KPX Ydieresis egrave -80 KPX Ydieresis emacron -80 KPX Ydieresis eogonek -80 KPX Ydieresis o -100 KPX Ydieresis oacute -100 KPX Ydieresis ocircumflex -100 KPX Ydieresis odieresis -100 KPX Ydieresis ograve -100 KPX Ydieresis ohungarumlaut -100 KPX Ydieresis omacron -100 KPX Ydieresis oslash -100 KPX Ydieresis otilde -100 KPX Ydieresis period -100 KPX Ydieresis semicolon -50 KPX Ydieresis u -100 KPX Ydieresis uacute -100 KPX Ydieresis ucircumflex -100 KPX Ydieresis udieresis -100 KPX Ydieresis ugrave -100 KPX Ydieresis uhungarumlaut -100 KPX Ydieresis umacron -100 KPX Ydieresis uogonek -100 KPX Ydieresis uring -100 KPX a g -10 KPX a gbreve -10 KPX a gcommaaccent -10 KPX a v -15 KPX a w -15 KPX a y -20 KPX a yacute -20 KPX a ydieresis -20 KPX aacute g -10 KPX aacute gbreve -10 KPX aacute gcommaaccent -10 KPX aacute v -15 KPX aacute w -15 KPX aacute y -20 KPX aacute yacute -20 KPX aacute ydieresis -20 KPX abreve g -10 KPX abreve gbreve -10 KPX abreve gcommaaccent -10 KPX abreve v -15 KPX abreve w -15 KPX abreve y -20 KPX abreve yacute -20 KPX abreve ydieresis -20 KPX acircumflex g -10 KPX acircumflex gbreve -10 KPX acircumflex gcommaaccent -10 KPX acircumflex v -15 KPX acircumflex w -15 KPX acircumflex y -20 KPX acircumflex yacute -20 KPX acircumflex ydieresis -20 KPX adieresis g -10 KPX adieresis gbreve -10 KPX adieresis gcommaaccent -10 KPX adieresis v -15 KPX adieresis w -15 KPX adieresis y -20 KPX adieresis yacute -20 KPX adieresis ydieresis -20 KPX agrave g -10 KPX agrave gbreve -10 KPX agrave gcommaaccent -10 KPX agrave v -15 KPX agrave w -15 KPX agrave y -20 KPX agrave yacute -20 KPX agrave ydieresis -20 KPX amacron g -10 KPX amacron gbreve -10 KPX amacron gcommaaccent -10 KPX amacron v -15 KPX amacron w -15 KPX amacron y -20 KPX amacron yacute -20 KPX amacron ydieresis -20 KPX aogonek g -10 KPX aogonek gbreve -10 KPX aogonek gcommaaccent -10 KPX aogonek v -15 KPX aogonek w -15 KPX aogonek y -20 KPX aogonek yacute -20 KPX aogonek ydieresis -20 KPX aring g -10 KPX aring gbreve -10 KPX aring gcommaaccent -10 KPX aring v -15 KPX aring w -15 KPX aring y -20 KPX aring yacute -20 KPX aring ydieresis -20 KPX atilde g -10 KPX atilde gbreve -10 KPX atilde gcommaaccent -10 KPX atilde v -15 KPX atilde w -15 KPX atilde y -20 KPX atilde yacute -20 KPX atilde ydieresis -20 KPX b l -10 KPX b lacute -10 KPX b lcommaaccent -10 KPX b lslash -10 KPX b u -20 KPX b uacute -20 KPX b ucircumflex -20 KPX b udieresis -20 KPX b ugrave -20 KPX b uhungarumlaut -20 KPX b umacron -20 KPX b uogonek -20 KPX b uring -20 KPX b v -20 KPX b y -20 KPX b yacute -20 KPX b ydieresis -20 KPX c h -10 KPX c k -20 KPX c kcommaaccent -20 KPX c l -20 KPX c lacute -20 KPX c lcommaaccent -20 KPX c lslash -20 KPX c y -10 KPX c yacute -10 KPX c ydieresis -10 KPX cacute h -10 KPX cacute k -20 KPX cacute kcommaaccent -20 KPX cacute l -20 KPX cacute lacute -20 KPX cacute lcommaaccent -20 KPX cacute lslash -20 KPX cacute y -10 KPX cacute yacute -10 KPX cacute ydieresis -10 KPX ccaron h -10 KPX ccaron k -20 KPX ccaron kcommaaccent -20 KPX ccaron l -20 KPX ccaron lacute -20 KPX ccaron lcommaaccent -20 KPX ccaron lslash -20 KPX ccaron y -10 KPX ccaron yacute -10 KPX ccaron ydieresis -10 KPX ccedilla h -10 KPX ccedilla k -20 KPX ccedilla kcommaaccent -20 KPX ccedilla l -20 KPX ccedilla lacute -20 KPX ccedilla lcommaaccent -20 KPX ccedilla lslash -20 KPX ccedilla y -10 KPX ccedilla yacute -10 KPX ccedilla ydieresis -10 KPX colon space -40 KPX comma quotedblright -120 KPX comma quoteright -120 KPX comma space -40 KPX d d -10 KPX d dcroat -10 KPX d v -15 KPX d w -15 KPX d y -15 KPX d yacute -15 KPX d ydieresis -15 KPX dcroat d -10 KPX dcroat dcroat -10 KPX dcroat v -15 KPX dcroat w -15 KPX dcroat y -15 KPX dcroat yacute -15 KPX dcroat ydieresis -15 KPX e comma 10 KPX e period 20 KPX e v -15 KPX e w -15 KPX e x -15 KPX e y -15 KPX e yacute -15 KPX e ydieresis -15 KPX eacute comma 10 KPX eacute period 20 KPX eacute v -15 KPX eacute w -15 KPX eacute x -15 KPX eacute y -15 KPX eacute yacute -15 KPX eacute ydieresis -15 KPX ecaron comma 10 KPX ecaron period 20 KPX ecaron v -15 KPX ecaron w -15 KPX ecaron x -15 KPX ecaron y -15 KPX ecaron yacute -15 KPX ecaron ydieresis -15 KPX ecircumflex comma 10 KPX ecircumflex period 20 KPX ecircumflex v -15 KPX ecircumflex w -15 KPX ecircumflex x -15 KPX ecircumflex y -15 KPX ecircumflex yacute -15 KPX ecircumflex ydieresis -15 KPX edieresis comma 10 KPX edieresis period 20 KPX edieresis v -15 KPX edieresis w -15 KPX edieresis x -15 KPX edieresis y -15 KPX edieresis yacute -15 KPX edieresis ydieresis -15 KPX edotaccent comma 10 KPX edotaccent period 20 KPX edotaccent v -15 KPX edotaccent w -15 KPX edotaccent x -15 KPX edotaccent y -15 KPX edotaccent yacute -15 KPX edotaccent ydieresis -15 KPX egrave comma 10 KPX egrave period 20 KPX egrave v -15 KPX egrave w -15 KPX egrave x -15 KPX egrave y -15 KPX egrave yacute -15 KPX egrave ydieresis -15 KPX emacron comma 10 KPX emacron period 20 KPX emacron v -15 KPX emacron w -15 KPX emacron x -15 KPX emacron y -15 KPX emacron yacute -15 KPX emacron ydieresis -15 KPX eogonek comma 10 KPX eogonek period 20 KPX eogonek v -15 KPX eogonek w -15 KPX eogonek x -15 KPX eogonek y -15 KPX eogonek yacute -15 KPX eogonek ydieresis -15 KPX f comma -10 KPX f e -10 KPX f eacute -10 KPX f ecaron -10 KPX f ecircumflex -10 KPX f edieresis -10 KPX f edotaccent -10 KPX f egrave -10 KPX f emacron -10 KPX f eogonek -10 KPX f o -20 KPX f oacute -20 KPX f ocircumflex -20 KPX f odieresis -20 KPX f ograve -20 KPX f ohungarumlaut -20 KPX f omacron -20 KPX f oslash -20 KPX f otilde -20 KPX f period -10 KPX f quotedblright 30 KPX f quoteright 30 KPX g e 10 KPX g eacute 10 KPX g ecaron 10 KPX g ecircumflex 10 KPX g edieresis 10 KPX g edotaccent 10 KPX g egrave 10 KPX g emacron 10 KPX g eogonek 10 KPX g g -10 KPX g gbreve -10 KPX g gcommaaccent -10 KPX gbreve e 10 KPX gbreve eacute 10 KPX gbreve ecaron 10 KPX gbreve ecircumflex 10 KPX gbreve edieresis 10 KPX gbreve edotaccent 10 KPX gbreve egrave 10 KPX gbreve emacron 10 KPX gbreve eogonek 10 KPX gbreve g -10 KPX gbreve gbreve -10 KPX gbreve gcommaaccent -10 KPX gcommaaccent e 10 KPX gcommaaccent eacute 10 KPX gcommaaccent ecaron 10 KPX gcommaaccent ecircumflex 10 KPX gcommaaccent edieresis 10 KPX gcommaaccent edotaccent 10 KPX gcommaaccent egrave 10 KPX gcommaaccent emacron 10 KPX gcommaaccent eogonek 10 KPX gcommaaccent g -10 KPX gcommaaccent gbreve -10 KPX gcommaaccent gcommaaccent -10 KPX h y -20 KPX h yacute -20 KPX h ydieresis -20 KPX k o -15 KPX k oacute -15 KPX k ocircumflex -15 KPX k odieresis -15 KPX k ograve -15 KPX k ohungarumlaut -15 KPX k omacron -15 KPX k oslash -15 KPX k otilde -15 KPX kcommaaccent o -15 KPX kcommaaccent oacute -15 KPX kcommaaccent ocircumflex -15 KPX kcommaaccent odieresis -15 KPX kcommaaccent ograve -15 KPX kcommaaccent ohungarumlaut -15 KPX kcommaaccent omacron -15 KPX kcommaaccent oslash -15 KPX kcommaaccent otilde -15 KPX l w -15 KPX l y -15 KPX l yacute -15 KPX l ydieresis -15 KPX lacute w -15 KPX lacute y -15 KPX lacute yacute -15 KPX lacute ydieresis -15 KPX lcommaaccent w -15 KPX lcommaaccent y -15 KPX lcommaaccent yacute -15 KPX lcommaaccent ydieresis -15 KPX lslash w -15 KPX lslash y -15 KPX lslash yacute -15 KPX lslash ydieresis -15 KPX m u -20 KPX m uacute -20 KPX m ucircumflex -20 KPX m udieresis -20 KPX m ugrave -20 KPX m uhungarumlaut -20 KPX m umacron -20 KPX m uogonek -20 KPX m uring -20 KPX m y -30 KPX m yacute -30 KPX m ydieresis -30 KPX n u -10 KPX n uacute -10 KPX n ucircumflex -10 KPX n udieresis -10 KPX n ugrave -10 KPX n uhungarumlaut -10 KPX n umacron -10 KPX n uogonek -10 KPX n uring -10 KPX n v -40 KPX n y -20 KPX n yacute -20 KPX n ydieresis -20 KPX nacute u -10 KPX nacute uacute -10 KPX nacute ucircumflex -10 KPX nacute udieresis -10 KPX nacute ugrave -10 KPX nacute uhungarumlaut -10 KPX nacute umacron -10 KPX nacute uogonek -10 KPX nacute uring -10 KPX nacute v -40 KPX nacute y -20 KPX nacute yacute -20 KPX nacute ydieresis -20 KPX ncaron u -10 KPX ncaron uacute -10 KPX ncaron ucircumflex -10 KPX ncaron udieresis -10 KPX ncaron ugrave -10 KPX ncaron uhungarumlaut -10 KPX ncaron umacron -10 KPX ncaron uogonek -10 KPX ncaron uring -10 KPX ncaron v -40 KPX ncaron y -20 KPX ncaron yacute -20 KPX ncaron ydieresis -20 KPX ncommaaccent u -10 KPX ncommaaccent uacute -10 KPX ncommaaccent ucircumflex -10 KPX ncommaaccent udieresis -10 KPX ncommaaccent ugrave -10 KPX ncommaaccent uhungarumlaut -10 KPX ncommaaccent umacron -10 KPX ncommaaccent uogonek -10 KPX ncommaaccent uring -10 KPX ncommaaccent v -40 KPX ncommaaccent y -20 KPX ncommaaccent yacute -20 KPX ncommaaccent ydieresis -20 KPX ntilde u -10 KPX ntilde uacute -10 KPX ntilde ucircumflex -10 KPX ntilde udieresis -10 KPX ntilde ugrave -10 KPX ntilde uhungarumlaut -10 KPX ntilde umacron -10 KPX ntilde uogonek -10 KPX ntilde uring -10 KPX ntilde v -40 KPX ntilde y -20 KPX ntilde yacute -20 KPX ntilde ydieresis -20 KPX o v -20 KPX o w -15 KPX o x -30 KPX o y -20 KPX o yacute -20 KPX o ydieresis -20 KPX oacute v -20 KPX oacute w -15 KPX oacute x -30 KPX oacute y -20 KPX oacute yacute -20 KPX oacute ydieresis -20 KPX ocircumflex v -20 KPX ocircumflex w -15 KPX ocircumflex x -30 KPX ocircumflex y -20 KPX ocircumflex yacute -20 KPX ocircumflex ydieresis -20 KPX odieresis v -20 KPX odieresis w -15 KPX odieresis x -30 KPX odieresis y -20 KPX odieresis yacute -20 KPX odieresis ydieresis -20 KPX ograve v -20 KPX ograve w -15 KPX ograve x -30 KPX ograve y -20 KPX ograve yacute -20 KPX ograve ydieresis -20 KPX ohungarumlaut v -20 KPX ohungarumlaut w -15 KPX ohungarumlaut x -30 KPX ohungarumlaut y -20 KPX ohungarumlaut yacute -20 KPX ohungarumlaut ydieresis -20 KPX omacron v -20 KPX omacron w -15 KPX omacron x -30 KPX omacron y -20 KPX omacron yacute -20 KPX omacron ydieresis -20 KPX oslash v -20 KPX oslash w -15 KPX oslash x -30 KPX oslash y -20 KPX oslash yacute -20 KPX oslash ydieresis -20 KPX otilde v -20 KPX otilde w -15 KPX otilde x -30 KPX otilde y -20 KPX otilde yacute -20 KPX otilde ydieresis -20 KPX p y -15 KPX p yacute -15 KPX p ydieresis -15 KPX period quotedblright -120 KPX period quoteright -120 KPX period space -40 KPX quotedblright space -80 KPX quoteleft quoteleft -46 KPX quoteright d -80 KPX quoteright dcroat -80 KPX quoteright l -20 KPX quoteright lacute -20 KPX quoteright lcommaaccent -20 KPX quoteright lslash -20 KPX quoteright quoteright -46 KPX quoteright r -40 KPX quoteright racute -40 KPX quoteright rcaron -40 KPX quoteright rcommaaccent -40 KPX quoteright s -60 KPX quoteright sacute -60 KPX quoteright scaron -60 KPX quoteright scedilla -60 KPX quoteright scommaaccent -60 KPX quoteright space -80 KPX quoteright v -20 KPX r c -20 KPX r cacute -20 KPX r ccaron -20 KPX r ccedilla -20 KPX r comma -60 KPX r d -20 KPX r dcroat -20 KPX r g -15 KPX r gbreve -15 KPX r gcommaaccent -15 KPX r hyphen -20 KPX r o -20 KPX r oacute -20 KPX r ocircumflex -20 KPX r odieresis -20 KPX r ograve -20 KPX r ohungarumlaut -20 KPX r omacron -20 KPX r oslash -20 KPX r otilde -20 KPX r period -60 KPX r q -20 KPX r s -15 KPX r sacute -15 KPX r scaron -15 KPX r scedilla -15 KPX r scommaaccent -15 KPX r t 20 KPX r tcommaaccent 20 KPX r v 10 KPX r y 10 KPX r yacute 10 KPX r ydieresis 10 KPX racute c -20 KPX racute cacute -20 KPX racute ccaron -20 KPX racute ccedilla -20 KPX racute comma -60 KPX racute d -20 KPX racute dcroat -20 KPX racute g -15 KPX racute gbreve -15 KPX racute gcommaaccent -15 KPX racute hyphen -20 KPX racute o -20 KPX racute oacute -20 KPX racute ocircumflex -20 KPX racute odieresis -20 KPX racute ograve -20 KPX racute ohungarumlaut -20 KPX racute omacron -20 KPX racute oslash -20 KPX racute otilde -20 KPX racute period -60 KPX racute q -20 KPX racute s -15 KPX racute sacute -15 KPX racute scaron -15 KPX racute scedilla -15 KPX racute scommaaccent -15 KPX racute t 20 KPX racute tcommaaccent 20 KPX racute v 10 KPX racute y 10 KPX racute yacute 10 KPX racute ydieresis 10 KPX rcaron c -20 KPX rcaron cacute -20 KPX rcaron ccaron -20 KPX rcaron ccedilla -20 KPX rcaron comma -60 KPX rcaron d -20 KPX rcaron dcroat -20 KPX rcaron g -15 KPX rcaron gbreve -15 KPX rcaron gcommaaccent -15 KPX rcaron hyphen -20 KPX rcaron o -20 KPX rcaron oacute -20 KPX rcaron ocircumflex -20 KPX rcaron odieresis -20 KPX rcaron ograve -20 KPX rcaron ohungarumlaut -20 KPX rcaron omacron -20 KPX rcaron oslash -20 KPX rcaron otilde -20 KPX rcaron period -60 KPX rcaron q -20 KPX rcaron s -15 KPX rcaron sacute -15 KPX rcaron scaron -15 KPX rcaron scedilla -15 KPX rcaron scommaaccent -15 KPX rcaron t 20 KPX rcaron tcommaaccent 20 KPX rcaron v 10 KPX rcaron y 10 KPX rcaron yacute 10 KPX rcaron ydieresis 10 KPX rcommaaccent c -20 KPX rcommaaccent cacute -20 KPX rcommaaccent ccaron -20 KPX rcommaaccent ccedilla -20 KPX rcommaaccent comma -60 KPX rcommaaccent d -20 KPX rcommaaccent dcroat -20 KPX rcommaaccent g -15 KPX rcommaaccent gbreve -15 KPX rcommaaccent gcommaaccent -15 KPX rcommaaccent hyphen -20 KPX rcommaaccent o -20 KPX rcommaaccent oacute -20 KPX rcommaaccent ocircumflex -20 KPX rcommaaccent odieresis -20 KPX rcommaaccent ograve -20 KPX rcommaaccent ohungarumlaut -20 KPX rcommaaccent omacron -20 KPX rcommaaccent oslash -20 KPX rcommaaccent otilde -20 KPX rcommaaccent period -60 KPX rcommaaccent q -20 KPX rcommaaccent s -15 KPX rcommaaccent sacute -15 KPX rcommaaccent scaron -15 KPX rcommaaccent scedilla -15 KPX rcommaaccent scommaaccent -15 KPX rcommaaccent t 20 KPX rcommaaccent tcommaaccent 20 KPX rcommaaccent v 10 KPX rcommaaccent y 10 KPX rcommaaccent yacute 10 KPX rcommaaccent ydieresis 10 KPX s w -15 KPX sacute w -15 KPX scaron w -15 KPX scedilla w -15 KPX scommaaccent w -15 KPX semicolon space -40 KPX space T -100 KPX space Tcaron -100 KPX space Tcommaaccent -100 KPX space V -80 KPX space W -80 KPX space Y -120 KPX space Yacute -120 KPX space Ydieresis -120 KPX space quotedblleft -80 KPX space quoteleft -60 KPX v a -20 KPX v aacute -20 KPX v abreve -20 KPX v acircumflex -20 KPX v adieresis -20 KPX v agrave -20 KPX v amacron -20 KPX v aogonek -20 KPX v aring -20 KPX v atilde -20 KPX v comma -80 KPX v o -30 KPX v oacute -30 KPX v ocircumflex -30 KPX v odieresis -30 KPX v ograve -30 KPX v ohungarumlaut -30 KPX v omacron -30 KPX v oslash -30 KPX v otilde -30 KPX v period -80 KPX w comma -40 KPX w o -20 KPX w oacute -20 KPX w ocircumflex -20 KPX w odieresis -20 KPX w ograve -20 KPX w ohungarumlaut -20 KPX w omacron -20 KPX w oslash -20 KPX w otilde -20 KPX w period -40 KPX x e -10 KPX x eacute -10 KPX x ecaron -10 KPX x ecircumflex -10 KPX x edieresis -10 KPX x edotaccent -10 KPX x egrave -10 KPX x emacron -10 KPX x eogonek -10 KPX y a -30 KPX y aacute -30 KPX y abreve -30 KPX y acircumflex -30 KPX y adieresis -30 KPX y agrave -30 KPX y amacron -30 KPX y aogonek -30 KPX y aring -30 KPX y atilde -30 KPX y comma -80 KPX y e -10 KPX y eacute -10 KPX y ecaron -10 KPX y ecircumflex -10 KPX y edieresis -10 KPX y edotaccent -10 KPX y egrave -10 KPX y emacron -10 KPX y eogonek -10 KPX y o -25 KPX y oacute -25 KPX y ocircumflex -25 KPX y odieresis -25 KPX y ograve -25 KPX y ohungarumlaut -25 KPX y omacron -25 KPX y oslash -25 KPX y otilde -25 KPX y period -80 KPX yacute a -30 KPX yacute aacute -30 KPX yacute abreve -30 KPX yacute acircumflex -30 KPX yacute adieresis -30 KPX yacute agrave -30 KPX yacute amacron -30 KPX yacute aogonek -30 KPX yacute aring -30 KPX yacute atilde -30 KPX yacute comma -80 KPX yacute e -10 KPX yacute eacute -10 KPX yacute ecaron -10 KPX yacute ecircumflex -10 KPX yacute edieresis -10 KPX yacute edotaccent -10 KPX yacute egrave -10 KPX yacute emacron -10 KPX yacute eogonek -10 KPX yacute o -25 KPX yacute oacute -25 KPX yacute ocircumflex -25 KPX yacute odieresis -25 KPX yacute ograve -25 KPX yacute ohungarumlaut -25 KPX yacute omacron -25 KPX yacute oslash -25 KPX yacute otilde -25 KPX yacute period -80 KPX ydieresis a -30 KPX ydieresis aacute -30 KPX ydieresis abreve -30 KPX ydieresis acircumflex -30 KPX ydieresis adieresis -30 KPX ydieresis agrave -30 KPX ydieresis amacron -30 KPX ydieresis aogonek -30 KPX ydieresis aring -30 KPX ydieresis atilde -30 KPX ydieresis comma -80 KPX ydieresis e -10 KPX ydieresis eacute -10 KPX ydieresis ecaron -10 KPX ydieresis ecircumflex -10 KPX ydieresis edieresis -10 KPX ydieresis edotaccent -10 KPX ydieresis egrave -10 KPX ydieresis emacron -10 KPX ydieresis eogonek -10 KPX ydieresis o -25 KPX ydieresis oacute -25 KPX ydieresis ocircumflex -25 KPX ydieresis odieresis -25 KPX ydieresis ograve -25 KPX ydieresis ohungarumlaut -25 KPX ydieresis omacron -25 KPX ydieresis oslash -25 KPX ydieresis otilde -25 KPX ydieresis period -80 KPX z e 10 KPX z eacute 10 KPX z ecaron 10 KPX z ecircumflex 10 KPX z edieresis 10 KPX z edotaccent 10 KPX z egrave 10 KPX z emacron 10 KPX z eogonek 10 KPX zacute e 10 KPX zacute eacute 10 KPX zacute ecaron 10 KPX zacute ecircumflex 10 KPX zacute edieresis 10 KPX zacute edotaccent 10 KPX zacute egrave 10 KPX zacute emacron 10 KPX zacute eogonek 10 KPX zcaron e 10 KPX zcaron eacute 10 KPX zcaron ecaron 10 KPX zcaron ecircumflex 10 KPX zcaron edieresis 10 KPX zcaron edotaccent 10 KPX zcaron egrave 10 KPX zcaron emacron 10 KPX zcaron eogonek 10 KPX zdotaccent e 10 KPX zdotaccent eacute 10 KPX zdotaccent ecaron 10 KPX zdotaccent ecircumflex 10 KPX zdotaccent edieresis 10 KPX zdotaccent edotaccent 10 KPX zdotaccent egrave 10 KPX zdotaccent emacron 10 KPX zdotaccent eogonek 10 EndKernPairs EndKernData EndFontMetrics pmw-4.27/fontmetrics/Bookman-LightItalic.afm0000644000222100022210000010363412247665016017162 0ustar ph10ph10StartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Mon Jun 23 16:36:46 1997 Comment PH added additional characters (including Euro) 19 November 2013 Comment UniqueID 43078 Comment VMusage 44679 55704 FontName Bookman-LightItalic FullName ITC Bookman Light Italic FamilyName ITC Bookman Weight Light ItalicAngle -10 IsFixedPitch false FontBBox -228 -250 1269 883 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1989, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.ITC Bookman is a registered trademark of International Typeface Corporation. EncodingScheme AdobeStandardEncoding CapHeight 681 XHeight 494 Ascender 717 Descender -228 StdHW 42 StdVW 96 StartCharMetrics 359 C 32 ; WX 300 ; N space ; B 0 0 0 0 ; C 33 ; WX 320 ; N exclam ; B 103 -8 342 698 ; C 34 ; WX 360 ; N quotedbl ; B 107 468 402 699 ; C 35 ; WX 620 ; N numbersign ; B 107 0 598 681 ; C 36 ; WX 620 ; N dollar ; B 78 -85 619 762 ; C 37 ; WX 800 ; N percent ; B 56 -8 811 691 ; C 38 ; WX 820 ; N ampersand ; B 65 -18 848 698 ; C 39 ; WX 280 ; N quoteright ; B 148 470 288 698 ; C 40 ; WX 280 ; N parenleft ; B 96 -146 383 727 ; C 41 ; WX 280 ; N parenright ; B -8 -146 279 727 ; C 42 ; WX 440 ; N asterisk ; B 139 324 505 698 ; C 43 ; WX 600 ; N plus ; B 91 43 595 548 ; C 44 ; WX 300 ; N comma ; B 88 -115 227 112 ; C 45 ; WX 320 ; N hyphen ; B 78 269 336 325 ; C 46 ; WX 300 ; N period ; B 96 -8 231 127 ; C 47 ; WX 600 ; N slash ; B 104 -149 562 717 ; C 48 ; WX 620 ; N zero ; B 86 -17 646 698 ; C 49 ; WX 620 ; N one ; B 154 0 500 681 ; C 50 ; WX 620 ; N two ; B 66 0 636 698 ; C 51 ; WX 620 ; N three ; B 55 -17 622 698 ; C 52 ; WX 620 ; N four ; B 69 0 634 681 ; C 53 ; WX 620 ; N five ; B 70 -17 614 681 ; C 54 ; WX 620 ; N six ; B 89 -17 657 698 ; C 55 ; WX 620 ; N seven ; B 143 0 672 681 ; C 56 ; WX 620 ; N eight ; B 61 -17 655 698 ; C 57 ; WX 620 ; N nine ; B 77 -17 649 698 ; C 58 ; WX 300 ; N colon ; B 96 -8 292 494 ; C 59 ; WX 300 ; N semicolon ; B 88 -114 292 494 ; C 60 ; WX 600 ; N less ; B 79 33 588 561 ; C 61 ; WX 600 ; N equal ; B 91 161 595 433 ; C 62 ; WX 600 ; N greater ; B 93 33 602 561 ; C 63 ; WX 540 ; N question ; B 114 -8 604 698 ; C 64 ; WX 780 ; N at ; B 102 -17 802 698 ; C 65 ; WX 700 ; N A ; B -25 0 720 681 ; C 66 ; WX 720 ; N B ; B 21 0 746 681 ; C 67 ; WX 720 ; N C ; B 88 -17 746 698 ; C 68 ; WX 740 ; N D ; B 21 0 782 681 ; C 69 ; WX 680 ; N E ; B 21 0 736 681 ; C 70 ; WX 620 ; N F ; B 21 0 743 681 ; C 71 ; WX 760 ; N G ; B 88 -17 813 698 ; C 72 ; WX 800 ; N H ; B 21 0 888 681 ; C 73 ; WX 320 ; N I ; B 21 0 412 681 ; C 74 ; WX 560 ; N J ; B -2 -17 666 681 ; C 75 ; WX 720 ; N K ; B 21 0 804 681 ; C 76 ; WX 580 ; N L ; B 21 0 656 681 ; C 77 ; WX 860 ; N M ; B 18 0 956 681 ; C 78 ; WX 720 ; N N ; B 18 0 823 681 ; C 79 ; WX 760 ; N O ; B 88 -17 799 698 ; C 80 ; WX 600 ; N P ; B 21 0 681 681 ; C 81 ; WX 780 ; N Q ; B 61 -191 812 698 ; C 82 ; WX 700 ; N R ; B 21 0 736 681 ; C 83 ; WX 640 ; N S ; B 61 -17 668 698 ; C 84 ; WX 600 ; N T ; B 50 0 725 681 ; C 85 ; WX 720 ; N U ; B 118 -17 842 681 ; C 86 ; WX 680 ; N V ; B 87 0 815 681 ; C 87 ; WX 960 ; N W ; B 87 0 1095 681 ; C 88 ; WX 700 ; N X ; B -25 0 815 681 ; C 89 ; WX 660 ; N Y ; B 87 0 809 681 ; C 90 ; WX 580 ; N Z ; B 8 0 695 681 ; C 91 ; WX 260 ; N bracketleft ; B 56 -136 351 717 ; C 92 ; WX 600 ; N backslash ; B 84 0 542 717 ; C 93 ; WX 260 ; N bracketright ; B 15 -136 309 717 ; C 94 ; WX 600 ; N asciicircum ; B 97 276 599 681 ; C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; C 96 ; WX 280 ; N quoteleft ; B 191 470 330 698 ; C 97 ; WX 620 ; N a ; B 71 -8 686 494 ; C 98 ; WX 600 ; N b ; B 88 -8 621 717 ; C 99 ; WX 480 ; N c ; B 65 -8 522 494 ; C 100 ; WX 640 ; N d ; B 65 -8 695 717 ; C 101 ; WX 540 ; N e ; B 65 -8 575 494 ; C 102 ; WX 340 ; N f ; B -160 -218 557 725 ; L i fi ; L l fl ; C 103 ; WX 560 ; N g ; B 4 -221 581 494 ; C 104 ; WX 620 ; N h ; B 88 -8 689 717 ; C 105 ; WX 280 ; N i ; B 88 -8 351 663 ; C 106 ; WX 280 ; N j ; B -200 -221 308 663 ; C 107 ; WX 600 ; N k ; B 88 -8 657 717 ; C 108 ; WX 280 ; N l ; B 100 -8 342 717 ; C 109 ; WX 880 ; N m ; B 88 -8 952 494 ; C 110 ; WX 620 ; N n ; B 88 -8 673 494 ; C 111 ; WX 540 ; N o ; B 65 -8 572 494 ; C 112 ; WX 600 ; N p ; B -24 -212 621 494 ; C 113 ; WX 560 ; N q ; B 65 -212 584 494 ; C 114 ; WX 400 ; N r ; B 88 0 481 494 ; C 115 ; WX 540 ; N s ; B 65 -8 547 494 ; C 116 ; WX 340 ; N t ; B 88 -8 411 664 ; C 117 ; WX 620 ; N u ; B 88 -8 686 484 ; C 118 ; WX 540 ; N v ; B 88 -8 562 494 ; C 119 ; WX 880 ; N w ; B 88 -8 893 494 ; C 120 ; WX 540 ; N x ; B 9 -8 626 494 ; C 121 ; WX 600 ; N y ; B 60 -221 609 484 ; C 122 ; WX 520 ; N z ; B 38 -8 561 494 ; C 123 ; WX 360 ; N braceleft ; B 122 -191 442 718 ; C 124 ; WX 600 ; N bar ; B 294 -250 372 750 ; C 125 ; WX 380 ; N braceright ; B 13 -192 333 717 ; C 126 ; WX 600 ; N asciitilde ; B 91 207 595 386 ; C 161 ; WX 320 ; N exclamdown ; B 73 -213 301 494 ; C 162 ; WX 620 ; N cent ; B 148 -29 596 715 ; C 163 ; WX 620 ; N sterling ; B 4 -17 702 698 ; C 164 ; WX 20 ; N fraction ; B -228 0 323 681 ; C 165 ; WX 620 ; N yen ; B 71 0 735 681 ; C 166 ; WX 620 ; N florin ; B -26 -218 692 725 ; C 167 ; WX 620 ; N section ; B 38 -178 638 698 ; C 168 ; WX 620 ; N currency ; B 100 89 605 591 ; C 169 ; WX 200 ; N quotesingle ; B 99 473 247 698 ; C 170 ; WX 440 ; N quotedblleft ; B 191 470 493 698 ; C 171 ; WX 300 ; N guillemotleft ; B 70 129 313 434 ; C 172 ; WX 180 ; N guilsinglleft ; B 75 129 208 434 ; C 173 ; WX 180 ; N guilsinglright ; B 70 129 203 434 ; C 174 ; WX 640 ; N fi ; B -159 -222 709 725 ; C 175 ; WX 660 ; N fl ; B -159 -218 713 725 ; C 177 ; WX 500 ; N endash ; B 33 269 561 325 ; C 178 ; WX 620 ; N dagger ; B 192 -130 570 698 ; C 179 ; WX 620 ; N daggerdbl ; B 144 -122 566 698 ; C 180 ; WX 300 ; N periodcentered ; B 137 229 272 364 ; C 182 ; WX 620 ; N paragraph ; B 112 0 718 681 ; C 183 ; WX 460 ; N bullet ; B 100 170 444 511 ; C 184 ; WX 320 ; N quotesinglbase ; B 87 -114 226 113 ; C 185 ; WX 480 ; N quotedblbase ; B 87 -114 390 113 ; C 186 ; WX 440 ; N quotedblright ; B 148 470 451 698 ; C 187 ; WX 300 ; N guillemotright ; B 60 129 303 434 ; C 188 ; WX 1000 ; N ellipsis ; B 99 -8 900 127 ; C 189 ; WX 1180 ; N perthousand ; B 56 -8 1199 691 ; C 191 ; WX 540 ; N questiondown ; B 18 -212 508 494 ; C 193 ; WX 340 ; N grave ; B 182 551 377 706 ; C 194 ; WX 320 ; N acute ; B 208 551 403 706 ; C 195 ; WX 440 ; N circumflex ; B 176 571 479 685 ; C 196 ; WX 440 ; N tilde ; B 180 586 488 671 ; C 197 ; WX 440 ; N macron ; B 178 599 484 658 ; C 198 ; WX 440 ; N breve ; B 191 577 500 680 ; C 199 ; WX 260 ; N dotaccent ; B 189 572 310 693 ; C 200 ; WX 420 ; N dieresis ; B 185 542 467 661 ; C 202 ; WX 300 ; N ring ; B 178 551 334 706 ; C 203 ; WX 320 ; N cedilla ; B 45 -178 240 0 ; C 205 ; WX 340 ; N hungarumlaut ; B 188 547 520 694 ; C 206 ; WX 260 ; N ogonek ; B 71 -153 282 0 ; C 207 ; WX 440 ; N caron ; B 218 571 521 684 ; C 208 ; WX 1000 ; N emdash ; B 33 269 1061 325 ; C 225 ; WX 1220 ; N AE ; B -45 0 1269 681 ; C 227 ; WX 440 ; N ordfeminine ; B 130 396 513 698 ; C 232 ; WX 580 ; N Lslash ; B 21 0 656 681 ; C 233 ; WX 760 ; N Oslash ; B 88 -95 799 777 ; C 234 ; WX 1180 ; N OE ; B 88 -17 1237 698 ; C 235 ; WX 400 ; N ordmasculine ; B 139 396 455 698 ; C 241 ; WX 880 ; N ae ; B 71 -8 918 494 ; C 245 ; WX 280 ; N dotlessi ; B 88 -8 351 484 ; C 248 ; WX 340 ; N lslash ; B 33 -8 373 717 ; C 249 ; WX 540 ; N oslash ; B 65 -49 571 532 ; C 250 ; WX 900 ; N oe ; B 65 -8 948 494 ; C 251 ; WX 620 ; N germandbls ; B -121 -111 653 698 ; C -1 ; WX 320 ; N Idieresis ; B 21 0 447 865 ; C -1 ; WX 540 ; N eacute ; B 65 -8 575 706 ; C -1 ; WX 620 ; N abreve ; B 71 -8 686 680 ; C -1 ; WX 620 ; N uhungarumlaut ; B 88 -8 686 694 ; C -1 ; WX 540 ; N ecaron ; B 65 -8 575 684 ; C -1 ; WX 660 ; N Ydieresis ; B 87 0 809 865 ; C -1 ; WX 600 ; N divide ; B 91 46 595 548 ; C -1 ; WX 660 ; N Yacute ; B 87 0 809 883 ; C -1 ; WX 700 ; N Acircumflex ; B -25 0 720 862 ; C -1 ; WX 620 ; N aacute ; B 71 -8 686 706 ; C -1 ; WX 720 ; N Ucircumflex ; B 118 -17 842 862 ; C -1 ; WX 600 ; N yacute ; B 60 -221 609 706 ; C -1 ; WX 540 ; N scommaaccent ; B 65 -250 547 494 ; C -1 ; WX 540 ; N ecircumflex ; B 65 -8 575 685 ; C -1 ; WX 720 ; N Uring ; B 118 -17 842 883 ; C -1 ; WX 720 ; N Udieresis ; B 118 -17 842 865 ; C -1 ; WX 620 ; N aogonek ; B 71 -153 686 494 ; C -1 ; WX 720 ; N Uacute ; B 118 -17 842 883 ; C -1 ; WX 620 ; N uogonek ; B 88 -153 686 484 ; C -1 ; WX 680 ; N Edieresis ; B 21 0 736 865 ; C -1 ; WX 740 ; N Dcroat ; B 21 0 782 681 ; C -1 ; WX 250 ; N commaaccent ; B 92 -250 217 -50 ; C -1 ; WX 740 ; N copyright ; B 84 -17 784 698 ; C -1 ; WX 680 ; N Emacron ; B 21 0 736 835 ; C -1 ; WX 480 ; N ccaron ; B 65 -8 561 684 ; C -1 ; WX 620 ; N aring ; B 71 -8 686 706 ; C -1 ; WX 720 ; N Ncommaaccent ; B 18 -250 823 681 ; C -1 ; WX 280 ; N lacute ; B 100 -8 383 883 ; C -1 ; WX 620 ; N agrave ; B 71 -8 686 706 ; C -1 ; WX 600 ; N Tcommaaccent ; B 50 -250 725 681 ; C -1 ; WX 720 ; N Cacute ; B 88 -17 746 883 ; C -1 ; WX 620 ; N atilde ; B 71 -8 686 671 ; C -1 ; WX 680 ; N Edotaccent ; B 21 0 736 883 ; C -1 ; WX 540 ; N scaron ; B 65 -8 551 684 ; C -1 ; WX 540 ; N scedilla ; B 65 -178 547 494 ; C -1 ; WX 280 ; N iacute ; B 88 -8 363 706 ; C -1 ; WX 471 ; N lozenge ; B 10 0 462 728 ; C -1 ; WX 700 ; N Rcaron ; B 21 0 736 861 ; C -1 ; WX 760 ; N Gcommaaccent ; B 88 -250 813 698 ; C -1 ; WX 620 ; N ucircumflex ; B 88 -8 686 685 ; C -1 ; WX 620 ; N acircumflex ; B 71 -8 686 685 ; C -1 ; WX 700 ; N Amacron ; B -25 0 720 835 ; C -1 ; WX 400 ; N rcaron ; B 88 0 481 684 ; C -1 ; WX 480 ; N ccedilla ; B 65 -178 522 494 ; C -1 ; WX 580 ; N Zdotaccent ; B 8 0 695 883 ; C -1 ; WX 600 ; N Thorn ; B 21 0 656 681 ; C -1 ; WX 760 ; N Omacron ; B 88 -17 799 835 ; C -1 ; WX 700 ; N Racute ; B 21 0 736 883 ; C -1 ; WX 640 ; N Sacute ; B 61 -17 668 883 ; C -1 ; WX 710 ; N dcaron ; B 65 -8 806 723 ; C -1 ; WX 720 ; N Umacron ; B 118 -17 842 835 ; C -1 ; WX 620 ; N uring ; B 88 -8 686 706 ; C -1 ; WX 372 ; N threesuperior ; B 70 269 439 698 ; C -1 ; WX 760 ; N Ograve ; B 88 -17 799 883 ; C -1 ; WX 700 ; N Agrave ; B -25 0 720 883 ; C -1 ; WX 700 ; N Abreve ; B -25 0 720 857 ; C -1 ; WX 600 ; N multiply ; B 91 44 595 548 ; C -1 ; WX 620 ; N uacute ; B 88 -8 686 706 ; C -1 ; WX 600 ; N Tcaron ; B 50 0 725 861 ; C -1 ; WX 476 ; N partialdiff ; B 17 -38 459 710 ; C -1 ; WX 600 ; N ydieresis ; B 60 -221 609 688 ; C -1 ; WX 720 ; N Nacute ; B 18 0 823 883 ; C -1 ; WX 280 ; N icircumflex ; B 76 -8 379 685 ; C -1 ; WX 680 ; N Ecircumflex ; B 21 0 736 862 ; C -1 ; WX 620 ; N adieresis ; B 71 -8 686 688 ; C -1 ; WX 540 ; N edieresis ; B 65 -8 575 688 ; C -1 ; WX 480 ; N cacute ; B 65 -8 522 706 ; C -1 ; WX 620 ; N nacute ; B 88 -8 673 706 ; C -1 ; WX 620 ; N umacron ; B 88 -8 686 658 ; C -1 ; WX 720 ; N Ncaron ; B 18 0 823 861 ; C -1 ; WX 320 ; N Iacute ; B 21 0 433 883 ; C -1 ; WX 600 ; N plusminus ; B 91 0 595 548 ; C -1 ; WX 600 ; N brokenbar ; B 294 -175 372 675 ; C -1 ; WX 740 ; N registered ; B 84 -17 784 698 ; C -1 ; WX 760 ; N Gbreve ; B 88 -17 813 857 ; C -1 ; WX 320 ; N Idotaccent ; B 21 0 412 883 ; C -1 ; WX 600 ; N summation ; B 15 -10 586 706 ; C -1 ; WX 680 ; N Egrave ; B 21 0 736 883 ; C -1 ; WX 400 ; N racute ; B 88 0 481 706 ; C -1 ; WX 540 ; N omacron ; B 65 -8 572 658 ; C -1 ; WX 580 ; N Zacute ; B 8 0 695 883 ; C -1 ; WX 580 ; N Zcaron ; B 8 0 695 861 ; C -1 ; WX 549 ; N greaterequal ; B 26 0 523 666 ; C -1 ; WX 740 ; N Eth ; B 21 0 782 681 ; C -1 ; WX 720 ; N Ccedilla ; B 88 -178 746 698 ; C -1 ; WX 280 ; N lcommaaccent ; B 100 -250 342 717 ; C -1 ; WX 370 ; N tcaron ; B 88 -8 476 737 ; C -1 ; WX 540 ; N eogonek ; B 65 -160 575 494 ; C -1 ; WX 720 ; N Uogonek ; B 118 -168 842 681 ; C -1 ; WX 700 ; N Aacute ; B -25 0 720 883 ; C -1 ; WX 700 ; N Adieresis ; B -25 0 720 865 ; C -1 ; WX 540 ; N egrave ; B 65 -8 575 706 ; C -1 ; WX 520 ; N zacute ; B 38 -8 561 706 ; C -1 ; WX 280 ; N iogonek ; B 88 -157 351 663 ; C -1 ; WX 760 ; N Oacute ; B 88 -17 799 883 ; C -1 ; WX 540 ; N oacute ; B 65 -8 572 706 ; C -1 ; WX 620 ; N amacron ; B 71 -8 686 658 ; C -1 ; WX 540 ; N sacute ; B 65 -8 547 706 ; C -1 ; WX 280 ; N idieresis ; B 88 -8 377 688 ; C -1 ; WX 760 ; N Ocircumflex ; B 88 -17 799 862 ; C -1 ; WX 720 ; N Ugrave ; B 118 -17 842 883 ; C -1 ; WX 614 ; N Delta ; B 6 0 608 688 ; C -1 ; WX 600 ; N thorn ; B -24 -212 621 717 ; C -1 ; WX 372 ; N twosuperior ; B 68 279 439 698 ; C -1 ; WX 760 ; N Odieresis ; B 88 -17 799 865 ; C -1 ; WX 620 ; N mu ; B 53 -221 686 484 ; C -1 ; WX 280 ; N igrave ; B 88 -8 351 706 ; C -1 ; WX 540 ; N ohungarumlaut ; B 65 -8 590 694 ; C -1 ; WX 680 ; N Eogonek ; B 21 -153 736 681 ; C -1 ; WX 640 ; N dcroat ; B 65 -8 725 717 ; C -1 ; WX 930 ; N threequarters ; B 99 0 913 691 ; C -1 ; WX 640 ; N Scedilla ; B 61 -178 668 698 ; C -1 ; WX 350 ; N lcaron ; B 100 -8 446 722 ; C -1 ; WX 720 ; N Kcommaaccent ; B 21 -250 804 681 ; C -1 ; WX 580 ; N Lacute ; B 21 0 656 883 ; C -1 ; WX 980 ; N trademark ; B 69 277 965 681 ; C -1 ; WX 540 ; N edotaccent ; B 65 -8 575 720 ; C -1 ; WX 320 ; N Igrave ; B 21 0 412 883 ; C -1 ; WX 320 ; N Imacron ; B 21 0 454 835 ; C -1 ; WX 580 ; N Lcaron ; B 21 0 656 698 ; C -1 ; WX 930 ; N onehalf ; B 91 0 925 681 ; C -1 ; WX 549 ; N lessequal ; B 26 0 523 666 ; C -1 ; WX 540 ; N ocircumflex ; B 65 -8 572 685 ; C -1 ; WX 620 ; N ntilde ; B 88 -8 673 671 ; C -1 ; WX 720 ; N Uhungarumlaut ; B 118 -17 842 871 ; C -1 ; WX 680 ; N Eacute ; B 21 0 736 883 ; C -1 ; WX 540 ; N emacron ; B 65 -8 594 658 ; C -1 ; WX 560 ; N gbreve ; B 4 -221 581 680 ; C -1 ; WX 930 ; N onequarter ; B 91 0 913 681 ; C -1 ; WX 640 ; N Scaron ; B 61 -17 668 861 ; C -1 ; WX 640 ; N Scommaaccent ; B 61 -250 668 698 ; C -1 ; WX 760 ; N Ohungarumlaut ; B 88 -17 799 871 ; C -1 ; WX 400 ; N degree ; B 120 398 420 698 ; C -1 ; WX 540 ; N ograve ; B 65 -8 572 706 ; C -1 ; WX 720 ; N Ccaron ; B 88 -17 746 861 ; C -1 ; WX 620 ; N ugrave ; B 88 -8 686 706 ; C -1 ; WX 453 ; N radical ; B -4 -80 458 762 ; C -1 ; WX 740 ; N Dcaron ; B 21 0 782 861 ; C -1 ; WX 400 ; N rcommaaccent ; B 67 -250 481 494 ; C -1 ; WX 720 ; N Ntilde ; B 18 0 823 848 ; C -1 ; WX 540 ; N otilde ; B 65 -8 572 671 ; C -1 ; WX 700 ; N Rcommaaccent ; B 21 -250 736 681 ; C -1 ; WX 580 ; N Lcommaaccent ; B 21 -250 656 681 ; C -1 ; WX 700 ; N Atilde ; B -25 0 720 848 ; C -1 ; WX 700 ; N Aogonek ; B -25 -153 748 681 ; C -1 ; WX 700 ; N Aring ; B -25 0 720 883 ; C -1 ; WX 760 ; N Otilde ; B 88 -17 799 848 ; C -1 ; WX 520 ; N zdotaccent ; B 38 -8 561 720 ; C -1 ; WX 680 ; N Ecaron ; B 21 0 736 861 ; C -1 ; WX 320 ; N Iogonek ; B 21 -153 412 681 ; C -1 ; WX 600 ; N kcommaaccent ; B 88 -250 657 717 ; C -1 ; WX 600 ; N minus ; B 91 259 595 335 ; C -1 ; WX 320 ; N Icircumflex ; B 21 0 449 862 ; C -1 ; WX 620 ; N ncaron ; B 88 -8 673 684 ; C -1 ; WX 340 ; N tcommaaccent ; B 88 -250 411 664 ; C -1 ; WX 600 ; N logicalnot ; B 91 163 595 433 ; C -1 ; WX 540 ; N odieresis ; B 65 -8 572 688 ; C -1 ; WX 620 ; N udieresis ; B 88 -8 686 688 ; C -1 ; WX 549 ; N notequal ; B 12 -31 537 547 ; C -1 ; WX 560 ; N gcommaaccent ; B 4 -221 581 782 ; C -1 ; WX 540 ; N eth ; B 65 -8 642 725 ; C -1 ; WX 520 ; N zcaron ; B 38 -8 561 684 ; C -1 ; WX 620 ; N ncommaaccent ; B 88 -250 673 494 ; C -1 ; WX 372 ; N onesuperior ; B 114 279 339 688 ; C -1 ; WX 280 ; N imacron ; B 88 -8 404 658 ; C -1 ; WX 620 ; N Euro ; B 61 -13 685 694 ; C -1 ; WX 720 ; N Ccircumflex ; B 88 -13 746 906 ; C -1 ; WX 480 ; N ccircumflex ; B 65 -9 522 724 ; C -1 ; WX 720 ; N Cdotaccent ; B 88 -13 746 902 ; C -1 ; WX 480 ; N cdotaccent ; B 65 -9 522 720 ; C -1 ; WX 680 ; N Ebreve ; B 21 0 736 889 ; C -1 ; WX 540 ; N ebreve ; B 65 -9 575 707 ; C -1 ; WX 760 ; N Gcircumflex ; B 88 -13 813 906 ; C -1 ; WX 560 ; N gcircumflex ; B 4 -221 581 724 ; C -1 ; WX 760 ; N Gdotaccent ; B 88 -13 813 902 ; C -1 ; WX 560 ; N gdotaccent ; B 4 -221 581 720 ; C -1 ; WX 800 ; N Hcircumflex ; B 21 0 888 906 ; C -1 ; WX 620 ; N hcircumflex ; B 88 -9 689 940 ; C -1 ; WX 800 ; N Hbar ; B 21 0 888 681 ; C -1 ; WX 620 ; N hbar ; B 88 -9 689 715 ; C -1 ; WX 320 ; N Itilde ; B 21 0 459 864 ; C -1 ; WX 280 ; N itilde ; B 88 -9 445 682 ; C -1 ; WX 320 ; N Ibreve ; B 21 0 469 889 ; C -1 ; WX 280 ; N ibreve ; B 88 -9 455 707 ; C -1 ; WX 876 ; N IJ ; B 21 -13 966 681 ; C -1 ; WX 544 ; N ij ; B 88 -221 608 666 ; C -1 ; WX 560 ; N Jcircumflex ; B -2 -13 666 906 ; C -1 ; WX 280 ; N jcircumflex ; B -200 -221 379 729 ; C -1 ; WX 587 ; N kgreenlandic ; B 75 -9 644 495 ; C -1 ; WX 580 ; N Ldot ; B 21 0 656 681 ; C -1 ; WX 450 ; N ldot ; B 100 -9 426 715 ; C -1 ; WX 620 ; N napostrophe ; B 88 -9 673 728 ; C -1 ; WX 760 ; N Obreve ; B 88 -13 799 889 ; C -1 ; WX 540 ; N obreve ; B 65 -9 572 707 ; C -1 ; WX 640 ; N Scircumflex ; B 61 -13 668 906 ; C -1 ; WX 540 ; N scircumflex ; B 65 -9 547 724 ; C -1 ; WX 600 ; N Tbar ; B 50 0 725 681 ; C -1 ; WX 340 ; N tbar ; B 68 -9 411 665 ; C -1 ; WX 600 ; N Tcedilla ; B 50 -250 725 681 ; C -1 ; WX 340 ; N tcedilla ; B 88 -250 411 664 ; C -1 ; WX 720 ; N Utilde ; B 118 -13 842 864 ; C -1 ; WX 620 ; N utilde ; B 88 -9 686 682 ; C -1 ; WX 720 ; N Ubreve ; B 118 -13 842 889 ; C -1 ; WX 620 ; N ubreve ; B 88 -9 686 707 ; C -1 ; WX 960 ; N Wcircumflex ; B 87 0 1095 906 ; C -1 ; WX 880 ; N wcircumflex ; B 88 -9 893 724 ; C -1 ; WX 660 ; N Ycircumflex ; B 87 0 809 906 ; C -1 ; WX 600 ; N ycircumflex ; B 60 -221 609 724 ; C -1 ; WX 340 ; N longs ; B -160 -206 557 728 ; C -1 ; WX 688 ; N infinity ; B 9 64 673 520 ; EndCharMetrics StartKernData StartKernPairs 828 KPX A T -5 KPX A Tcaron -5 KPX A Tcommaaccent -5 KPX A V -78 KPX A W -73 KPX A Y -62 KPX A Yacute -62 KPX A Ydieresis -62 KPX Aacute T -5 KPX Aacute Tcaron -5 KPX Aacute Tcommaaccent -5 KPX Aacute V -78 KPX Aacute W -73 KPX Aacute Y -62 KPX Aacute Yacute -62 KPX Aacute Ydieresis -62 KPX Abreve T -5 KPX Abreve Tcaron -5 KPX Abreve Tcommaaccent -5 KPX Abreve V -78 KPX Abreve W -73 KPX Abreve Y -62 KPX Abreve Yacute -62 KPX Abreve Ydieresis -62 KPX Acircumflex T -5 KPX Acircumflex Tcaron -5 KPX Acircumflex Tcommaaccent -5 KPX Acircumflex V -78 KPX Acircumflex W -73 KPX Acircumflex Y -62 KPX Acircumflex Yacute -62 KPX Acircumflex Ydieresis -62 KPX Adieresis T -5 KPX Adieresis Tcaron -5 KPX Adieresis Tcommaaccent -5 KPX Adieresis V -78 KPX Adieresis W -73 KPX Adieresis Y -62 KPX Adieresis Yacute -62 KPX Adieresis Ydieresis -62 KPX Agrave T -5 KPX Agrave Tcaron -5 KPX Agrave Tcommaaccent -5 KPX Agrave V -78 KPX Agrave W -73 KPX Agrave Y -62 KPX Agrave Yacute -62 KPX Agrave Ydieresis -62 KPX Amacron T -5 KPX Amacron Tcaron -5 KPX Amacron Tcommaaccent -5 KPX Amacron V -78 KPX Amacron W -73 KPX Amacron Y -62 KPX Amacron Yacute -62 KPX Amacron Ydieresis -62 KPX Aogonek T -5 KPX Aogonek Tcaron -5 KPX Aogonek Tcommaaccent -5 KPX Aogonek V -78 KPX Aogonek W -73 KPX Aogonek Y -62 KPX Aogonek Yacute -62 KPX Aogonek Ydieresis -62 KPX Aring T -5 KPX Aring Tcaron -5 KPX Aring Tcommaaccent -5 KPX Aring V -78 KPX Aring W -73 KPX Aring Y -62 KPX Aring Yacute -62 KPX Aring Ydieresis -62 KPX Atilde T -5 KPX Atilde Tcaron -5 KPX Atilde Tcommaaccent -5 KPX Atilde V -78 KPX Atilde W -73 KPX Atilde Y -62 KPX Atilde Yacute -62 KPX Atilde Ydieresis -62 KPX F A -16 KPX F Aacute -16 KPX F Abreve -16 KPX F Acircumflex -16 KPX F Adieresis -16 KPX F Agrave -16 KPX F Amacron -16 KPX F Aogonek -16 KPX F Aring -16 KPX F Atilde -16 KPX F comma -98 KPX F period -97 KPX L V 4 KPX L W 9 KPX L Y 7 KPX L Yacute 7 KPX L Ydieresis 7 KPX L y 20 KPX L yacute 20 KPX L ydieresis 20 KPX Lacute V 4 KPX Lacute W 9 KPX Lacute Y 7 KPX Lacute Yacute 7 KPX Lacute Ydieresis 7 KPX Lacute y 20 KPX Lacute yacute 20 KPX Lacute ydieresis 20 KPX Lcaron V 4 KPX Lcaron W 9 KPX Lcaron Y 7 KPX Lcaron Yacute 7 KPX Lcaron Ydieresis 7 KPX Lcaron y 20 KPX Lcaron yacute 20 KPX Lcaron ydieresis 20 KPX Lcommaaccent V 4 KPX Lcommaaccent W 9 KPX Lcommaaccent Y 7 KPX Lcommaaccent Yacute 7 KPX Lcommaaccent Ydieresis 7 KPX Lcommaaccent y 20 KPX Lcommaaccent yacute 20 KPX Lcommaaccent ydieresis 20 KPX Lslash V 4 KPX Lslash W 9 KPX Lslash Y 7 KPX Lslash Yacute 7 KPX Lslash Ydieresis 7 KPX Lslash y 20 KPX Lslash yacute 20 KPX Lslash ydieresis 20 KPX P A -30 KPX P Aacute -30 KPX P Abreve -30 KPX P Acircumflex -30 KPX P Adieresis -30 KPX P Agrave -30 KPX P Amacron -30 KPX P Aogonek -30 KPX P Aring -30 KPX P Atilde -30 KPX P comma -106 KPX P period -105 KPX R T 65 KPX R Tcaron 65 KPX R Tcommaaccent 65 KPX R V 2 KPX R W 2 KPX R Y 11 KPX R Yacute 11 KPX R Ydieresis 11 KPX Racute T 65 KPX Racute Tcaron 65 KPX Racute Tcommaaccent 65 KPX Racute V 2 KPX Racute W 2 KPX Racute Y 11 KPX Racute Yacute 11 KPX Racute Ydieresis 11 KPX Rcaron T 65 KPX Rcaron Tcaron 65 KPX Rcaron Tcommaaccent 65 KPX Rcaron V 2 KPX Rcaron W 2 KPX Rcaron Y 11 KPX Rcaron Yacute 11 KPX Rcaron Ydieresis 11 KPX Rcommaaccent T 65 KPX Rcommaaccent Tcaron 65 KPX Rcommaaccent Tcommaaccent 65 KPX Rcommaaccent V 2 KPX Rcommaaccent W 2 KPX Rcommaaccent Y 11 KPX Rcommaaccent Yacute 11 KPX Rcommaaccent Ydieresis 11 KPX T A -14 KPX T Aacute -14 KPX T Abreve -14 KPX T Acircumflex -14 KPX T Adieresis -14 KPX T Agrave -14 KPX T Amacron -14 KPX T Aogonek -14 KPX T Aring -14 KPX T Atilde -14 KPX T a 9 KPX T aacute 9 KPX T abreve 9 KPX T acircumflex 9 KPX T adieresis 9 KPX T agrave 9 KPX T amacron 9 KPX T aogonek 9 KPX T aring 9 KPX T atilde 9 KPX T c 16 KPX T cacute 16 KPX T ccaron 16 KPX T ccedilla 16 KPX T colon 48 KPX T comma -79 KPX T e 10 KPX T eacute 10 KPX T ecaron 10 KPX T ecircumflex 10 KPX T edieresis 10 KPX T edotaccent 10 KPX T egrave 10 KPX T emacron 10 KPX T eogonek 10 KPX T hyphen 20 KPX T i 71 KPX T iacute 71 KPX T icircumflex 71 KPX T idieresis 71 KPX T igrave 71 KPX T imacron 71 KPX T iogonek 71 KPX T o 14 KPX T oacute 14 KPX T ocircumflex 14 KPX T odieresis 14 KPX T ograve 14 KPX T ohungarumlaut 14 KPX T omacron 14 KPX T oslash 14 KPX T otilde 14 KPX T period -78 KPX T r 67 KPX T racute 67 KPX T rcaron 67 KPX T rcommaaccent 67 KPX T s -7 KPX T sacute -7 KPX T scaron -7 KPX T scedilla -7 KPX T scommaaccent -7 KPX T semicolon 48 KPX Tcaron A -14 KPX Tcaron Aacute -14 KPX Tcaron Abreve -14 KPX Tcaron Acircumflex -14 KPX Tcaron Adieresis -14 KPX Tcaron Agrave -14 KPX Tcaron Amacron -14 KPX Tcaron Aogonek -14 KPX Tcaron Aring -14 KPX Tcaron Atilde -14 KPX Tcaron a 9 KPX Tcaron aacute 9 KPX Tcaron abreve 9 KPX Tcaron acircumflex 9 KPX Tcaron adieresis 9 KPX Tcaron agrave 9 KPX Tcaron amacron 9 KPX Tcaron aogonek 9 KPX Tcaron aring 9 KPX Tcaron atilde 9 KPX Tcaron c 16 KPX Tcaron cacute 16 KPX Tcaron ccaron 16 KPX Tcaron ccedilla 16 KPX Tcaron colon 48 KPX Tcaron comma -79 KPX Tcaron e 10 KPX Tcaron eacute 10 KPX Tcaron ecaron 10 KPX Tcaron ecircumflex 10 KPX Tcaron edieresis 10 KPX Tcaron edotaccent 10 KPX Tcaron egrave 10 KPX Tcaron emacron 10 KPX Tcaron eogonek 10 KPX Tcaron hyphen 20 KPX Tcaron i 71 KPX Tcaron iacute 71 KPX Tcaron icircumflex 71 KPX Tcaron idieresis 71 KPX Tcaron igrave 71 KPX Tcaron imacron 71 KPX Tcaron iogonek 71 KPX Tcaron o 14 KPX Tcaron oacute 14 KPX Tcaron ocircumflex 14 KPX Tcaron odieresis 14 KPX Tcaron ograve 14 KPX Tcaron ohungarumlaut 14 KPX Tcaron omacron 14 KPX Tcaron oslash 14 KPX Tcaron otilde 14 KPX Tcaron period -78 KPX Tcaron r 67 KPX Tcaron racute 67 KPX Tcaron rcaron 67 KPX Tcaron rcommaaccent 67 KPX Tcaron s -7 KPX Tcaron sacute -7 KPX Tcaron scaron -7 KPX Tcaron scedilla -7 KPX Tcaron scommaaccent -7 KPX Tcaron semicolon 48 KPX Tcommaaccent A -14 KPX Tcommaaccent Aacute -14 KPX Tcommaaccent Abreve -14 KPX Tcommaaccent Acircumflex -14 KPX Tcommaaccent Adieresis -14 KPX Tcommaaccent Agrave -14 KPX Tcommaaccent Amacron -14 KPX Tcommaaccent Aogonek -14 KPX Tcommaaccent Aring -14 KPX Tcommaaccent Atilde -14 KPX Tcommaaccent a 9 KPX Tcommaaccent aacute 9 KPX Tcommaaccent abreve 9 KPX Tcommaaccent acircumflex 9 KPX Tcommaaccent adieresis 9 KPX Tcommaaccent agrave 9 KPX Tcommaaccent amacron 9 KPX Tcommaaccent aogonek 9 KPX Tcommaaccent aring 9 KPX Tcommaaccent atilde 9 KPX Tcommaaccent c 16 KPX Tcommaaccent cacute 16 KPX Tcommaaccent ccaron 16 KPX Tcommaaccent ccedilla 16 KPX Tcommaaccent colon 48 KPX Tcommaaccent comma -79 KPX Tcommaaccent e 10 KPX Tcommaaccent eacute 10 KPX Tcommaaccent ecaron 10 KPX Tcommaaccent ecircumflex 10 KPX Tcommaaccent edieresis 10 KPX Tcommaaccent edotaccent 10 KPX Tcommaaccent egrave 10 KPX Tcommaaccent emacron 10 KPX Tcommaaccent eogonek 10 KPX Tcommaaccent hyphen 20 KPX Tcommaaccent i 71 KPX Tcommaaccent iacute 71 KPX Tcommaaccent icircumflex 71 KPX Tcommaaccent idieresis 71 KPX Tcommaaccent igrave 71 KPX Tcommaaccent imacron 71 KPX Tcommaaccent iogonek 71 KPX Tcommaaccent o 14 KPX Tcommaaccent oacute 14 KPX Tcommaaccent ocircumflex 14 KPX Tcommaaccent odieresis 14 KPX Tcommaaccent ograve 14 KPX Tcommaaccent ohungarumlaut 14 KPX Tcommaaccent omacron 14 KPX Tcommaaccent oslash 14 KPX Tcommaaccent otilde 14 KPX Tcommaaccent period -78 KPX Tcommaaccent r 67 KPX Tcommaaccent racute 67 KPX Tcommaaccent rcaron 67 KPX Tcommaaccent rcommaaccent 67 KPX Tcommaaccent s -7 KPX Tcommaaccent sacute -7 KPX Tcommaaccent scaron -7 KPX Tcommaaccent scedilla -7 KPX Tcommaaccent scommaaccent -7 KPX Tcommaaccent semicolon 48 KPX V A -70 KPX V Aacute -70 KPX V Abreve -70 KPX V Acircumflex -70 KPX V Adieresis -70 KPX V Agrave -70 KPX V Amacron -70 KPX V Aogonek -70 KPX V Aring -70 KPX V Atilde -70 KPX V a -70 KPX V aacute -70 KPX V abreve -70 KPX V acircumflex -70 KPX V adieresis -70 KPX V agrave -70 KPX V amacron -70 KPX V aogonek -70 KPX V aring -70 KPX V atilde -70 KPX V colon -35 KPX V comma -109 KPX V e -70 KPX V eacute -70 KPX V ecaron -70 KPX V ecircumflex -70 KPX V edieresis -70 KPX V edotaccent -70 KPX V egrave -70 KPX V emacron -70 KPX V eogonek -70 KPX V hyphen 20 KPX V i 3 KPX V iacute 3 KPX V icircumflex 3 KPX V idieresis 13 KPX V igrave 13 KPX V imacron 13 KPX V iogonek 3 KPX V o -70 KPX V oacute -70 KPX V ocircumflex -70 KPX V odieresis -70 KPX V ograve -70 KPX V ohungarumlaut -70 KPX V omacron -70 KPX V oslash -70 KPX V otilde -70 KPX V period -100 KPX V r -20 KPX V racute -20 KPX V rcaron -20 KPX V rcommaaccent -20 KPX V semicolon -44 KPX V u -10 KPX V uacute -10 KPX V ucircumflex -10 KPX V udieresis -10 KPX V ugrave -10 KPX V uhungarumlaut -10 KPX V umacron -10 KPX V uogonek -10 KPX V uring -10 KPX V y -14 KPX V yacute -14 KPX V ydieresis -14 KPX W A -60 KPX W Aacute -60 KPX W Abreve -60 KPX W Acircumflex -60 KPX W Adieresis -60 KPX W Agrave -60 KPX W Amacron -60 KPX W Aogonek -60 KPX W Aring -60 KPX W Atilde -60 KPX W a -60 KPX W aacute -60 KPX W abreve -60 KPX W acircumflex -60 KPX W adieresis -60 KPX W agrave -60 KPX W amacron -60 KPX W aogonek -60 KPX W aring -60 KPX W atilde -60 KPX W colon -35 KPX W comma -109 KPX W e -60 KPX W eacute -60 KPX W ecaron -60 KPX W ecircumflex -60 KPX W edieresis -60 KPX W edotaccent -60 KPX W egrave -60 KPX W emacron -60 KPX W eogonek -60 KPX W hyphen 20 KPX W i 3 KPX W iacute 3 KPX W icircumflex 13 KPX W idieresis 13 KPX W igrave 13 KPX W imacron 13 KPX W iogonek 3 KPX W o -60 KPX W oacute -60 KPX W ocircumflex -60 KPX W odieresis -60 KPX W ograve -60 KPX W ohungarumlaut -60 KPX W omacron -60 KPX W oslash -60 KPX W otilde -60 KPX W period -100 KPX W r -30 KPX W racute -30 KPX W rcaron -30 KPX W rcommaaccent -30 KPX W semicolon -42 KPX W u -20 KPX W uacute -20 KPX W ucircumflex -20 KPX W udieresis -20 KPX W ugrave -20 KPX W uhungarumlaut -20 KPX W umacron -20 KPX W uogonek -20 KPX W uring -20 KPX W y -14 KPX W yacute -14 KPX W ydieresis -14 KPX Y A -82 KPX Y Aacute -82 KPX Y Abreve -82 KPX Y Acircumflex -82 KPX Y Adieresis -82 KPX Y Agrave -82 KPX Y Amacron -82 KPX Y Aogonek -82 KPX Y Aring -82 KPX Y Atilde -82 KPX Y a -79 KPX Y aacute -79 KPX Y abreve -79 KPX Y acircumflex -79 KPX Y adieresis -79 KPX Y agrave -79 KPX Y amacron -79 KPX Y aogonek -79 KPX Y aring -79 KPX Y atilde -79 KPX Y colon -35 KPX Y comma -109 KPX Y e -78 KPX Y eacute -78 KPX Y ecaron -78 KPX Y ecircumflex -78 KPX Y edieresis -78 KPX Y edotaccent -78 KPX Y egrave -78 KPX Y emacron -78 KPX Y eogonek -78 KPX Y hyphen 20 KPX Y i -11 KPX Y iacute -11 KPX Y iogonek -11 KPX Y o -75 KPX Y oacute -75 KPX Y ocircumflex -75 KPX Y odieresis -75 KPX Y ograve -75 KPX Y ohungarumlaut -75 KPX Y omacron -75 KPX Y oslash -75 KPX Y otilde -75 KPX Y p -37 KPX Y period -100 KPX Y q -72 KPX Y semicolon -40 KPX Y u -31 KPX Y uacute -31 KPX Y ucircumflex -31 KPX Y udieresis -31 KPX Y ugrave -31 KPX Y uhungarumlaut -31 KPX Y umacron -31 KPX Y uogonek -31 KPX Y uring -31 KPX Y v -19 KPX Yacute A -82 KPX Yacute Aacute -82 KPX Yacute Abreve -82 KPX Yacute Acircumflex -82 KPX Yacute Adieresis -82 KPX Yacute Agrave -82 KPX Yacute Amacron -82 KPX Yacute Aogonek -82 KPX Yacute Aring -82 KPX Yacute Atilde -82 KPX Yacute a -79 KPX Yacute aacute -79 KPX Yacute abreve -79 KPX Yacute acircumflex -79 KPX Yacute adieresis -79 KPX Yacute agrave -79 KPX Yacute amacron -79 KPX Yacute aogonek -79 KPX Yacute aring -79 KPX Yacute atilde -79 KPX Yacute colon -35 KPX Yacute comma -109 KPX Yacute e -78 KPX Yacute eacute -78 KPX Yacute ecaron -78 KPX Yacute ecircumflex -78 KPX Yacute edieresis -78 KPX Yacute edotaccent -78 KPX Yacute egrave -78 KPX Yacute emacron -78 KPX Yacute eogonek -78 KPX Yacute hyphen 20 KPX Yacute i -11 KPX Yacute iacute -11 KPX Yacute iogonek -11 KPX Yacute o -75 KPX Yacute oacute -75 KPX Yacute ocircumflex -75 KPX Yacute odieresis -75 KPX Yacute ograve -75 KPX Yacute ohungarumlaut -75 KPX Yacute omacron -75 KPX Yacute oslash -75 KPX Yacute otilde -75 KPX Yacute p -37 KPX Yacute period -100 KPX Yacute q -72 KPX Yacute semicolon -40 KPX Yacute u -31 KPX Yacute uacute -31 KPX Yacute ucircumflex -31 KPX Yacute udieresis -31 KPX Yacute ugrave -31 KPX Yacute uhungarumlaut -31 KPX Yacute umacron -31 KPX Yacute uogonek -31 KPX Yacute uring -31 KPX Yacute v -19 KPX Ydieresis A -82 KPX Ydieresis Aacute -82 KPX Ydieresis Abreve -82 KPX Ydieresis Acircumflex -82 KPX Ydieresis Adieresis -82 KPX Ydieresis Agrave -82 KPX Ydieresis Amacron -82 KPX Ydieresis Aogonek -82 KPX Ydieresis Aring -82 KPX Ydieresis Atilde -82 KPX Ydieresis a -79 KPX Ydieresis aacute -79 KPX Ydieresis abreve -79 KPX Ydieresis acircumflex -79 KPX Ydieresis adieresis -79 KPX Ydieresis agrave -79 KPX Ydieresis amacron -79 KPX Ydieresis aogonek -79 KPX Ydieresis aring -79 KPX Ydieresis atilde -79 KPX Ydieresis colon -35 KPX Ydieresis comma -109 KPX Ydieresis e -78 KPX Ydieresis eacute -78 KPX Ydieresis ecaron -78 KPX Ydieresis ecircumflex -78 KPX Ydieresis edieresis -78 KPX Ydieresis edotaccent -78 KPX Ydieresis egrave -78 KPX Ydieresis emacron -78 KPX Ydieresis eogonek -78 KPX Ydieresis hyphen 20 KPX Ydieresis i -11 KPX Ydieresis iacute -11 KPX Ydieresis iogonek -11 KPX Ydieresis o -75 KPX Ydieresis oacute -75 KPX Ydieresis ocircumflex -75 KPX Ydieresis odieresis -75 KPX Ydieresis ograve -75 KPX Ydieresis ohungarumlaut -75 KPX Ydieresis omacron -75 KPX Ydieresis oslash -75 KPX Ydieresis otilde -75 KPX Ydieresis p -37 KPX Ydieresis period -100 KPX Ydieresis q -72 KPX Ydieresis semicolon -40 KPX Ydieresis u -31 KPX Ydieresis uacute -31 KPX Ydieresis ucircumflex -31 KPX Ydieresis udieresis -31 KPX Ydieresis ugrave -31 KPX Ydieresis uhungarumlaut -31 KPX Ydieresis umacron -31 KPX Ydieresis uogonek -31 KPX Ydieresis uring -31 KPX Ydieresis v -19 KPX f f -19 KPX r c -8 KPX r cacute -8 KPX r ccaron -8 KPX r ccedilla -8 KPX r comma -143 KPX r d -9 KPX r dcroat -9 KPX r e -15 KPX r eacute -15 KPX r ecaron -15 KPX r ecircumflex -15 KPX r edieresis -15 KPX r edotaccent -15 KPX r egrave -15 KPX r emacron -15 KPX r eogonek -15 KPX r f -9 KPX r g -3 KPX r gbreve -3 KPX r gcommaaccent -3 KPX r h -20 KPX r hyphen 20 KPX r m 37 KPX r n 38 KPX r nacute 38 KPX r ncaron 38 KPX r ncommaaccent 38 KPX r ntilde 38 KPX r o -10 KPX r oacute -10 KPX r ocircumflex -10 KPX r odieresis -10 KPX r ograve -10 KPX r ohungarumlaut -10 KPX r omacron -10 KPX r oslash -10 KPX r otilde -10 KPX r period -134 KPX r q -14 KPX racute c -8 KPX racute cacute -8 KPX racute ccaron -8 KPX racute ccedilla -8 KPX racute comma -143 KPX racute d -9 KPX racute dcroat -9 KPX racute e -15 KPX racute eacute -15 KPX racute ecaron -15 KPX racute ecircumflex -15 KPX racute edieresis -15 KPX racute edotaccent -15 KPX racute egrave -15 KPX racute emacron -15 KPX racute eogonek -15 KPX racute f -9 KPX racute g -3 KPX racute gbreve -3 KPX racute gcommaaccent -3 KPX racute h -20 KPX racute hyphen 20 KPX racute m 37 KPX racute n 38 KPX racute nacute 38 KPX racute ncaron 38 KPX racute ncommaaccent 38 KPX racute ntilde 38 KPX racute o -10 KPX racute oacute -10 KPX racute ocircumflex -10 KPX racute odieresis -10 KPX racute ograve -10 KPX racute ohungarumlaut -10 KPX racute omacron -10 KPX racute oslash -10 KPX racute otilde -10 KPX racute period -134 KPX racute q -14 KPX rcaron c -8 KPX rcaron cacute -8 KPX rcaron ccaron -8 KPX rcaron ccedilla -8 KPX rcaron comma -143 KPX rcaron d -9 KPX rcaron dcroat -9 KPX rcaron e -15 KPX rcaron eacute -15 KPX rcaron ecaron -15 KPX rcaron ecircumflex -15 KPX rcaron edieresis -15 KPX rcaron edotaccent -15 KPX rcaron egrave -15 KPX rcaron emacron -15 KPX rcaron eogonek -15 KPX rcaron f -9 KPX rcaron g -3 KPX rcaron gbreve -3 KPX rcaron gcommaaccent -3 KPX rcaron h -20 KPX rcaron hyphen 20 KPX rcaron m 37 KPX rcaron n 38 KPX rcaron nacute 38 KPX rcaron ncaron 38 KPX rcaron ncommaaccent 38 KPX rcaron ntilde 38 KPX rcaron o -10 KPX rcaron oacute -10 KPX rcaron ocircumflex -10 KPX rcaron odieresis -10 KPX rcaron ograve -10 KPX rcaron ohungarumlaut -10 KPX rcaron omacron -10 KPX rcaron oslash -10 KPX rcaron otilde -10 KPX rcaron period -134 KPX rcaron q -14 KPX rcommaaccent c -8 KPX rcommaaccent cacute -8 KPX rcommaaccent ccaron -8 KPX rcommaaccent ccedilla -8 KPX rcommaaccent comma -143 KPX rcommaaccent d -9 KPX rcommaaccent dcroat -9 KPX rcommaaccent e -15 KPX rcommaaccent eacute -15 KPX rcommaaccent ecaron -15 KPX rcommaaccent ecircumflex -15 KPX rcommaaccent edieresis -15 KPX rcommaaccent edotaccent -15 KPX rcommaaccent egrave -15 KPX rcommaaccent emacron -15 KPX rcommaaccent eogonek -15 KPX rcommaaccent f -9 KPX rcommaaccent g -3 KPX rcommaaccent gbreve -3 KPX rcommaaccent gcommaaccent -3 KPX rcommaaccent h -20 KPX rcommaaccent hyphen 20 KPX rcommaaccent m 37 KPX rcommaaccent n 38 KPX rcommaaccent nacute 38 KPX rcommaaccent ncaron 38 KPX rcommaaccent ncommaaccent 38 KPX rcommaaccent ntilde 38 KPX rcommaaccent o -10 KPX rcommaaccent oacute -10 KPX rcommaaccent ocircumflex -10 KPX rcommaaccent odieresis -10 KPX rcommaaccent ograve -10 KPX rcommaaccent ohungarumlaut -10 KPX rcommaaccent omacron -10 KPX rcommaaccent oslash -10 KPX rcommaaccent otilde -10 KPX rcommaaccent period -134 KPX rcommaaccent q -14 EndKernPairs EndKernData EndFontMetrics pmw-4.27/fontmetrics/Symbol.afm0000644000222100022210000002276712247665016014655 0ustar ph10ph10StartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All rights reserved. Comment Creation Date: Thu May 1 15:12:25 1997 Comment UniqueID 43064 Comment VMusage 30820 39997 FontName Symbol FullName Symbol FamilyName Symbol Weight Medium ItalicAngle 0 IsFixedPitch false FontBBox -180 -293 1090 1010 UnderlinePosition -100 UnderlineThickness 50 Version 001.008 Notice Copyright (c) 1985, 1987, 1989, 1990, 1997 Adobe Systems Incorporated. All rights reserved. EncodingScheme FontSpecific StdHW 92 StdVW 85 StartCharMetrics 190 C 32 ; WX 250 ; N space ; B 0 0 0 0 ; C 33 ; WX 333 ; N exclam ; B 128 -17 240 672 ; C 34 ; WX 713 ; N universal ; B 31 0 681 705 ; C 35 ; WX 500 ; N numbersign ; B 20 -16 481 673 ; C 36 ; WX 549 ; N existential ; B 25 0 478 707 ; C 37 ; WX 833 ; N percent ; B 63 -36 771 655 ; C 38 ; WX 778 ; N ampersand ; B 41 -18 750 661 ; C 39 ; WX 439 ; N suchthat ; B 48 -17 414 500 ; C 40 ; WX 333 ; N parenleft ; B 53 -191 300 673 ; C 41 ; WX 333 ; N parenright ; B 30 -191 277 673 ; C 42 ; WX 500 ; N asteriskmath ; B 65 134 427 551 ; C 43 ; WX 549 ; N plus ; B 10 0 539 533 ; C 44 ; WX 250 ; N comma ; B 56 -152 194 104 ; C 45 ; WX 549 ; N minus ; B 11 233 535 288 ; C 46 ; WX 250 ; N period ; B 69 -17 181 95 ; C 47 ; WX 278 ; N slash ; B 0 -18 254 646 ; C 48 ; WX 500 ; N zero ; B 24 -14 476 685 ; C 49 ; WX 500 ; N one ; B 117 0 390 673 ; C 50 ; WX 500 ; N two ; B 25 0 475 685 ; C 51 ; WX 500 ; N three ; B 43 -14 435 685 ; C 52 ; WX 500 ; N four ; B 15 0 469 685 ; C 53 ; WX 500 ; N five ; B 32 -14 445 690 ; C 54 ; WX 500 ; N six ; B 34 -14 468 685 ; C 55 ; WX 500 ; N seven ; B 24 -16 448 673 ; C 56 ; WX 500 ; N eight ; B 56 -14 445 685 ; C 57 ; WX 500 ; N nine ; B 30 -18 459 685 ; C 58 ; WX 278 ; N colon ; B 81 -17 193 460 ; C 59 ; WX 278 ; N semicolon ; B 83 -152 221 460 ; C 60 ; WX 549 ; N less ; B 26 0 523 522 ; C 61 ; WX 549 ; N equal ; B 11 141 537 390 ; C 62 ; WX 549 ; N greater ; B 26 0 523 522 ; C 63 ; WX 444 ; N question ; B 70 -17 412 686 ; C 64 ; WX 549 ; N congruent ; B 11 0 537 475 ; C 65 ; WX 722 ; N Alpha ; B 4 0 684 673 ; C 66 ; WX 667 ; N Beta ; B 29 0 592 673 ; C 67 ; WX 722 ; N Chi ; B -9 0 704 673 ; C 68 ; WX 612 ; N Delta ; B 6 0 608 688 ; C 69 ; WX 611 ; N Epsilon ; B 32 0 617 673 ; C 70 ; WX 763 ; N Phi ; B 26 0 741 673 ; C 71 ; WX 603 ; N Gamma ; B 24 0 609 673 ; C 72 ; WX 722 ; N Eta ; B 39 0 729 673 ; C 73 ; WX 333 ; N Iota ; B 32 0 316 673 ; C 74 ; WX 631 ; N theta1 ; B 18 -18 623 689 ; C 75 ; WX 722 ; N Kappa ; B 35 0 722 673 ; C 76 ; WX 686 ; N Lambda ; B 6 0 680 688 ; C 77 ; WX 889 ; N Mu ; B 28 0 887 673 ; C 78 ; WX 722 ; N Nu ; B 29 -8 720 673 ; C 79 ; WX 722 ; N Omicron ; B 41 -17 715 685 ; C 80 ; WX 768 ; N Pi ; B 25 0 745 673 ; C 81 ; WX 741 ; N Theta ; B 41 -17 715 685 ; C 82 ; WX 556 ; N Rho ; B 28 0 563 673 ; C 83 ; WX 592 ; N Sigma ; B 5 0 589 673 ; C 84 ; WX 611 ; N Tau ; B 33 0 607 673 ; C 85 ; WX 690 ; N Upsilon ; B -8 0 694 673 ; C 86 ; WX 439 ; N sigma1 ; B 40 -233 436 500 ; C 87 ; WX 768 ; N Omega ; B 34 0 736 688 ; C 88 ; WX 645 ; N Xi ; B 40 0 599 673 ; C 89 ; WX 795 ; N Psi ; B 15 0 781 684 ; C 90 ; WX 611 ; N Zeta ; B 44 0 636 673 ; C 91 ; WX 333 ; N bracketleft ; B 86 -155 299 674 ; C 92 ; WX 863 ; N therefore ; B 163 0 701 487 ; C 93 ; WX 333 ; N bracketright ; B 33 -155 246 674 ; C 94 ; WX 658 ; N perpendicular ; B 15 0 652 674 ; C 95 ; WX 500 ; N underscore ; B -2 -125 502 -75 ; C 96 ; WX 500 ; N radicalex ; B 480 881 1090 917 ; C 97 ; WX 631 ; N alpha ; B 41 -18 622 500 ; C 98 ; WX 549 ; N beta ; B 61 -223 515 741 ; C 99 ; WX 549 ; N chi ; B 12 -231 522 499 ; C 100 ; WX 494 ; N delta ; B 40 -19 481 740 ; C 101 ; WX 439 ; N epsilon ; B 22 -19 427 502 ; C 102 ; WX 521 ; N phi ; B 28 -224 492 673 ; C 103 ; WX 411 ; N gamma ; B 5 -225 484 499 ; C 104 ; WX 603 ; N eta ; B 0 -202 527 514 ; C 105 ; WX 329 ; N iota ; B 0 -17 301 503 ; C 106 ; WX 603 ; N phi1 ; B 36 -224 587 499 ; C 107 ; WX 549 ; N kappa ; B 33 0 558 501 ; C 108 ; WX 549 ; N lambda ; B 24 -17 548 739 ; C 109 ; WX 576 ; N mu ; B 33 -223 567 500 ; C 110 ; WX 521 ; N nu ; B -9 -16 475 507 ; C 111 ; WX 549 ; N omicron ; B 35 -19 501 499 ; C 112 ; WX 549 ; N pi ; B 10 -19 530 487 ; C 113 ; WX 521 ; N theta ; B 43 -17 485 690 ; C 114 ; WX 549 ; N rho ; B 50 -230 490 499 ; C 115 ; WX 603 ; N sigma ; B 30 -21 588 500 ; C 116 ; WX 439 ; N tau ; B 10 -19 418 500 ; C 117 ; WX 576 ; N upsilon ; B 7 -18 535 507 ; C 118 ; WX 713 ; N omega1 ; B 12 -18 671 583 ; C 119 ; WX 686 ; N omega ; B 42 -17 684 500 ; C 120 ; WX 493 ; N xi ; B 27 -224 469 766 ; C 121 ; WX 686 ; N psi ; B 12 -228 701 500 ; C 122 ; WX 494 ; N zeta ; B 60 -225 467 756 ; C 123 ; WX 480 ; N braceleft ; B 58 -183 397 673 ; C 124 ; WX 200 ; N bar ; B 65 -293 135 707 ; C 125 ; WX 480 ; N braceright ; B 79 -183 418 673 ; C 126 ; WX 549 ; N similar ; B 17 203 529 307 ; C 160 ; WX 750 ; N Euro ; B 20 -12 714 685 ; C 161 ; WX 620 ; N Upsilon1 ; B -2 0 610 685 ; C 162 ; WX 247 ; N minute ; B 27 459 228 735 ; C 163 ; WX 549 ; N lessequal ; B 29 0 526 639 ; C 164 ; WX 167 ; N fraction ; B -180 -12 340 677 ; C 165 ; WX 713 ; N infinity ; B 26 124 688 404 ; C 166 ; WX 500 ; N florin ; B 2 -193 494 686 ; C 167 ; WX 753 ; N club ; B 86 -26 660 533 ; C 168 ; WX 753 ; N diamond ; B 142 -36 600 550 ; C 169 ; WX 753 ; N heart ; B 117 -33 631 532 ; C 170 ; WX 753 ; N spade ; B 113 -36 629 548 ; C 171 ; WX 1042 ; N arrowboth ; B 24 -15 1024 511 ; C 172 ; WX 987 ; N arrowleft ; B 32 -15 942 511 ; C 173 ; WX 603 ; N arrowup ; B 45 0 571 910 ; C 174 ; WX 987 ; N arrowright ; B 49 -15 959 511 ; C 175 ; WX 603 ; N arrowdown ; B 45 -22 571 888 ; C 176 ; WX 400 ; N degree ; B 50 385 350 685 ; C 177 ; WX 549 ; N plusminus ; B 10 0 539 645 ; C 178 ; WX 411 ; N second ; B 20 459 413 737 ; C 179 ; WX 549 ; N greaterequal ; B 29 0 526 639 ; C 180 ; WX 549 ; N multiply ; B 17 8 533 524 ; C 181 ; WX 713 ; N proportional ; B 27 123 639 404 ; C 182 ; WX 494 ; N partialdiff ; B 26 -20 462 746 ; C 183 ; WX 460 ; N bullet ; B 50 113 410 473 ; C 184 ; WX 549 ; N divide ; B 10 71 536 456 ; C 185 ; WX 549 ; N notequal ; B 15 -25 540 549 ; C 186 ; WX 549 ; N equivalence ; B 14 82 538 443 ; C 187 ; WX 549 ; N approxequal ; B 14 135 527 394 ; C 188 ; WX 1000 ; N ellipsis ; B 111 -17 889 95 ; C 189 ; WX 603 ; N arrowvertex ; B 280 -120 336 1010 ; C 190 ; WX 1000 ; N arrowhorizex ; B -60 220 1050 276 ; C 191 ; WX 658 ; N carriagereturn ; B 15 -16 602 629 ; C 192 ; WX 823 ; N aleph ; B 175 -18 661 658 ; C 193 ; WX 686 ; N Ifraktur ; B 10 -53 578 740 ; C 194 ; WX 795 ; N Rfraktur ; B 26 -15 759 734 ; C 195 ; WX 987 ; N weierstrass ; B 159 -211 870 573 ; C 196 ; WX 768 ; N circlemultiply ; B 43 -17 733 673 ; C 197 ; WX 768 ; N circleplus ; B 43 -15 733 675 ; C 198 ; WX 823 ; N emptyset ; B 39 -24 781 719 ; C 199 ; WX 768 ; N intersection ; B 40 0 732 509 ; C 200 ; WX 768 ; N union ; B 40 -17 732 492 ; C 201 ; WX 713 ; N propersuperset ; B 20 0 673 470 ; C 202 ; WX 713 ; N reflexsuperset ; B 20 -125 673 470 ; C 203 ; WX 713 ; N notsubset ; B 36 -70 690 540 ; C 204 ; WX 713 ; N propersubset ; B 37 0 690 470 ; C 205 ; WX 713 ; N reflexsubset ; B 37 -125 690 470 ; C 206 ; WX 713 ; N element ; B 45 0 505 468 ; C 207 ; WX 713 ; N notelement ; B 45 -58 505 555 ; C 208 ; WX 768 ; N angle ; B 26 0 738 673 ; C 209 ; WX 713 ; N gradient ; B 36 -19 681 718 ; C 210 ; WX 790 ; N registerserif ; B 50 -17 740 673 ; C 211 ; WX 790 ; N copyrightserif ; B 51 -15 741 675 ; C 212 ; WX 890 ; N trademarkserif ; B 18 293 855 673 ; C 213 ; WX 823 ; N product ; B 25 -101 803 751 ; C 214 ; WX 549 ; N radical ; B 10 -38 515 917 ; C 215 ; WX 250 ; N dotmath ; B 69 210 169 310 ; C 216 ; WX 713 ; N logicalnot ; B 15 0 680 288 ; C 217 ; WX 603 ; N logicaland ; B 23 0 583 454 ; C 218 ; WX 603 ; N logicalor ; B 30 0 578 477 ; C 219 ; WX 1042 ; N arrowdblboth ; B 27 -20 1023 510 ; C 220 ; WX 987 ; N arrowdblleft ; B 30 -15 939 513 ; C 221 ; WX 603 ; N arrowdblup ; B 39 2 567 911 ; C 222 ; WX 987 ; N arrowdblright ; B 45 -20 954 508 ; C 223 ; WX 603 ; N arrowdbldown ; B 44 -19 572 890 ; C 224 ; WX 494 ; N lozenge ; B 18 0 466 745 ; C 225 ; WX 329 ; N angleleft ; B 25 -198 306 746 ; C 226 ; WX 790 ; N registersans ; B 50 -20 740 670 ; C 227 ; WX 790 ; N copyrightsans ; B 49 -15 739 675 ; C 228 ; WX 786 ; N trademarksans ; B 5 293 725 673 ; C 229 ; WX 713 ; N summation ; B 14 -108 695 752 ; C 230 ; WX 384 ; N parenlefttp ; B 24 -293 436 926 ; C 231 ; WX 384 ; N parenleftex ; B 24 -85 108 925 ; C 232 ; WX 384 ; N parenleftbt ; B 24 -293 436 926 ; C 233 ; WX 384 ; N bracketlefttp ; B 0 -80 349 926 ; C 234 ; WX 384 ; N bracketleftex ; B 0 -79 77 925 ; C 235 ; WX 384 ; N bracketleftbt ; B 0 -80 349 926 ; C 236 ; WX 494 ; N bracelefttp ; B 209 -85 445 925 ; C 237 ; WX 494 ; N braceleftmid ; B 20 -85 284 935 ; C 238 ; WX 494 ; N braceleftbt ; B 209 -75 445 935 ; C 239 ; WX 494 ; N braceex ; B 209 -85 284 935 ; C 241 ; WX 329 ; N angleright ; B 21 -198 302 746 ; C 242 ; WX 274 ; N integral ; B 2 -107 291 916 ; C 243 ; WX 686 ; N integraltp ; B 308 -88 675 920 ; C 244 ; WX 686 ; N integralex ; B 308 -88 378 975 ; C 245 ; WX 686 ; N integralbt ; B 11 -87 378 921 ; C 246 ; WX 384 ; N parenrighttp ; B 54 -293 466 926 ; C 247 ; WX 384 ; N parenrightex ; B 382 -85 466 925 ; C 248 ; WX 384 ; N parenrightbt ; B 54 -293 466 926 ; C 249 ; WX 384 ; N bracketrighttp ; B 22 -80 371 926 ; C 250 ; WX 384 ; N bracketrightex ; B 294 -79 371 925 ; C 251 ; WX 384 ; N bracketrightbt ; B 22 -80 371 926 ; C 252 ; WX 494 ; N bracerighttp ; B 48 -85 284 925 ; C 253 ; WX 494 ; N bracerightmid ; B 209 -85 473 935 ; C 254 ; WX 494 ; N bracerightbt ; B 48 -75 284 935 ; C -1 ; WX 790 ; N apple ; B 56 -3 733 808 ; EndCharMetrics EndFontMetrics pmw-4.27/fontmetrics/AvantGarde-Book.afm0000644000222100022210000011021512247665016016276 0ustar ph10ph10StartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1990, 1991, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Thu May 1 14:01:14 1997 Comment PH added additional characters (including Euro) 19 November 2013 Comment UniqueID 43083 Comment VMusage 33801 44826 FontName AvantGarde-Book FullName ITC Avant Garde Gothic Book FamilyName ITC Avant Garde Gothic Weight Book ItalicAngle 0 IsFixedPitch false FontBBox -113 -222 1148 955 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1989, 1990, 1991, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.ITC Avant Garde Gothic is a registered trademark of International Typeface Corporation. EncodingScheme AdobeStandardEncoding CapHeight 740 XHeight 547 Ascender 740 Descender -192 StdHW 63 StdVW 70 StartCharMetrics 361 C 32 ; WX 277 ; N space ; B 0 0 0 0 ; C 33 ; WX 295 ; N exclam ; B 111 0 185 740 ; C 34 ; WX 309 ; N quotedbl ; B 36 444 273 740 ; C 35 ; WX 554 ; N numbersign ; B 33 0 521 740 ; C 36 ; WX 554 ; N dollar ; B 70 -70 485 811 ; C 37 ; WX 775 ; N percent ; B 21 -13 753 751 ; C 38 ; WX 757 ; N ampersand ; B 56 -12 736 753 ; C 39 ; WX 351 ; N quoteright ; B 94 546 256 740 ; C 40 ; WX 369 ; N parenleft ; B 47 -205 355 757 ; C 41 ; WX 369 ; N parenright ; B 14 -205 322 757 ; C 42 ; WX 425 ; N asterisk ; B 58 446 367 740 ; C 43 ; WX 606 ; N plus ; B 51 0 555 506 ; C 44 ; WX 277 ; N comma ; B 14 -67 176 126 ; C 45 ; WX 332 ; N hyphen ; B 30 248 302 315 ; C 46 ; WX 277 ; N period ; B 102 0 176 126 ; C 47 ; WX 437 ; N slash ; B 44 -100 403 740 ; C 48 ; WX 554 ; N zero ; B 29 -13 525 753 ; C 49 ; WX 554 ; N one ; B 135 0 336 740 ; C 50 ; WX 554 ; N two ; B 40 0 514 753 ; C 51 ; WX 554 ; N three ; B 34 -13 506 753 ; C 52 ; WX 554 ; N four ; B 14 0 528 740 ; C 53 ; WX 554 ; N five ; B 26 -13 530 740 ; C 54 ; WX 554 ; N six ; B 24 -13 530 739 ; C 55 ; WX 554 ; N seven ; B 63 0 491 740 ; C 56 ; WX 554 ; N eight ; B 41 -13 513 753 ; C 57 ; WX 554 ; N nine ; B 24 0 530 752 ; C 58 ; WX 277 ; N colon ; B 102 0 176 548 ; C 59 ; WX 277 ; N semicolon ; B 14 -67 176 548 ; C 60 ; WX 606 ; N less ; B 46 -8 554 514 ; C 61 ; WX 606 ; N equal ; B 51 118 555 388 ; C 62 ; WX 606 ; N greater ; B 52 -8 560 514 ; C 63 ; WX 591 ; N question ; B 64 0 526 752 ; C 64 ; WX 867 ; N at ; B 65 -13 803 753 ; C 65 ; WX 740 ; N A ; B 12 0 729 740 ; C 66 ; WX 574 ; N B ; B 74 0 544 740 ; C 67 ; WX 813 ; N C ; B 43 -13 771 752 ; C 68 ; WX 744 ; N D ; B 74 0 699 740 ; C 69 ; WX 536 ; N E ; B 70 0 475 740 ; C 70 ; WX 485 ; N F ; B 70 0 444 740 ; C 71 ; WX 872 ; N G ; B 40 -13 828 753 ; C 72 ; WX 683 ; N H ; B 76 0 607 740 ; C 73 ; WX 226 ; N I ; B 76 0 150 740 ; C 74 ; WX 482 ; N J ; B 6 -13 402 740 ; C 75 ; WX 591 ; N K ; B 81 0 591 740 ; C 76 ; WX 462 ; N L ; B 82 0 462 740 ; C 77 ; WX 919 ; N M ; B 76 0 843 740 ; C 78 ; WX 740 ; N N ; B 75 0 664 740 ; C 79 ; WX 869 ; N O ; B 43 -13 826 753 ; C 80 ; WX 592 ; N P ; B 75 0 564 740 ; C 81 ; WX 871 ; N Q ; B 40 -13 837 753 ; C 82 ; WX 607 ; N R ; B 70 0 572 740 ; C 83 ; WX 498 ; N S ; B 22 -13 473 753 ; C 84 ; WX 426 ; N T ; B 6 0 419 740 ; C 85 ; WX 655 ; N U ; B 75 -13 579 740 ; C 86 ; WX 702 ; N V ; B 8 0 693 740 ; C 87 ; WX 960 ; N W ; B 11 0 950 740 ; C 88 ; WX 609 ; N X ; B 8 0 602 740 ; C 89 ; WX 592 ; N Y ; B 1 0 592 740 ; C 90 ; WX 480 ; N Z ; B 12 0 470 740 ; C 91 ; WX 351 ; N bracketleft ; B 133 -179 337 753 ; C 92 ; WX 605 ; N backslash ; B 118 -100 477 740 ; C 93 ; WX 351 ; N bracketright ; B 14 -179 218 753 ; C 94 ; WX 606 ; N asciicircum ; B 53 307 553 740 ; C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; C 96 ; WX 351 ; N quoteleft ; B 95 546 257 740 ; C 97 ; WX 683 ; N a ; B 42 -13 621 561 ; C 98 ; WX 682 ; N b ; B 68 -13 647 740 ; C 99 ; WX 647 ; N c ; B 41 -13 607 561 ; C 100 ; WX 685 ; N d ; B 39 -13 618 740 ; C 101 ; WX 650 ; N e ; B 38 -13 608 561 ; C 102 ; WX 314 ; N f ; B 19 0 314 753 ; L i fi ; L l fl ; C 103 ; WX 673 ; N g ; B 37 -215 606 561 ; C 104 ; WX 610 ; N h ; B 62 0 543 740 ; C 105 ; WX 200 ; N i ; B 65 0 135 740 ; C 106 ; WX 203 ; N j ; B -44 -192 137 740 ; C 107 ; WX 502 ; N k ; B 70 0 498 740 ; C 108 ; WX 200 ; N l ; B 65 0 135 740 ; C 109 ; WX 938 ; N m ; B 66 0 872 561 ; C 110 ; WX 610 ; N n ; B 65 0 546 561 ; C 111 ; WX 655 ; N o ; B 42 -13 614 561 ; C 112 ; WX 682 ; N p ; B 64 -192 643 561 ; C 113 ; WX 682 ; N q ; B 37 -192 616 561 ; C 114 ; WX 301 ; N r ; B 65 0 291 561 ; C 115 ; WX 388 ; N s ; B 24 -13 364 561 ; C 116 ; WX 339 ; N t ; B 14 0 330 740 ; C 117 ; WX 608 ; N u ; B 62 -13 541 547 ; C 118 ; WX 554 ; N v ; B 7 0 546 547 ; C 119 ; WX 831 ; N w ; B 13 0 820 547 ; C 120 ; WX 480 ; N x ; B 12 0 468 547 ; C 121 ; WX 536 ; N y ; B 15 -192 523 547 ; C 122 ; WX 425 ; N z ; B 10 0 415 547 ; C 123 ; WX 351 ; N braceleft ; B 70 -189 331 740 ; C 124 ; WX 672 ; N bar ; B 299 -222 373 778 ; C 125 ; WX 351 ; N braceright ; B 20 -189 281 740 ; C 126 ; WX 606 ; N asciitilde ; B 72 179 534 319 ; C 161 ; WX 295 ; N exclamdown ; B 110 -192 184 548 ; C 162 ; WX 554 ; N cent ; B 48 62 510 707 ; C 163 ; WX 554 ; N sterling ; B 4 0 552 753 ; C 164 ; WX 166 ; N fraction ; B -113 0 280 740 ; C 165 ; WX 554 ; N yen ; B 4 0 550 740 ; C 166 ; WX 554 ; N florin ; B -12 -153 518 818 ; C 167 ; WX 615 ; N section ; B 85 -141 529 753 ; C 168 ; WX 554 ; N currency ; B 8 42 546 580 ; C 169 ; WX 198 ; N quotesingle ; B 59 444 140 740 ; C 170 ; WX 502 ; N quotedblleft ; B 97 546 406 740 ; C 171 ; WX 425 ; N guillemotleft ; B 40 81 386 481 ; C 172 ; WX 251 ; N guilsinglleft ; B 40 81 212 481 ; C 173 ; WX 251 ; N guilsinglright ; B 39 81 211 481 ; C 174 ; WX 487 ; N fi ; B 19 0 422 753 ; C 175 ; WX 485 ; N fl ; B 19 0 420 753 ; C 177 ; WX 500 ; N endash ; B 35 248 465 315 ; C 178 ; WX 553 ; N dagger ; B 59 -133 493 740 ; C 179 ; WX 553 ; N daggerdbl ; B 59 -133 493 740 ; C 180 ; WX 277 ; N periodcentered ; B 102 190 176 316 ; C 182 ; WX 564 ; N paragraph ; B 22 -110 551 740 ; C 183 ; WX 606 ; N bullet ; B 150 222 455 532 ; C 184 ; WX 354 ; N quotesinglbase ; B 89 -68 251 126 ; C 185 ; WX 502 ; N quotedblbase ; B 89 -68 399 126 ; C 186 ; WX 484 ; N quotedblright ; B 96 546 405 740 ; C 187 ; WX 425 ; N guillemotright ; B 39 81 385 481 ; C 188 ; WX 1000 ; N ellipsis ; B 130 0 870 126 ; C 189 ; WX 1174 ; N perthousand ; B 25 -13 1148 751 ; C 191 ; WX 591 ; N questiondown ; B 65 -205 527 548 ; C 193 ; WX 378 ; N grave ; B 69 619 300 786 ; C 194 ; WX 375 ; N acute ; B 78 619 309 786 ; C 195 ; WX 502 ; N circumflex ; B 74 639 428 764 ; C 196 ; WX 439 ; N tilde ; B 47 651 392 754 ; C 197 ; WX 485 ; N macron ; B 73 669 411 736 ; C 198 ; WX 453 ; N breve ; B 52 651 401 754 ; C 199 ; WX 222 ; N dotaccent ; B 74 639 148 765 ; C 200 ; WX 369 ; N dieresis ; B 73 639 295 765 ; C 202 ; WX 332 ; N ring ; B 62 600 269 807 ; C 203 ; WX 324 ; N cedilla ; B 79 -222 254 3 ; C 205 ; WX 552 ; N hungarumlaut ; B 109 605 486 786 ; C 206 ; WX 302 ; N ogonek ; B 73 -191 228 0 ; C 207 ; WX 502 ; N caron ; B 68 639 423 764 ; C 208 ; WX 1000 ; N emdash ; B 35 248 965 315 ; C 225 ; WX 992 ; N AE ; B -20 0 907 740 ; C 227 ; WX 369 ; N ordfeminine ; B -3 407 356 753 ; C 232 ; WX 517 ; N Lslash ; B 59 0 517 740 ; C 233 ; WX 868 ; N Oslash ; B 43 -83 826 819 ; C 234 ; WX 1194 ; N OE ; B 45 -13 1142 753 ; C 235 ; WX 369 ; N ordmasculine ; B 12 407 356 753 ; C 241 ; WX 1157 ; N ae ; B 34 -13 1113 561 ; C 245 ; WX 200 ; N dotlessi ; B 65 0 135 547 ; C 248 ; WX 300 ; N lslash ; B 43 0 259 740 ; C 249 ; WX 653 ; N oslash ; B 41 -64 613 614 ; C 250 ; WX 1137 ; N oe ; B 34 -13 1104 561 ; C 251 ; WX 554 ; N germandbls ; B 61 -13 525 753 ; C -1 ; WX 226 ; N Idieresis ; B 2 0 224 928 ; C -1 ; WX 650 ; N eacute ; B 38 -13 608 786 ; C -1 ; WX 683 ; N abreve ; B 42 -13 621 754 ; C -1 ; WX 608 ; N uhungarumlaut ; B 62 -13 541 786 ; C -1 ; WX 650 ; N ecaron ; B 38 -13 608 764 ; C -1 ; WX 592 ; N Ydieresis ; B 1 0 592 928 ; C -1 ; WX 606 ; N divide ; B 51 -13 555 519 ; C -1 ; WX 592 ; N Yacute ; B 1 0 592 949 ; C -1 ; WX 740 ; N Acircumflex ; B 12 0 729 927 ; C -1 ; WX 683 ; N aacute ; B 42 -13 621 786 ; C -1 ; WX 655 ; N Ucircumflex ; B 75 -13 579 927 ; C -1 ; WX 536 ; N yacute ; B 15 -192 523 786 ; C -1 ; WX 388 ; N scommaaccent ; B 24 -222 364 561 ; C -1 ; WX 650 ; N ecircumflex ; B 38 -13 608 764 ; C -1 ; WX 655 ; N Uring ; B 75 -13 579 955 ; C -1 ; WX 655 ; N Udieresis ; B 75 -13 579 928 ; C -1 ; WX 683 ; N aogonek ; B 42 -191 634 561 ; C -1 ; WX 655 ; N Uacute ; B 75 -13 579 949 ; C -1 ; WX 608 ; N uogonek ; B 62 -191 558 547 ; C -1 ; WX 536 ; N Edieresis ; B 70 0 475 928 ; C -1 ; WX 790 ; N Dcroat ; B 40 0 739 740 ; C -1 ; WX 250 ; N commaaccent ; B 23 -222 169 -54 ; C -1 ; WX 747 ; N copyright ; B -9 -12 755 752 ; C -1 ; WX 536 ; N Emacron ; B 70 0 475 899 ; C -1 ; WX 647 ; N ccaron ; B 41 -13 607 764 ; C -1 ; WX 683 ; N aring ; B 42 -13 621 807 ; C -1 ; WX 740 ; N Ncommaaccent ; B 75 -202 664 740 ; C -1 ; WX 200 ; N lacute ; B 20 0 251 949 ; C -1 ; WX 683 ; N agrave ; B 42 -13 621 786 ; C -1 ; WX 426 ; N Tcommaaccent ; B 6 -222 419 740 ; C -1 ; WX 813 ; N Cacute ; B 43 -13 771 949 ; C -1 ; WX 683 ; N atilde ; B 42 -13 621 754 ; C -1 ; WX 536 ; N Edotaccent ; B 70 0 475 928 ; C -1 ; WX 388 ; N scaron ; B 11 -13 366 764 ; C -1 ; WX 388 ; N scedilla ; B 24 -222 364 561 ; C -1 ; WX 200 ; N iacute ; B 30 0 261 786 ; C -1 ; WX 471 ; N lozenge ; B 15 0 457 719 ; C -1 ; WX 607 ; N Rcaron ; B 70 0 572 927 ; C -1 ; WX 872 ; N Gcommaaccent ; B 40 -222 828 753 ; C -1 ; WX 608 ; N ucircumflex ; B 62 -13 541 764 ; C -1 ; WX 683 ; N acircumflex ; B 42 -13 621 764 ; C -1 ; WX 740 ; N Amacron ; B 12 0 729 899 ; C -1 ; WX 301 ; N rcaron ; B -3 0 352 764 ; C -1 ; WX 647 ; N ccedilla ; B 41 -222 607 561 ; C -1 ; WX 480 ; N Zdotaccent ; B 12 0 470 928 ; C -1 ; WX 592 ; N Thorn ; B 60 0 549 740 ; C -1 ; WX 869 ; N Omacron ; B 43 -13 826 899 ; C -1 ; WX 607 ; N Racute ; B 70 0 572 949 ; C -1 ; WX 498 ; N Sacute ; B 22 -13 473 949 ; C -1 ; WX 755 ; N dcaron ; B 39 -13 792 740 ; C -1 ; WX 655 ; N Umacron ; B 75 -13 579 899 ; C -1 ; WX 608 ; N uring ; B 62 -13 541 807 ; C -1 ; WX 332 ; N threesuperior ; B 18 289 318 747 ; C -1 ; WX 869 ; N Ograve ; B 43 -13 826 949 ; C -1 ; WX 740 ; N Agrave ; B 12 0 729 949 ; C -1 ; WX 740 ; N Abreve ; B 12 0 729 917 ; C -1 ; WX 606 ; N multiply ; B 74 24 533 482 ; C -1 ; WX 608 ; N uacute ; B 62 -13 541 786 ; C -1 ; WX 426 ; N Tcaron ; B 6 0 419 927 ; C -1 ; WX 476 ; N partialdiff ; B 22 -38 454 704 ; C -1 ; WX 536 ; N ydieresis ; B 15 -192 523 765 ; C -1 ; WX 740 ; N Nacute ; B 75 0 664 949 ; C -1 ; WX 200 ; N icircumflex ; B -77 0 277 764 ; C -1 ; WX 536 ; N Ecircumflex ; B 70 0 475 927 ; C -1 ; WX 683 ; N adieresis ; B 42 -13 621 765 ; C -1 ; WX 650 ; N edieresis ; B 38 -13 608 765 ; C -1 ; WX 647 ; N cacute ; B 41 -13 607 786 ; C -1 ; WX 610 ; N nacute ; B 65 0 546 786 ; C -1 ; WX 608 ; N umacron ; B 62 -13 541 736 ; C -1 ; WX 740 ; N Ncaron ; B 75 0 664 927 ; C -1 ; WX 226 ; N Iacute ; B 43 0 274 949 ; C -1 ; WX 606 ; N plusminus ; B 51 -24 555 518 ; C -1 ; WX 672 ; N brokenbar ; B 299 -147 373 703 ; C -1 ; WX 747 ; N registered ; B -9 -12 755 752 ; C -1 ; WX 872 ; N Gbreve ; B 40 -13 828 917 ; C -1 ; WX 226 ; N Idotaccent ; B 76 0 150 928 ; C -1 ; WX 600 ; N summation ; B 15 -10 586 706 ; C -1 ; WX 536 ; N Egrave ; B 70 0 475 949 ; C -1 ; WX 301 ; N racute ; B 65 0 332 786 ; C -1 ; WX 655 ; N omacron ; B 42 -13 614 736 ; C -1 ; WX 480 ; N Zacute ; B 12 0 470 949 ; C -1 ; WX 480 ; N Zcaron ; B 12 0 470 927 ; C -1 ; WX 549 ; N greaterequal ; B 26 0 523 658 ; C -1 ; WX 790 ; N Eth ; B 40 0 739 740 ; C -1 ; WX 813 ; N Ccedilla ; B 43 -222 771 752 ; C -1 ; WX 200 ; N lcommaaccent ; B -2 -222 144 740 ; C -1 ; WX 359 ; N tcaron ; B 14 0 394 780 ; C -1 ; WX 650 ; N eogonek ; B 38 -191 608 561 ; C -1 ; WX 655 ; N Uogonek ; B 75 -191 579 740 ; C -1 ; WX 740 ; N Aacute ; B 12 0 729 949 ; C -1 ; WX 740 ; N Adieresis ; B 12 0 729 928 ; C -1 ; WX 650 ; N egrave ; B 38 -13 608 786 ; C -1 ; WX 425 ; N zacute ; B 10 0 415 786 ; C -1 ; WX 200 ; N iogonek ; B 11 -191 166 740 ; C -1 ; WX 869 ; N Oacute ; B 43 -13 826 949 ; C -1 ; WX 655 ; N oacute ; B 42 -13 614 786 ; C -1 ; WX 683 ; N amacron ; B 42 -13 621 736 ; C -1 ; WX 388 ; N sacute ; B 24 -13 364 786 ; C -1 ; WX 200 ; N idieresis ; B -11 0 211 765 ; C -1 ; WX 869 ; N Ocircumflex ; B 43 -13 826 927 ; C -1 ; WX 655 ; N Ugrave ; B 75 -13 579 949 ; C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; C -1 ; WX 682 ; N thorn ; B 64 -192 643 740 ; C -1 ; WX 332 ; N twosuperior ; B 19 296 318 747 ; C -1 ; WX 869 ; N Odieresis ; B 43 -13 826 928 ; C -1 ; WX 608 ; N mu ; B 80 -184 527 547 ; C -1 ; WX 200 ; N igrave ; B -60 0 171 786 ; C -1 ; WX 655 ; N ohungarumlaut ; B 42 -13 614 786 ; C -1 ; WX 536 ; N Eogonek ; B 70 -191 475 740 ; C -1 ; WX 685 ; N dcroat ; B 39 -13 680 740 ; C -1 ; WX 831 ; N threequarters ; B 46 0 784 747 ; C -1 ; WX 498 ; N Scedilla ; B 22 -222 473 753 ; C -1 ; WX 260 ; N lcaron ; B 65 0 309 740 ; C -1 ; WX 591 ; N Kcommaaccent ; B 81 -202 591 740 ; C -1 ; WX 462 ; N Lacute ; B 82 0 462 949 ; C -1 ; WX 1000 ; N trademark ; B 9 296 816 740 ; C -1 ; WX 650 ; N edotaccent ; B 38 -13 608 765 ; C -1 ; WX 226 ; N Igrave ; B -47 0 184 949 ; C -1 ; WX 226 ; N Imacron ; B -31 0 256 899 ; C -1 ; WX 462 ; N Lcaron ; B 82 0 462 740 ; C -1 ; WX 831 ; N onehalf ; B 81 0 750 740 ; C -1 ; WX 549 ; N lessequal ; B 26 0 523 658 ; C -1 ; WX 655 ; N ocircumflex ; B 42 -13 614 764 ; C -1 ; WX 610 ; N ntilde ; B 65 0 546 754 ; C -1 ; WX 655 ; N Uhungarumlaut ; B 75 -13 579 949 ; C -1 ; WX 536 ; N Eacute ; B 70 0 475 949 ; C -1 ; WX 650 ; N emacron ; B 38 -13 608 736 ; C -1 ; WX 673 ; N gbreve ; B 37 -215 606 754 ; C -1 ; WX 831 ; N onequarter ; B 100 0 729 740 ; C -1 ; WX 498 ; N Scaron ; B 22 -13 473 927 ; C -1 ; WX 498 ; N Scommaaccent ; B 22 -222 473 753 ; C -1 ; WX 869 ; N Ohungarumlaut ; B 43 -13 826 949 ; C -1 ; WX 400 ; N degree ; B 56 421 344 709 ; C -1 ; WX 655 ; N ograve ; B 42 -13 614 786 ; C -1 ; WX 813 ; N Ccaron ; B 43 -13 771 927 ; C -1 ; WX 608 ; N ugrave ; B 62 -13 541 786 ; C -1 ; WX 453 ; N radical ; B 7 -58 447 756 ; C -1 ; WX 744 ; N Dcaron ; B 74 0 699 927 ; C -1 ; WX 301 ; N rcommaaccent ; B 8 -222 291 561 ; C -1 ; WX 740 ; N Ntilde ; B 75 0 664 917 ; C -1 ; WX 655 ; N otilde ; B 42 -13 614 754 ; C -1 ; WX 607 ; N Rcommaaccent ; B 70 -202 572 740 ; C -1 ; WX 462 ; N Lcommaaccent ; B 82 -222 462 740 ; C -1 ; WX 740 ; N Atilde ; B 12 0 729 917 ; C -1 ; WX 740 ; N Aogonek ; B 12 -191 751 740 ; C -1 ; WX 740 ; N Aring ; B 12 0 729 955 ; C -1 ; WX 869 ; N Otilde ; B 43 -13 826 917 ; C -1 ; WX 425 ; N zdotaccent ; B 10 0 415 765 ; C -1 ; WX 536 ; N Ecaron ; B 70 0 475 927 ; C -1 ; WX 226 ; N Iogonek ; B 21 -191 176 740 ; C -1 ; WX 502 ; N kcommaaccent ; B 70 -202 498 740 ; C -1 ; WX 606 ; N minus ; B 51 219 555 287 ; C -1 ; WX 226 ; N Icircumflex ; B -64 0 290 927 ; C -1 ; WX 610 ; N ncaron ; B 65 0 546 764 ; C -1 ; WX 339 ; N tcommaaccent ; B 14 -222 330 740 ; C -1 ; WX 606 ; N logicalnot ; B 51 109 555 388 ; C -1 ; WX 655 ; N odieresis ; B 42 -13 614 765 ; C -1 ; WX 608 ; N udieresis ; B 62 -13 541 765 ; C -1 ; WX 549 ; N notequal ; B 12 -29 537 541 ; C -1 ; WX 673 ; N gcommaaccent ; B 37 -215 606 786 ; C -1 ; WX 655 ; N eth ; B 42 -12 614 753 ; C -1 ; WX 425 ; N zcaron ; B 10 0 415 764 ; C -1 ; WX 610 ; N ncommaaccent ; B 65 -202 546 561 ; C -1 ; WX 332 ; N onesuperior ; B 63 296 198 740 ; C -1 ; WX 200 ; N imacron ; B -44 0 243 736 ; C -1 ; WX 554 ; N Euro ; B -32 -13 573 752 ; C -1 ; WX 813 ; N Ccircumflex ; B 44 -13 770 965 ; C -1 ; WX 647 ; N ccircumflex ; B 42 -13 608 773 ; C -1 ; WX 813 ; N Cdotaccent ; B 44 -13 770 965 ; C -1 ; WX 647 ; N cdotaccent ; B 42 -13 608 773 ; C -1 ; WX 536 ; N Ebreve ; B 76 0 480 959 ; C -1 ; WX 650 ; N ebreve ; B 42 -13 611 767 ; C -1 ; WX 872 ; N Gcircumflex ; B 44 -13 831 965 ; C -1 ; WX 673 ; N gcircumflex ; B 42 -215 610 773 ; C -1 ; WX 872 ; N Gdotaccent ; B 44 -13 831 965 ; C -1 ; WX 673 ; N gdotaccent ; B 42 -215 610 773 ; C -1 ; WX 683 ; N Hcircumflex ; B 76 0 607 965 ; C -1 ; WX 610 ; N hcircumflex ; B 63 0 547 965 ; C -1 ; WX 683 ; N Hbar ; B 12 0 674 739 ; C -1 ; WX 610 ; N hbar ; B 9 0 546 739 ; C -1 ; WX 226 ; N Itilde ; B -32 0 258 934 ; C -1 ; WX 200 ; N itilde ; B -45 0 245 742 ; C -1 ; WX 226 ; N Ibreve ; B -39 0 265 959 ; C -1 ; WX 200 ; N ibreve ; B -52 0 252 767 ; C -1 ; WX 686 ; N IJ ; B 76 -14 606 739 ; C -1 ; WX 330 ; N ij ; B 63 -192 266 739 ; C -1 ; WX 482 ; N Jcircumflex ; B 11 -14 546 965 ; C -1 ; WX 203 ; N jcircumflex ; B -74 -192 280 777 ; C -1 ; WX 502 ; N kgreenlandic ; B 63 0 497 547 ; C -1 ; WX 462 ; N Ldot ; B 76 0 456 739 ; C -1 ; WX 320 ; N ldot ; B 63 0 285 739 ; C -1 ; WX 610 ; N napostrophe ; B 63 0 547 749 ; C -1 ; WX 740 ; N Eng ; B 76 -200 664 739 ; C -1 ; WX 610 ; N eng ; B 63 -201 547 560 ; C -1 ; WX 869 ; N Obreve ; B 44 -13 825 959 ; C -1 ; WX 655 ; N obreve ; B 42 -13 613 767 ; C -1 ; WX 498 ; N Scircumflex ; B 22 -13 476 965 ; C -1 ; WX 388 ; N scircumflex ; B 18 -13 407 773 ; C -1 ; WX 426 ; N Tbar ; B 7 0 419 739 ; C -1 ; WX 339 ; N tbar ; B 12 0 327 739 ; C -1 ; WX 426 ; N Tcedilla ; B 6 -222 419 740 ; C -1 ; WX 339 ; N tcedilla ; B 14 -222 330 740 ; C -1 ; WX 655 ; N Utilde ; B 76 -13 579 934 ; C -1 ; WX 608 ; N utilde ; B 63 -13 545 742 ; C -1 ; WX 655 ; N Ubreve ; B 76 -13 579 959 ; C -1 ; WX 608 ; N ubreve ; B 63 -13 545 767 ; C -1 ; WX 960 ; N Wcircumflex ; B 10 0 950 965 ; C -1 ; WX 831 ; N wcircumflex ; B 7 0 824 773 ; C -1 ; WX 592 ; N Ycircumflex ; B 2 0 590 965 ; C -1 ; WX 536 ; N ycircumflex ; B 9 -192 527 773 ; C -1 ; WX 314 ; N longs ; B 16 0 311 739 ; C -1 ; WX 768 ; N infinity ; B 42 130 720 520 ; EndCharMetrics StartKernData StartKernPairs 922 KPX A T -81 KPX A Tcaron -81 KPX A Tcommaaccent -81 KPX A V -122 KPX A W -95 KPX A Y -122 KPX A Yacute -122 KPX A Ydieresis -122 KPX A v -73 KPX A w -65 KPX A y -72 KPX A yacute -72 KPX A ydieresis -72 KPX Aacute T -81 KPX Aacute Tcaron -81 KPX Aacute Tcommaaccent -81 KPX Aacute V -122 KPX Aacute W -95 KPX Aacute Y -122 KPX Aacute Yacute -122 KPX Aacute Ydieresis -122 KPX Aacute v -73 KPX Aacute w -65 KPX Aacute y -72 KPX Aacute yacute -72 KPX Aacute ydieresis -72 KPX Abreve T -81 KPX Abreve Tcaron -81 KPX Abreve Tcommaaccent -81 KPX Abreve V -122 KPX Abreve W -95 KPX Abreve Y -122 KPX Abreve Yacute -122 KPX Abreve Ydieresis -122 KPX Abreve v -73 KPX Abreve w -65 KPX Abreve y -72 KPX Abreve yacute -72 KPX Abreve ydieresis -72 KPX Acircumflex T -81 KPX Acircumflex Tcaron -81 KPX Acircumflex Tcommaaccent -81 KPX Acircumflex V -122 KPX Acircumflex W -95 KPX Acircumflex Y -122 KPX Acircumflex Yacute -122 KPX Acircumflex Ydieresis -122 KPX Acircumflex v -73 KPX Acircumflex w -65 KPX Acircumflex y -72 KPX Acircumflex yacute -72 KPX Acircumflex ydieresis -72 KPX Adieresis T -81 KPX Adieresis Tcaron -81 KPX Adieresis Tcommaaccent -81 KPX Adieresis V -122 KPX Adieresis W -95 KPX Adieresis Y -122 KPX Adieresis Yacute -122 KPX Adieresis Ydieresis -122 KPX Adieresis v -73 KPX Adieresis w -65 KPX Adieresis y -72 KPX Adieresis yacute -72 KPX Adieresis ydieresis -72 KPX Agrave T -81 KPX Agrave Tcaron -81 KPX Agrave Tcommaaccent -81 KPX Agrave V -122 KPX Agrave W -95 KPX Agrave Y -122 KPX Agrave Yacute -122 KPX Agrave Ydieresis -122 KPX Agrave v -73 KPX Agrave w -65 KPX Agrave y -72 KPX Agrave yacute -72 KPX Agrave ydieresis -72 KPX Amacron T -81 KPX Amacron Tcaron -81 KPX Amacron Tcommaaccent -81 KPX Amacron V -122 KPX Amacron W -95 KPX Amacron Y -122 KPX Amacron Yacute -122 KPX Amacron Ydieresis -122 KPX Amacron v -73 KPX Amacron w -65 KPX Amacron y -72 KPX Amacron yacute -72 KPX Amacron ydieresis -72 KPX Aogonek T -81 KPX Aogonek Tcaron -81 KPX Aogonek Tcommaaccent -81 KPX Aogonek V -122 KPX Aogonek W -95 KPX Aogonek Y -122 KPX Aogonek Yacute -122 KPX Aogonek Ydieresis -122 KPX Aogonek v -73 KPX Aogonek w -65 KPX Aogonek y -72 KPX Aogonek yacute -72 KPX Aogonek ydieresis -72 KPX Aring T -81 KPX Aring Tcaron -81 KPX Aring Tcommaaccent -81 KPX Aring V -122 KPX Aring W -95 KPX Aring Y -122 KPX Aring Yacute -122 KPX Aring Ydieresis -122 KPX Aring v -73 KPX Aring w -65 KPX Aring y -72 KPX Aring yacute -72 KPX Aring ydieresis -72 KPX Atilde T -81 KPX Atilde Tcaron -81 KPX Atilde Tcommaaccent -81 KPX Atilde V -122 KPX Atilde W -95 KPX Atilde Y -122 KPX Atilde Yacute -122 KPX Atilde Ydieresis -122 KPX Atilde v -73 KPX Atilde w -65 KPX Atilde y -72 KPX Atilde yacute -72 KPX Atilde ydieresis -72 KPX F A -60 KPX F Aacute -60 KPX F Abreve -60 KPX F Acircumflex -60 KPX F Adieresis -60 KPX F Agrave -60 KPX F Amacron -60 KPX F Aogonek -60 KPX F Aring -60 KPX F Atilde -60 KPX F comma -122 KPX F period -79 KPX L T -46 KPX L Tcaron -46 KPX L Tcommaaccent -46 KPX L V -113 KPX L W -67 KPX L Y -91 KPX L Yacute -91 KPX L Ydieresis -91 KPX L y -23 KPX L yacute -23 KPX L ydieresis -23 KPX Lacute T -46 KPX Lacute Tcaron -46 KPX Lacute Tcommaaccent -46 KPX Lacute V -113 KPX Lacute W -67 KPX Lacute Y -91 KPX Lacute Yacute -91 KPX Lacute Ydieresis -91 KPX Lacute y -23 KPX Lacute yacute -23 KPX Lacute ydieresis -23 KPX Lcaron y -23 KPX Lcaron yacute -23 KPX Lcaron ydieresis -23 KPX Lcommaaccent T -46 KPX Lcommaaccent Tcaron -46 KPX Lcommaaccent Tcommaaccent -46 KPX Lcommaaccent V -113 KPX Lcommaaccent W -67 KPX Lcommaaccent Y -91 KPX Lcommaaccent Yacute -91 KPX Lcommaaccent Ydieresis -91 KPX Lcommaaccent y -23 KPX Lcommaaccent yacute -23 KPX Lcommaaccent ydieresis -23 KPX Lslash T -46 KPX Lslash Tcaron -46 KPX Lslash Tcommaaccent -46 KPX Lslash V -113 KPX Lslash W -67 KPX Lslash Y -91 KPX Lslash Yacute -91 KPX Lslash Ydieresis -91 KPX Lslash y -23 KPX Lslash yacute -23 KPX Lslash ydieresis -23 KPX P A -74 KPX P Aacute -74 KPX P Abreve -74 KPX P Acircumflex -74 KPX P Adieresis -74 KPX P Agrave -74 KPX P Amacron -74 KPX P Aogonek -74 KPX P Aring -74 KPX P Atilde -74 KPX P comma -123 KPX P period -91 KPX R T 6 KPX R Tcaron 6 KPX R Tcommaaccent 6 KPX R V -39 KPX R W 2 KPX R Y -20 KPX R Yacute -20 KPX R Ydieresis -20 KPX R y 32 KPX R yacute 32 KPX R ydieresis 32 KPX Racute T 6 KPX Racute Tcaron 6 KPX Racute Tcommaaccent 6 KPX Racute V -39 KPX Racute W 2 KPX Racute Y -20 KPX Racute Yacute -20 KPX Racute Ydieresis -20 KPX Racute y 32 KPX Racute yacute 32 KPX Racute ydieresis 32 KPX Rcaron T 6 KPX Rcaron Tcaron 6 KPX Rcaron Tcommaaccent 6 KPX Rcaron V -39 KPX Rcaron W 2 KPX Rcaron Y -20 KPX Rcaron Yacute -20 KPX Rcaron Ydieresis -20 KPX Rcaron y 32 KPX Rcaron yacute 32 KPX Rcaron ydieresis 32 KPX Rcommaaccent T 6 KPX Rcommaaccent Tcaron 6 KPX Rcommaaccent Tcommaaccent 6 KPX Rcommaaccent V -39 KPX Rcommaaccent W 2 KPX Rcommaaccent Y -20 KPX Rcommaaccent Yacute -20 KPX Rcommaaccent Ydieresis -20 KPX Rcommaaccent y 32 KPX Rcommaaccent yacute 32 KPX Rcommaaccent ydieresis 32 KPX T A -81 KPX T Aacute -81 KPX T Abreve -81 KPX T Acircumflex -81 KPX T Adieresis -81 KPX T Agrave -81 KPX T Amacron -81 KPX T Aogonek -81 KPX T Aring -81 KPX T Atilde -81 KPX T a -52 KPX T aacute -52 KPX T abreve -52 KPX T acircumflex -52 KPX T adieresis -52 KPX T agrave -52 KPX T amacron -52 KPX T aogonek -52 KPX T aring -52 KPX T atilde -52 KPX T c -51 KPX T cacute -51 KPX T ccaron -51 KPX T ccedilla -51 KPX T colon 3 KPX T comma -102 KPX T e -49 KPX T eacute -49 KPX T ecaron -49 KPX T ecircumflex -49 KPX T edieresis -49 KPX T edotaccent -49 KPX T egrave -49 KPX T emacron -49 KPX T eogonek -49 KPX T i 31 KPX T iacute 31 KPX T icircumflex 31 KPX T idieresis 31 KPX T igrave 31 KPX T imacron 31 KPX T iogonek 31 KPX T o -49 KPX T oacute -49 KPX T ocircumflex -49 KPX T odieresis -49 KPX T ograve -49 KPX T ohungarumlaut -49 KPX T omacron -49 KPX T oslash -49 KPX T otilde -49 KPX T period -71 KPX T r -30 KPX T racute -30 KPX T rcaron -30 KPX T rcommaaccent -30 KPX T s -23 KPX T sacute -23 KPX T scedilla -23 KPX T scommaaccent -23 KPX T semicolon -29 KPX T u -46 KPX T uacute -46 KPX T ucircumflex -46 KPX T udieresis -46 KPX T ugrave -46 KPX T uhungarumlaut -46 KPX T umacron -46 KPX T uogonek -46 KPX T uring -46 KPX T w 7 KPX T y 5 KPX T yacute 5 KPX T ydieresis 5 KPX Tcaron A -81 KPX Tcaron Aacute -81 KPX Tcaron Abreve -81 KPX Tcaron Acircumflex -81 KPX Tcaron Adieresis -81 KPX Tcaron Agrave -81 KPX Tcaron Amacron -81 KPX Tcaron Aogonek -81 KPX Tcaron Aring -81 KPX Tcaron Atilde -81 KPX Tcaron a -52 KPX Tcaron aacute -52 KPX Tcaron abreve -52 KPX Tcaron acircumflex -52 KPX Tcaron adieresis -52 KPX Tcaron agrave -52 KPX Tcaron amacron -52 KPX Tcaron aogonek -52 KPX Tcaron aring -52 KPX Tcaron atilde -52 KPX Tcaron c -51 KPX Tcaron cacute -51 KPX Tcaron ccaron -51 KPX Tcaron ccedilla -51 KPX Tcaron colon 3 KPX Tcaron comma -102 KPX Tcaron e -49 KPX Tcaron eacute -49 KPX Tcaron ecaron -49 KPX Tcaron ecircumflex -49 KPX Tcaron edieresis -49 KPX Tcaron edotaccent -49 KPX Tcaron egrave -49 KPX Tcaron emacron -49 KPX Tcaron eogonek -49 KPX Tcaron i 31 KPX Tcaron iacute 31 KPX Tcaron iogonek 31 KPX Tcaron o -49 KPX Tcaron oacute -49 KPX Tcaron ocircumflex -49 KPX Tcaron odieresis -49 KPX Tcaron ograve -49 KPX Tcaron ohungarumlaut -49 KPX Tcaron omacron -49 KPX Tcaron oslash -49 KPX Tcaron otilde -49 KPX Tcaron period -71 KPX Tcaron r -30 KPX Tcaron racute -30 KPX Tcaron rcaron -30 KPX Tcaron rcommaaccent -30 KPX Tcaron s -23 KPX Tcaron sacute -23 KPX Tcaron scaron -23 KPX Tcaron scedilla -23 KPX Tcaron scommaaccent -23 KPX Tcaron semicolon -29 KPX Tcaron u -46 KPX Tcaron uacute -46 KPX Tcaron ucircumflex -46 KPX Tcaron udieresis -46 KPX Tcaron ugrave -46 KPX Tcaron uhungarumlaut -46 KPX Tcaron umacron -46 KPX Tcaron uogonek -46 KPX Tcaron uring -46 KPX Tcaron w 7 KPX Tcaron y 5 KPX Tcaron yacute 5 KPX Tcaron ydieresis 5 KPX Tcommaaccent A -81 KPX Tcommaaccent Aacute -81 KPX Tcommaaccent Abreve -81 KPX Tcommaaccent Acircumflex -81 KPX Tcommaaccent Adieresis -81 KPX Tcommaaccent Agrave -81 KPX Tcommaaccent Amacron -81 KPX Tcommaaccent Aogonek -81 KPX Tcommaaccent Aring -81 KPX Tcommaaccent Atilde -81 KPX Tcommaaccent a -52 KPX Tcommaaccent aacute -52 KPX Tcommaaccent abreve -52 KPX Tcommaaccent acircumflex -52 KPX Tcommaaccent adieresis -52 KPX Tcommaaccent agrave -52 KPX Tcommaaccent amacron -52 KPX Tcommaaccent aogonek -52 KPX Tcommaaccent aring -52 KPX Tcommaaccent atilde -52 KPX Tcommaaccent c -51 KPX Tcommaaccent cacute -51 KPX Tcommaaccent ccaron -51 KPX Tcommaaccent ccedilla -51 KPX Tcommaaccent colon 3 KPX Tcommaaccent comma -102 KPX Tcommaaccent e -49 KPX Tcommaaccent eacute -49 KPX Tcommaaccent ecaron -49 KPX Tcommaaccent ecircumflex -49 KPX Tcommaaccent edieresis -49 KPX Tcommaaccent edotaccent -49 KPX Tcommaaccent egrave -49 KPX Tcommaaccent emacron -49 KPX Tcommaaccent eogonek -49 KPX Tcommaaccent i 31 KPX Tcommaaccent iacute 31 KPX Tcommaaccent iogonek 31 KPX Tcommaaccent o -49 KPX Tcommaaccent oacute -49 KPX Tcommaaccent ocircumflex -49 KPX Tcommaaccent odieresis -49 KPX Tcommaaccent ograve -49 KPX Tcommaaccent ohungarumlaut -49 KPX Tcommaaccent omacron -49 KPX Tcommaaccent oslash -49 KPX Tcommaaccent otilde -49 KPX Tcommaaccent period -71 KPX Tcommaaccent r -30 KPX Tcommaaccent racute -30 KPX Tcommaaccent rcaron -30 KPX Tcommaaccent rcommaaccent -30 KPX Tcommaaccent s -23 KPX Tcommaaccent sacute -23 KPX Tcommaaccent scedilla -23 KPX Tcommaaccent scommaaccent -23 KPX Tcommaaccent semicolon -29 KPX Tcommaaccent u -46 KPX Tcommaaccent uacute -46 KPX Tcommaaccent ucircumflex -46 KPX Tcommaaccent udieresis -46 KPX Tcommaaccent ugrave -46 KPX Tcommaaccent uhungarumlaut -46 KPX Tcommaaccent umacron -46 KPX Tcommaaccent uogonek -46 KPX Tcommaaccent uring -46 KPX Tcommaaccent w 7 KPX Tcommaaccent y 5 KPX Tcommaaccent yacute 5 KPX Tcommaaccent ydieresis 5 KPX V A -122 KPX V Aacute -122 KPX V Abreve -122 KPX V Acircumflex -122 KPX V Adieresis -122 KPX V Agrave -122 KPX V Amacron -122 KPX V Aogonek -122 KPX V Aring -122 KPX V Atilde -122 KPX V a -104 KPX V aacute -104 KPX V abreve -104 KPX V acircumflex -104 KPX V adieresis -104 KPX V agrave -104 KPX V amacron -104 KPX V aogonek -104 KPX V aring -104 KPX V atilde -104 KPX V colon -1 KPX V comma -106 KPX V e -101 KPX V eacute -101 KPX V ecaron -101 KPX V ecircumflex -101 KPX V edieresis -101 KPX V edotaccent -101 KPX V egrave -101 KPX V emacron -101 KPX V eogonek -101 KPX V i 5 KPX V iacute 5 KPX V iogonek 5 KPX V o -101 KPX V oacute -101 KPX V ocircumflex -101 KPX V odieresis -101 KPX V ograve -101 KPX V ohungarumlaut -101 KPX V omacron -101 KPX V oslash -101 KPX V otilde -101 KPX V period -75 KPX V r -40 KPX V racute -40 KPX V rcaron -40 KPX V rcommaaccent -40 KPX V semicolon -33 KPX V u -40 KPX V uacute -40 KPX V ucircumflex -40 KPX V udieresis -40 KPX V ugrave -40 KPX V uhungarumlaut -40 KPX V umacron -40 KPX V uogonek -40 KPX V uring -40 KPX V y -25 KPX V yacute -25 KPX V ydieresis -25 KPX W A -73 KPX W Aacute -73 KPX W Abreve -73 KPX W Acircumflex -73 KPX W Adieresis -73 KPX W Agrave -73 KPX W Amacron -73 KPX W Aogonek -73 KPX W Aring -73 KPX W Atilde -73 KPX W a -50 KPX W aacute -50 KPX W abreve -50 KPX W acircumflex -50 KPX W adieresis -50 KPX W agrave -50 KPX W amacron -50 KPX W aogonek -50 KPX W aring -50 KPX W atilde -50 KPX W colon -1 KPX W comma -106 KPX W e -47 KPX W eacute -47 KPX W ecaron -47 KPX W ecircumflex -47 KPX W edieresis -47 KPX W edotaccent -47 KPX W egrave -47 KPX W emacron -47 KPX W eogonek -47 KPX W i 6 KPX W iacute 6 KPX W icircumflex 16 KPX W idieresis 16 KPX W igrave 16 KPX W imacron 16 KPX W iogonek 6 KPX W o -46 KPX W oacute -46 KPX W ocircumflex -46 KPX W odieresis -46 KPX W ograve -46 KPX W ohungarumlaut -46 KPX W omacron -46 KPX W oslash -46 KPX W otilde -46 KPX W period -74 KPX W r -29 KPX W racute -29 KPX W rcaron -29 KPX W rcommaaccent -29 KPX W semicolon -33 KPX W u -30 KPX W uacute -30 KPX W ucircumflex -30 KPX W udieresis -30 KPX W ugrave -30 KPX W uhungarumlaut -30 KPX W umacron -30 KPX W uogonek -30 KPX W uring -30 KPX W y -2 KPX W yacute -2 KPX W ydieresis -2 KPX Y A -122 KPX Y Aacute -122 KPX Y Abreve -122 KPX Y Acircumflex -122 KPX Y Adieresis -122 KPX Y Agrave -122 KPX Y Amacron -122 KPX Y Aogonek -122 KPX Y Aring -122 KPX Y Atilde -122 KPX Y a -93 KPX Y aacute -93 KPX Y abreve -93 KPX Y acircumflex -93 KPX Y adieresis -93 KPX Y agrave -93 KPX Y amacron -93 KPX Y aogonek -93 KPX Y aring -93 KPX Y atilde -93 KPX Y colon 9 KPX Y comma -97 KPX Y e -89 KPX Y eacute -89 KPX Y ecaron -89 KPX Y ecircumflex -89 KPX Y edieresis -89 KPX Y edotaccent -89 KPX Y egrave -89 KPX Y emacron -89 KPX Y eogonek -89 KPX Y i 13 KPX Y iacute 13 KPX Y icircumflex 23 KPX Y idieresis 23 KPX Y igrave 23 KPX Y imacron 23 KPX Y iogonek 13 KPX Y o -89 KPX Y oacute -89 KPX Y ocircumflex -89 KPX Y odieresis -89 KPX Y ograve -89 KPX Y ohungarumlaut -89 KPX Y omacron -89 KPX Y oslash -89 KPX Y otilde -89 KPX Y p -67 KPX Y period -65 KPX Y q -93 KPX Y semicolon -23 KPX Y u -69 KPX Y uacute -69 KPX Y ucircumflex -69 KPX Y udieresis -69 KPX Y ugrave -69 KPX Y uhungarumlaut -69 KPX Y umacron -69 KPX Y uogonek -69 KPX Y uring -69 KPX Y v -17 KPX Yacute A -122 KPX Yacute Aacute -122 KPX Yacute Abreve -122 KPX Yacute Acircumflex -122 KPX Yacute Adieresis -122 KPX Yacute Agrave -122 KPX Yacute Amacron -122 KPX Yacute Aogonek -122 KPX Yacute Aring -122 KPX Yacute Atilde -122 KPX Yacute a -93 KPX Yacute aacute -93 KPX Yacute abreve -93 KPX Yacute acircumflex -93 KPX Yacute adieresis -93 KPX Yacute agrave -93 KPX Yacute amacron -93 KPX Yacute aogonek -93 KPX Yacute aring -93 KPX Yacute atilde -93 KPX Yacute colon 9 KPX Yacute comma -97 KPX Yacute e -89 KPX Yacute eacute -89 KPX Yacute ecaron -89 KPX Yacute ecircumflex -89 KPX Yacute edieresis -89 KPX Yacute edotaccent -89 KPX Yacute egrave -89 KPX Yacute emacron -89 KPX Yacute eogonek -89 KPX Yacute i 13 KPX Yacute iacute 13 KPX Yacute icircumflex 23 KPX Yacute idieresis 23 KPX Yacute igrave 23 KPX Yacute imacron 23 KPX Yacute iogonek 13 KPX Yacute o -89 KPX Yacute oacute -89 KPX Yacute ocircumflex -89 KPX Yacute odieresis -89 KPX Yacute ograve -89 KPX Yacute ohungarumlaut -89 KPX Yacute omacron -89 KPX Yacute oslash -89 KPX Yacute otilde -89 KPX Yacute p -67 KPX Yacute period -65 KPX Yacute q -93 KPX Yacute semicolon -23 KPX Yacute u -69 KPX Yacute uacute -69 KPX Yacute ucircumflex -69 KPX Yacute udieresis -69 KPX Yacute ugrave -69 KPX Yacute uhungarumlaut -69 KPX Yacute umacron -69 KPX Yacute uogonek -69 KPX Yacute uring -69 KPX Yacute v -17 KPX Ydieresis A -122 KPX Ydieresis Aacute -122 KPX Ydieresis Abreve -122 KPX Ydieresis Acircumflex -122 KPX Ydieresis Adieresis -122 KPX Ydieresis Agrave -122 KPX Ydieresis Amacron -122 KPX Ydieresis Aogonek -122 KPX Ydieresis Aring -122 KPX Ydieresis Atilde -122 KPX Ydieresis a -93 KPX Ydieresis aacute -93 KPX Ydieresis abreve -93 KPX Ydieresis acircumflex -93 KPX Ydieresis adieresis -93 KPX Ydieresis agrave -93 KPX Ydieresis amacron -93 KPX Ydieresis aogonek -93 KPX Ydieresis aring -93 KPX Ydieresis atilde -93 KPX Ydieresis colon 9 KPX Ydieresis comma -97 KPX Ydieresis e -89 KPX Ydieresis eacute -89 KPX Ydieresis ecaron -89 KPX Ydieresis ecircumflex -89 KPX Ydieresis edieresis -89 KPX Ydieresis edotaccent -89 KPX Ydieresis egrave -89 KPX Ydieresis emacron -89 KPX Ydieresis eogonek -89 KPX Ydieresis i 13 KPX Ydieresis iacute 13 KPX Ydieresis icircumflex 23 KPX Ydieresis idieresis 23 KPX Ydieresis igrave 23 KPX Ydieresis imacron 23 KPX Ydieresis iogonek 13 KPX Ydieresis o -89 KPX Ydieresis oacute -89 KPX Ydieresis ocircumflex -89 KPX Ydieresis odieresis -89 KPX Ydieresis ograve -89 KPX Ydieresis ohungarumlaut -89 KPX Ydieresis omacron -89 KPX Ydieresis oslash -89 KPX Ydieresis otilde -89 KPX Ydieresis p -67 KPX Ydieresis period -65 KPX Ydieresis q -93 KPX Ydieresis semicolon -23 KPX Ydieresis u -69 KPX Ydieresis uacute -69 KPX Ydieresis ucircumflex -69 KPX Ydieresis udieresis -69 KPX Ydieresis ugrave -69 KPX Ydieresis uhungarumlaut -69 KPX Ydieresis umacron -69 KPX Ydieresis uogonek -69 KPX Ydieresis uring -69 KPX Ydieresis v -17 KPX f f 3 KPX r c -7 KPX r cacute -7 KPX r ccaron -7 KPX r ccedilla -7 KPX r comma -105 KPX r d -6 KPX r dcroat -6 KPX r e -4 KPX r eacute -4 KPX r ecaron -4 KPX r ecircumflex -4 KPX r edieresis -4 KPX r edotaccent -4 KPX r egrave -4 KPX r emacron -4 KPX r eogonek -4 KPX r f 48 KPX r g 1 KPX r gbreve 1 KPX r gcommaaccent 1 KPX r h 29 KPX r m 28 KPX r n 21 KPX r nacute 21 KPX r ncaron 21 KPX r ncommaaccent 21 KPX r ntilde 21 KPX r o -4 KPX r oacute -4 KPX r ocircumflex -4 KPX r odieresis -4 KPX r ograve -4 KPX r ohungarumlaut -4 KPX r omacron -4 KPX r oslash -4 KPX r otilde -4 KPX r period -73 KPX r q -8 KPX racute c -7 KPX racute cacute -7 KPX racute ccaron -7 KPX racute ccedilla -7 KPX racute comma -105 KPX racute d -6 KPX racute dcroat -6 KPX racute e -4 KPX racute eacute -4 KPX racute ecaron -4 KPX racute ecircumflex -4 KPX racute edieresis -4 KPX racute edotaccent -4 KPX racute egrave -4 KPX racute emacron -4 KPX racute eogonek -4 KPX racute f 48 KPX racute g 1 KPX racute gbreve 1 KPX racute gcommaaccent 1 KPX racute h 29 KPX racute m 28 KPX racute n 21 KPX racute nacute 21 KPX racute ncaron 21 KPX racute ncommaaccent 21 KPX racute ntilde 21 KPX racute o -4 KPX racute oacute -4 KPX racute ocircumflex -4 KPX racute odieresis -4 KPX racute ograve -4 KPX racute ohungarumlaut -4 KPX racute omacron -4 KPX racute oslash -4 KPX racute otilde -4 KPX racute period -73 KPX racute q -8 KPX rcaron c -7 KPX rcaron cacute -7 KPX rcaron ccaron -7 KPX rcaron ccedilla -7 KPX rcaron comma -105 KPX rcaron d -6 KPX rcaron dcroat -6 KPX rcaron e -4 KPX rcaron eacute -4 KPX rcaron ecaron -4 KPX rcaron ecircumflex -4 KPX rcaron edieresis -4 KPX rcaron edotaccent -4 KPX rcaron egrave -4 KPX rcaron emacron -4 KPX rcaron eogonek -4 KPX rcaron f 48 KPX rcaron g 1 KPX rcaron gbreve 1 KPX rcaron gcommaaccent 1 KPX rcaron h 29 KPX rcaron m 28 KPX rcaron n 21 KPX rcaron nacute 21 KPX rcaron ncaron 21 KPX rcaron ncommaaccent 21 KPX rcaron ntilde 21 KPX rcaron o -4 KPX rcaron oacute -4 KPX rcaron ocircumflex -4 KPX rcaron odieresis -4 KPX rcaron ograve -4 KPX rcaron ohungarumlaut -4 KPX rcaron omacron -4 KPX rcaron oslash -4 KPX rcaron otilde -4 KPX rcaron period -73 KPX rcaron q -8 KPX rcommaaccent c -7 KPX rcommaaccent cacute -7 KPX rcommaaccent ccaron -7 KPX rcommaaccent ccedilla -7 KPX rcommaaccent comma -105 KPX rcommaaccent d -6 KPX rcommaaccent dcroat -6 KPX rcommaaccent e -4 KPX rcommaaccent eacute -4 KPX rcommaaccent ecaron -4 KPX rcommaaccent ecircumflex -4 KPX rcommaaccent edieresis -4 KPX rcommaaccent edotaccent -4 KPX rcommaaccent egrave -4 KPX rcommaaccent emacron -4 KPX rcommaaccent eogonek -4 KPX rcommaaccent f 48 KPX rcommaaccent g 1 KPX rcommaaccent gbreve 1 KPX rcommaaccent gcommaaccent 1 KPX rcommaaccent h 29 KPX rcommaaccent m 28 KPX rcommaaccent n 21 KPX rcommaaccent nacute 21 KPX rcommaaccent ncaron 21 KPX rcommaaccent ncommaaccent 21 KPX rcommaaccent ntilde 21 KPX rcommaaccent o -4 KPX rcommaaccent oacute -4 KPX rcommaaccent ocircumflex -4 KPX rcommaaccent odieresis -4 KPX rcommaaccent ograve -4 KPX rcommaaccent ohungarumlaut -4 KPX rcommaaccent omacron -4 KPX rcommaaccent oslash -4 KPX rcommaaccent otilde -4 KPX rcommaaccent period -73 KPX rcommaaccent q -8 EndKernPairs EndKernData EndFontMetrics pmw-4.27/fontmetrics/AvantGarde-Demi.afm0000644000222100022210000011103112247665016016257 0ustar ph10ph10StartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1990, 1991, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Mon Jun 23 16:39:17 1997 Comment UniqueID 43085 Comment UniqueID 43085 Comment VMusage 35038 46063 FontName AvantGarde-Demi FullName ITC Avant Garde Gothic Demi FamilyName ITC Avant Garde Gothic Weight Demi ItalicAngle 0 IsFixedPitch false FontBBox -123 -251 1222 1021 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1989, 1990, 1991, 1992, 1997 Adobe Systems Incorporated. All Rights Reserved.ITC Avant Garde Gothic is a registered trademark of International Typeface Corporation. EncodingScheme AdobeStandardEncoding CapHeight 740 XHeight 555 Ascender 740 Descender -192 StdHW 122 StdVW 133 StartCharMetrics 361 C 32 ; WX 280 ; N space ; B 0 0 0 0 ; C 33 ; WX 280 ; N exclam ; B 73 0 206 740 ; C 34 ; WX 360 ; N quotedbl ; B 19 444 341 740 ; C 35 ; WX 560 ; N numbersign ; B 29 0 525 700 ; C 36 ; WX 560 ; N dollar ; B 58 -86 501 857 ; C 37 ; WX 860 ; N percent ; B 36 -15 822 755 ; C 38 ; WX 680 ; N ampersand ; B 34 -15 665 755 ; C 39 ; WX 280 ; N quoteright ; B 72 466 205 740 ; C 40 ; WX 380 ; N parenleft ; B 74 -157 350 754 ; C 41 ; WX 380 ; N parenright ; B 37 -157 313 754 ; C 42 ; WX 440 ; N asterisk ; B 67 457 374 755 ; C 43 ; WX 600 ; N plus ; B 48 0 552 506 ; C 44 ; WX 280 ; N comma ; B 73 -141 206 133 ; C 45 ; WX 420 ; N hyphen ; B 71 230 349 348 ; C 46 ; WX 280 ; N period ; B 73 0 206 133 ; C 47 ; WX 460 ; N slash ; B 6 -100 454 740 ; C 48 ; WX 560 ; N zero ; B 32 -15 529 755 ; C 49 ; WX 560 ; N one ; B 137 0 363 740 ; C 50 ; WX 560 ; N two ; B 36 0 523 755 ; C 51 ; WX 560 ; N three ; B 28 -15 532 755 ; C 52 ; WX 560 ; N four ; B 15 0 545 740 ; C 53 ; WX 560 ; N five ; B 25 -15 535 740 ; C 54 ; WX 560 ; N six ; B 23 -15 536 739 ; C 55 ; WX 560 ; N seven ; B 62 0 498 740 ; C 56 ; WX 560 ; N eight ; B 33 -15 527 755 ; C 57 ; WX 560 ; N nine ; B 24 0 537 754 ; C 58 ; WX 280 ; N colon ; B 73 0 206 555 ; C 59 ; WX 280 ; N semicolon ; B 73 -141 206 555 ; C 60 ; WX 600 ; N less ; B 46 -8 554 514 ; C 61 ; WX 600 ; N equal ; B 48 81 552 425 ; C 62 ; WX 600 ; N greater ; B 46 -8 554 514 ; C 63 ; WX 560 ; N question ; B 38 0 491 755 ; C 64 ; WX 740 ; N at ; B 50 -12 750 712 ; C 65 ; WX 740 ; N A ; B 7 0 732 740 ; C 66 ; WX 580 ; N B ; B 70 0 551 740 ; C 67 ; WX 780 ; N C ; B 34 -15 766 755 ; C 68 ; WX 700 ; N D ; B 63 0 657 740 ; C 69 ; WX 520 ; N E ; B 61 0 459 740 ; C 70 ; WX 480 ; N F ; B 61 0 438 740 ; C 71 ; WX 840 ; N G ; B 27 -15 817 755 ; C 72 ; WX 680 ; N H ; B 71 0 610 740 ; C 73 ; WX 280 ; N I ; B 72 0 209 740 ; C 74 ; WX 480 ; N J ; B 2 -15 409 740 ; C 75 ; WX 620 ; N K ; B 89 0 620 740 ; C 76 ; WX 440 ; N L ; B 72 0 435 740 ; C 77 ; WX 900 ; N M ; B 63 0 837 740 ; C 78 ; WX 740 ; N N ; B 70 0 671 740 ; C 79 ; WX 840 ; N O ; B 33 -15 807 755 ; C 80 ; WX 560 ; N P ; B 72 0 545 740 ; C 81 ; WX 840 ; N Q ; B 32 -15 824 755 ; C 82 ; WX 580 ; N R ; B 64 0 565 740 ; C 83 ; WX 520 ; N S ; B 12 -15 493 755 ; C 84 ; WX 420 ; N T ; B 6 0 418 740 ; C 85 ; WX 640 ; N U ; B 55 -15 585 740 ; C 86 ; WX 700 ; N V ; B 8 0 695 740 ; C 87 ; WX 900 ; N W ; B 7 0 899 740 ; C 88 ; WX 680 ; N X ; B 4 0 676 740 ; C 89 ; WX 620 ; N Y ; B -2 0 622 740 ; C 90 ; WX 500 ; N Z ; B 19 0 481 740 ; C 91 ; WX 320 ; N bracketleft ; B 66 -157 284 754 ; C 92 ; WX 640 ; N backslash ; B 96 -100 544 740 ; C 93 ; WX 320 ; N bracketright ; B 36 -157 254 754 ; C 94 ; WX 600 ; N asciicircum ; B 73 375 527 740 ; C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; C 96 ; WX 280 ; N quoteleft ; B 72 466 205 740 ; C 97 ; WX 660 ; N a ; B 27 -18 613 574 ; C 98 ; WX 660 ; N b ; B 47 -18 632 740 ; C 99 ; WX 640 ; N c ; B 37 -18 610 574 ; C 100 ; WX 660 ; N d ; B 34 -18 618 740 ; C 101 ; WX 640 ; N e ; B 31 -18 610 574 ; C 102 ; WX 280 ; N f ; B 15 0 280 755 ; L i fi ; L l fl ; C 103 ; WX 660 ; N g ; B 32 -226 623 574 ; C 104 ; WX 600 ; N h ; B 54 0 546 740 ; C 105 ; WX 240 ; N i ; B 53 0 186 740 ; C 106 ; WX 260 ; N j ; B 16 -185 205 740 ; C 107 ; WX 580 ; N k ; B 80 0 571 740 ; C 108 ; WX 240 ; N l ; B 54 0 187 740 ; C 109 ; WX 940 ; N m ; B 54 0 887 574 ; C 110 ; WX 600 ; N n ; B 54 0 547 574 ; C 111 ; WX 640 ; N o ; B 25 -18 615 574 ; C 112 ; WX 660 ; N p ; B 47 -185 629 574 ; C 113 ; WX 660 ; N q ; B 31 -185 613 574 ; C 114 ; WX 320 ; N r ; B 63 0 317 574 ; C 115 ; WX 440 ; N s ; B 19 -18 421 574 ; C 116 ; WX 300 ; N t ; B 21 0 299 740 ; C 117 ; WX 600 ; N u ; B 50 -18 544 555 ; C 118 ; WX 560 ; N v ; B 3 0 556 555 ; C 119 ; WX 800 ; N w ; B 11 0 789 555 ; C 120 ; WX 560 ; N x ; B 3 0 556 555 ; C 121 ; WX 580 ; N y ; B 8 -185 571 555 ; C 122 ; WX 460 ; N z ; B 20 0 442 555 ; C 123 ; WX 340 ; N braceleft ; B -3 -191 317 747 ; C 124 ; WX 600 ; N bar ; B 233 -250 366 750 ; C 125 ; WX 340 ; N braceright ; B 23 -191 343 747 ; C 126 ; WX 600 ; N asciitilde ; B 67 160 533 347 ; C 161 ; WX 280 ; N exclamdown ; B 74 -185 207 555 ; C 162 ; WX 560 ; N cent ; B 43 39 517 715 ; C 163 ; WX 560 ; N sterling ; B -2 0 562 755 ; C 164 ; WX 160 ; N fraction ; B -123 0 282 740 ; C 165 ; WX 560 ; N yen ; B -10 0 570 740 ; C 166 ; WX 560 ; N florin ; B 0 -151 512 824 ; C 167 ; WX 560 ; N section ; B 28 -158 530 755 ; C 168 ; WX 560 ; N currency ; B 27 69 534 577 ; C 169 ; WX 220 ; N quotesingle ; B 44 444 177 740 ; C 170 ; WX 480 ; N quotedblleft ; B 70 466 410 740 ; C 171 ; WX 460 ; N guillemotleft ; B 61 108 400 469 ; C 172 ; WX 240 ; N guilsinglleft ; B 50 108 190 469 ; C 173 ; WX 240 ; N guilsinglright ; B 50 108 190 469 ; C 174 ; WX 520 ; N fi ; B 25 0 461 755 ; C 175 ; WX 520 ; N fl ; B 25 0 461 755 ; C 177 ; WX 500 ; N endash ; B 35 230 465 348 ; C 178 ; WX 560 ; N dagger ; B 51 -142 509 740 ; C 179 ; WX 560 ; N daggerdbl ; B 51 -142 509 740 ; C 180 ; WX 280 ; N periodcentered ; B 73 187 206 320 ; C 182 ; WX 600 ; N paragraph ; B -7 -103 607 740 ; C 183 ; WX 600 ; N bullet ; B 148 222 453 532 ; C 184 ; WX 280 ; N quotesinglbase ; B 72 -141 205 133 ; C 185 ; WX 480 ; N quotedblbase ; B 70 -141 410 133 ; C 186 ; WX 480 ; N quotedblright ; B 70 466 410 740 ; C 187 ; WX 460 ; N guillemotright ; B 61 108 400 469 ; C 188 ; WX 1000 ; N ellipsis ; B 100 0 899 133 ; C 189 ; WX 1280 ; N perthousand ; B 36 -15 1222 755 ; C 191 ; WX 560 ; N questiondown ; B 68 -200 521 555 ; C 193 ; WX 420 ; N grave ; B 50 624 329 851 ; C 194 ; WX 420 ; N acute ; B 89 624 368 851 ; C 195 ; WX 540 ; N circumflex ; B 71 636 470 774 ; C 196 ; WX 480 ; N tilde ; B 44 636 437 767 ; C 197 ; WX 420 ; N macron ; B 72 648 349 759 ; C 198 ; WX 480 ; N breve ; B 42 633 439 770 ; C 199 ; WX 280 ; N dotaccent ; B 74 636 207 769 ; C 200 ; WX 500 ; N dieresis ; B 78 636 422 769 ; C 202 ; WX 360 ; N ring ; B 73 619 288 834 ; C 203 ; WX 340 ; N cedilla ; B 98 -251 298 6 ; C 205 ; WX 700 ; N hungarumlaut ; B 120 610 626 849 ; C 206 ; WX 340 ; N ogonek ; B 79 -195 262 9 ; C 207 ; WX 540 ; N caron ; B 71 636 470 774 ; C 208 ; WX 1000 ; N emdash ; B 35 230 965 348 ; C 225 ; WX 900 ; N AE ; B -5 0 824 740 ; C 227 ; WX 360 ; N ordfeminine ; B 19 438 334 755 ; C 232 ; WX 480 ; N Lslash ; B 26 0 460 740 ; C 233 ; WX 840 ; N Oslash ; B 33 -71 807 814 ; C 234 ; WX 1060 ; N OE ; B 37 -15 1007 755 ; C 235 ; WX 360 ; N ordmasculine ; B 23 438 338 755 ; C 241 ; WX 1080 ; N ae ; B 29 -18 1049 574 ; C 245 ; WX 240 ; N dotlessi ; B 53 0 186 555 ; C 248 ; WX 320 ; N lslash ; B 34 0 305 740 ; C 249 ; WX 660 ; N oslash ; B 35 -50 625 608 ; C 250 ; WX 1080 ; N oe ; B 30 -18 1050 574 ; C 251 ; WX 600 ; N germandbls ; B 51 -18 585 755 ; C -1 ; WX 280 ; N Idieresis ; B -32 0 312 939 ; C -1 ; WX 640 ; N eacute ; B 31 -18 610 851 ; C -1 ; WX 660 ; N abreve ; B 27 -18 613 770 ; C -1 ; WX 600 ; N uhungarumlaut ; B 50 -18 576 849 ; C -1 ; WX 640 ; N ecaron ; B 31 -18 610 774 ; C -1 ; WX 620 ; N Ydieresis ; B -2 0 622 939 ; C -1 ; WX 600 ; N divide ; B 48 -20 552 526 ; C -1 ; WX 620 ; N Yacute ; B -2 0 622 1021 ; C -1 ; WX 740 ; N Acircumflex ; B 7 0 732 944 ; C -1 ; WX 660 ; N aacute ; B 27 -18 613 851 ; C -1 ; WX 640 ; N Ucircumflex ; B 55 -15 585 944 ; C -1 ; WX 580 ; N yacute ; B 8 -185 571 851 ; C -1 ; WX 440 ; N scommaaccent ; B 19 -229 421 574 ; C -1 ; WX 640 ; N ecircumflex ; B 31 -18 610 774 ; C -1 ; WX 640 ; N Uring ; B 55 -15 585 969 ; C -1 ; WX 640 ; N Udieresis ; B 55 -15 585 939 ; C -1 ; WX 660 ; N aogonek ; B 27 -195 613 574 ; C -1 ; WX 640 ; N Uacute ; B 55 -15 585 1021 ; C -1 ; WX 600 ; N uogonek ; B 50 -195 544 555 ; C -1 ; WX 520 ; N Edieresis ; B 61 0 459 939 ; C -1 ; WX 742 ; N Dcroat ; B 25 0 691 740 ; C -1 ; WX 351 ; N commaaccent ; B 48 -229 223 -54 ; C -1 ; WX 740 ; N copyright ; B -12 -12 752 752 ; C -1 ; WX 520 ; N Emacron ; B 61 0 459 944 ; C -1 ; WX 640 ; N ccaron ; B 37 -18 610 774 ; C -1 ; WX 660 ; N aring ; B 27 -18 613 834 ; C -1 ; WX 740 ; N Ncommaaccent ; B 70 -209 671 740 ; C -1 ; WX 240 ; N lacute ; B -1 0 278 1011 ; C -1 ; WX 660 ; N agrave ; B 27 -18 613 851 ; C -1 ; WX 420 ; N Tcommaaccent ; B 6 -229 418 740 ; C -1 ; WX 780 ; N Cacute ; B 34 -15 766 1021 ; C -1 ; WX 660 ; N atilde ; B 27 -18 613 767 ; C -1 ; WX 520 ; N Edotaccent ; B 61 0 459 954 ; C -1 ; WX 440 ; N scaron ; B 19 -18 421 774 ; C -1 ; WX 440 ; N scedilla ; B 19 -251 421 574 ; C -1 ; WX 240 ; N iacute ; B 24 0 303 851 ; C -1 ; WX 494 ; N lozenge ; B 10 0 484 745 ; C -1 ; WX 580 ; N Rcaron ; B 64 0 565 959 ; C -1 ; WX 840 ; N Gcommaaccent ; B 27 -229 817 755 ; C -1 ; WX 600 ; N ucircumflex ; B 50 -18 544 774 ; C -1 ; WX 660 ; N acircumflex ; B 27 -18 613 774 ; C -1 ; WX 740 ; N Amacron ; B 7 0 732 944 ; C -1 ; WX 320 ; N rcaron ; B -39 0 360 774 ; C -1 ; WX 640 ; N ccedilla ; B 37 -251 610 574 ; C -1 ; WX 500 ; N Zdotaccent ; B 19 0 481 954 ; C -1 ; WX 560 ; N Thorn ; B 72 0 545 740 ; C -1 ; WX 840 ; N Omacron ; B 33 -15 807 944 ; C -1 ; WX 580 ; N Racute ; B 64 0 565 1021 ; C -1 ; WX 520 ; N Sacute ; B 12 -15 493 1021 ; C -1 ; WX 800 ; N dcaron ; B 34 -18 828 740 ; C -1 ; WX 640 ; N Umacron ; B 55 -15 585 944 ; C -1 ; WX 600 ; N uring ; B 50 -18 544 834 ; C -1 ; WX 336 ; N threesuperior ; B 8 287 328 749 ; C -1 ; WX 840 ; N Ograve ; B 33 -15 807 1021 ; C -1 ; WX 740 ; N Agrave ; B 7 0 732 1021 ; C -1 ; WX 740 ; N Abreve ; B 7 0 732 955 ; C -1 ; WX 600 ; N multiply ; B 59 12 541 494 ; C -1 ; WX 600 ; N uacute ; B 50 -18 544 851 ; C -1 ; WX 420 ; N Tcaron ; B 6 0 418 959 ; C -1 ; WX 494 ; N partialdiff ; B 11 -21 494 750 ; C -1 ; WX 580 ; N ydieresis ; B 8 -185 571 769 ; C -1 ; WX 740 ; N Nacute ; B 70 0 671 1021 ; C -1 ; WX 240 ; N icircumflex ; B -79 0 320 774 ; C -1 ; WX 520 ; N Ecircumflex ; B 61 0 460 944 ; C -1 ; WX 660 ; N adieresis ; B 27 -18 613 769 ; C -1 ; WX 640 ; N edieresis ; B 31 -18 610 769 ; C -1 ; WX 640 ; N cacute ; B 37 -18 610 851 ; C -1 ; WX 600 ; N nacute ; B 54 0 547 851 ; C -1 ; WX 600 ; N umacron ; B 50 -18 544 759 ; C -1 ; WX 740 ; N Ncaron ; B 70 0 671 959 ; C -1 ; WX 280 ; N Iacute ; B 44 0 323 1021 ; C -1 ; WX 600 ; N plusminus ; B 48 -62 552 556 ; C -1 ; WX 600 ; N brokenbar ; B 233 -175 366 675 ; C -1 ; WX 740 ; N registered ; B -12 -12 752 752 ; C -1 ; WX 840 ; N Gbreve ; B 27 -15 817 955 ; C -1 ; WX 280 ; N Idotaccent ; B 72 0 209 954 ; C -1 ; WX 713 ; N summation ; B 14 -108 695 752 ; C -1 ; WX 520 ; N Egrave ; B 61 0 459 1021 ; C -1 ; WX 320 ; N racute ; B 63 0 348 851 ; C -1 ; WX 640 ; N omacron ; B 25 -18 615 759 ; C -1 ; WX 500 ; N Zacute ; B 19 0 481 1021 ; C -1 ; WX 500 ; N Zcaron ; B 19 0 481 944 ; C -1 ; WX 549 ; N greaterequal ; B 26 0 523 704 ; C -1 ; WX 742 ; N Eth ; B 25 0 691 740 ; C -1 ; WX 780 ; N Ccedilla ; B 34 -251 766 755 ; C -1 ; WX 240 ; N lcommaaccent ; B -7 -229 187 740 ; C -1 ; WX 400 ; N tcaron ; B 21 0 438 786 ; C -1 ; WX 640 ; N eogonek ; B 31 -195 610 574 ; C -1 ; WX 640 ; N Uogonek ; B 55 -195 585 740 ; C -1 ; WX 740 ; N Aacute ; B 7 0 732 1021 ; C -1 ; WX 740 ; N Adieresis ; B 7 0 732 939 ; C -1 ; WX 640 ; N egrave ; B 31 -18 610 851 ; C -1 ; WX 460 ; N zacute ; B 20 0 442 851 ; C -1 ; WX 240 ; N iogonek ; B -14 -195 186 740 ; C -1 ; WX 840 ; N Oacute ; B 33 -15 807 1021 ; C -1 ; WX 640 ; N oacute ; B 25 -18 615 851 ; C -1 ; WX 660 ; N amacron ; B 27 -18 613 759 ; C -1 ; WX 440 ; N sacute ; B 19 -18 421 851 ; C -1 ; WX 240 ; N idieresis ; B -52 0 292 769 ; C -1 ; WX 840 ; N Ocircumflex ; B 33 -15 807 944 ; C -1 ; WX 640 ; N Ugrave ; B 55 -15 585 1021 ; C -1 ; WX 612 ; N Delta ; B 2 0 612 692 ; C -1 ; WX 660 ; N thorn ; B 47 -185 629 740 ; C -1 ; WX 336 ; N twosuperior ; B 13 296 322 749 ; C -1 ; WX 840 ; N Odieresis ; B 33 -15 807 939 ; C -1 ; WX 576 ; N mu ; B 38 -187 539 555 ; C -1 ; WX 240 ; N igrave ; B -65 0 214 851 ; C -1 ; WX 640 ; N ohungarumlaut ; B 25 -18 615 849 ; C -1 ; WX 520 ; N Eogonek ; B 61 -195 459 740 ; C -1 ; WX 660 ; N dcroat ; B 34 -18 700 740 ; C -1 ; WX 840 ; N threequarters ; B 18 0 803 749 ; C -1 ; WX 520 ; N Scedilla ; B 12 -251 493 755 ; C -1 ; WX 380 ; N lcaron ; B 54 0 398 740 ; C -1 ; WX 620 ; N Kcommaaccent ; B 89 -209 620 740 ; C -1 ; WX 440 ; N Lacute ; B 72 0 435 1021 ; C -1 ; WX 1000 ; N trademark ; B 9 296 821 740 ; C -1 ; WX 640 ; N edotaccent ; B 31 -18 610 769 ; C -1 ; WX 280 ; N Igrave ; B -45 0 234 1021 ; C -1 ; WX 280 ; N Imacron ; B 2 0 279 944 ; C -1 ; WX 440 ; N Lcaron ; B 72 0 488 740 ; C -1 ; WX 840 ; N onehalf ; B 62 0 771 740 ; C -1 ; WX 549 ; N lessequal ; B 29 0 526 704 ; C -1 ; WX 640 ; N ocircumflex ; B 25 -18 615 774 ; C -1 ; WX 600 ; N ntilde ; B 54 0 547 767 ; C -1 ; WX 640 ; N Uhungarumlaut ; B 55 -15 596 1019 ; C -1 ; WX 520 ; N Eacute ; B 61 0 459 1021 ; C -1 ; WX 640 ; N emacron ; B 31 -18 610 759 ; C -1 ; WX 660 ; N gbreve ; B 32 -226 623 770 ; C -1 ; WX 840 ; N onequarter ; B 92 0 746 740 ; C -1 ; WX 520 ; N Scaron ; B 12 -15 493 944 ; C -1 ; WX 520 ; N Scommaaccent ; B 12 -229 493 755 ; C -1 ; WX 840 ; N Ohungarumlaut ; B 33 -15 807 1019 ; C -1 ; WX 400 ; N degree ; B 57 426 343 712 ; C -1 ; WX 640 ; N ograve ; B 25 -18 615 851 ; C -1 ; WX 780 ; N Ccaron ; B 34 -15 766 959 ; C -1 ; WX 600 ; N ugrave ; B 50 -18 544 851 ; C -1 ; WX 549 ; N radical ; B 10 -46 512 850 ; C -1 ; WX 700 ; N Dcaron ; B 63 0 657 959 ; C -1 ; WX 320 ; N rcommaaccent ; B -8 -229 317 574 ; C -1 ; WX 740 ; N Ntilde ; B 70 0 671 937 ; C -1 ; WX 640 ; N otilde ; B 25 -18 615 767 ; C -1 ; WX 580 ; N Rcommaaccent ; B 64 -209 565 740 ; C -1 ; WX 440 ; N Lcommaaccent ; B 72 -229 435 740 ; C -1 ; WX 740 ; N Atilde ; B 7 0 732 937 ; C -1 ; WX 740 ; N Aogonek ; B 7 -195 732 740 ; C -1 ; WX 740 ; N Aring ; B 7 0 732 969 ; C -1 ; WX 840 ; N Otilde ; B 33 -15 807 937 ; C -1 ; WX 460 ; N zdotaccent ; B 20 0 442 769 ; C -1 ; WX 520 ; N Ecaron ; B 61 0 460 959 ; C -1 ; WX 280 ; N Iogonek ; B 11 -195 209 740 ; C -1 ; WX 580 ; N kcommaaccent ; B 80 -209 571 740 ; C -1 ; WX 600 ; N minus ; B 48 193 552 313 ; C -1 ; WX 280 ; N Icircumflex ; B -59 0 340 944 ; C -1 ; WX 600 ; N ncaron ; B 54 0 547 774 ; C -1 ; WX 300 ; N tcommaaccent ; B 21 -229 299 740 ; C -1 ; WX 600 ; N logicalnot ; B 48 108 552 425 ; C -1 ; WX 640 ; N odieresis ; B 25 -18 615 769 ; C -1 ; WX 600 ; N udieresis ; B 50 -18 544 769 ; C -1 ; WX 549 ; N notequal ; B 15 -49 540 570 ; C -1 ; WX 660 ; N gcommaaccent ; B 32 -226 623 800 ; C -1 ; WX 640 ; N eth ; B 27 -18 616 754 ; C -1 ; WX 460 ; N zcaron ; B 20 0 455 774 ; C -1 ; WX 600 ; N ncommaaccent ; B 54 -209 547 574 ; C -1 ; WX 336 ; N onesuperior ; B 72 296 223 740 ; C -1 ; WX 240 ; N imacron ; B -18 0 259 759 ; C -1 ; WX 560 ; N Euro ; B -33 -11 595 750 ; C -1 ; WX 780 ; N Ccircumflex ; B 30 -13 760 950 ; C -1 ; WX 640 ; N ccircumflex ; B 30 -13 601 765 ; C -1 ; WX 780 ; N Cdotaccent ; B 30 -13 760 945 ; C -1 ; WX 640 ; N cdotaccent ; B 30 -13 601 760 ; C -1 ; WX 520 ; N Ebreve ; B 68 0 465 951 ; C -1 ; WX 640 ; N ebreve ; B 30 -13 608 766 ; C -1 ; WX 840 ; N Gcircumflex ; B 30 -13 818 950 ; C -1 ; WX 660 ; N gcircumflex ; B 30 -221 611 765 ; C -1 ; WX 840 ; N Gdotaccent ; B 30 -13 818 945 ; C -1 ; WX 660 ; N gdotaccent ; B 30 -221 611 760 ; C -1 ; WX 680 ; N Hcircumflex ; B 68 0 606 950 ; C -1 ; WX 600 ; N hcircumflex ; B 54 0 545 937 ; C -1 ; WX 680 ; N Hbar ; B 8 0 672 739 ; C -1 ; WX 600 ; N hbar ; B -16 0 545 739 ; C -1 ; WX 280 ; N Itilde ; B -29 0 302 948 ; C -1 ; WX 240 ; N itilde ; B -46 0 285 763 ; C -1 ; WX 280 ; N Ibreve ; B -28 0 302 951 ; C -1 ; WX 240 ; N ibreve ; B -45 0 285 766 ; C -1 ; WX 762 ; N IJ ; B 68 -13 687 739 ; C -1 ; WX 436 ; N ij ; B 54 -185 383 739 ; C -1 ; WX 480 ; N Jcircumflex ; B 9 -13 545 977 ; C -1 ; WX 260 ; N jcircumflex ; B -53 -185 346 768 ; C -1 ; WX 557 ; N kgreenlandic ; B 54 0 555 554 ; C -1 ; WX 440 ; N Ldot ; B 68 0 431 739 ; C -1 ; WX 520 ; N ldot ; B 54 0 445 739 ; C -1 ; WX 600 ; N napostrophe ; B 54 0 546 869 ; C -1 ; WX 740 ; N Eng ; B 68 -200 667 739 ; C -1 ; WX 600 ; N eng ; B 54 -198 546 567 ; C -1 ; WX 840 ; N Obreve ; B 30 -13 800 951 ; C -1 ; WX 640 ; N obreve ; B 30 -13 619 766 ; C -1 ; WX 520 ; N Scircumflex ; B 14 -13 493 950 ; C -1 ; WX 440 ; N scircumflex ; B 19 -13 423 765 ; C -1 ; WX 420 ; N Tbar ; B 7 0 418 739 ; C -1 ; WX 300 ; N tbar ; B 9 0 287 739 ; C -1 ; WX 420 ; N Tcedilla ; B 6 -229 418 740 ; C -1 ; WX 300 ; N tcedilla ; B 21 -229 299 740 ; C -1 ; WX 640 ; N Utilde ; B 68 -13 567 975 ; C -1 ; WX 600 ; N utilde ; B 54 -13 547 790 ; C -1 ; WX 640 ; N Ubreve ; B 68 -13 567 978 ; C -1 ; WX 600 ; N ubreve ; B 54 -13 547 793 ; C -1 ; WX 900 ; N Wcircumflex ; B 7 0 898 977 ; C -1 ; WX 800 ; N wcircumflex ; B 10 0 785 792 ; C -1 ; WX 620 ; N Ycircumflex ; B 3 0 626 977 ; C -1 ; WX 580 ; N ycircumflex ; B 6 -185 568 792 ; C -1 ; WX 280 ; N longs ; B 10 0 274 739 ; C -1 ; WX 746 ; N infinity ; B 32 108 714 513 ; EndCharMetrics StartKernData StartKernPairs 933 KPX A T -73 KPX A Tcaron -73 KPX A Tcommaaccent -73 KPX A V -127 KPX A W -96 KPX A Y -139 KPX A Yacute -139 KPX A Ydieresis -139 KPX A v -50 KPX A w -50 KPX A y -50 KPX A yacute -50 KPX A ydieresis -50 KPX Aacute T -73 KPX Aacute Tcaron -73 KPX Aacute Tcommaaccent -73 KPX Aacute V -127 KPX Aacute W -96 KPX Aacute Y -139 KPX Aacute Yacute -139 KPX Aacute Ydieresis -139 KPX Aacute v -50 KPX Aacute w -50 KPX Aacute y -50 KPX Aacute yacute -50 KPX Aacute ydieresis -50 KPX Abreve T -73 KPX Abreve Tcaron -73 KPX Abreve Tcommaaccent -73 KPX Abreve V -127 KPX Abreve W -96 KPX Abreve Y -139 KPX Abreve Yacute -139 KPX Abreve Ydieresis -139 KPX Abreve v -50 KPX Abreve w -50 KPX Abreve y -50 KPX Abreve yacute -50 KPX Abreve ydieresis -50 KPX Acircumflex T -73 KPX Acircumflex Tcaron -73 KPX Acircumflex Tcommaaccent -73 KPX Acircumflex V -127 KPX Acircumflex W -96 KPX Acircumflex Y -139 KPX Acircumflex Yacute -139 KPX Acircumflex Ydieresis -139 KPX Acircumflex v -50 KPX Acircumflex w -50 KPX Acircumflex y -50 KPX Acircumflex yacute -50 KPX Acircumflex ydieresis -50 KPX Adieresis T -73 KPX Adieresis Tcaron -73 KPX Adieresis Tcommaaccent -73 KPX Adieresis V -127 KPX Adieresis W -96 KPX Adieresis Y -139 KPX Adieresis Yacute -139 KPX Adieresis Ydieresis -139 KPX Adieresis v -50 KPX Adieresis w -50 KPX Adieresis y -50 KPX Adieresis yacute -50 KPX Adieresis ydieresis -50 KPX Agrave T -73 KPX Agrave Tcaron -73 KPX Agrave Tcommaaccent -73 KPX Agrave V -127 KPX Agrave W -96 KPX Agrave Y -139 KPX Agrave Yacute -139 KPX Agrave Ydieresis -139 KPX Agrave v -50 KPX Agrave w -50 KPX Agrave y -50 KPX Agrave yacute -50 KPX Agrave ydieresis -50 KPX Amacron T -73 KPX Amacron Tcaron -73 KPX Amacron Tcommaaccent -73 KPX Amacron V -127 KPX Amacron W -96 KPX Amacron Y -139 KPX Amacron Yacute -139 KPX Amacron Ydieresis -139 KPX Amacron v -50 KPX Amacron w -50 KPX Amacron y -50 KPX Amacron yacute -50 KPX Amacron ydieresis -50 KPX Aogonek T -73 KPX Aogonek Tcaron -73 KPX Aogonek Tcommaaccent -73 KPX Aogonek V -127 KPX Aogonek W -96 KPX Aogonek Y -139 KPX Aogonek Yacute -139 KPX Aogonek Ydieresis -139 KPX Aogonek v -50 KPX Aogonek w -50 KPX Aogonek y -50 KPX Aogonek yacute -50 KPX Aogonek ydieresis -50 KPX Aring T -73 KPX Aring Tcaron -73 KPX Aring Tcommaaccent -73 KPX Aring V -127 KPX Aring W -96 KPX Aring Y -139 KPX Aring Yacute -139 KPX Aring Ydieresis -139 KPX Aring v -50 KPX Aring w -50 KPX Aring y -50 KPX Aring yacute -50 KPX Aring ydieresis -50 KPX Atilde T -73 KPX Atilde Tcaron -73 KPX Atilde Tcommaaccent -73 KPX Atilde V -127 KPX Atilde W -96 KPX Atilde Y -139 KPX Atilde Yacute -139 KPX Atilde Ydieresis -139 KPX Atilde v -50 KPX Atilde w -50 KPX Atilde y -50 KPX Atilde yacute -50 KPX Atilde ydieresis -50 KPX F A -95 KPX F Aacute -95 KPX F Abreve -95 KPX F Acircumflex -95 KPX F Adieresis -95 KPX F Agrave -95 KPX F Amacron -95 KPX F Aogonek -95 KPX F Aring -95 KPX F Atilde -95 KPX F comma -42 KPX F period -42 KPX L T -50 KPX L Tcaron -50 KPX L Tcommaaccent -50 KPX L V -90 KPX L W -90 KPX L Y -90 KPX L Yacute -90 KPX L Ydieresis -90 KPX L y -75 KPX L yacute -75 KPX L ydieresis -75 KPX Lacute T -50 KPX Lacute Tcaron -50 KPX Lacute Tcommaaccent -50 KPX Lacute V -90 KPX Lacute W -90 KPX Lacute Y -90 KPX Lacute Yacute -90 KPX Lacute Ydieresis -90 KPX Lacute y -75 KPX Lacute yacute -75 KPX Lacute ydieresis -75 KPX Lcommaaccent T -50 KPX Lcommaaccent Tcaron -50 KPX Lcommaaccent Tcommaaccent -50 KPX Lcommaaccent V -90 KPX Lcommaaccent W -90 KPX Lcommaaccent Y -90 KPX Lcommaaccent Yacute -90 KPX Lcommaaccent Ydieresis -90 KPX Lcommaaccent y -75 KPX Lcommaaccent yacute -75 KPX Lcommaaccent ydieresis -75 KPX Lslash T -50 KPX Lslash Tcaron -50 KPX Lslash Tcommaaccent -50 KPX Lslash V -90 KPX Lslash W -90 KPX Lslash Y -90 KPX Lslash Yacute -90 KPX Lslash Ydieresis -90 KPX Lslash y -75 KPX Lslash yacute -75 KPX Lslash ydieresis -75 KPX P A -100 KPX P Aacute -100 KPX P Abreve -100 KPX P Acircumflex -100 KPX P Adieresis -100 KPX P Agrave -100 KPX P Amacron -100 KPX P Aogonek -100 KPX P Aring -100 KPX P Atilde -100 KPX P comma -16 KPX P period -16 KPX R T 16 KPX R Tcaron 16 KPX R Tcommaaccent 16 KPX R V -26 KPX R W -20 KPX R Y -20 KPX R Yacute -20 KPX R Ydieresis -20 KPX R y 31 KPX R yacute 31 KPX R ydieresis 31 KPX Racute T 16 KPX Racute Tcaron 16 KPX Racute Tcommaaccent 16 KPX Racute V -26 KPX Racute W -20 KPX Racute Y -20 KPX Racute Yacute -20 KPX Racute Ydieresis -20 KPX Racute y 31 KPX Racute yacute 31 KPX Racute ydieresis 31 KPX Rcaron T 16 KPX Rcaron Tcaron 16 KPX Rcaron Tcommaaccent 16 KPX Rcaron V -26 KPX Rcaron W -20 KPX Rcaron Y -20 KPX Rcaron Yacute -20 KPX Rcaron Ydieresis -20 KPX Rcaron y 31 KPX Rcaron yacute 31 KPX Rcaron ydieresis 31 KPX Rcommaaccent T 16 KPX Rcommaaccent Tcaron 16 KPX Rcommaaccent Tcommaaccent 16 KPX Rcommaaccent V -26 KPX Rcommaaccent W -20 KPX Rcommaaccent Y -20 KPX Rcommaaccent Yacute -20 KPX Rcommaaccent Ydieresis -20 KPX Rcommaaccent y 31 KPX Rcommaaccent yacute 31 KPX Rcommaaccent ydieresis 31 KPX T A -70 KPX T Aacute -70 KPX T Abreve -70 KPX T Acircumflex -70 KPX T Adieresis -70 KPX T Agrave -70 KPX T Amacron -70 KPX T Aogonek -70 KPX T Aring -70 KPX T Atilde -70 KPX T a -40 KPX T aacute -40 KPX T abreve -40 KPX T acircumflex -40 KPX T adieresis -40 KPX T agrave -40 KPX T amacron -40 KPX T aogonek -40 KPX T aring -40 KPX T atilde -40 KPX T c -50 KPX T cacute -50 KPX T ccaron -50 KPX T ccedilla -50 KPX T colon -12 KPX T comma 4 KPX T e -50 KPX T eacute -50 KPX T ecaron -50 KPX T ecircumflex -50 KPX T edieresis -50 KPX T edotaccent -50 KPX T egrave -50 KPX T emacron -50 KPX T eogonek -50 KPX T hyphen -10 KPX T i -5 KPX T iacute 10 KPX T icircumflex 10 KPX T idieresis 10 KPX T igrave 10 KPX T imacron 10 KPX T iogonek -5 KPX T o -50 KPX T oacute -50 KPX T ocircumflex -50 KPX T odieresis -50 KPX T ograve -50 KPX T ohungarumlaut -50 KPX T omacron -50 KPX T oslash -50 KPX T otilde -50 KPX T period 4 KPX T r -42 KPX T rcommaaccent -42 KPX T s -43 KPX T sacute -43 KPX T scedilla -43 KPX T scommaaccent -43 KPX T semicolon -12 KPX T u -56 KPX T uacute -56 KPX T ucircumflex -56 KPX T udieresis -56 KPX T ugrave -56 KPX T uhungarumlaut -56 KPX T umacron -56 KPX T uogonek -56 KPX T uring -56 KPX T w -15 KPX T y -12 KPX T yacute -12 KPX T ydieresis -12 KPX Tcaron A -70 KPX Tcaron Aacute -70 KPX Tcaron Abreve -70 KPX Tcaron Acircumflex -70 KPX Tcaron Adieresis -70 KPX Tcaron Agrave -70 KPX Tcaron Amacron -70 KPX Tcaron Aogonek -70 KPX Tcaron Aring -70 KPX Tcaron Atilde -70 KPX Tcaron a -40 KPX Tcaron aacute -40 KPX Tcaron abreve -40 KPX Tcaron acircumflex -40 KPX Tcaron adieresis -40 KPX Tcaron agrave -40 KPX Tcaron amacron -40 KPX Tcaron aogonek -40 KPX Tcaron aring -40 KPX Tcaron atilde -40 KPX Tcaron c -50 KPX Tcaron cacute -50 KPX Tcaron ccaron -50 KPX Tcaron ccedilla -50 KPX Tcaron colon -12 KPX Tcaron comma 4 KPX Tcaron e -50 KPX Tcaron eacute -50 KPX Tcaron ecaron -50 KPX Tcaron ecircumflex -50 KPX Tcaron edieresis -50 KPX Tcaron edotaccent -50 KPX Tcaron egrave -50 KPX Tcaron emacron -50 KPX Tcaron eogonek -50 KPX Tcaron hyphen -10 KPX Tcaron i -5 KPX Tcaron iacute 10 KPX Tcaron icircumflex 10 KPX Tcaron idieresis 10 KPX Tcaron igrave 10 KPX Tcaron imacron 10 KPX Tcaron iogonek -5 KPX Tcaron o -50 KPX Tcaron oacute -50 KPX Tcaron ocircumflex -50 KPX Tcaron odieresis -50 KPX Tcaron ograve -50 KPX Tcaron ohungarumlaut -50 KPX Tcaron omacron -50 KPX Tcaron oslash -50 KPX Tcaron otilde -50 KPX Tcaron period 4 KPX Tcaron r -42 KPX Tcaron racute -42 KPX Tcaron rcaron -42 KPX Tcaron rcommaaccent -42 KPX Tcaron s -43 KPX Tcaron sacute -43 KPX Tcaron scaron -43 KPX Tcaron scedilla -43 KPX Tcaron scommaaccent -43 KPX Tcaron semicolon -12 KPX Tcaron u -56 KPX Tcaron uacute -56 KPX Tcaron ucircumflex -56 KPX Tcaron udieresis -56 KPX Tcaron ugrave -56 KPX Tcaron uhungarumlaut -56 KPX Tcaron umacron -56 KPX Tcaron uogonek -56 KPX Tcaron uring -56 KPX Tcaron w -15 KPX Tcaron y -12 KPX Tcaron yacute -12 KPX Tcaron ydieresis -12 KPX Tcommaaccent A -70 KPX Tcommaaccent Aacute -70 KPX Tcommaaccent Abreve -70 KPX Tcommaaccent Acircumflex -70 KPX Tcommaaccent Adieresis -70 KPX Tcommaaccent Agrave -70 KPX Tcommaaccent Amacron -70 KPX Tcommaaccent Aogonek -70 KPX Tcommaaccent Aring -70 KPX Tcommaaccent Atilde -70 KPX Tcommaaccent a -40 KPX Tcommaaccent aacute -40 KPX Tcommaaccent abreve -40 KPX Tcommaaccent acircumflex -40 KPX Tcommaaccent adieresis -40 KPX Tcommaaccent agrave -40 KPX Tcommaaccent amacron -40 KPX Tcommaaccent aogonek -40 KPX Tcommaaccent aring -40 KPX Tcommaaccent atilde -40 KPX Tcommaaccent c -50 KPX Tcommaaccent cacute -50 KPX Tcommaaccent ccaron -50 KPX Tcommaaccent ccedilla -50 KPX Tcommaaccent colon -12 KPX Tcommaaccent comma 4 KPX Tcommaaccent e -50 KPX Tcommaaccent eacute -50 KPX Tcommaaccent ecaron -50 KPX Tcommaaccent ecircumflex -50 KPX Tcommaaccent edieresis -50 KPX Tcommaaccent edotaccent -50 KPX Tcommaaccent egrave -50 KPX Tcommaaccent emacron -50 KPX Tcommaaccent eogonek -50 KPX Tcommaaccent hyphen -10 KPX Tcommaaccent i -5 KPX Tcommaaccent iacute 10 KPX Tcommaaccent icircumflex 10 KPX Tcommaaccent idieresis 10 KPX Tcommaaccent igrave 10 KPX Tcommaaccent imacron 10 KPX Tcommaaccent iogonek -5 KPX Tcommaaccent o -50 KPX Tcommaaccent oacute -50 KPX Tcommaaccent ocircumflex -50 KPX Tcommaaccent odieresis -50 KPX Tcommaaccent ograve -50 KPX Tcommaaccent ohungarumlaut -50 KPX Tcommaaccent omacron -50 KPX Tcommaaccent oslash -50 KPX Tcommaaccent otilde -50 KPX Tcommaaccent period 4 KPX Tcommaaccent r -42 KPX Tcommaaccent racute -42 KPX Tcommaaccent rcaron -42 KPX Tcommaaccent rcommaaccent -42 KPX Tcommaaccent s -43 KPX Tcommaaccent sacute -43 KPX Tcommaaccent scaron -43 KPX Tcommaaccent scedilla -43 KPX Tcommaaccent scommaaccent -43 KPX Tcommaaccent semicolon -12 KPX Tcommaaccent u -56 KPX Tcommaaccent uacute -56 KPX Tcommaaccent ucircumflex -56 KPX Tcommaaccent udieresis -56 KPX Tcommaaccent ugrave -56 KPX Tcommaaccent uhungarumlaut -56 KPX Tcommaaccent umacron -56 KPX Tcommaaccent uogonek -56 KPX Tcommaaccent uring -56 KPX Tcommaaccent w -15 KPX Tcommaaccent y -12 KPX Tcommaaccent yacute -12 KPX Tcommaaccent ydieresis -12 KPX V A -125 KPX V Aacute -125 KPX V Abreve -125 KPX V Acircumflex -125 KPX V Adieresis -125 KPX V Agrave -125 KPX V Amacron -125 KPX V Aogonek -125 KPX V Aring -125 KPX V Atilde -125 KPX V a -80 KPX V aacute -80 KPX V abreve -80 KPX V acircumflex -80 KPX V adieresis -80 KPX V agrave -80 KPX V amacron -80 KPX V aogonek -80 KPX V aring -80 KPX V atilde -80 KPX V colon -13 KPX V comma -13 KPX V e -80 KPX V eacute -80 KPX V ecaron -80 KPX V ecircumflex -80 KPX V edieresis -80 KPX V edotaccent -80 KPX V egrave -80 KPX V emacron -80 KPX V eogonek -80 KPX V hyphen -20 KPX V i -9 KPX V iacute -9 KPX V iogonek -9 KPX V o -80 KPX V oacute -80 KPX V ocircumflex -80 KPX V odieresis -80 KPX V ograve -80 KPX V ohungarumlaut -80 KPX V omacron -80 KPX V oslash -80 KPX V otilde -80 KPX V period -13 KPX V r -40 KPX V racute -40 KPX V rcaron -40 KPX V rcommaaccent -40 KPX V semicolon -13 KPX V u -68 KPX V uacute -68 KPX V ucircumflex -68 KPX V udieresis -68 KPX V ugrave -68 KPX V uhungarumlaut -68 KPX V umacron -68 KPX V uogonek -68 KPX V uring -68 KPX V y -15 KPX V yacute -15 KPX V ydieresis -15 KPX W A -94 KPX W Aacute -94 KPX W Abreve -94 KPX W Acircumflex -94 KPX W Adieresis -94 KPX W Agrave -94 KPX W Amacron -94 KPX W Aogonek -94 KPX W Aring -94 KPX W Atilde -94 KPX W a -50 KPX W aacute -50 KPX W abreve -50 KPX W acircumflex -50 KPX W adieresis -50 KPX W agrave -50 KPX W amacron -50 KPX W aogonek -50 KPX W aring -50 KPX W atilde -50 KPX W colon -12 KPX W comma -12 KPX W e -50 KPX W eacute -50 KPX W ecaron -50 KPX W ecircumflex -50 KPX W edieresis -50 KPX W edotaccent -50 KPX W egrave -50 KPX W emacron -50 KPX W eogonek -50 KPX W hyphen -10 KPX W i -7 KPX W iacute 10 KPX W icircumflex 10 KPX W idieresis 10 KPX W igrave 10 KPX W imacron 10 KPX W iogonek -7 KPX W o -50 KPX W oacute -50 KPX W ocircumflex -50 KPX W odieresis -50 KPX W ograve -50 KPX W ohungarumlaut -50 KPX W omacron -50 KPX W oslash -50 KPX W otilde -50 KPX W period -12 KPX W r -39 KPX W racute -39 KPX W rcommaaccent -39 KPX W semicolon -12 KPX W u -40 KPX W uacute -40 KPX W ucircumflex -40 KPX W udieresis -40 KPX W ugrave -40 KPX W uhungarumlaut -40 KPX W umacron -40 KPX W uogonek -40 KPX W uring -40 KPX W y 1 KPX W yacute 1 KPX W ydieresis 1 KPX Y A -138 KPX Y Aacute -138 KPX Y Abreve -138 KPX Y Acircumflex -138 KPX Y Adieresis -138 KPX Y Agrave -138 KPX Y Amacron -138 KPX Y Aogonek -138 KPX Y Aring -138 KPX Y Atilde -138 KPX Y a -100 KPX Y aacute -100 KPX Y abreve -100 KPX Y acircumflex -100 KPX Y adieresis -100 KPX Y agrave -100 KPX Y amacron -100 KPX Y aogonek -100 KPX Y aring -100 KPX Y atilde -100 KPX Y colon -8 KPX Y comma -8 KPX Y e -100 KPX Y eacute -100 KPX Y ecaron -100 KPX Y ecircumflex -100 KPX Y edieresis -100 KPX Y edotaccent -100 KPX Y egrave -100 KPX Y emacron -100 KPX Y eogonek -100 KPX Y hyphen -60 KPX Y i -5 KPX Y iacute -5 KPX Y icircumflex 10 KPX Y idieresis 10 KPX Y igrave 10 KPX Y imacron 10 KPX Y iogonek -5 KPX Y o -100 KPX Y oacute -100 KPX Y ocircumflex -100 KPX Y odieresis -100 KPX Y ograve -100 KPX Y ohungarumlaut -100 KPX Y omacron -100 KPX Y oslash -100 KPX Y otilde -100 KPX Y p -60 KPX Y period -8 KPX Y q -100 KPX Y semicolon -8 KPX Y u -82 KPX Y uacute -82 KPX Y ucircumflex -82 KPX Y udieresis -82 KPX Y ugrave -82 KPX Y uhungarumlaut -82 KPX Y umacron -82 KPX Y uogonek -82 KPX Y uring -82 KPX Y v -25 KPX Yacute A -138 KPX Yacute Aacute -138 KPX Yacute Abreve -138 KPX Yacute Acircumflex -138 KPX Yacute Adieresis -138 KPX Yacute Agrave -138 KPX Yacute Amacron -138 KPX Yacute Aogonek -138 KPX Yacute Aring -138 KPX Yacute Atilde -138 KPX Yacute a -100 KPX Yacute aacute -100 KPX Yacute abreve -100 KPX Yacute acircumflex -100 KPX Yacute adieresis -100 KPX Yacute agrave -100 KPX Yacute amacron -100 KPX Yacute aogonek -100 KPX Yacute aring -100 KPX Yacute atilde -100 KPX Yacute colon -8 KPX Yacute comma -8 KPX Yacute e -100 KPX Yacute eacute -100 KPX Yacute ecaron -100 KPX Yacute ecircumflex -100 KPX Yacute edieresis -100 KPX Yacute edotaccent -100 KPX Yacute egrave -100 KPX Yacute emacron -100 KPX Yacute eogonek -100 KPX Yacute hyphen -60 KPX Yacute i -5 KPX Yacute iacute -5 KPX Yacute icircumflex 10 KPX Yacute idieresis 10 KPX Yacute igrave 10 KPX Yacute imacron 10 KPX Yacute iogonek -5 KPX Yacute o -100 KPX Yacute oacute -100 KPX Yacute ocircumflex -100 KPX Yacute odieresis -100 KPX Yacute ograve -100 KPX Yacute ohungarumlaut -100 KPX Yacute omacron -100 KPX Yacute oslash -100 KPX Yacute otilde -100 KPX Yacute p -60 KPX Yacute period -8 KPX Yacute q -100 KPX Yacute semicolon -8 KPX Yacute u -82 KPX Yacute uacute -82 KPX Yacute ucircumflex -82 KPX Yacute udieresis -82 KPX Yacute ugrave -82 KPX Yacute uhungarumlaut -82 KPX Yacute umacron -82 KPX Yacute uogonek -82 KPX Yacute uring -82 KPX Yacute v -25 KPX Ydieresis A -138 KPX Ydieresis Aacute -138 KPX Ydieresis Abreve -138 KPX Ydieresis Acircumflex -138 KPX Ydieresis Adieresis -138 KPX Ydieresis Agrave -138 KPX Ydieresis Amacron -138 KPX Ydieresis Aogonek -138 KPX Ydieresis Aring -138 KPX Ydieresis Atilde -138 KPX Ydieresis a -100 KPX Ydieresis aacute -100 KPX Ydieresis abreve -100 KPX Ydieresis acircumflex -100 KPX Ydieresis adieresis -100 KPX Ydieresis agrave -100 KPX Ydieresis amacron -100 KPX Ydieresis aogonek -100 KPX Ydieresis aring -100 KPX Ydieresis atilde -100 KPX Ydieresis colon -8 KPX Ydieresis comma -8 KPX Ydieresis e -100 KPX Ydieresis eacute -100 KPX Ydieresis ecaron -100 KPX Ydieresis ecircumflex -100 KPX Ydieresis edieresis -100 KPX Ydieresis edotaccent -100 KPX Ydieresis egrave -100 KPX Ydieresis emacron -100 KPX Ydieresis eogonek -100 KPX Ydieresis hyphen -60 KPX Ydieresis i -5 KPX Ydieresis iacute -5 KPX Ydieresis icircumflex 10 KPX Ydieresis idieresis 10 KPX Ydieresis igrave 10 KPX Ydieresis imacron 10 KPX Ydieresis iogonek -5 KPX Ydieresis o -100 KPX Ydieresis oacute -100 KPX Ydieresis ocircumflex -100 KPX Ydieresis odieresis -100 KPX Ydieresis ograve -100 KPX Ydieresis ohungarumlaut -100 KPX Ydieresis omacron -100 KPX Ydieresis oslash -100 KPX Ydieresis otilde -100 KPX Ydieresis p -60 KPX Ydieresis period -8 KPX Ydieresis q -100 KPX Ydieresis semicolon -8 KPX Ydieresis u -82 KPX Ydieresis uacute -82 KPX Ydieresis ucircumflex -82 KPX Ydieresis udieresis -82 KPX Ydieresis ugrave -82 KPX Ydieresis uhungarumlaut -82 KPX Ydieresis umacron -82 KPX Ydieresis uogonek -82 KPX Ydieresis uring -82 KPX Ydieresis v -25 KPX f f 38 KPX r c -27 KPX r cacute -27 KPX r ccaron -27 KPX r ccedilla -27 KPX r comma 9 KPX r d -8 KPX r dcroat -8 KPX r e -8 KPX r eacute -8 KPX r ecaron -8 KPX r ecircumflex -8 KPX r edieresis -8 KPX r edotaccent -8 KPX r egrave -8 KPX r emacron -8 KPX r eogonek -8 KPX r f 38 KPX r g -8 KPX r gbreve -8 KPX r gcommaaccent -8 KPX r hyphen -10 KPX r m 5 KPX r n 5 KPX r nacute 5 KPX r ncaron 5 KPX r ncommaaccent 5 KPX r ntilde 5 KPX r o -18 KPX r oacute -18 KPX r ocircumflex -18 KPX r odieresis -18 KPX r ograve -18 KPX r ohungarumlaut -18 KPX r omacron -18 KPX r oslash -18 KPX r otilde -18 KPX r period 9 KPX r q -18 KPX racute c -27 KPX racute cacute -27 KPX racute ccaron -27 KPX racute ccedilla -27 KPX racute comma 9 KPX racute d -8 KPX racute dcroat -8 KPX racute e -8 KPX racute eacute -8 KPX racute ecaron -8 KPX racute ecircumflex -8 KPX racute edieresis -8 KPX racute edotaccent -8 KPX racute egrave -8 KPX racute emacron -8 KPX racute eogonek -8 KPX racute f 38 KPX racute g -8 KPX racute gbreve -8 KPX racute gcommaaccent -8 KPX racute hyphen -10 KPX racute m 5 KPX racute n 5 KPX racute nacute 5 KPX racute ncaron 5 KPX racute ncommaaccent 5 KPX racute ntilde 5 KPX racute o -18 KPX racute oacute -18 KPX racute ocircumflex -18 KPX racute odieresis -18 KPX racute ograve -18 KPX racute ohungarumlaut -18 KPX racute omacron -18 KPX racute oslash -18 KPX racute otilde -18 KPX racute period 9 KPX racute q -18 KPX rcaron c -27 KPX rcaron cacute -27 KPX rcaron ccaron -27 KPX rcaron ccedilla -27 KPX rcaron comma 9 KPX rcaron d -8 KPX rcaron dcroat -8 KPX rcaron e -8 KPX rcaron eacute -8 KPX rcaron ecaron -8 KPX rcaron ecircumflex -8 KPX rcaron edieresis -8 KPX rcaron edotaccent -8 KPX rcaron egrave -8 KPX rcaron emacron -8 KPX rcaron eogonek -8 KPX rcaron f 38 KPX rcaron g -8 KPX rcaron gbreve -8 KPX rcaron gcommaaccent -8 KPX rcaron hyphen -10 KPX rcaron m 5 KPX rcaron n 5 KPX rcaron nacute 5 KPX rcaron ncaron 5 KPX rcaron ncommaaccent 5 KPX rcaron ntilde 5 KPX rcaron o -18 KPX rcaron oacute -18 KPX rcaron ocircumflex -18 KPX rcaron odieresis -18 KPX rcaron ograve -18 KPX rcaron ohungarumlaut -18 KPX rcaron omacron -18 KPX rcaron oslash -18 KPX rcaron otilde -18 KPX rcaron period 9 KPX rcaron q -18 KPX rcommaaccent c -27 KPX rcommaaccent cacute -27 KPX rcommaaccent ccaron -27 KPX rcommaaccent ccedilla -27 KPX rcommaaccent comma 9 KPX rcommaaccent d -8 KPX rcommaaccent dcroat -8 KPX rcommaaccent e -8 KPX rcommaaccent eacute -8 KPX rcommaaccent ecaron -8 KPX rcommaaccent ecircumflex -8 KPX rcommaaccent edieresis -8 KPX rcommaaccent edotaccent -8 KPX rcommaaccent egrave -8 KPX rcommaaccent emacron -8 KPX rcommaaccent eogonek -8 KPX rcommaaccent f 38 KPX rcommaaccent g -8 KPX rcommaaccent gbreve -8 KPX rcommaaccent gcommaaccent -8 KPX rcommaaccent hyphen -10 KPX rcommaaccent m 5 KPX rcommaaccent n 5 KPX rcommaaccent nacute 5 KPX rcommaaccent ncaron 5 KPX rcommaaccent ncommaaccent 5 KPX rcommaaccent ntilde 5 KPX rcommaaccent o -18 KPX rcommaaccent oacute -18 KPX rcommaaccent ocircumflex -18 KPX rcommaaccent odieresis -18 KPX rcommaaccent ograve -18 KPX rcommaaccent ohungarumlaut -18 KPX rcommaaccent omacron -18 KPX rcommaaccent oslash -18 KPX rcommaaccent otilde -18 KPX rcommaaccent period 9 KPX rcommaaccent q -18 EndKernPairs EndKernData EndFontMetrics pmw-4.27/fontmetrics/Utopia-BoldItalic.afm0000644000222100022210000005265312247665016016652 0ustar ph10ph10StartFontMetrics 2.0 Comment Copyright (c) 1989, 1991 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Fri Jan 17 15:47:44 1992 Comment UniqueID 37716 Comment VMusage 34427 41319 FontName Utopia-BoldItalic FullName Utopia Bold Italic FamilyName Utopia Weight Bold ItalicAngle -13 IsFixedPitch false FontBBox -176 -250 1262 916 UnderlinePosition -100 UnderlineThickness 50 Version 001.002 Notice Copyright (c) 1989, 1991 Adobe Systems Incorporated. All Rights Reserved.Utopia is a registered trademark of Adobe Systems Incorporated. EncodingScheme AdobeStandardEncoding CapHeight 692 XHeight 502 Ascender 742 Descender -242 StartCharMetrics 228 C 32 ; WX 210 ; N space ; B 0 0 0 0 ; C 33 ; WX 285 ; N exclam ; B 35 -12 336 707 ; C 34 ; WX 455 ; N quotedbl ; B 142 407 496 707 ; C 35 ; WX 560 ; N numbersign ; B 37 0 606 668 ; C 36 ; WX 560 ; N dollar ; B 32 -104 588 748 ; C 37 ; WX 896 ; N percent ; B 106 -31 861 702 ; C 38 ; WX 752 ; N ampersand ; B 62 -12 736 680 ; C 39 ; WX 246 ; N quoteright ; B 95 387 294 707 ; C 40 ; WX 350 ; N parenleft ; B 87 -135 438 699 ; C 41 ; WX 350 ; N parenright ; B -32 -135 319 699 ; C 42 ; WX 500 ; N asterisk ; B 121 315 528 707 ; C 43 ; WX 600 ; N plus ; B 83 0 567 490 ; C 44 ; WX 280 ; N comma ; B -9 -167 207 180 ; C 45 ; WX 392 ; N hyphen ; B 71 203 354 298 ; C 46 ; WX 280 ; N period ; B 32 -12 212 166 ; C 47 ; WX 260 ; N slash ; B -16 -15 370 707 ; C 48 ; WX 560 ; N zero ; B 57 -12 583 680 ; C 49 ; WX 560 ; N one ; B 72 0 470 680 ; C 50 ; WX 560 ; N two ; B 4 0 578 680 ; C 51 ; WX 560 ; N three ; B 21 -12 567 680 ; C 52 ; WX 560 ; N four ; B 28 0 557 668 ; C 53 ; WX 560 ; N five ; B 23 -12 593 668 ; C 54 ; WX 560 ; N six ; B 56 -12 586 680 ; C 55 ; WX 560 ; N seven ; B 112 -12 632 668 ; C 56 ; WX 560 ; N eight ; B 37 -12 584 680 ; C 57 ; WX 560 ; N nine ; B 48 -12 570 680 ; C 58 ; WX 280 ; N colon ; B 32 -12 280 490 ; C 59 ; WX 280 ; N semicolon ; B -9 -167 280 490 ; C 60 ; WX 600 ; N less ; B 66 5 544 495 ; C 61 ; WX 600 ; N equal ; B 83 103 567 397 ; C 62 ; WX 600 ; N greater ; B 86 5 564 495 ; C 63 ; WX 454 ; N question ; B 115 -12 515 707 ; C 64 ; WX 828 ; N at ; B 90 -15 842 707 ; C 65 ; WX 634 ; N A ; B -59 0 639 692 ; C 66 ; WX 680 ; N B ; B 5 0 689 692 ; C 67 ; WX 672 ; N C ; B 76 -15 742 707 ; C 68 ; WX 774 ; N D ; B 5 0 784 692 ; C 69 ; WX 622 ; N E ; B 5 0 687 692 ; C 70 ; WX 585 ; N F ; B 5 0 683 692 ; C 71 ; WX 726 ; N G ; B 76 -15 756 707 ; C 72 ; WX 800 ; N H ; B 5 0 880 692 ; C 73 ; WX 386 ; N I ; B 5 0 466 692 ; C 74 ; WX 388 ; N J ; B -50 -114 477 692 ; C 75 ; WX 688 ; N K ; B 5 -6 823 692 ; C 76 ; WX 586 ; N L ; B 5 0 591 692 ; C 77 ; WX 921 ; N M ; B 0 0 998 692 ; C 78 ; WX 741 ; N N ; B -5 0 838 692 ; C 79 ; WX 761 ; N O ; B 78 -15 768 707 ; C 80 ; WX 660 ; N P ; B 5 0 694 692 ; C 81 ; WX 761 ; N Q ; B 78 -193 768 707 ; C 82 ; WX 681 ; N R ; B 5 0 696 692 ; C 83 ; WX 551 ; N S ; B 31 -15 570 707 ; C 84 ; WX 616 ; N T ; B 91 0 722 692 ; C 85 ; WX 776 ; N U ; B 115 -15 867 692 ; C 86 ; WX 630 ; N V ; B 92 0 783 692 ; C 87 ; WX 920 ; N W ; B 80 0 1062 692 ; C 88 ; WX 630 ; N X ; B -56 0 744 692 ; C 89 ; WX 622 ; N Y ; B 92 0 765 692 ; C 90 ; WX 618 ; N Z ; B -30 0 714 692 ; C 91 ; WX 350 ; N bracketleft ; B 56 -128 428 692 ; C 92 ; WX 460 ; N backslash ; B 114 -15 425 707 ; C 93 ; WX 350 ; N bracketright ; B -22 -128 350 692 ; C 94 ; WX 600 ; N asciicircum ; B 79 215 567 668 ; C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; C 96 ; WX 246 ; N quoteleft ; B 114 399 313 719 ; C 97 ; WX 596 ; N a ; B 26 -12 612 502 ; C 98 ; WX 586 ; N b ; B 34 -12 592 742 ; C 99 ; WX 456 ; N c ; B 38 -12 498 502 ; C 100 ; WX 609 ; N d ; B 29 -12 651 742 ; C 101 ; WX 476 ; N e ; B 38 -12 497 502 ; C 102 ; WX 348 ; N f ; B -129 -242 553 742 ; L i fi ; L l fl ; C 103 ; WX 522 ; N g ; B -14 -242 609 512 ; C 104 ; WX 629 ; N h ; B 44 -12 631 742 ; C 105 ; WX 339 ; N i ; B 66 -12 357 720 ; C 106 ; WX 333 ; N j ; B -120 -242 364 720 ; C 107 ; WX 570 ; N k ; B 39 -12 604 742 ; C 108 ; WX 327 ; N l ; B 62 -12 360 742 ; C 109 ; WX 914 ; N m ; B 46 -12 917 502 ; C 110 ; WX 635 ; N n ; B 45 -12 639 502 ; C 111 ; WX 562 ; N o ; B 42 -12 556 502 ; C 112 ; WX 606 ; N p ; B 0 -242 613 502 ; C 113 ; WX 584 ; N q ; B 29 -242 604 513 ; C 114 ; WX 440 ; N r ; B 51 -12 497 502 ; C 115 ; WX 417 ; N s ; B 10 -12 432 502 ; C 116 ; WX 359 ; N t ; B 68 -12 428 641 ; C 117 ; WX 634 ; N u ; B 71 -12 643 502 ; C 118 ; WX 518 ; N v ; B 68 -12 547 502 ; C 119 ; WX 795 ; N w ; B 70 -12 826 502 ; C 120 ; WX 516 ; N x ; B -26 -12 546 502 ; C 121 ; WX 489 ; N y ; B -49 -242 532 502 ; C 122 ; WX 466 ; N z ; B -17 -12 506 490 ; C 123 ; WX 340 ; N braceleft ; B 90 -128 439 692 ; C 124 ; WX 265 ; N bar ; B 117 -250 221 750 ; C 125 ; WX 340 ; N braceright ; B -42 -128 307 692 ; C 126 ; WX 600 ; N asciitilde ; B 70 157 571 338 ; C 161 ; WX 285 ; N exclamdown ; B -13 -217 288 502 ; C 162 ; WX 560 ; N cent ; B 80 -21 611 668 ; C 163 ; WX 560 ; N sterling ; B -4 0 583 679 ; C 164 ; WX 100 ; N fraction ; B -176 -27 370 695 ; C 165 ; WX 560 ; N yen ; B 65 0 676 668 ; C 166 ; WX 560 ; N florin ; B -16 -135 635 691 ; C 167 ; WX 568 ; N section ; B 64 -115 559 707 ; C 168 ; WX 560 ; N currency ; B 60 73 578 596 ; C 169 ; WX 246 ; N quotesingle ; B 134 376 285 707 ; C 170 ; WX 455 ; N quotedblleft ; B 114 399 522 719 ; C 171 ; WX 560 ; N guillemotleft ; B 90 37 533 464 ; C 172 ; WX 360 ; N guilsinglleft ; B 90 37 333 464 ; C 173 ; WX 360 ; N guilsinglright ; B 58 37 301 464 ; C 174 ; WX 651 ; N fi ; B -129 -242 655 742 ; C 175 ; WX 652 ; N fl ; B -129 -242 685 742 ; C 177 ; WX 500 ; N endash ; B 12 209 531 292 ; C 178 ; WX 514 ; N dagger ; B 101 -125 545 707 ; C 179 ; WX 490 ; N daggerdbl ; B 32 -119 528 707 ; C 180 ; WX 280 ; N periodcentered ; B 67 161 247 339 ; C 182 ; WX 580 ; N paragraph ; B 110 -101 653 692 ; C 183 ; WX 465 ; N bullet ; B 99 174 454 529 ; C 184 ; WX 246 ; N quotesinglbase ; B -17 -153 182 167 ; C 185 ; WX 455 ; N quotedblbase ; B -17 -153 391 167 ; C 186 ; WX 455 ; N quotedblright ; B 95 387 503 707 ; C 187 ; WX 560 ; N guillemotright ; B 58 37 502 464 ; C 188 ; WX 1000 ; N ellipsis ; B 85 -12 931 166 ; C 189 ; WX 1297 ; N perthousand ; B 106 -31 1262 702 ; C 191 ; WX 454 ; N questiondown ; B -10 -217 391 502 ; C 193 ; WX 400 ; N grave ; B 109 511 381 740 ; C 194 ; WX 400 ; N acute ; B 186 511 458 740 ; C 195 ; WX 400 ; N circumflex ; B 93 520 471 747 ; C 196 ; WX 400 ; N tilde ; B 94 549 502 697 ; C 197 ; WX 400 ; N macron ; B 133 592 459 664 ; C 198 ; WX 400 ; N breve ; B 146 556 469 714 ; C 199 ; WX 402 ; N dotaccent ; B 220 561 378 710 ; C 200 ; WX 400 ; N dieresis ; B 106 561 504 710 ; C 202 ; WX 400 ; N ring ; B 166 529 423 762 ; C 203 ; WX 400 ; N cedilla ; B 85 -246 292 0 ; C 205 ; WX 400 ; N hungarumlaut ; B 158 546 482 750 ; C 206 ; WX 350 ; N ogonek ; B 38 -246 253 0 ; C 207 ; WX 400 ; N caron ; B 130 520 508 747 ; C 208 ; WX 1000 ; N emdash ; B 12 209 1031 292 ; C 225 ; WX 890 ; N AE ; B -107 0 958 692 ; C 227 ; WX 444 ; N ordfeminine ; B 62 265 482 590 ; C 232 ; WX 592 ; N Lslash ; B 11 0 597 692 ; C 233 ; WX 761 ; N Oslash ; B 77 -51 769 734 ; C 234 ; WX 1016 ; N OE ; B 76 0 1084 692 ; C 235 ; WX 412 ; N ordmasculine ; B 86 265 446 590 ; C 241 ; WX 789 ; N ae ; B 26 -12 810 509 ; C 245 ; WX 339 ; N dotlessi ; B 66 -12 343 502 ; C 248 ; WX 339 ; N lslash ; B 18 -12 420 742 ; C 249 ; WX 562 ; N oslash ; B 42 -69 556 549 ; C 250 ; WX 811 ; N oe ; B 42 -12 832 502 ; C 251 ; WX 628 ; N germandbls ; B -129 -242 692 742 ; C -1 ; WX 402 ; N onesuperior ; B 84 272 361 680 ; C -1 ; WX 600 ; N minus ; B 83 210 567 290 ; C -1 ; WX 375 ; N degree ; B 93 360 425 680 ; C -1 ; WX 562 ; N oacute ; B 42 -12 572 755 ; C -1 ; WX 761 ; N Odieresis ; B 78 -15 768 881 ; C -1 ; WX 562 ; N odieresis ; B 42 -12 585 710 ; C -1 ; WX 622 ; N Eacute ; B 5 0 687 904 ; C -1 ; WX 634 ; N ucircumflex ; B 71 -12 643 747 ; C -1 ; WX 940 ; N onequarter ; B 104 -27 849 695 ; C -1 ; WX 600 ; N logicalnot ; B 83 95 567 397 ; C -1 ; WX 622 ; N Ecircumflex ; B 5 0 687 905 ; C -1 ; WX 940 ; N onehalf ; B 90 -27 898 695 ; C -1 ; WX 761 ; N Otilde ; B 78 -15 768 876 ; C -1 ; WX 634 ; N uacute ; B 71 -12 643 740 ; C -1 ; WX 476 ; N eacute ; B 38 -12 545 755 ; C -1 ; WX 339 ; N iacute ; B 66 -12 438 740 ; C -1 ; WX 622 ; N Egrave ; B 5 0 687 904 ; C -1 ; WX 339 ; N icircumflex ; B 38 -12 416 747 ; C -1 ; WX 634 ; N mu ; B -3 -230 643 502 ; C -1 ; WX 265 ; N brokenbar ; B 117 -175 221 675 ; C -1 ; WX 600 ; N thorn ; B -6 -242 607 700 ; C -1 ; WX 634 ; N Aring ; B -59 0 639 879 ; C -1 ; WX 489 ; N yacute ; B -49 -242 553 740 ; C -1 ; WX 622 ; N Ydieresis ; B 92 0 765 881 ; C -1 ; WX 1100 ; N trademark ; B 103 277 1093 692 ; C -1 ; WX 824 ; N registered ; B 91 -15 819 707 ; C -1 ; WX 562 ; N ocircumflex ; B 42 -12 556 747 ; C -1 ; WX 634 ; N Agrave ; B -59 0 639 904 ; C -1 ; WX 551 ; N Scaron ; B 31 -15 612 916 ; C -1 ; WX 776 ; N Ugrave ; B 115 -15 867 904 ; C -1 ; WX 622 ; N Edieresis ; B 5 0 687 881 ; C -1 ; WX 776 ; N Uacute ; B 115 -15 867 904 ; C -1 ; WX 562 ; N otilde ; B 42 -12 583 697 ; C -1 ; WX 635 ; N ntilde ; B 45 -12 639 697 ; C -1 ; WX 489 ; N ydieresis ; B -49 -242 532 710 ; C -1 ; WX 634 ; N Aacute ; B -59 0 678 904 ; C -1 ; WX 562 ; N eth ; B 42 -12 558 742 ; C -1 ; WX 596 ; N acircumflex ; B 26 -12 612 747 ; C -1 ; WX 596 ; N aring ; B 26 -12 612 762 ; C -1 ; WX 761 ; N Ograve ; B 78 -15 768 904 ; C -1 ; WX 456 ; N ccedilla ; B 38 -246 498 502 ; C -1 ; WX 600 ; N multiply ; B 110 22 560 478 ; C -1 ; WX 600 ; N divide ; B 63 7 547 493 ; C -1 ; WX 402 ; N twosuperior ; B 29 272 423 680 ; C -1 ; WX 741 ; N Ntilde ; B -5 0 838 876 ; C -1 ; WX 634 ; N ugrave ; B 71 -12 643 740 ; C -1 ; WX 776 ; N Ucircumflex ; B 115 -15 867 905 ; C -1 ; WX 634 ; N Atilde ; B -59 0 662 876 ; C -1 ; WX 466 ; N zcaron ; B -17 -12 526 747 ; C -1 ; WX 339 ; N idieresis ; B 46 -12 444 710 ; C -1 ; WX 634 ; N Acircumflex ; B -59 0 639 905 ; C -1 ; WX 386 ; N Icircumflex ; B 5 0 506 905 ; C -1 ; WX 622 ; N Yacute ; B 92 0 765 904 ; C -1 ; WX 761 ; N Oacute ; B 78 -15 768 904 ; C -1 ; WX 634 ; N Adieresis ; B -59 0 652 881 ; C -1 ; WX 618 ; N Zcaron ; B -30 0 714 916 ; C -1 ; WX 596 ; N agrave ; B 26 -12 612 755 ; C -1 ; WX 402 ; N threesuperior ; B 59 265 421 680 ; C -1 ; WX 562 ; N ograve ; B 42 -12 556 755 ; C -1 ; WX 940 ; N threequarters ; B 95 -27 876 695 ; C -1 ; WX 780 ; N Eth ; B 11 0 790 692 ; C -1 ; WX 600 ; N plusminus ; B 83 0 567 549 ; C -1 ; WX 634 ; N udieresis ; B 71 -12 643 710 ; C -1 ; WX 476 ; N edieresis ; B 38 -12 542 710 ; C -1 ; WX 596 ; N aacute ; B 26 -12 621 755 ; C -1 ; WX 339 ; N igrave ; B 39 -12 343 740 ; C -1 ; WX 386 ; N Idieresis ; B 5 0 533 881 ; C -1 ; WX 596 ; N adieresis ; B 26 -12 612 710 ; C -1 ; WX 386 ; N Iacute ; B 5 0 549 904 ; C -1 ; WX 824 ; N copyright ; B 91 -15 819 707 ; C -1 ; WX 386 ; N Igrave ; B 5 0 466 904 ; C -1 ; WX 672 ; N Ccedilla ; B 76 -246 742 707 ; C -1 ; WX 417 ; N scaron ; B 10 -12 522 747 ; C -1 ; WX 476 ; N egrave ; B 38 -12 497 755 ; C -1 ; WX 761 ; N Ocircumflex ; B 78 -15 768 905 ; C -1 ; WX 629 ; N Thorn ; B 5 0 660 692 ; C -1 ; WX 596 ; N atilde ; B 26 -12 612 697 ; C -1 ; WX 776 ; N Udieresis ; B 115 -15 867 881 ; C -1 ; WX 476 ; N ecircumflex ; B 38 -12 524 747 ; EndCharMetrics StartKernData StartKernPairs 697 KPX A z 18 KPX A y -40 KPX A x 16 KPX A w -30 KPX A v -30 KPX A u -18 KPX A t -6 KPX A s 6 KPX A r -6 KPX A quoteright -92 KPX A quotedblright -92 KPX A p -6 KPX A o -18 KPX A n -12 KPX A m -12 KPX A l -18 KPX A h -6 KPX A d 4 KPX A c -6 KPX A b -6 KPX A a 10 KPX A Y -56 KPX A X -8 KPX A W -46 KPX A V -75 KPX A U -50 KPX A T -60 KPX A Q -30 KPX A O -30 KPX A G -30 KPX A C -30 KPX B y -6 KPX B u -12 KPX B r -6 KPX B quoteright -20 KPX B quotedblright -32 KPX B o 6 KPX B l -20 KPX B k -10 KPX B i -12 KPX B h -15 KPX B e 4 KPX B a 10 KPX B W -30 KPX B V -45 KPX B U -30 KPX B T -20 KPX C z -6 KPX C y -18 KPX C u -12 KPX C r -12 KPX C quoteright 12 KPX C quotedblright 20 KPX C i -6 KPX C e -6 KPX C a -6 KPX C Q -12 KPX C O -12 KPX C G -12 KPX C C -12 KPX D y 18 KPX D quoteright -20 KPX D quotedblright -20 KPX D period -20 KPX D o 6 KPX D h -15 KPX D e 6 KPX D comma -20 KPX D a 6 KPX D Y -80 KPX D W -40 KPX D V -65 KPX E z -6 KPX E y -24 KPX E x 15 KPX E w -30 KPX E v -18 KPX E u -24 KPX E t -18 KPX E s -6 KPX E r -6 KPX E quoteright 10 KPX E q 10 KPX E period 15 KPX E p -12 KPX E n -12 KPX E m -12 KPX E l -6 KPX E j -6 KPX E i -12 KPX E g -12 KPX E d 10 KPX E comma 15 KPX E a 10 KPX F y -12 KPX F u -24 KPX F r -12 KPX F quoteright 40 KPX F quotedblright 35 KPX F period -120 KPX F o -24 KPX F i -6 KPX F e -24 KPX F comma -110 KPX F a -30 KPX F A -45 KPX G y -25 KPX G u -22 KPX G r -22 KPX G quoteright -30 KPX G quotedblright -30 KPX G n -22 KPX G l -24 KPX G i -12 KPX G h -18 KPX G e 5 KPX H y -18 KPX H u -30 KPX H o -25 KPX H i -25 KPX H e -25 KPX H a -25 KPX I z -20 KPX I y -6 KPX I x -6 KPX I w -30 KPX I v -30 KPX I u -30 KPX I t -18 KPX I s -18 KPX I r -12 KPX I p -18 KPX I o -25 KPX I n -18 KPX I m -18 KPX I l -6 KPX I k -6 KPX I j -20 KPX I i -10 KPX I g -24 KPX I f -6 KPX I e -25 KPX I d -15 KPX I c -25 KPX I b -6 KPX I a -15 KPX J y -12 KPX J u -32 KPX J quoteright 6 KPX J quotedblright 6 KPX J o -36 KPX J i -30 KPX J e -30 KPX J braceright 15 KPX J a -36 KPX K y -70 KPX K w -36 KPX K v -30 KPX K u -30 KPX K r -24 KPX K quoteright 36 KPX K quotedblright 36 KPX K o -30 KPX K n -24 KPX K l 10 KPX K i -12 KPX K h 15 KPX K e -30 KPX K a -12 KPX K Q -50 KPX K O -50 KPX K G -50 KPX K C -50 KPX K A 15 KPX L y -70 KPX L w -30 KPX L u -18 KPX L quoteright -110 KPX L quotedblright -110 KPX L l -16 KPX L j -18 KPX L i -18 KPX L Y -80 KPX L W -78 KPX L V -110 KPX L U -42 KPX L T -100 KPX L Q -48 KPX L O -48 KPX L G -48 KPX L C -48 KPX L A 40 KPX M y -18 KPX M u -24 KPX M quoteright 6 KPX M quotedblright 6 KPX M o -25 KPX M n -20 KPX M j -35 KPX M i -20 KPX M e -25 KPX M d -20 KPX M c -25 KPX M a -20 KPX N y -18 KPX N u -24 KPX N o -18 KPX N i -12 KPX N e -16 KPX N a -22 KPX O z -6 KPX O y 12 KPX O u -6 KPX O t -6 KPX O s -6 KPX O r -6 KPX O quoteright -20 KPX O quotedblright -20 KPX O q 6 KPX O period -10 KPX O p -6 KPX O n -6 KPX O m -6 KPX O l -15 KPX O k -10 KPX O j -6 KPX O h -10 KPX O g -6 KPX O e 6 KPX O d 6 KPX O comma -10 KPX O a 6 KPX O Y -70 KPX O X -30 KPX O W -35 KPX O V -50 KPX O T -42 KPX O A -8 KPX P y 6 KPX P u -18 KPX P t -6 KPX P s -24 KPX P r -6 KPX P quoteright -12 KPX P period -170 KPX P o -24 KPX P n -12 KPX P l -20 KPX P h -20 KPX P e -24 KPX P comma -170 KPX P a -40 KPX P I -45 KPX P H -45 KPX P E -45 KPX P A -70 KPX Q u -6 KPX Q quoteright -20 KPX Q quotedblright -38 KPX Q a -6 KPX Q Y -70 KPX Q X -12 KPX Q W -35 KPX Q V -50 KPX Q U -30 KPX Q T -36 KPX Q A -18 KPX R y -6 KPX R u -12 KPX R quoteright -22 KPX R quotedblright -22 KPX R o -20 KPX R e -12 KPX R Y -45 KPX R X 15 KPX R W -25 KPX R V -35 KPX R U -40 KPX R T -18 KPX R Q -8 KPX R O -8 KPX R G -8 KPX R C -8 KPX R A 15 KPX S y -30 KPX S w -30 KPX S v -20 KPX S u -18 KPX S t -18 KPX S r -20 KPX S quoteright -38 KPX S quotedblright -50 KPX S p -18 KPX S n -24 KPX S m -24 KPX S l -20 KPX S k -18 KPX S j -25 KPX S i -20 KPX S h -12 KPX S e -6 KPX T z -48 KPX T y -52 KPX T w -54 KPX T u -54 KPX T semicolon -6 KPX T s -60 KPX T r -54 KPX T quoteright 36 KPX T quotedblright 36 KPX T period -70 KPX T parenright 25 KPX T o -78 KPX T m -54 KPX T i -22 KPX T hyphen -100 KPX T h 6 KPX T endash -40 KPX T emdash -40 KPX T e -78 KPX T comma -90 KPX T bracketright 20 KPX T braceright 30 KPX T a -78 KPX T Y 12 KPX T X 18 KPX T W 30 KPX T V 20 KPX T T 40 KPX T Q -6 KPX T O -6 KPX T G -6 KPX T C -6 KPX T A -40 KPX U z -18 KPX U x -30 KPX U v -20 KPX U t -24 KPX U s -40 KPX U r -30 KPX U p -30 KPX U n -30 KPX U m -30 KPX U l -12 KPX U k -12 KPX U i -24 KPX U h -6 KPX U g -30 KPX U f -10 KPX U d -30 KPX U c -30 KPX U b -6 KPX U a -30 KPX U A -40 KPX V y -34 KPX V u -42 KPX V semicolon -45 KPX V r -55 KPX V quoteright 46 KPX V quotedblright 60 KPX V period -110 KPX V parenright 64 KPX V o -55 KPX V i 15 KPX V hyphen -60 KPX V endash -20 KPX V emdash -20 KPX V e -55 KPX V comma -110 KPX V colon -18 KPX V bracketright 64 KPX V braceright 64 KPX V a -80 KPX V T 12 KPX V A -70 KPX W y -36 KPX W u -30 KPX W t -10 KPX W semicolon -12 KPX W r -30 KPX W quoteright 42 KPX W quotedblright 55 KPX W period -80 KPX W parenright 55 KPX W o -55 KPX W m -30 KPX W i 5 KPX W hyphen -40 KPX W h 16 KPX W e -55 KPX W d -60 KPX W comma -80 KPX W colon -12 KPX W bracketright 64 KPX W braceright 64 KPX W a -60 KPX W T 30 KPX W Q -5 KPX W O -5 KPX W G -5 KPX W C -5 KPX W A -45 KPX X y -40 KPX X u -30 KPX X r -6 KPX X quoteright 24 KPX X quotedblright 40 KPX X i -6 KPX X e -18 KPX X a -6 KPX X Y -6 KPX X W -6 KPX X Q -45 KPX X O -45 KPX X G -45 KPX X C -45 KPX Y v -60 KPX Y u -70 KPX Y t -32 KPX Y semicolon -20 KPX Y quoteright 56 KPX Y quotedblright 70 KPX Y q -100 KPX Y period -80 KPX Y parenright 5 KPX Y o -95 KPX Y l 15 KPX Y i 15 KPX Y hyphen -110 KPX Y endash -40 KPX Y emdash -40 KPX Y e -95 KPX Y d -85 KPX Y comma -80 KPX Y colon -20 KPX Y bracketright 64 KPX Y braceright 64 KPX Y a -85 KPX Y Y 12 KPX Y X 12 KPX Y W 12 KPX Y V 6 KPX Y T 30 KPX Y Q -25 KPX Y O -25 KPX Y G -25 KPX Y C -25 KPX Y A -40 KPX Z y -36 KPX Z w -36 KPX Z u -12 KPX Z quoteright 18 KPX Z quotedblright 18 KPX Z o -6 KPX Z i -12 KPX Z e -6 KPX Z a -6 KPX Z Q -20 KPX Z O -20 KPX Z G -20 KPX Z C -20 KPX Z A 30 KPX a quoteright -54 KPX a quotedblright -54 KPX b y -6 KPX b w -5 KPX b v -5 KPX b quoteright -30 KPX b quotedblright -30 KPX b period -15 KPX b comma -15 KPX braceleft Y 64 KPX braceleft W 64 KPX braceleft V 64 KPX braceleft T 40 KPX braceleft J 60 KPX bracketleft Y 60 KPX bracketleft W 64 KPX bracketleft V 64 KPX bracketleft T 35 KPX bracketleft J 30 KPX c quoteright 5 KPX c quotedblright 5 KPX colon space -30 KPX comma space -40 KPX comma quoteright -100 KPX comma quotedblright -100 KPX d quoteright -12 KPX d quotedblright -12 KPX d period 15 KPX d comma 15 KPX e y 6 KPX e x -10 KPX e w -10 KPX e v -10 KPX e quoteright -25 KPX e quotedblright -25 KPX f quoteright 120 KPX f quotedblright 120 KPX f period -30 KPX f parenright 100 KPX f comma -30 KPX f bracketright 110 KPX f braceright 110 KPX g y 50 KPX g quotedblright -20 KPX g p 30 KPX g f 42 KPX g comma 20 KPX h quoteright -78 KPX h quotedblright -78 KPX i quoteright -20 KPX i quotedblright -20 KPX j quoteright -20 KPX j quotedblright -20 KPX j period -20 KPX j comma -20 KPX k quoteright -38 KPX k quotedblright -38 KPX l quoteright -12 KPX l quotedblright -12 KPX m quoteright -78 KPX m quotedblright -78 KPX n quoteright -88 KPX n quotedblright -88 KPX o y -12 KPX o x -20 KPX o w -25 KPX o v -25 KPX o quoteright -50 KPX o quotedblright -50 KPX o period -10 KPX o comma -10 KPX p w -6 KPX p quoteright -30 KPX p quotedblright -52 KPX p period -15 KPX p comma -15 KPX parenleft Y 64 KPX parenleft W 64 KPX parenleft V 64 KPX parenleft T 30 KPX parenleft J 50 KPX period space -40 KPX period quoteright -100 KPX period quotedblright -100 KPX q quoteright -40 KPX q quotedblright -40 KPX q period -10 KPX q comma -5 KPX quotedblleft z -30 KPX quotedblleft x -60 KPX quotedblleft w -12 KPX quotedblleft v -12 KPX quotedblleft u -12 KPX quotedblleft t 5 KPX quotedblleft s -30 KPX quotedblleft r -12 KPX quotedblleft q -50 KPX quotedblleft p -12 KPX quotedblleft o -30 KPX quotedblleft n -12 KPX quotedblleft m -12 KPX quotedblleft l 10 KPX quotedblleft k 10 KPX quotedblleft h 10 KPX quotedblleft g -30 KPX quotedblleft e -30 KPX quotedblleft d -50 KPX quotedblleft c -30 KPX quotedblleft b 24 KPX quotedblleft a -50 KPX quotedblleft Y 30 KPX quotedblleft X 45 KPX quotedblleft W 55 KPX quotedblleft V 40 KPX quotedblleft T 36 KPX quotedblleft A -100 KPX quotedblright space -50 KPX quotedblright period -200 KPX quotedblright comma -200 KPX quoteleft z -30 KPX quoteleft y 30 KPX quoteleft x -10 KPX quoteleft w -12 KPX quoteleft u -12 KPX quoteleft t -30 KPX quoteleft s -30 KPX quoteleft r -12 KPX quoteleft q -30 KPX quoteleft p -12 KPX quoteleft o -30 KPX quoteleft n -12 KPX quoteleft m -12 KPX quoteleft l 10 KPX quoteleft k 10 KPX quoteleft h 10 KPX quoteleft g -30 KPX quoteleft e -30 KPX quoteleft d -30 KPX quoteleft c -30 KPX quoteleft b 24 KPX quoteleft a -30 KPX quoteleft Y 12 KPX quoteleft X 46 KPX quoteleft W 46 KPX quoteleft V 28 KPX quoteleft T 36 KPX quoteleft A -100 KPX quoteright v -20 KPX quoteright space -50 KPX quoteright s -45 KPX quoteright r -12 KPX quoteright period -140 KPX quoteright m -12 KPX quoteright l -12 KPX quoteright d -65 KPX quoteright comma -140 KPX r z 20 KPX r y 18 KPX r x 12 KPX r w 6 KPX r v 6 KPX r t 8 KPX r semicolon 20 KPX r quoteright -6 KPX r quotedblright -6 KPX r q -24 KPX r period -100 KPX r o -6 KPX r l -12 KPX r k -12 KPX r hyphen -40 KPX r h -10 KPX r f 8 KPX r endash -20 KPX r e -26 KPX r d -25 KPX r comma -100 KPX r colon 20 KPX r c -12 KPX r a -25 KPX s quoteright -25 KPX s quotedblright -30 KPX semicolon space -30 KPX space quotesinglbase -60 KPX space quoteleft -60 KPX space quotedblleft -60 KPX space quotedblbase -60 KPX space Y -70 KPX space W -50 KPX space V -70 KPX space T -50 KPX space A -50 KPX t quoteright 15 KPX t quotedblright 15 KPX t period 15 KPX t comma 15 KPX u quoteright -65 KPX u quotedblright -78 KPX u period 20 KPX u comma 20 KPX v quoteright -10 KPX v quotedblright -10 KPX v q -6 KPX v period -62 KPX v o -6 KPX v e -6 KPX v d -6 KPX v comma -62 KPX v c -6 KPX v a -6 KPX w quoteright -10 KPX w quotedblright -10 KPX w period -40 KPX w comma -50 KPX x y 12 KPX x w -6 KPX x quoteright -30 KPX x quotedblright -30 KPX x q -6 KPX x o -6 KPX x e -6 KPX x d -6 KPX x c -6 KPX y quoteright -10 KPX y quotedblright -10 KPX y q -10 KPX y period -56 KPX y d -10 KPX y comma -56 KPX z quoteright -40 KPX z quotedblright -40 KPX z o -6 KPX z e -6 KPX z d -6 KPX z c -6 EndKernPairs EndKernData EndFontMetrics pmw-4.27/fontmetrics/Times-Bold.afm0000644000222100022210000020177012247665016015340 0ustar ph10ph10StartFontMetrics 4.1 Comment Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Thu May 1 12:52:56 1997 Comment PH added entry for Euro character, copied from a different version, 19 July 2009. Comment PH added additional characters (after Euro) 17 November 2013 Comment UniqueID 43065 Comment VMusage 41636 52661 FontName Times-Bold FullName Times Bold FamilyName Times Weight Bold ItalicAngle 0 IsFixedPitch false FontBBox -168 -218 1000 935 UnderlinePosition -100 UnderlineThickness 50 Version 002.000 Notice Copyright (c) 1985, 1987, 1989, 1990, 1993, 1997 Adobe Systems Incorporated. All Rights Reserved.Times is a trademark of Linotype-Hell AG and/or its subsidiaries. EncodingScheme AdobeStandardEncoding CapHeight 676 XHeight 461 Ascender 683 Descender -217 StdHW 44 StdVW 139 StartCharMetrics 361 C 32 ; WX 250 ; N space ; B 0 0 0 0 ; C 33 ; WX 333 ; N exclam ; B 81 -13 251 691 ; C 34 ; WX 555 ; N quotedbl ; B 83 404 472 691 ; C 35 ; WX 500 ; N numbersign ; B 4 0 496 700 ; C 36 ; WX 500 ; N dollar ; B 29 -99 472 750 ; C 37 ; WX 1000 ; N percent ; B 124 -14 877 692 ; C 38 ; WX 833 ; N ampersand ; B 62 -16 787 691 ; C 39 ; WX 333 ; N quoteright ; B 79 356 263 691 ; C 40 ; WX 333 ; N parenleft ; B 46 -168 306 694 ; C 41 ; WX 333 ; N parenright ; B 27 -168 287 694 ; C 42 ; WX 500 ; N asterisk ; B 56 255 447 691 ; C 43 ; WX 570 ; N plus ; B 33 0 537 506 ; C 44 ; WX 250 ; N comma ; B 39 -180 223 155 ; C 45 ; WX 333 ; N hyphen ; B 44 171 287 287 ; C 46 ; WX 250 ; N period ; B 41 -13 210 156 ; C 47 ; WX 278 ; N slash ; B -24 -19 302 691 ; C 48 ; WX 500 ; N zero ; B 24 -13 476 688 ; C 49 ; WX 500 ; N one ; B 65 0 442 688 ; C 50 ; WX 500 ; N two ; B 17 0 478 688 ; C 51 ; WX 500 ; N three ; B 16 -14 468 688 ; C 52 ; WX 500 ; N four ; B 19 0 475 688 ; C 53 ; WX 500 ; N five ; B 22 -8 470 676 ; C 54 ; WX 500 ; N six ; B 28 -13 475 688 ; C 55 ; WX 500 ; N seven ; B 17 0 477 676 ; C 56 ; WX 500 ; N eight ; B 28 -13 472 688 ; C 57 ; WX 500 ; N nine ; B 26 -13 473 688 ; C 58 ; WX 333 ; N colon ; B 82 -13 251 472 ; C 59 ; WX 333 ; N semicolon ; B 82 -180 266 472 ; C 60 ; WX 570 ; N less ; B 31 -8 539 514 ; C 61 ; WX 570 ; N equal ; B 33 107 537 399 ; C 62 ; WX 570 ; N greater ; B 31 -8 539 514 ; C 63 ; WX 500 ; N question ; B 57 -13 445 689 ; C 64 ; WX 930 ; N at ; B 108 -19 822 691 ; C 65 ; WX 722 ; N A ; B 9 0 689 690 ; C 66 ; WX 667 ; N B ; B 16 0 619 676 ; C 67 ; WX 722 ; N C ; B 49 -19 687 691 ; C 68 ; WX 722 ; N D ; B 14 0 690 676 ; C 69 ; WX 667 ; N E ; B 16 0 641 676 ; C 70 ; WX 611 ; N F ; B 16 0 583 676 ; C 71 ; WX 778 ; N G ; B 37 -19 755 691 ; C 72 ; WX 778 ; N H ; B 21 0 759 676 ; C 73 ; WX 389 ; N I ; B 20 0 370 676 ; C 74 ; WX 500 ; N J ; B 3 -96 479 676 ; C 75 ; WX 778 ; N K ; B 30 0 769 676 ; C 76 ; WX 667 ; N L ; B 19 0 638 676 ; C 77 ; WX 944 ; N M ; B 14 0 921 676 ; C 78 ; WX 722 ; N N ; B 16 -18 701 676 ; C 79 ; WX 778 ; N O ; B 35 -19 743 691 ; C 80 ; WX 611 ; N P ; B 16 0 600 676 ; C 81 ; WX 778 ; N Q ; B 35 -176 743 691 ; C 82 ; WX 722 ; N R ; B 26 0 715 676 ; C 83 ; WX 556 ; N S ; B 35 -19 513 692 ; C 84 ; WX 667 ; N T ; B 31 0 636 676 ; C 85 ; WX 722 ; N U ; B 16 -19 701 676 ; C 86 ; WX 722 ; N V ; B 16 -18 701 676 ; C 87 ; WX 1000 ; N W ; B 19 -15 981 676 ; C 88 ; WX 722 ; N X ; B 16 0 699 676 ; C 89 ; WX 722 ; N Y ; B 15 0 699 676 ; C 90 ; WX 667 ; N Z ; B 28 0 634 676 ; C 91 ; WX 333 ; N bracketleft ; B 67 -149 301 678 ; C 92 ; WX 278 ; N backslash ; B -25 -19 303 691 ; C 93 ; WX 333 ; N bracketright ; B 32 -149 266 678 ; C 94 ; WX 581 ; N asciicircum ; B 73 311 509 676 ; C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; C 96 ; WX 333 ; N quoteleft ; B 70 356 254 691 ; C 97 ; WX 500 ; N a ; B 25 -14 488 473 ; C 98 ; WX 556 ; N b ; B 17 -14 521 676 ; C 99 ; WX 444 ; N c ; B 25 -14 430 473 ; C 100 ; WX 556 ; N d ; B 25 -14 534 676 ; C 101 ; WX 444 ; N e ; B 25 -14 426 473 ; C 102 ; WX 333 ; N f ; B 14 0 389 691 ; L i fi ; L l fl ; C 103 ; WX 500 ; N g ; B 28 -206 483 473 ; C 104 ; WX 556 ; N h ; B 16 0 534 676 ; C 105 ; WX 278 ; N i ; B 16 0 255 691 ; C 106 ; WX 333 ; N j ; B -57 -203 263 691 ; C 107 ; WX 556 ; N k ; B 22 0 543 676 ; C 108 ; WX 278 ; N l ; B 16 0 255 676 ; C 109 ; WX 833 ; N m ; B 16 0 814 473 ; C 110 ; WX 556 ; N n ; B 21 0 539 473 ; C 111 ; WX 500 ; N o ; B 25 -14 476 473 ; C 112 ; WX 556 ; N p ; B 19 -205 524 473 ; C 113 ; WX 556 ; N q ; B 34 -205 536 473 ; C 114 ; WX 444 ; N r ; B 29 0 434 473 ; C 115 ; WX 389 ; N s ; B 25 -14 361 473 ; C 116 ; WX 333 ; N t ; B 20 -12 332 630 ; C 117 ; WX 556 ; N u ; B 16 -14 537 461 ; C 118 ; WX 500 ; N v ; B 21 -14 485 461 ; C 119 ; WX 722 ; N w ; B 23 -14 707 461 ; C 120 ; WX 500 ; N x ; B 12 0 484 461 ; C 121 ; WX 500 ; N y ; B 16 -205 480 461 ; C 122 ; WX 444 ; N z ; B 21 0 420 461 ; C 123 ; WX 394 ; N braceleft ; B 22 -175 340 698 ; C 124 ; WX 220 ; N bar ; B 66 -218 154 782 ; C 125 ; WX 394 ; N braceright ; B 54 -175 372 698 ; C 126 ; WX 520 ; N asciitilde ; B 29 173 491 333 ; C 161 ; WX 333 ; N exclamdown ; B 82 -203 252 501 ; C 162 ; WX 500 ; N cent ; B 53 -140 458 588 ; C 163 ; WX 500 ; N sterling ; B 21 -14 477 684 ; C 164 ; WX 167 ; N fraction ; B -168 -12 329 688 ; C 165 ; WX 500 ; N yen ; B -64 0 547 676 ; C 166 ; WX 500 ; N florin ; B 0 -155 498 706 ; C 167 ; WX 500 ; N section ; B 57 -132 443 691 ; C 168 ; WX 500 ; N currency ; B -26 61 526 613 ; C 169 ; WX 278 ; N quotesingle ; B 75 404 204 691 ; C 170 ; WX 500 ; N quotedblleft ; B 32 356 486 691 ; C 171 ; WX 500 ; N guillemotleft ; B 23 36 473 415 ; C 172 ; WX 333 ; N guilsinglleft ; B 51 36 305 415 ; C 173 ; WX 333 ; N guilsinglright ; B 28 36 282 415 ; C 174 ; WX 556 ; N fi ; B 14 0 536 691 ; C 175 ; WX 556 ; N fl ; B 14 0 536 691 ; C 177 ; WX 500 ; N endash ; B 0 181 500 271 ; C 178 ; WX 500 ; N dagger ; B 47 -134 453 691 ; C 179 ; WX 500 ; N daggerdbl ; B 45 -132 456 691 ; C 180 ; WX 250 ; N periodcentered ; B 41 248 210 417 ; C 182 ; WX 540 ; N paragraph ; B 0 -186 519 676 ; C 183 ; WX 350 ; N bullet ; B 35 198 315 478 ; C 184 ; WX 333 ; N quotesinglbase ; B 79 -180 263 155 ; C 185 ; WX 500 ; N quotedblbase ; B 14 -180 468 155 ; C 186 ; WX 500 ; N quotedblright ; B 14 356 468 691 ; C 187 ; WX 500 ; N guillemotright ; B 27 36 477 415 ; C 188 ; WX 1000 ; N ellipsis ; B 82 -13 917 156 ; C 189 ; WX 1000 ; N perthousand ; B 7 -29 995 706 ; C 191 ; WX 500 ; N questiondown ; B 55 -201 443 501 ; C 193 ; WX 333 ; N grave ; B 8 528 246 713 ; C 194 ; WX 333 ; N acute ; B 86 528 324 713 ; C 195 ; WX 333 ; N circumflex ; B -2 528 335 704 ; C 196 ; WX 333 ; N tilde ; B -16 547 349 674 ; C 197 ; WX 333 ; N macron ; B 1 565 331 637 ; C 198 ; WX 333 ; N breve ; B 15 528 318 691 ; C 199 ; WX 333 ; N dotaccent ; B 103 536 258 691 ; C 200 ; WX 333 ; N dieresis ; B -2 537 335 667 ; C 202 ; WX 333 ; N ring ; B 60 527 273 740 ; C 203 ; WX 333 ; N cedilla ; B 68 -218 294 0 ; C 205 ; WX 333 ; N hungarumlaut ; B -13 528 425 713 ; C 206 ; WX 333 ; N ogonek ; B 90 -193 319 24 ; C 207 ; WX 333 ; N caron ; B -2 528 335 704 ; C 208 ; WX 1000 ; N emdash ; B 0 181 1000 271 ; C 225 ; WX 1000 ; N AE ; B 4 0 951 676 ; C 227 ; WX 300 ; N ordfeminine ; B -1 397 301 688 ; C 232 ; WX 667 ; N Lslash ; B 19 0 638 676 ; C 233 ; WX 778 ; N Oslash ; B 35 -74 743 737 ; C 234 ; WX 1000 ; N OE ; B 22 -5 981 684 ; C 235 ; WX 330 ; N ordmasculine ; B 18 397 312 688 ; C 241 ; WX 722 ; N ae ; B 33 -14 693 473 ; C 245 ; WX 278 ; N dotlessi ; B 16 0 255 461 ; C 248 ; WX 278 ; N lslash ; B -22 0 303 676 ; C 249 ; WX 500 ; N oslash ; B 25 -92 476 549 ; C 250 ; WX 722 ; N oe ; B 22 -14 696 473 ; C 251 ; WX 556 ; N germandbls ; B 19 -12 517 691 ; C -1 ; WX 389 ; N Idieresis ; B 20 0 370 877 ; C -1 ; WX 444 ; N eacute ; B 25 -14 426 713 ; C -1 ; WX 500 ; N abreve ; B 25 -14 488 691 ; C -1 ; WX 556 ; N uhungarumlaut ; B 16 -14 557 713 ; C -1 ; WX 444 ; N ecaron ; B 25 -14 426 704 ; C -1 ; WX 722 ; N Ydieresis ; B 15 0 699 877 ; C -1 ; WX 570 ; N divide ; B 33 -31 537 537 ; C -1 ; WX 722 ; N Yacute ; B 15 0 699 923 ; C -1 ; WX 722 ; N Acircumflex ; B 9 0 689 914 ; C -1 ; WX 500 ; N aacute ; B 25 -14 488 713 ; C -1 ; WX 722 ; N Ucircumflex ; B 16 -19 701 914 ; C -1 ; WX 500 ; N yacute ; B 16 -205 480 713 ; C -1 ; WX 389 ; N scommaaccent ; B 25 -218 361 473 ; C -1 ; WX 444 ; N ecircumflex ; B 25 -14 426 704 ; C -1 ; WX 722 ; N Uring ; B 16 -19 701 935 ; C -1 ; WX 722 ; N Udieresis ; B 16 -19 701 877 ; C -1 ; WX 500 ; N aogonek ; B 25 -193 504 473 ; C -1 ; WX 722 ; N Uacute ; B 16 -19 701 923 ; C -1 ; WX 556 ; N uogonek ; B 16 -193 539 461 ; C -1 ; WX 667 ; N Edieresis ; B 16 0 641 877 ; C -1 ; WX 722 ; N Dcroat ; B 6 0 690 676 ; C -1 ; WX 250 ; N commaaccent ; B 47 -218 203 -50 ; C -1 ; WX 747 ; N copyright ; B 26 -19 721 691 ; C -1 ; WX 667 ; N Emacron ; B 16 0 641 847 ; C -1 ; WX 444 ; N ccaron ; B 25 -14 430 704 ; C -1 ; WX 500 ; N aring ; B 25 -14 488 740 ; C -1 ; WX 722 ; N Ncommaaccent ; B 16 -188 701 676 ; C -1 ; WX 278 ; N lacute ; B 16 0 297 923 ; C -1 ; WX 500 ; N agrave ; B 25 -14 488 713 ; C -1 ; WX 667 ; N Tcommaaccent ; B 31 -218 636 676 ; C -1 ; WX 722 ; N Cacute ; B 49 -19 687 923 ; C -1 ; WX 500 ; N atilde ; B 25 -14 488 674 ; C -1 ; WX 667 ; N Edotaccent ; B 16 0 641 901 ; C -1 ; WX 389 ; N scaron ; B 25 -14 363 704 ; C -1 ; WX 389 ; N scedilla ; B 25 -218 361 473 ; C -1 ; WX 278 ; N iacute ; B 16 0 289 713 ; C -1 ; WX 494 ; N lozenge ; B 10 0 484 745 ; C -1 ; WX 722 ; N Rcaron ; B 26 0 715 914 ; C -1 ; WX 778 ; N Gcommaaccent ; B 37 -218 755 691 ; C -1 ; WX 556 ; N ucircumflex ; B 16 -14 537 704 ; C -1 ; WX 500 ; N acircumflex ; B 25 -14 488 704 ; C -1 ; WX 722 ; N Amacron ; B 9 0 689 847 ; C -1 ; WX 444 ; N rcaron ; B 29 0 434 704 ; C -1 ; WX 444 ; N ccedilla ; B 25 -218 430 473 ; C -1 ; WX 667 ; N Zdotaccent ; B 28 0 634 901 ; C -1 ; WX 611 ; N Thorn ; B 16 0 600 676 ; C -1 ; WX 778 ; N Omacron ; B 35 -19 743 847 ; C -1 ; WX 722 ; N Racute ; B 26 0 715 923 ; C -1 ; WX 556 ; N Sacute ; B 35 -19 513 923 ; C -1 ; WX 672 ; N dcaron ; B 25 -14 681 682 ; C -1 ; WX 722 ; N Umacron ; B 16 -19 701 847 ; C -1 ; WX 556 ; N uring ; B 16 -14 537 740 ; C -1 ; WX 300 ; N threesuperior ; B 3 268 297 688 ; C -1 ; WX 778 ; N Ograve ; B 35 -19 743 923 ; C -1 ; WX 722 ; N Agrave ; B 9 0 689 923 ; C -1 ; WX 722 ; N Abreve ; B 9 0 689 901 ; C -1 ; WX 570 ; N multiply ; B 48 16 522 490 ; C -1 ; WX 556 ; N uacute ; B 16 -14 537 713 ; C -1 ; WX 667 ; N Tcaron ; B 31 0 636 914 ; C -1 ; WX 494 ; N partialdiff ; B 11 -21 494 750 ; C -1 ; WX 500 ; N ydieresis ; B 16 -205 480 667 ; C -1 ; WX 722 ; N Nacute ; B 16 -18 701 923 ; C -1 ; WX 278 ; N icircumflex ; B -37 0 300 704 ; C -1 ; WX 667 ; N Ecircumflex ; B 16 0 641 914 ; C -1 ; WX 500 ; N adieresis ; B 25 -14 488 667 ; C -1 ; WX 444 ; N edieresis ; B 25 -14 426 667 ; C -1 ; WX 444 ; N cacute ; B 25 -14 430 713 ; C -1 ; WX 556 ; N nacute ; B 21 0 539 713 ; C -1 ; WX 556 ; N umacron ; B 16 -14 537 637 ; C -1 ; WX 722 ; N Ncaron ; B 16 -18 701 914 ; C -1 ; WX 389 ; N Iacute ; B 20 0 370 923 ; C -1 ; WX 570 ; N plusminus ; B 33 0 537 506 ; C -1 ; WX 220 ; N brokenbar ; B 66 -143 154 707 ; C -1 ; WX 747 ; N registered ; B 26 -19 721 691 ; C -1 ; WX 778 ; N Gbreve ; B 37 -19 755 901 ; C -1 ; WX 389 ; N Idotaccent ; B 20 0 370 901 ; C -1 ; WX 600 ; N summation ; B 14 -10 585 706 ; C -1 ; WX 667 ; N Egrave ; B 16 0 641 923 ; C -1 ; WX 444 ; N racute ; B 29 0 434 713 ; C -1 ; WX 500 ; N omacron ; B 25 -14 476 637 ; C -1 ; WX 667 ; N Zacute ; B 28 0 634 923 ; C -1 ; WX 667 ; N Zcaron ; B 28 0 634 914 ; C -1 ; WX 549 ; N greaterequal ; B 26 0 523 704 ; C -1 ; WX 722 ; N Eth ; B 6 0 690 676 ; C -1 ; WX 722 ; N Ccedilla ; B 49 -218 687 691 ; C -1 ; WX 278 ; N lcommaaccent ; B 16 -218 255 676 ; C -1 ; WX 416 ; N tcaron ; B 20 -12 425 815 ; C -1 ; WX 444 ; N eogonek ; B 25 -193 426 473 ; C -1 ; WX 722 ; N Uogonek ; B 16 -193 701 676 ; C -1 ; WX 722 ; N Aacute ; B 9 0 689 923 ; C -1 ; WX 722 ; N Adieresis ; B 9 0 689 877 ; C -1 ; WX 444 ; N egrave ; B 25 -14 426 713 ; C -1 ; WX 444 ; N zacute ; B 21 0 420 713 ; C -1 ; WX 278 ; N iogonek ; B 16 -193 274 691 ; C -1 ; WX 778 ; N Oacute ; B 35 -19 743 923 ; C -1 ; WX 500 ; N oacute ; B 25 -14 476 713 ; C -1 ; WX 500 ; N amacron ; B 25 -14 488 637 ; C -1 ; WX 389 ; N sacute ; B 25 -14 361 713 ; C -1 ; WX 278 ; N idieresis ; B -37 0 300 667 ; C -1 ; WX 778 ; N Ocircumflex ; B 35 -19 743 914 ; C -1 ; WX 722 ; N Ugrave ; B 16 -19 701 923 ; C -1 ; WX 612 ; N Delta ; B 6 0 608 688 ; C -1 ; WX 556 ; N thorn ; B 19 -205 524 676 ; C -1 ; WX 300 ; N twosuperior ; B 0 275 300 688 ; C -1 ; WX 778 ; N Odieresis ; B 35 -19 743 877 ; C -1 ; WX 556 ; N mu ; B 33 -206 536 461 ; C -1 ; WX 278 ; N igrave ; B -27 0 255 713 ; C -1 ; WX 500 ; N ohungarumlaut ; B 25 -14 529 713 ; C -1 ; WX 667 ; N Eogonek ; B 16 -193 644 676 ; C -1 ; WX 556 ; N dcroat ; B 25 -14 534 676 ; C -1 ; WX 750 ; N threequarters ; B 23 -12 733 688 ; C -1 ; WX 556 ; N Scedilla ; B 35 -218 513 692 ; C -1 ; WX 394 ; N lcaron ; B 16 0 412 682 ; C -1 ; WX 778 ; N Kcommaaccent ; B 30 -218 769 676 ; C -1 ; WX 667 ; N Lacute ; B 19 0 638 923 ; C -1 ; WX 1000 ; N trademark ; B 24 271 977 676 ; C -1 ; WX 444 ; N edotaccent ; B 25 -14 426 691 ; C -1 ; WX 389 ; N Igrave ; B 20 0 370 923 ; C -1 ; WX 389 ; N Imacron ; B 20 0 370 847 ; C -1 ; WX 667 ; N Lcaron ; B 19 0 652 682 ; C -1 ; WX 750 ; N onehalf ; B -7 -12 775 688 ; C -1 ; WX 549 ; N lessequal ; B 29 0 526 704 ; C -1 ; WX 500 ; N ocircumflex ; B 25 -14 476 704 ; C -1 ; WX 556 ; N ntilde ; B 21 0 539 674 ; C -1 ; WX 722 ; N Uhungarumlaut ; B 16 -19 701 923 ; C -1 ; WX 667 ; N Eacute ; B 16 0 641 923 ; C -1 ; WX 444 ; N emacron ; B 25 -14 426 637 ; C -1 ; WX 500 ; N gbreve ; B 28 -206 483 691 ; C -1 ; WX 750 ; N onequarter ; B 28 -12 743 688 ; C -1 ; WX 556 ; N Scaron ; B 35 -19 513 914 ; C -1 ; WX 556 ; N Scommaaccent ; B 35 -218 513 692 ; C -1 ; WX 778 ; N Ohungarumlaut ; B 35 -19 743 923 ; C -1 ; WX 400 ; N degree ; B 57 402 343 688 ; C -1 ; WX 500 ; N ograve ; B 25 -14 476 713 ; C -1 ; WX 722 ; N Ccaron ; B 49 -19 687 914 ; C -1 ; WX 556 ; N ugrave ; B 16 -14 537 713 ; C -1 ; WX 549 ; N radical ; B 10 -46 512 850 ; C -1 ; WX 722 ; N Dcaron ; B 14 0 690 914 ; C -1 ; WX 444 ; N rcommaaccent ; B 29 -218 434 473 ; C -1 ; WX 722 ; N Ntilde ; B 16 -18 701 884 ; C -1 ; WX 500 ; N otilde ; B 25 -14 476 674 ; C -1 ; WX 722 ; N Rcommaaccent ; B 26 -218 715 676 ; C -1 ; WX 667 ; N Lcommaaccent ; B 19 -218 638 676 ; C -1 ; WX 722 ; N Atilde ; B 9 0 689 884 ; C -1 ; WX 722 ; N Aogonek ; B 9 -193 699 690 ; C -1 ; WX 722 ; N Aring ; B 9 0 689 935 ; C -1 ; WX 778 ; N Otilde ; B 35 -19 743 884 ; C -1 ; WX 444 ; N zdotaccent ; B 21 0 420 691 ; C -1 ; WX 667 ; N Ecaron ; B 16 0 641 914 ; C -1 ; WX 389 ; N Iogonek ; B 20 -193 370 676 ; C -1 ; WX 556 ; N kcommaaccent ; B 22 -218 543 676 ; C -1 ; WX 570 ; N minus ; B 33 209 537 297 ; C -1 ; WX 389 ; N Icircumflex ; B 20 0 370 914 ; C -1 ; WX 556 ; N ncaron ; B 21 0 539 704 ; C -1 ; WX 333 ; N tcommaaccent ; B 20 -218 332 630 ; C -1 ; WX 570 ; N logicalnot ; B 33 108 537 399 ; C -1 ; WX 500 ; N odieresis ; B 25 -14 476 667 ; C -1 ; WX 556 ; N udieresis ; B 16 -14 537 667 ; C -1 ; WX 549 ; N notequal ; B 15 -49 540 570 ; C -1 ; WX 500 ; N gcommaaccent ; B 28 -206 483 829 ; C -1 ; WX 500 ; N eth ; B 25 -14 476 691 ; C -1 ; WX 444 ; N zcaron ; B 21 0 420 704 ; C -1 ; WX 556 ; N ncommaaccent ; B 21 -218 539 473 ; C -1 ; WX 300 ; N onesuperior ; B 28 275 273 688 ; C -1 ; WX 278 ; N imacron ; B -8 0 272 637 ; C -1 ; WX 500 ; N Euro ; B 0 0 0 0 ; C -1 ; WX 722 ; N Ccircumflex ; B 49 -19 687 902 ; C -1 ; WX 444 ; N ccircumflex ; B 25 -14 430 687 ; C -1 ; WX 722 ; N Cdotaccent ; B 49 -19 687 855 ; C -1 ; WX 444 ; N cdotaccent ; B 25 -14 430 640 ; C -1 ; WX 667 ; N Ebreve ; B 16 0 641 889 ; C -1 ; WX 444 ; N ebreve ; B 25 -14 426 674 ; C -1 ; WX 778 ; N Gcircumflex ; B 37 -19 755 902 ; C -1 ; WX 500 ; N gcircumflex ; B 28 -206 483 687 ; C -1 ; WX 778 ; N Gdotaccent ; B 37 -19 755 855 ; C -1 ; WX 500 ; N gdotaccent ; B 28 -206 483 640 ; C -1 ; WX 778 ; N Hcircumflex ; B 16 0 754 902 ; C -1 ; WX 556 ; N hcircumflex ; B 2 0 534 902 ; C -1 ; WX 778 ; N Hbar ; B 21 0 759 676 ; C -1 ; WX 556 ; N hbar ; B 13 0 534 676 ; C -1 ; WX 389 ; N Itilde ; B 8 0 373 853 ; C -1 ; WX 278 ; N itilde ; B -47 0 318 638 ; C -1 ; WX 389 ; N Ibreve ; B 16 0 366 889 ; C -1 ; WX 278 ; N ibreve ; B -16 0 287 674 ; C -1 ; WX 882 ; N IJ ; B 16 -96 869 676 ; C -1 ; WX 486 ; N ij ; B 16 -203 463 691 ; C -1 ; WX 500 ; N Jcircumflex ; B 3 -96 479 902 ; C -1 ; WX 333 ; N jcircumflex ; B -56 -203 335 768 ; C -1 ; WX 534 ; N kgreenlandic ; B 22 0 514 470 ; C -1 ; WX 667 ; N Ldot ; B 16 0 635 676 ; C -1 ; WX 528 ; N ldot ; B 16 0 488 676 ; C -1 ; WX 704 ; N napostrophe ; B 21 0 687 582 ; C -1 ; WX 722 ; N Eng ; B 16 -228 701 676 ; C -1 ; WX 556 ; N eng ; B 21 -203 490 473 ; C -1 ; WX 778 ; N Obreve ; B 35 -19 743 889 ; C -1 ; WX 500 ; N obreve ; B 25 -14 476 674 ; C -1 ; WX 556 ; N Scircumflex ; B 35 -19 513 902 ; C -1 ; WX 389 ; N scircumflex ; B 24 -14 361 687 ; C -1 ; WX 667 ; N Tbar ; B 32 0 637 676 ; C -1 ; WX 333 ; N tbar ; B 13 -12 332 630 ; C -1 ; WX 667 ; N Tcedilla ; B 31 -218 636 676 ; C -1 ; WX 333 ; N tcedilla ; B 20 -218 332 630 ; C -1 ; WX 722 ; N Utilde ; B 16 -19 701 853 ; C -1 ; WX 556 ; N utilde ; B 16 -14 537 638 ; C -1 ; WX 722 ; N Ubreve ; B 16 -19 701 889 ; C -1 ; WX 556 ; N ubreve ; B 16 -14 537 674 ; C -1 ; WX 1000 ; N Wcircumflex ; B 19 -15 981 902 ; C -1 ; WX 722 ; N wcircumflex ; B 23 -14 707 687 ; C -1 ; WX 722 ; N Ycircumflex ; B 15 0 699 902 ; C -1 ; WX 500 ; N ycircumflex ; B 16 -205 480 687 ; C -1 ; WX 333 ; N longs ; B 14 0 389 691 ; C -1 ; WX 752 ; N infinity ; B 22 42 723 456 ; EndCharMetrics StartKernData StartKernPairs 2242 KPX A C -55 KPX A Cacute -55 KPX A Ccaron -55 KPX A Ccedilla -55 KPX A G -55 KPX A Gbreve -55 KPX A Gcommaaccent -55 KPX A O -45 KPX A Oacute -45 KPX A Ocircumflex -45 KPX A Odieresis -45 KPX A Ograve -45 KPX A Ohungarumlaut -45 KPX A Omacron -45 KPX A Oslash -45 KPX A Otilde -45 KPX A Q -45 KPX A T -95 KPX A Tcaron -95 KPX A Tcommaaccent -95 KPX A U -50 KPX A Uacute -50 KPX A Ucircumflex -50 KPX A Udieresis -50 KPX A Ugrave -50 KPX A Uhungarumlaut -50 KPX A Umacron -50 KPX A Uogonek -50 KPX A Uring -50 KPX A V -145 KPX A W -130 KPX A Y -100 KPX A Yacute -100 KPX A Ydieresis -100 KPX A p -25 KPX A quoteright -74 KPX A u -50 KPX A uacute -50 KPX A ucircumflex -50 KPX A udieresis -50 KPX A ugrave -50 KPX A uhungarumlaut -50 KPX A umacron -50 KPX A uogonek -50 KPX A uring -50 KPX A v -100 KPX A w -90 KPX A y -74 KPX A yacute -74 KPX A ydieresis -74 KPX Aacute C -55 KPX Aacute Cacute -55 KPX Aacute Ccaron -55 KPX Aacute Ccedilla -55 KPX Aacute G -55 KPX Aacute Gbreve -55 KPX Aacute Gcommaaccent -55 KPX Aacute O -45 KPX Aacute Oacute -45 KPX Aacute Ocircumflex -45 KPX Aacute Odieresis -45 KPX Aacute Ograve -45 KPX Aacute Ohungarumlaut -45 KPX Aacute Omacron -45 KPX Aacute Oslash -45 KPX Aacute Otilde -45 KPX Aacute Q -45 KPX Aacute T -95 KPX Aacute Tcaron -95 KPX Aacute Tcommaaccent -95 KPX Aacute U -50 KPX Aacute Uacute -50 KPX Aacute Ucircumflex -50 KPX Aacute Udieresis -50 KPX Aacute Ugrave -50 KPX Aacute Uhungarumlaut -50 KPX Aacute Umacron -50 KPX Aacute Uogonek -50 KPX Aacute Uring -50 KPX Aacute V -145 KPX Aacute W -130 KPX Aacute Y -100 KPX Aacute Yacute -100 KPX Aacute Ydieresis -100 KPX Aacute p -25 KPX Aacute quoteright -74 KPX Aacute u -50 KPX Aacute uacute -50 KPX Aacute ucircumflex -50 KPX Aacute udieresis -50 KPX Aacute ugrave -50 KPX Aacute uhungarumlaut -50 KPX Aacute umacron -50 KPX Aacute uogonek -50 KPX Aacute uring -50 KPX Aacute v -100 KPX Aacute w -90 KPX Aacute y -74 KPX Aacute yacute -74 KPX Aacute ydieresis -74 KPX Abreve C -55 KPX Abreve Cacute -55 KPX Abreve Ccaron -55 KPX Abreve Ccedilla -55 KPX Abreve G -55 KPX Abreve Gbreve -55 KPX Abreve Gcommaaccent -55 KPX Abreve O -45 KPX Abreve Oacute -45 KPX Abreve Ocircumflex -45 KPX Abreve Odieresis -45 KPX Abreve Ograve -45 KPX Abreve Ohungarumlaut -45 KPX Abreve Omacron -45 KPX Abreve Oslash -45 KPX Abreve Otilde -45 KPX Abreve Q -45 KPX Abreve T -95 KPX Abreve Tcaron -95 KPX Abreve Tcommaaccent -95 KPX Abreve U -50 KPX Abreve Uacute -50 KPX Abreve Ucircumflex -50 KPX Abreve Udieresis -50 KPX Abreve Ugrave -50 KPX Abreve Uhungarumlaut -50 KPX Abreve Umacron -50 KPX Abreve Uogonek -50 KPX Abreve Uring -50 KPX Abreve V -145 KPX Abreve W -130 KPX Abreve Y -100 KPX Abreve Yacute -100 KPX Abreve Ydieresis -100 KPX Abreve p -25 KPX Abreve quoteright -74 KPX Abreve u -50 KPX Abreve uacute -50 KPX Abreve ucircumflex -50 KPX Abreve udieresis -50 KPX Abreve ugrave -50 KPX Abreve uhungarumlaut -50 KPX Abreve umacron -50 KPX Abreve uogonek -50 KPX Abreve uring -50 KPX Abreve v -100 KPX Abreve w -90 KPX Abreve y -74 KPX Abreve yacute -74 KPX Abreve ydieresis -74 KPX Acircumflex C -55 KPX Acircumflex Cacute -55 KPX Acircumflex Ccaron -55 KPX Acircumflex Ccedilla -55 KPX Acircumflex G -55 KPX Acircumflex Gbreve -55 KPX Acircumflex Gcommaaccent -55 KPX Acircumflex O -45 KPX Acircumflex Oacute -45 KPX Acircumflex Ocircumflex -45 KPX Acircumflex Odieresis -45 KPX Acircumflex Ograve -45 KPX Acircumflex Ohungarumlaut -45 KPX Acircumflex Omacron -45 KPX Acircumflex Oslash -45 KPX Acircumflex Otilde -45 KPX Acircumflex Q -45 KPX Acircumflex T -95 KPX Acircumflex Tcaron -95 KPX Acircumflex Tcommaaccent -95 KPX Acircumflex U -50 KPX Acircumflex Uacute -50 KPX Acircumflex Ucircumflex -50 KPX Acircumflex Udieresis -50 KPX Acircumflex Ugrave -50 KPX Acircumflex Uhungarumlaut -50 KPX Acircumflex Umacron -50 KPX Acircumflex Uogonek -50 KPX Acircumflex Uring -50 KPX Acircumflex V -145 KPX Acircumflex W -130 KPX Acircumflex Y -100 KPX Acircumflex Yacute -100 KPX Acircumflex Ydieresis -100 KPX Acircumflex p -25 KPX Acircumflex quoteright -74 KPX Acircumflex u -50 KPX Acircumflex uacute -50 KPX Acircumflex ucircumflex -50 KPX Acircumflex udieresis -50 KPX Acircumflex ugrave -50 KPX Acircumflex uhungarumlaut -50 KPX Acircumflex umacron -50 KPX Acircumflex uogonek -50 KPX Acircumflex uring -50 KPX Acircumflex v -100 KPX Acircumflex w -90 KPX Acircumflex y -74 KPX Acircumflex yacute -74 KPX Acircumflex ydieresis -74 KPX Adieresis C -55 KPX Adieresis Cacute -55 KPX Adieresis Ccaron -55 KPX Adieresis Ccedilla -55 KPX Adieresis G -55 KPX Adieresis Gbreve -55 KPX Adieresis Gcommaaccent -55 KPX Adieresis O -45 KPX Adieresis Oacute -45 KPX Adieresis Ocircumflex -45 KPX Adieresis Odieresis -45 KPX Adieresis Ograve -45 KPX Adieresis Ohungarumlaut -45 KPX Adieresis Omacron -45 KPX Adieresis Oslash -45 KPX Adieresis Otilde -45 KPX Adieresis Q -45 KPX Adieresis T -95 KPX Adieresis Tcaron -95 KPX Adieresis Tcommaaccent -95 KPX Adieresis U -50 KPX Adieresis Uacute -50 KPX Adieresis Ucircumflex -50 KPX Adieresis Udieresis -50 KPX Adieresis Ugrave -50 KPX Adieresis Uhungarumlaut -50 KPX Adieresis Umacron -50 KPX Adieresis Uogonek -50 KPX Adieresis Uring -50 KPX Adieresis V -145 KPX Adieresis W -130 KPX Adieresis Y -100 KPX Adieresis Yacute -100 KPX Adieresis Ydieresis -100 KPX Adieresis p -25 KPX Adieresis quoteright -74 KPX Adieresis u -50 KPX Adieresis uacute -50 KPX Adieresis ucircumflex -50 KPX Adieresis udieresis -50 KPX Adieresis ugrave -50 KPX Adieresis uhungarumlaut -50 KPX Adieresis umacron -50 KPX Adieresis uogonek -50 KPX Adieresis uring -50 KPX Adieresis v -100 KPX Adieresis w -90 KPX Adieresis y -74 KPX Adieresis yacute -74 KPX Adieresis ydieresis -74 KPX Agrave C -55 KPX Agrave Cacute -55 KPX Agrave Ccaron -55 KPX Agrave Ccedilla -55 KPX Agrave G -55 KPX Agrave Gbreve -55 KPX Agrave Gcommaaccent -55 KPX Agrave O -45 KPX Agrave Oacute -45 KPX Agrave Ocircumflex -45 KPX Agrave Odieresis -45 KPX Agrave Ograve -45 KPX Agrave Ohungarumlaut -45 KPX Agrave Omacron -45 KPX Agrave Oslash -45 KPX Agrave Otilde -45 KPX Agrave Q -45 KPX Agrave T -95 KPX Agrave Tcaron -95 KPX Agrave Tcommaaccent -95 KPX Agrave U -50 KPX Agrave Uacute -50 KPX Agrave Ucircumflex -50 KPX Agrave Udieresis -50 KPX Agrave Ugrave -50 KPX Agrave Uhungarumlaut -50 KPX Agrave Umacron -50 KPX Agrave Uogonek -50 KPX Agrave Uring -50 KPX Agrave V -145 KPX Agrave W -130 KPX Agrave Y -100 KPX Agrave Yacute -100 KPX Agrave Ydieresis -100 KPX Agrave p -25 KPX Agrave quoteright -74 KPX Agrave u -50 KPX Agrave uacute -50 KPX Agrave ucircumflex -50 KPX Agrave udieresis -50 KPX Agrave ugrave -50 KPX Agrave uhungarumlaut -50 KPX Agrave umacron -50 KPX Agrave uogonek -50 KPX Agrave uring -50 KPX Agrave v -100 KPX Agrave w -90 KPX Agrave y -74 KPX Agrave yacute -74 KPX Agrave ydieresis -74 KPX Amacron C -55 KPX Amacron Cacute -55 KPX Amacron Ccaron -55 KPX Amacron Ccedilla -55 KPX Amacron G -55 KPX Amacron Gbreve -55 KPX Amacron Gcommaaccent -55 KPX Amacron O -45 KPX Amacron Oacute -45 KPX Amacron Ocircumflex -45 KPX Amacron Odieresis -45 KPX Amacron Ograve -45 KPX Amacron Ohungarumlaut -45 KPX Amacron Omacron -45 KPX Amacron Oslash -45 KPX Amacron Otilde -45 KPX Amacron Q -45 KPX Amacron T -95 KPX Amacron Tcaron -95 KPX Amacron Tcommaaccent -95 KPX Amacron U -50 KPX Amacron Uacute -50 KPX Amacron Ucircumflex -50 KPX Amacron Udieresis -50 KPX Amacron Ugrave -50 KPX Amacron Uhungarumlaut -50 KPX Amacron Umacron -50 KPX Amacron Uogonek -50 KPX Amacron Uring -50 KPX Amacron V -145 KPX Amacron W -130 KPX Amacron Y -100 KPX Amacron Yacute -100 KPX Amacron Ydieresis -100 KPX Amacron p -25 KPX Amacron quoteright -74 KPX Amacron u -50 KPX Amacron uacute -50 KPX Amacron ucircumflex -50 KPX Amacron udieresis -50 KPX Amacron ugrave -50 KPX Amacron uhungarumlaut -50 KPX Amacron umacron -50 KPX Amacron uogonek -50 KPX Amacron uring -50 KPX Amacron v -100 KPX Amacron w -90 KPX Amacron y -74 KPX Amacron yacute -74 KPX Amacron ydieresis -74 KPX Aogonek C -55 KPX Aogonek Cacute -55 KPX Aogonek Ccaron -55 KPX Aogonek Ccedilla -55 KPX Aogonek G -55 KPX Aogonek Gbreve -55 KPX Aogonek Gcommaaccent -55 KPX Aogonek O -45 KPX Aogonek Oacute -45 KPX Aogonek Ocircumflex -45 KPX Aogonek Odieresis -45 KPX Aogonek Ograve -45 KPX Aogonek Ohungarumlaut -45 KPX Aogonek Omacron -45 KPX Aogonek Oslash -45 KPX Aogonek Otilde -45 KPX Aogonek Q -45 KPX Aogonek T -95 KPX Aogonek Tcaron -95 KPX Aogonek Tcommaaccent -95 KPX Aogonek U -50 KPX Aogonek Uacute -50 KPX Aogonek Ucircumflex -50 KPX Aogonek Udieresis -50 KPX Aogonek Ugrave -50 KPX Aogonek Uhungarumlaut -50 KPX Aogonek Umacron -50 KPX Aogonek Uogonek -50 KPX Aogonek Uring -50 KPX Aogonek V -145 KPX Aogonek W -130 KPX Aogonek Y -100 KPX Aogonek Yacute -100 KPX Aogonek Ydieresis -100 KPX Aogonek p -25 KPX Aogonek quoteright -74 KPX Aogonek u -50 KPX Aogonek uacute -50 KPX Aogonek ucircumflex -50 KPX Aogonek udieresis -50 KPX Aogonek ugrave -50 KPX Aogonek uhungarumlaut -50 KPX Aogonek umacron -50 KPX Aogonek uogonek -50 KPX Aogonek uring -50 KPX Aogonek v -100 KPX Aogonek w -90 KPX Aogonek y -34 KPX Aogonek yacute -34 KPX Aogonek ydieresis -34 KPX Aring C -55 KPX Aring Cacute -55 KPX Aring Ccaron -55 KPX Aring Ccedilla -55 KPX Aring G -55 KPX Aring Gbreve -55 KPX Aring Gcommaaccent -55 KPX Aring O -45 KPX Aring Oacute -45 KPX Aring Ocircumflex -45 KPX Aring Odieresis -45 KPX Aring Ograve -45 KPX Aring Ohungarumlaut -45 KPX Aring Omacron -45 KPX Aring Oslash -45 KPX Aring Otilde -45 KPX Aring Q -45 KPX Aring T -95 KPX Aring Tcaron -95 KPX Aring Tcommaaccent -95 KPX Aring U -50 KPX Aring Uacute -50 KPX Aring Ucircumflex -50 KPX Aring Udieresis -50 KPX Aring Ugrave -50 KPX Aring Uhungarumlaut -50 KPX Aring Umacron -50 KPX Aring Uogonek -50 KPX Aring Uring -50 KPX Aring V -145 KPX Aring W -130 KPX Aring Y -100 KPX Aring Yacute -100 KPX Aring Ydieresis -100 KPX Aring p -25 KPX Aring quoteright -74 KPX Aring u -50 KPX Aring uacute -50 KPX Aring ucircumflex -50 KPX Aring udieresis -50 KPX Aring ugrave -50 KPX Aring uhungarumlaut -50 KPX Aring umacron -50 KPX Aring uogonek -50 KPX Aring uring -50 KPX Aring v -100 KPX Aring w -90 KPX Aring y -74 KPX Aring yacute -74 KPX Aring ydieresis -74 KPX Atilde C -55 KPX Atilde Cacute -55 KPX Atilde Ccaron -55 KPX Atilde Ccedilla -55 KPX Atilde G -55 KPX Atilde Gbreve -55 KPX Atilde Gcommaaccent -55 KPX Atilde O -45 KPX Atilde Oacute -45 KPX Atilde Ocircumflex -45 KPX Atilde Odieresis -45 KPX Atilde Ograve -45 KPX Atilde Ohungarumlaut -45 KPX Atilde Omacron -45 KPX Atilde Oslash -45 KPX Atilde Otilde -45 KPX Atilde Q -45 KPX Atilde T -95 KPX Atilde Tcaron -95 KPX Atilde Tcommaaccent -95 KPX Atilde U -50 KPX Atilde Uacute -50 KPX Atilde Ucircumflex -50 KPX Atilde Udieresis -50 KPX Atilde Ugrave -50 KPX Atilde Uhungarumlaut -50 KPX Atilde Umacron -50 KPX Atilde Uogonek -50 KPX Atilde Uring -50 KPX Atilde V -145 KPX Atilde W -130 KPX Atilde Y -100 KPX Atilde Yacute -100 KPX Atilde Ydieresis -100 KPX Atilde p -25 KPX Atilde quoteright -74 KPX Atilde u -50 KPX Atilde uacute -50 KPX Atilde ucircumflex -50 KPX Atilde udieresis -50 KPX Atilde ugrave -50 KPX Atilde uhungarumlaut -50 KPX Atilde umacron -50 KPX Atilde uogonek -50 KPX Atilde uring -50 KPX Atilde v -100 KPX Atilde w -90 KPX Atilde y -74 KPX Atilde yacute -74 KPX Atilde ydieresis -74 KPX B A -30 KPX B Aacute -30 KPX B Abreve -30 KPX B Acircumflex -30 KPX B Adieresis -30 KPX B Agrave -30 KPX B Amacron -30 KPX B Aogonek -30 KPX B Aring -30 KPX B Atilde -30 KPX B U -10 KPX B Uacute -10 KPX B Ucircumflex -10 KPX B Udieresis -10 KPX B Ugrave -10 KPX B Uhungarumlaut -10 KPX B Umacron -10 KPX B Uogonek -10 KPX B Uring -10 KPX D A -35 KPX D Aacute -35 KPX D Abreve -35 KPX D Acircumflex -35 KPX D Adieresis -35 KPX D Agrave -35 KPX D Amacron -35 KPX D Aogonek -35 KPX D Aring -35 KPX D Atilde -35 KPX D V -40 KPX D W -40 KPX D Y -40 KPX D Yacute -40 KPX D Ydieresis -40 KPX D period -20 KPX Dcaron A -35 KPX Dcaron Aacute -35 KPX Dcaron Abreve -35 KPX Dcaron Acircumflex -35 KPX Dcaron Adieresis -35 KPX Dcaron Agrave -35 KPX Dcaron Amacron -35 KPX Dcaron Aogonek -35 KPX Dcaron Aring -35 KPX Dcaron Atilde -35 KPX Dcaron V -40 KPX Dcaron W -40 KPX Dcaron Y -40 KPX Dcaron Yacute -40 KPX Dcaron Ydieresis -40 KPX Dcaron period -20 KPX Dcroat A -35 KPX Dcroat Aacute -35 KPX Dcroat Abreve -35 KPX Dcroat Acircumflex -35 KPX Dcroat Adieresis -35 KPX Dcroat Agrave -35 KPX Dcroat Amacron -35 KPX Dcroat Aogonek -35 KPX Dcroat Aring -35 KPX Dcroat Atilde -35 KPX Dcroat V -40 KPX Dcroat W -40 KPX Dcroat Y -40 KPX Dcroat Yacute -40 KPX Dcroat Ydieresis -40 KPX Dcroat period -20 KPX F A -90 KPX F Aacute -90 KPX F Abreve -90 KPX F Acircumflex -90 KPX F Adieresis -90 KPX F Agrave -90 KPX F Amacron -90 KPX F Aogonek -90 KPX F Aring -90 KPX F Atilde -90 KPX F a -25 KPX F aacute -25 KPX F abreve -25 KPX F acircumflex -25 KPX F adieresis -25 KPX F agrave -25 KPX F amacron -25 KPX F aogonek -25 KPX F aring -25 KPX F atilde -25 KPX F comma -92 KPX F e -25 KPX F eacute -25 KPX F ecaron -25 KPX F ecircumflex -25 KPX F edieresis -25 KPX F edotaccent -25 KPX F egrave -25 KPX F emacron -25 KPX F eogonek -25 KPX F o -25 KPX F oacute -25 KPX F ocircumflex -25 KPX F odieresis -25 KPX F ograve -25 KPX F ohungarumlaut -25 KPX F omacron -25 KPX F oslash -25 KPX F otilde -25 KPX F period -110 KPX J A -30 KPX J Aacute -30 KPX J Abreve -30 KPX J Acircumflex -30 KPX J Adieresis -30 KPX J Agrave -30 KPX J Amacron -30 KPX J Aogonek -30 KPX J Aring -30 KPX J Atilde -30 KPX J a -15 KPX J aacute -15 KPX J abreve -15 KPX J acircumflex -15 KPX J adieresis -15 KPX J agrave -15 KPX J amacron -15 KPX J aogonek -15 KPX J aring -15 KPX J atilde -15 KPX J e -15 KPX J eacute -15 KPX J ecaron -15 KPX J ecircumflex -15 KPX J edieresis -15 KPX J edotaccent -15 KPX J egrave -15 KPX J emacron -15 KPX J eogonek -15 KPX J o -15 KPX J oacute -15 KPX J ocircumflex -15 KPX J odieresis -15 KPX J ograve -15 KPX J ohungarumlaut -15 KPX J omacron -15 KPX J oslash -15 KPX J otilde -15 KPX J period -20 KPX J u -15 KPX J uacute -15 KPX J ucircumflex -15 KPX J udieresis -15 KPX J ugrave -15 KPX J uhungarumlaut -15 KPX J umacron -15 KPX J uogonek -15 KPX J uring -15 KPX K O -30 KPX K Oacute -30 KPX K Ocircumflex -30 KPX K Odieresis -30 KPX K Ograve -30 KPX K Ohungarumlaut -30 KPX K Omacron -30 KPX K Oslash -30 KPX K Otilde -30 KPX K e -25 KPX K eacute -25 KPX K ecaron -25 KPX K ecircumflex -25 KPX K edieresis -25 KPX K edotaccent -25 KPX K egrave -25 KPX K emacron -25 KPX K eogonek -25 KPX K o -25 KPX K oacute -25 KPX K ocircumflex -25 KPX K odieresis -25 KPX K ograve -25 KPX K ohungarumlaut -25 KPX K omacron -25 KPX K oslash -25 KPX K otilde -25 KPX K u -15 KPX K uacute -15 KPX K ucircumflex -15 KPX K udieresis -15 KPX K ugrave -15 KPX K uhungarumlaut -15 KPX K umacron -15 KPX K uogonek -15 KPX K uring -15 KPX K y -45 KPX K yacute -45 KPX K ydieresis -45 KPX Kcommaaccent O -30 KPX Kcommaaccent Oacute -30 KPX Kcommaaccent Ocircumflex -30 KPX Kcommaaccent Odieresis -30 KPX Kcommaaccent Ograve -30 KPX Kcommaaccent Ohungarumlaut -30 KPX Kcommaaccent Omacron -30 KPX Kcommaaccent Oslash -30 KPX Kcommaaccent Otilde -30 KPX Kcommaaccent e -25 KPX Kcommaaccent eacute -25 KPX Kcommaaccent ecaron -25 KPX Kcommaaccent ecircumflex -25 KPX Kcommaaccent edieresis -25 KPX Kcommaaccent edotaccent -25 KPX Kcommaaccent egrave -25 KPX Kcommaaccent emacron -25 KPX Kcommaaccent eogonek -25 KPX Kcommaaccent o -25 KPX Kcommaaccent oacute -25 KPX Kcommaaccent ocircumflex -25 KPX Kcommaaccent odieresis -25 KPX Kcommaaccent ograve -25 KPX Kcommaaccent ohungarumlaut -25 KPX Kcommaaccent omacron -25 KPX Kcommaaccent oslash -25 KPX Kcommaaccent otilde -25 KPX Kcommaaccent u -15 KPX Kcommaaccent uacute -15 KPX Kcommaaccent ucircumflex -15 KPX Kcommaaccent udieresis -15 KPX Kcommaaccent ugrave -15 KPX Kcommaaccent uhungarumlaut -15 KPX Kcommaaccent umacron -15 KPX Kcommaaccent uogonek -15 KPX Kcommaaccent uring -15 KPX Kcommaaccent y -45 KPX Kcommaaccent yacute -45 KPX Kcommaaccent ydieresis -45 KPX L T -92 KPX L Tcaron -92 KPX L Tcommaaccent -92 KPX L V -92 KPX L W -92 KPX L Y -92 KPX L Yacute -92 KPX L Ydieresis -92 KPX L quotedblright -20 KPX L quoteright -110 KPX L y -55 KPX L yacute -55 KPX L ydieresis -55 KPX Lacute T -92 KPX Lacute Tcaron -92 KPX Lacute Tcommaaccent -92 KPX Lacute V -92 KPX Lacute W -92 KPX Lacute Y -92 KPX Lacute Yacute -92 KPX Lacute Ydieresis -92 KPX Lacute quotedblright -20 KPX Lacute quoteright -110 KPX Lacute y -55 KPX Lacute yacute -55 KPX Lacute ydieresis -55 KPX Lcommaaccent T -92 KPX Lcommaaccent Tcaron -92 KPX Lcommaaccent Tcommaaccent -92 KPX Lcommaaccent V -92 KPX Lcommaaccent W -92 KPX Lcommaaccent Y -92 KPX Lcommaaccent Yacute -92 KPX Lcommaaccent Ydieresis -92 KPX Lcommaaccent quotedblright -20 KPX Lcommaaccent quoteright -110 KPX Lcommaaccent y -55 KPX Lcommaaccent yacute -55 KPX Lcommaaccent ydieresis -55 KPX Lslash T -92 KPX Lslash Tcaron -92 KPX Lslash Tcommaaccent -92 KPX Lslash V -92 KPX Lslash W -92 KPX Lslash Y -92 KPX Lslash Yacute -92 KPX Lslash Ydieresis -92 KPX Lslash quotedblright -20 KPX Lslash quoteright -110 KPX Lslash y -55 KPX Lslash yacute -55 KPX Lslash ydieresis -55 KPX N A -20 KPX N Aacute -20 KPX N Abreve -20 KPX N Acircumflex -20 KPX N Adieresis -20 KPX N Agrave -20 KPX N Amacron -20 KPX N Aogonek -20 KPX N Aring -20 KPX N Atilde -20 KPX Nacute A -20 KPX Nacute Aacute -20 KPX Nacute Abreve -20 KPX Nacute Acircumflex -20 KPX Nacute Adieresis -20 KPX Nacute Agrave -20 KPX Nacute Amacron -20 KPX Nacute Aogonek -20 KPX Nacute Aring -20 KPX Nacute Atilde -20 KPX Ncaron A -20 KPX Ncaron Aacute -20 KPX Ncaron Abreve -20 KPX Ncaron Acircumflex -20 KPX Ncaron Adieresis -20 KPX Ncaron Agrave -20 KPX Ncaron Amacron -20 KPX Ncaron Aogonek -20 KPX Ncaron Aring -20 KPX Ncaron Atilde -20 KPX Ncommaaccent A -20 KPX Ncommaaccent Aacute -20 KPX Ncommaaccent Abreve -20 KPX Ncommaaccent Acircumflex -20 KPX Ncommaaccent Adieresis -20 KPX Ncommaaccent Agrave -20 KPX Ncommaaccent Amacron -20 KPX Ncommaaccent Aogonek -20 KPX Ncommaaccent Aring -20 KPX Ncommaaccent Atilde -20 KPX Ntilde A -20 KPX Ntilde Aacute -20 KPX Ntilde Abreve -20 KPX Ntilde Acircumflex -20 KPX Ntilde Adieresis -20 KPX Ntilde Agrave -20 KPX Ntilde Amacron -20 KPX Ntilde Aogonek -20 KPX Ntilde Aring -20 KPX Ntilde Atilde -20 KPX O A -40 KPX O Aacute -40 KPX O Abreve -40 KPX O Acircumflex -40 KPX O Adieresis -40 KPX O Agrave -40 KPX O Amacron -40 KPX O Aogonek -40 KPX O Aring -40 KPX O Atilde -40 KPX O T -40 KPX O Tcaron -40 KPX O Tcommaaccent -40 KPX O V -50 KPX O W -50 KPX O X -40 KPX O Y -50 KPX O Yacute -50 KPX O Ydieresis -50 KPX Oacute A -40 KPX Oacute Aacute -40 KPX Oacute Abreve -40 KPX Oacute Acircumflex -40 KPX Oacute Adieresis -40 KPX Oacute Agrave -40 KPX Oacute Amacron -40 KPX Oacute Aogonek -40 KPX Oacute Aring -40 KPX Oacute Atilde -40 KPX Oacute T -40 KPX Oacute Tcaron -40 KPX Oacute Tcommaaccent -40 KPX Oacute V -50 KPX Oacute W -50 KPX Oacute X -40 KPX Oacute Y -50 KPX Oacute Yacute -50 KPX Oacute Ydieresis -50 KPX Ocircumflex A -40 KPX Ocircumflex Aacute -40 KPX Ocircumflex Abreve -40 KPX Ocircumflex Acircumflex -40 KPX Ocircumflex Adieresis -40 KPX Ocircumflex Agrave -40 KPX Ocircumflex Amacron -40 KPX Ocircumflex Aogonek -40 KPX Ocircumflex Aring -40 KPX Ocircumflex Atilde -40 KPX Ocircumflex T -40 KPX Ocircumflex Tcaron -40 KPX Ocircumflex Tcommaaccent -40 KPX Ocircumflex V -50 KPX Ocircumflex W -50 KPX Ocircumflex X -40 KPX Ocircumflex Y -50 KPX Ocircumflex Yacute -50 KPX Ocircumflex Ydieresis -50 KPX Odieresis A -40 KPX Odieresis Aacute -40 KPX Odieresis Abreve -40 KPX Odieresis Acircumflex -40 KPX Odieresis Adieresis -40 KPX Odieresis Agrave -40 KPX Odieresis Amacron -40 KPX Odieresis Aogonek -40 KPX Odieresis Aring -40 KPX Odieresis Atilde -40 KPX Odieresis T -40 KPX Odieresis Tcaron -40 KPX Odieresis Tcommaaccent -40 KPX Odieresis V -50 KPX Odieresis W -50 KPX Odieresis X -40 KPX Odieresis Y -50 KPX Odieresis Yacute -50 KPX Odieresis Ydieresis -50 KPX Ograve A -40 KPX Ograve Aacute -40 KPX Ograve Abreve -40 KPX Ograve Acircumflex -40 KPX Ograve Adieresis -40 KPX Ograve Agrave -40 KPX Ograve Amacron -40 KPX Ograve Aogonek -40 KPX Ograve Aring -40 KPX Ograve Atilde -40 KPX Ograve T -40 KPX Ograve Tcaron -40 KPX Ograve Tcommaaccent -40 KPX Ograve V -50 KPX Ograve W -50 KPX Ograve X -40 KPX Ograve Y -50 KPX Ograve Yacute -50 KPX Ograve Ydieresis -50 KPX Ohungarumlaut A -40 KPX Ohungarumlaut Aacute -40 KPX Ohungarumlaut Abreve -40 KPX Ohungarumlaut Acircumflex -40 KPX Ohungarumlaut Adieresis -40 KPX Ohungarumlaut Agrave -40 KPX Ohungarumlaut Amacron -40 KPX Ohungarumlaut Aogonek -40 KPX Ohungarumlaut Aring -40 KPX Ohungarumlaut Atilde -40 KPX Ohungarumlaut T -40 KPX Ohungarumlaut Tcaron -40 KPX Ohungarumlaut Tcommaaccent -40 KPX Ohungarumlaut V -50 KPX Ohungarumlaut W -50 KPX Ohungarumlaut X -40 KPX Ohungarumlaut Y -50 KPX Ohungarumlaut Yacute -50 KPX Ohungarumlaut Ydieresis -50 KPX Omacron A -40 KPX Omacron Aacute -40 KPX Omacron Abreve -40 KPX Omacron Acircumflex -40 KPX Omacron Adieresis -40 KPX Omacron Agrave -40 KPX Omacron Amacron -40 KPX Omacron Aogonek -40 KPX Omacron Aring -40 KPX Omacron Atilde -40 KPX Omacron T -40 KPX Omacron Tcaron -40 KPX Omacron Tcommaaccent -40 KPX Omacron V -50 KPX Omacron W -50 KPX Omacron X -40 KPX Omacron Y -50 KPX Omacron Yacute -50 KPX Omacron Ydieresis -50 KPX Oslash A -40 KPX Oslash Aacute -40 KPX Oslash Abreve -40 KPX Oslash Acircumflex -40 KPX Oslash Adieresis -40 KPX Oslash Agrave -40 KPX Oslash Amacron -40 KPX Oslash Aogonek -40 KPX Oslash Aring -40 KPX Oslash Atilde -40 KPX Oslash T -40 KPX Oslash Tcaron -40 KPX Oslash Tcommaaccent -40 KPX Oslash V -50 KPX Oslash W -50 KPX Oslash X -40 KPX Oslash Y -50 KPX Oslash Yacute -50 KPX Oslash Ydieresis -50 KPX Otilde A -40 KPX Otilde Aacute -40 KPX Otilde Abreve -40 KPX Otilde Acircumflex -40 KPX Otilde Adieresis -40 KPX Otilde Agrave -40 KPX Otilde Amacron -40 KPX Otilde Aogonek -40 KPX Otilde Aring -40 KPX Otilde Atilde -40 KPX Otilde T -40 KPX Otilde Tcaron -40 KPX Otilde Tcommaaccent -40 KPX Otilde V -50 KPX Otilde W -50 KPX Otilde X -40 KPX Otilde Y -50 KPX Otilde Yacute -50 KPX Otilde Ydieresis -50 KPX P A -74 KPX P Aacute -74 KPX P Abreve -74 KPX P Acircumflex -74 KPX P Adieresis -74 KPX P Agrave -74 KPX P Amacron -74 KPX P Aogonek -74 KPX P Aring -74 KPX P Atilde -74 KPX P a -10 KPX P aacute -10 KPX P abreve -10 KPX P acircumflex -10 KPX P adieresis -10 KPX P agrave -10 KPX P amacron -10 KPX P aogonek -10 KPX P aring -10 KPX P atilde -10 KPX P comma -92 KPX P e -20 KPX P eacute -20 KPX P ecaron -20 KPX P ecircumflex -20 KPX P edieresis -20 KPX P edotaccent -20 KPX P egrave -20 KPX P emacron -20 KPX P eogonek -20 KPX P o -20 KPX P oacute -20 KPX P ocircumflex -20 KPX P odieresis -20 KPX P ograve -20 KPX P ohungarumlaut -20 KPX P omacron -20 KPX P oslash -20 KPX P otilde -20 KPX P period -110 KPX Q U -10 KPX Q Uacute -10 KPX Q Ucircumflex -10 KPX Q Udieresis -10 KPX Q Ugrave -10 KPX Q Uhungarumlaut -10 KPX Q Umacron -10 KPX Q Uogonek -10 KPX Q Uring -10 KPX Q period -20 KPX R O -30 KPX R Oacute -30 KPX R Ocircumflex -30 KPX R Odieresis -30 KPX R Ograve -30 KPX R Ohungarumlaut -30 KPX R Omacron -30 KPX R Oslash -30 KPX R Otilde -30 KPX R T -40 KPX R Tcaron -40 KPX R Tcommaaccent -40 KPX R U -30 KPX R Uacute -30 KPX R Ucircumflex -30 KPX R Udieresis -30 KPX R Ugrave -30 KPX R Uhungarumlaut -30 KPX R Umacron -30 KPX R Uogonek -30 KPX R Uring -30 KPX R V -55 KPX R W -35 KPX R Y -35 KPX R Yacute -35 KPX R Ydieresis -35 KPX Racute O -30 KPX Racute Oacute -30 KPX Racute Ocircumflex -30 KPX Racute Odieresis -30 KPX Racute Ograve -30 KPX Racute Ohungarumlaut -30 KPX Racute Omacron -30 KPX Racute Oslash -30 KPX Racute Otilde -30 KPX Racute T -40 KPX Racute Tcaron -40 KPX Racute Tcommaaccent -40 KPX Racute U -30 KPX Racute Uacute -30 KPX Racute Ucircumflex -30 KPX Racute Udieresis -30 KPX Racute Ugrave -30 KPX Racute Uhungarumlaut -30 KPX Racute Umacron -30 KPX Racute Uogonek -30 KPX Racute Uring -30 KPX Racute V -55 KPX Racute W -35 KPX Racute Y -35 KPX Racute Yacute -35 KPX Racute Ydieresis -35 KPX Rcaron O -30 KPX Rcaron Oacute -30 KPX Rcaron Ocircumflex -30 KPX Rcaron Odieresis -30 KPX Rcaron Ograve -30 KPX Rcaron Ohungarumlaut -30 KPX Rcaron Omacron -30 KPX Rcaron Oslash -30 KPX Rcaron Otilde -30 KPX Rcaron T -40 KPX Rcaron Tcaron -40 KPX Rcaron Tcommaaccent -40 KPX Rcaron U -30 KPX Rcaron Uacute -30 KPX Rcaron Ucircumflex -30 KPX Rcaron Udieresis -30 KPX Rcaron Ugrave -30 KPX Rcaron Uhungarumlaut -30 KPX Rcaron Umacron -30 KPX Rcaron Uogonek -30 KPX Rcaron Uring -30 KPX Rcaron V -55 KPX Rcaron W -35 KPX Rcaron Y -35 KPX Rcaron Yacute -35 KPX Rcaron Ydieresis -35 KPX Rcommaaccent O -30 KPX Rcommaaccent Oacute -30 KPX Rcommaaccent Ocircumflex -30 KPX Rcommaaccent Odieresis -30 KPX Rcommaaccent Ograve -30 KPX Rcommaaccent Ohungarumlaut -30 KPX Rcommaaccent Omacron -30 KPX Rcommaaccent Oslash -30 KPX Rcommaaccent Otilde -30 KPX Rcommaaccent T -40 KPX Rcommaaccent Tcaron -40 KPX Rcommaaccent Tcommaaccent -40 KPX Rcommaaccent U -30 KPX Rcommaaccent Uacute -30 KPX Rcommaaccent Ucircumflex -30 KPX Rcommaaccent Udieresis -30 KPX Rcommaaccent Ugrave -30 KPX Rcommaaccent Uhungarumlaut -30 KPX Rcommaaccent Umacron -30 KPX Rcommaaccent Uogonek -30 KPX Rcommaaccent Uring -30 KPX Rcommaaccent V -55 KPX Rcommaaccent W -35 KPX Rcommaaccent Y -35 KPX Rcommaaccent Yacute -35 KPX Rcommaaccent Ydieresis -35 KPX T A -90 KPX T Aacute -90 KPX T Abreve -90 KPX T Acircumflex -90 KPX T Adieresis -90 KPX T Agrave -90 KPX T Amacron -90 KPX T Aogonek -90 KPX T Aring -90 KPX T Atilde -90 KPX T O -18 KPX T Oacute -18 KPX T Ocircumflex -18 KPX T Odieresis -18 KPX T Ograve -18 KPX T Ohungarumlaut -18 KPX T Omacron -18 KPX T Oslash -18 KPX T Otilde -18 KPX T a -92 KPX T aacute -92 KPX T abreve -52 KPX T acircumflex -52 KPX T adieresis -52 KPX T agrave -52 KPX T amacron -52 KPX T aogonek -92 KPX T aring -92 KPX T atilde -52 KPX T colon -74 KPX T comma -74 KPX T e -92 KPX T eacute -92 KPX T ecaron -92 KPX T ecircumflex -92 KPX T edieresis -52 KPX T edotaccent -92 KPX T egrave -52 KPX T emacron -52 KPX T eogonek -92 KPX T hyphen -92 KPX T i -18 KPX T iacute -18 KPX T iogonek -18 KPX T o -92 KPX T oacute -92 KPX T ocircumflex -92 KPX T odieresis -92 KPX T ograve -92 KPX T ohungarumlaut -92 KPX T omacron -92 KPX T oslash -92 KPX T otilde -92 KPX T period -90 KPX T r -74 KPX T racute -74 KPX T rcaron -74 KPX T rcommaaccent -74 KPX T semicolon -74 KPX T u -92 KPX T uacute -92 KPX T ucircumflex -92 KPX T udieresis -92 KPX T ugrave -92 KPX T uhungarumlaut -92 KPX T umacron -92 KPX T uogonek -92 KPX T uring -92 KPX T w -74 KPX T y -34 KPX T yacute -34 KPX T ydieresis -34 KPX Tcaron A -90 KPX Tcaron Aacute -90 KPX Tcaron Abreve -90 KPX Tcaron Acircumflex -90 KPX Tcaron Adieresis -90 KPX Tcaron Agrave -90 KPX Tcaron Amacron -90 KPX Tcaron Aogonek -90 KPX Tcaron Aring -90 KPX Tcaron Atilde -90 KPX Tcaron O -18 KPX Tcaron Oacute -18 KPX Tcaron Ocircumflex -18 KPX Tcaron Odieresis -18 KPX Tcaron Ograve -18 KPX Tcaron Ohungarumlaut -18 KPX Tcaron Omacron -18 KPX Tcaron Oslash -18 KPX Tcaron Otilde -18 KPX Tcaron a -92 KPX Tcaron aacute -92 KPX Tcaron abreve -52 KPX Tcaron acircumflex -52 KPX Tcaron adieresis -52 KPX Tcaron agrave -52 KPX Tcaron amacron -52 KPX Tcaron aogonek -92 KPX Tcaron aring -92 KPX Tcaron atilde -52 KPX Tcaron colon -74 KPX Tcaron comma -74 KPX Tcaron e -92 KPX Tcaron eacute -92 KPX Tcaron ecaron -92 KPX Tcaron ecircumflex -92 KPX Tcaron edieresis -52 KPX Tcaron edotaccent -92 KPX Tcaron egrave -52 KPX Tcaron emacron -52 KPX Tcaron eogonek -92 KPX Tcaron hyphen -92 KPX Tcaron i -18 KPX Tcaron iacute -18 KPX Tcaron iogonek -18 KPX Tcaron o -92 KPX Tcaron oacute -92 KPX Tcaron ocircumflex -92 KPX Tcaron odieresis -92 KPX Tcaron ograve -92 KPX Tcaron ohungarumlaut -92 KPX Tcaron omacron -92 KPX Tcaron oslash -92 KPX Tcaron otilde -92 KPX Tcaron period -90 KPX Tcaron r -74 KPX Tcaron racute -74 KPX Tcaron rcaron -74 KPX Tcaron rcommaaccent -74 KPX Tcaron semicolon -74 KPX Tcaron u -92 KPX Tcaron uacute -92 KPX Tcaron ucircumflex -92 KPX Tcaron udieresis -92 KPX Tcaron ugrave -92 KPX Tcaron uhungarumlaut -92 KPX Tcaron umacron -92 KPX Tcaron uogonek -92 KPX Tcaron uring -92 KPX Tcaron w -74 KPX Tcaron y -34 KPX Tcaron yacute -34 KPX Tcaron ydieresis -34 KPX Tcommaaccent A -90 KPX Tcommaaccent Aacute -90 KPX Tcommaaccent Abreve -90 KPX Tcommaaccent Acircumflex -90 KPX Tcommaaccent Adieresis -90 KPX Tcommaaccent Agrave -90 KPX Tcommaaccent Amacron -90 KPX Tcommaaccent Aogonek -90 KPX Tcommaaccent Aring -90 KPX Tcommaaccent Atilde -90 KPX Tcommaaccent O -18 KPX Tcommaaccent Oacute -18 KPX Tcommaaccent Ocircumflex -18 KPX Tcommaaccent Odieresis -18 KPX Tcommaaccent Ograve -18 KPX Tcommaaccent Ohungarumlaut -18 KPX Tcommaaccent Omacron -18 KPX Tcommaaccent Oslash -18 KPX Tcommaaccent Otilde -18 KPX Tcommaaccent a -92 KPX Tcommaaccent aacute -92 KPX Tcommaaccent abreve -52 KPX Tcommaaccent acircumflex -52 KPX Tcommaaccent adieresis -52 KPX Tcommaaccent agrave -52 KPX Tcommaaccent amacron -52 KPX Tcommaaccent aogonek -92 KPX Tcommaaccent aring -92 KPX Tcommaaccent atilde -52 KPX Tcommaaccent colon -74 KPX Tcommaaccent comma -74 KPX Tcommaaccent e -92 KPX Tcommaaccent eacute -92 KPX Tcommaaccent ecaron -92 KPX Tcommaaccent ecircumflex -92 KPX Tcommaaccent edieresis -52 KPX Tcommaaccent edotaccent -92 KPX Tcommaaccent egrave -52 KPX Tcommaaccent emacron -52 KPX Tcommaaccent eogonek -92 KPX Tcommaaccent hyphen -92 KPX Tcommaaccent i -18 KPX Tcommaaccent iacute -18 KPX Tcommaaccent iogonek -18 KPX Tcommaaccent o -92 KPX Tcommaaccent oacute -92 KPX Tcommaaccent ocircumflex -92 KPX Tcommaaccent odieresis -92 KPX Tcommaaccent ograve -92 KPX Tcommaaccent ohungarumlaut -92 KPX Tcommaaccent omacron -92 KPX Tcommaaccent oslash -92 KPX Tcommaaccent otilde -92 KPX Tcommaaccent period -90 KPX Tcommaaccent r -74 KPX Tcommaaccent racute -74 KPX Tcommaaccent rcaron -74 KPX Tcommaaccent rcommaaccent -74 KPX Tcommaaccent semicolon -74 KPX Tcommaaccent u -92 KPX Tcommaaccent uacute -92 KPX Tcommaaccent ucircumflex -92 KPX Tcommaaccent udieresis -92 KPX Tcommaaccent ugrave -92 KPX Tcommaaccent uhungarumlaut -92 KPX Tcommaaccent umacron -92 KPX Tcommaaccent uogonek -92 KPX Tcommaaccent uring -92 KPX Tcommaaccent w -74 KPX Tcommaaccent y -34 KPX Tcommaaccent yacute -34 KPX Tcommaaccent ydieresis -34 KPX U A -60 KPX U Aacute -60 KPX U Abreve -60 KPX U Acircumflex -60 KPX U Adieresis -60 KPX U Agrave -60 KPX U Amacron -60 KPX U Aogonek -60 KPX U Aring -60 KPX U Atilde -60 KPX U comma -50 KPX U period -50 KPX Uacute A -60 KPX Uacute Aacute -60 KPX Uacute Abreve -60 KPX Uacute Acircumflex -60 KPX Uacute Adieresis -60 KPX Uacute Agrave -60 KPX Uacute Amacron -60 KPX Uacute Aogonek -60 KPX Uacute Aring -60 KPX Uacute Atilde -60 KPX Uacute comma -50 KPX Uacute period -50 KPX Ucircumflex A -60 KPX Ucircumflex Aacute -60 KPX Ucircumflex Abreve -60 KPX Ucircumflex Acircumflex -60 KPX Ucircumflex Adieresis -60 KPX Ucircumflex Agrave -60 KPX Ucircumflex Amacron -60 KPX Ucircumflex Aogonek -60 KPX Ucircumflex Aring -60 KPX Ucircumflex Atilde -60 KPX Ucircumflex comma -50 KPX Ucircumflex period -50 KPX Udieresis A -60 KPX Udieresis Aacute -60 KPX Udieresis Abreve -60 KPX Udieresis Acircumflex -60 KPX Udieresis Adieresis -60 KPX Udieresis Agrave -60 KPX Udieresis Amacron -60 KPX Udieresis Aogonek -60 KPX Udieresis Aring -60 KPX Udieresis Atilde -60 KPX Udieresis comma -50 KPX Udieresis period -50 KPX Ugrave A -60 KPX Ugrave Aacute -60 KPX Ugrave Abreve -60 KPX Ugrave Acircumflex -60 KPX Ugrave Adieresis -60 KPX Ugrave Agrave -60 KPX Ugrave Amacron -60 KPX Ugrave Aogonek -60 KPX Ugrave Aring -60 KPX Ugrave Atilde -60 KPX Ugrave comma -50 KPX Ugrave period -50 KPX Uhungarumlaut A -60 KPX Uhungarumlaut Aacute -60 KPX Uhungarumlaut Abreve -60 KPX Uhungarumlaut Acircumflex -60 KPX Uhungarumlaut Adieresis -60 KPX Uhungarumlaut Agrave -60 KPX Uhungarumlaut Amacron -60 KPX Uhungarumlaut Aogonek -60 KPX Uhungarumlaut Aring -60 KPX Uhungarumlaut Atilde -60 KPX Uhungarumlaut comma -50 KPX Uhungarumlaut period -50 KPX Umacron A -60 KPX Umacron Aacute -60 KPX Umacron Abreve -60 KPX Umacron Acircumflex -60 KPX Umacron Adieresis -60 KPX Umacron Agrave -60 KPX Umacron Amacron -60 KPX Umacron Aogonek -60 KPX Umacron Aring -60 KPX Umacron Atilde -60 KPX Umacron comma -50 KPX Umacron period -50 KPX Uogonek A -60 KPX Uogonek Aacute -60 KPX Uogonek Abreve -60 KPX Uogonek Acircumflex -60 KPX Uogonek Adieresis -60 KPX Uogonek Agrave -60 KPX Uogonek Amacron -60 KPX Uogonek Aogonek -60 KPX Uogonek Aring -60 KPX Uogonek Atilde -60 KPX Uogonek comma -50 KPX Uogonek period -50 KPX Uring A -60 KPX Uring Aacute -60 KPX Uring Abreve -60 KPX Uring Acircumflex -60 KPX Uring Adieresis -60 KPX Uring Agrave -60 KPX Uring Amacron -60 KPX Uring Aogonek -60 KPX Uring Aring -60 KPX Uring Atilde -60 KPX Uring comma -50 KPX Uring period -50 KPX V A -135 KPX V Aacute -135 KPX V Abreve -135 KPX V Acircumflex -135 KPX V Adieresis -135 KPX V Agrave -135 KPX V Amacron -135 KPX V Aogonek -135 KPX V Aring -135 KPX V Atilde -135 KPX V G -30 KPX V Gbreve -30 KPX V Gcommaaccent -30 KPX V O -45 KPX V Oacute -45 KPX V Ocircumflex -45 KPX V Odieresis -45 KPX V Ograve -45 KPX V Ohungarumlaut -45 KPX V Omacron -45 KPX V Oslash -45 KPX V Otilde -45 KPX V a -92 KPX V aacute -92 KPX V abreve -92 KPX V acircumflex -92 KPX V adieresis -92 KPX V agrave -92 KPX V amacron -92 KPX V aogonek -92 KPX V aring -92 KPX V atilde -92 KPX V colon -92 KPX V comma -129 KPX V e -100 KPX V eacute -100 KPX V ecaron -100 KPX V ecircumflex -100 KPX V edieresis -100 KPX V edotaccent -100 KPX V egrave -100 KPX V emacron -100 KPX V eogonek -100 KPX V hyphen -74 KPX V i -37 KPX V iacute -37 KPX V icircumflex -37 KPX V idieresis -37 KPX V igrave -37 KPX V imacron -37 KPX V iogonek -37 KPX V o -100 KPX V oacute -100 KPX V ocircumflex -100 KPX V odieresis -100 KPX V ograve -100 KPX V ohungarumlaut -100 KPX V omacron -100 KPX V oslash -100 KPX V otilde -100 KPX V period -145 KPX V semicolon -92 KPX V u -92 KPX V uacute -92 KPX V ucircumflex -92 KPX V udieresis -92 KPX V ugrave -92 KPX V uhungarumlaut -92 KPX V umacron -92 KPX V uogonek -92 KPX V uring -92 KPX W A -120 KPX W Aacute -120 KPX W Abreve -120 KPX W Acircumflex -120 KPX W Adieresis -120 KPX W Agrave -120 KPX W Amacron -120 KPX W Aogonek -120 KPX W Aring -120 KPX W Atilde -120 KPX W O -10 KPX W Oacute -10 KPX W Ocircumflex -10 KPX W Odieresis -10 KPX W Ograve -10 KPX W Ohungarumlaut -10 KPX W Omacron -10 KPX W Oslash -10 KPX W Otilde -10 KPX W a -65 KPX W aacute -65 KPX W abreve -65 KPX W acircumflex -65 KPX W adieresis -65 KPX W agrave -65 KPX W amacron -65 KPX W aogonek -65 KPX W aring -65 KPX W atilde -65 KPX W colon -55 KPX W comma -92 KPX W e -65 KPX W eacute -65 KPX W ecaron -65 KPX W ecircumflex -65 KPX W edieresis -65 KPX W edotaccent -65 KPX W egrave -65 KPX W emacron -65 KPX W eogonek -65 KPX W hyphen -37 KPX W i -18 KPX W iacute -18 KPX W iogonek -18 KPX W o -75 KPX W oacute -75 KPX W ocircumflex -75 KPX W odieresis -75 KPX W ograve -75 KPX W ohungarumlaut -75 KPX W omacron -75 KPX W oslash -75 KPX W otilde -75 KPX W period -92 KPX W semicolon -55 KPX W u -50 KPX W uacute -50 KPX W ucircumflex -50 KPX W udieresis -50 KPX W ugrave -50 KPX W uhungarumlaut -50 KPX W umacron -50 KPX W uogonek -50 KPX W uring -50 KPX W y -60 KPX W yacute -60 KPX W ydieresis -60 KPX Y A -110 KPX Y Aacute -110 KPX Y Abreve -110 KPX Y Acircumflex -110 KPX Y Adieresis -110 KPX Y Agrave -110 KPX Y Amacron -110 KPX Y Aogonek -110 KPX Y Aring -110 KPX Y Atilde -110 KPX Y O -35 KPX Y Oacute -35 KPX Y Ocircumflex -35 KPX Y Odieresis -35 KPX Y Ograve -35 KPX Y Ohungarumlaut -35 KPX Y Omacron -35 KPX Y Oslash -35 KPX Y Otilde -35 KPX Y a -85 KPX Y aacute -85 KPX Y abreve -85 KPX Y acircumflex -85 KPX Y adieresis -85 KPX Y agrave -85 KPX Y amacron -85 KPX Y aogonek -85 KPX Y aring -85 KPX Y atilde -85 KPX Y colon -92 KPX Y comma -92 KPX Y e -111 KPX Y eacute -111 KPX Y ecaron -111 KPX Y ecircumflex -111 KPX Y edieresis -71 KPX Y edotaccent -111 KPX Y egrave -71 KPX Y emacron -71 KPX Y eogonek -111 KPX Y hyphen -92 KPX Y i -37 KPX Y iacute -37 KPX Y iogonek -37 KPX Y o -111 KPX Y oacute -111 KPX Y ocircumflex -111 KPX Y odieresis -111 KPX Y ograve -111 KPX Y ohungarumlaut -111 KPX Y omacron -111 KPX Y oslash -111 KPX Y otilde -111 KPX Y period -92 KPX Y semicolon -92 KPX Y u -92 KPX Y uacute -92 KPX Y ucircumflex -92 KPX Y udieresis -92 KPX Y ugrave -92 KPX Y uhungarumlaut -92 KPX Y umacron -92 KPX Y uogonek -92 KPX Y uring -92 KPX Yacute A -110 KPX Yacute Aacute -110 KPX Yacute Abreve -110 KPX Yacute Acircumflex -110 KPX Yacute Adieresis -110 KPX Yacute Agrave -110 KPX Yacute Amacron -110 KPX Yacute Aogonek -110 KPX Yacute Aring -110 KPX Yacute Atilde -110 KPX Yacute O -35 KPX Yacute Oacute -35 KPX Yacute Ocircumflex -35 KPX Yacute Odieresis -35 KPX Yacute Ograve -35 KPX Yacute Ohungarumlaut -35 KPX Yacute Omacron -35 KPX Yacute Oslash -35 KPX Yacute Otilde -35 KPX Yacute a -85 KPX Yacute aacute -85 KPX Yacute abreve -85 KPX Yacute acircumflex -85 KPX Yacute adieresis -85 KPX Yacute agrave -85 KPX Yacute amacron -85 KPX Yacute aogonek -85 KPX Yacute aring -85 KPX Yacute atilde -85 KPX Yacute colon -92 KPX Yacute comma -92 KPX Yacute e -111 KPX Yacute eacute -111 KPX Yacute ecaron -111 KPX Yacute ecircumflex -111 KPX Yacute edieresis -71 KPX Yacute edotaccent -111 KPX Yacute egrave -71 KPX Yacute emacron -71 KPX Yacute eogonek -111 KPX Yacute hyphen -92 KPX Yacute i -37 KPX Yacute iacute -37 KPX Yacute iogonek -37 KPX Yacute o -111 KPX Yacute oacute -111 KPX Yacute ocircumflex -111 KPX Yacute odieresis -111 KPX Yacute ograve -111 KPX Yacute ohungarumlaut -111 KPX Yacute omacron -111 KPX Yacute oslash -111 KPX Yacute otilde -111 KPX Yacute period -92 KPX Yacute semicolon -92 KPX Yacute u -92 KPX Yacute uacute -92 KPX Yacute ucircumflex -92 KPX Yacute udieresis -92 KPX Yacute ugrave -92 KPX Yacute uhungarumlaut -92 KPX Yacute umacron -92 KPX Yacute uogonek -92 KPX Yacute uring -92 KPX Ydieresis A -110 KPX Ydieresis Aacute -110 KPX Ydieresis Abreve -110 KPX Ydieresis Acircumflex -110 KPX Ydieresis Adieresis -110 KPX Ydieresis Agrave -110 KPX Ydieresis Amacron -110 KPX Ydieresis Aogonek -110 KPX Ydieresis Aring -110 KPX Ydieresis Atilde -110 KPX Ydieresis O -35 KPX Ydieresis Oacute -35 KPX Ydieresis Ocircumflex -35 KPX Ydieresis Odieresis -35 KPX Ydieresis Ograve -35 KPX Ydieresis Ohungarumlaut -35 KPX Ydieresis Omacron -35 KPX Ydieresis Oslash -35 KPX Ydieresis Otilde -35 KPX Ydieresis a -85 KPX Ydieresis aacute -85 KPX Ydieresis abreve -85 KPX Ydieresis acircumflex -85 KPX Ydieresis adieresis -85 KPX Ydieresis agrave -85 KPX Ydieresis amacron -85 KPX Ydieresis aogonek -85 KPX Ydieresis aring -85 KPX Ydieresis atilde -85 KPX Ydieresis colon -92 KPX Ydieresis comma -92 KPX Ydieresis e -111 KPX Ydieresis eacute -111 KPX Ydieresis ecaron -111 KPX Ydieresis ecircumflex -111 KPX Ydieresis edieresis -71 KPX Ydieresis edotaccent -111 KPX Ydieresis egrave -71 KPX Ydieresis emacron -71 KPX Ydieresis eogonek -111 KPX Ydieresis hyphen -92 KPX Ydieresis i -37 KPX Ydieresis iacute -37 KPX Ydieresis iogonek -37 KPX Ydieresis o -111 KPX Ydieresis oacute -111 KPX Ydieresis ocircumflex -111 KPX Ydieresis odieresis -111 KPX Ydieresis ograve -111 KPX Ydieresis ohungarumlaut -111 KPX Ydieresis omacron -111 KPX Ydieresis oslash -111 KPX Ydieresis otilde -111 KPX Ydieresis period -92 KPX Ydieresis semicolon -92 KPX Ydieresis u -92 KPX Ydieresis uacute -92 KPX Ydieresis ucircumflex -92 KPX Ydieresis udieresis -92 KPX Ydieresis ugrave -92 KPX Ydieresis uhungarumlaut -92 KPX Ydieresis umacron -92 KPX Ydieresis uogonek -92 KPX Ydieresis uring -92 KPX a v -25 KPX aacute v -25 KPX abreve v -25 KPX acircumflex v -25 KPX adieresis v -25 KPX agrave v -25 KPX amacron v -25 KPX aogonek v -25 KPX aring v -25 KPX atilde v -25 KPX b b -10 KPX b period -40 KPX b u -20 KPX b uacute -20 KPX b ucircumflex -20 KPX b udieresis -20 KPX b ugrave -20 KPX b uhungarumlaut -20 KPX b umacron -20 KPX b uogonek -20 KPX b uring -20 KPX b v -15 KPX comma quotedblright -45 KPX comma quoteright -55 KPX d w -15 KPX dcroat w -15 KPX e v -15 KPX eacute v -15 KPX ecaron v -15 KPX ecircumflex v -15 KPX edieresis v -15 KPX edotaccent v -15 KPX egrave v -15 KPX emacron v -15 KPX eogonek v -15 KPX f comma -15 KPX f dotlessi -35 KPX f i -25 KPX f o -25 KPX f oacute -25 KPX f ocircumflex -25 KPX f odieresis -25 KPX f ograve -25 KPX f ohungarumlaut -25 KPX f omacron -25 KPX f oslash -25 KPX f otilde -25 KPX f period -15 KPX f quotedblright 50 KPX f quoteright 55 KPX g period -15 KPX gbreve period -15 KPX gcommaaccent period -15 KPX h y -15 KPX h yacute -15 KPX h ydieresis -15 KPX i v -10 KPX iacute v -10 KPX icircumflex v -10 KPX idieresis v -10 KPX igrave v -10 KPX imacron v -10 KPX iogonek v -10 KPX k e -10 KPX k eacute -10 KPX k ecaron -10 KPX k ecircumflex -10 KPX k edieresis -10 KPX k edotaccent -10 KPX k egrave -10 KPX k emacron -10 KPX k eogonek -10 KPX k o -15 KPX k oacute -15 KPX k ocircumflex -15 KPX k odieresis -15 KPX k ograve -15 KPX k ohungarumlaut -15 KPX k omacron -15 KPX k oslash -15 KPX k otilde -15 KPX k y -15 KPX k yacute -15 KPX k ydieresis -15 KPX kcommaaccent e -10 KPX kcommaaccent eacute -10 KPX kcommaaccent ecaron -10 KPX kcommaaccent ecircumflex -10 KPX kcommaaccent edieresis -10 KPX kcommaaccent edotaccent -10 KPX kcommaaccent egrave -10 KPX kcommaaccent emacron -10 KPX kcommaaccent eogonek -10 KPX kcommaaccent o -15 KPX kcommaaccent oacute -15 KPX kcommaaccent ocircumflex -15 KPX kcommaaccent odieresis -15 KPX kcommaaccent ograve -15 KPX kcommaaccent ohungarumlaut -15 KPX kcommaaccent omacron -15 KPX kcommaaccent oslash -15 KPX kcommaaccent otilde -15 KPX kcommaaccent y -15 KPX kcommaaccent yacute -15 KPX kcommaaccent ydieresis -15 KPX n v -40 KPX nacute v -40 KPX ncaron v -40 KPX ncommaaccent v -40 KPX ntilde v -40 KPX o v -10 KPX o w -10 KPX oacute v -10 KPX oacute w -10 KPX ocircumflex v -10 KPX ocircumflex w -10 KPX odieresis v -10 KPX odieresis w -10 KPX ograve v -10 KPX ograve w -10 KPX ohungarumlaut v -10 KPX ohungarumlaut w -10 KPX omacron v -10 KPX omacron w -10 KPX oslash v -10 KPX oslash w -10 KPX otilde v -10 KPX otilde w -10 KPX period quotedblright -55 KPX period quoteright -55 KPX quotedblleft A -10 KPX quotedblleft Aacute -10 KPX quotedblleft Abreve -10 KPX quotedblleft Acircumflex -10 KPX quotedblleft Adieresis -10 KPX quotedblleft Agrave -10 KPX quotedblleft Amacron -10 KPX quotedblleft Aogonek -10 KPX quotedblleft Aring -10 KPX quotedblleft Atilde -10 KPX quoteleft A -10 KPX quoteleft Aacute -10 KPX quoteleft Abreve -10 KPX quoteleft Acircumflex -10 KPX quoteleft Adieresis -10 KPX quoteleft Agrave -10 KPX quoteleft Amacron -10 KPX quoteleft Aogonek -10 KPX quoteleft Aring -10 KPX quoteleft Atilde -10 KPX quoteleft quoteleft -63 KPX quoteright d -20 KPX quoteright dcroat -20 KPX quoteright quoteright -63 KPX quoteright r -20 KPX quoteright racute -20 KPX quoteright rcaron -20 KPX quoteright rcommaaccent -20 KPX quoteright s -37 KPX quoteright sacute -37 KPX quoteright scaron -37 KPX quoteright scedilla -37 KPX quoteright scommaaccent -37 KPX quoteright space -74 KPX quoteright v -20 KPX r c -18 KPX r cacute -18 KPX r ccaron -18 KPX r ccedilla -18 KPX r comma -92 KPX r e -18 KPX r eacute -18 KPX r ecaron -18 KPX r ecircumflex -18 KPX r edieresis -18 KPX r edotaccent -18 KPX r egrave -18 KPX r emacron -18 KPX r eogonek -18 KPX r g -10 KPX r gbreve -10 KPX r gcommaaccent -10 KPX r hyphen -37 KPX r n -15 KPX r nacute -15 KPX r ncaron -15 KPX r ncommaaccent -15 KPX r ntilde -15 KPX r o -18 KPX r oacute -18 KPX r ocircumflex -18 KPX r odieresis -18 KPX r ograve -18 KPX r ohungarumlaut -18 KPX r omacron -18 KPX r oslash -18 KPX r otilde -18 KPX r p -10 KPX r period -100 KPX r q -18 KPX r v -10 KPX racute c -18 KPX racute cacute -18 KPX racute ccaron -18 KPX racute ccedilla -18 KPX racute comma -92 KPX racute e -18 KPX racute eacute -18 KPX racute ecaron -18 KPX racute ecircumflex -18 KPX racute edieresis -18 KPX racute edotaccent -18 KPX racute egrave -18 KPX racute emacron -18 KPX racute eogonek -18 KPX racute g -10 KPX racute gbreve -10 KPX racute gcommaaccent -10 KPX racute hyphen -37 KPX racute n -15 KPX racute nacute -15 KPX racute ncaron -15 KPX racute ncommaaccent -15 KPX racute ntilde -15 KPX racute o -18 KPX racute oacute -18 KPX racute ocircumflex -18 KPX racute odieresis -18 KPX racute ograve -18 KPX racute ohungarumlaut -18 KPX racute omacron -18 KPX racute oslash -18 KPX racute otilde -18 KPX racute p -10 KPX racute period -100 KPX racute q -18 KPX racute v -10 KPX rcaron c -18 KPX rcaron cacute -18 KPX rcaron ccaron -18 KPX rcaron ccedilla -18 KPX rcaron comma -92 KPX rcaron e -18 KPX rcaron eacute -18 KPX rcaron ecaron -18 KPX rcaron ecircumflex -18 KPX rcaron edieresis -18 KPX rcaron edotaccent -18 KPX rcaron egrave -18 KPX rcaron emacron -18 KPX rcaron eogonek -18 KPX rcaron g -10 KPX rcaron gbreve -10 KPX rcaron gcommaaccent -10 KPX rcaron hyphen -37 KPX rcaron n -15 KPX rcaron nacute -15 KPX rcaron ncaron -15 KPX rcaron ncommaaccent -15 KPX rcaron ntilde -15 KPX rcaron o -18 KPX rcaron oacute -18 KPX rcaron ocircumflex -18 KPX rcaron odieresis -18 KPX rcaron ograve -18 KPX rcaron ohungarumlaut -18 KPX rcaron omacron -18 KPX rcaron oslash -18 KPX rcaron otilde -18 KPX rcaron p -10 KPX rcaron period -100 KPX rcaron q -18 KPX rcaron v -10 KPX rcommaaccent c -18 KPX rcommaaccent cacute -18 KPX rcommaaccent ccaron -18 KPX rcommaaccent ccedilla -18 KPX rcommaaccent comma -92 KPX rcommaaccent e -18 KPX rcommaaccent eacute -18 KPX rcommaaccent ecaron -18 KPX rcommaaccent ecircumflex -18 KPX rcommaaccent edieresis -18 KPX rcommaaccent edotaccent -18 KPX rcommaaccent egrave -18 KPX rcommaaccent emacron -18 KPX rcommaaccent eogonek -18 KPX rcommaaccent g -10 KPX rcommaaccent gbreve -10 KPX rcommaaccent gcommaaccent -10 KPX rcommaaccent hyphen -37 KPX rcommaaccent n -15 KPX rcommaaccent nacute -15 KPX rcommaaccent ncaron -15 KPX rcommaaccent ncommaaccent -15 KPX rcommaaccent ntilde -15 KPX rcommaaccent o -18 KPX rcommaaccent oacute -18 KPX rcommaaccent ocircumflex -18 KPX rcommaaccent odieresis -18 KPX rcommaaccent ograve -18 KPX rcommaaccent ohungarumlaut -18 KPX rcommaaccent omacron -18 KPX rcommaaccent oslash -18 KPX rcommaaccent otilde -18 KPX rcommaaccent p -10 KPX rcommaaccent period -100 KPX rcommaaccent q -18 KPX rcommaaccent v -10 KPX space A -55 KPX space Aacute -55 KPX space Abreve -55 KPX space Acircumflex -55 KPX space Adieresis -55 KPX space Agrave -55 KPX space Amacron -55 KPX space Aogonek -55 KPX space Aring -55 KPX space Atilde -55 KPX space T -30 KPX space Tcaron -30 KPX space Tcommaaccent -30 KPX space V -45 KPX space W -30 KPX space Y -55 KPX space Yacute -55 KPX space Ydieresis -55 KPX v a -10 KPX v aacute -10 KPX v abreve -10 KPX v acircumflex -10 KPX v adieresis -10 KPX v agrave -10 KPX v amacron -10 KPX v aogonek -10 KPX v aring -10 KPX v atilde -10 KPX v comma -55 KPX v e -10 KPX v eacute -10 KPX v ecaron -10 KPX v ecircumflex -10 KPX v edieresis -10 KPX v edotaccent -10 KPX v egrave -10 KPX v emacron -10 KPX v eogonek -10 KPX v o -10 KPX v oacute -10 KPX v ocircumflex -10 KPX v odieresis -10 KPX v ograve -10 KPX v ohungarumlaut -10 KPX v omacron -10 KPX v oslash -10 KPX v otilde -10 KPX v period -70 KPX w comma -55 KPX w o -10 KPX w oacute -10 KPX w ocircumflex -10 KPX w odieresis -10 KPX w ograve -10 KPX w ohungarumlaut -10 KPX w omacron -10 KPX w oslash -10 KPX w otilde -10 KPX w period -70 KPX y comma -55 KPX y e -10 KPX y eacute -10 KPX y ecaron -10 KPX y ecircumflex -10 KPX y edieresis -10 KPX y edotaccent -10 KPX y egrave -10 KPX y emacron -10 KPX y eogonek -10 KPX y o -25 KPX y oacute -25 KPX y ocircumflex -25 KPX y odieresis -25 KPX y ograve -25 KPX y ohungarumlaut -25 KPX y omacron -25 KPX y oslash -25 KPX y otilde -25 KPX y period -70 KPX yacute comma -55 KPX yacute e -10 KPX yacute eacute -10 KPX yacute ecaron -10 KPX yacute ecircumflex -10 KPX yacute edieresis -10 KPX yacute edotaccent -10 KPX yacute egrave -10 KPX yacute emacron -10 KPX yacute eogonek -10 KPX yacute o -25 KPX yacute oacute -25 KPX yacute ocircumflex -25 KPX yacute odieresis -25 KPX yacute ograve -25 KPX yacute ohungarumlaut -25 KPX yacute omacron -25 KPX yacute oslash -25 KPX yacute otilde -25 KPX yacute period -70 KPX ydieresis comma -55 KPX ydieresis e -10 KPX ydieresis eacute -10 KPX ydieresis ecaron -10 KPX ydieresis ecircumflex -10 KPX ydieresis edieresis -10 KPX ydieresis edotaccent -10 KPX ydieresis egrave -10 KPX ydieresis emacron -10 KPX ydieresis eogonek -10 KPX ydieresis o -25 KPX ydieresis oacute -25 KPX ydieresis ocircumflex -25 KPX ydieresis odieresis -25 KPX ydieresis ograve -25 KPX ydieresis ohungarumlaut -25 KPX ydieresis omacron -25 KPX ydieresis oslash -25 KPX ydieresis otilde -25 KPX ydieresis period -70 EndKernPairs EndKernData EndFontMetrics pmw-4.27/fontmetrics/Utopia-Italic.afm0000644000222100022210000005260312247665016016044 0ustar ph10ph10StartFontMetrics 2.0 Comment Copyright (c) 1989, 1991 Adobe Systems Incorporated. All Rights Reserved. Comment Creation Date: Fri Jan 17 13:15:45 1992 Comment UniqueID 37666 Comment VMusage 34143 41035 FontName Utopia-Italic FullName Utopia Italic FamilyName Utopia Weight Regular ItalicAngle -13 IsFixedPitch false FontBBox -201 -250 1170 890 UnderlinePosition -100 UnderlineThickness 50 Version 001.002 Notice Copyright (c) 1989, 1991 Adobe Systems Incorporated. All Rights Reserved.Utopia is a registered trademark of Adobe Systems Incorporated. EncodingScheme AdobeStandardEncoding CapHeight 692 XHeight 502 Ascender 742 Descender -242 StartCharMetrics 228 C 32 ; WX 225 ; N space ; B 0 0 0 0 ; C 33 ; WX 240 ; N exclam ; B 34 -12 290 707 ; C 34 ; WX 402 ; N quotedbl ; B 171 469 454 742 ; C 35 ; WX 530 ; N numbersign ; B 54 0 585 668 ; C 36 ; WX 530 ; N dollar ; B 31 -109 551 743 ; C 37 ; WX 826 ; N percent ; B 98 -25 795 702 ; C 38 ; WX 725 ; N ampersand ; B 60 -12 703 680 ; C 39 ; WX 216 ; N quoteright ; B 112 482 265 742 ; C 40 ; WX 350 ; N parenleft ; B 106 -128 458 692 ; C 41 ; WX 350 ; N parenright ; B -46 -128 306 692 ; C 42 ; WX 412 ; N asterisk ; B 106 356 458 707 ; C 43 ; WX 570 ; N plus ; B 58 0 542 490 ; C 44 ; WX 265 ; N comma ; B 11 -134 173 142 ; C 45 ; WX 392 ; N hyphen ; B 82 216 341 286 ; C 46 ; WX 265 ; N period ; B 47 -12 169 113 ; C 47 ; WX 270 ; N slash ; B 0 -15 341 707 ; C 48 ; WX 530 ; N zero ; B 60 -12 541 680 ; C 49 ; WX 530 ; N one ; B 74 0 429 680 ; C 50 ; WX 530 ; N two ; B -2 0 538 680 ; C 51 ; WX 530 ; N three ; B 19 -12 524 680 ; C 52 ; WX 530 ; N four ; B 32 0 509 668 ; C 53 ; WX 530 ; N five ; B 24 -12 550 668 ; C 54 ; WX 530 ; N six ; B 56 -12 551 680 ; C 55 ; WX 530 ; N seven ; B 130 -12 600 668 ; C 56 ; WX 530 ; N eight ; B 46 -12 535 680 ; C 57 ; WX 530 ; N nine ; B 51 -12 536 680 ; C 58 ; WX 265 ; N colon ; B 47 -12 248 490 ; C 59 ; WX 265 ; N semicolon ; B 11 -134 248 490 ; C 60 ; WX 570 ; N less ; B 51 1 529 497 ; C 61 ; WX 570 ; N equal ; B 58 111 542 389 ; C 62 ; WX 570 ; N greater ; B 51 1 529 497 ; C 63 ; WX 425 ; N question ; B 115 -12 456 707 ; C 64 ; WX 794 ; N at ; B 88 -15 797 707 ; C 65 ; WX 624 ; N A ; B -58 0 623 692 ; C 66 ; WX 632 ; N B ; B 3 0 636 692 ; C 67 ; WX 661 ; N C ; B 79 -15 723 707 ; C 68 ; WX 763 ; N D ; B 5 0 767 692 ; C 69 ; WX 596 ; N E ; B 3 0 657 692 ; C 70 ; WX 571 ; N F ; B 3 0 660 692 ; C 71 ; WX 709 ; N G ; B 79 -15 737 707 ; C 72 ; WX 775 ; N H ; B 5 0 857 692 ; C 73 ; WX 345 ; N I ; B 5 0 428 692 ; C 74 ; WX 352 ; N J ; B -78 -119 436 692 ; C 75 ; WX 650 ; N K ; B 5 -5 786 692 ; C 76 ; WX 565 ; N L ; B 5 0 568 692 ; C 77 ; WX 920 ; N M ; B -4 0 1002 692 ; C 78 ; WX 763 ; N N ; B -4 0 855 692 ; C 79 ; WX 753 ; N O ; B 79 -15 754 707 ; C 80 ; WX 614 ; N P ; B 5 0 646 692 ; C 81 ; WX 753 ; N Q ; B 79 -203 754 707 ; C 82 ; WX 640 ; N R ; B 5 0 642 692 ; C 83 ; WX 533 ; N S ; B 34 -15 542 707 ; C 84 ; WX 606 ; N T ; B 102 0 708 692 ; C 85 ; WX 794 ; N U ; B 131 -15 880 692 ; C 86 ; WX 637 ; N V ; B 96 0 786 692 ; C 87 ; WX 946 ; N W ; B 86 0 1075 692 ; C 88 ; WX 632 ; N X ; B -36 0 735 692 ; C 89 ; WX 591 ; N Y ; B 96 0 744 692 ; C 90 ; WX 622 ; N Z ; B -20 0 703 692 ; C 91 ; WX 330 ; N bracketleft ; B 69 -128 414 692 ; C 92 ; WX 390 ; N backslash ; B 89 -15 371 707 ; C 93 ; WX 330 ; N bracketright ; B -21 -128 324 692 ; C 94 ; WX 570 ; N asciicircum ; B 83 228 547 668 ; C 95 ; WX 500 ; N underscore ; B 0 -125 500 -75 ; C 96 ; WX 216 ; N quoteleft ; B 130 488 283 748 ; C 97 ; WX 561 ; N a ; B 31 -12 563 502 ; C 98 ; WX 559 ; N b ; B 47 -12 557 742 ; C 99 ; WX 441 ; N c ; B 46 -12 465 502 ; C 100 ; WX 587 ; N d ; B 37 -12 612 742 ; C 101 ; WX 453 ; N e ; B 45 -12 471 502 ; C 102 ; WX 315 ; N f ; B -107 -242 504 742 ; L i fi ; L l fl ; C 103 ; WX 499 ; N g ; B -5 -242 573 512 ; C 104 ; WX 607 ; N h ; B 57 -12 588 742 ; C 105 ; WX 317 ; N i ; B 79 -12 328 715 ; C 106 ; WX 309 ; N j ; B -95 -242 330 715 ; C 107 ; WX 545 ; N k ; B 57 -12 567 742 ; C 108 ; WX 306 ; N l ; B 76 -12 331 742 ; C 109 ; WX 912 ; N m ; B 63 -12 894 502 ; C 110 ; WX 618 ; N n ; B 63 -12 600 502 ; C 111 ; WX 537 ; N o ; B 49 -12 522 502 ; C 112 ; WX 590 ; N p ; B 22 -242 586 502 ; C 113 ; WX 559 ; N q ; B 38 -242 567 525 ; C 114 ; WX 402 ; N r ; B 69 -12 448 502 ; C 115 ; WX 389 ; N s ; B 19 -12 397 502 ; C 116 ; WX 341 ; N t ; B 84 -12 404 616 ; C 117 ; WX 618 ; N u ; B 89 -12 609 502 ; C 118 ; WX 510 ; N v ; B 84 -12 528 502 ; C 119 ; WX 785 ; N w ; B 87 -12 808 502 ; C 120 ; WX 516 ; N x ; B -4 -12 531 502 ; C 121 ; WX 468 ; N y ; B -40 -242 505 502 ; C 122 ; WX 468 ; N z ; B 4 -12 483 490 ; C 123 ; WX 340 ; N braceleft ; B 100 -128 423 692 ; C 124 ; WX 270 ; N bar ; B 130 -250 198 750 ; C 125 ; WX 340 ; N braceright ; B -20 -128 302 692 ; C 126 ; WX 570 ; N asciitilde ; B 98 176 522 318 ; C 161 ; WX 240 ; N exclamdown ; B -18 -217 238 502 ; C 162 ; WX 530 ; N cent ; B 94 -21 563 669 ; C 163 ; WX 530 ; N sterling ; B 9 0 549 680 ; C 164 ; WX 100 ; N fraction ; B -201 -24 369 698 ; C 165 ; WX 530 ; N yen ; B 72 0 645 668 ; C 166 ; WX 530 ; N florin ; B 4 -135 588 691 ; C 167 ; WX 530 ; N section ; B 55 -115 533 707 ; C 168 ; WX 530 ; N currency ; B 56 90 536 578 ; C 169 ; WX 216 ; N quotesingle ; B 161 469 274 742 ; C 170 ; WX 402 ; N quotedblleft ; B 134 488 473 748 ; C 171 ; WX 462 ; N guillemotleft ; B 79 41 470 435 ; C 172 ; WX 277 ; N guilsinglleft ; B 71 41 267 435 ; C 173 ; WX 277 ; N guilsinglright ; B 44 41 240 435 ; C 174 ; WX 607 ; N fi ; B -107 -242 589 742 ; C 175 ; WX 603 ; N fl ; B -107 -242 628 742 ; C 177 ; WX 500 ; N endash ; B 12 221 524 279 ; C 178 ; WX 500 ; N dagger ; B 101 -125 519 717 ; C 179 ; WX 490 ; N daggerdbl ; B 39 -119 509 717 ; C 180 ; WX 265 ; N periodcentered ; B 89 187 211 312 ; C 182 ; WX 560 ; N paragraph ; B 109 -101 637 692 ; C 183 ; WX 500 ; N bullet ; B 110 192 429 512 ; C 184 ; WX 216 ; N quotesinglbase ; B -7 -109 146 151 ; C 185 ; WX 402 ; N quotedblbase ; B -7 -109 332 151 ; C 186 ; WX 402 ; N quotedblright ; B 107 484 446 744 ; C 187 ; WX 462 ; N guillemotright ; B 29 41 420 435 ; C 188 ; WX 1000 ; N ellipsis ; B 85 -12 873 113 ; C 189 ; WX 1200 ; N perthousand ; B 98 -25 1170 702 ; C 191 ; WX 425 ; N questiondown ; B 3 -217 344 502 ; C 193 ; WX 400 ; N grave ; B 146 542 368 723 ; C 194 ; WX 400 ; N acute ; B 214 542 436 723 ; C 195 ; WX 400 ; N circumflex ; B 187 546 484 720 ; C 196 ; WX 400 ; N tilde ; B 137 563 492 682 ; C 197 ; WX 400 ; N macron ; B 193 597 489 656 ; C 198 ; WX 400 ; N breve ; B 227 568 501 698 ; C 199 ; WX 402 ; N dotaccent ; B 252 570 359 680 ; C 200 ; WX 400 ; N dieresis ; B 172 572 487 682 ; C 202 ; WX 400 ; N ring ; B 186 550 402 752 ; C 203 ; WX 400 ; N cedilla ; B 62 -230 241 0 ; C 205 ; WX 400 ; N hungarumlaut ; B 176 546 455 750 ; C 206 ; WX 350 ; N ogonek ; B 68 -219 248 0 ; C 207 ; WX 400 ; N caron ; B 213 557 510 731 ; C 208 ; WX 1000 ; N emdash ; B 12 221 1024 279 ; C 225 ; WX 880 ; N AE ; B -88 0 941 692 ; C 227 ; WX 425 ; N ordfeminine ; B 77 265 460 590 ; C 232 ; WX 571 ; N Lslash ; B 11 0 574 692 ; C 233 ; WX 753 ; N Oslash ; B 79 -45 754 736 ; C 234 ; WX 1020 ; N OE ; B 79 0 1081 692 ; C 235 ; WX 389 ; N ordmasculine ; B 86 265 420 590 ; C 241 ; WX 779 ; N ae ; B 34 -12 797 514 ; C 245 ; WX 317 ; N dotlessi ; B 79 -12 299 502 ; C 248 ; WX 318 ; N lslash ; B 45 -12 376 742 ; C 249 ; WX 537 ; N oslash ; B 49 -39 522 529 ; C 250 ; WX 806 ; N oe ; B 49 -12 824 502 ; C 251 ; WX 577 ; N germandbls ; B -107 -242 630 742 ; C -1 ; WX 370 ; N onesuperior ; B 90 272 326 680 ; C -1 ; WX 570 ; N minus ; B 58 221 542 279 ; C -1 ; WX 400 ; N degree ; B 152 404 428 680 ; C -1 ; WX 537 ; N oacute ; B 49 -12 530 723 ; C -1 ; WX 753 ; N Odieresis ; B 79 -15 754 848 ; C -1 ; WX 537 ; N odieresis ; B 49 -12 532 682 ; C -1 ; WX 596 ; N Eacute ; B 3 0 657 890 ; C -1 ; WX 618 ; N ucircumflex ; B 89 -12 609 720 ; C -1 ; WX 890 ; N onequarter ; B 97 -24 805 698 ; C -1 ; WX 570 ; N logicalnot ; B 58 102 542 389 ; C -1 ; WX 596 ; N Ecircumflex ; B 3 0 657 876 ; C -1 ; WX 890 ; N onehalf ; B 71 -24 812 698 ; C -1 ; WX 753 ; N Otilde ; B 79 -15 754 842 ; C -1 ; WX 618 ; N uacute ; B 89 -12 609 723 ; C -1 ; WX 453 ; N eacute ; B 45 -12 508 723 ; C -1 ; WX 317 ; N iacute ; B 79 -12 398 723 ; C -1 ; WX 596 ; N Egrave ; B 3 0 657 890 ; C -1 ; WX 317 ; N icircumflex ; B 79 -12 383 720 ; C -1 ; WX 618 ; N mu ; B 11 -232 609 502 ; C -1 ; WX 270 ; N brokenbar ; B 130 -175 198 675 ; C -1 ; WX 584 ; N thorn ; B 16 -242 580 700 ; C -1 ; WX 624 ; N Aring ; B -58 0 623 861 ; C -1 ; WX 468 ; N yacute ; B -40 -242 505 723 ; C -1 ; WX 591 ; N Ydieresis ; B 96 0 744 848 ; C -1 ; WX 1100 ; N trademark ; B 91 277 1094 692 ; C -1 ; WX 836 ; N registered ; B 91 -15 819 707 ; C -1 ; WX 537 ; N ocircumflex ; B 49 -12 522 720 ; C -1 ; WX 624 ; N Agrave ; B -58 0 623 890 ; C -1 ; WX 533 ; N Scaron ; B 34 -15 561 888 ; C -1 ; WX 794 ; N Ugrave ; B 131 -15 880 890 ; C -1 ; WX 596 ; N Edieresis ; B 3 0 657 848 ; C -1 ; WX 794 ; N Uacute ; B 131 -15 880 890 ; C -1 ; WX 537 ; N otilde ; B 49 -12 525 682 ; C -1 ; WX 618 ; N ntilde ; B 63 -12 600 682 ; C -1 ; WX 468 ; N ydieresis ; B -40 -242 513 682 ; C -1 ; WX 624 ; N Aacute ; B -58 0 642 890 ; C -1 ; WX 537 ; N eth ; B 47 -12 521 742 ; C -1 ; WX 561 ; N acircumflex ; B 31 -12 563 720 ; C -1 ; WX 561 ; N aring ; B 31 -12 563 752 ; C -1 ; WX 753 ; N Ograve ; B 79 -15 754 890 ; C -1 ; WX 441 ; N ccedilla ; B 46 -230 465 502 ; C -1 ; WX 570 ; N multiply ; B 88 22 532 478 ; C -1 ; WX 570 ; N divide ; B 58 25 542 475 ; C -1 ; WX 370 ; N twosuperior ; B 35 272 399 680 ; C -1 ; WX 763 ; N Ntilde ; B -4 0 855 842 ; C -1 ; WX 618 ; N ugrave ; B 89 -12 609 723 ; C -1 ; WX 794 ; N Ucircumflex ; B 131 -15 880 876 ; C -1 ; WX 624 ; N Atilde ; B -58 0 623 842 ; C -1 ; WX 468 ; N zcaron ; B 4 -12 484 731 ; C -1 ; WX 317 ; N idieresis ; B 79 -12 398 682 ; C -1 ; WX 624 ; N Acircumflex ; B -58 0 623 876 ; C -1 ; WX 345 ; N Icircumflex ; B 5 0 453 876 ; C -1 ; WX 591 ; N Yacute ; B 96 0 744 890 ; C -1 ; WX 753 ; N Oacute ; B 79 -15 754 890 ; C -1 ; WX 624 ; N Adieresis ; B -58 0 623 848 ; C -1 ; WX 622 ; N Zcaron ; B -20 0 703 888 ; C -1 ; WX 561 ; N agrave ; B 31 -12 563 723 ; C -1 ; WX 370 ; N threesuperior ; B 59 265 389 680 ; C -1 ; WX 537 ; N ograve ; B 49 -12 522 723 ; C -1 ; WX 890 ; N threequarters ; B 105 -24 816 698 ; C -1 ; WX 770 ; N Eth ; B 12 0 774 692 ; C -1 ; WX 570 ; N plusminus ; B 58 0 542 556 ; C -1 ; WX 618 ; N udieresis ; B 89 -12 609 682 ; C -1 ; WX 453 ; N edieresis ; B 45 -12 490 682 ; C -1 ; WX 561 ; N aacute ; B 31 -12 571 723 ; C -1 ; WX 317 ; N igrave ; B 55 -12 299 723 ; C -1 ; WX 345 ; N Idieresis ; B 5 0 461 848 ; C -1 ; WX 561 ; N adieresis ; B 31 -12 563 682 ; C -1 ; WX 345 ; N Iacute ; B 5 0 506 890 ; C -1 ; WX 836 ; N copyright ; B 91 -15 819 707 ; C -1 ; WX 345 ; N Igrave ; B 5 0 428 890 ; C -1 ; WX 661 ; N Ccedilla ; B 79 -230 723 707 ; C -1 ; WX 389 ; N scaron ; B 19 -12 457 731 ; C -1 ; WX 453 ; N egrave ; B 45 -12 471 723 ; C -1 ; WX 753 ; N Ocircumflex ; B 79 -15 754 876 ; C -1 ; WX 604 ; N Thorn ; B 5 0 616 692 ; C -1 ; WX 561 ; N atilde ; B 31 -12 563 682 ; C -1 ; WX 794 ; N Udieresis ; B 131 -15 880 848 ; C -1 ; WX 453 ; N ecircumflex ; B 45 -12 475 720 ; EndCharMetrics StartKernData StartKernPairs 690 KPX A y -20 KPX A x 10 KPX A w -30 KPX A v -30 KPX A u -10 KPX A t -6 KPX A s 15 KPX A r -12 KPX A quoteright -110 KPX A quotedblright -110 KPX A q 10 KPX A p -12 KPX A o -10 KPX A n -18 KPX A m -18 KPX A l -18 KPX A j 6 KPX A h -6 KPX A d 10 KPX A c -6 KPX A b -6 KPX A a 12 KPX A Y -76 KPX A X -8 KPX A W -80 KPX A V -90 KPX A U -60 KPX A T -72 KPX A Q -30 KPX A O -30 KPX A G -30 KPX A C -30 KPX B y -6 KPX B u -20 KPX B r -15 KPX B quoteright -40 KPX B quotedblright -30 KPX B o 6 KPX B l -20 KPX B k -15 KPX B i -12 KPX B h -15 KPX B e 6 KPX B a 12 KPX B W -20 KPX B V -50 KPX B U -50 KPX B T -20 KPX C z -6 KPX C y -18 KPX C u -18 KPX C quotedblright 20 KPX C i -5 KPX C e -6 KPX C a -6 KPX D y 18 KPX D u -10 KPX D quoteright -40 KPX D quotedblright -50 KPX D period -30 KPX D o 6 KPX D i 6 KPX D h -25 KPX D e 6 KPX D comma -20 KPX D a 6 KPX D Y -70 KPX D W -50 KPX D V -60 KPX E z -6 KPX E y -18 KPX E x 5 KPX E w -20 KPX E v -18 KPX E u -24 KPX E t -18 KPX E s 5 KPX E r -6 KPX E quoteright 10 KPX E quotedblright 10 KPX E q 10 KPX E period 10 KPX E p -12 KPX E o -6 KPX E n -12 KPX E m -12 KPX E l -12 KPX E k -10 KPX E j -6 KPX E i -12 KPX E g -12 KPX E e 5 KPX E d 10 KPX E comma 10 KPX E b -6 KPX F y -12 KPX F u -30 KPX F r -18 KPX F quoteright 15 KPX F quotedblright 35 KPX F period -180 KPX F o -30 KPX F l -6 KPX F i -12 KPX F e -30 KPX F comma -170 KPX F a -30 KPX F A -45 KPX G y -16 KPX G u -22 KPX G r -22 KPX G quoteright -20 KPX G quotedblright -20 KPX G o 10 KPX G n -22 KPX G l -24 KPX G i -12 KPX G h -18 KPX G e 10 KPX G a 5 KPX H y -18 KPX H u -30 KPX H quoteright 10 KPX H quotedblright 10 KPX H o -12 KPX H i -12 KPX H e -12 KPX H a -12 KPX I z -20 KPX I y -6 KPX I x -6 KPX I w -30 KPX I v -30 KPX I u -30 KPX I t -18 KPX I s -18 KPX I r -12 KPX I quoteright 10 KPX I quotedblright 10 KPX I p -18 KPX I o -12 KPX I n -18 KPX I m -18 KPX I l -6 KPX I k -6 KPX I g -12 KPX I f -6 KPX I d -6 KPX I c -12 KPX I b -6 KPX I a -6 KPX J y -12 KPX J u -36 KPX J quoteright 6 KPX J quotedblright 15 KPX J o -36 KPX J i -30 KPX J e -36 KPX J braceright 10 KPX J a -36 KPX K y -40 KPX K w -30 KPX K v -20 KPX K u -24 KPX K r -12 KPX K quoteright 25 KPX K quotedblright 40 KPX K o -24 KPX K n -18 KPX K i -6 KPX K h 6 KPX K e -12 KPX K a -6 KPX K Q -24 KPX K O -24 KPX K G -24 KPX K C -24 KPX L y -55 KPX L w -30 KPX L u -18 KPX L quoteright -110 KPX L quotedblright -110 KPX L l -16 KPX L j -18 KPX L i -18 KPX L a 10 KPX L Y -80 KPX L W -90 KPX L V -110 KPX L U -42 KPX L T -80 KPX L Q -48 KPX L O -48 KPX L G -48 KPX L C -48 KPX L A 30 KPX M y -18 KPX M u -24 KPX M quoteright 6 KPX M quotedblright 15 KPX M o -25 KPX M n -12 KPX M j -18 KPX M i -12 KPX M e -20 KPX M d -10 KPX M c -20 KPX M a -6 KPX N y -18 KPX N u -24 KPX N quoteright 10 KPX N quotedblright 10 KPX N o -25 KPX N i -12 KPX N e -20 KPX N a -22 KPX O z -6 KPX O y 12 KPX O w -10 KPX O v -10 KPX O u -6 KPX O t -6 KPX O s -6 KPX O r -6 KPX O quoteright -40 KPX O quotedblright -40 KPX O q 5 KPX O period -20 KPX O p -6 KPX O n -6 KPX O m -6 KPX O l -20 KPX O k -10 KPX O j -6 KPX O h -10 KPX O g -6 KPX O e 5 KPX O d 6 KPX O comma -10 KPX O c 5 KPX O b -6 KPX O a 5 KPX O Y -75 KPX O X -30 KPX O W -40 KPX O V -60 KPX O T -48 KPX O A -18 KPX P y 6 KPX P u -18 KPX P t -6 KPX P s -24 KPX P r -6 KPX P period -220 KPX P o -24 KPX P n -12 KPX P l -25 KPX P h -15 KPX P e -24 KPX P comma -220 KPX P a -24 KPX P I -30 KPX P H -30 KPX P E -30 KPX P A -75 KPX Q u -6 KPX Q quoteright -40 KPX Q quotedblright -50 KPX Q a -6 KPX Q Y -70 KPX Q X -12 KPX Q W -35 KPX Q V -60 KPX Q U -35 KPX Q T -36 KPX Q A -18 KPX R y -14 KPX R u -12 KPX R quoteright -30 KPX R quotedblright -20 KPX R o -12 KPX R hyphen -20 KPX R e -12 KPX R Y -50 KPX R W -30 KPX R V -40 KPX R U -40 KPX R T -30 KPX R Q -10 KPX R O -10 KPX R G -10 KPX R C -10 KPX R A -6 KPX S y -30 KPX S w -30 KPX S v -30 KPX S u -18 KPX S t -30 KPX S r -20 KPX S quoteright -38 KPX S quotedblright -30 KPX S p -18 KPX S n -24 KPX S m -24 KPX S l -30 KPX S k -24 KPX S j -25 KPX S i -30 KPX S h -30 KPX S e -6 KPX T z -70 KPX T y -60 KPX T w -64 KPX T u -74 KPX T semicolon -36 KPX T s -72 KPX T r -64 KPX T quoteright 45 KPX T quotedblright 50 KPX T period -100 KPX T parenright 54 KPX T o -90 KPX T m -64 KPX T i -34 KPX T hyphen -100 KPX T endash -60 KPX T emdash -60 KPX T e -90 KPX T comma -110 KPX T colon -10 KPX T bracketright 45 KPX T braceright 54 KPX T a -90 KPX T Y 12 KPX T X 18 KPX T W 6 KPX T T 18 KPX T Q -12 KPX T O -12 KPX T G -12 KPX T C -12 KPX T A -56 KPX U z -30 KPX U x -40 KPX U t -24 KPX U s -30 KPX U r -30 KPX U quoteright 10 KPX U quotedblright 10 KPX U p -40 KPX U n -45 KPX U m -45 KPX U l -12 KPX U k -12 KPX U i -24 KPX U h -6 KPX U g -30 KPX U d -40 KPX U c -35 KPX U b -6 KPX U a -40 KPX U A -45 KPX V y -46 KPX V u -42 KPX V semicolon -35 KPX V r -50 KPX V quoteright 75 KPX V quotedblright 70 KPX V period -130 KPX V parenright 64 KPX V o -62 KPX V i -10 KPX V hyphen -60 KPX V endash -20 KPX V emdash -20 KPX V e -52 KPX V comma -120 KPX V colon -18 KPX V bracketright 64 KPX V braceright 64 KPX V a -60 KPX V T 6 KPX V A -70 KPX W y -42 KPX W u -56 KPX W t -20 KPX W semicolon -28 KPX W r -40 KPX W quoteright 55 KPX W quotedblright 60 KPX W period -108 KPX W parenright 64 KPX W o -60 KPX W m -35 KPX W i -10 KPX W hyphen -40 KPX W endash -2 KPX W emdash -10 KPX W e -54 KPX W d -50 KPX W comma -108 KPX W colon -28 KPX W bracketright 55 KPX W braceright 64 KPX W a -60 KPX W T 12 KPX W Q -10 KPX W O -10 KPX W G -10 KPX W C -10 KPX W A -58 KPX X y -35 KPX X u -30 KPX X r -6 KPX X quoteright 35 KPX X quotedblright 15 KPX X i -6 KPX X e -10 KPX X a 5 KPX X Y -6 KPX X W -6 KPX X Q -30 KPX X O -30 KPX X G -30 KPX X C -30 KPX X A -18 KPX Y v -50 KPX Y u -58 KPX Y t -32 KPX Y semicolon -36 KPX Y quoteright 65 KPX Y quotedblright 70 KPX Y q -100 KPX Y period -90 KPX Y parenright 60 KPX Y o -72 KPX Y l 10 KPX Y hyphen -95 KPX Y endash -20 KPX Y emdash -20 KPX Y e -72 KPX Y d -80 KPX Y comma -80 KPX Y colon -36 KPX Y bracketright 64 KPX Y braceright 75 KPX Y a -82 KPX Y Y 12 KPX Y X 12 KPX Y W 12 KPX Y V 6 KPX Y T 25 KPX Y Q -5 KPX Y O -5 KPX Y G -5 KPX Y C -5 KPX Y A -36 KPX Z y -36 KPX Z w -36 KPX Z u -12 KPX Z quoteright 10 KPX Z quotedblright 10 KPX Z o -6 KPX Z i -12 KPX Z e -6 KPX Z a -6 KPX Z Q -30 KPX Z O -30 KPX Z G -30 KPX Z C -30 KPX Z A 12 KPX a quoteright -40 KPX a quotedblright -40 KPX b y -6 KPX b w -15 KPX b v -15 KPX b quoteright -50 KPX b quotedblright -50 KPX b period -40 KPX b comma -30 KPX braceleft Y 64 KPX braceleft W 64 KPX braceleft V 64 KPX braceleft T 54 KPX braceleft J 80 KPX bracketleft Y 64 KPX bracketleft W 64 KPX bracketleft V 64 KPX bracketleft T 54 KPX bracketleft J 80 KPX c quoteright -20 KPX c quotedblright -20 KPX colon space -30 KPX comma space -40 KPX comma quoteright -80 KPX comma quotedblright -80 KPX d quoteright -12 KPX d quotedblright -12 KPX e x -10 KPX e w -10 KPX e quoteright -30 KPX e quotedblright -30 KPX f quoteright 110 KPX f quotedblright 110 KPX f period -20 KPX f parenright 100 KPX f comma -20 KPX f bracketright 90 KPX f braceright 90 KPX g y 30 KPX g p 12 KPX g f 42 KPX h quoteright -80 KPX h quotedblright -80 KPX j quoteright -20 KPX j quotedblright -20 KPX j period -35 KPX j comma -20 KPX k quoteright -30 KPX k quotedblright -50 KPX m quoteright -80 KPX m quotedblright -80 KPX n quoteright -80 KPX n quotedblright -80 KPX o z -10 KPX o y -20 KPX o x -20 KPX o w -30 KPX o v -35 KPX o quoteright -60 KPX o quotedblright -50 KPX o period -30 KPX o comma -20 KPX p z -10 KPX p w -15 KPX p quoteright -50 KPX p quotedblright -70 KPX p period -30 KPX p comma -20 KPX parenleft Y 75 KPX parenleft W 75 KPX parenleft V 75 KPX parenleft T 64 KPX parenleft J 80 KPX period space -40 KPX period quoteright -80 KPX period quotedblright -80 KPX q quoteright -20 KPX q quotedblright -30 KPX q period -20 KPX q comma -10 KPX quotedblleft z -30 KPX quotedblleft x -40 KPX quotedblleft w -12 KPX quotedblleft v -12 KPX quotedblleft u -12 KPX quotedblleft t -12 KPX quotedblleft s -30 KPX quotedblleft r -12 KPX quotedblleft q -40 KPX quotedblleft p -12 KPX quotedblleft o -30 KPX quotedblleft n -12 KPX quotedblleft m -12 KPX quotedblleft l 10 KPX quotedblleft k 10 KPX quotedblleft h 10 KPX quotedblleft g -30 KPX quotedblleft e -40 KPX quotedblleft d -40 KPX quotedblleft c -40 KPX quotedblleft b 24 KPX quotedblleft a -60 KPX quotedblleft Y 12 KPX quotedblleft X 28 KPX quotedblleft W 28 KPX quotedblleft V 28 KPX quotedblleft T 36 KPX quotedblleft A -90 KPX quotedblright space -40 KPX quotedblright period -100 KPX quotedblright comma -100 KPX quoteleft z -30 KPX quoteleft y -10 KPX quoteleft x -40 KPX quoteleft w -12 KPX quoteleft v -12 KPX quoteleft u -12 KPX quoteleft t -12 KPX quoteleft s -30 KPX quoteleft r -12 KPX quoteleft quoteleft -18 KPX quoteleft q -30 KPX quoteleft p -12 KPX quoteleft o -30 KPX quoteleft n -12 KPX quoteleft m -12 KPX quoteleft l 10 KPX quoteleft k 10 KPX quoteleft h 10 KPX quoteleft g -30 KPX quoteleft e -30 KPX quoteleft d -30 KPX quoteleft c -30 KPX quoteleft b 24 KPX quoteleft a -45 KPX quoteleft Y 12 KPX quoteleft X 28 KPX quoteleft W 28 KPX quoteleft V 28 KPX quoteleft T 36 KPX quoteleft A -90 KPX quoteright v -35 KPX quoteright t -35 KPX quoteright space -40 KPX quoteright s -55 KPX quoteright r -25 KPX quoteright quoteright -18 KPX quoteright period -100 KPX quoteright m -25 KPX quoteright l -12 KPX quoteright d -70 KPX quoteright comma -100 KPX r y 18 KPX r w 6 KPX r v 6 KPX r t 8 KPX r quotedblright -15 KPX r q -24 KPX r period -120 KPX r o -6 KPX r l -20 KPX r k -20 KPX r hyphen -30 KPX r h -20 KPX r f 8 KPX r emdash -20 KPX r e -26 KPX r d -26 KPX r comma -110 KPX r c -12 KPX r a -20 KPX s quoteright -40 KPX s quotedblright -45 KPX semicolon space -30 KPX space quotesinglbase -30 KPX space quoteleft -40 KPX space quotedblleft -40 KPX space quotedblbase -30 KPX space Y -70 KPX space W -70 KPX space V -70 KPX t quoteright 10 KPX t quotedblright -10 KPX u quoteright -55 KPX u quotedblright -50 KPX v quoteright -20 KPX v quotedblright -30 KPX v q -6 KPX v period -70 KPX v o -6 KPX v e -6 KPX v d -6 KPX v comma -70 KPX v c -6 KPX v a -6 KPX w quoteright -20 KPX w quotedblright -30 KPX w period -62 KPX w comma -62 KPX x y 12 KPX x w -6 KPX x quoteright -40 KPX x quotedblright -50 KPX x q -6 KPX x o -6 KPX x e -6 KPX x d -6 KPX x c -6 KPX y quoteright -10 KPX y quotedblright -20 KPX y period -70 KPX y emdash 40 KPX y comma -60 KPX z quoteright -40 KPX z quotedblright -50 KPX z o -6 KPX z e -6 KPX z d -6 KPX z c -6 EndKernPairs EndKernData EndFontMetrics pmw-4.27/INSTALL0000644000222100022210000001743412247665016011412 0ustar ph10ph10Basic Installation ================== These are generic installation instructions that apply to systems that can run the `configure' shell script - Unix systems and any that imitate it. They are not specific to PMW. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, a file `config.cache' that saves the results of its tests to speed up reconfiguring, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.in' is used to create `configure' by a program called `autoconf'. You only need `configure.in' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. If you're using `csh' on an old version of System V, you might need to type `sh ./configure' instead to prevent `csh' from trying to execute `configure' itself. Running `configure' takes awhile. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. You can give `configure' initial values for variables by setting them in the environment. Using a Bourne-compatible shell, you can do that on the command line like this: CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure Or on systems that have the `env' program, you can do it like this: env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you must use a version of `make' that supports the `VPATH' variable, such as GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. If you have to use a `make' that does not supports the `VPATH' variable, you have to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. Installation Names ================== By default, `make install' will install the package's files in `/usr/local/bin', `/usr/local/man', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PATH'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you give `configure' the option `--exec-prefix=PATH', the package will use PATH as the prefix for installing programs and libraries. Documentation and other data files will still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=PATH' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Specifying the System Type ========================== There may be some features `configure' can not figure out automatically, but needs to determine by the type of host the package will run on. Usually `configure' can figure that out, but if it prints a message saying it can not guess the host type, give it the `--host=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name with three fields: CPU-COMPANY-SYSTEM See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the host type. If you are building compiler tools for cross-compiling, you can also use the `--target=TYPE' option to select the type of system they will produce code for and the `--build=TYPE' option to select the type of system on which you are compiling the package. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Operation Controls ================== `configure' recognizes the following options to control how it operates. `--cache-file=FILE' Use and save the results of the tests in FILE instead of `./config.cache'. Set FILE to `/dev/null' to disable caching, for debugging `configure'. `--help' Print a summary of the options to `configure', and exit. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. To suppress all normal output, redirect it to `/dev/null' (any error messages will still be shown). `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `--version' Print the version of Autoconf used to generate the `configure' script, and exit. `configure' also accepts some other, not widely useful, options. pmw-4.27/psfonts/0000755000222100022210000000000012247665016012044 5ustar ph10ph10pmw-4.27/psfonts/PMW-Music.pfa0000644000222100022210000011477712247665016014276 0ustar ph10ph10%!PS-AdobeFont-1.0: PMW-Music 058.001 %%CreationDate: November 2010 % Copyright (c) 2010 Philip Hazel %%BeginExitServer: 000000 %%serverdict begin 000000 exitserver %%EndExitServer %%BeginSetup %%BeginResource: font PMW-Music 11 dict begin /FontInfo 8 dict dup begin /version (58.01) readonly def /Notice (Copyright (c) November 2010 Philip Hazel) readonly def /FullName (PMW-Music) readonly def /FamilyName (PMW-Music) readonly def /Weight (Medium) readonly def /ItalicAngle 2 def /isFixedPitch false def /UnderlinePosition -98 def /UnderlineThickness 54 def end readonly def /FontName /PMW-Music def /PaintType 0 def /FontType 1 def /FontMatrix [0.001 0 0 0.001 0 0] readonly def /FontBBox {-150 -1400 50000 2300} readonly def /Encoding 256 array def 0 1 31 {Encoding exch /.notdef put} for Encoding 32 [/sp/trebleclef/bassclef/altoclef/star/sharp/doublesharp /flat/natural/tfermata/brest/sbrest/mrest/crest/qrest/bfermata /longrest/breve/semibreve/uminim/dminim/ucrotchet/dcrotchet/uquaver/dquaver /usquaver/dsquaver/usqtail/dsqtail/ledger/vdot/hdot/barsingle/bardouble /barthick/stave1/pstave1/uqtail/stave10/pstave10/dqtail/repeatdots /ustem/dstem/cnh/mnh/comma/mordent/dmordent/imordent/dimordent/turn /hbar/accent1/caesura/accent2/accent3/accent4/accent5/bardotted /caesura1/little8/C/cut/tilde/thumba/thumbb/ds1/ds2/downa/downb/upa /upb/iturn/seven/four/hcnh/hmnh/xnh/xustem/xdstem/fustem/fdstem/six /gdot/gring/d1/d4/u4/l1/r1/bs/ds/fs/us/.notdef/tick/uacc/dacc/grid /barshort/breath/vring/cross/trill/scaesura/lcaesura/sbra/sket/rbra /rket/rep/repdots/vtilde/trem/circ/cutcirc/slur1/slur2/up/down /iC/icut/unibreve/accent6/srbra/srket/angle1/angle2/angle3/angle4 /ped/uvtilde/dvtilde/nail/angle5/angle6/stave21/stave31/stave41/stave61 /hclef/oldbassclef/oldaltoclef/bratop/brabot/direct/five/major/dimsh /hdimsh/gcross/ledger2/srm1/srm2/u12/d12/halfsharp1/halfsharp2 /halfflat1/halfflat2/icomma/accent7/accent8]putinterval 196 1 246 {Encoding exch /.notdef put}for Encoding 247 [/stave210/stave310/stave410/stave610 /.notdef/.notdef/.notdef/.notdef/.notdef]putinterval currentdict end currentfile eexec d9d66f633b846a989b9974b0179fc6cc445bc2c03103c68570a7b354a4a280ae 6fbf7f9888e039ab60fcaf852eb4ce3afeb979d5ea70fde44a2ae5c8c0166c27 bf9665eea11c7d2329c1a211dd26bb372be5822f5ea70d99eb578c7befd44cdf 045a363056e5e1cc51525ea6fc061dcebb337208eff729802376a2801424f670 0e7e6397b28f15bc10b40012b0a3eaeb2693e8f7f627c4c9c7c6c5bff105c1e4 1b2b9e8f09253b61177e95ea219474796072f4c3189f7cfc7630142215dbc8a8 fd63d147033a0c9c786e17355fa8d996a3a7b5d213ac8011fd31a12930a87f86 374c1921aaa9ed181b43541cdf6e376bb4f2801faa9b01dcc0569ac59cfc4768 afdc549a30d41f5705e4231d3bc540161d390b4980ef9fe489ac4df99f83a8e2 00182cd152eb35a61aa915230f1090fd0bc8d4644f836c3da157c564b2a8fb7e 7d3203ca17088a579aab355eb45038ff45d5eb2357959a2c7c04421c41d3b822 d0471ae18607c80503c0b319348683bc6bc87e075a8eb4bb34729c4145b2b5a0 df1a88b2d7e0940aa3d4bafa502b87d9313153f661019a817ab20e1a772ad0d5 51ae7fdce4e21f426a6726c39c88124f8cbf10bb7394e90e9d28efdffef75078 f7ab1d7fe8387e1e65c4ff67d054ae6a0937e4d59889656ac37afde0362d76ab 05f9c223c52f04b6279e055419d3630d5057b50b4c4492891f7a36d03859e220 2d89747f1d486e9449a3448f81c240adc9e5476c6de456d76c4237055c0c30b6 80738211ddb90bcc73982467076cba36a60ec6a6584d9d9bf0df2b8462ceb1be 79c1276d2865b0f3518664a960036ca2d00c7829a967ac16b5c833f2e143efc0 f93826a8d09414c4ae7cb17623edc8f599b895ed0d3f4bea8bfd9b414cc39c0e 4080180fe8286b05065a10df4d691d38f73bc82d6142bdded07ffff7017f7803 cb03226f4d6501c203f8ee4e08ff5f8eda81278aaa6378b2d95ad6dfc7bc2e11 aa696cf2618a5737f03bce6c46c635caf89d23de81693159167b74cda0a15dcd 491b2ba489f28d410f1835d0fb7a9be1e3e5e7b76996e1d85cb9b62bb0619bdc 78b85ad2731fb580466cd92159c7f0e53f0896e154ec770cb55c55b09ec7b405 251e205992ac88e0bb583792edc9a21143a3ab447d4769e84016aea06413b52a 9ad5bbf68c05b2d1fbd434a1d61a903b6d2e81cba8f422998f51dab989a49b7c 2d0ee5cf9f5cfea4fd5f7686eb2e9d29bb4fd4b117bd407534ab7aea4068f8a1 f3f89f61f1b341c9c31755c876038a2707314ba7f51f25ae9b81cb7170f24d97 f792f849fb28eb31704aa5826296042664f4324d94dd8644d43f3d3ba8ef474f 37ab52149ca62286bc986a59f4dc01c95106a325ad9eb4e22badbf89c3c329d2 cbe4d3f3c64fd1b40dd441f2f8e45df63e6cf107d5a0efb2930fe55c04c6d01a 23b40b4706ef7ec9e6447190cebceb1293800d461512b42c06825d1ea511b7a7 031286c05dd8536baf9159f6d3ecb5c23c3677795a29aad9be47a0d7a127e3ad 051d57de2b0969ba89d906f64a4834fb7912a5c1f39a8cdac5367a06ec532870 fd72e532680e064d490d975feb7bbcdd84ea1b060476b844a6fc153691d6eeeb e72d71ef5ee59f6bfbfeb9e166e0304f50b91d8e401fac3257b56ae63d9ac6e3 a27fd33f1b43075c792597372d77a93912bc83e4aced15502c9f549e725ee735 8cf609891f05fede798f758940ee09d2947af5a290f2b4540b6a931d9d8e1176 5c0c4f14dd4f2ae0a056e42b7842e4a37a854fd70f2268833d8b0a5a5124ac92 d5abea2bc4a82267734407be662c088ce63084f851af93ed826c3d6d417c679b c3d5faa174c9248fb2706f46a9611cd21c2952e70ef36ddfa951b6df819c7c49 04b8a5a08ade3960e46860fa6ed29caa9d332be99f25a6c2e627402f09a5e140 3ac599195881326c44e6deda9d38ab32544e7b21749b5f933ceee3818853248a c038736c4486f46ff5853684760814f2dc64f282f7619c34885396a300e041d4 4931a4951469f5de55d0282ab491a456ed329ba83756285e2e637ce00e925b79 6a5e7de954b276e92b958ea4119200955d906a275b2640f2881224816febf38c ae5a330d8c4d31c68dac342210d5b0ed554e0d57e7b486022aaab11ec40753d8 ad557122b58a7ef70f0676e41f9c29feedac4d10808370b03202d11e5911e056 5502c18e30c2086795534f946639ef524469e7628abf78b2ad634d1c30315202 2bf1ae1c038093dda6e3dd5ca785626841806f19db4edefb4352255a40a6fd2d e5b292d963047035bf20765a1724da4ceb6596e5fa97d7b8fa9f3ecb4b88197e b88466dd7b189aaf8603193b647abb7bcd00005212a18872c0145d3378b097b2 8dfc782b3bff19d16c0fc15c0dcb4c59318183cacd60f4a6bb68be52381277e4 f01f081110b5549a1178bb1f260a83c6185569012e906e6f3e2efd3be510c8d5 359170a08dccef71cf290c76297a1a4b5cc979a25285a9bbbd06a29109fb026c 5ed7c864cfbd56af94b980775295d1cedf1e2d29bb4374919a1837a325daae46 3420aa39e8adc0a6d1508ec3109400eba448f2c83949001fc47f5cad8d4abf40 05805a03e5debcb69a94d9de331cd65d7f1f6de6141eff2045466417110ebe68 0b7164d627bc55b3362049f5e720c1fbc78138cb39eb79e66cb7f7f0bb778afc 9f71dadc6df0dce778b2a5500ad6d77ec30ec68484fb9acc886f9f17b85a057b a9cc45cf70a2ab800d6a4790ea19c7bb8042ee22148df7df8b2a3b6a024003af 4ff4306ecc2b060304f8c6f66b8c0a6e93ce65360a9cd69b61f86a8dfb73c68d c21db4b6c6dcf79e667772b21c7c466e32c5d527c69368ae0e89a4d4cdb4891f 3d4d979f9173d37b0b14a078b061c3a647d1446862ccbb83e0f0c52e55f62571 d261f9025b9b76b19a4387c9be977a75a9f3081fadd4a0497049db2b25ed2e1b 2f1d2330b45df4d9046c5d6b93cc37b9f5cc6efb382fe3c1cfb2149369e96049 943b8bb24ac4cc79d6f5700e7674c56b90093ea2040bd564d03b248e7e7501bc 984034757fb9a8ab0915a676cbd53f3f680aed60d401953b080bf8339b2e86bc 5afa1596cd942d225a2f4955693042f9283b5d609f297a6f60a4a1a1b3af3b75 b2ebf205ea219cf61f378872247fe2284ac99a5e29a31ea3daadec1080e9a252 504d9980bbea3845e145ca1fc919db615740a5d81e188cd9ec7de7467f77e23c af9879f9b562af2382f271794641e9c498cc7257071a9a037f4df9df87289d8c 973909959329980b26acd05b0ef35e9b60101bfa019acde608ced1432c68bd26 1b4db2b2f16deca61e710e8bab3c99bca591f6b1491ffceebba2c75a3e7802a8 e5170e660125475f75be93ec815304bfa33a26a1371c21ce78c58d2c700c91be 8aa8d468fce514189054972132e57e69422dae4588d5de9f3344cb59d505c421 1b8b27fc1c22a82a062d76ad9e6e3a4add530aaa501e20293be5c19916331c05 ac9b774007afeac38ad564a281afffb6fd41002837678f0741eeb025ec3d6c23 140420f6943d17a1d84e301863a849290aaad57b545f97493b1f3693fcceec9e fc8310bf367204a88570d92045d3dedce44692ac4858a4950f39903095bc974b 067283afe304317fa6c0eeeff03cc68723468d73d881caac31300836687ec574 c06e46cb22fcdc7c315b06cf8a13c01830498b2f379c96dbbc04b1f579f7fb12 d8c1bc2a676fbe690a6787fc77414718b5dd3f742689b39aa8cb6f6a34bcebc4 9b9aaaee962a77fa014d203415495311226d9c03c80b6dcbad39450fc44184fd e12a276d4e87cd954b0db7c58049084003014dd1920351a6a59b9ee428bf67fd 1b931e652870068d9feb0866d2e825e6404056ee589c7e406718004e0df8cfa2 04d21df791632359cc821e8652e6104eec4c1207c704167f70010e9afd6ec0aa 02fac84771d34e38bef362797bae62cc06fe81c069bf04d9edb277a90fa75f4b e79b3c0a8804adbebbcad3c464aa14a393f6ea75dcd5b420f9fb320398ecea1a c3acc08af37f7c14f14075f95c4961df04b45088dd75e338a2629647ec421849 f9948b9a17e33408239210566599f792a4c0934f88069a146f66b9c5bfa541a2 4b68fb5bd566f3ea28053dd386d2babdd8fe08e9763633933844fa5417f29ba7 60b235097764864d61ae1213aa8d3c4436911ff0b77aef7cb6d899ce0e8c2312 66d552dc691c783da623fb308ffd42f141d7e05b9db1b5fef691967f4e42f77c f0b3ccae74717e0b0ef02f152c89f9c1b1ef8cac955d3c024c04e0c8830b7884 ef8490ed1fd4b718977da0be6b8cef615ebd95e41c04bf119e9064a7723c8e67 2f84a9f02707f08c1423387092004c5499f20397855b03e12a48cfd90e9f4b1e 0e2ce907e86716c43cb9fe377cf4a38afcbf860074cca3c3580730147bbd280f aa4711be6c7ca74633545acc6e1ba2003e9eac90099a00406cae1b04b906d896 1bc0589e9046c3450ff07624f3e8bc0241e3e2356dee09b92ce70d48a52da586 8528da6c89e780f1b121839418ab684a92b4187d184a8616e73f8d961257083b 935358f1e6d6fb68c173e5e38969c8f2a68724ca12a86ece19f1a79ac9b9913f f14c9e37d08f89e84b1d6d1ce4fa8b8c32a139c950f6e83471b38702e695bc7b e8d87c77805d33e6536a5095ceb6e726ed0500b41c941d173233771e6aca5e2a 8a0974f6f726bb5dfd2f7adfdc64095d4421984d879a40e27f3da62a433f03f8 25465338bd92d7408ab4b30ed357474d07f49b4a9d5c5891c11ca620a0ed4c9b cb476ad89efaa734d9d11e55bdad6163c867c56543d2edf445f8336473f81d72 40e675ee76e15e68c7295fe4c4727049007e3fd6a3bf5be662846c669965c39e ee26797951ce86d4e2db76070ce1217c9c9dbada0a8e53e450bec992724150a9 34f7ca6b7c092e12726cf0ee125608a4e58f3c54f1b3466c47acc11a7fb86d15 56bc15dc4999f52616f1d45745a4719df7849fca9430b7e2fcf0c72dfca8e2c5 b205f65ff646084b03779616126dc0108574d98b20dcd787f99305e593a3ff30 39132a62240bb9c47f7aba86bd61fa30e7751cdfbfb630c159d016ee70c8a273 1a167494354bee5fa39bb0a233580913943e029ce518d75f30af7cb2d3ed2103 d8abbac569cab1a9daaf125e79d5b327e69489eec94bf0e537724799f6e42c6c ba604976a498266555197e5290968486e625bb933e6588019e496c647f574522 7f8817ef98e28a27158cc58a48d264f6b95cbf2e1d92399d423e31ac7a077588 466f725090359c69e0fc91072df81fadd46069bbcefcaa77cfb7fa3e96034026 35a8296bf9c1d0a7fbab44a815ab741f36aefa60b2825671b0ab55db353d186e 90ed303b9caa7d0f52f9b74273042c3297e64b7264f38c0b849b1099a2b1ead1 89c6b6ee20b3f32aee24ba734e809ae500f6d48a50e6eadbfe61e660028476d1 254dd0467c140e698527a278c910e03f4341f0dece94a430db441f8a4fa73954 edc0534e2bfbae3205749cf27945909d28da83e440a5558aaa8eca7a9a4c8243 f0a60c5211ec2197fac453f01520ead1b20621962324543c2729d977cda3eac4 0ff0c0fa1096315ba2eee3d71cdf2c5bb1d9a4d4ed2147dfbd673f79cc1dc21b a77ac1096bd93b15f31467919e432c204640a81694abe315fcee9a3e9ef27f86 57c1d4aae410a23e44d0ce9fab50f953c81e33f6ec39837b20cf8fd0cc76a029 8f12e76a4c78b40798819f7919a0d24a42cef3074b8de0cb5e418201d41f431c 68e92c1827a4c9cfc968063e76038a494bdd4fb5e957d57aab2fa31bf1830b1e d3bb12f34f3fb17bfd73a349d706138da54671b43450f22f40cd7cbf50476a5b 2c73dccace0b74fa671007e4e95bbd79173c5d37047e511d49a110f81ff7ca8b 5fe0ed67a5efa1a87670db0ea31a11ee76b4af2dda3a6367df3c2b4e7cd868c1 604d872998326c710c206b78d6b9ebeaa14ff4841d18163a1b0738b3c9c2a952 3ec59bca6623329181bbed1662963564b1a7b48e08b120c0b1e2e28e9f076196 0f7a72f4118dfe57672c96ab72589dcdb652ff0580bed4a9c42ca35fcb1e6595 bf4fb078cb8531d2b589b0258fb14aaa9752283e94da2822810fa00220ecc76b fa0bf30ab93c612d2f6fa13c02443dd179c5ccfc0312d70d4509c558631a1b83 00301b494062dd506e84bef5d3e734f6af4b506f9b6ef43641f25a699cb7f70b 646e8b334fa8305bbe6e2f9596579f7db9e28c6e3cbac6a244984cb1dbcf751c 748afeea4610cd4c1cbfac10c9852a32b6f912bbe967a68c9678a83b03d3a589 55e21dfaec2921bafbd868fc6c5dbf9e6ff8d93c8d5a30a5903eaa82757ef344 ef36e216f96cd68b0f90b54579e11a40cf33c17fae2ddba456e1b85458cbf05d 928fb1ccae12f39e215c4c68b7f22ddd26d0f271e77b0f2cc2d6a9a7f37db7a7 621c4ec4e126ef4f231a2bd811cba54ac5ea84386cfd985ba17506d0d7c552c2 aa2b5fefb49cf5b7b1b16bbaa38fb408cef612e7260d088712d60c57af8291e6 9401fe2d8c879d563e7d988bc522100bd0e905a7dd25189a771076e75998d37e df26f0dd5e302eec87c087bd54289ab3f3c013b3a64b8bd4a0acdbcb32858e0e b407557f336b89be676f94fa5e41f2db1938288948b2eee549393213cebdc36d 9e241b237e78fb7226633fc67a127e48e43ddadbfe12aaa41bf7cff47115524b b853d3bef16514c2723b057e3cb74f0e6f043a25e7ecff0bf7620140f11b57a8 9e343a4fe17cafd950735383d05ea02d410d26c0ed305a619a461c08155ace2a c0888f257a301272ca78d533bab54f54d001dc6c205ff6324ebc1942320e3f8c 7c00eddba2962f7d8b8b194ad83e47b13083caf11e64dc89119d7127b9be5538 6b703d42d1edfd7db2f3fa122f1acde1ea43eedb955593c14dabea0ea66c6328 f39d3de6562fe906da301dc1ab7a83bf88cab1eb9923c5f1085bcaf02b8fa410 5c531836956c509ab18cc19bc5c248a2eef7566792982a43ec89d63b31e001fb b2ccc234e03e4572ce089d02bdf9dc0190af8dbc2c7ccc22196e3bc17c3e37c8 9a742f07edcadccc8d7597a4ed227f4ee37e843718e15da7208f8d2f2ffa12ee c007346e4cad0bb1aacf73e0edfcdc725be54ff6103eb3080881b1ef78267290 abc87920cf63f402a019e5c6e328f78707ac983bf0bc32cf4673d6bb966c9cd7 3b3c64b76a925b15225054a970acf61f123c44e51dd944426493fdf54646ecec 87e538cd1a130a43e1fd6274ac12ce5663534f65210c1e438118e34112c119aa 0e311185ca3977c6da19e0e73f9ef47ede1bc60f1891dc3302d01d7138da0867 1bae87b54e594f06e26c0e01b11693e994722daf37dfae35d1c63f7946f31167 32415ceaa09a865c28ccd57f9d41e19123e2cdab7e3e2bd29dee275f30075bce 458ddb09c2d5fea6e0e2a744009f6abddf5c34fb3caf51ece4665704bbb215e4 7107a1745424e6ab9071d2008cbe279c0b5ccb8ab61afa38b3d6195f652eb5e1 7a32a358e8ba8e02888b97e3ba3b695ea0062bb1cdb5ac5fee551e9eda4f070c 3dcf504cad12914caa34b39a494f539f1bf2ef77223c233a57f11cccea4f79ef f782c9c42efab4dbb360ca7518709ff4691fd9b9451e24fee60b2053167b96d4 f47fdce601a10d0dba330116a5dd0adfa44f7ec578c5ccdefda203bc220e5ec8 128e67fe500412d234fa0caeaf0a927d5cfd89d46bf3362e2ea172e09fd4d126 51ae59dfb15484b29ef2d5abd39e387202cc9348d00ee7a6dafa810bb68ad460 0c2e61a128d692502c2080311a7c99e30671d200ca812755a79ddc1e281a0c11 359ffc8341a508486c7677cce56b24bd2cac1b9457d2aa9b701cf9d7a74f8d6b a285e3b342e5232977abce1e51a95b0b148ba89fa492fc93e67f91042242ef87 f0a83ca51a752255a9eee173e2b2e69b4d88394a8f5584f9265597cc42fec4c1 cc727c7ade1b3407db4e0ebd6cf4848504df6cdecb476ce74aa817dca0e51c0d a3f14a1bcce37adff3bd7d08b44876e1b08789b630a3d070b53f3a8fe7ef8bef 539522d521b1319455c3999ab3f6fdcf92f28a36152a6574f62ba51ef90e1f3b c89ec530004dfcdd7a7b1c8038957ae361d921dc976b899b46f67eb824732282 e0207eb3f113c267b2154ed423f9084b56cfa1dd26508c3295d844e1549b63f2 26bb27f7ecb4ca36fe55ad817d952767b49d78f4576448eff1679851a415f918 0cf5ae1157b06c47e44c70774d6ffba7d8f86ba0160d55e21db737e10b2a91c7 05286b7c7dd9cc027ee23f3b3b46c3271a274868311d56931361dcd37542d1ac 67dc26954a733f9662dc9308f9639b944894f6f19848fbc3f44cb8bf3d5f6b39 fc78127ddaa6243cac012fe0cd52efbbed8b4bf857b3a1bb2b7e7e44bc8b0faa d715b0c6fbf4a4a9071cf299e0cacb88593fd61e5a0dc9fe7ed040e17dae132d eb17ff933db6927e892b3919cc14ca1908f557607b1dfbf48dc3d6aaa862d8c6 5dc9b2f3cc127e70d10c3a04ee17d357c93527eeffcf18792383b73459d50bcf ced1527e0520a397f7ec692a12f0693150885fcee5087b5d94b2ed81ebe967e1 fc32853cb465bb8b66453574c4ba998c91641e35a2fe6e521883fe344b27cb10 7031369baca8bdc5f4b9a2f44180c0ac498f171a416c8fdae8ba089819eb0256 17094a93681a3b3d100ec7f45839e9d42a09d0d75b8a05f6da5458eb6151be55 3fa2413df3364cb39a368d22643cc13b695eda2ba739e77125516dcb203d4764 e21c4075a931da7518471e4251a9782ee15bd2a5e94398e09a07fd265edf618f 71d439f8129c6b7402a05ff14547308fd9dc5e7c96f620a2682b50a7859eec5b da71f4c6e12059e8dd3916bfdfd0e151fa4b5aaa90435d1d42ab092c9c421657 d5bb283717759416257016e9314f54455ec9448f77df7e53c24fe8d96ec1c68c a7fd651af1e71686d2347af1ec6f9b790c185fd352ac03047f6c920bbb872fcb fbdb7566c75ab06d93278df61d8070a9951766b46720da236d8d4e7b4893aba8 ed4ac9406fe383631457095ca9993db527e7a37c9419b7abedfb7d41a460b9c4 9fb39efcf3631da0dbd315788ad98295fbb62e11655c0cc1ab2fb0e54e01ba9f b16cc2c1f82e48b3bfef4b4d339d7f0df8e001dc2a5911b4b92fb7eb428873eb 8a5acce25fd9f47faff3e0733d38b86a244ea1952ce528b8abf9493b1b307bc4 7a4fa41bbce361d2a6bf9a6820a231a58e89a9d214fadd6aadcbedaa150a4f27 9efe67012114205991c643e6ea1411203926bc0804572e0b727913402a466f8b f111844675dd5109212e5447f682e2959232ad21a218ff49479714aadb0618d3 fb488ebb29b2939059d1f794c277515eb400e5c626a811ce2a7a247e9e904b64 5609b594431433470ddcec6974f0f3d77651793ad7ce23ee72111474cfe2ca02 51c4d90c0b02ac9d7670c3795df594074759f38fc2ebe6a2a797d54628a50676 6f1e2263844d597fd845687a44f72a539a8661a9a9064c78071c040d1f0a45fd e2cccd2268919227e8e2c05befee614a9535a6adb324624425290d7032f6dfce 19342467ccf344114425ca8f9ed74899dcbd8d373879ca8f83d953021259f998 338d2e7a5cb54321f8057d70d5a02fa8aef3aea24854a9a21e45428a97397cc3 58aec6ec45fa9199579406c2e842549e1639d80b2a6b2502f28c8f4f94fba297 938a3c986ed1dba4c3b384bc43d7bb6becb71195475398313bf8774355562800 bf86d8f75101683880ae686ac36b757ce0e4adee09ef68f8fb5e891e956ee62e 346adb50098c5b7ded6374bff775ef4fd58a5910d980a635576e20e7b11797a1 7c44b0d347ec9b56cfca607866ea109d54fc992b1376eebd4d201a876e8564b9 f8ebd34de83bfc90c10d8ea85b556cb5fb74c447bde7329334b29c788cae8f02 de02daabf74f0bcdcf64064c91f366db4bb68794c9c41765bfaadfb514f487dd 096b2ad1f1404a836a809a20dc813a277c749ad0c4c45e6374630a4999ec512b fe9f990a74a05ff7e6c2b1ade33fd14670c6ef97ad99ccbb996b12d0172a88e1 b923f85a17213d52ae7e3886c50e125d38b8f97692cb2a5b3e03f21188f763e9 7eec87182ae517e42d9590f73c2594a7e5f61b9a5bf15a7eed29a754f729d532 dfa74519696cf75ae98a471ec88b3ed550730f50f519ac629691a47e19343c05 1b6d466acb89f50db25a9beae2b0eb79a96d2c0189febc516e68f70aa6bc09f9 129b0fd837e87d16fbe4a7a4456663cc7346218be042b965dedc22b7cb5f811e a445a5651759ac076b49d476e5f89c218bda4ec9582c95149b5f2d8a49c80ead 3ce0df6ea52db964cdc0ef2164bd21f818ef287cb3337b4d8a6aa34a336be17c d808a00949f82017f831b771473ef12a2661ab1fc21c3e344899d6a73ef7ff83 694abb48072daa7841dbb31498a9cc29b07bb0dcf709cae5014c2cc9073a1e5b a29d67f72a030496798f04171ed6a45105fbb58ca261d3ab9dcb57fc28b50cae 57c4203ae09a58bbca20a4613bcdff264adbbac8ad7ea0c2fabe4f07aa453618 e1591258a2a18e0fd974135fb890beba5bb115a8dd6491ad3299e27506ecdb8a e9c074ad5f1a553bb14f1aa35b9cabcd645ee452166f331319a5a953a922cc14 5f683e88ccdfc3d64d61b317df7e6022e9d50b28aba224d6a03a34a9d8242f39 e34cd7b5e46f37291f5d75bdc1bb586ac86778c1a496f321808cc0da6fb3a6e1 d4cd8c8e37c1e2c1d98384ea5a1654caf3b360d4fc77c3c3faf94466de5208b3 2935fde906ebf2d98ccba2cdabcd8197947f5e801ca0981a82b091a51c8ae0ba de5b69f3c9c0026fdd590e1e2cd526e7f7096570a53bbf917ee0a2a519ea4f15 f24cb5a8dd227ef2d8459ed65c31f5c19c9270028ad027c131e73c3c6f70b9d2 f2288bf3b41affb66db183903f464999bc5cf41602a50db4cd4f06ef1105214c cb7eadc45b06dc96636884a3d6d7a8374c57daaaecd35f52aa4db430e1c63995 bbe2b7bca8360dd4ad7dfbb0aeac6ba567251655c0e587d9dbf612b92bfc10ce db038669f091a3fb55034808c478ea0e0896037a1c5b442b8eb5923bda950ff5 72d305439fa14d73563da1105b1cb0dd7feb729e7d02368071dc03f11d647e25 46e5e870a784152f3317900f59f6f8f0d5a585ea6c1a0d5315625c0916906302 df05d68b2514a493918d94d99cb53f6deba91893597a866fa8383288acc52dcd c28693cb63d003a4a3248005b70e35cc45292fbdec55ae303f37ed3cecb8d0bd cccd224b63a6328ebb6f1192e962b4d9c160f30b753a3f974767aa5f8d5e9f11 5f6a834747814afd7f7e7d4e90d46ede92f8a810311bc28bcc0027e674efdcbe 3e40e2378ba1b9d7354e8be4e313322c2aba1e03d2f810cc09b78197e8214d46 6f5531094a7b8cecee5aeb2c693d4b382edf7d9d715d4cd12ce39d510885240b dbf096994f947ebf264ca3848ae72b3a2acf8cf2904a4b5b2fd5a3f590f4a475 25b967f5bcb647a537b6a4bb99be6ba00c9e96a51b2345fc48a8ac1f7cf4c9eb 329915effc052bc6fae5e25b08151e54129c8f5ff8896d0d4ed79b43ed124865 f79622a6cfd362e64e8e88e417a7b8204f133cfcaa7ac70df4b072bd808c6971 a0f2cc29008d5afa6648411b5deba3aac749fba957b0be5dc72696d1ccd3bd95 b2ada03d95bd1c2e7a10beffe96b9154cf9b1ea22c5ad3ed8d79af6df9c5fc46 7aae44e7f8558889afee261b8bb6c43785152943785407b575aa9de5f6c921f9 fa660b14626f5e1034cca473a6a7c16e597492013f9531c67a35fee2e56a2ab1 e4b9e834fab1fe22a52d785dc1995badcc84f2d32e0f9d029eb0ff5eb2e69843 fa738bf19d33087e9c0618371f5098b1e2e309d45485b4d6b37e557baab7152e feebd0b2c10c1a45494853962e0345b6b72967c886c311e47a1e5896260757c3 29d82d254d57e38e0e89ca1d9c746ad36e246978f307be1329914e7862a0f8cc b14f06cff9c03fd6cab3bb4cdedab7f0e1711b3d31b022af53cd82585ae82145 dcd76f76fa2bb84da98a2a3e46fca1d9e7ea0a91866201e08712220cf0d6d5f5 91a3283ee986ec9e7f25efa757a93322d0eaf07e9cdfa316ca5f96169ce85895 407ad045ce86d9f35b49cfd6bf116d22d70aad5777dd46aca0ac938cdb0859a0 96a63b955eb4c8d8666179b1e6d95fb193889028666c17ff613ad70c8e9c84a8 c66cafa7496fefc65a69b94b9ba5e1d5b944b8ffaa613fd3d04cc26796c0a5ba 2d6d6bb91772ca88f254a48ed8acfda7532d98f9d5b7d88cc0b0e57e5d02d327 4be18983b93de871c80dd536b7cbc274729c142a869ca7d6247c769ce44fb92a 90b197da1818303000994e0a6cce0fd6a524b0d5d33802ff7bc6099ca05a77e1 5f5b1a7a379baf044715bb6cc9943e5be7feda7733687e9e7f960594d1cd925d dcc26c02a8f37102c39272fa0dc6fc3f5fb20f81d61131e7dc39e862aac67cb4 bb9db02cea461eb5bc66b3d0b6bd78afd0f9536f5f907d53139b574fd40818fa f3c85343b5b8e77b8d164bafa35075acf022679a99145c46339f12a31bccc31b c17731415fd5a998d2a8e33c4fe39c1fe4d711dbe2b0ffc47a171a1ae9016c20 98f041ce3a0240bed3fd2e2e174a19bf5c396965897b3b64019e4e22130be4fb 6b8f3589719040c2b123716934d430aaec0bf30c04ce6e1980552947d3233966 1f72ec517f6318586521e5d4c45a58bc53530fa66efd6f7ef3d94fcc35afc26a b4dab34757b5933c85717090211219dafdbcbea0d8dbfd99fc05288feaaf19bb e8c905b49e7aebdc42529c6ec1f7c3ed523b399f2a71e61448b8829873afb8d9 d3cdeeafcf60fdeb9c878f6386fb58f180bacf6e99374e89e2704d3e69262b16 07547873c342d897940b8496d1f38e9088ce93dbda7e866ccc8c068fc7210223 1b27bad26cb4eb65dead908f9542a0b68b7a5d0b4ed989a8fc74f5e4d5a1fe2d e408abdae204cc186e0a2b67749500b3f8c51260ea094affc634a4953447c3cf fd2fbc2698bb86143bce8b232722518ec936358c7fbf69effbebdf6c3610ecc5 957fc30ab08d2e2f12ac47ddc6322a710b76f900c3dda591f048886f80165704 1f712a84065107083c0f79ea7fe4f92faae9c9c04cea4384478390f1affd066d 18ec102b5154b78ee8d468a4162c0b3a10bd19e1312e9d8564d5aa5da77f7e56 1b6852c00138225f9101fb1407fdb9ea605c8e0862d81aac19b869af18630b27 38d8bb635ba12ec2461ad673a27aee5bdb592d8bf08da6c14815ea3e59466eae b887ce5b0ec2f54dbdbd30424f317f45c6ae5d1cd6f44316c122ffd7c178fdbb 8a068cabba00c126bcad2f17a454d0810a0533629ff6b1069d5cccd5f5e52d1b 07869a59eaef3456267bf050eeda457c1029fee50b395fbea1dc6d7d7cd18d76 76ed7a78cdda4f105166f61ac728ad25beb547d071e0e515840dc9559551bfdb 454b080cc49e268fdf556161a92fe7d93219b395625eadcfbcfa8a9ed61bd7e6 f42d58a138020f2a69951d2f67641c39e98bb2a4441b0ebccaeab4e731e734f4 136e6b193011bb221ee9d099ba6a23a5f1340a1234a50a4cbbd172cce6cd2b60 15e10de447c4df7db80ab79c4840dff6c7eb06cd931aa58c001c02229220086e c1f2c3544af0a581afb28103ff5ccb7488ba861edccab702611dcf1628f77669 3bb25210bbcafa72dd0a5955a85419c425b9b176ee110f88e341751a56a2dc61 209df3ba68eed540b6df151f60ca61a8a4f93456aa864e179ddab8844290677b 669ccf3a67a2025b5cf5b4d7d2dc7e1e665bb55e72b8d02ef4735d6c68764ed6 93322f99d69636df06023648c22f86953046bcc662d6079ae2c7314bfff5f5d9 bbfe514c8beb08eb4a469c2b8e496671de9227b64ec3a26db6202935f7b92a6d a03d7c9d53126432b6337cccd64c650e0d4d6e3032ada066c9b2b891f5b74900 a9c3b0481aacf53671ed0d841106f05792d76db3626655f8677323d0b5d817d0 e7f0a221493ca7ffa8ad261e9663ea965a3bc82ef4d9031103337a868f80ab46 4f4a0df2f735b25807c9f3268a7e0711ffe63eddad14787806e67ec144ef1d17 083343ebd10a7e9aff9e6c1e349c7926ed0f3d878fa8b13f2904cf4efad6ca39 1bcf1f1f4083e5cee93da0746c5cf983004657c5c8fe4eece7dc424f72866db6 86212292fd27831b68e36bb169ed0df0d23eed7c87fa905de280da096e57e140 69e00680deaf32aa3986d48eea8811c87d7082371d3d48049611253d1d0c5e17 c80a7df4469c54882ab077cc8f0defd8b88232205c3406db6bbb157580bff648 e16b07a670f7fde9388e018153644252dca0a7fb24b50991c2e699c90d827fd9 b5ddf4cb8f2048f8d4476b649727d7654fd450ea19a29e4bd087a073404d6406 58c8f54ff20565298cdbe2a6cce4a24e2861a92b14212a05e854d04aa4bfe13e a5fb10d7736a8f03e6e306d669bc6f6cbb29b34958a8f4208e4b394959fe8668 e540699edffc8aad936f803b2abcf963889c85bc44acf6c9cc2ce2a12716f7a6 37c07d2d6879ce05971c3842d69bd02a41e3da3aa881eff4a38f9997494e922d 550f63938ceae8afd845a348c43f45f3f7173ddff3f885611d402f2477ee706d 8e530fcd2b6ea54093e445adca8c022ee291329e37228c5757270e9f21a5b2bb deb0a0f2d25224b0fb67a610cfce5a7fe61dc6ff049f489f1e15699a229d1555 fa976700d9fa69fb212aaa6d8a7d5604ded821ae4c63f87af0b4272ae421a29d 8801b6025ae855c0b1b978ad52c1a8869d81a2a50f65806fe9627bddede8891d d8a37af1dfa7cd7293c3938d32e410bf39437bdf149cd0ceee8809e3e8bd9584 aa3588ba05f51ed661bd48a1e11feafece70752b7b9ccd8b590afd25b0d91843 189c395e9c3409117be9784048bac366cda47f117b9260318bc8a894045e5bee 3a1e39af73458bd24b269b5ff40b96abaa885d1e895447297375eb8493d7282b ff7bd2b53ef951d02283d782e1bbb3068d2bfdaf811b6d4dcaf4b2a962783e12 f9f6b211bd4356914f3e3e7a3dfee75d69123468815e6fc7bf6e037fde16f129 ff01ab1eaf878bb0a12620a9aaa6907c4c88c18390d11553507d8d58a9ad0e51 a34ab4ba2e2128ad04deb5cf7d232d245ca20323a5b797b566ff73fc6dfc8bfd 262ca73f501e8d62b807cf9239e32740a2c2c7e6e3b3049508cfa7bfe22e2795 c469e5aa2c2b944c62b734b983024ee9541b60b9e9dbd27e72625f6cfe218ff9 417a053298ee1042d72f2749fd4b21d6afbeca64cd21722628dc52e8d9a675aa b4378ca91ee21bd5e41d78f78208db17434eb55be3eb95f8e69957c0ff3ad892 bbed02be41e9b29d6dd30b94c0a8a0c3a23f5e1906a2930b434e4520148f17af eb3a6f22d2bf6ba1f23c3eb89b66e14f20e409671c4b65f80490c8a3c60bae6e 9a2c69f153ae23b4117078eea05b7c40f0b484c8d11ee2b563533b23166b760a d3e22fca2b5b5667b800ec7037de99a585a7081d565eb61f8e7641f58ac1901e 1030da028db2ff84da46b251061212dd2d90194e5a8f64edd40a2fc547d5ae86 86bc73ff0a665456746074519505db6b1a96042b1674d89e1b00329deab4d97b 86a8d3edfc29fc47971b2e19dc715fe9a3369addb725a8f4b14094a4bd81b77b 5bb38ccbc7a8e1647767d3d660dcd19bcd09c1e5f9237ec7d37ee1930df5f0f1 2d0881eebd0cca2fcd994fd445ad2e620a7386c3a10d7dbda53d5893c4fa70a2 ddf4d0d5af1be8049bd3a57a580e5fb587eb5e3d0aaf73d40ff2134d17ef736a 36335066a493bdad7b4d5540a00cee82bf1b1832eb9c06325f7d2591bb1f6a2c b4ddfb4df9814dad3c9a59b05d57d8be208810831fb650efd8bc629c4c006e9b adbf2a6d0bc51cd88c47b6518e9183d9f25c4de7c6842f37cfd0c44518bcca18 6cd7d8709bfe03d9cac1ed9e19e0119ec41b6028fc2870e465ef7c24118ed54e d81de4113e04a7c4eca75d5c9f460324a84af18c3950b5d253fc11325a15af12 0e36f90bee4787a175c6ab7c1a39be8ffe1324a827028101243f60844594737b 7f597005909fcba78840e6297b099163a356c77032055920da96bf7374a5cd38 f71a74a4cc74c33d1be512f1a1af7aafd876e1d5eb115e945adc76d991b13bfe 165ef522d5e6b85f8da52053f20ba774670ba913e7fa1cce03293a4cbb5a8969 6572e555aa0a83fca4557954d438000d29bfefb09d87962751c77f15793a83b7 cdc6e6f0c4d7fad961d4ef287e00d44a1f61ba6fc0786c13ed8a2550a1914ae5 f1eb15a53984f208e755a9ee908a48b8038d0c219aeadbe303c2cf28c6d7db63 fd1777db279471c852890d0a018d7660617a94911be483486b2c3be1fae8070d d929d68c2356d58d84986662ce0e783e27852b4afdbf8c97f1e47672a96aa0ac f8ee51676e0be143cb4dae6cd40628d0b7012f1ffd638b14f7311f33103fb53b d91e689cf8b6d4930fb4da13bd6343f97e51613b9e6ca03e2fab85f12b1cd835 1078b58f1b82be751a2dcaa1907b2b7bec05ddc488d7388e9d1b29543de2ad43 6b75f758b144fd7b93a4e3876dc06010507f3e7037f3f8f078f24fb5972f7e73 5922b8942dc840cfa4e3d713026fe17362a47fc060c7282a9f7684d89921e1ac 2963a1cdfd4682857b4285e68483576bf2a05491d74a390dd017a95d0ebbe786 8250bb41eb0aa7226bde3a4dfb5b27d7f97421029f2bcfd26fc1a0f3c256b9ae 837aa46745d5de4c5c275ae1f625630648840e9fd199a3c4d00262c696bcfbe0 8c7870e1d46c02a919e381d27455dd4ed5049d33eac72c56810409a6cf74f242 d35ca15c50cd05b546e643835cccf8b8b7ab291bb362bfc92bae2d06c815d612 309ecb8d79321f1a633a934d61a4a0c873637fc83695b61135748ec860785f60 6cd96e593035ccb3103ef1048ea34dec7e52a185915852151dbb086768085f47 9e89ab18c2cfc112b6673118f12d7665c5adaa6853eb08b0bf6061e0b8a0adcb 86e2f9be796a4586cbba8946c9a797aa830858ac6358c4dc5ec98d6e3653ad65 8428f17dcd36cceabdd86e4a2ae4792444b7daeb08958ec834d699e4f9e960e8 5a883744174e66c192f05ab50e2d7978325436b90e06d67fe84a1010b3ad5e36 3a477bcdd07f49becc828dc7f48fd214fb139b57a237ee1e3668255af55a4135 ba74aa557ba6287fa08a4805235fbf4373ec0ed49aa31fa3f99f990f2ce9c12b b54bf5b52f80dc67e494b0958f473f9d0bff8831a33d17dc910b6dd45bf2ff37 b1eb44f40972d710a0d19f6046afe4484ad2a48412ae185ca10c3ac5cb192edf b172b5626e7023012a6ea10d9c8d749b0d91c563c2b9c025fd7cb4ccacbc5478 5bde2cb58d942e2c9fc3e4b22703c1db47f629ab36088cde1105e7a8c624ff7e 01d26899399ff91f4f39b1150dfee69f465f44a9f289c78fd050d7bf66200a93 326acbef82918a3bc1829452b0c3a5bf15b974cc4c85b9aa0a8e9e437819a8af 5ef3df8c5f451e7dfb18bc2cae853988b550dd963c5f150324f5348bee3a5709 c15026d9b4a90e50c8b0b8f13a46e63744e95b50f495ae6c30a612643316cb42 0a737e142d8fd6322a635641bd24afcf438b121b178d004bb29fcde186f9f873 b8172f44a6f75622d9d64b07b998d220bcde05d9f2839328105bd016cb80730f a67fcd5598437d21f60b7b184d1ca74e661a3b3d100ec7f45839e96e0fb74c39 faa05e9905e9074a8825683cd47f9efa112c3891cf8648e418f237c923208fb2 bc20674bef2cf1de80fc61c3e30669c9b01976598849fe3d9155920ae3c009b7 a7f9de4589b512b6219900c73731245412952085c619563c723d61c0270b2a94 9340b5d26323bb7857e6eff428f18a49327242a5e7e4ae7ffa30e9385a02a454 9edbe201c62fb7a47d1f217947eec329a8cf4ec750190bb8989aa848fc3762ee db9ec2bd3cb7221bb4fa7654046fe8522e4768b5b01197dc84d4f868bcbdf293 282da8a907a9ae670b6366bfbd07ef6534127eff7a7f99ef5441f750a7f0fdd7 16ac827cbcee87ba2c9c3a4e4fd9e0ab389af7a9d524dce404a46d147607dc7c cff13180b64a7ff61d4fa6b82ed0736a251f5d912d96569c2e454f52190180d8 614a372969c52351ac3dd829bf24c08f6bb5bdce3dc7cface8a3ac69b2c54a49 f61fcfaed3b3ad2e266a2099e19a9b6275f8e27769f0b4c13aaf831a0e9dfbb6 18c83d8a278edea2cd628326ad659f1e1cc456d98916f0c6d1b4856bb1919f4d ac7adddb448825967ae9a1c158b1f601a7efbec3e76bfd7869be9060622770ea 785279366700c330843b3bed717b82003c5569330da07c8b09ecbab3b013f084 6a314a8a7bf3f03727e91e3c60bbfb7cb9ddaa30f5de85da4d2dd4911c9c61da 3767f9c533c58748d89f96fc94a25c89d0ef1120d3263568a911f0978a312a7a faae86dc56ebe5af19b0b25c2df0947caf214ff95816b017481ef9e3ba594bbc 80bf7e3e8aeb52e397022b93ab95957753a094b1e52bff8e3d7f0d04a17cd286 e274add583659138334576917cd517b0394969603e833ea4de0c5b38c84c0488 1cd8c904f7b3da660cc12d37945325bf9f06bbace83f1b64fd8f997563ce8efb 82747a72c81691f88c898f11ea2c054aaa6bbf514cfca02b56cc99e5dff1a481 94fe5039ad6acdbef5843c8e4fbd04bed9d9b6af1420fae38cfd1772b2e3e1cc f7e4450a01668388fc4ddab08cc24af6bfabddcb99712100c58ccf5e9c9a17c5 e40d316fadc3bfa62294a091ed266bda81880f3bfeb6f6cb9f8c9ab03c73ed64 52ad9eeb2d3ac8635cd9d2459b2c2d34f952bd75def9f84a60be2254409d33dd 04ca06b44cbb8c4586ff98376b6aeef2fc171b07786381dd978e4c366345441b 280c8d25c53ed779369e14f6d7066db2c7dbe003500314505e1c3671fc3b0ddd dee36439ac826862509d543302c387d54cebdcb6a5502376213596596380ba14 b7880a934ab08a6abf6dd4093dec4128c8082f3d92b5d2d92cc286268f1be343 312773834d2d1f8433d6ad2a938859502d867dc25f0cd96e98e4bf4de131dfb7 a510583fba93ae8718a1f89d60e5b5ec026d91d28ab3e9ab81d44f8b010f1138 83325a09382ac02e6f7fb07fa95f90c75d2d926c8ba15701bb16f608b91478e3 bbe8762c90ec7d507f9ea95d4c3f46465a2331b859db5d6cd9b590e1130c4681 297cf28679c41a91175d4a5f4c580a1de13371a453bd5e0d38a0b7c0807f0db0 2deab94fb7aa3c7f3138042ae532fabdffdf953b8feb36631b29f5ab0bc0438c 5f9ab0ed3eb87ff056c5552083b2cc268689be24162942776f59b7f9e4f5b41f 81e5c947ae042d24df262097bb9218842738845fe30e36afd81ccf6e2c90d34c 5dfbda79c932d4baca44490de00b02ca929433e1f25000ccf537d144ecbf943a c21727920d9beb432402fb17ebce944da34f6fcd02332c53ddc0c3cc2536cda6 7f80282b423be2e01a464d062226b47b9cb5b4e45bd5079ccef3a064af2aaba0 905c5f1a3a9a333bbcae9123c29153710fc66fcb65e318ac005e551729143d67 da0dd0c698dd7e387844f603cc17451bbb725e2b531a85cac01ec08bf1b9ddef a0f9483de34ce375c835aa613b2f289d124087071ed8b4a37a0aff1981a10b02 fcf7281c0d03a84feca7443b91ae6653659df5e26fe1e0d5927daf090bf54fd4 e730348d1e83f6cdd345b5331906d30858b8944043dd5ac14859db6e68360a18 c7fd1b027d91a14312fc35a30dd12d6983fa9d9526e0559bfc376385715da2af 4908b2b2ee3388cf1fd9b7bbd5da15434739e2f12f44481527dec6241d7dc090 79ca05f15d5aaa3507ebb89e0bf0bdd55f45fad40756621200e4b883facc6c00 c0f6e41068e0a32547afe4dbc0be8e5e57836d47d81f746a931411c615a145f3 afe966876ea51677709da171d16671ecaeb08c8e5799102210c7c0e4b2083148 0ba6de1793b208efd7e5b958b04840c57b7042fd3cf0a7912e238315325f665d 458e6158aa22701949facece70812472f30bf5e8fc544ba99a643876cc41ed10 48daeeb69ab01af53d9018687bee2bb47b6d4acdf1ee04a46b1a488708eb2cf5 7733261d6453d095af9549b122c6e183b76cba9def22cbce32c49dc615c0988a 428dae015300fac0988ca0c6c710de1cec4bd2686562dd31c73d70bbf2697942 7bb004e3b5e0039fe7f069073a17144ef3301bdc8b2f64bf80e69378dfe988f4 bf3fcdb94b79673c06452035bc0b82acb500b8611a958a7882bd4542d895fbf4 a0e0ed758057bd468c31e7a746a72ff9360340bab2e50ee83f152cfe04d8fceb cf05f7198e08ea12f9b2b15f79a2c7c20025664b25dc6cd3866641dbb5b638f6 cf50f20f6ddd40cfe3ec12be71746d38f82e71cb2fecbf616bf275e9911fc886 c8dda19ae13c8359a162e7a5d643867c138b7a27af42cd13dbeb39675fc9bedb f9ee5af9bef261dfe00b7a380866f5146460f4326c02591ff735c6c5edb7d2e2 648a99d75b0c6e56e58e1ab20eb30c26df1cbbb93539de70fd5109089c085dc9 86a1149ce85dde78d04629e2119c3b1defbd74348ee124188aa072c646eb4369 61c2af77048a217f8a87d0c1be164877e38905b9c64c4ca7bb245e3f42604d2f c444db2c200ae6dfcc4c121137174bffe00b8cfce8387ee395c9e2d7796d0b65 da7a0e628f11141f1464b641f82a6d647a706189d18d5a400229ec79fa6e3c1e 561a53f006ffc78822f0a7e8517a920265e4ef96615ee775c1ab93d839dc4fad 5dcd0adb608f0d3812be8681e0b59f084761d99de6b08c026005ecd0ee54508c 238309ed46163b5fb393891d90d8cd03ba417a04d6784396e7e8d282a3b84431 df3f324c703a4988c50004c716bdb31e4eadcc915e78a6b1898026d2dceaeaef a6e82b0ee80fc15221de932095e35adccbcf4ae515b504e4763ad46ca8c568a5 e2605171ad638caaeb21a80cb5877e2da5f053c3ba0db377121a6798d59ad99d fab5488cd3b25bdd8b3a26a3805ede14114e72b50c9c8fe2a8c6384aebf27dbd 5df066b1f4476f4b9d457018fbb57c22622b9e4a3cffb970da1a887bcae6123c b46af62e50ec8ee8fee48fb97f127897313af992c2ceb38b2e7cb704b851a492 5fddb642aa7d5ff2db9dd54dc1980a33df42045e02a2ef62748384a976fc35d4 702aadaccbe7cb9752d28c3a9d15fe8389c92c21ddabf3cba6b69e857565df1b 0139de5682df570e15411924a259f42a86a3d4d2d28c28252a66eedc95adedab a7c61857886af046f66f314880e161176f93395cde18578d7d7596b8c3422841 5fb26419e6316192efe069e49d948fba20bc602f81030806a0665c9cb9ff1449 9ddc0b5fec5fe41f09092ff543a6557b399f57b9bb39ca2d86309eae7c9f91a8 3fe58466c209c521aaa358aefb0b07a8125ab587c4f15fb38e6493fffd24f615 492759cf86fe0caf7049c448929bba2ee8be67eaa0e0aaa9b5f636917cd01d66 897982861ee57528c388adc791cdd1a857949ee4906ac4e85962866fa79d529b 7544adbe7fd7d6bec3fd3ce6bf589e6fe7a9f41962769bd41ea21b3a9e258fe5 a5f8a6ce8ffac7016d5b2cd8b5f46f9d53bcc33658f5b23a851bf6803519da02 426af58a0790a33efdb65e2d6cd034c264d1e1c18d6c8b0ddb845a4bc0425329 88b00ebc782cb7c99a9fa21669a752e9e951c24309317da475601ac02d614bb1 d16d3fccfe3d2f6535b7770dbbc7a7a44055fa5aee59ee1e83ae3af53c138e98 7a5aba2257e904fb80fe99f6c98394084b3cce03dccfb9279fc1fdbd19472b58 d8e5bcd8a3a7a3a5db4f5b50dc8e1ab20629f13d610a751b8a3609e782a2d9e7 e9e703b5726a50229a3a479431c3640efedec0f5a84b217bd0b7d62071520179 895001bb04a291c250a79f6e4ffb1e121f880872e5557cf73b3d5668b7cfb285 f51310968de06ccee34bde0e84275f5ab2a72bc3f9a63f48f8955681f615f091 c95b0e944030a4ab48a511b48015cbe8e01cd6322a500b702a9f85900e1ae8c7 b98db59f0d6d8d73d546f1409d93689bf313e812bdd928e05b5488d9cb66b738 3408a5815a170e93fd30f68f82818148a0bf8786d6bfcd09442046fd9748401c a8d7e4598397eafe105882d035d45d1d6ec61079de963db02500e255c774e8bf 307bf9371f54258aa40237d5bd1581008a9875e30abdf7da39cc41ef4677662e 3f98d02015c91f234a541df1958cdf067918d71d054da3f3d3ef37d193690dfd 9d6a3212a0422c96e7b40e66b7a243a7acfcabe0c5466e7c0d425d228586864b 772d5a2b0912b061ce0d15fb76728df33e5c42b125a9fa7d5fb443d54de43df7 a47a0106a80b7c2823bf7060a7e3e81e0cb7d7442057e93b6f38593b900b4e52 1a0113c06ceaa6e5d632c7c5e9492ad0546f85313238d39bab419ab657d04ee0 166667660ae8631ade889d60972b2908a6ca4c410e8c06451ce1eec3ecfa092a f30b6046756ab995176ebee3683ba8570d69ca581b52a81a21322e744792df16 9f035497dee5701193d55350b11978cf074444691b5cc3513a3cb8eff7f067f7 96edee530ddd825671f5bccbafcc30718a1902b173652e114862815fd0ead797 88362354737e832fa7dd46fd76f8e7b140d84053ebe209b5e9556b2f723ec229 3424d02f8da40f6a4c5ee291b658eb17408bbb2bc98689d0826fdb41428ee6ae 39475c480489083bc7b7f606f68086b7b9b205b4e513af8b73da6c2d0f3eb1ff 70d97d205532cc0bd6f6d4f4fc37ae957a48353d45434c7257051b263b82333d df2d8acd0b7c7bb6b8ad9643bc1fd0b5eb0732776022d6213932021a08f0734a 3b35694705a828587bb9c4196dfc4059a9837e7c46dbe6153def24dba61d3f25 9bc5d63f030fd860e9801dca7b81d0d4dc3d8c4cbaec3b9a769fcc09d7fac8ed 4c046e0b64bb8db2bafed5c91b39fe0885cd5e6bb5fad3917d664238c4642fef 6c4c554296df92a9563a29430485ac48c2a0f02ad39398126843ba348005aada 3cbc9211dfeb94a6d1b4b14d7138d4e2583d721bc9595e05c733043ba6d86f91 5dd250546f22f9746df5c4ac9f99106073336949dbdeb1ed3dc746587c1adfd8 48dcbafe2cf0c204c44793e7892ecdb55c246cecce60f467c2991989f5be9d21 4d72a888116d8a945376697b5d7034d62a680f9e91011a57b797d9576b043d1c 4b73666a7275e93a3b7b52feb6e8424f19a4914d4f4ce621efec308d83ba912b 7f5e0089ad1c15175216c27afef512f05312e2bee6c5778c5625354b9b3c70a6 2923140eb3f350d73d06ab95c5232a86199f41695b6cfcad052a5dc27d0705ea b4c94332d917236dc24f52172c94e05c3ff9203fbd34c13ad9d9e076dba1e23e 47bcf2c96a1c8b3ffcf2419f7d5b47795d9d2923fa5905b5ce3b4f332a89c5da 71afbfc57de12ad8d8678d1f67c1898c18249faf4d9f427019445425a11fff30 9164be83b0594c5f312d653513ade66d5ddf29738cb823bee179ff864d01a740 f759f64e5ce1d82f7841118b263929951fa7896a87c7949d9ffe0c5c5fa07fc3 e3dd043a9e4ccfea80de6ab6f460c46f852753220acc9645419b13634bf351ba 35a1126d0164e6e64518a2ad5522a73fe38612a34cb6671c48bc18c919305bfb 35c57b0c8e221fa7519d5b1d6d168d8bc0375d174eab1ae6e9e44fbb7d9ca6a2 f04c813f119939714322cb87c693a2499c9c269bfda53c78e7f04c775ad407be 49f8679e345bef9d531654e2377e61bddfa4f8aebe5bb6dd862d298519bcec25 54c40969c9d1fd16e5a126cb22b8bd3976f68ecc8fc8dc9c0fbf51dd20c839d3 b921da7d0aeb93aedc761f31f3a3401f83be4d38169ab5368ff41481d638736a a71f624adb3c4a275e6b353f139e089f0e02a27bb003c8fa5eba4f1b989b3282 8dd8d049529a84b2727733df2790637e437581de00fd5aa03c516360e4644d55 aedaefa76f7f729dbdfe2fcbd2c05dd593c74f4eea31518b09d8bf2094354040 c260b7b4bc3a6238bcb61b03e6de12e3d63be9f7b5f34441d9a44304911eb92f 93107eda8946de92bfebacdbd2d950d92150d1f831d6829fad5d62c75e5860d9 cb3e3062cf867305a0ddc020bf4bac7a2d899a9481a391152151857cd53a97a6 6f7cd99c190f119185d33e49f6ab5ce20e61540b21387358f1233d2b39e69924 7ac33ac73e337a1a54e9d574ba856e0d3cd7267483581dba9491619f91b12996 d1c33f89d5dd6407bb98323467e9a6e3be4afc06c5006e19ab8ad06b0a01fdd2 ad742bff310f17f16193d7ab584c71c34372690521e0afbc4e6051025ec9a4db affc01120edf545631e4fcc2a65c488f25f640260982b7458f83125581d36f18 55ab4d823dd44112967e4fd41cdd60d6644617a638ffd5c9d89d2a95bc4b1b9b 8178777184d48f314554a19a444fdd509ebd345b19a411bedf5a0f59e9c4dfd5 6facbb6ee71145168e06a6049f1e2b0e3f91ff26a2cce2db8a256400876db370 17cb684540eea84942aa295cb079951554614e45f8d0910e15093aa1d4877c3f 543f0957ce9074aa051182c9ba6cf64058a403cc63cad5335f51aa32c76e3d8e a3677bbdb623c2c5febec43e5490decf54bcf7d9cf35a4e5b9ab5577649cb61d a65b3fb13156130c55b44a78849ff4d84136f8ee4f2a368de63f5799c822c3f0 b27770a29973541c4e137774fa958c0ea6227a57610bc6f056662ab2f7ab4aac 6893826c13d3147b6fa6075cd4784cb799cfd972d9566227db5b25bef8641534 6fb8cee4e06dc0fc49be6237a2720e3f9b7bc7f22a0a5ff2c276c2aaa00ab372 7e59f1642709f1216403c0f694914e0be6c5165b21c1a736bdf04da8cd699fdb 1b9e1553a56314b73ba74d83ccdb0723469ebe15cf10d7bb4d16f1c0878ffe68 f015da3e534334f53a2591d30199a0ccfc0f3a239559e4d0c7fa1fca44442141 3bc003d6be7ebf1e9affec62467e98ece66bb2216b4cb5ce45113e75ee023635 9a3ca384d603136fe5b5da21465e6d406931020d030ad932cbaa597e170298b2 12b15b8434612b12d13844a3e5a46597b4c26148a3d6f5c42fe2d949dcb64b40 44034791b7d780f75d119422d56fae911d5ec40189a4957b13b9b75d991ba190 fd3944c8ea1b756747a0b14492b04053dab4418ea5a96e1b6b12ccdfe739d392 d023e003e0463dfff9ad29e5a0547d5101e9d6ecb59f376860952fb748d15b68 1070ba9d08b9436b65b80b20d7c6b65e4476553338f9f17dafb46471d293de8a afe9d55d30c38a475b9e8d00d02690ce3562ba9583038b5fed7940cb4d7cd5d9 79e2532f65689847 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000 cleartomark %%EndResource %%EndSetup %%EOF pmw-4.27/psfonts/PMW-Alpha0000644000222100022210000007477312247665016013477 0ustar ph10ph10%!PS-Adobe-3.0 Resource-Font %%Title: PostScript code for PMW-Alpha font %%Creator: Acorn Printer Manager (PS support, v0.23) + hand edits by PH %%CreationDate: 20:10:20 25-Mar-1993 %%DocumentSuppliedResources: font PMW-Alpha %%EndComments %%BeginExitServer: 000000 %%serverdict begin 000000 exitserver %%EndExitServer %%BeginSetup %%BeginResource: font PMW-Alpha % Renamed the font as PMW-Alpha for the port to Linux: 21-Aug-2002 (PH) % Removed %%BeginFont, which was accidentally left in after %%BeginResource % was added, and changed %%EndFont to %%EndResource: 05-Mar-2005. (PH) % These comments are historical, relating to the conversion from the original % Acorn font: % ------------------------------------------------------------------------- % The name of the font has been edited to remove the DL_ that the % Printer Manager sticks on the front. % % The treble clefs (on characters G and g) have been fixed up by hand. % The Acorn outline font has half the treble clef defined on G and the % other half on g, to get round the 12-bit limitation on bounding box % size. However, each character includes the other, and this causes the % Printer Manager to generate PostScript for each character to include % the other - which causes an infinite loop when either of the characters % is printed; a limitcheck error results. The fix up consists of moving the % definition from /xtclef (g) explicitly into /trebleclef, and adjusting % the arguments to packedarray appropriately. % Philip Hazel, 15 November 1992. % The new fractions have also had to be patched up by hand because they % relied on the Acorn font habit of not recursing. This was tedious; try % not to have to do it again! % Philip Hazel, 25 March 1993. % ------------------------------------------------------------------------- % Added downto and upto: 05-Jun-94 (PH) /PMW-Alpha 11 dict dup begin /FontInfo 10 dict dup begin /Notice (Converted by MakePSFont v1.03) def /FullName (DL) def /FamilyName (DL) def /Weight (PMW) def /Version (001.001) def /ItalicAngle 0.00 def /isFixedPitch false def /UnderlinePosition 0 def /UnderlineThickness 0 def /decode85 10 dict def decode85 begin /str 0 def /ind 0 def /getc {str ind dup 1 add /ind exch store get} bind def /getn {getc 42 sub getc 42 sub 85 mul add 3500 sub} bind def 101 {exit} bind def 109 {getn getn moveto} bind def 108 {getn getn lineto} bind def 99 {getn getn getn getn getn getn curveto} bind def 112 {closepath} bind def /unwind {/str exch store /ind 0 store {getc load exec} loop} bind def end end def /FontType 3 def /PaintType 0 def /FontMatrix [.001 0 0 .001 0 0] def /FontBBox [-360 -326 1324 838] def /Encoding [ % PMW-alpha_Encoding 1.00 0 % This is the encoding vector for the font of alphanumeric % and small musical characters created by Richard Hallas % for use in text when printing music with the PMW music % typesetting system, and also for general use in text in % desktop publishers and elsewhere. % Encoding file updated by Philip Hazel: 25/03/93 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /space /.notdef /smsqrest /sharp /flat /natural /doubleflat /sqrest /leftarrow /rightarrow /star /plus /ddspace /.notdef /udot /crest /zero /one /two /three /four /five /six /seven /eight /nine /smqrest /qrest /dspace /equals /ddot /smcrest /.notdef /.notdef /bassclef /C /.notdef /dminim /fermata /trebleclef /beam1d /.notdef /beam2d /beam15d /cnh /mnh /.notdef /ds1 /ped /breve /dcrotchet /ds2 /dquaver /.notdef /altoclef /semibreve /.notdef /dsquaver /.notdef /lsbrest /nspace /lmrest /doublesharp /runon /iturn /.notdef /.notdef /cut /downto /uminim /f /xtclef /beam1u /.notdef /beam2u /beam15u /.notdef /m /.notdef /trill /p /xbreve /ucrotchet /s /uquaver /upto /.notdef /xsemibreve /.notdef /usquaver /z /sbrest /bar /mrest /turn /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /stave /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /twothirds /threefifths /onefifth /twofifths /fourfifths /oneseventh /twosevenths /onethird /oneninth /eightninths /onequarter /onehalf /threequarters /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /sup0 /sup1 /sup2 /sup3 /sup4 /sup5 /sup6 /sup7 /sup8 /sup9 /sub0 /sub1 /sub2 /sub3 /sub4 /sub5 /sub6 /sub7 /sub8 /sub9 /.notdef /.notdef /slash /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef ] def /CharProcs 124 dict def FontInfo /decode85 get begin CharProcs begin /.notdef {pop} def /space { 640 0 setcharwidth } /if cvx (e) /unwind cvx 4 packedarray cvx bind def /smsqrest { 260 0 setcharwidth } /if cvx (m6T0Xc6TiW>TYWJTQWcxT/WWUYWmUyWl5UFVlGUFVl>VPXl,VPXc{UFXYUuWEUeWc7UYWtTSW|TiWcMU~X6T?Y6T0Xpe) /unwind cvx -26 -180 /translate cvx false CharProcs /smqrest /get cvx /exec cvx 12 packedarray cvx bind def /sharp { 460 0 setcharwidth } /if cvx (mlTO[llTO[pmlTO[llT`XlySLXlyS-WllTAWllT-UlySnTlySOSllTcSllT|Pl7U|Pl7UmSlbV>TlbVYQl-WYQl-WFTlwW\\TlwWyUl-WeUl-WwWlwW8XlwWWYl-WAYl-W*\\lbV*\\lbV9Yl7UjXl7UO[llTO[pm7U7Ul7U7Upm7U7Ul7UKWlbVoWlbV]Ul7U7Upe) /unwind cvx 4 packedarray cvx bind def /flat { 380 0 setcharwidth } /if cvx (mJTRVcxTEW8VWWpVfVc*XMUMUtRJT^Rc2TXR*TdR*TrRl*T?[lJT?[lJTRVpmJT{UcJTLVEU/WwUHVchVIU+UzRJTzRlJT{Upe) /unwind cvx 4 packedarray cvx bind def /natural { 360 0 setcharwidth } /if cvx (mDT*\\lyS*\\lyS[SlDTcSlPVDTlPV~PlpV~PlpVCYlNV9YlDT\\XlDT*\\pmDT-UlPVcUlPVuWlDTAWlDT-Upe) /unwind cvx 4 packedarray cvx bind def /doubleflat { 700 0 setcharwidth } /if cvx (mJT{UlJTzRc+UzRhVIUwUHVcEU/WJTLVJT{UpmJTRVlJT?[l*T?[l*TrRc*TdR2TXRJT^RcMUtR*XMUpVfVc8VWWxTEWJTRVpe) /unwind cvx 288 0 /translate cvx false CharProcs /flat /get cvx /exec cvx 12 packedarray cvx bind def /sqrest { 380 0 setcharwidth } /if cvx (mNT8XcNTuYBVWYaUcWcUUCWyUKW8V]WcTVuW3WVX9WfXlUWfXlTVDVl8VDVlrV{WcRVKW[UdVjT?WcZTMWNTcWNT8Xpe) /unwind cvx -44 -180 /translate cvx false CharProcs /qrest /get cvx /exec cvx 12 packedarray cvx bind def /leftarrow { 924 0 setcharwidth } /if cvx (m_]hVlIWhVlVTVc]UeUeS{U:ThTcDTTTNT>TnT0Tc0VOSuUiUdV6VctV>V/W4V7W*VcuW|TaUeS9W7ScSW/SmW-S2X7ScgYcSIW-U2X}UcXrX4X~XcEW0ZiY=[2Xw[cmW,\\YW,\\;Ww[c]UC[wW0Z7W~Xc+WnXxVpXpVpXcwUpXBVe[dTvZcPTlZ@TVZ:TFZcYS-YFV;YFV@XcJV2X:V}W,VyWpe) /unwind cvx 4 packedarray cvx bind def /plus { 640 0 setcharwidth } /if cvx (m?W>ZlTV>ZlTVcWlwScWlwStVlTVtVlTVDTl?WDTl?WtVlqYtVlqYcWl?WcWl?W>Zpe) /unwind cvx 4 packedarray cvx bind def /ddspace { 260 0 setcharwidth } /if cvx (e) /unwind cvx 4 packedarray cvx bind def /udot { 130 0 setcharwidth } /if cvx (mmS]ScwSgSwS{SmS0TcaSXXT6XdTFXcEU=Y]UAY]UPXl]UNTc]U+SdTkSdT9ScWU9SDX9StX9SctXkS{W+S{WNTc{W_U{W0Z{WI[c+W5[ZV5[]UI[cMU2Z7UUYRTFXpe) /unwind cvx 4 packedarray cvx bind def /two { 640 0 setcharwidth } /if cvx (mFZ0VcHZZcmU3[aW|ZcW1YccW2X?W[WoU[WcrT[WrTtVoUtVcYWtV]WgU]WzTpe) /unwind cvx 4 packedarray cvx bind def /four { 640 0 setcharwidth } /if cvx (mcY9ScuY9SZE[dZLXtXLXc7WLXWWVZpX>ZcXXTZ.XjZMWjZcXVjZwU.ZwUOWpm,XtVcaW]WXVaW6VtVcmU8VqUlT8V4Tc\\VASWWAS}W4TcFXpTFXBV,XtVpe) /unwind cvx 4 packedarray cvx bind def /seven { 640 0 setcharwidth } /if cvx (m4X9Sc/WKSkUES/U1ScMU1UkW*XpXKYcOWXX{UXXPT/Yc4T7Y,TRX,T0Xc,TuWgSuWgS0XlgS;[cgSK[ySK[}S;[cFTmYkUP\\WWvZc8XFZEY2ZwY~Zc}Y5[4Z1[4ZvZc4ZyY4XRV4X9Spe) /unwind cvx 4 packedarray cvx bind def /eight { 640 0 setcharwidth } /if cvx (m/UCWcOSjVnRzR?WzRcJZzRfZLVzXCWc4ZuW|ZE[jVE[c7SE[mSwW/UCWpmYU]YcYURXvV:X*XiWczXuWaY,Z2XXZcdV+[YUbZYU]YpmyUpVcbTdV6T2TPVaScKWQS^XgS^XpTc^XoU?W@VyUpVpe) /unwind cvx 4 packedarray cvx bind def /nine { 640 0 setcharwidth } /if cvx (m0XlVcSW_U]SmU]SLXl]SLXc]S:ZxTE[|VE[l~VE[c|XE[LZCYLZ5WlLZ3WcLZ+U+YzR|VzRc~RzRQSwUxTwUcLVwUBVcS|T*TcCUgSoUSSTVSSc{WSS0XrT0XlVpmsU>Zc>V~ZKW|ZkW>Zc:XIY8X}WkW?WcMWZVZpe) /unwind cvx 4 packedarray cvx bind def /smqrest { 260 0 setcharwidth } /if cvx (mYS0XcYSiWaSYWmSQWcFT/WzTYW;UyWl}S+Ul:T+UlaUPXlOUPXcIUFX|TuWhTeWcZTYWBTSWJTiWcpT~XYS?YYS0Xpe) /unwind cvx 4 packedarray cvx bind def /qrest { 380 0 setcharwidth } /if cvx (mySuWcySKW0T5W@T|Vc1ULV}U3WHVcWlXTKSlvTKSl+WNXldVNXc^V>X*V]WcUEWcOU3W+U+W7UKWcmU?YyS]YySuWpe) /unwind cvx 4 packedarray cvx bind def /dspace { 130 0 setcharwidth } /if cvx (e) /unwind cvx 4 packedarray cvx bind def /equals { 564 0 setcharwidth } /if cvx (mQYkWlWSkWlWS+WlQY+WlQYkWpmQYhTlWShTlWSSUlQYSUlQYhTpe) /unwind cvx 4 packedarray cvx bind def /ddot { 130 0 setcharwidth } /if cvx (mmS*ZcaSsYOSsYAS*Zc7S6Z7SFZASRZcOS^ZaS^ZmSRZcwSHZwS4ZmS*Zpe) /unwind cvx 4 packedarray cvx bind def /smcrest { 260 0 setcharwidth } /if cvx (mhT8TcQSYUtTFVoU;UcwU5U{U;UsUEUl+UFVc:TCW^TYWcU1Yl0TlZl}SfZlBTLZc~T_YVTtXeSgWl+U8VcwS?WRRyU`T4TcdT2TlT2ThT8Tpe) /unwind cvx 4 packedarray cvx bind def /bassclef { 640 0 setcharwidth } /if cvx (m{YLXckY\\XSY\\XEYLXc5YT0X`T4XzTJXcGUbXIUKY|TeYcbTyYTLZLTZZcjTvZ=U5[sU5[cAW5[]WyY]WJXpe) /unwind cvx 4 packedarray cvx bind def /C { 640 0 setcharwidth } /if cvx (mJXeWcsYeW{Y,ZXXnZcEWO[0V3[MUjZcSSaYMS`VBT1UcyU0RfX3SWY|Tc]Y5U[Y9U_YCUcxXoS|VpRwUvTc=U>VCUVXsUYYcvVO[xXfZ=YWYc~XuY0XXgWZX.XZXNXcZXpX>X7YqW7YcOW7Y3WpX3WNXpmGS9Wc>TFZ[UI[qWI[c2ZI[Q[FZH\\9WcH\\dZ2Z\\\\qW\\\\c[U\\\\GSdZGS9Wpe) /unwind cvx 4 packedarray cvx bind def /trebleclef { 640 0 setcharwidth } /if cvx (mvV:Zc7WVZQW~ZQWO[cQWm[AW>\\1W>\\c\\V>\\@VQ[4V~Zc{URZyU{Y*VGYcFV_YTVeYvV:Zpm9U[Sc,V?SNVKSjVWSlDV:Vc.V:VgU.VWUqUc?U[U~TlTaU8TcZTVTbTmU1UDVcOUlVyU|V:V|Vl*V0Xc]UkWGU]WzT9WcDTXV{SaU0TxTc@TDTXTsS9U[SpmaWe[cqWxZkW:ZIWQYc1WzXRVNX8V:XlHV+Wc`V+WvV+W?WrVceW^VuWLV2X*VcPXGUNXRTYWkSc`V5S0V1S7UKScVTaS*T4TeSfTcGSQUESPVHTgWcvTNXGUnXsU;YcgU>ZeUrZ,Vi[c@VH\\ZVf\\|V-]cEWb\\UW<\\aWe[pm[WNTciWtTaWIUIWkUc7W.VvVVzTcwU?U7U3UbTrTpm=UKUc`TKUyS1U[S`Tc3S2T9S1SJT1ScvT1SVVGSVVZTcVV~T6VKU=UKUpe) /unwind cvx 4 packedarray cvx bind def /ds1 { 800 0 setcharwidth } /if cvx (m.X;Wl.XYSc}YYS@ZAU@Z;Wl.X;WpmeW[[leWp\\l.Xp\\l.X[[cLZ[[O[uYO[WWl\\\\WWl\\\\;WlO[;WcO[pTLZ9S.X9Sl.XyQleWyQleW9ScEU9SDTrTDT;Wl9S;Wl9SWWlDTWWcDTwYIU[[eW[[pm.XWWl.X;[c}Y;[@ZSY@ZWWl.XWWpmeW;WleWYSckUYSSU?USU;WleW;WpmeWWWleW;[ckU;[SUQYSUWWleWWWpe) /unwind cvx 4 packedarray cvx bind def /ped { 1400 0 setcharwidth } /if cvx (mDb{Scvb{Svb9SBb9Scga9Sga{SDb{SpmrZSWcM[kWy[9Wy[NVcy[aUi[GUvZrTcHZmU.Z-WrZSWpmXVy[caW,\\`X*\\gYlZcJZ.ZhZ4X/YTXcTXbX@X?Y:XkYc/[`X?Yy[5Wg[cXVe[`V:ZaWVXcBXQWoWcUGW~Tc6XvTzXBTQY}Sl:ZNTcxX`VJZ{W?[{Wc4\\{Wd\\SWd\\TVcd\\XTHZjTY[,TcH\\YSo]*TY]XTc+]gUu]-Wh^oWc~^0XA_uW+_cWc9].V+_*Tg_uScD`kSb`.Tz`NTcGa~Tx`FVJ`EWcc_dX0^HZ,\\HZce[HZe[XZ,\\XZc`^XZP`EYCa]Wc2b,VoajTEa.Tc|`cS\\`=Sm_9Scn^7SF^CSu]yScr\\vR3[xRLZ.Tl|X=ScBXqS[WLT1WTTc`V,TwU9S7U9ScxT9SHT;SfTeScKUfTNV/U-W~TcIW|TIW4V-WbVccUlXDVG[`Ve[c;S?[rRnV/U9Yc;UEY;UrX;U8Xc;U/WGS^V9SDXc~RlZMUm[XVy[pe) /unwind cvx 4 packedarray cvx bind def /breve { 640 0 setcharwidth } /if cvx (m*T\\Xl*T{[lwS{[lwS\\Xl*T\\XpmjT\\XljT{[chT{[dT{[bT{[lbT\\XljT\\Xpm?Y\\Xl?Y{[l7Y{[l7Y\\Xl?Y\\Xpm*Z\\Xl*Z{[luY{[luY\\XcyY\\X{Y\\X*Z\\Xpe) /unwind cvx 152 0 /translate cvx false CharProcs /semibreve /get cvx /exec cvx 12 packedarray cvx bind def /dcrotchet { 380 0 setcharwidth } /if cvx (mESgYcISYYSSKYWSIYlWSnRlESnRlESgYpe) /unwind cvx 0 512 /translate cvx false CharProcs /cnh /get cvx /exec cvx 12 packedarray cvx bind def /ds2 { 720 0 setcharwidth } /if cvx (myWDXlzZ=[lM[zZlJX*XcIYCWRZ^VRZIUcRZySeYISfX;SciW3SEW9SNVuSc0VZcOWbZyWnZ6XjZc|Vi[QUpZ.VmYcNV9Y+WvXyWDXpmQSCWc?S1W=ShVQSRVccS>V4T@VBTRVcVTjVXT-WBTCWc0TWWgSWWQSCWpmTZHXcBZ0X@ZoWTZUWchZCW/[?WG[UWcY[mW[[.XG[HXc/[\\XlZXXTZHXpe) /unwind cvx 4 packedarray cvx bind def /dquaver { 380 0 setcharwidth } /if cvx (mWS\\Tc.T\\TrT/UCU{Uc[UTVcUUW~TbXl~TxXc9WOUwS>TWSnRlESnRlESgYcISYYQSMYWSIYlWS\\Tpe) /unwind cvx 0 512 /translate cvx false CharProcs /cnh /get cvx /exec cvx 12 packedarray cvx bind def /altoclef { 640 0 setcharwidth } /if cvx (m5UE[l5UlRl>TlRl>TE[l5UE[pm5WuUljV5UcVVkU8VtVoUtVloUlRlYUlRlYUE[loUE[loU9Wc8V9WXVDXjVzXl5W:XccW7W7YEW7Y?Yc7YhZjX;[uW;[cUW;[tVxZbVJZc9WfZUW.Z;WgYc-WYYhVYYZVgYcHVyYLVBZdVdZc7W?[qWS[nX;[cLZjZ:ZLX/YiWcRXMWeW;W5WuWcfVAWdVxV5W:VceWrVRXbV/YFVc:ZcULZGSnXtRcqW`R7WpRdVMScLVmSHV6TZVHTchVXT-WXT;WHTcUW.T9WISbVgSctV9SUWvRuWvRcjXvR7YIS7YrTc7YlVcWxV5WuUpe) /unwind cvx 4 packedarray cvx bind def /semibreve { 380 0 setcharwidth } /if cvx (mxV>ZcxVm[KSm[KS>ZlKS>ZcKShXxVhXxV>Zpm{UVZciUzZSUA[nT=[cVyY{UVZpe) /unwind cvx 4 packedarray cvx bind def /dsquaver { 380 0 setcharwidth } /if cvx (m?U}WcGU6V[S_UWS^TcyS^TJTpTnT=UccU4VuUnV?UYWl?UqWcCWiU]S>TWS5SlWSnRlESnRlESgYcISUYSSMYWSIYlWS2VcmS2V>TJVPT\\Vc1U=W?U2XzT^XctTjXpTnXnTrXcxTrX;UXX?U}Wpe) /unwind cvx 0 512 /translate cvx false CharProcs /cnh /get cvx /exec cvx 12 packedarray cvx bind def /lsbrest { 510 0 setcharwidth } /if cvx (mBTIWlBTPXl9SPXl9SxXl7YxXl7YPXl.XPXl.XIWlBTIWpe) /unwind cvx 4 packedarray cvx bind def /nspace { 380 0 setcharwidth } /if cvx (e) /unwind cvx 4 packedarray cvx bind def /lmrest { 510 0 setcharwidth } /if cvx (m9SoUl9SBVlBTBVlBTIWl.XIWl.XBVl7YBVl7YoUl9SoUpe) /unwind cvx 4 packedarray cvx bind def /doublesharp { 460 0 setcharwidth } /if cvx (m*VTVcRVzVtVCWsWCWlsWNXlhVNXchVOWJV-WyU\\VcQU-W3UOW3UNXl}SNXl}SCWc~TCWKUzVqUTVcKU.V~TeU}SeUl}SZTl3UZTc3UYUQU{UyULVcJV{UhVYUhVZTlsWZTlsWeUctVeURV.V*VTVpe) /unwind cvx 4 packedarray cvx bind def /runon { 530 0 setcharwidth } /if cvx (mQS9Sc3UeQSWeQ5Y9ScMYMSQY9SEY~RcCWfPCUfPAS~Rc5S9S9SMSQS9Spe) /unwind cvx 4 packedarray cvx bind def /iturn { 700 0 setcharwidth } /if cvx (m~VRXl~VgYlGWgYlGW,XlhXDVc=YeUVCUVXsUYYc2V}YHV>ZXVJZlXV0TpmWY|Tc]Y5U[Y9U_YCUcvXwSeWSSzVoSlzV\\ZceWzZxXZZ=YWYc~XuY0XV/[wU~ZMUjZcQSaYMS`VBT1UcvT*T[UISXV;SlXV=QlzV=QlzV9Sc0X9S3Y*TWY|Tpe) /unwind cvx 4 packedarray cvx bind def /downto { 817 0 setcharwidth } /if cvx (meSDZl=YKWl[W0Vll\\0VlqYHZlcYTlVVG[cPVG[HVG[BVG[lBVdTcJV\\TRVTTVV>Tpe) /unwind cvx 0 -32 /translate cvx false CharProcs /mnh /get cvx /exec cvx 12 packedarray cvx bind def /f { 470 0 setcharwidth } /if cvx (mKSSWl_S0XlKU0XlKU2Xc{U_YtV*\\xX*\\czZ*\\5[PZV+W\\VcW-WcfXgWbX9WYWuScAW1SXX~RfXQSc_YVSOcTVSO`VkOqUkOcWUkORTkOdT@Ppe) /unwind cvx 4 packedarray cvx bind def /xbreve { 640 0 setcharwidth } /if cvx (m*T:Rl*TYUlwSYUlwS:Rl*T:RpmjT:RljTYUchTYUdTYUbTYUlbT:RljT:Rpm?Y:Rl?YYUl7YYUl7Y:Rl?Y:Rpm*Z:Rl*ZYUluYYUluY:RcyY:R{Y:R*Z:Rpe) /unwind cvx 154 0 /translate cvx false CharProcs /xsemibreve /get cvx /exec cvx 12 packedarray cvx bind def /ucrotchet { 380 0 setcharwidth } /if cvx (mVV@TcTVRTHV^TBVdTlBVE[lVVE[lVV@Tpe) /unwind cvx 0 -32 /translate cvx false CharProcs /cnh /get cvx /exec cvx 12 packedarray cvx bind def /s { 320 0 setcharwidth } /if cvx (mNTSWcNT.X+UPXkU8XcCU8XQU1WVWS{U4Tpe) /unwind cvx 4 packedarray cvx bind def /usquaver { 380 0 setcharwidth } /if cvx (mVV_YcfV_YSWAYsWnXcHX:XFX_WyW+WlwWjVcaY|XlVUYVVE[lBVE[lBVdTcJV`TRVRTVV@TlVVXfV2XVV_Ype) /unwind cvx 0 -32 /translate cvx false CharProcs /cnh /get cvx /exec cvx 12 packedarray cvx bind def /z { 420 0 setcharwidth } /if cvx (m*TaScuSSSkSGSoS9ScqS/S}S-S0T1ScNT=STg[QU3[0VcjZNV>ZZVaYbVlyYAWlK[AWle[{Wl_[,XcY[wWQ[qW5[qWluYqWl1Y0VcqY,VHZqUbZWUc9[+U9[0ThZ_ScTFZc9SAY=SOWwSjVcXT6VQU6V*VbVc^VCW^VTX2V+Yc[UWYpTSY>T1YcDTGYFTkYpTBZcCUjZmUvZHV-[lFV7[pmWUnXc;U5YXT9Y4ThXc}S:X.T9WPTlVclTPVEUPV[UdVcyU-WyULXWUnXpe) /unwind cvx 4 packedarray cvx bind def /sup7 { 300 0 setcharwidth } /if cvx (e) /unwind cvx -472 270 /translate cvx false CharProcs /fr7 /get cvx /exec cvx 12 packedarray cvx bind def /sup8 { 300 0 setcharwidth } /if cvx (e) /unwind cvx false CharProcs /fr8 /get cvx /exec cvx 9 packedarray cvx bind def /sup9 { 300 0 setcharwidth } /if cvx (e) /unwind cvx -440 272 /translate cvx false CharProcs /fr9 /get cvx /exec cvx 12 packedarray cvx bind def /sub0 { 300 0 setcharwidth } /if cvx (e) /unwind cvx 0 -272 /translate cvx false CharProcs /sup0 /get cvx /exec cvx 12 packedarray cvx bind def /sub1 { 300 0 setcharwidth } /if cvx (e) /unwind cvx 24 -270 /translate cvx false CharProcs /fr1 /get cvx /exec cvx 12 packedarray cvx bind def /sub2 { 300 0 setcharwidth } /if cvx (e) /unwind cvx -18 -270 /translate cvx false CharProcs /fr2 /get cvx /exec cvx 12 packedarray cvx bind def /sub3 { 300 0 setcharwidth } /if cvx (e) /unwind cvx -408 0 /translate cvx false CharProcs /fr3 /get cvx /exec cvx 12 packedarray cvx bind def /sub4 { 300 0 setcharwidth } /if cvx (e) /unwind cvx -426 0 /translate cvx false CharProcs /fr4 /get cvx /exec cvx 12 packedarray cvx bind def /sub5 { 300 0 setcharwidth } /if cvx (e) /unwind cvx -452 0 /translate cvx false CharProcs /fr5 /get cvx /exec cvx 12 packedarray cvx bind def /sub6 { 300 0 setcharwidth } /if cvx (e) /unwind cvx 0 -272 /translate cvx false CharProcs /sup6 /get cvx /exec cvx 12 packedarray cvx bind def /sub7 { 300 0 setcharwidth } /if cvx (e) /unwind cvx -472 0 /translate cvx false CharProcs /fr7 /get cvx /exec cvx 12 packedarray cvx bind def /sub8 { 300 0 setcharwidth } /if cvx (e) /unwind cvx 0 -272 /translate cvx false CharProcs /fr8 /get cvx /exec cvx 12 packedarray cvx bind def /sub9 { 300 0 setcharwidth } /if cvx (e) /unwind cvx -440 0 /translate cvx false CharProcs /fr9 /get cvx /exec cvx 12 packedarray cvx bind def /slash { 150 0 setcharwidth } /if cvx (e) /unwind cvx -256 0 /translate cvx false CharProcs /frslash /get cvx /exec cvx 12 packedarray cvx bind def /frslash { 750 0 setcharwidth } /if cvx (m6T+SljT+SlFZ5[leY5[l6T+Spe) /unwind cvx 4 packedarray cvx bind def end end /BuildGlyph { exch begin CharProcs exch 2 copy known not {pop /.notdef} if get true exch FontInfo /decode85 get begin exec end PaintType 0 eq {eofill} {StrokeWidth setlinewidth stroke} ifelse end } bind def /BuildChar { 1 index /Encoding get exch get 1 index /BuildGlyph get exec } bind def end definefont pop %%EndResource %%EOF pmw-4.27/LICENCE0000644000222100022210000004313412247665016011342 0ustar ph10ph10 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS Appendix: How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) 19yy This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) 19yy name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License. pmw-4.27/configure0000755000222100022210000041365212247665016012272 0ustar ph10ph10#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.63. # # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, # 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH if test "x$CONFIG_SHELL" = x; then if (eval ":") 2>/dev/null; then as_have_required=yes else as_have_required=no fi if test $as_have_required = yes && (eval ": (as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=\$LINENO as_lineno_2=\$LINENO test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } ") 2> /dev/null; then : else as_candidate_shells= as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. case $as_dir in /*) for as_base in sh bash ksh sh5; do as_candidate_shells="$as_candidate_shells $as_dir/$as_base" done;; esac done IFS=$as_save_IFS for as_shell in $as_candidate_shells $SHELL; do # Try only shells that exist, to save several forks. if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { ("$as_shell") 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : _ASEOF }; then CONFIG_SHELL=$as_shell as_have_required=yes if { "$as_shell" 2> /dev/null <<\_ASEOF if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi : (as_func_return () { (exit $1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = "$1" ); then : else exitcode=1 echo positional parameters were not saved. fi test $exitcode = 0) || { (exit 1); exit 1; } ( as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } _ASEOF }; then break fi fi done if test "x$CONFIG_SHELL" != x; then for as_var in BASH_ENV ENV do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done export CONFIG_SHELL exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} fi if test $as_have_required = no; then echo This script requires a shell more modern than all the echo shells that I found on your system. Please install a echo modern shell, or manually run the script under such a echo shell if you do have one. { (exit 1); exit 1; } fi fi fi (eval "as_func_return () { (exit \$1) } as_func_success () { as_func_return 0 } as_func_failure () { as_func_return 1 } as_func_ret_success () { return 0 } as_func_ret_failure () { return 1 } exitcode=0 if as_func_success; then : else exitcode=1 echo as_func_success failed. fi if as_func_failure; then exitcode=1 echo as_func_failure succeeded. fi if as_func_ret_success; then : else exitcode=1 echo as_func_ret_success failed. fi if as_func_ret_failure; then exitcode=1 echo as_func_ret_failure succeeded. fi if ( set x; as_func_ret_success y && test x = \"\$1\" ); then : else exitcode=1 echo positional parameters were not saved. fi test \$exitcode = 0") || { echo No shell found that supports shell functions. echo Please tell bug-autoconf@gnu.org about your system, echo including any error possibly output before this message. echo This can help us improve future autoconf versions. echo Configuration will now proceed without shell functions. } as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= SHELL=${CONFIG_SHELL-/bin/sh} # Identity of this package. PACKAGE_NAME= PACKAGE_TARNAME= PACKAGE_VERSION= PACKAGE_STRING= PACKAGE_BUGREPORT= ac_unique_file="PSheader" # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='LTLIBOBJS LIBOBJS NO_PMWRC EGREP GREP CPP INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_pmwrc ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 { (exit 1); exit 1; }; } ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) { $as_echo "$as_me: error: unrecognized option: $ac_option Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2 { (exit 1); exit 1; }; } eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` { $as_echo "$as_me: error: missing argument to $ac_option" >&2 { (exit 1); exit 1; }; } fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2 { (exit 1); exit 1; }; } ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 { (exit 1); exit 1; }; } done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used." >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || { $as_echo "$as_me: error: working directory cannot be determined" >&2 { (exit 1); exit 1; }; } test "X$ac_ls_di" = "X$ac_pwd_ls_di" || { $as_echo "$as_me: error: pwd does not report name of working directory" >&2 { (exit 1); exit 1; }; } # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 { (exit 1); exit 1; }; } fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2 { (exit 1); exit 1; }; } pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures this package to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF _ACEOF fi if test -n "$ac_init_help"; then cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --disable-pmwrc disable support for .pmwrc file Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF configure generated by GNU Autoconf 2.63 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by $as_me, which was generated by GNU Autoconf 2.63. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; 2) ac_configure_args1="$ac_configure_args1 '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac done done $as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } $as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo cat <<\_ASBOX ## ---------------- ## ## Cache variables. ## ## ---------------- ## _ASBOX echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo cat <<\_ASBOX ## ----------------- ## ## Output variables. ## ## ----------------- ## _ASBOX echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then cat <<\_ASBOX ## ------------------- ## ## File substitutions. ## ## ------------------- ## _ASBOX echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then cat <<\_ASBOX ## ----------- ## ## confdefs.h. ## ## ----------- ## _ASBOX echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then ac_site_file1=$CONFIG_SITE elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test -r "$ac_site_file"; then { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special # files actually), so we avoid doing that. if test -f "$cache_file"; then { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:$LINENO: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:$LINENO: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 $as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} { (exit 1); exit 1; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. set dummy ${ac_tool_prefix}gcc; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_CC"; then ac_ct_CC=$CC # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi else CC="$ac_cv_prog_CC" fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. set dummy ${ac_tool_prefix}cc; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi fi if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue fi ac_cv_prog_CC="cc" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS if test $ac_prog_rejected = yes; then # We found a bogon in the path, so make sure we never use it. set dummy $ac_cv_prog_CC shift if test $# != 0; then # We chose a different compiler from the bogus one. # However, it has the same basename, so the bogon will be chosen # first if we set CC to just the basename; use the full file name. shift ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" fi fi fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$CC"; then if test -n "$ac_tool_prefix"; then for ac_prog in cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:$LINENO: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if test "${ac_cv_prog_ac_ct_CC+set}" = set; then $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:$LINENO: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi fi test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&5 $as_echo "$as_me: error: no acceptable C compiler found in \$PATH See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } # Provide some information about the compiler. $as_echo "$as_me:$LINENO: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 { (ac_try="$ac_compiler --version >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler --version >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -v >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -v >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } { (ac_try="$ac_compiler -V >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compiler -V >&5") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { (ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi { $as_echo "$as_me:$LINENO: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } if test -z "$ac_file"; then $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables See \`config.log' for more details." >&5 $as_echo "$as_me: error: C compiler cannot create executables See \`config.log' for more details." >&2;} { (exit 77); exit 77; }; }; } fi ac_exeext=$ac_cv_exeext # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } # FIXME: These cross compiler hacks should be removed for Autoconf 3.0 # If not cross compiling, check that we can run a simple program. if test "$cross_compiling" != yes; then if { ac_try='./$ac_file' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&5 $as_echo "$as_me: error: cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } fi fi fi { $as_echo "$as_me:$LINENO: result: yes" >&5 $as_echo "yes" >&6; } rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } { $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } { $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&5 $as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } fi rm -f conftest$ac_cv_exeext { $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT { $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if test "${ac_cv_objext+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; then for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&5 $as_echo "$as_me: error: cannot compute suffix of object files: cannot compile See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if test "${ac_cv_c_compiler_gnu+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_compiler_gnu=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if test "${ac_cv_prog_cc_g+set}" = set; then $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 CFLAGS="" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_g=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if test "${ac_cv_prog_cc_c89+set}" = set; then $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_prog_cc_c89=$ac_arg else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:$LINENO: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:$LINENO: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 $as_echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} { (exit 1); exit 1; }; } fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if test "${ac_cv_path_install+set}" = set; then $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in ./ | .// | /cC/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:$LINENO: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if test "${ac_cv_prog_CPP+set}" = set; then $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:$LINENO: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Broken: fails on valid input. continue fi rm -f conftest.err conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if { (ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } >/dev/null && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then # Broken: success on invalid input. continue else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&5 $as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details." >&2;} { (exit 1); exit 1; }; }; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if test "${ac_cv_path_GREP+set}" = set; then $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 $as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:$LINENO: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if test "${ac_cv_path_EGREP+set}" = set; then $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break ac_count=`expr $ac_count + 1` if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 $as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} { (exit 1); exit 1; }; } fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if test "${ac_cv_header_stdc+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_header_stdc=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF rm -f conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { ac_try='./conftest$ac_exeext' { (case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); }; }; then : else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ( exit $ac_status ) ac_cv_header_stdc=no fi rm -rf conftest.dSYM rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext fi fi fi { $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then cat >>confdefs.h <<\_ACEOF #define STDC_HEADERS 1 _ACEOF fi { $as_echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 $as_echo_n "checking for an ANSI C-conforming const... " >&6; } if test "${ac_cv_c_const+set}" = set; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ int main () { /* FIXME: Include the comments suggested by Paul. */ #ifndef __cplusplus /* Ultrix mips cc rejects this. */ typedef int charset[2]; const charset cs; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* AIX XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this. */ char *t; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* AIX XL C 1.02.0.0 rejects this saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; }; struct s *b; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then ac_cv_c_const=yes else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 $as_echo "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then cat >>confdefs.h <<\_ACEOF #define const /**/ _ACEOF fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 $as_echo_n "checking for $ac_header... " >&6; } if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default #include <$ac_header> _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then eval "$as_ac_Header=yes" else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_Header=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi ac_res=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } as_val=`eval 'as_val=${'$as_ac_Header'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done { $as_echo "$as_me:$LINENO: checking for size_t" >&5 $as_echo_n "checking for size_t... " >&6; } if test "${ac_cv_type_size_t+set}" = set; then $as_echo_n "(cached) " >&6 else ac_cv_type_size_t=no cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { if (sizeof (size_t)) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ $ac_includes_default int main () { if (sizeof ((size_t))) return 0; ; return 0; } _ACEOF rm -f conftest.$ac_objext if { (ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_compile") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_cv_type_size_t=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 $as_echo "$ac_cv_type_size_t" >&6; } if test "x$ac_cv_type_size_t" = x""yes; then : else cat >>confdefs.h <<_ACEOF #define size_t unsigned int _ACEOF fi for ac_func in bcopy memmove strerror do as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` { $as_echo "$as_me:$LINENO: checking for $ac_func" >&5 $as_echo_n "checking for $ac_func... " >&6; } if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then $as_echo_n "(cached) " >&6 else cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ _ACEOF cat confdefs.h >>conftest.$ac_ext cat >>conftest.$ac_ext <<_ACEOF /* end confdefs.h. */ /* Define $ac_func to an innocuous variant, in case declares $ac_func. For example, HP-UX 11i declares gettimeofday. */ #define $ac_func innocuous_$ac_func /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $ac_func /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $ac_func (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$ac_func || defined __stub___$ac_func choke me #endif int main () { return $ac_func (); ; return 0; } _ACEOF rm -f conftest.$ac_objext conftest$ac_exeext if { (ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" $as_echo "$ac_try_echo") >&5 (eval "$ac_link") 2>conftest.er1 ac_status=$? grep -v '^ *+' conftest.er1 >conftest.err rm -f conftest.er1 cat conftest.err >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 (exit $ac_status); } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || $as_test_x conftest$ac_exeext }; then eval "$as_ac_var=yes" else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 eval "$as_ac_var=no" fi rm -rf conftest.dSYM rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext fi ac_res=`eval 'as_val=${'$as_ac_var'} $as_echo "$as_val"'` { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } as_val=`eval 'as_val=${'$as_ac_var'} $as_echo "$as_val"'` if test "x$as_val" = x""yes; then cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 _ACEOF fi done enable_pmwrc="yes" # Check whether --enable-pmwrc was given. if test "${enable_pmwrc+set}" = set; then enableval=$enable_pmwrc; if test "$enableval" = "no"; then NO_PMWRC=-DNO_PMWRC enable_pmwrc="no" fi fi ac_config_files="$ac_config_files Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) $as_unset $ac_var ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes (double-quote # substitution turns \\\\ into \\, and sed turns \\ into \). sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then test "x$cache_file" != "x/dev/null" && { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} cat confcache >$cache_file else { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. ac_script=' :mline /\\$/{ N s,\\\n,, b mline } t clear :clear s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g t quote s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g t quote b any :quote s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g s/\[/\\&/g s/\]/\\&/g s/\$/$$/g H :any ${ g s/^\n// s/\n/ /g p } ' DEFS=`sed -n "$ac_script" confdefs.h` ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : ${CONFIG_STATUS=./config.status} ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ## --------------------- ## ## M4sh Initialization. ## ## --------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac fi # PATH needs CR # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # Support unset when possible. if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then as_unset=unset else as_unset=false fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. case $0 in *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 { (exit 1); exit 1; } fi # Work around bugs in pre-3.0 UWIN ksh. for as_var in ENV MAIL MAILPATH do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # Required to use basename. if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi # Name of the executable. as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # CDPATH. $as_unset CDPATH as_lineno_1=$LINENO as_lineno_2=$LINENO test "x$as_lineno_1" != "x$as_lineno_2" && test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { # Create $as_me.lineno as a copy of $as_myself, but with $LINENO # uniformly replaced by the line number. The first 'sed' inserts a # line-number line after each line using $LINENO; the second 'sed' # does the real work. The second script uses 'N' to pair each # line-number line with the line containing $LINENO, and appends # trailing '-' during substitution so that $LINENO is not a special # case at line end. # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the # scripts with optimization help from Paolo Bonzini. Blame Lee # E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 { (exit 1); exit 1; }; } # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in -n*) case `echo 'x\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. *) ECHO_C='\c';; esac;; *) ECHO_N='-n';; esac if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -p' fi else as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p=: else test -d ./-p && rmdir ./-p as_mkdir_p=false fi if test -x / >/dev/null 2>&1; then as_test_x='test -x' else if ls -dL / >/dev/null 2>&1; then as_ls_L_option=L else as_ls_L_option= fi as_test_x=' eval sh -c '\'' if test -d "$1"; then test -d "$1/."; else case $1 in -*)set "./$1";; esac; case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in ???[sx]*):;;*)false;;esac;fi '\'' sh ' fi as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 # Save the log message, to keep $[0] and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by $as_me, which was generated by GNU Autoconf 2.63. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files from templates according to the current configuration. Usage: $0 [OPTION]... [FILE]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Report bugs to ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_version="\\ config.status configured by $0, generated by GNU Autoconf 2.63, with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" Copyright (C) 2008 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; esac CONFIG_FILES="$CONFIG_FILES '$ac_optarg'" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) { $as_echo "$as_me: error: unrecognized option: $1 Try \`$0 --help' for more information." >&2 { (exit 1); exit 1; }; } ;; *) ac_config_targets="$ac_config_targets $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 $as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;} { (exit 1); exit 1; }; };; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= trap 'exit_status=$? { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status ' 0 trap '{ (exit 1); exit 1; }' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || { $as_echo "$as_me: cannot create a temporary directory in ." >&2 { (exit 1); exit 1; } } # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=' ' ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 $as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 $as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 $as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\).*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\).*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5 $as_echo "$as_me: error: could not setup config files machinery" >&2;} { (exit 1); exit 1; }; } _ACEOF # VPATH may cause trouble with some makes, so we remove $(srcdir), # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=/{ s/:*\$(srcdir):*/:/ s/:*\${srcdir}:*/:/ s/:*@srcdir@:*/:/ s/^\([^=]*=[ ]*\):*/\1/ s/:*$// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" eval set X " :F $CONFIG_FILES " shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5 $as_echo "$as_me: error: invalid tag $ac_tag" >&2;} { (exit 1); exit 1; }; };; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 $as_echo "$as_me: error: cannot find input file: $ac_f" >&2;} { (exit 1); exit 1; }; };; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac ac_file_inputs="$ac_file_inputs '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:$LINENO: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$tmp/stdin" \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` { as_dir="$ac_dir" case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 $as_echo "$as_me: error: cannot create directory $as_dir" >&2;} { (exit 1); exit 1; }; }; } ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p ' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined." >&2;} rm -f "$tmp/stdin" case $ac_file in -) cat "$tmp/out" && rm -f "$tmp/out";; *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; esac \ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 $as_echo "$as_me: error: could not create $ac_file" >&2;} { (exit 1); exit 1; }; } ;; esac done # for ac_tag { (exit 0); exit 0; } _ACEOF chmod +x $CONFIG_STATUS ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5 $as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;} { (exit 1); exit 1; }; } # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || { (exit 1); exit 1; } fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi cat <