diff --git a/doc/a2blink.map b/doc/a2blink.map new file mode 100644 index 0000000..72a00d5 Binary files /dev/null and b/doc/a2blink.map differ diff --git a/doc/a2inverse.map b/doc/a2inverse.map new file mode 100644 index 0000000..70ad9ed Binary files /dev/null and b/doc/a2inverse.map differ diff --git a/doc/a2normal.map b/doc/a2normal.map new file mode 100644 index 0000000..b383772 Binary files /dev/null and b/doc/a2normal.map differ diff --git a/doc/c64-1.oph b/doc/c64-1.oph new file mode 100644 index 0000000..04166dd --- /dev/null +++ b/doc/c64-1.oph @@ -0,0 +1,12 @@ +.word $0801 +.org $0801 + +.scope + .word _next, 10 ; Next line and current line number + .byte $9e," 2064",0 ; SYS 2064 +_next: .word 0 ; End of program +.scend + +.advance 2064 + +.require "kernal.oph" \ No newline at end of file diff --git a/doc/c64-2.oph b/doc/c64-2.oph new file mode 100644 index 0000000..720ef21 --- /dev/null +++ b/doc/c64-2.oph @@ -0,0 +1,40 @@ +.word $0801 +.org $0801 + +.scope + .word _next, 10 ; Next line and current line number + .byte $9e," 2064",0 ; SYS 2064 +_next: .word 0 ; End of program +.scend + +.advance $0810 + +.require "kernal.oph" + +.data zp +.org $0002 + +.text + +.scope + ; Cache BASIC's zero page at top of available RAM. + ldx #$7E +* lda $01, x + sta $CF81, x + dex + bne - + + jsr _main + + ; Restore BASIC's zero page and return control. + + ldx #$7E +* lda $CF81, x + sta $01, x + dex + bne - + rts + +_main: + ; Program follows... +.scend \ No newline at end of file diff --git a/doc/docbook/cmdref.sgm b/doc/docbook/cmdref.sgm new file mode 100644 index 0000000..5c3d557 --- /dev/null +++ b/doc/docbook/cmdref.sgm @@ -0,0 +1,478 @@ + + Ophis Command Reference +
+ Command Modes + + These mostly follow the MOS Technology 6500 + Microprocessor Family Programming Manual, except + for the Accumulator mode. Accumulator instructions are written + and interpreted identically to Implied mode instructions. + + + Implied: RTS + Accumulator: LSR + Immediate: LDA #$06 + Zero Page: LDA $7C + Zero Page, X: LDA $7C,X + Zero Page, Y: LDA $7C,Y + Absolute: LDA $D020 + Absolute, X: LDA $D000,X + Absolute, Y: LDA $D000,Y + (Zero Page Indirect, X): LDA ($80, X) + (Zero Page Indirect), Y: LDA ($80), Y + (Absolute Indirect): JMP ($A000) + Relative: BNE loop + (Absolute Indirect, X): JMP ($A000, X) — Only available with 65C02 extensions + (Zero Page Indirect): LDX ($80) — Only available with 65C02 extensions + +
+
+ Basic arguments + + Most arguments are just a number or label. The formats for + these are below. + +
+ Numeric types + + Hex: $41 (Prefixed with $) + Decimal: 65 (No markings) + Octal: 0101 (Prefixed with zero) + Binary: %01000001 (Prefixed with %) + Character: 'A (Prefixed with single quote) + +
+
+ Label types + + Normal labels are simply referred to by name. Anonymous + labels may be referenced with strings of - or + signs (the + label - refers to the immediate + previous anonymous label, -- the + one before that, etc., while + + refers to the next anonymous label), and the special + label ^ refers to the program + counter at the start of the current instruction or directive. + + + Normal labels are defined by + prefixing a line with the label name and then a colon + (e.g., label:). Anonymous labels + are defined by prefixing a line with an asterisk + (e.g., *). + + + Temporary labels are only reachable from inside the + innermost enclosing .scope + statement. They are identical to normal labels in every + way, except that they start with an underscore. + +
+
+ String types + + Strings are enclosed in double quotation marks. Backslashed + characters (including backslashes and double quotes) are + treated literally, so the string "The man said, + \"The \\ character is the backslash.\"" produces + the ASCII sequence for The man said, "The \ + character is the backslash." + + + Strings are generally only used as arguments to assembler + directives—usually for filenames + (e.g., .include) but also for string + data (in association with .byte). + + + It is legal, though unusual, to attempt to pass a string to + the other data statements. This will produces a series of + words/dwords where all bytes that aren't least-significant + are zero. Endianness and size will match what the directive + itself indicated. + +
+
+
+ Compound Arguments + + Compound arguments may be built up from simple ones, using the + standard +, -, *, and / operators, which carry the usual + precedence. Also, the unary operators > and <, which + bind more tightly than anything else, provide the high and low + bytes of 16-bit values, respectively. + + + Use brackets [ ] instead of parentheses ( ) when grouping + arithmetic operations, as the parentheses are needed for the + indirect addressing modes. + + + Examples: + + + $D000 evaluates to $D000 + $D000+32 evaluates to $D020 + $D000+$20 also evaluates to $D020 + <$D000+32 evaluates to $20 + >$D000+32 evaluates to $F0 + >[$D000+32] evaluates to $D0 + >$D000-275 evaluates to $CE + +
+
+ Memory Model + + In order to properly compute the locations of labels and the + like, Ophis must keep track of where assembled code will + actually be sitting in memory, and it strives to do this in a + way that is independent both of the target file and of the + target machine. + +
+ Basic PC tracking + + The primary technique Ophis uses is program counter + tracking. As it assembles the code, it keeps + track of a virtual program counter, and uses that to + determine where the labels should go. + + + In the absence of an .org directive, it + assumes a starting PC of zero. .org + is a simple directive, setting the PC to the value + that .org specifies. In the simplest + case, one .org directive appears at the + beginning of the code and sets the location for the rest of + the code, which is one contiguous block. + +
+
+ Basic Segmentation simulation + + However, this isn't always practical. Often one wishes to + have a region of memory reserved for data without actually + mapping that memory to the file. On some systems (typically + cartridge-based systems where ROM and RAM are seperate, and + the target file only specifies the ROM image) this is + mandatory. In order to access these variables symbolically, + it's necessary to put the values into the label lookup + table. + + + It is possible, but inconvenient, to do this + with .alias, assigning a specific + memory location to each variable. This requires careful + coordination through your code, and makes creating reusable + libraries all but impossible. + + + A better approach is to reserve a section at the beginning + or end of your program, put an .org + directive in, then use the .space + directive to divide up the data area. This is still a bit + inconvenient, though, because all variables must be + assigned all at once. What we'd really like is to keep + multiple PC counters, one for data and one for code. + + + The .text + and .data directives do this. Each + has its own PC that starts at zero, and you can switch + between the two at any point without corrupting the other's + counter. In this way each function can have + a .data section (filled + with .space commands) and + a .text section (that contains the + actual code). This lets our library routines be almost + completely self-contained - we can have one source file + that could be .included by multiple + projects without getting in anything's way. + + + However, any given program may have its own ideas about + where data and code go, and it's good to ensure with + a .checkpc at the end of your code + that you haven't accidentally overwritten code with data or + vice versa. If your .data + segment did start at zero, it's + probably wise to make sure you aren't smashing the stack, + too (which is sitting in the region from $0100 to + $01FF). + + + If you write code with no segment-defining statements in + it, the default segment + is text. + + + The data segment is designed only + for organizing labels. As such, errors will be flagged if + you attempt to actually output information into + a data segment. + +
+
+ General Segmentation Simulation + + One text and data segment each is usually sufficient, but + for the cases where it is not, Ophis allows for user-defined + segments. Putting a label + after .text + or .data produces a new segment with + the specified name. + + + Say, for example, that we have access to the RAM at the low + end of the address space, but want to reserve the zero page + for truly critical variables, and use the rest of RAM for + everything else. Let's also assume that this is a 6510 + chip, and locations $00 and $01 are reserved for the I/O + port. We could start our program off with: + + +.data +.org $200 +.data zp +.org $2 +.text +.org $800 + + + And, to be safe, we would probably want to end our code + with checks to make sure we aren't overwriting anything: + + +.data +.checkpc $800 +.data zp +.checkpc $100 + +
+
+
+ Macros + + Assembly language is a powerful tool—however, there are + many tasks that need to be done repeatedly, and with + mind-numbing minor modifications. Ophis includes a facility + for macros to allow this. Ophis macros + are very similar in form to function calls in higher level + languages. + +
+ Defining Macros + + Macros are defined with the .macro + and .macend commands. Here's a + simple one that will clear the screen on a Commodore + 64: + + +.macro clr'screen + lda #147 + jsr $FFD2 +.macend + +
+
+ Invoking Macros + + To invoke a macro, either use + the .invoke command or backquote the + name of the routine. The previous macro may be expanded + out in either of two ways, at any point in the + source: + + .invoke clr'screen + or + `clr'screen + will work equally well. +
+
+ Passing Arguments to Macros + + Macros may take arguments. The arguments to a macro are + all of the word type, though byte values may + be passed and used as bytes as well. The first argument in + an invocation is bound to the label + _1, the second + to _2, and so on. Here's a macro + for storing a 16-bit value into a word pointer: + + +.macro store16 ; `store16 dest, src + lda #<_2 + sta _1 + lda #>_2 + sta _1+1 +.macend + + + Macro arguments behave, for the most part, as if they were + defined by .alias + commands in the calling context. + (They differ in that they will not produce duplicate-label + errors if those names already exist in the calling scope, + and in that they disappear after the call is + completed.) + +
+
+ Features and Restrictions of the Ophis Macro Model + + Unlike most macro systems (which do textual replacement), + Ophis macros evaluate their arguments and bind them into the + symbol table as temporary labels. This produces some + benefits, but it also puts some restrictions on what kinds of + macros may be defined. + + + The primary benefit of this expand-via-binding + discipline is that there are no surprises in the semantics. + The expression _1+1 in the macro above + will always evaluate to one more than the value that was + passed as the first argument, even if that first argument is + some immensely complex expression that an + expand-via-substitution method may accidentally + mangle. + + + The primary disadvantage of the expand-via-binding + discipline is that only fixed numbers of words and bytes + may be passed. A substitution-based system could define a + macro including the line LDA _1 and + accept as arguments both $C000 + (which would put the value of memory location $C000 into + the accumulator) and #$40 (which + would put the immediate value $40 into the accumulator). + If you really need this kind of + behavior, a run a C preprocessor over your Ophis source, + and use #define to your heart's + content. + +
+
+
+ Assembler directives + + Assembler directives are all instructions to the assembler + that are not actual instructions. Ophis's set of directives + follow. + + + .advance address: + Forces the program counter to + be address. Unlike + the .org + directive, .advance outputs zeroes until the + program counter reaches a specified address. Attempting + to .advance to a point behind the current + program counter is an assemble-time error. + .alias label value: The + .alias directive assigns an arbitrary value to a label. This + value may be an arbitrary argument, but cannot reference any + label that has not already been defined (this prevents + recursive label dependencies). + .byte arg [ , arg, ... ]: + Specifies a series of arguments, which are evaluated, and + strings, which are included as raw ASCII data. The final + results of these arguments must be one byte in size. Seperate + constants are seperated by comments. + .checkpc address: Ensures that the + program counter is less than or equal to the address + specified, and emits an assemble-time error if it is not. + This produces no code in the final binary - it is there to + ensure that linking a large amount of data together does not + overstep memory boundaries. + .data [label]: Sets the segment to + the segment name specified and disallows output. If no label + is given, switches to the default data segment. + .incbin filename: Inserts the + contents of the file specified as binary data. Use it to + include graphics information, precompiled code, or other + non-assembler data. + .include filename: Includes the + entirety of the file specified at that point in the program. + Use this to order your final sources. + .org address: Sets the program + counter to the address specified. This does not emit any + code in and of itself, nor does it overwrite anything that + previously existed. If you wish to jump ahead in memory, + use .advance. + .require filename: Includes the entirety + of the file specified at that point in the program. Unlike .include, + however, code included with .require will only be inserted once. + The .require directive is useful for ensuring that certain code libraries + are somewhere in the final binary. They are also very useful for guaranteeing that + macro libraries are available. + .space label size: This + directive is used to organize global variables. It defines the + label specified to be at the current location of the program + counter, and then advances the program counter size + steps ahead. No actual code is produced. This is equivalent + to label: .org ^+size. + .text [label]: Sets the segment to + the segment name specified and allows output. If no label is + given, switches to the default text segment. + .word arg [ , arg, ... ]: + Like .byte, but values are all treated as two-byte + values and stored low-end first (as is the 6502's wont). Use + this to create jump tables (an unadorned label will evaluate + to that label's location) or otherwise store 16-bit + data. + .dword arg [ , arg, ...]: + Like .word, but for 32-bit values. + .wordbe arg [ , arg, ...]: + Like .word, but stores the value in a big-endian format (high byte first). + .dwordbe arg [ , arg, ...]: + Like .dword, but stores the value high byte first. + .scope: Starts a new scope block. Labels + that begin with an underscore are only reachable from within + their innermost enclosing .scope statement. + .scend: Ends a scope block. Makes the + temporary labels defined since the last .scope + statement unreachable, and permits them to be redefined in a + new scope. + .macro name: Begins a macro + definition block. This is a scope block that can be inlined + at arbitrary points with .invoke. Arguments to the + macro will be bound to temporary labels with names like + _1, _2, etc. + .macend: Ends a macro definition + block. + .invoke label [argument [, + argument ...]]: invokes (inlines) the specified + macro, binding the values of the arguments to the ones the + macro definition intends to read. A shorthand for .invoke + is the name of the macro to invoke, backquoted. + + + The following directives are deprecated, added for + compatibility with the old Perl + assembler P65. Use + the -d option to Ophis to enable + them. + + + .ascii: Equivalent to .byte, + which didn't used to be able to handle strings. + .code: Equivalent to .text. + .segment: Equivalent to .text, + from when there was no distinction between .text and + .data segments. + .address: Equivalent to + .word. + .link filename address: Assembles + the file specified as if it began at the address specified. + This is generally for use in top-level files, where there + is not necessarily a one-to-one correspondence between file + position and memory position. This is equivalent to an + .org directive followed by an .include. + With the introduction of the .org directive this one is + less useful (and in most cases, any .org statement + you use will actually be at the top of the .included + file). + +
+
diff --git a/doc/docbook/ophismanual.sgm b/doc/docbook/ophismanual.sgm new file mode 100644 index 0000000..cb324bb --- /dev/null +++ b/doc/docbook/ophismanual.sgm @@ -0,0 +1,29 @@ + + + + + + + + + + +]> + + + Programming with Ophis + MichaelMartin + 2006-7Michael Martin + + &pre1; + &part1; + &part2; + &part3; + &part4; + &part5; + &part6; + &part7; + &samplecode; + &cmdref; + diff --git a/doc/docbook/preface.sgm b/doc/docbook/preface.sgm new file mode 100644 index 0000000..2be1279 --- /dev/null +++ b/doc/docbook/preface.sgm @@ -0,0 +1,74 @@ + + Preface + + + The Ophis project started on a lark back in 2001. My graduate + studies required me to learn Perl and Python, and I'd been playing + around with Commodore 64 emulators in my spare time, so I decided + to learn both languages by writing a simple cross-assembler for + the 6502 chip the C-64 used in both. + + + + The Perl version was quickly abandoned, but the Python one slowly + grew in scope and power over the years, and by 2005 was a very + powerful, flexible macro assembler that saw more use than I'd + expect. In 2007 I finally got around to implementing the last few + features I really wanted and polishing it up for general release. + + + + Part of that process has been formatting the various little + tutorials and references I'd created into a single, unified + document—the one you are now reading. + + +
+ Why <quote>Ophis</quote>? + + It's actually a kind of a horrific pun. See, I was using Python + at the time, and one of the things I had been hoping to do with + the assembler was to produce working Apple II + programs. Ophis is Greek + for snake, and a number of traditions also use it + as the actual name of the serpent in the + Garden of Eden. So, Pythons, snakes, and stories involving + really old Apples all combined to name the assembler. + +
+ +
+ Getting a copy of Ophis + + If you're reading this as part of the Ophis install, you clearly + already have it. If not, as of this writing the homepage for + the Ophis assembler + is . If + this is out-of-date, a Web search on Ophis 6502 + assembler (without the quotation marks) should yield its + page. + + + Ophis is written entirely in Python and packaged using the + distutils. The default installation script on Unix and Mac OS X + systems should put the files where they need to go. If you are + running it locally, you will need to install + the Ophis package somewhere in your Python + package path, and then put the ophis script + somewhere in your path. + + + Windows users that have Python installed can use the same source + distributions that the other operating systems + use; ophis.bat will arrange the environment + variables accordingly and invoke the main script. + + + If you are on Windows and do not have Python installed, a + prepackaged system made with py2exe is also + available. The default Windows installer will use this. In + this case, all you need to do is + have ophis.exe in your path. + +
+
diff --git a/doc/docbook/samplecode.sgm b/doc/docbook/samplecode.sgm new file mode 100644 index 0000000..6d65b07 --- /dev/null +++ b/doc/docbook/samplecode.sgm @@ -0,0 +1,749 @@ + + Example Programs + + This Appendix collects all the programs referred to in the course + of this manual. + +
+ <filename>tutor1.oph</filename> + +.word $0801 +.org $0801 + + .word next, 10 ; Next line and current line number + .byte $9e," 2064",0 ; SYS 2064 +next: .word 0 ; End of program + +.advance 2064 + + ldx #0 +loop: lda hello, x + beq done + jsr $ffd2 + inx + bne loop +done: rts + +hello: .byte "HELLO, WORLD!", 0 + +
+
+ <filename>tutor2.oph</filename> + +.word $0801 +.org $0801 + +.scope + .word _next, 10 ; Next line and current line number + .byte $9e," 2064",0 ; SYS 2064 +_next: .word 0 ; End of program +.scend + +.advance 2064 + +.alias chrout $ffd2 + + ldx #0 +* lda hello, x + beq + + jsr chrout + inx + bne - +* rts + +hello: .byte "HELLO, WORLD!", 0 + +
+
+ <filename>c64-1.oph</filename> + +.word $0801 +.org $0801 + +.scope + .word _next, 10 ; Next line and current line number + .byte $9e," 2064",0 ; SYS 2064 +_next: .word 0 ; End of program +.scend + +.advance 2064 + +.require "kernal.oph" + +
+
+ <filename>kernal.oph</filename> + +; KERNAL routine aliases (C64) + +.alias acptr $ffa5 +.alias chkin $ffc6 +.alias chkout $ffc9 +.alias chrin $ffcf +.alias chrout $ffd2 +.alias ciout $ffa8 +.alias cint $ff81 +.alias clall $ffe7 +.alias close $ffc3 +.alias clrchn $ffcc +.alias getin $ffe4 +.alias iobase $fff3 +.alias ioinit $ff84 +.alias listen $ffb1 +.alias load $ffd5 +.alias membot $ff9c +.alias memtop $ff99 +.alias open $ffc0 +.alias plot $fff0 +.alias ramtas $ff87 +.alias rdtim $ffde +.alias readst $ffb7 +.alias restor $ff8a +.alias save $ffd8 +.alias scnkey $ff9f +.alias screen $ffed +.alias second $ff93 +.alias setlfs $ffba +.alias setmsg $ff90 +.alias setnam $ffbd +.alias settim $ffdb +.alias settmo $ffa2 +.alias stop $ffe1 +.alias talk $ffb4 +.alias tksa $ff96 +.alias udtim $ffea +.alias unlsn $ffae +.alias untlk $ffab +.alias vector $ff8d + +; Character codes for the colors. +.alias color'0 144 +.alias color'1 5 +.alias color'2 28 +.alias color'3 159 +.alias color'4 156 +.alias color'5 30 +.alias color'6 31 +.alias color'7 158 +.alias color'8 129 +.alias color'9 149 +.alias color'10 150 +.alias color'11 151 +.alias color'12 152 +.alias color'13 153 +.alias color'14 154 +.alias color'15 155 + +; ...and reverse video +.alias reverse'on 18 +.alias reverse'off 146 + +; ...and character set +.alias upper'case 142 +.alias lower'case 14 + +
+
+ <filename>tutor3.oph</filename> + +.include "c64-1.oph" + +.macro print + ldx #0 +_loop: lda _1, x + beq _done + jsr chrout + inx + bne _loop +_done: +.macend + +.macro greet + `print hello1 + `print _1 + `print hello2 +.macend + + lda #147 + jsr chrout + `greet target1 + `greet target2 + `greet target3 + `greet target4 + `greet target5 + `greet target6 + `greet target7 + `greet target8 + `greet target9 + `greet target10 + rts + +hello1: .byte "HELLO, ",0 +hello2: .byte "!", 13, 0 + +target1: .byte "PROGRAMMER", 0 +target2: .byte "ROOM", 0 +target3: .byte "BUILDING", 0 +target4: .byte "NEIGHBORHOOD", 0 +target5: .byte "CITY", 0 +target6: .byte "NATION", 0 +target7: .byte "WORLD", 0 +target8: .byte "SOLAR SYSTEM", 0 +target9: .byte "GALAXY", 0 +target10: .byte "UNIVERSE", 0 + +
+
+ <filename>tutor4a.oph</filename> + +.include "c64-1.oph" + +.macro print + ldx #0 +_loop: lda _1, x + beq _done + jsr chrout + inx + bne _loop +_done: +.macend + +.macro greet + lda #30 + jsr delay + `print hello1 + `print _1 + `print hello2 +.macend + + lda #147 + jsr chrout + `greet target1 + `greet target2 + `greet target3 + `greet target4 + `greet target5 + `greet target6 + `greet target7 + `greet target8 + `greet target9 + `greet target10 + rts + +hello1: .byte "HELLO, ",0 +hello2: .byte "!", 13, 0 + +target1: .byte "PROGRAMMER", 0 +target2: .byte "ROOM", 0 +target3: .byte "BUILDING", 0 +target4: .byte "NEIGHBORHOOD", 0 +target5: .byte "CITY", 0 +target6: .byte "NATION", 0 +target7: .byte "WORLD", 0 +target8: .byte "SOLAR SYSTEM", 0 +target9: .byte "GALAXY", 0 +target10: .byte "UNIVERSE", 0 + +; DELAY routine. Executes 2,560*(A) NOP statements. +delay: tax + ldy #00 +* nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + iny + bne - + dex + bne - + rts + +
+
+ <filename>tutor4b.oph</filename> + +.include "c64-1.oph" + +.macro print + ldx #0 +_loop: lda _1, x + beq _done + jsr chrout + inx + bne _loop +_done: +.macend + +.macro greet + lda #30 + jsr delay + `print hello1 + `print _1 + `print hello2 +.macend + + lda #147 + jsr chrout + lda #lower'case + jsr chrout + `greet target1 + `greet target2 + `greet target3 + `greet target4 + `greet target5 + `greet target6 + `greet target7 + `greet target8 + `greet target9 + `greet target10 + rts + +hello1: .byte "Hello, ",0 +hello2: .byte "!", 13, 0 + +target1: .byte "programmer", 0 +target2: .byte "room", 0 +target3: .byte "building", 0 +target4: .byte "neighborhood", 0 +target5: .byte "city", 0 +target6: .byte "nation", 0 +target7: .byte "world", 0 +target8: .byte "Solar System", 0 +target9: .byte "Galaxy", 0 +target10: .byte "Universe", 0 + +; DELAY routine. Executes 2,560*(A) NOP statements. +delay: tax + ldy #00 +* nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + iny + bne - + dex + bne - + rts + +
+
+ <filename>tutor4c.oph</filename> + +.include "c64-1.oph" + +.macro print + ldx #0 +_loop: lda _1, x + beq _done + jsr chrout + inx + bne _loop +_done: +.macend + +.macro greet + lda #30 + jsr delay + `print hello1 + `print _1 + `print hello2 +.macend + + lda #147 + jsr chrout + lda #lower'case + jsr chrout + `greet target1 + `greet target2 + `greet target3 + `greet target4 + `greet target5 + `greet target6 + `greet target7 + `greet target8 + `greet target9 + `greet target10 + rts + +.charmap 'A, "abcdefghijklmnopqrstuvwxyz" +.charmap 'a, "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + +hello1: .byte "Hello, ",0 +hello2: .byte "!", 13, 0 + +target1: .byte "programmer", 0 +target2: .byte "room", 0 +target3: .byte "building", 0 +target4: .byte "neighborhood", 0 +target5: .byte "city", 0 +target6: .byte "nation", 0 +target7: .byte "world", 0 +target8: .byte "Solar System", 0 +target9: .byte "Galaxy", 0 +target10: .byte "Universe", 0 + +; DELAY routine. Executes 2,560*(A) NOP statements. +delay: tax + ldy #00 +* nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + iny + bne - + dex + bne - + rts + +
+
+ <filename>tutor5.oph</filename> + +.include "c64-1.oph" + +.data +.org $C000 +.text + +.macro print + ldx #0 +_loop: lda _1, x + beq _done + jsr chrout + inx + bne _loop +_done: +.macend + +.macro greet + lda #30 + jsr delay + `print hello1 + `print _1 + `print hello2 +.macend + + lda #147 + jsr chrout + `greet target1 + `greet target2 + `greet target3 + `greet target4 + `greet target5 + `greet target6 + `greet target7 + `greet target8 + `greet target9 + `greet target10 + rts + +hello1: .byte "HELLO, ",0 +hello2: .byte "!", 13, 0 + +target1: .byte "PROGRAMMER", 0 +target2: .byte "ROOM", 0 +target3: .byte "BUILDING", 0 +target4: .byte "NEIGHBORHOOD", 0 +target5: .byte "CITY", 0 +target6: .byte "NATION", 0 +target7: .byte "WORLD", 0 +target8: .byte "SOLAR SYSTEM", 0 +target9: .byte "GALAXY", 0 +target10: .byte "UNIVERSE", 0 + +; DELAY routine. Takes values from the Accumulator and pauses +; for that many jiffies (1/60th of a second). +.scope +.data +.space _tmp 1 +.space _target 1 + +.text + +delay: sta _tmp ; save argument (rdtim destroys it) + jsr rdtim + clc + adc _tmp ; add current time to get target + sta _target +* jsr rdtim + cmp _target + bmi - ; Buzz until target reached + rts +.scend + +.checkpc $A000 +.data +.checkpc $D000 + +
+
+ <filename>tutor6.oph</filename> + +.include "c64-1.oph" + +.data +.org $C000 +.space cache 2 +.text + +.macro print + lda #<_1 + ldx #>_1 + jsr printstr +.macend + +.macro greet + lda #30 + jsr delay + `print hello1 + `print _1 + `print hello2 +.macend + + ; Save the zero page locations that PRINTSTR uses. + lda $10 + sta cache + lda $11 + sta cache+1 + + lda #147 + jsr chrout + `greet target1 + `greet target2 + `greet target3 + `greet target4 + `greet target5 + `greet target6 + `greet target7 + `greet target8 + `greet target9 + `greet target10 + + ; Restore the zero page values printstr uses. + lda cache + sta $10 + lda cache+1 + sta $11 + + rts + +hello1: .byte "HELLO, ",0 +hello2: .byte "!", 13, 0 + +target1: .byte "PROGRAMMER", 0 +target2: .byte "ROOM", 0 +target3: .byte "BUILDING", 0 +target4: .byte "NEIGHBORHOOD", 0 +target5: .byte "CITY", 0 +target6: .byte "NATION", 0 +target7: .byte "WORLD", 0 +target8: .byte "SOLAR SYSTEM", 0 +target9: .byte "GALAXY", 0 +target10: .byte "UNIVERSE", 0 + +; DELAY routine. Takes values from the Accumulator and pauses +; for that many jiffies (1/60th of a second). +.scope +.data +.space _tmp 1 +.space _target 1 + +.text + +delay: sta _tmp ; save argument (rdtim destroys it) + jsr rdtim + clc + adc _tmp ; add current time to get target + sta _target +* jsr rdtim + cmp _target + bmi - ; Buzz until target reached + rts +.scend + +; PRINTSTR routine. Accumulator stores the low byte of the address, +; X register stores the high byte. Destroys the values of $10 and +; $11. + +.scope +printstr: + sta $10 + stx $11 + ldy #$00 +_lp: lda ($10),y + beq _done + jsr chrout + iny + bne _lp +_done: rts +.scend + +.checkpc $A000 +.data +.checkpc $D000 + +
+
+ <filename>c64-2.oph</filename> + +.word $0801 +.org $0801 + +.scope + .word _next, 10 ; Next line and current line number + .byte $9e," 2064",0 ; SYS 2064 +_next: .word 0 ; End of program +.scend + +.advance $0810 + +.require "kernal.oph" + +.data zp +.org $0002 + +.text + +.scope + ; Cache BASIC's zero page at top of available RAM. + ldx #$7E +* lda $01, x + sta $CF81, x + dex + bne - + + jsr _main + + ; Restore BASIC's zero page and return control. + + ldx #$7E +* lda $CF81, x + sta $01, x + dex + bne - + rts + +_main: + ; Program follows... +.scend + +
+
+ <filename>tutor7.oph</filename> + +.include "c64-2.oph" + +.data +.org $C000 +.text + +.macro print + lda #<_1 + ldx #>_1 + jsr printstr +.macend + +.macro greet + lda #30 + jsr delay + `print hello1 + `print _1 + `print hello2 +.macend + + lda #147 + jsr chrout + `greet target1 + `greet target2 + `greet target3 + `greet target4 + `greet target5 + `greet target6 + `greet target7 + `greet target8 + `greet target9 + `greet target10 + + rts + +hello1: .byte "HELLO, ",0 +hello2: .byte "!", 13, 0 + +target1: .byte "PROGRAMMER", 0 +target2: .byte "ROOM", 0 +target3: .byte "BUILDING", 0 +target4: .byte "NEIGHBORHOOD", 0 +target5: .byte "CITY", 0 +target6: .byte "NATION", 0 +target7: .byte "WORLD", 0 +target8: .byte "SOLAR SYSTEM", 0 +target9: .byte "GALAXY", 0 +target10: .byte "UNIVERSE", 0 + +; DELAY routine. Takes values from the Accumulator and pauses +; for that many jiffies (1/60th of a second). +.scope +.data +.space _tmp 1 +.space _target 1 + +.text + +delay: sta _tmp ; save argument (rdtim destroys it) + jsr rdtim + clc + adc _tmp ; add current time to get target + sta _target +* jsr rdtim + cmp _target + bmi - ; Buzz until target reached + rts +.scend + +; PRINTSTR routine. Accumulator stores the low byte of the address, +; X register stores the high byte. Destroys the values of $10 and +; $11. + +.scope +.data zp +.space _ptr 2 +.text +printstr: + sta _ptr + stx _ptr+1 + ldy #$00 +_lp: lda (_ptr),y + beq _done + jsr chrout + iny + bne _lp +_done: rts +.scend + +.checkpc $A000 + +.data +.checkpc $D000 + +.data zp +.checkpc $80 + +
+
diff --git a/doc/docbook/tutor1.sgm b/doc/docbook/tutor1.sgm new file mode 100644 index 0000000..6a754b9 --- /dev/null +++ b/doc/docbook/tutor1.sgm @@ -0,0 +1,315 @@ + + The basics + + + In this first part of the tutorial we will create a + simple Hello World program to run on the Commodore + 64. This will cover: + + + How to make programs run on a Commodore 64 + Writing simple code with labels + Numeric and string data + Invoking the assembler + + + +
+ A note on numeric notation + + + Throughout these tutorials, I will be using a lot of both + decimal and hexadecimal notation. Hex numbers will have a + dollar sign in front of them. Thus, 100 = $64, and $100 = 256. + +
+ +
+ Producing Commodore 64 programs + + + Commodore 64 programs are stored in + the PRG format on disk. Some emulators + (such as CCS64 or VICE) can run PRG + programs directly; others need them to be transferred to + a D64 image first. + + + + The PRG format is ludicrously simple. It + has two bytes of header data: This is a little-endian number + indicating the starting address. The rest of the file is a + single continuous chunk of data loaded into memory, starting at + that address. BASIC memory starts at memory location 2048, and + that's probably where we'll want to start. + + + + Well, not quite. We want our program to be callable from BASIC, + so we should have a BASIC program at the start. We guess the + size of a simple one line BASIC program to be about 16 bytes. + Thus, we start our program at memory location 2064 ($0810), and + the BASIC program looks like this: + + + +10 SYS 2064 + + + + We SAVE this program to a file, then + study it in a debugger. It's 15 bytes long: + + + +1070:0100 01 08 0C 08 0A 00 9E 20-32 30 36 34 00 00 00 + + + + The first two bytes are the memory location: $0801. The rest of + the data breaks down as follows: + + + + BASIC program breakdown + + + + Memory Locations + Value + + + + $0801-$08022-byte pointer to the next line of BASIC code ($080C). + $0803-$08042-byte line number ($000A = 10). + $0805Byte code for the SYS command. + $0806-$080AThe rest of the line, which is just the string 2064. + $080BNull byte, terminating the line. + $080C-$080D2-byte pointer to the next line of BASIC code ($0000 = end of program). + + +
+ + + That's 13 bytes. We started at 2049, so we need 2 more bytes of + filler to make our code actually start at location 2064. These + 17 bytes will give us the file format and the BASIC code we need + to have our machine language program run. + + + + These are just bytes—indistinguishable from any other sort of + data. In Ophis, bytes of data are specified with + the .byte command. We'll also have to tell + Ophis what the program counter should be, so that it knows what + values to assign to our labels. The .org + (origin) command tells Ophis this. Thus, the Ophis code for our + header and linking info is: + + + +.byte $01, $08, $0C, $08, $0A, $00, $9E, $20 +.byte $32, $30, $36, $34, $00, $00, $00, $00 +.byte $00, $00 +.org $0810 + + + + This gets the job done, but it's completely incomprehensible, + and it only uses two directives—not very good for a + tutorial. Here's a more complicated, but much clearer, way of + saying the same thing. + + + +.word $0801 +.org $0801 + + .word next, 10 ; Next line and current line number + .byte $9e," 2064",0 ; SYS 2064 +next: .word 0 ; End of program + +.advance 2064 + + + + This code has many advantages over the first. + + + It describes better what is actually + happening. The .word directive at the + beginning indicates a 16-bit value stored in the typical + 65xx way (small byte first). This is followed by + an .org statement, so we let the + assembler know right away where everything is supposed to + be. + + Instead of hardcoding in the value $080C, we + instead use a label to identify the location it's pointing + to. Ophis will compute the address + of next and put that value in as data. + We also describe the line number in decimal since BASIC + line numbers generally are in decimal. + Labels are defined by putting their name, then a colon, as + seen in the definition of next. + + + Instead of putting in the hex codes for the string part of + the BASIC code, we included the string directly. Each + character in the string becomes one byte. + + + Instead of adding the buffer ourselves, we + used .advance, which outputs zeros until + the specified address is reached. Attempting + to .advance backwards produces an + assemble-time error. + + + It has comments that explain what the data are for. The + semicolon is the comment marker; everything from a semicolon + to the end of the line is ignored. + + + +
+ +
+ Related commands and options + + + This code includes constants that are both in decimal and in + hex. It is also possible to specify constants in octal, binary, + or with an ASCII character. + + + To specify decimal constants, simply write the number. + To specify hexadecimal constants, put a $ in front. + To specify octal constants, put a 0 (zero) in front. + To specify binary constants, put a % in front. + To specify ASCII constants, put an apostrophe in front. + + + Example: 65 = $41 = 0101 = %1000001 = 'A + + + There are other commands besides .byte + and .word to specify data. In particular, + the .dword command specifies four-byte values + which some applications will find useful. Also, some linking + formats (such as the SID format) have + header data in big-endian (high byte first) format. + The .wordbe and .dwordbe + directives provide a way to specify multibyte constants in + big-endian formats cleanly. + +
+ +
+ Writing the actual code + + + Now that we have our header information, let's actually write + the Hello world program. It's pretty + short—a simple loop that steps through a hardcoded array + until it reaches a 0 or outputs 256 characters. It then returns + control to BASIC with an RTS statement. + + + + Each character in the array is passed as an argument to a + subroutine at memory location $FFD2. This is part of the + Commodore 64's BIOS software, which its development + documentation calls the KERNAL. Location $FFD2 prints out the + character corresponding to the character code in the + accumulator. + + + + ldx #0 +loop: lda hello, x + beq done + jsr $ffd2 + inx + bne loop +done: rts + +hello: .byte "HELLO, WORLD!", 0 + + + + The complete, final source is available in + the file. + +
+
+ Assembling the code + + + The Ophis assembler is a collection of Python modules, + controlled by a master script. On Windows, this should all + have been combined into an executable + file ophis.exe; on other platforms, the + Ophis modules should be in the library and + the ophis script should be in your path. + Typing ophis with no arguments should give a + summary of available command line options. + + + + Ophis Options + + + + Option + Effect + + + + Allows the 6510 undocumented opcodes as listed in the VICE documentation. + Allows opcodes and addressing modes added by the 65C02. + Quiet operation. Only reports errors. + Default operation. Reports files as they are loaded, and gives statistics on the final output. + Verbose operation. Names each assembler pass as it runs. + Debug operation: Dumps the entire IR after each pass. + Full debug operation: Dumps the entire IR and symbol table after each pass. + + +
+ + + The only options Ophis demands are an input file and an output + file. Here's a sample session, assembling the tutorial file + here: + + +localhost$ ophis tutor1.oph tutor1.prg -v 2 +Loading tutor1.oph +Running: Macro definition pass +Running: Macro expansion pass +Running: Label initialization pass +Fixpoint failed, looping back +Running: Label initialization pass +Running: Circularity check pass +Running: Expression checking pass +Running: Easy addressing modes pass +Running: Label Update Pass +Fixpoint failed, looping back +Running: Label Update Pass +Running: Instruction Collapse Pass +Running: Mode Normalization pass +Running: Label Update Pass +Running: Assembler +Assembly complete: 45 bytes output (14 code, 29 data, 2 filler) + + + If your emulator can run PRG files + directly, this file will now run (and + print HELLO, WORLD!) as many + times as you type RUN. Otherwise, use + a D64 management utility to put + the PRG on a D64, then + load and run the file off that. + +
+
diff --git a/doc/docbook/tutor2.sgm b/doc/docbook/tutor2.sgm new file mode 100644 index 0000000..c0128ef --- /dev/null +++ b/doc/docbook/tutor2.sgm @@ -0,0 +1,107 @@ + + Labels and aliases + + Labels are an important part of your code. However, since each + label must normally be unique, this can lead to namespace + pollution, and you'll find yourself going through ever + more contorted constructions to generate unique label names. + Ophis offers two solutions to this: anonymous + labels and temporary labels. This + tutorial will cover both of these facilities, and also introduce + the aliasing mechanism. + + +
+ Temporary labels + + + Temporary labels are the easiest to use. If a label begins with + an underscore, it will only be reachable from inside the + innermost enclosing scope. Scopes begin when + a .scope statement is encountered. This + produces a new, inner scope if there is another scope in use. + The .scend command ends the innermost + currently active scope. + + + + We can thus rewrite our header data using temporary labels, thus + allowing the main program to have a label + named next if it wants. + + + +.word $0801 +.org $0801 + +.scope + .word _next, 10 ; Next line and current line number + .byte $9e," 2064",0 ; SYS 2064 +_next: .word 0 ; End of program +.scend + +.advance 2064 + + +
+
+ Anonymous labels + + Anonymous labels are a way to handle short-ranged branches + without having to come up with names for the then and else + branches, for brief loops, and other such purposes. To define + an anonymous label, use an asterisk. To refer to an anonymous + label, use a series of + + or - signs. + refers to + the next anonymous label, ++ the label + after that, etc. Likewise, - is the most + recently defined label, -- the one before + that, and so on. The main body of the Hello World program + with anonymous labels would be: + + + + ldx #0 +* lda hello, x + beq + + jsr $ffd2 + inx + bne - +* rts + + + + It is worth noting that anonymous labels are globally available. + They are not temporary labels, and they ignore scoping + restrictions. + +
+
+ Aliasing + + + Rather the reverse of anonymous labels, aliases are names + given to specific memory locations. These make it easier to + keep track of important constants or locations. The KERNAL + routines are a good example of constants that deserve names. + To assign the traditional name chrout to + the routine at $FFD2, simply give the directive: + + + +.alias chrout $ffd2 + + + And change the jsr command + to: + + + jsr chrout + + + + The final version of the code is in . It should + assemble to exactly the same program as . + +
+
diff --git a/doc/docbook/tutor3.sgm b/doc/docbook/tutor3.sgm new file mode 100644 index 0000000..975e443 --- /dev/null +++ b/doc/docbook/tutor3.sgm @@ -0,0 +1,160 @@ + + Headers, Libraries, and Macros + + + In this chapter we will split away parts of our Hello + World program into reusable header files and libraries. + We will also abstract away our string printing technique into a + macro which may be invoked at will, on arbitrary strings. We will + then multiply the output of our program tenfold. + + +
+ Header files and libraries + + + The prelude to our program—the PRG + information and the BASIC program—are going to be the same + in many, many programs. Thus, we should put them into a header + file to be included later. The .include + directive will load a file and insert it as source at the + designated point. + + + + A related directive, .require, will include + the file as long as it hasn't been included yet elsewhere. It + is useful for ensuring a library is linked in. + + + + For pre-assembled code or raw binary data, + the .incbin directive lets you include the + contents of a binary file directly in the output. This is handy + for linking in pre-created graphics or sound data. + + + + As a sample library, we will expand the definition of + the chrout routine to include the standard + names for every KERNAL routine. Our header file will + then .require it. + + + + We'll also add some convenience aliases for things like reverse + video, color changes, and shifting between upper case/graphics + and mixed case text. We'd feed those to + the chrout routine to get their effects. + + + + Since there have been no interesting changes to the prelude, and + the KERNAL values are standard, we do not reproduce them here. + (The files in question are and .) + +
+
+ Macros + + + A macro is a way of expressing a lot of code or data with a + simple shorthand. It's also usually configurable. Traditional + macro systems such as C's #define mechanic + use textual replacement: a macro is + expanded before any evaluation or even parsing occurs. + + + + In contrast, Ophis's macro system uses a call by + value approach where the arguments to macros are + evaluated to bytes or words before being inserted into the macro + body. This produces effects much closer to those of a + traditional function call. A more detailed discussion of the + tradeoffs may be found in . + + +
+ Macro definitions + + + A macro definition is a set of statements between + a .macro statement and + a .macend statement. + The .macro statement also names the macro + being defined. + + + + No global or anonymous labels may be defined inside a macro: + temporary labels only persist in the macro expansion itself. + (Each macro body has its own scope.) + + + + Arguments to macros are referred to by number: the first is + _1, the second _2, and so on. + + + + Here's a macro that encapsulates the printing routine in our + Hello World program, with an argument being the + address of the string to print: + + + +.macro print + ldx #0 +_loop: lda _1, x + beq _done + jsr chrout + inx + bne _loop +_done: +.macend + + +
+
+ Macro invocations + + + Macros may be invoked in two ways: one that looks like a + directive, and one that looks like an instruction. + + + + The most common way to invoke a macro is to backquote the name + of the macro. It is also possible to use + the .invoke command. These commands look + like this: + + + +`print msg +.invoke print msg + + + + Arguments are passed to the macro as a comma-separated list. + They must all be expressions that evaluate to byte or word + values—a mechanism similar to .alias + is used to assign their values to the _n + names. + +
+
+
+ Example code + + + expands our + running example, including the code above and also defining a + new macro greet that takes a string argument + and prints a greeting to it. It then greets far too many + targets. + +
+
diff --git a/doc/docbook/tutor4.sgm b/doc/docbook/tutor4.sgm new file mode 100644 index 0000000..ba25e39 --- /dev/null +++ b/doc/docbook/tutor4.sgm @@ -0,0 +1,110 @@ + + Character maps + + + Now we will close the gap between the Commodore's + version of ASCII and the real one. We'll also add a time-delay + routine to slow down the output. This routine isn't really of + interest to us right now, so we'll add a subroutine + called delay that executes 2,560*(accumulator) + NOPs. By the time the program is finished, + we'll have executed 768,000 no-ops. + + + + There actually are better ways of getting a time-delay on the + Commodore 64; we'll deal with those in . + As a result, there isn't really a lot to discuss here. The later + tutorials will be building off of , so you may want to get familiar with + that. Note also the change to the body of + the greet macro. + + + + On to the topic at hand. Let's change the code to use mixed case. + We defined the upper'case + and lower'case aliases back + in as part of the + standard + header, so we can add this before our invocations of + the greet macro: + + + + lda #lower'case + jsr chrout + + + + And that will put us into mixed case mode. So, now we just need + to redefine the data so that it uses the mixed-case: + + + +hello1: .byte "Hello, ",0 +hello2: .byte "!", 13, 0 + +target1: .byte "programmer", 0 +target2: .byte "room", 0 +target3: .byte "building", 0 +target4: .byte "neighborhood", 0 +target5: .byte "city", 0 +target6: .byte "nation", 0 +target7: .byte "world", 0 +target8: .byte "Solar System", 0 +target9: .byte "Galaxy", 0 +target10: .byte "Universe", 0 + + + + The code that does this is in . If you assemble and run it, you will + notice that the output is not what we want. In particular, upper + and lowercase are reversed, so we have messages + like hELLO, sOLAR sYSTEM!. For + the specific case of PETSCII, we can just fix our strings, but + that's less of an option if we're writing for the Apple II's + character set, or targeting a game console that puts its letters + in arbitrary locations. We need to remap how strings are turned + into byte values. The .charmap + and .charmapbin directives do what we need. + + + + The .charmap directive usually takes two + arguments; a byte (usually in character form) indicating the ASCII + value to start remapping from, and then a string giving the new + values. To do our case-swapping, we write two directives before + defining any string constants: + + + +.charmap 'A, "abcdefghijklmnopqrstuvwxyz" +.charmap 'a, "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + + + + Note that the 'a constant in the second + directive refers to the a character in the source, + not in the current map. + + + + The fixed code is in , and will produce the expected results + when run. + + + + An alternative is to use a .charmapbin + directive to replace the entire character map directly. This + specifies an external file, 256 bytes long, that is loaded in at + that point. A binary character map for the Commodore 64 is + provided with the sample programs + as petscii.map. There are also three + files, a2normal.map, a2inverse.map, + and a2blink.map that handle the Apple II's + very nonstandard character encodings. + + diff --git a/doc/docbook/tutor5.sgm b/doc/docbook/tutor5.sgm new file mode 100644 index 0000000..735033e --- /dev/null +++ b/doc/docbook/tutor5.sgm @@ -0,0 +1,157 @@ + + Local variables and memory segments + + + As mentioned in , there are better ways + to handle waiting than just executing vast numbers of NOPs. The + Commodore 64 KERNAL library includes a rdtim + routine that returns the uptime of the machine, in + 60ths of a second, as a 24-bit integer. + The Commodore 64 programmer's guide available online actually has + a bug in it, reversing the significance of the A and Y registers. + The accumulator holds the least significant + byte, not the most. + + + + Here's a first shot at a better delay routine: + + + +.scope + ; data used by the delay routine + _tmp: .byte 0 + _target: .byte 0 + +delay: sta _tmp ; save argument (rdtim destroys it) + jsr rdtim + clc + adc _tmp ; add current time to get target + sta _target +* jsr rdtim + cmp _target + bmi - ; Buzz until target reached + rts +.scend + + + + This works, but it eats up two bytes of file space that don't + really need to be specified. Also, it's modifying data inside a + program text area, which isn't good if you're assembling to a ROM + chip. (Since the Commodore 64 stores its programs in RAM, it's + not an issue for us here.) A slightly better solution is to + use .alias to assign the names to chunks of RAM + somewhere. There's a 4K chunk of RAM from $C000 through $CFFF + between the BASIC ROM and the I/O ROM that should serve our + purposes nicely. We can replace the definitions + of _tmp and _target with: + + + + ; data used by the delay routine + .alias _tmp $C000 + .alias _target $C001 + + + + This works better, but now we've just added a major bookkeeping + burden upon ourselves—we must ensure that no routines step on + each other. What we'd really like are two separate program + counters—one for the program text, and one for our variable + space. + + + + Ophis lets us do this with the .text + and .data commands. + The .text command switches to the program-text + counter, and the .data command switches to the + variable-data counter. When Ophis first starts assembling a file, + it starts in .text mode. + + + + To reserve space for a variable, use the .space command. This + takes the form: + + +.space varname size + + + which assigns the name varname to the current + program counter, then advances the program counter by the amount + specified in size. Nothing is output to the + final binary as a result of the .space command. + + + + You may not put in any commands that produce output into + a .data segment. Generally, all you will be + using are .org and .space + commands. Ophis will not complain if you + use .space inside a .text + segment, but this is nearly always wrong. + + + + The final version of delay looks like this: + + + +; DELAY routine. Takes values from the Accumulator and pauses +; for that many jiffies (1/60th of a second). +.scope +.data +.space _tmp 1 +.space _target 1 + +.text + +delay: sta _tmp ; save argument (rdtim destroys it) + jsr rdtim + clc + adc _tmp ; add current time to get target + sta _target +* jsr rdtim + cmp _target + bmi - ; Buzz until target reached + rts +.scend + + + + We're not quite done yet, however, because we have to tell the + data segment where to begin. (If we don't, it starts at 0, which + is usually wrong.) We add a very brief data segment to the top of + our code: + + + +.data +.org $C000 +.text + + + + This will run. However, we also ought to make sure that we aren't + overstepping any boundaries. Our program text shouldn't run into + the BASIC chip at $A000, and our data shouldn't run into the I/O + region at $D000. The .checkpc command lets us + assert that the program counter hasn't reached a specific point + yet. We put, at the end of our code: + + + +.checkpc $A000 +.data +.checkpc $D000 + + + + The final program is available as . Note that we based this on the + all-uppercase version from the last section, not any of the + charmapped versions. + + diff --git a/doc/docbook/tutor6.sgm b/doc/docbook/tutor6.sgm new file mode 100644 index 0000000..df527c3 --- /dev/null +++ b/doc/docbook/tutor6.sgm @@ -0,0 +1,118 @@ + + Expressions + + + Ophis permits a reasonably rich set of arithmetic operations to be + done at assemble time. So far, all of our arguments and values + have either been constants or label names. In this chapter, we + will modify the print macro so that it calls a + subroutine to do the actual printing. This will shrink the final + code size a fair bit. + + + + Here's our printing routine. It's fairly straightforward. + + + +; PRINTSTR routine. Accumulator stores the low byte of the address, +; X register stores the high byte. Destroys the values of $10 and +; $11. + +.scope +printstr: + sta $10 + stx $11 + ldy #$00 +_lp: lda ($10), y + beq _done + jsr chrout + iny + bne _lp +_done: rts +.scend + + + + However, now we are faced with the problem of what to do with + the print macro. We need to take a 16-bit + value and store it in two 8-bit registers. We can use + the < and > operators + to take the low or high byte of a word, respectively. + The print macro becomes: + + + +.macro print + lda #<_1 + ldx #>_1 + jsr printstr +.macend + + + + Also, since BASIC uses the locations $10 and $11, we should really + cache them at the start of the program and restore them at the + end: + + + +.data +.org $C000 +.space cache 2 +.text + + ; Save the zero page locations that printstr uses. + lda $10 + sta cache + lda $11 + sta cache+1 + + ; ... main program goes here ... + + ; Restore the zero page values printstr uses. + lda cache + sta $10 + lda cache+1 + sta $11 + + + + Note that we only have to name cache once, but + can use addition to refer to any offset from it. + + + + Ophis supports following operations, with the following precedence + levels (higher entries bind more tightly): + + + + Ophis Operators + + + + Operators + Description + + + + [ ]Parenthesized expressions + < >Byte selection (low, high) + * /Multiply, divide + + -Add, subtract + | & ^Bitwise OR, AND, XOR + + +
+ + Note that brackets, not parentheses, are used to group arithmetic + operations. This is because parentheses are used for the indirect + addressing modes, and it makes parsing much easier. + + + + The code for this version of the code is + in . + +
diff --git a/doc/docbook/tutor7.sgm b/doc/docbook/tutor7.sgm new file mode 100644 index 0000000..04d694c --- /dev/null +++ b/doc/docbook/tutor7.sgm @@ -0,0 +1,143 @@ + + Advanced Memory Segments + + + This is the last section of the Ophis tutorial. By now we've + covered the basics of every command in the assembler; in this + final installment we show the full capabilities of + the .text and .data commands + as we produce a final set of Commodore 64 header files. + + +
+ The Problem + + + Our print'str routine + in accesses + memory locations $10 and $11 directly. We'd prefer to have + symbolic names for them. This reprises our concerns back in + when we concluded that we wanted two + separate program counters. Now we realize that we really need + three; one for the text, one for the data, and one for the zero + page data. And if we're going to allow three, we really should + allow any number. + +
+
+ The Solution + + + The .data and .text + commands can take a label name after them—this names a new + segment. We'll define a new segment + called zp (for zero page) and + have our zero-page variables be placed there. We can't actually + use the default origin of $0000 here either, though, because the + Commodore 64 reserves memory locations 0 and 1 to control its + memory mappers: + + + +.data zp +.org $0002 + + + + Now, actually, the rest of the zero page is reserved too: + locations $02-$7F are used by the BASIC interpreter, and + locations $80-$FF are used by the KERNAL. We don't need the + BASIC interpreter, though, so we can back up all of $02-$7F at + the start of our program and restore it all when we're done: + + + +.scope + ; Cache BASIC's zero page at top of available RAM. + ldx #$7E +* lda $01, x + sta $CF81, x + dex + bne - + + jsr _main + + ; Restore BASIC's zero page and return control. + + ldx #$7E +* lda $CF81, x + sta $01, x + dex + bne - + rts + +_main: + ; _main points at the start of the real program, + ; which is actually outside of this scope +.scend + + + + The new, improved header file is . + + + + Our print'str routine is then rewritten to + declare and use a zero-page variable, like so: + + + +; PRINTSTR routine. Accumulator stores the low byte of the address, +; X register stores the high byte. Destroys the values of $10 and +; $11. + +.scope +.data zp +.space _ptr 2 +.text +printstr: + sta _ptr + stx _ptr+1 + ldy #$00 +_lp: lda (_ptr),y + beq _done + jsr chrout + iny + bne _lp +_done: rts +.scend + + + + Also, we ought to put in an extra check to make sure our + zero-page allocations don't overflow, either: + + + +.data zp +.checkpc $80 + + + + That concludes our tour. The final source file + is . + +
+
+ Where to go from here + + This tutorial has touched on everything that the assembler can + do, but it's not really well organized as a + reference. is a better place to look + up matters of syntax or consult lists of available commands. + + + If you're looking for projects to undertake, the Commodore 64 + and Atari 2600 development communities are both very strong, and + the Apple II and NES development communities are still alive and + well as well. There's an annual Minigame Competition that's + always looking for new entries. + +
+
diff --git a/doc/kernal.oph b/doc/kernal.oph new file mode 100644 index 0000000..ea13fad --- /dev/null +++ b/doc/kernal.oph @@ -0,0 +1,67 @@ +; KERNAL routine aliases (C64) + +.alias acptr $ffa5 +.alias chkin $ffc6 +.alias chkout $ffc9 +.alias chrin $ffcf +.alias chrout $ffd2 +.alias ciout $ffa8 +.alias cint $ff81 +.alias clall $ffe7 +.alias close $ffc3 +.alias clrchn $ffcc +.alias getin $ffe4 +.alias iobase $fff3 +.alias ioinit $ff84 +.alias listen $ffb1 +.alias load $ffd5 +.alias membot $ff9c +.alias memtop $ff99 +.alias open $ffc0 +.alias plot $fff0 +.alias ramtas $ff87 +.alias rdtim $ffde +.alias readst $ffb7 +.alias restor $ff8a +.alias save $ffd8 +.alias scnkey $ff9f +.alias screen $ffed +.alias second $ff93 +.alias setlfs $ffba +.alias setmsg $ff90 +.alias setnam $ffbd +.alias settim $ffdb +.alias settmo $ffa2 +.alias stop $ffe1 +.alias talk $ffb4 +.alias tksa $ff96 +.alias udtim $ffea +.alias unlsn $ffae +.alias untlk $ffab +.alias vector $ff8d + +; Character codes for the colors. +.alias color'0 144 +.alias color'1 5 +.alias color'2 28 +.alias color'3 159 +.alias color'4 156 +.alias color'5 30 +.alias color'6 31 +.alias color'7 158 +.alias color'8 129 +.alias color'9 149 +.alias color'10 150 +.alias color'11 151 +.alias color'12 152 +.alias color'13 153 +.alias color'14 154 +.alias color'15 155 + +; ...and reverse video +.alias reverse'on 18 +.alias reverse'off 146 + +; ...and character set +.alias upper'case 142 +.alias lower'case 14 \ No newline at end of file diff --git a/doc/ophismanual.pdf b/doc/ophismanual.pdf new file mode 100644 index 0000000..a399c66 --- /dev/null +++ b/doc/ophismanual.pdf @@ -0,0 +1,7725 @@ +%PDF-1.4 +1 0 obj +<< /S /GoTo /D (1.0) >> +endobj +4 0 obj +(Programming with Ophis) +endobj +5 0 obj +<< /S /GoTo /D (2.0) >> +endobj +8 0 obj +(Table of Contents) +endobj +9 0 obj +<< /S /GoTo /D (3.0) >> +endobj +12 0 obj +(Preface) +endobj +13 0 obj +<< /S /GoTo /D (3.1.1) >> +endobj +16 0 obj +(Why Ophis?) +endobj +17 0 obj +<< /S /GoTo /D (3.2.1) >> +endobj +20 0 obj +(Getting a copy of Ophis) +endobj +21 0 obj +<< /S /GoTo /D (4.0) >> +endobj +24 0 obj +(Chapter 1. The basics) +endobj +25 0 obj +<< /S /GoTo /D (4.3.1) >> +endobj +28 0 obj +(A note on numeric notation) +endobj +29 0 obj +<< /S /GoTo /D (4.4.1) >> +endobj +32 0 obj +(Producing Commodore 64 programs) +endobj +33 0 obj +<< /S /GoTo /D (4.5.1) >> +endobj +36 0 obj +(Related commands and options) +endobj +37 0 obj +<< /S /GoTo /D (4.6.1) >> +endobj +40 0 obj +(Writing the actual code) +endobj +41 0 obj +<< /S /GoTo /D (4.7.1) >> +endobj +44 0 obj +(Assembling the code) +endobj +45 0 obj +<< /S /GoTo /D (5.0) >> +endobj +48 0 obj +(Chapter 2. Labels and aliases) +endobj +49 0 obj +<< /S /GoTo /D (5.8.1) >> +endobj +52 0 obj +(Temporary labels) +endobj +53 0 obj +<< /S /GoTo /D (5.9.1) >> +endobj +56 0 obj +(Anonymous labels) +endobj +57 0 obj +<< /S /GoTo /D (5.10.1) >> +endobj +60 0 obj +(Aliasing) +endobj +61 0 obj +<< /S /GoTo /D (6.0) >> +endobj +64 0 obj +(Chapter 3. Headers, Libraries, and Macros) +endobj +65 0 obj +<< /S /GoTo /D (6.11.1) >> +endobj +68 0 obj +(Header files and libraries) +endobj +69 0 obj +<< /S /GoTo /D (6.12.1) >> +endobj +72 0 obj +(Macros) +endobj +73 0 obj +<< /S /GoTo /D (6.12.1.2) >> +endobj +76 0 obj +(Macro definitions) +endobj +77 0 obj +<< /S /GoTo /D (6.12.2.2) >> +endobj +80 0 obj +(Macro invocations) +endobj +81 0 obj +<< /S /GoTo /D (6.13.1) >> +endobj +84 0 obj +(Example code) +endobj +85 0 obj +<< /S /GoTo /D (7.0) >> +endobj +88 0 obj +(Chapter 4. Character maps) +endobj +89 0 obj +<< /S /GoTo /D (8.0) >> +endobj +92 0 obj +(Chapter 5. Local variables and memory segments) +endobj +93 0 obj +<< /S /GoTo /D (9.0) >> +endobj +96 0 obj +(Chapter 6. Expressions) +endobj +97 0 obj +<< /S /GoTo /D (10.0) >> +endobj +100 0 obj +(Chapter 7. Advanced Memory Segments) +endobj +101 0 obj +<< /S /GoTo /D (10.14.1) >> +endobj +104 0 obj +(The Problem) +endobj +105 0 obj +<< /S /GoTo /D (10.15.1) >> +endobj +108 0 obj +(The Solution) +endobj +109 0 obj +<< /S /GoTo /D (10.16.1) >> +endobj +112 0 obj +(Where to go from here) +endobj +113 0 obj +<< /S /GoTo /D (11.0) >> +endobj +116 0 obj +(Appendix A. Example Programs) +endobj +117 0 obj +<< /S /GoTo /D (11.17.1) >> +endobj +120 0 obj +(tutor1.oph) +endobj +121 0 obj +<< /S /GoTo /D (11.18.1) >> +endobj +124 0 obj +(tutor2.oph) +endobj +125 0 obj +<< /S /GoTo /D (11.19.1) >> +endobj +128 0 obj +(c641.oph) +endobj +129 0 obj +<< /S /GoTo /D (11.20.1) >> +endobj +132 0 obj +(kernal.oph) +endobj +133 0 obj +<< /S /GoTo /D (11.21.1) >> +endobj +136 0 obj +(tutor3.oph) +endobj +137 0 obj +<< /S /GoTo /D (11.22.1) >> +endobj +140 0 obj +(tutor4a.oph) +endobj +141 0 obj +<< /S /GoTo /D (11.23.1) >> +endobj +144 0 obj +(tutor4b.oph) +endobj +145 0 obj +<< /S /GoTo /D (11.24.1) >> +endobj +148 0 obj +(tutor4c.oph) +endobj +149 0 obj +<< /S /GoTo /D (11.25.1) >> +endobj +152 0 obj +(tutor5.oph) +endobj +153 0 obj +<< /S /GoTo /D (11.26.1) >> +endobj +156 0 obj +(tutor6.oph) +endobj +157 0 obj +<< /S /GoTo /D (11.27.1) >> +endobj +160 0 obj +(c642.oph) +endobj +161 0 obj +<< /S /GoTo /D (11.28.1) >> +endobj +164 0 obj +(tutor7.oph) +endobj +165 0 obj +<< /S /GoTo /D (12.0) >> +endobj +168 0 obj +(Appendix B. Ophis Command Reference) +endobj +169 0 obj +<< /S /GoTo /D (12.29.1) >> +endobj +172 0 obj +(Command Modes) +endobj +173 0 obj +<< /S /GoTo /D (12.30.1) >> +endobj +176 0 obj +(Basic arguments) +endobj +177 0 obj +<< /S /GoTo /D (12.30.3.2) >> +endobj +180 0 obj +(Numeric types) +endobj +181 0 obj +<< /S /GoTo /D (12.30.4.2) >> +endobj +184 0 obj +(Label types) +endobj +185 0 obj +<< /S /GoTo /D (12.30.5.2) >> +endobj +188 0 obj +(String types) +endobj +189 0 obj +<< /S /GoTo /D (12.31.1) >> +endobj +192 0 obj +(Compound Arguments) +endobj +193 0 obj +<< /S /GoTo /D (12.32.1) >> +endobj +196 0 obj +(Memory Model) +endobj +197 0 obj +<< /S /GoTo /D (12.32.6.2) >> +endobj +200 0 obj +(Basic PC tracking) +endobj +201 0 obj +<< /S /GoTo /D (12.32.7.2) >> +endobj +204 0 obj +(Basic Segmentation simulation) +endobj +205 0 obj +<< /S /GoTo /D (12.32.8.2) >> +endobj +208 0 obj +(General Segmentation Simulation) +endobj +209 0 obj +<< /S /GoTo /D (12.33.1) >> +endobj +212 0 obj +(Macros) +endobj +213 0 obj +<< /S /GoTo /D (12.33.9.2) >> +endobj +216 0 obj +(Defining Macros) +endobj +217 0 obj +<< /S /GoTo /D (12.33.10.2) >> +endobj +220 0 obj +(Invoking Macros) +endobj +221 0 obj +<< /S /GoTo /D (12.33.11.2) >> +endobj +224 0 obj +(Passing Arguments to Macros) +endobj +225 0 obj +<< /S /GoTo /D (12.33.12.2) >> +endobj +228 0 obj +(Features and Restrictions of the Ophis Macro Model) +endobj +229 0 obj +<< /S /GoTo /D (12.34.1) >> +endobj +232 0 obj +(Assembler directives) +endobj +233 0 obj +<< /S /GoTo /D [234 0 R /Fit ] >> +endobj +236 0 obj << +/Length 197 +/Filter /FlateDecode +>> +stream +xڍ=k@ w +c @hB NnK AWzJ0ZXE{gF9Z6-+ 2Ud A(Ȑ6B潟qns͗a^?Yojr썦\ h []dpT2|AuuDq_:Eendstream +endobj +234 0 obj << +/Type /Page +/Contents 236 0 R +/Resources 235 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 243 0 R +>> endobj +237 0 obj << +/D [234 0 R /XYZ 95.6414 729.2652 null] +>> endobj +238 0 obj << +/D [234 0 R /XYZ 95.6414 716.3138 null] +>> endobj +239 0 obj << +/D [234 0 R /XYZ 95.6414 716.3138 null] +>> endobj +2 0 obj << +/D [234 0 R /XYZ 400.0898 704.6091 null] +>> endobj +235 0 obj << +/Font << /F23 242 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +246 0 obj << +/Length 213 +/Filter /FlateDecode +>> +stream +xڍ;O@ +pvAJۀ!-49Uŏ>fAYb/ܛ|a4{5U5Եd\ XQd6,ߞ˧*}ڴC)zui_Ev+b`|8[nj*Ҫk?.I3is|…1gv; |S$DV?]]^k#mы'kWendstream +endobj +245 0 obj << +/Type /Page +/Contents 246 0 R +/Resources 244 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 243 0 R +>> endobj +247 0 obj << +/D [245 0 R /XYZ 95.6414 729.2652 null] +>> endobj +244 0 obj << +/Font << /F23 242 0 R /F28 250 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +253 0 obj << +/Length 56327 +/Filter /FlateDecode +>> +stream +xڔͮdWzmSYplj! 5 ]X-@ _7TY Yޑg/7fAbclN&Ofqo|8s;w??/a=s>Χ}//wyO| ??yyO~oo??|/G|=~s}SC=P7z>~O.uwzaw^>{;-T܇ڕzNq䅺!?K*_OܩRzNݐv%(wk};]ϡ|&ynȏ~4ʝ!,?ҏ}FS7۹zN})?sNR79o|=rnȗsڟSzNݐ/ox?4ʝZ~X~4 uC1i;uC~~0v׷S~w|&ynȏ˗6~0/orI?qNݐ/|M(wkiy50a^v|y53Q j_Ʉè6kyP=NP7O?qNݐ_vߢaTs|]n3_O۩\g>NP7˫4ʝ!_^~4ʝ!_i;kP>NP79\ҏ}FS7o zNݐ/~?4ʝ!_[Qqw8MBݐ-i;uC=uFS7_rzN}-[9"f&ynȗs:8rn~4ʝ!_-QvcI^~N?qNݐvs(w{]}=rz piW|y;[*_OܩoTFS79zN}-?,o~4 uC(w|y;}(w|y;}Qqwҏ}&ynϻ+cQ m|yKi;uC~ݮc_Oܩ\>NP79ӏ}FS79]ҏ}FS79^SaT5ir|y5[(w;ӟZè6şzN}-w[?c4 uC~?Ϣ#qC>Q ^._Oܩ彤BI bNi4!_^~4ʝ!_^Mez|m-ofN?q܅!?.K(wۿ]|=rni;_o>NP7۹ҏ}FS798rnȗs?(wk}y;{$/ v6Q vcQ vc_Oܩ/aw{iW;|=rnȯtOi;uC~ߝc_Oܩ\.>NP79kbFS79/FS79}=rsH:MBݐ/og'Q uvO:rn߾ǾFS_O>i;5Nܩ\>Nܩ\5NܩO>NP79NܩANܩ.ǾFS_/٧b&ynϻ= ttNݐ_w4i;uC~oc_OܩvM&ynȗ8jcnWsNFS7˫9|=rߖW&37˛9iN۩YNܩcaTZB]nuNݐ_wt 3ژ#f4Z~_^%Mst䅺!_^M?è6yy3tMv|y5Ƿ3_Oܩ/jXA^:GQ v?+p?߶mw }x(4CN˯wN_˃m_m~wzӱǣ_Gy<ߖ?8ow>(M'9#܊/h+r;ܩ}䖹Gjcv-T.T2"7;2@mL2"7p;"H>#^^erEn w*Dn\ȝ +[&WrBg "L N-+rS!r@T2"7;"H>#^^erEn w*Dn\ȝ +[&WrBg "L N-+rS!r@T"zyBܩerEn w*Dn\ȝ +["ZyBܩerEn w*Dn\ȝ +[$[//T2"7;"L N-+rS!r3r +[&WrBܩerEn w*Dn|FnP!r@T2"7;2@mL"zwBܩ}䖹GjcB䖩۩EBm#LFn H-+rS!r@>r܊z3!rԊT2"7;2@mL"zwBܩerEn w*Dn\ȝ +[$[//T2"7;"L N-+rS!r3r +[&WrBܩerEn w*Dn)rk +[&WrBܩerEn w*Dn|FnP!r@T2"7;"L N-ȭ*Dn\ȝ +[&WrBܩEB-+rS!r@T2"7;"H>#^^erEn w*Dn\ȝ +[&WrBg "L N-+rS!r@T"zy[ [VnBܩ}jgB䖩۩erEn wjeژEB-+rS-s Ƅ-S+rS!r3rGn{Dn6&DnZ +[&WrBȟ"V^erEn w*DnM&r;ysܚz #iw8,Zm{<?|k6?o''o mGsGo/˃ܩ\(w*3 w*#B|&\N|&\N|&\N|$s^^0˃ܩ0˃ܩ0˃ܩ0OOsV^0˃ܩ0˃ܩ0˃ܩ0s. \sy;\sy;\sy;|{y\>k.r\>k.r\>k.r\>Ϲ|//TgrATgrA~.\Ƅ|s]0˃ܩ\>s< sL< +sH>P۹|^ H|&\N|&\N[s^LgjTgrA~.\Ƅ|s]0˃ܩ0˃ܩ0˃ܩ0s. \sy;\sy;\sy;|{y\>k.r\>k.r\>k.r\>?[y\>k.r\>k.r\>k.r\>Ϲ|//TgrATgrATgrATG9 +sL<ȝ +sL<ȝ +sL<ȝ +sH>Pa.5Sa.5Sa.5Sa.\*3 w*3 w*3 w*#B|&\N|&\N|&\N|$s^^\>s< sL< +sL<ȝ#ڙ0Ԛ˃۩0˃ܩ\>s< sH=Pa.5S|syPZsyp;|{ys=6&3v*3 w*\W*3 w*aw:sj}w헏1k~ sy=?v1yz蜎={/O~:_q~~˗a{3sF +Q mw;|=r-$/ vcQ ewx 32aTs|]NgFS_ˏ~4 uC~]͜ژ\.g>N۩՜鏵qNݸpjy50aqej]nv|8r|eq]u 4 . N//P.Ժ NK"䫗*\uȝ +|er]r%_\|ܩpW$|BK2.SᒯLK@T+/;. NK"{yBU-ܩpW&%_ w*T˙\2ȝ +r$r//T3e;LjNj9ZSZZ +r&W rBU-ܩP-grU w*TˉZn +r&W rBU-ܩP-grU w*Tˑ|V˽PZ䪖AT3e;LjNj9j*T˙\2ȝ +r&W rBU-ܩP-GY-Bj9ZSZ䪖AԾZܣZ1ZԳZ݅ +r&W rr2 rV nBg 3Z-#LjNj9ZSj9rZ΄j9SZSZ䪖AԾZܣZ1ZԳZ݅ +r&W rBU-ܩP-grU w*Tˑ|V˽PZ䪖AT3e;LjNj9j*T˙\2ȝ +r&W rBU-ܩP-'jW*T˙\2ȝ +r&W rBU-ܩP-GY-Bj9ZSZ䪖AT3e;H>^^P-grU w*T˙\2ȝ +r&W rBg LjNj9ZSZ䪖AT#{yBU-ܩP-grU w*T˙\2ȝ +r$r//T3e;LjNj9ZSZZW˙{Tˠ6&T˙Z2 +r&W rrVܫ rV nBU-ܩ}G jcBgܻ LjN=ePLjNj9jj_-gQ-ژP-gjUv*T˙\2ȝ +r"[yBU-ܩP-g4ʝ!}QԯF}l{q{pĖ_;&6=߳__~Y??~??b//{[~^}~~f/⁺p//T grAT grAT grAT 'p+T grAT grAT grAT G +{L0ȝ +{L0ȝ +{L0ȝ +{H>½Pa/ɵSa/ɵSa/ɵSa/^*3 w*3 wjc/ jc^8RϽp.T grA~/^Ƅp^Np${^^^8S{a$^8k/ j^8k/ r{ȭpv&3v*3 wjc/ jc^8RϽp.T grAT grAT grAT G +{L0ȝ +{L0ȝ +{L0ȝ +{H>½Pa/ɵSa/ɵSa/ɵSa/ȟ­Ra/ɵSa/ɵSa/ɵSa/^*3 w*3 w*3 w*# Bp&^Np&^Np&^Np${^^ ܩ ܩ ܩs/ ™\{a;™\{a;™\{a;‘|{y^8k/ r^8k/ r^8k/ r^8Ͻp//~/^Ƅp^Np&^N‘[{^L gjT grA~/^Ƅp{] ܩ^8s0 {L0 +{H>½Pp{aP™Z{ap;™\{a;‰i/+™\{a;™\{a;™\{a;y//o>^vˉǃ凿}/~ӗ×b_ϿZou8|;]6OCoc6Q}neԚ ȬQo6& "E٘(qQHiQˢVLEf͊z1QQ$ȫAQ/6&̉\fg[ȻNz "vDט"fcDQ5""Cؘ0fcˡHy}Z3a5ƄOdΧ7V>Y#lL$i΄}Odּ7=Y۞lLXDf {z1a֓窧5;6=YlLDfyz1a5Ƅ)ObK~nj~$ˆ'jӋ ȬOo6f?IZ^#v'jӋ ÝȬNo6fډc{?axb;:Ysl~V~$R'jӋ 39YlLeNg.LDfrz1aƄENd 78㕿}@sqd>_~/?ߖ?Z_߹pCus=ݷ8ۉO>7NtN No' +N,ۉܩ2ȝ +N,ۉܩ"vbPۉer};1;X&׷Sۉer@TE9 +SLȝ +kLȝ2Xژs׻ f\?;_e11aSaj;Ěک0Zܩ0rk ث sL= +LI ȝڏ3Xژ sػ \@;ց\@;\ A;6|{yL0k'rR0k*rX0k-r^0`//T frmATX frATfr-AT&`+TfrATXfrMATfrATF9$ +SL-!ȝ +kL9!ȝ +LE!ȝ +H>GPaVɵ+SaY5-Sa\ɵ.Sa_*L 36 w* 3f w* 3 w*l #Ba&Na&Na&Na$^^0=ܩ>ܩ0@Z ܩAs !fC1a5ESaɵFS=b W;&ZDp;V\D;&fL1a8w*3 wjPcjcH1SknN1ϡb//~VƄb\Nb&bNb"-Jb&nNb&tNb&zN}ȏfe! DZǣ۷~w};~OO?e˕1y1۸zx!߾S>}xz;6i%2zNݐv/.|=rnȗ䲏?4ʝZ>i|y;/SzNݐ/oxL?qNݐ3SH> +Wgr]1r\Wܩpx& w*\1ȟo +Wgr]1r\Mȝ +M@&WrBg L&N& S j@Th"lzyBܩdr5 w*4\Mȝ +M@$M@//Th2;L&N훀=PH=]dr5 wjdژdj5v*4|6P& SM? j@Th2;o"^Lh2p;L&N훀=PH=]dr5 w*4\Mȝ +M@&WrBg L&N& S j@Th"lzyBܩdr5 w*4\Mȝ +M@"jZyBܩdr5 w*4\Mȝ +M@$M@//Th2;L&N& S +M@&WrBܩdr5 w*4|6P j@Th2;L&N& &*4\Mȝ +M@&WrBܩDB& S j@Th2;H>^^}GjcB۩dr5 wjDn5ڙdj5v*4\Mȝ7{46&4z6P j@Ծ ܣ 1 jTh"lzyM@M M@VnBܩ$&W*4\Mȝ +M@&WrBܩi hwp1cG~~I `>!^_$~ؼHxݿDsT˟=,?z4ʝ!1Q mvOi;uCF|$wj~dr /># S#NӏP>;O?2j~~ܩ}GArG(ɝڧ\ O?BH?H># S#NӏH>ӏ^^}GArG(ɝڧ|$wj~dr /># S#NӏP>;O?2j~~ܩ}GArG(ɝڧ\ O?BH?H># S#t٧Z O?BH?H6kAjcGڧ\ K?B{A># S#Nmӏ=P;O?BH?># S#t٧Z O?BH?H># S#NӏLڧ|$wj~~ܩ}GArG&WBӏP>;O?BH?H># S#Wj~~ܩ}GArG(ɝڧ\ O?BH?H># S#NӏLڧ|$wj~~ܩ}GArG&WBӏP>;O?BH?H># S#+yG(ɝڧ|$wj~~ܩ}ɕ~P#NӏP>;O?BH?H>J?@^mӏP=r;O?BH?H6#3#TNӏP>;M?B~ژ}~P#Nmӏн6f~~۩}ɕ~P#t٧zvj~~ܩ}g+O?BH?H># S#Nӏt/>v|ڝ&/Ǔ.zLS{<ӟ>z /?ӏ~[ن./~yS-_N,N?N DZO\?~x]?2zNݐ_vC~?jcnoˏCj3I^\TFS79ҏ}FS79}=rnF/ +}Y&W_rB_՗ܩЗere w*e\}ȝ +}Y$}Y//T22;L N,/S// +}Y&W_rB_՗ܩЗere w*e|eP/@T22;L N,?eR/@T22;L N,Ͼ*e\}ȝ +}Y&W_rB_՗ܩЗEٗB,/S/@T22;H>^^Зere w*e\}ȝe{e6&ezeP/@Ծ/ܣ/1/T"zy}Y^2$B_՗کЗere wjߗEneڙЗejev*e\}ȝe{e6&ezeP/@T22;L N,Ͼ*e\}ȝ +}Y&W_rB_՗ܩЗEٗB,/S/@T22;DԗJ,/S/@T22;H>^^Зere w*e\}ȝ +}Y&W_rB_g_ L N,/S/@T"zyB_՗ܩЗere w*e\}ȝ +}Y$}Y//T22;L N,/S// +}Y&W_rB_՗ܩЗere w*e|eP,s Ƅ,S/S/@Ծ/z3/T22;2@mL"zwB_՗ܩ}_G_jcB_՗۩ЗEٗB=2PL N,/S/KO}Y+T22;L N,/Sv_4ZW _B` c>/~ޫSRv O.ͨLS + ^^^8erN w*N\ȝ +S&WrB8ܩ8E8B)+pS!p +@T2';H>^^8erN w*N\ȝ +S&WrBg L N)+pS!p +@TS+L N)+pS!p +@T" zyB8ܩ8erN w*N\ȝ +S$S//T2';L N)+pS!p3p +S&WrB8ܩ}GjcBgԻ L N='PL N)j8e5pG"NX +S&WrSVԫ SVnB8ܩ}GjcBgԻ L N)+pS!p +@T" zyB8ܩ8erN w*N\ȝ +S$S//T2';L N)+pS!pJOS+T2';L N)+pS!p3p +S&WrB8ܩ8erN w*N|NP!p +@T2';L N)*N\ȝ +S&WrB8ܩ8E8B)+pS!p +@T2';H>^^8erN w*N\ȝ +S&WrBg 2@mL2'p;L NȭW;L N)+pS)s Ƅ)Rw*N\ȝN{N6&NZ +S$S//>p#p1!p +T2';D8J)+pS!p +@T2';zNpP4=oyӂ9?d/?׭if>C!uȝ +O&WrBɕܩDB'+S!|@T|22;2LN'̧*d>\ȝ +O&WrBɕܩDB'+S!|@T|22;2H>3^^dre> w*d>\ȝ +O&WrBȟ2V^dre> w*d>\ȝ +O&WrBg 2LN'+S!|@T|"|zyBɕܩdre> w*d>\ȝ +O$O//T|22;2LN3=2P2H=3]dre> wjdژdje>v*d>|f>P'S?!|@T|22;|"2^L|22p;2LN3=2P2H=3]dre> w*d>\ȝ +O&WrBg 2LN'+S!|@T|"|zyBɕܩdre> w*d>\ȝ +O"|ZyBɕܩdre> w*d>\ȝ +O$O//T|22;2LN'+S!3 +O&WrBɕܩdre> w*d>|f>P!|@T|22;2LN'̧*d>\ȝ +O&WrBɕܩDB'+S!|@T|22;2H>3^^}擹GjcB擩۩dre> wjDne>ڙdje>v*d>\ȝg>{d>6&d>zf>P!|@>#1!|T|"|zyO OVnBɕܩ$̧W*d>\ȝ +O&WrBɕܩ4ߟOcW|ƱO?~_\+<]_^^%grE w*Də\Q2ȝ +Qr&W rBg L(N(9+JS!J䊒AT3d;H>^^%grE w*Də\Q2ȝ +Qr&W rBg L(N(9+JS!J䊒AT#{yB%ܩ%grE w*Də\Q2ȝ +Qr"[yB%ܩ%grE w*Də\Q2ȝ +Qr$Qr//T3d;L(N(9+JS!J3J +Qr&W rB%ܩ%grE w*Dɑ|FɽP!J䊒AT3d;3AmL#{wB%ܩ}G jcB%۩%G%BmLF H(9+JS!J䊒A>J܊{3!JԊT3d;3AmL#{wB%ܩ%grE w*Də\Q2ȝ +Qr$Qr//T3d;L(N(9+JS!J3J +Qr&W rB%ܩ%grE w*Dɉ)Jn +Qr&W rB%ܩ%grE w*Dɑ|FɽP!J䊒AT3d;L(N(9(*Də\Q2ȝ +Qr&W rB%ܩ%G%B(9+JS!J䊒AT3d;H>^^%grE w*Də\Q2ȝ +Qr&W rBg L(N(9+JS!J䊒AT#{yQrQ2 QrV nB%ܩ}%jgB%۩%grE wj%g%ژ%G%B(9+JS(9s(Ƅ(9S+JS!J3JGə{Dɠ6&DəZQ2 +Qr&W rBȟV^%grE w*Də\Q2ȝ +Qr&W rB$ߝn>Ӈpz%/פ߿dsөǃvW?/?OyO~LX>=@o7Obs&꦳ w*Lg3 w*LgtW*Lg3 w*Lg3 w*Lg3 w*Lg#Bl&tNl&tNl&tNl$^^0΂ܩ0΂ܩ0΂ܩ0s: \Y;\Y;f11a:tw*Lg3 wj?c: jct6Sk: nt6l//v:,?a:5Sa:5SltW;ZYp;\Y;f11a:tw*Lg3 w*Lg3 w*Lg3 w*Lg#Bl&tNl&tNl&tNl$^^0΂ܩ0΂ܩ0΂ܩ0MOV^0΂ܩ0΂ܩ0΂ܩ0s: \Y;\Y;\Y;|Ng{yt6k: rt6k: rt6k: rt6l//TfrMgATfrMgATfrMgATF9 +L,ȝ +L,ȝ +L,ȝ +H>Pa:5Sa:5Sa:5Sa:tj?c: jct6Sk: nt6k: rȭlv&Lg3v*Lg3 wj?c: jct6Rl.TfrMgA~:tƄltNl$^^t6s, L, +L,ȝ +D4m +L,ȝ +L,ȝ +L,ȝ߶>K>p[nzz|ƱǃOfws?7[4f(_yv^v~c7V~~+x+BoATʙ\XNoATʑ|~c^^32ȝ +Lu8ȝ +Lu8ȝ +Do +Lu8ȝ +Lu8ȝ +Lu8ȝ +H>ὼPaɵSaɵSaɵSa:*3 w*3 w*3 w*#\Bux&:Nux&:N{AmLXG݅ +Lu8ȝگ3XژZ۩s ]guDXgbATXgrA~΄ux:Nux&:N{AmLXG݅ +Lu8ȝ +Lu8ȝ +Lu8ȝ +H>ὼPaɵSaɵSaɵSa:*3 w*3 w*3 w*:W*3 w*3 w*3 w*#\Bux&:Nux&:Nux&:Nux$^^ZܩZܩZܩs \p;\p;\p;|{y:Nܩp?è6|=n~4 uC~]ژ\.g>N۩՜鏵qN}-?-&&37ǿ@bzNݐ/~4ʝ!_^~|m>/Q_Eq܅!?.}(wۿ]ژr;ğzN}-,zL?q䅺!_^@Q rΧcQ vNc_Oܩ,_Sq䅺!_~4ʝ!_qL&_Oܩ|zNݐ/-(wk;ҏ}&yn_~4ʝ!_~:NܩNgr w*ّ|ٽP! +AT3l;L N ; *ٙ\A6ȝ +Av&W rBdܩd' W*ٙ\A6ȝ +Av&W rBdܩdGdB ;+S! +AT3l;H>^^dgr w*ٙ\A6ȝ +Av&W rBg L N ;+S ;s Ƅ ;R w*ٙ\A6ȝٙ{٠6&ٙZA6 +Av$Av//6k D3lP;L Nȭ W;L N ;+S ;s Ƅ ;R w*ٙ\A6ȝ +Av&W rBdܩdGdB ;+S! +AT3l;H>^^dgr w*ٙ\A6ȝ +Av&W rBȟV^dgr w*ٙ\A6ȝ +Av&W rBg L N ;+S! +AT# {yBdܩdgr w*ٙ\A6ȝ +Av$Av//T3l;L N ;+S!Ȏ3 +Av&W rBdܩdgr w*ّ|ٽP! +AT3l;L N ; jdgdژdgjv*ٙ\A6ȝّ[Avv&ٙZA6 +Av&W rAvA6 AvAv.T3l;3AmL3lp;H>^^}G jcBd۩dgr w*ى)n +Av&W rBdܩdgr w*Mut{{ {G1e~ds:!~Ϗ[~Ro躾ϢhV +Vj*j_Qܩ}G@r@(ɝW\ BHԾ S + +N+L +W|T$wj_Qܩ}G@r@$@/Ծ S + +N+P>*;2*j_Qܩ}G@r@(ɝW\ BHԾ S + +N+L +W|T$wj_Qܩm ++L +܅W|T$wj[ 1 + T +N+L +U Gb_Qک}G@r@WzTvj_Qܩm ++L +܅W|T$wj_Qܩ}G@r@&WB+P>*;BHԾ S + y@(ɝW|T$wj_Qܩ}g+BHԾ S + +N+L +W|T$wj_Qܩ}G@r@&WB+P>*;BHԾ S + y@(ɝW|T$wj_Qܩ}UP + +N+P>*;BHԾ@^}G@r@(ɝW|T$wj_drU /Զk@jc@W|T$wj[dQڙ}G@n@(ɝV{Hm̾Ԫ]}G@r@^+RBԾ@^m ++P=*r;BHԾW|T$wj_Qܩ}G@r@+'ۑ"ԋ_^r'9N}k?WSSnm௯fkE1aƄ{bLGf-{1a5{Ƅ{d7y[3avƄ{dԽ7Y;lLX槑{g.LGf-{1a5oƄq{dֶ7y[3ajƄM{d֤7Y{lLX'9fo΄){d֒7vY3lLGfm{1a瀽5;YlLخGfM{1z$;Gؙ0YZfc{H<#W[^lLX'9Tolgw]<بGVM{1aOXkDG^-{1a5KGxl{G",bg=2kޛ [Ȭ)zo6& #v٘BOsޚ Ȭzo6&#٘0>ڞfc<1ykv&#V٘9̚fc<2koޛ k46̅ SȬyo6&#f٘02ژfc<1ρykv&#٘-̚fc°<2kWޛ .^~td~O߇sB_c<^]fq^v; g4ʝ!-?0|/?Gq܅!?.}(w?0a.Cj3I^\qNݐ//|J?qNݐ/ot?4ʝZ~]}(I^.>Nܩ,?0SzNݐvǾFS7VLZ@T%ϻZzy]-\ȝ +wdrrBժܩPEB`-XSY@T25;ʵH>ӵ^^erk w*k\ȝ + [&WrBŖȟ2V^erl w*l\1ȝ +9[&WrBg L N-+lS!mj@T"zyBUܩиerEn w*dn\ȝ +[$[//T2j7;zL N퓷=7PH=]ero wj߾eژejov*p|&pP.S? +@TH2Z8;"r^L28p;L(N=8PʸH=Ӹ]erq w*q\ȝ +\&W#rB%g& BLRNV.+S!@T("LzyB4Úܩers w*s\ȝ +\"ZyB@UЁܩerEt w*dt\ȝ +%]$)]//T2j:;zLN.S3 +a]&WYrB[ׁܩeru w*v|&vP!@T2B;;RLN.ܮ*w\ȝ +]&WtrBv݁ܩPEB.S +@TH2<;*H>3^^}GjcB۩erx wj_En%yڙejUyv*ty\aȝڧy{y6&yzyP!*@Ծ#1!T("Lzy^ ^VnBܩP%lW*{\ȝ +^&WrBܩP5]w~y;-?^'|5)xL Oo=S;۽˧_?}_ϟZ/k9vc!9ű/7'չZ7z~^(wFO[ cv&4Z # + c&Wr c # c c.Th3F;o3hAmLh3Fp;H>^^0fr5 w*4\ #ȝ + c&WrBg LN1aSajATh3F;H>^^0fr5 w*4\ #ȝ + c&WrBg LN1aSajATh#l{yBØ0ܩ0fr5 w*4\ #ȝ + c"j[yBØ0ܩ0fr5 w*4\ #ȝ + c$ c//Th3F;LN1aSaa + c&WrBØ0ܩ0fr5 w*4|6PajATh3F;o3hAmLh#l{wBØ0ܩ}ØGjcBØ0۩0F0BmL6 H1aSajAԾaj{3ajTh3F;o3hAmLh#l{wBØ0ܩ0fr5 w*4\ #ȝ + c$ c//Th3F;LN1aSaa + c&WrBØ0ܩ0fr5 w*4al + c&WrBØ0ܩ0fr5 w*4|6PajATh3F;LN1φ*4\ #ȝ + c&WrBØ0ܩ0F0B1aSajATh3F;H>^^0fr5 w*4\ #ȝ + c&WrBg LN1aSajATh#l{y c # cVnBØ0ܩ}0jgBØ0۩0fr5 wj0f0ژ0F0B1aS1sƄ1SaSaa7{46&4Z # + c&WrBØȟV^0fr5 w*4\ #ȝ + c&Wr>톱 q?  |O~ӟ~k/?h/ + F4uz"tS翛fyȝ +SH>NPa5uSa5uSSS'PNzNzw)krS=N6&L2Nv*L":BmNz:#NXS'P;N\S';:EnMz3aꔩ5uSa5uSSS'PNzNzw)kr)kr)kr)ϩS//T:erM@T:erM@T:erM@T:E9u +SLȝ +SLȝ +SLȝ +SD4uj +SLȝ +SLȝ +SLȝ +SH>NPa5uSa5uSa5uSaԩ*L2N w*L2N w*L2N w*L":BS& NS& NS& NS$S^^0u:ܩ0u:ܩ0u:ܩ0us N\S';N\S';N\S';N|NzyS=N6&L2Nv*L2N wj?uܚ:jg)Skn)krS=N6&L":BS& NN{L@mL:ejMT:E9uO2:ژ0uԚ:۩0u:ܩ0uJOSV^0u:ܩ᰽i1紜gzNP7wzNi;uC~S~0/?NgFS7=~w|&ynȏ763aTs +Wdr] r•\,ȝ +l&W' rB'g' :LNNN6SN6sNƄN6RNw*t\,ȝw{t6&tZ, +l$l//Զk' Dd3:YP;:LNN;ȭNW;:LNNN6SN6sNƄN6RNw*t\,ȝ +l&W' rB'ɂܩFBN6SdATd3:Y;:H>;^^fru w*t\,ȝ +l&W' rB'ȟ:V^fru w*t\,ȝ +l&W' rB'g' :LNNN6SdATd#d{yB'ɂܩfru w*t\,ȝ +l$l//Td3:Y;:LNNN6S䳓 +l&W' rB'ɂܩfru w*t|vPdATd3:Y;:LNNN6Njfɂژfjuv*t\,ȝw[lv&tZ, +l&W' rl, ll.Td3:Y;d3dAmLd3:Yp;:H>;^^}'G' jcB'ɂ۩fru w*tm +l&W' r~dO۝lݝQ ɎS'?~M7]~z"߶ٹm|uYxn rZ7ϵn//TXfruATXfruATXfruATX&n+TXfruATXfruATXfruATXF +kL.ȝ +kL.ȝ +kL.ȝ +kH>׺PaɵSaɵSaɵSaZ*u3ֺ w*u3ֺ wjc jcZ7Rϵn.TXfruA~ZƄnZNn$k^^Z7Sk]$Z7k jZ7k rkȭnv&u3ֺv*u3ֺ wjc jcZ7Rϵn.TXfruATXfruATXfruATXF +kL.ȝ +kL.ȝ +kL.ȝ +kH>׺PaɵSaɵSaɵSaȟֺRaɵSaɵSaɵSaZ*u3ֺ w*u3ֺ w*u3ֺ w*u#\Bn&ZNn&ZNn&ZNn$k^^ZܩZܩZܩ֍s ֺ\k];ֺ\k];ֺ\k];ֺ|u{yZ7k rZ7k rZ7k rZ7ϵn//~ZƄnZNn&ZN׺[k^LXfjuTXfruA~ZƄnk]ZܩZ7s. kL. +kH>׺Pnk]PֺZk]p;ֺ\k];ֺi+ֺ\k];Zmߝ/۵˧Ƴߞz?+.N˿$?csv張̝wn +wndrݹr\wnܩpF&ם w*ܹP΍L;7@Ts# ;sN;72S΍H> +wndrݹr\wnܩpF&ם w*ܹP΍L;7@Ts#S@T"zyBŗUܩPerU| w*T|\ȝ +_"ZyBŗUܩPerU| w*T|\ȝ +_$_//T2*>;*LN/S +_&WrBŗUܩPerU| w*T||V|P@T2*>;2@mL"zwBŗUܩ}ŗGjcBŗU۩PEYBm+LV| H/S@Ծܪz3ԪT2*>;2@mL"zwBŗUܩPerU| w*T|\ȝ +_$_//T2*>;*LN/S +_&WrBŗUܩPerU| w*T|k +_&WrBŗUܩPerU| w*T||V|P@T2*>;*LN/ϊ*T|\ȝ +_&WrBŗUܩPEYB/S@T2*>;*H>+^^PerU| w*T|\ȝ +_&WrBg *LN/S@T"zy_ _VnBŗUܩ}UjgBŗU۩PerU| wj_eQژPEYB/S/sƄ/SSW|{T|6&T|Z +_&WrBŗȟ*V^PerU| w*U|M\wU|e9L}Ǘ_~y-7Z]/t*ӹϷ]z#Sۂ/s P= +>r;/B(HԶ kGjc_VB P> +>;-BZژ}GGn_&WB P> +>;/B(HԾ #S/y_(ɝ|||$wj_Qܩ}GGr_&WB P> +>;/B(HԾ #S/y_(ɝ|||$wj_Qܩ}UP/N P> +>;/B(HԾ|||$wj_Qܩ}GGr_&WB P> +>;/B(HԾ #S/y_(ɝ|||$wj_Qܩ}UP/N P> +>;-BZژ}UP/Nm н|6f_Q۩}UP/T|$H P< +>R;/B(HԶܣ3/TN P> +>;-BZژ}UP/N P> +>;/B(HԾ*@^}GGr_(ɝ|||$wj_er| /Ծ #S/N P> +>;/",zy_(ɝ|||$wj_Qܩ}UP/N P> +>;/B(HԾ*@^}GGr_(ɝ|||$wj_er| /Ծ #S/N P> +>;/2 +>j_Qܩ}GGr_(ɝ|\ /B(HԾ #S/N L|{-Hm̾ գ#S/Nm = +>P;/B(Ծ #Sۂ/t|Z /B(HԶ kGjc_|\ -BZژ}GGn_(ɝ|||R/NovYAo{<ۿ ֎/?vΖEuKoܬB{ 翇fy>ȝ + H>PaɵSaɵSaɵSaB*,3 w*,3 w*,3 w*,#\B~&BN~&BN~&BN~"ZJ~&BN~&BN~&BN~$ ^^ZܩZܩZܩЏs \ };\ };\ };|.{yB?krB?kr =6&,#\B~&BN{,AmLXgj-TXG.3G",3v*,3 wjЏZjgB?SknB?kr =6&,#\B~&BN~&BN~&BN~$ ^^ZܩZܩZܩЏs \ };\ };\ };i+\ };\ };\ };|.{yB?krB?krB?krB?υ~//TXgr-ATXgr-ATXgr-ATXG + L>ȝ + L>ȝ + L>ȝ + H>PaɵSaɵSaɵSaB*,3 w*,3 w*,3 w*,#\B{,AmLXgj-TXgr-A~΄~BN~&BN{,AmLXG݅ + L>ȝ/3XژZ۩Џs _g1aSaɵSaȟRaɵS. f_V3iwZ> iw_G;]1z;^^eruF w*tF\ȝwF{tF6&tFzvFP3@Ծ3ܣ313T"zyQ^;#$BgکeruF wjEnuFڙejuFv*tF\ȝwF{tF6&tFzvFP3@T2:#;:LN(Ψ*tF\ȝ +Q&WgrBgܩEB(3S3@T2:#;:DJ(3S3@T2:#;:H>;^^eruF w*tF\ȝ +Q&WgrBggg :LN(3S3@T"zyBgܩeruF w*tF\ȝ +Q$Q//T2:#;:LN(3S33 +Q&WgrBgܩeruF w*tF|vFP(sƄ(S3S3@Ծ3z33T2:#;2@mL"zwBgܩ}gGgjcBg۩EB;=:#P:LN(3S3JOQ+T2:#;kgtd&37\vm>ٖ/"?2=_Rp{EVt?ofE7>~؇ew<8/it;uC~]ϏE2zN}-?wS7&37˛9bzNݐ/~4ʝ!_^cژ ~߯z&wnGɕ ܩ}6G6jcB6 ۩ F Bl0+S!AT3A;H>^^ fre w*d\ ȝ +`&W6rB6ɕ ܩ F Bl0+S!AT3A;H>^^ fre w*d\ fWh( ĈT!,6 +OUw=ZoպWsd[{d7ܻ|W6B6X+ +`+W!pe*dlp_lϲ𢡄 vA}W6B6U+|eV!pe*dlp_lÕ  V3B6U;\ +`+W! f|[lÕ  vA}5g= ж `El0*dlp_`gO6mB6U+|eVc6ѧlE;X о +`+Ws6X3훐 vA}W6l'6! f{[lÕ  vA}W6B6X+ +`+W!pe*dlp_lW6mW6B6U;\ +`eW!pe*dlp_lÕ  V3B6U;\ +`+W! f|[lÕ  vA}W6B6X+ +`+W!pe*dlp_lW6mW6B6U;\ +`l0*dlp_lÕ  vA} +_`Ʒ՜ vd@&dll_lÕ 9leM;Z ؾ +`+Ws6ٓ m VB6՜ vd@&dll_lW6m5g= ж `G+W!pe*d ~ F|_lÕ  $<xylx}JWBU*|}V!p5}*T}p_UU2BU(:\ +_We|[ԯPur?}WBW+ +_Wp*p_Wm5'= ж `G+W!pjn+[1`}rVBJvT@&tlov@}5ׁ=y ж `GW f|[͙`gO'mB)JU;\ +`W!p5jv5oClp;o_r6x6;A{lll_lÕ 9leM;Z ؾ +`+Ws6ٓ m VB6՜ vd@&dll_lW6mW6B6U;\ +`l0*dlp_lÕ  vA}W6B6X+ +`+W!pe*dlp_lW6mW6B6U;\ +`l0*dlp_lÕ  vA}?#B6U;\ +`+W! f|[lÕ  vA}W6B6X+ +`+W!pe*dlp_lW6mW6B6՜ vd@&dlo vA}5g= ж `G+W! f|[`GA/!`e@*dlp_`e+̴oB6U;\ ྚΞlhۄlW6mW6B6U;\ +`l0*dlp_lÕ  vA} +_`ƷU;\ +`+W!pe*d ~ F|_lÕ  vA}W6B6X+ +`+W!pe*dlp_lW6mW6B6U;\ +`l0*dlp_lÕ  vA} +_`ƷU;\ +`+W!pe*do vA}W6B6U+|eVs6ٓ m vA}W6l f7!he`*dlp_`gO6mB6X+ +`+Ws6ٓ m vA} +_`Ʒ՜ vd@&dll_lÕ  6Y6}W6~?ng!lቲyLw׻׻nk[ݠ9箼O2u9}W?~6e{[~瀶M:Zؾ +\~.*s~p_~u9} +_\ƷU:\ +\Wps*s~p_~W?mW?B?U:\ +\~.*s~p_~u9} +_\ƷU:\ +\Wps*s ~E|_~u9}W?B?W᫟ +\Wps*s~p_~W?mW?B?U:\ +\~.*s~p_~瀶M*zsVpsj:{9mV?B?W᫟>s_.B?U:\ྚV?i߄~ρu9}5s=ж \E~.*s~p_~u9} +_\ƷU:\ +\Wps*sou9}W?B?U +\Wps*s~p_~W?mW?B?U:\ +\~.*s~p_~u9} +_\ƷU:\ +\Wps*sou9}W?B?U*|sVps*s~p_~U2~6hs`*s~p_\e˴oB?U:\ྚΞ~hۄ~W?mW?~6hs`*so瀶M:Zؾ +\Wk~.*s~p_~.i;[-s绿^z?wj7ks7s?Wϑ+ϕ#6s?Vs?W+S?Gm~#Ws?Vs?W+ϕsj:\jJ|9}5s%>ᾚ~p_\O?G~~ħ#Ws?W+u9ϕsjJ|9}5s%>ᾚW?~p_\O?G~ħ#Ws?W᫟~p_\O?G~ħ#Ws?Vs?W+ϕsj:\jJ|9}5s%>ᾚ~p_\|[\O?G~ħ#Wc?Wڧ~h\G{[\O?G~OѶ~l_\|[M\I\\ O?G~ħ#Wc?훹+ϕsjJmhs`o+ϕsjJ|9}5s~m5s%>ᾚ~p_\O?G~~ħ#Ws?W+U2~ħ#Ws?W+u9ϕsjJ|9}5s%>ᾚW?~p_\O?G~ħ#Ws?Vs?W+ϕsj:\jJ|9}5s%>ᾚ~p_\|[\O?G~ħ#Ws?Wpso+S?Gm~#Ws?WϕsdjJ|9}5s}父u9ϕsjJm+u9ϕ#6s?Wϑ+U2~ħ#W~.iBs_.B?U:\ྚV?i߄~ρu9}5s=ж \E~.*s~p_~u9} +_\ƷU:\ +\Wps*sou9}W?B?U +\Wps*s~p_~W?mW?B?U:\ +\~.*s~p_~u9} +_\ƷU:\ +\Wps*sou9}W?B?U*|sVps*s~p_~U2~6hs`*s~p_\e˴oB?U:\ྚΞ~hۄ~W?mW?~6hs`*so瀶M:Zؾ +\Wk~.*s~p_=ByL|f|g|?<zc_f>=1~uЧ~lp_`e+̴oB6U;\ ྚΞlhۄlW6mW6l'6!he`*do vA}W6B6U+|eV!pe*dlp_lÕ  vA} +_`ƷU;\ +`+W!pe*do vA}W6B6U+|eV!pe*dlp_lÕ  6Y6}W6B6U;\ +`l0*dlp_lÕ  vA} +_`ƷU;\ +`+W!pe*do vA}W6l'6! f{[lÕ 9M;Z ؾ +`l0j; |`+W!pej+[`}V6B6՜ vd@&dlo vA}W6B6U+|eV!pe*dlp_lÕ  V3B6U;\ +`+W!ll0*dlp_lÕ  vA} +_`ƷU;\ +`+W!pe*do vA}W6B6U+|eV!pe*dlp_lÕ  V3B6U;\ +`+W! f|[lÕ  vA}W6B6X+Ξlhۄl vA}5gl0Ӿ `G+W!pej;{Am^`U;\ ྚΞlhۄl V3l'6!he`*dlp_lϲ𢡄 vA}K6t; I޷g/r*dל l_z6x^!:)W!pej+[`}V6B6՜ vd@&dlo vA}5g= ж `G+W! f|[lÕ  vA}W6B6X+ +`+W!pe*dlp_lÕ  V3B6U;\ +`+W! f|[lÕ  vA}W6B6X+ +`+W!pe*dlp_lϲ𢡄 vA}W6B6U+|eV!pe*dlp_lÕ  V3B6U;\ +`+W! f|[lÕ  vA}5g= ж `El0*dlp_`gO6mB6U+|eVc6ѧlE;X о +`+Ws6X3훐 vA}W6l'6! f{[lÕ  vA}W6B6X+ +`+W!pe*dlp_lW6mW6B6U;\ +`eW!pe*dlp_lÕ  V3B6U;\ +`+W! f|[lÕ  vA}W6B6X+ +`+W!pe*dlp_lW6mW6B6U;\ +`l0*dlp_lÕ  vA} +_`Ʒ՜ vd@&dll_lÕ 9leM;Z ؾ +`+Ws6ٓ m VB6՜ vd@&dll_lW6m5g= ж `G+W!pe*d ~ F|_lÕ _`H=|~;yn߿>j5rqg{5t+|x{}dy⽮{woWJwzm~*;{jImjɎV- B-%\KVjL&ԒZl_ZUK%M%+zՒVpՒj%;{jImjɎV- B-Y᫖ +dWpՒ*ԒZp_ZW-mjW- B-%U%;\$ +dWUKf|[ZUKPKvjI}jW- B-Y᫖ +dWpՒ*ԒZp_ZW-mjW- B-%U%;\$ +dՒWpՒ*ԒZp_ZUKPKV%3B-%U%;\$ +dWUKf|[ZUKPKvjI}jW- B-Y᫖ +dWpՒj%;{jImjɊ^dU%;\$ྚkΞZhۄZUKPKV%3ZO$PKvjI}jW- ZUKf7hՒ`*ԒZp_͵dgO- mB-Yѫ +dWpՒ*ԒZp_ZW-mjW- B-%U%;\$ +dZ2*ԒZp_ZUKPKvjI}j?%#B-%U%;\$ +dWUKf|[ZUKPKvjI}jW- B-Y᫖ +dWpՒ*ԒZp_ZW-mjW- B-%U%;\$ +dZ2*ԒZp_ZUKPKvjI}j +_dƷU%;\$ +dWpՒ*ԒjɌo%M%;Z$ؾ +dWs-Y٪%3PKvjI}jW- Z6UKf{[ZUK%M%;Z$ؾ +dZ2j%;{jImjɎV- B-%U% +dWԒkɐ"~{-vrN<Y|x6;?d_z6x^!:)W!pej+[`}V6B6՜ vd@&dlo vA}5g= ж `G+W! f|[lÕ  vA}W6B6X+ +`+W!pe*dlp_lÕ  V3B6U;\ +`+W! f|[lÕ  vA}W6B6X+ +`+W!pe*dlp_lϲ𢡄 vA}W6B6U+|eV!pe*dlp_lÕ  V3B6U;\ +`+W! f|[lÕ  vA}5g= ж `El0*dlp_`gO6mB6U+|eVc6ѧlE;X о +`+Ws6X3훐 vA}W6l'6! f{[lÕ  vA}W6B6X+ +`+W!pe*dlp_lW6mW6B6U;\ +`eW!pe*dlp_lÕ  V3B6U;\ +`+W! f|[lÕ  vA}W6B6X+ +`+W!pe*dlp_lW6mW6B6U;\ +`l0*dlp_lÕ  vA} +_`Ʒ՜ vd@&dll_lÕ 9leM;Z ؾ +`+Ws6ٓ m VB6՜ vd@&dll_lW6m5g= ж `G+W!pe*d ~ F|_lÕ  $Oo?z=|~{rYxt_٫czf|c_>؇o +н)|x{}3LÙJgʀ*)wΔU8Sp)p\L9*)wΔU8Sp)p:SWLΔ#™rLp_3י2 +g3e}Δ+|)g|[3י2 +g3e}Δ;\gʀ*)W:S +g3e}Δ;\gʀ*)wΔU8SumΔ;\gʀ*)wΔ|s m™rE3lop:SWrgϙ2ж g3e}Δ+|)g|[g}:SrΔ;Xg@*)wΔ|\:Sδo™rGLl_3י2ྚϔ;{ΔM8SumΔ;\gʀ*)wΔU8Sp)p\L9*)wΔU8Sp)p:SWLיrƷU8Sp)p:SWLu ™r)G|_3י2 +g3e}Δ;\gʀ*)W:S +g3e}Δ;\gʀ*)wΔU8SumΔ;\gʀ*)wΔU8Sp)p\L9*)wΔU8Sp)p:SWLיrƷU8Sp)p:SWLu ™r3op:SWLu ™rLp_3 +_gVrgϙ2ж g3e}Δ;\gʀj>Sl)g7Lu ™rLp_gʝ=g@&)W:S +g3e}5)w)mp:SWLיrƷ|s m™rGLl_3י2 +g ~v}Δ;\gʀ3gMҙtïWo\P79=u|O?㿔\ +woo7?d}@zQg> `AQMJ֧d63*Yeۄd,&F^??ʾ ?ls+Y??˶ ?3l+Y??˶ ?Ood,&JϲmOd,&F^L}™JV7eۄjd6!d3YMey2QMe*YLmJJV(eۄLUd6)D&&2>&˶ uL%+ɲmBS*cl4bT,&1 &˶ 9L%ɲmB +oBS`lPT",&$0&˶ K#%ʾ K%}ɲmBR +_l9{^{K%¾ K%wɲmڥ'v".%ö K#%ʾ#=5.Y؃¥Rd6!od-Yܶ4Җ"-%ö UK%+jɲm椥h",r&,%˶ %K%+dɲmBRɪXlа4JXT,&+x%˶ J%\ɲmB+[oBRjVlPT,&*Z%˶ J!*I6!Tdu*YMT*YJmJVeۄ>We߄8զd6Ld)YMR*YUJmF^IJ}JVeۄd6!Ed(YMPye(QMP*Y Jm +JVeۄUd6=i䕞D7!ᾚjp_N+|[NOCz'!WsSS)x՜t:\AᾚWp_aOOC涧'!Ws{VsS9)|>jN}*|>WsS9))~D?j~:\j.J|}5?%>ᾚp_ P|[PODħ"Ws T9p@o*ITAjJm9 hA`o*Ƀ"6s#T 9puBo*鯩9*ᩅ CjL:{!}3WC%=پárp_Pi!m3C~m5D%> ᾚ#p_QOHD攨暨''"WsPTS)*՜u"\EjJ|"}5E%>ᾚ +_Q\dFjJ|J#}5F%>ᾚsWop_QOuD'<"WszjVs}T9@*) DHjΐ:\j.J|R$}5H%>5ᾚ{ p_IRI|[UROD0ħL"WsT'9OpIoP*I)TJjJ|B%}5JV m5J}ʕ,KdjnJ|%}5fK=о˥tl_ROD~OѶV+p_!SiJ&m3L%=1پsW>%MDfJz&}5wM%>aᾚӦ +_mS\7M*Nr9N?߿\ɼ~G~xp?~4N\@ïmz?F۴8\\y\d|[\\t }WsBsj.Uh.*|5Vp5*4p_\\Tj.2Bsj.Uh.:\ +EW\d|[\\t }WsBsgEUh.:\ +EWp5*4o\t }WsBsj.Uh.*|5Vp5*4p_\\Tj.2Bsj.Uh.:\ྚΞhۄ梢WsmWs梳6h5`*4oSs"4h_\l5Mh.:Zؾ +EWss\m\Tj.Bsj.Uh.:\ +EW\d|[\\t }WsBsQ᫹ +EWp5*4p_Ϛ\t }WsBsj.Uh.*|5Vp5*4p_\\Tj.2Bsj.Uh.:\ +EW\d|[\\t }WsBsQ᫹ +EWp5*4p_WsmWsBsj.Uh.:\ +E"jn.:{ mVsBsj.\TL&4l_\i.Mh.*z5Vp5jn.:{ mVsBsQ᫹Ξhۄ梣\\t }?k."Bsj.Uj.BynT\~qg{qqXo}@+>hۄth} ؾ +R]2t>p_tp} +ኋU*|EV!.pE*Ep_u"} +_qQƷU:\q +qQ+.W!.pE*E⢌ou"}W\B\ኋU*|EV!.pE*Ep_5Y\}W\B\ኋU:\q +qQ(*Ep_u"} +_qQƷU:\q +qQ+.W!.pE*E⢌ou"}W\渨'.6!.e{[9.쉋M:Zqؾ +qQ(j:|qQ+.W!.pEj*[qQ}⢎V\B\ኋuE@&Elou"}W\B\ኋU*|EV!.pE*Ep_U2B\ኋU:\q +qQ+.W!.j(*Ep_u"} +_qQƷU:\q +qQ+.W!.pE*E⢌ou"}W\B\ኋU*|EV!.pE*Ep_U2B\ኋU:\q +qQ+.W!.e|[u"}W\B\T+.Ξhۄu"}5E(Ӿ qQG+.W!.pEj:{"m⢊^qQU:\qྚΞhۄU2渨'.6!.hE`*Ep_⢈u"}⢐|{\z'o A\4_?ĺq<=[y.ܪBsuRBS +OWp>*>p_§Wm +WB*|U(|:\ +OWUd|[§UPt +} +WBS +OWp>*>p_§Wm +WB*|U(|:\ +O>Wp>*>p_§UPT*|2B*|U(|:\ +OWUd|[§UPt +} +WBS +OWp>j.|:{ +m +^OU(|:\ྚ Ξhۄ§UPT*|2§OPt +} +W§Ud7h>`*>p_ͅOgOmBSѫ +OWp>*>p_§Wm +WB*|U(|:\ +O'*>p_§UPt +} +?+|"B*|U(|:\ +OWUd|[§UPt +} +WBS +OWp>*>p_§Wm +WB*|U(|:\ +O'*>p_§UPt +} + +_OƷU(|:\ +OWp>*> +o)|M(|:Zؾ +OWsS*|2Pt +} +W§6Ud{[§U)|M(|:Zؾ +O'j.|:{ +m +VB*|U(| +OW'd3~:oSv >~vrO?>kO?O[zzkM5J*\wUFp]p^=*\wUFp]pFW5zƷUFp]pFWu5z]G|_k5: +kt};\*\WF +kt};\*\wUFum;\*\wUFp]p^=*\wUFp]hۄk^VukΞktm;Z`*\WF;t"\wсUFp]ui߄k5:ؾ +kt}5_w\mp^=*\wUFp]pFW5zƷUFp]pFWu5zkopFWu5zp_k?F +kt};\*\wUFum;\*\wUFp]p^=*\wUFp]pFW5zƷUFp]pFWu5zkopFWu5zp_k +_Vu5zp_k5: +3kΞktm;Z`*\w|^ٺFϴo5zGl_k5:ྚ;{сMFum;\jFF6u5zkohۄk5:ؾ +kt}=*\wUF~~ĆWFǎO?~E"[K<n?ݽ~G7]ޕϛ8~Εϛ8=Mz{8OO#7qt|ж }>g|d|[p} +}>*|G +}>*|G3>Ug|oPUu*}WUBU᪪U*|UUVpUU*TU +p_UUPUU2BU᪪U:\U +UUWj**TU +p_UUPUu*} +_UUƷU:\U +UUWpUU*TUoPUu*}WUBU᪪U*|UUVpUU*TU +p_UUgOUmBUUѫ +UUWsUSUmPUu*} +_UUƷXUurVUBU᪪\UUL&TU +l_UU쩪M*zUUVpUU*TU +p_UUPUU2BU᪪U:\U +UUWUUe|[UUPUu*}WUBUgUUU:\U +UUWpUU*TUoPUu*}WUBU᪪U*|UUVpUU*TU +p_UUPUU2BU᪪U:\U +UUWUUe|[UUPUu*}WUBUU᫪ +UUWpUU*TU +p_WUm5WU=Uж UUGWpUUj*[UU}VUBU᪪\UuTU@&TUloPUu*}5WU=Uж UUGWUUe|[UUgOUmBUѪU:\U +UUUUWpUU*UU!Ur9UU?߿\~kxqjcw~Qտ?߽=qyF^N㛮S7 W^(g|[S)< +Sx}N;\*W: +Sx}N;\*wNU8u +mN;\*wNU8pp +gWu +)|p_S)< +N3)|p_S)< +Sx}N+|g|[S)< +Sx}N;\*W: +Sx}N;\j>96)|U8phۄS)<ؾ +N3S>|Sx}N;\j>lg7u +)|p_ͧ=@&W: +Sx}N;\*wNU8u +mN;\*wNU8pp +_>*wNU8pp +:WN#)|p_S)< +Sx}N+|g|[S)< +Sx}N;\*W: +Sx}N;\*wNU8u +mN;\*wNU8pp +_>*wNU8pp +:W)|ƷU8pp +:Wu +)|SohۄS)<ؾ +Sx}5WN3p +:Wu +SΞSxmN+zg{[S)<ྚO;{NၶM8hƒp +_>j>96u +)|p_S?; +Sx}NY?>=<)}~߿-c +L_r>n}qO|us }{*|d|[q +=}5tmpS'*t{|smqOGl_ +_=VqOG{\qо +=}5T{2p:WḧuΞm{*zd{[q +=}{:\=*T: +=}{:\=*t{U8uܓm{:\=*t{U8ppg=WḧuqOp_q +={2qOp_q +=}{*|d|[q +=}{:\=*T: +=}{:\=*t{U8uܓm{:\=*t{U8ppS'*t{U8pp:WḧqOƷ|smqOGl_qྚ{*[=M8hp:WqOgqж ={qOp_===@&t{U8uܓm5tmp:WḧuqOD|_qqO㞇+~ynO|[=zxq]vu:yN;<\yt擇ΞmN:Z'`*y9y6䡣uCo䡳hۄؾ +'}N!*=LmސJ0ɶy]>vx譓a}|?_ydۼ!=||O"amvw}r>=Lmސ}zdۼ.˯< oސ=l7f6!έdYM(s+YanmF^Un}JVeۄ f6ƭdŸYMHqyQMp+Ynm"JVeۄf6!mUF7dYMo+YmmJVteۄ䶑Wqe߄޶f6!dYM(m+Ymm2F^m}JVbeۄf6dŵYMHkyQVdٽ\rf6dY͜6j"6ö !m%Ͳm抶'"$ +&|6˶ +v6PV &d(fnf+x^.B0[e3lPVb,&|V&yۄNf6D# 7X˧}?|)ෛ/5^ ٛon%_֟-u~ۯLn6u{'u;ȶ+YY|smNvm3_w\luݞe< fnn6u{'u;ȶ+YY|smNvm3_w\lu{|smNvm3_w\luݞe< fnn6u{'u;ȶ+YY|smNvm3_w\luݞe< fnn6u{\핫 fnn6u{\;fnd]g7u{~nb/_w\kdی<ٵ|޹smNvm3^w|^nϰoNvm3_w\ld핬,fnn6u{'u;ȶ;yA|^ɺnϲoNvm3_w\ld퍼ۣmNvm3_w\ld핬,fnn6u{'u;ȶ;yA|^ɺnϲoNvm3_w\ld핬,fnn6u{'u;ȶ;yA|^ɺnϲoNvm3_w\ld핬,fnn6u{'u;ȶ;yA|^ɺnϲo>]{;w|sm +bnܹn6u{'u;ȶ;tbn\]g7u{'u;ȶ;tbnܹn6u{%=˾;tbnܹn6u{'u;ȶy]Gy< &\con?un_I;#E^nωy|I=vO̯M816y%<˾O;yNA|bsbmNsm3WN̳ļd'<' f>1916y%<˾O;yNA|bsbmNsm37:1O;yNA|bsbmNsm3WN̳ļd'<' f>1916y%<˾O;yNA|bsbmNsm3WN̳ļd'<' f<1Ӊ9ļruba'<' f<1Ӊ9ļs`'敬,f:1ܯ'^Nspm3w򜘃lļ{O+W'|bsbmNsm3w򜘃lļube'<' f>1916y'ω9ȶO+Y'Y|bsbmNsm3w򜘃lļ׉y|bsbmNsm3w򜘃lļube'<' f>1916y'ω9ȶO+Y'Y|bsbmNsm3w򜘃lļube'<' f>1916y'ω9ȶO+Y'Y|bsbmNsm3w򜘃lļube'<' f>1916y'ω9ȶO+Y'Yxbsp/yΉ9O;yNAxb^sb][';'f>1916yN\'敫 f>1916yN\';'f>1dg7yN\';'f>1916y#(oļdۄp'wOχ|b>O__W]ӗӧϿ?g:>z|{|}}<_c :yG6N'ȶp*Yg8Y|sm3N3m3t |S:ɰo3N3m3t |ӹsm3JN}3t3P/Np:yp@xSs][g8;g8f>96Np\g83 f>96N'ȶp:yp@|S:ɲo3N3m3tl dg83,f>96N'ȶp:yp@| 'f>96N'ȶp:yp@|S:ɲo3N3m3tl dg83,f>96N'ȶp:yp@|S:ɲo3N3m3tl dg83,f>96N'ȶp:yp@|S:ɲo3N3m3tl dg83,f< s `g8> endobj +255 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [142.4658 686.3098 177.6635 695.6148] +/Subtype /Link +/A << /S /GoTo /D (9) >> +>> endobj +259 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [507.5368 686.3098 515.0685 695.6148] +/Subtype /Link +/A << /S /GoTo /D (9) >> +>> endobj +260 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 670.265 233.2847 682.2748] +/Subtype /Link +/A << /S /GoTo /D (14) >> +>> endobj +261 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [507.4472 670.265 515.0685 682.2748] +/Subtype /Link +/A << /S /GoTo /D (14) >> +>> endobj +262 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 659.3061 273.3038 671.3159] +/Subtype /Link +/A << /S /GoTo /D (21) >> +>> endobj +263 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [507.4472 659.3061 515.0685 671.3159] +/Subtype /Link +/A << /S /GoTo /D (21) >> +>> endobj +264 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [142.4658 648.6511 202.2811 657.9561] +/Subtype /Link +/A << /S /GoTo /D (PART1) >> +>> endobj +265 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.0947 648.6511 515.0685 657.9561] +/Subtype /Link +/A << /S /GoTo /D (PART1) >> +>> endobj +266 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 635.2014 290.0607 644.3122] +/Subtype /Link +/A << /S /GoTo /D (47) >> +>> endobj +267 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.0947 635.2014 515.0685 644.3122] +/Subtype /Link +/A << /S /GoTo /D (47) >> +>> endobj +268 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 621.6473 330.0212 633.6571] +/Subtype /Link +/A << /S /GoTo /D (50) >> +>> endobj +269 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.0947 621.6473 515.0685 633.6571] +/Subtype /Link +/A << /S /GoTo /D (50) >> +>> endobj +270 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 610.6884 307.7048 622.6982] +/Subtype /Link +/A << /S /GoTo /D (118) >> +>> endobj +271 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.0947 610.6884 515.0685 622.6982] +/Subtype /Link +/A << /S /GoTo /D (118) >> +>> endobj +272 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 599.7295 270.4644 611.7393] +/Subtype /Link +/A << /S /GoTo /D (139) >> +>> endobj +273 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.0947 599.7295 515.0685 611.7393] +/Subtype /Link +/A << /S /GoTo /D (139) >> +>> endobj +274 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 588.7706 260.3027 600.7804] +/Subtype /Link +/A << /S /GoTo /D (148) >> +>> endobj +275 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.0947 588.7706 515.0685 600.7804] +/Subtype /Link +/A << /S /GoTo /D (148) >> +>> endobj +276 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [142.4658 578.1156 236.8614 587.4206] +/Subtype /Link +/A << /S /GoTo /D (199) >> +>> endobj +277 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.0947 578.1156 515.0685 587.4206] +/Subtype /Link +/A << /S /GoTo /D (199) >> +>> endobj +278 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 562.0707 244.7213 574.0806] +/Subtype /Link +/A << /S /GoTo /D (205) >> +>> endobj +279 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.0947 562.0707 515.0685 574.0806] +/Subtype /Link +/A << /S /GoTo /D (205) >> +>> endobj +280 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 551.1118 250.938 563.1216] +/Subtype /Link +/A << /S /GoTo /D (213) >> +>> endobj +281 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.0947 551.1118 515.0685 563.1216] +/Subtype /Link +/A << /S /GoTo /D (213) >> +>> endobj +282 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 540.1529 205.3594 552.1627] +/Subtype /Link +/A << /S /GoTo /D (224) >> +>> endobj +283 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.0947 540.1529 515.0685 552.1627] +/Subtype /Link +/A << /S /GoTo /D (224) >> +>> endobj +284 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [142.4658 527.9885 295.8098 538.8029] +/Subtype /Link +/A << /S /GoTo /D (CH3-LINK) >> +>> endobj +285 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.0947 527.9885 515.0685 538.8029] +/Subtype /Link +/A << /S /GoTo /D (CH3-LINK) >> +>> endobj +286 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 516.0483 279.5205 525.4629] +/Subtype /Link +/A << /S /GoTo /D (239) >> +>> endobj +287 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.0947 516.0483 515.0685 525.4629] +/Subtype /Link +/A << /S /GoTo /D (239) >> +>> endobj +288 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 505.0894 200.6175 514.2001] +/Subtype /Link +/A << /S /GoTo /D (256) >> +>> endobj +289 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.0947 505.0894 515.0685 514.2001] +/Subtype /Link +/A << /S /GoTo /D (256) >> +>> endobj +290 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [190.2864 494.1305 269.9867 503.5451] +/Subtype /Link +/A << /S /GoTo /D (264) >> +>> endobj +291 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.0947 494.1305 515.0685 503.5451] +/Subtype /Link +/A << /S /GoTo /D (264) >> +>> endobj +292 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [190.2864 483.1716 273.5732 492.2823] +/Subtype /Link +/A << /S /GoTo /D (277) >> +>> endobj +293 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.0947 483.1716 515.0685 492.2823] +/Subtype /Link +/A << /S /GoTo /D (277) >> +>> endobj +294 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 469.6174 230.2459 481.6273] +/Subtype /Link +/A << /S /GoTo /D (286) >> +>> endobj +295 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.0947 469.6174 515.0685 481.6273] +/Subtype /Link +/A << /S /GoTo /D (286) >> +>> endobj +296 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [142.4658 456.5265 224.9758 468.2674] +/Subtype /Link +/A << /S /GoTo /D (CH4-LINK) >> +>> endobj +297 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.0947 456.5265 515.0685 468.2674] +/Subtype /Link +/A << /S /GoTo /D (CH4-LINK) >> +>> endobj +298 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [142.4658 443.1766 327.65 454.9175] +/Subtype /Link +/A << /S /GoTo /D (CH5-LINK) >> +>> endobj +299 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 443.1766 515.0685 454.9175] +/Subtype /Link +/A << /S /GoTo /D (CH5-LINK) >> +>> endobj +300 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [142.4658 429.8267 208.6472 441.3434] +/Subtype /Link +/A << /S /GoTo /D (370) >> +>> endobj +301 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 429.8267 515.0685 441.3434] +/Subtype /Link +/A << /S /GoTo /D (370) >> +>> endobj +302 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [142.4658 416.4767 288.3677 428.2176] +/Subtype /Link +/A << /S /GoTo /D (418) >> +>> endobj +303 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 416.4767 515.0685 428.2176] +/Subtype /Link +/A << /S /GoTo /D (418) >> +>> endobj +304 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 405.463 224.7266 414.8776] +/Subtype /Link +/A << /S /GoTo /D (423) >> +>> endobj +305 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 405.463 515.0685 414.8776] +/Subtype /Link +/A << /S /GoTo /D (423) >> +>> endobj +306 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 394.5041 224.4973 403.9187] +/Subtype /Link +/A << /S /GoTo /D (429) >> +>> endobj +307 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 394.5041 515.0685 403.9187] +/Subtype /Link +/A << /S /GoTo /D (429) >> +>> endobj +308 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 380.95 267.4662 392.9598] +/Subtype /Link +/A << /S /GoTo /D (448) >> +>> endobj +309 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 380.95 515.0685 392.9598] +/Subtype /Link +/A << /S /GoTo /D (448) >> +>> endobj +310 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [142.4658 367.8591 242.1511 379.6] +/Subtype /Link +/A << /S /GoTo /D (453) >> +>> endobj +311 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 367.8591 515.0685 379.6] +/Subtype /Link +/A << /S /GoTo /D (453) >> +>> endobj +312 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 355.6788 222.1668 365.9561] +/Subtype /Link +/A << /S /GoTo /D (TUTOR1-SRC) >> +>> endobj +316 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 355.6788 515.0685 365.9561] +/Subtype /Link +/A << /S /GoTo /D (TUTOR1-SRC) >> +>> endobj +317 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 344.7199 222.1668 354.9972] +/Subtype /Link +/A << /S /GoTo /D (TUTOR2-SRC) >> +>> endobj +318 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 344.7199 515.0685 354.9972] +/Subtype /Link +/A << /S /GoTo /D (TUTOR2-SRC) >> +>> endobj +319 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 333.761 216.787 344.0383] +/Subtype /Link +/A << /S /GoTo /D (C64-1-SRC) >> +>> endobj +320 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 333.761 515.0685 344.0383] +/Subtype /Link +/A << /S /GoTo /D (C64-1-SRC) >> +>> endobj +321 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 322.8021 222.1668 333.0794] +/Subtype /Link +/A << /S /GoTo /D (KERNAL-SRC) >> +>> endobj +322 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 322.8021 515.0685 333.0794] +/Subtype /Link +/A << /S /GoTo /D (KERNAL-SRC) >> +>> endobj +323 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 311.8431 222.1668 322.1205] +/Subtype /Link +/A << /S /GoTo /D (TUTOR3-SRC) >> +>> endobj +324 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 311.8431 515.0685 322.1205] +/Subtype /Link +/A << /S /GoTo /D (TUTOR3-SRC) >> +>> endobj +325 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 300.8842 227.5466 311.1616] +/Subtype /Link +/A << /S /GoTo /D (TUTOR4A-SRC) >> +>> endobj +326 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 300.8842 515.0685 311.1616] +/Subtype /Link +/A << /S /GoTo /D (TUTOR4A-SRC) >> +>> endobj +327 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 289.9253 227.5466 300.2027] +/Subtype /Link +/A << /S /GoTo /D (TUTOR4B-SRC) >> +>> endobj +328 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 289.9253 515.0685 300.2027] +/Subtype /Link +/A << /S /GoTo /D (TUTOR4B-SRC) >> +>> endobj +329 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 278.9664 227.5466 289.2438] +/Subtype /Link +/A << /S /GoTo /D (TUTOR4C-SRC) >> +>> endobj +330 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 278.9664 515.0685 289.2438] +/Subtype /Link +/A << /S /GoTo /D (TUTOR4C-SRC) >> +>> endobj +331 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 268.0075 222.1668 278.2848] +/Subtype /Link +/A << /S /GoTo /D (TUTOR5-SRC) >> +>> endobj +332 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 268.0075 515.0685 278.2848] +/Subtype /Link +/A << /S /GoTo /D (TUTOR5-SRC) >> +>> endobj +333 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 257.0486 222.1668 267.3259] +/Subtype /Link +/A << /S /GoTo /D (TUTOR6-SRC) >> +>> endobj +334 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 257.0486 515.0685 267.3259] +/Subtype /Link +/A << /S /GoTo /D (TUTOR6-SRC) >> +>> endobj +335 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 246.0897 216.787 256.367] +/Subtype /Link +/A << /S /GoTo /D (C64-2-SRC) >> +>> endobj +336 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 246.0897 515.0685 256.367] +/Subtype /Link +/A << /S /GoTo /D (C64-2-SRC) >> +>> endobj +337 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 235.1308 222.1668 245.4081] +/Subtype /Link +/A << /S /GoTo /D (TUTOR7-SRC) >> +>> endobj +338 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 235.1308 515.0685 245.4081] +/Subtype /Link +/A << /S /GoTo /D (TUTOR7-SRC) >> +>> endobj +339 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [142.4658 220.6113 282.2606 232.3521] +/Subtype /Link +/A << /S /GoTo /D (REF-LINK) >> +>> endobj +340 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 220.6113 515.0685 232.3521] +/Subtype /Link +/A << /S /GoTo /D (REF-LINK) >> +>> endobj +341 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 209.5975 247.7704 219.0121] +/Subtype /Link +/A << /S /GoTo /D (506) >> +>> endobj +342 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 209.5975 515.0685 219.0121] +/Subtype /Link +/A << /S /GoTo /D (506) >> +>> endobj +343 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 196.0434 240.5971 207.7494] +/Subtype /Link +/A << /S /GoTo /D (571) >> +>> endobj +344 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 196.0434 515.0685 207.7494] +/Subtype /Link +/A << /S /GoTo /D (571) >> +>> endobj +345 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [190.2864 185.0845 257.6529 196.7905] +/Subtype /Link +/A << /S /GoTo /D (574) >> +>> endobj +346 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 185.0845 515.0685 196.7905] +/Subtype /Link +/A << /S /GoTo /D (574) >> +>> endobj +347 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [190.2864 174.1256 242.7889 186.1354] +/Subtype /Link +/A << /S /GoTo /D (597) >> +>> endobj +348 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 174.1256 515.0685 186.1354] +/Subtype /Link +/A << /S /GoTo /D (597) >> +>> endobj +349 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [190.2864 163.1667 245.1897 174.8727] +/Subtype /Link +/A << /S /GoTo /D (610) >> +>> endobj +350 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 163.1667 515.0685 174.8727] +/Subtype /Link +/A << /S /GoTo /D (610) >> +>> endobj +351 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 152.2078 271.3713 164.2176] +/Subtype /Link +/A << /S /GoTo /D (619) >> +>> endobj +352 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 152.2078 515.0685 164.2176] +/Subtype /Link +/A << /S /GoTo /D (619) >> +>> endobj +353 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 141.2489 237.3892 153.2587] +/Subtype /Link +/A << /S /GoTo /D (646) >> +>> endobj +354 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 141.2489 515.0685 153.2587] +/Subtype /Link +/A << /S /GoTo /D (646) >> +>> endobj +355 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [190.2864 130.29 269.3192 142.2998] +/Subtype /Link +/A << /S /GoTo /D (649) >> +>> endobj +356 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 130.29 515.0685 142.2998] +/Subtype /Link +/A << /S /GoTo /D (649) >> +>> endobj +357 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [190.2864 119.3311 327.5899 131.3409] +/Subtype /Link +/A << /S /GoTo /D (658) >> +>> endobj +358 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 119.3311 515.0685 131.3409] +/Subtype /Link +/A << /S /GoTo /D (658) >> +>> endobj +359 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [190.2864 108.3722 340.7402 120.382] +/Subtype /Link +/A << /S /GoTo /D (682) >> +>> endobj +360 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 108.3722 515.0685 120.382] +/Subtype /Link +/A << /S /GoTo /D (682) >> +>> endobj +361 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 100.0085 200.6175 109.1192] +/Subtype /Link +/A << /S /GoTo /D (691) >> +>> endobj +362 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 100.0085 515.0685 109.1192] +/Subtype /Link +/A << /S /GoTo /D (691) >> +>> endobj +363 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [190.2864 86.4543 265.5635 98.4642] +/Subtype /Link +/A << /S /GoTo /D (695) >> +>> endobj +364 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 86.4543 515.0685 98.4642] +/Subtype /Link +/A << /S /GoTo /D (695) >> +>> endobj +365 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [190.2864 75.4954 267.018 87.5053] +/Subtype /Link +/A << /S /GoTo /D (701) >> +>> endobj +366 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 75.4954 515.0685 87.5053] +/Subtype /Link +/A << /S /GoTo /D (701) >> +>> endobj +367 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [190.2864 64.5365 324.2627 76.2425] +/Subtype /Link +/A << /S /GoTo /D (709) >> +>> endobj +368 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 64.5365 515.0685 76.2425] +/Subtype /Link +/A << /S /GoTo /D (709) >> +>> endobj +254 0 obj << +/D [252 0 R /XYZ 95.6414 729.2652 null] +>> endobj +6 0 obj << +/D [252 0 R /XYZ 217.5089 705.6731 null] +>> endobj +251 0 obj << +/Font << /F23 242 0 R /F35 258 0 R /F28 250 0 R /F36 315 0 R /F37 371 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +428 0 obj << +/Length 1911 +/Filter /FlateDecode +>> +stream +xڍnEཟbMw}]DC,b秜$]}J,H󍫂=P'OSϮN5vKW헫02)47^1z9]/:uB[;r"tsëN钻n|^uw_qo~z{}o헚߽׫o~ѻ|<}HkQ&bAԆ>K([^>> +^\=X񑆸lU֛i5~ךZ<9 q٪ഝc4evrLV|!.[xЊ8>*8m8c4evb +N  +Nf\-9U ފ4eW9CZt*rwbGڲuӷΜZVFҢSi3GΜЖ +N<󑆸l]jB3~>*8-bG?⤇|'z]7cZ,S*}CS>_%~||OWS/>=| |@ңJ,:zwvb,@ZVh4eg}V|!.[:[񑆸lUpzVci5^KYiO +]u윆lUpNي4eӻdoHC\FI:vN#|jUpc4evb +NB_ɭHC\NuFԪɵc4eWꖬc4ewj6}!.[;J 6ܪഝ\iVHC\*8mh汏4eجc4§V턞HC\*8m'x9 q٪ci5l9UgzֱsUՊ4ewWaHC\񃶓uFԪഝc4evl;!.[>!-:rՄb9=*8W9 q٪Յn:]i<󑆶l]9Pa9U3Y;g!}Z7# i٪ഗi5^h/8h٩ȴ9Ж +Nu朆lUpZiCZtJ:sN#{jUr֙sU-w+> +] +^\G# q٪ݥci5h;9[iO +NIY񑆸lUpQc4evb5}!.[*    \@|j_@q@l_@q@l_@q@l_@    \@|j_@q@l_@q@l_@q@l_@ #Ȗ #  #Ȗ # =. -:6ruau{aEHe†_. >n/ @_@i@l_@q@l_@{|n_@q@lrqSˏ.\0篷'ׇ?'Cbendstream +endobj +427 0 obj << +/Type /Page +/Contents 428 0 R +/Resources 426 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 243 0 R +/Annots [ 430 0 R 431 0 R 432 0 R 433 0 R ] +>> endobj +430 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [190.2864 702.5455 421.6065 714.5553] +/Subtype /Link +/A << /S /GoTo /D (719) >> +>> endobj +431 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 702.5455 515.0685 714.5553] +/Subtype /Link +/A << /S /GoTo /D (719) >> +>> endobj +432 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 694.1818 260.452 703.5964] +/Subtype /Link +/A << /S /GoTo /D (731) >> +>> endobj +433 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 694.1818 515.0685 703.5964] +/Subtype /Link +/A << /S /GoTo /D (731) >> +>> endobj +429 0 obj << +/D [427 0 R /XYZ 95.6414 729.2652 null] +>> endobj +426 0 obj << +/Font << /F28 250 0 R /F37 371 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +438 0 obj << +/Length 2203 +/Filter /FlateDecode +>> +stream +xڅˎ_ѷUp { /lll3RZe޾S*UdXo*2$L6yTQFl^]k8(aBݧayoL@1-xr=+ so$_D%y/(IQmQGQRύ~V8N۰eea)ht"(*Z^AۅvN\?斀=/5 +ڇ_I1aE}SP䉡f4j=`kc'.JAן^vnMCT߫Z|D"~Q^g_hԣp<,LSjY5j'Fr3 +EC,^Q'؋D~c' U]ޯ-1 ŀN@AUӎğV9Z 0rdI]126'Bor-z]Yh‚TBqA;gCκݩcJ9ӾJrU5;`ޒY #%ʮreǗ IZ o_ "is ^&^e@-X:B:ir`*\ g ^4uWޅTIDMUwBCtM cA`~q.Hf`T]:]ヷAN !~L+sOjj%&D#L H'&Vͼk`fH;YIPI^&]Qo:3PVBѠAТZUs/%%8Cf洸LuV }[PHesrʼnInl#` ,ƒsc[H~澻״]TffoɩZUdMy%4j+ӂOp(2k2)\*"Hr5'ά >PBh9a5j$Qpb5Kr[٩ g5~Ԭ}8pXU3ry"4(E$qˎ.^0-֦0hHF@RDt&?ىX'_Π)+"EV:0r!pULpO'~(!_Ԛ)EuYI?4o{[cU'͂rK3V1-PBnHҥP#o% +޿[`S޻L#QI8ںb&pZ=C@-rq5wl6Y%qPfPfCz9g$4skT/Gh0 m#L-w2ҮMc4RV?u CZÓBOxRN`Z'j6{#h&&=Eb8q^Er?JPH&Oe5@cVF14a +.$0ӭ u81s#Z`> d~Uv%GKt+n0gy!s+:SF +}h5!9_Y@&*~DxEk8Mư H?Ӕ OKi +25;Sʚ%~sMލ +?ry2~߾ιK^߆:)R0BZVW'p xBMs -x,qJ'3TtK__C>b0)4M[3G:j~ӶĀ.",b፲z 9ع#,S?]UrŒza鱕腳3ȃ}eaYf7q Xʓٽ 'шrD]mvu'46l5FQLmKC?K$uyt~O-&MӜr}-bwh `g]d~M܃AV=4mGY[k8x!4w+p8/J$sy&I׭,|^iP~raR=?7endstream +endobj +437 0 obj << +/Type /Page +/Contents 438 0 R +/Resources 436 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 243 0 R +>> endobj +439 0 obj << +/D [437 0 R /XYZ 95.6414 729.2652 null] +>> endobj +372 0 obj << +/D [437 0 R /XYZ 95.6414 716.3138 null] +>> endobj +10 0 obj << +/D [437 0 R /XYZ 148.341 705.6731 null] +>> endobj +440 0 obj << +/D [437 0 R /XYZ 95.6414 693.2249 null] +>> endobj +441 0 obj << +/D [437 0 R /XYZ 95.6414 641.7808 null] +>> endobj +442 0 obj << +/D [437 0 R /XYZ 95.6414 592.9638 null] +>> endobj +373 0 obj << +/D [437 0 R /XYZ 95.6414 571.046 null] +>> endobj +14 0 obj << +/D [437 0 R /XYZ 185.9961 539.3608 null] +>> endobj +443 0 obj << +/D [437 0 R /XYZ 95.6414 529.9859 null] +>> endobj +444 0 obj << +/D [437 0 R /XYZ 200.9184 499.8539 null] +>> endobj +445 0 obj << +/D [437 0 R /XYZ 295.0594 499.8539 null] +>> endobj +446 0 obj << +/D [437 0 R /XYZ 188.4194 488.895 null] +>> endobj +374 0 obj << +/D [437 0 R /XYZ 95.6414 470.1454 null] +>> endobj +18 0 obj << +/D [437 0 R /XYZ 245.0166 438.4432 null] +>> endobj +447 0 obj << +/D [437 0 R /XYZ 95.6414 428.8628 null] +>> endobj +448 0 obj << +/D [437 0 R /XYZ 143.462 398.9364 null] +>> endobj +449 0 obj << +/D [437 0 R /XYZ 190.3158 387.9775 null] +>> endobj +450 0 obj << +/D [437 0 R /XYZ 95.6414 369.2278 null] +>> endobj +451 0 obj << +/D [437 0 R /XYZ 447.8526 339.1605 null] +>> endobj +452 0 obj << +/D [437 0 R /XYZ 407.69 328.2016 null] +>> endobj +453 0 obj << +/D [437 0 R /XYZ 95.6414 309.452 null] +>> endobj +454 0 obj << +/D [437 0 R /XYZ 293.0165 290.3436 null] +>> endobj +455 0 obj << +/D [437 0 R /XYZ 95.6414 271.594 null] +>> endobj +456 0 obj << +/D [437 0 R /XYZ 194.7867 252.4856 null] +>> endobj +457 0 obj << +/D [437 0 R /XYZ 300.6508 241.5267 null] +>> endobj +436 0 obj << +/Font << /F23 242 0 R /F28 250 0 R /F37 371 0 R /F36 315 0 R /F35 258 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +460 0 obj << +/Length 147 +/Filter /FlateDecode +>> +stream +x}0 |v'uV$@bbȆPi Ot!ӽ#pR($0pBa0BvIYm Sy<Rȗcwx4ǩ?7B]Qi>H;BoU_?endstream +endobj +459 0 obj << +/Type /Page +/Contents 460 0 R +/Resources 458 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 243 0 R +>> endobj +461 0 obj << +/D [459 0 R /XYZ 95.6414 729.2652 null] +>> endobj +458 0 obj << +/Font << /F37 371 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +464 0 obj << +/Length 2335 +/Filter /FlateDecode +>> +stream +xZ?X$6Hk\PAzl83d[/)#rHǙ!}b៘)fTL+>7Wx<1 +>&F;[y_(pga/D2mZ2]nS$Vqoah +dBIeRzʬu_,/tmh*r>r.&z)][Yc.6˩g]EqK1v7YG)iW\I=l6u\[#+`хLjTi|NqWET(vCbjE>^ݲ\rD~L15L\hOM#&P#)h֤ b1x_ȀEDfyFn05||'*% ::cUu٪~U'ĘXYE Ԣ"ǫ4oNڋ, s LgELuX)S{Wu&, {%q28D(:o1i\m3gJ q_~zSA.nX0C(pE~ȅtsHKo1_UK`3齀,qUɤV!x8mU LhRMơ{l0kjE]c]1@NNHGF$:"ۀGlϱ#êsB9H]JkƟRbJ*N\gmJϨ}D{-2T +`\n;mM +Αk~x4 |6 Yb8\BN5 +mC7"}FN @A iiVƘ "d_5{*^4GrT1үd~andaS`nRpF@ӄt~*iZ[;u]]a98ՔN)x)iBk({P>SV6W@߷ga:{݀t=^K^تJZ9@S]).А isbI=g=f G! sz4ԫ'q+~Gz'T,ÿ0ber]=kqtfûŤ#է< S%tf3:8IWfn~pߟ|ckg2QthpS  #jo%˫w$]rj)9ʗ$_P>堶}A*{@'`W/_m(=nncB2Z׉:YY]W2߇'\HaF e> y6Lᑑ +~ vgX <^BAQJנ;aW^$09tkf9bElvdh)qd7;$FΊ8`j$PCDz!WVph]\fN,Gθd > endobj +375 0 obj << +/D [463 0 R /XYZ 95.6414 716.3138 null] +>> endobj +22 0 obj << +/D [463 0 R /XYZ 246.4182 705.6731 null] +>> endobj +465 0 obj << +/D [463 0 R /XYZ 95.6414 690.3878 null] +>> endobj +466 0 obj << +/D [463 0 R /XYZ 379.766 682.4482 null] +>> endobj +467 0 obj << +/D [463 0 R /XYZ 319.2112 671.4893 null] +>> endobj +468 0 obj << +/D [463 0 R /XYZ 95.6414 663.9815 null] +>> endobj +469 0 obj << +/D [463 0 R /XYZ 153.4247 638.6495 null] +>> endobj +470 0 obj << +/D [463 0 R /XYZ 95.6414 635.8401 null] +>> endobj +471 0 obj << +/D [463 0 R /XYZ 153.4247 622.7092 null] +>> endobj +472 0 obj << +/D [463 0 R /XYZ 95.6414 619.8998 null] +>> endobj +473 0 obj << +/D [463 0 R /XYZ 153.4247 606.769 null] +>> endobj +474 0 obj << +/D [463 0 R /XYZ 95.6414 603.9596 null] +>> endobj +475 0 obj << +/D [463 0 R /XYZ 153.4247 590.8288 null] +>> endobj +376 0 obj << +/D [463 0 R /XYZ 100.6227 574.8886 null] +>> endobj +26 0 obj << +/D [463 0 R /XYZ 267.9037 540.3939 null] +>> endobj +476 0 obj << +/D [463 0 R /XYZ 95.6414 533.5981 null] +>> endobj +377 0 obj << +/D [463 0 R /XYZ 95.6414 494.7053 null] +>> endobj +30 0 obj << +/D [463 0 R /XYZ 325.7313 461.3942 null] +>> endobj +477 0 obj << +/D [463 0 R /XYZ 95.6414 451.8137 null] +>> endobj +478 0 obj << +/D [463 0 R /XYZ 330.4098 443.8051 null] +>> endobj +479 0 obj << +/D [463 0 R /XYZ 262.384 432.8462 null] +>> endobj +480 0 obj << +/D [463 0 R /XYZ 162.1119 421.8873 null] +>> endobj +481 0 obj << +/D [463 0 R /XYZ 95.6414 414.0966 null] +>> endobj +482 0 obj << +/D [463 0 R /XYZ 162.7329 405.9471 null] +>> endobj +483 0 obj << +/D [463 0 R /XYZ 95.6414 365.2796 null] +>> endobj +484 0 obj << +/D [463 0 R /XYZ 95.6414 311.4814 null] +>> endobj +485 0 obj << +/D [463 0 R /XYZ 95.6414 284.6021 null] +>> endobj +486 0 obj << +/D [463 0 R /XYZ 159.7709 273.6432 null] +>> endobj +490 0 obj << +/D [463 0 R /XYZ 95.6414 260.8712 null] +>> endobj +491 0 obj << +/D [463 0 R /XYZ 95.6414 233.9919 null] +>> endobj +492 0 obj << +/D [463 0 R /XYZ 95.6414 211.86 null] +>> endobj +493 0 obj << +/D [463 0 R /XYZ 95.6414 173.6583 null] +>> endobj +494 0 obj << +/D [463 0 R /XYZ 95.6414 173.6583 null] +>> endobj +462 0 obj << +/Font << /F23 242 0 R /F28 250 0 R /F36 315 0 R /F44 489 0 R /F35 258 0 R /F37 371 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +498 0 obj << +/Length 2702 +/Filter /FlateDecode +>> +stream +xZYJwk{AE"ŵ%GmpHYZmrEpDg~bX!ЋXLF\l7|'B뻛?YŋwdI(]cf:ܮdy3Dش?}{nX0XZHpX ŔNSǟ"oo8Si.™HSߨX7op d*鿘NZ1bY zH<SsBL`hGn՛+ +*0ZV}z3^W\ l?n#deo怐Dz'A h=JB~:bN"J&4'Eg\N2jC_?vfI$}QJcPa7rB{_\DS0Kg1feH}uMƚrjH3]KԝPET}Oׯ޿{;癳4LR;Ν/9GLV$Am=|!SB%đXaXnu_+PDǶަ20D]t&:]G'_/,̐$3ZHt">?p.oo}t}s,2 Mge)XqR t*]V&f4UQ&1:6|- n8i港_3Xu3!(>8O.{wgnmv*jg[sv.&A_Aj"O}eMAʸ.[NVۻIG"jyCd[7n.txY1"UaWђsf#h=Q'=M.!ja#*h= +Lr% |fvx)Y"FՕ"n%O +Mݻ /˜MȬ,.4(:|cK &۹O-ՔG֦lٜ@ސn3֖EVNsAۢ{_kՖάHv@1"v=ZcN%{EbgZFqA' ~!}jwh1*e VP z3{5PS[OI}T*(}>aTO㍕xgY4G;0r,p3ZSsdG糧PQӧEL/@E~N0+N`:Mx肁/0CD@ȶs)'k$0[I/QR!daoY$р{Blm;벬VAY5c>RLyMC'FgI4i"xBABmkkx+1uN \' N;4SlEPO{|Hu̸ϝґԕc꥞?3Ψ1wRzJ:LH8|9@kB*, 7fIrG+f$eJzn>5izW]~! t马}V>` 9u9fBNKGיAI[E3G=[g_'at"^Q[rN@ni?{}Ï +5mek*0N: Lu)>a:UPVA̞j@`|g[- +{a !S4įn[܊16uYWKǢz ;ɶ[cΓ:S8Іp%xd3,.^ +["TR lؚ[akN5 [Jr6-TΏ"p?VlE)f(|ylkqn(PqqTLK]z7373jfǀ֫"M0[!ZuGSP7)w]XN̤ I }Z#;! +t9-[jڽhYuI˓@&= 3x#:P\VW助P/z h6pJ߸OLi&'x΁$W]q |)NsI]z33jm"zގ`npPfT&T2_47х5}&Qz-DhϚyIAbnwoopg?M~v +Ŷ hLZ_X.i&ſEYWvendstream +endobj +497 0 obj << +/Type /Page +/Contents 498 0 R +/Resources 496 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 495 0 R +>> endobj +499 0 obj << +/D [497 0 R /XYZ 95.6414 648.1099 null] +>> endobj +500 0 obj << +/D [497 0 R /XYZ 95.6414 610.4313 null] +>> endobj +501 0 obj << +/D [497 0 R /XYZ 279.4522 591.3229 null] +>> endobj +502 0 obj << +/D [497 0 R /XYZ 162.3043 569.4051 null] +>> endobj +503 0 obj << +/D [497 0 R /XYZ 95.6414 545.6741 null] +>> endobj +504 0 obj << +/D [497 0 R /XYZ 95.6414 489.2058 null] +>> endobj +505 0 obj << +/D [497 0 R /XYZ 95.6414 443.5571 null] +>> endobj +506 0 obj << +/D [497 0 R /XYZ 95.6414 347.6368 null] +>> endobj +507 0 obj << +/D [497 0 R /XYZ 349.5073 336.6779 null] +>> endobj +508 0 obj << +/D [497 0 R /XYZ 95.6414 323.9058 null] +>> endobj +509 0 obj << +/D [497 0 R /XYZ 153.4247 295.831 null] +>> endobj +510 0 obj << +/D [497 0 R /XYZ 373.9014 295.831 null] +>> endobj +511 0 obj << +/D [497 0 R /XYZ 224.394 273.9132 null] +>> endobj +512 0 obj << +/D [497 0 R /XYZ 95.6414 260.1449 null] +>> endobj +513 0 obj << +/D [497 0 R /XYZ 153.4247 247.0141 null] +>> endobj +514 0 obj << +/D [497 0 R /XYZ 410.5161 236.0552 null] +>> endobj +515 0 obj << +/D [497 0 R /XYZ 197.0159 214.1374 null] +>> endobj +516 0 obj << +/D [497 0 R /XYZ 259.6848 203.1785 null] +>> endobj +517 0 obj << +/D [497 0 R /XYZ 95.6414 202.9643 null] +>> endobj +518 0 obj << +/D [497 0 R /XYZ 153.4247 187.2383 null] +>> endobj +519 0 obj << +/D [497 0 R /XYZ 95.6414 173.47 null] +>> endobj +520 0 obj << +/D [497 0 R /XYZ 153.4247 160.3391 null] +>> endobj +521 0 obj << +/D [497 0 R /XYZ 360.94 160.3391 null] +>> endobj +522 0 obj << +/D [497 0 R /XYZ 376.7792 149.3802 null] +>> endobj +523 0 obj << +/D [497 0 R /XYZ 95.6414 138.2072 null] +>> endobj +524 0 obj << +/D [497 0 R /XYZ 153.4247 122.4811 null] +>> endobj +378 0 obj << +/D [497 0 R /XYZ 95.6414 90.6007 null] +>> endobj +496 0 obj << +/Font << /F37 371 0 R /F23 242 0 R /F28 250 0 R /F36 315 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +527 0 obj << +/Length 2467 +/Filter /FlateDecode +>> +stream +xڭYKsW(B 0<37S;XUs$RG~}h$Jnb6@׍~PlF͒! g'tvs`gcw?}r$l\Pb&'*bjHoteG4`MnU{NjpbBB%b0 JҘq+ח]RjepP]^VzvZ6 \25˪ 9/f| FYl'ΝE[ᨮ6_2:sFI +XY?eƢFςgtq北ydR9;?Vnn rh{ +|1H&I{ -f$2c8U',<9­c,,1x(X\&<=w!ۺpM޹{ UK +F({d=Nd'ĘBv,Id}omoiUve$ el'N} bLa;$60Uo4Rߊu$ c=:"S)1&ޓ$. +3JP11񑯁X)DGBtNԐJ;DQw]<HR͓W>N)5ķC:E*DJ FT&3]cޖYrŖ<") -1%4pٜ,!Fd*8Ʊjҗ6zJ7Nߖu嫾6^!4bd %%l)""l(Ct]EJO?n-Vu]+'Eވ+\ +(ַٺ/LA5Ƒcv7"/UFB;4T*P@1Ed{3Y.Q sTcWke~?w=P9+^PZ6-U4E֟(ŴCD0.?q.z>Kyf(g1ꮺ; irl4 ~vHJ~۾r31u5E{1A, | +=-aMz[K,N_rz+|_% 3vʻ!%j +)Eֽm1EpE7!$7CVc"Z8d97zkEoԬqTMIM!oQU5R]i滬v[u<7L5EV4ؗ]^LIbz~gAt,1Ư%HuxoJ%V|w}w4ҔND! %8 ަ/ \-ql~ao I4i5;dti xf{s պm Muhޜ3Vm3mt)ǺͶU+91|7?~6JPdTUkA{H{UZ +ġ4j= +ICΓX4{ȊIa ZYP<wY +~O.Q]䪛+[%> +eg)5j +b aЎ†b8 +4ʥv#CYMTs# +nH.1) b{Mz)`+RpdN\f"GZb77uʏ阸4kvJfs Up`zn7>}v}Ӈ?|͇M֔*}mem]n.ᶮ[yk4t^hv`G@28C$n6L@rtDLp:>}Vႇl*!Q~5p qdTE + >ECMa.E(LyeXgx6/2C^*lشs-mkWM^(|.1l 9ih01s}a3p3Y6]BBH}´KdO٪;ŚhlSnlJ}V$ 2> -bEKt %7}r5DfOSIp鄖RAs:UXW +/fPLxb;g[Q 2smXFDEz|ėE*(+|ˊIc9'v=481wbI}}"KP!*­K(_M+ې͹;L}J DЯ?Bg)ĸ/( ^gK>^ɈR\bQ\Q vTh>$_Fșb3% U (pqnMa2j%7 ~ +T1Bnva]o%*XxN&%qe'/e+Qendstream +endobj +526 0 obj << +/Type /Page +/Contents 527 0 R +/Resources 525 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 495 0 R +/Annots [ 553 0 R ] +>> endobj +553 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [339.4146 235.3814 383.738 247.3913] +/Subtype /Link +/A << /S /GoTo /D (TUTOR1-FNAME) >> +>> endobj +34 0 obj << +/D [526 0 R /XYZ 296.0551 706.3512 null] +>> endobj +528 0 obj << +/D [526 0 R /XYZ 95.6414 696.9762 null] +>> endobj +529 0 obj << +/D [526 0 R /XYZ 415.0506 677.8032 null] +>> endobj +530 0 obj << +/D [526 0 R /XYZ 95.6414 668.3637 null] +>> endobj +531 0 obj << +/D [526 0 R /XYZ 153.4247 646.9539 null] +>> endobj +532 0 obj << +/D [526 0 R /XYZ 95.6414 644.1445 null] +>> endobj +533 0 obj << +/D [526 0 R /XYZ 153.4247 631.0137 null] +>> endobj +534 0 obj << +/D [526 0 R /XYZ 95.6414 628.2043 null] +>> endobj +535 0 obj << +/D [526 0 R /XYZ 153.4247 615.0735 null] +>> endobj +536 0 obj << +/D [526 0 R /XYZ 95.6414 612.2641 null] +>> endobj +537 0 obj << +/D [526 0 R /XYZ 153.4247 599.1332 null] +>> endobj +538 0 obj << +/D [526 0 R /XYZ 95.6414 596.3238 null] +>> endobj +539 0 obj << +/D [526 0 R /XYZ 153.4247 583.193 null] +>> endobj +540 0 obj << +/D [526 0 R /XYZ 95.6414 559.4621 null] +>> endobj +541 0 obj << +/D [526 0 R /XYZ 303.554 551.3126 null] +>> endobj +542 0 obj << +/D [526 0 R /XYZ 354.1796 551.3126 null] +>> endobj +543 0 obj << +/D [526 0 R /XYZ 160.7095 540.3537 null] +>> endobj +544 0 obj << +/D [526 0 R /XYZ 352.3458 529.3948 null] +>> endobj +545 0 obj << +/D [526 0 R /XYZ 300.6374 518.4359 null] +>> endobj +546 0 obj << +/D [526 0 R /XYZ 360.0899 518.4359 null] +>> endobj +379 0 obj << +/D [526 0 R /XYZ 95.6414 499.6862 null] +>> endobj +38 0 obj << +/D [526 0 R /XYZ 241.529 467.984 null] +>> endobj +547 0 obj << +/D [526 0 R /XYZ 95.6414 458.4036 null] +>> endobj +548 0 obj << +/D [526 0 R /XYZ 449.3519 450.395 null] +>> endobj +549 0 obj << +/D [526 0 R /XYZ 497.9328 428.4772 null] +>> endobj +550 0 obj << +/D [526 0 R /XYZ 95.6414 412.3228 null] +>> endobj +551 0 obj << +/D [526 0 R /XYZ 95.6414 355.9293 null] +>> endobj +552 0 obj << +/D [526 0 R /XYZ 95.6414 250.146 null] +>> endobj +380 0 obj << +/D [526 0 R /XYZ 95.6414 231.3964 null] +>> endobj +42 0 obj << +/D [526 0 R /XYZ 228.8791 199.6942 null] +>> endobj +554 0 obj << +/D [526 0 R /XYZ 95.6414 190.1138 null] +>> endobj +555 0 obj << +/D [526 0 R /XYZ 468.6926 171.1462 null] +>> endobj +556 0 obj << +/D [526 0 R /XYZ 461.1674 160.1873 null] +>> endobj +557 0 obj << +/D [526 0 R /XYZ 283.3219 149.2284 null] +>> endobj +558 0 obj << +/D [526 0 R /XYZ 95.6414 135.4601 null] +>> endobj +559 0 obj << +/D [526 0 R /XYZ 95.6414 99.8537 null] +>> endobj +560 0 obj << +/D [526 0 R /XYZ 95.6414 99.8537 null] +>> endobj +525 0 obj << +/Font << /F37 371 0 R /F23 242 0 R /F28 250 0 R /F36 315 0 R /F35 258 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +564 0 obj << +/Length 1682 +/Filter /FlateDecode +>> +stream +xYKs6W34cx[j;i2NNzHrH"Y>⨿ Hb[i3 @Ň X ds-zڂZjhw~9'S1J=pcN(˴ɶ\0ͥ =fٮƀs[<ǁxy%u;nfpڅ^$Ju+sMN,WQZE &4 +#O^zltKe44QRfs=C߀APr6@xh8G;*m#rЯfŌӨ,FFiO1Ysra8r8&gs鞐zĸt]o8 B&QyVTQ eE^C/ 3c^kN :ҋҫq@7A:B.ҳh1MXI3tC <ي7gYdͯptr$-[Wy];ЅK|~!80 Y#Jٜ:]guZjFp 訁@FhPWH4ɏR盫 IZ}C +,$/W'r@β}BN jdZT&N^HV"X L~~qqyҸmΘ#S8i`[PQ̶C)ǵb}+G"u)w K@zzȰ6"Z)͗抻Nk@Vl>lQ2+&@ֺ&h6ɔ%CzNߒ*od0'~* (A;kgdNZpi4t"[J>/>d3Kp,|"v>o4M Dvendstream +endobj +563 0 obj << +/Type /Page +/Contents 564 0 R +/Resources 562 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 495 0 R +>> endobj +565 0 obj << +/D [563 0 R /XYZ 95.6414 503.5526 null] +>> endobj +566 0 obj << +/D [563 0 R /XYZ 95.6414 471.8515 null] +>> endobj +567 0 obj << +/D [563 0 R /XYZ 95.6414 277.3011 null] +>> endobj +568 0 obj << +/D [563 0 R /XYZ 257.5312 266.3422 null] +>> endobj +569 0 obj << +/D [563 0 R /XYZ 481.7933 266.3422 null] +>> endobj +570 0 obj << +/D [563 0 R /XYZ 300.5933 255.3833 null] +>> endobj +571 0 obj << +/D [563 0 R /XYZ 397.5072 255.3833 null] +>> endobj +572 0 obj << +/D [563 0 R /XYZ 177.5038 244.4244 null] +>> endobj +573 0 obj << +/D [563 0 R /XYZ 217.3343 244.4244 null] +>> endobj +562 0 obj << +/Font << /F37 371 0 R /F23 242 0 R /F36 315 0 R /F28 250 0 R /F44 489 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +576 0 obj << +/Length 2192 +/Filter /FlateDecode +>> +stream +xڍk@=DӶ]E[$VΏο/)R3])H/)ڄE2Y%\BfTݛps& +a .2Lx iśu<6?yNE ?nGU_36j +M)Lf8E!l2)-Gj@@CB6 'B0ф9Uւ?~y$IA-N<2 j'TlBQq.o~ө PjZj`2q:=ULΦm1&Y;"jmym~u{4't4T$( :Xp"+l%V =^jd`K"j)mNd8w`Il9U*_*?U:3ꖼ/){$U s$F?TWgaV 'ݨNdF=4L':QxPU6S-!(hGCPO\酃EGNW'7c'X?HYhn 8I BI0`݁eWprԽ+es^h\cZ25U+H<(eJ?l03ջfޗ_fb0RI9,ѿJt8>꣹\85;V;qPtRNgڏ@#瀢539 N$ ̆vbֻ(E'KHP)e7q1m۰#"`τf[D9Efl"uF[?'TBmk!^ev=ɭIޖz!+~,G+;^Rɕ'/V2.ܖ~T[ JL 7 {h$T(jJJE cٵD|-Qs'lq?׺eV)m4dɭ}:@<#,blgF Pdk(z1/'Җh[c4pn_nm(A+km;_M#t<7P!FLaNGu txdv{už7GО_&z". ELdW{,$[eYl6֥Â;@dLXEIX:y4B."d.$qیjX,͊cR{gCԴ%PO S/ͨr+&s'C[=bر!muܝnO^> z[DYp6~I6v,Ɩz MT"mbvԂ9N4X8mT9B7ẘ!U$XRݪVHVq|/4˹á/ЕW&_2n ]B~b>DHv:lub:Qpl>ԣjZ xדglas+ғOckN&ihCz_hRJཻDch_P> endobj +381 0 obj << +/D [575 0 R /XYZ 95.6414 716.3138 null] +>> endobj +46 0 obj << +/D [575 0 R /XYZ 299.9345 705.6731 null] +>> endobj +577 0 obj << +/D [575 0 R /XYZ 95.6414 690.3878 null] +>> endobj +578 0 obj << +/D [575 0 R /XYZ 268.3395 671.4893 null] +>> endobj +579 0 obj << +/D [575 0 R /XYZ 269.7118 649.5715 null] +>> endobj +580 0 obj << +/D [575 0 R /XYZ 365.54 649.5715 null] +>> endobj +382 0 obj << +/D [575 0 R /XYZ 95.6414 635.8032 null] +>> endobj +50 0 obj << +/D [575 0 R /XYZ 204.7852 604.118 null] +>> endobj +581 0 obj << +/D [575 0 R /XYZ 95.6414 594.743 null] +>> endobj +582 0 obj << +/D [575 0 R /XYZ 143.462 564.6111 null] +>> endobj +583 0 obj << +/D [575 0 R /XYZ 221.1398 553.6522 null] +>> endobj +584 0 obj << +/D [575 0 R /XYZ 95.6414 545.8615 null] +>> endobj +585 0 obj << +/D [575 0 R /XYZ 283.1867 526.7531 null] +>> endobj +586 0 obj << +/D [575 0 R /XYZ 95.6414 513.981 null] +>> endobj +383 0 obj << +/D [575 0 R /XYZ 95.6414 408.0588 null] +>> endobj +54 0 obj << +/D [575 0 R /XYZ 213.2721 373.6861 null] +>> endobj +587 0 obj << +/D [575 0 R /XYZ 95.6414 364.3112 null] +>> endobj +588 0 obj << +/D [575 0 R /XYZ 235.9558 323.2204 null] +>> endobj +589 0 obj << +/D [575 0 R /XYZ 256.8599 323.2204 null] +>> endobj +590 0 obj << +/D [575 0 R /XYZ 293.5647 323.2204 null] +>> endobj +591 0 obj << +/D [575 0 R /XYZ 462.2844 323.2204 null] +>> endobj +592 0 obj << +/D [575 0 R /XYZ 252.5176 312.2615 null] +>> endobj +593 0 obj << +/D [575 0 R /XYZ 414.0426 312.2615 null] +>> endobj +594 0 obj << +/D [575 0 R /XYZ 95.6414 280.1669 null] +>> endobj +595 0 obj << +/D [575 0 R /XYZ 95.6414 201.2384 null] +>> endobj +384 0 obj << +/D [575 0 R /XYZ 95.6414 171.6688 null] +>> endobj +58 0 obj << +/D [575 0 R /XYZ 147.2231 139.9666 null] +>> endobj +596 0 obj << +/D [575 0 R /XYZ 95.6414 130.3862 null] +>> endobj +597 0 obj << +/D [575 0 R /XYZ 219.2071 89.5009 null] +>> endobj +598 0 obj << +/D [575 0 R /XYZ 95.6414 76.7288 null] +>> endobj +599 0 obj << +/D [575 0 R /XYZ 95.6414 46.8244 null] +>> endobj +574 0 obj << +/Font << /F23 242 0 R /F28 250 0 R /F37 371 0 R /F36 315 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +602 0 obj << +/Length 475 +/Filter /FlateDecode +>> +stream +x}T=0+T&tj%Ktp ;%8el9Ɖ|{! #UL@Remd}^C :G}(WOϲ Y sI`F CڝBm((7R5}q7:UY~]}*'v% k3(P21L*;䇺<=#50#0-1[߶SKRϒR,k 6:SU?"hB3 B]z?lHP"wcС~+,:&Ur 9?R 4'PF}Ӵ,@R_B}.|jXmC1εQ3@E2Bs6¬sٺ 7(VN(:}γMKP}B7γ^ߑ^ q_A3747/$endstream +endobj +601 0 obj << +/Type /Page +/Contents 602 0 R +/Resources 600 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 495 0 R +/Annots [ 606 0 R 607 0 R ] +>> endobj +606 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [294.1667 661.7983 338.4901 673.8081] +/Subtype /Link +/A << /S /GoTo /D (TUTOR2-FNAME) >> +>> endobj +607 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [195.0881 650.8394 239.4115 662.8393] +/Subtype /Link +/A << /S /GoTo /D (TUTOR1-FNAME) >> +>> endobj +603 0 obj << +/D [601 0 R /XYZ 95.6414 716.3138 null] +>> endobj +604 0 obj << +/D [601 0 R /XYZ 215.7004 706.3512 null] +>> endobj +605 0 obj << +/D [601 0 R /XYZ 95.6414 675.1821 null] +>> endobj +600 0 obj << +/Font << /F37 371 0 R /F28 250 0 R /F44 489 0 R /F36 315 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +611 0 obj << +/Length 2833 +/Filter /FlateDecode +>> +stream +xڍ]6=@֬D3oI뵇v{ڢBdPl~p4$=tTdIrY +r;VW1$q!0 |ݤq"\fɻW?HZ=/gE*^=T]?`̋4bt8]{Zo{u[/dGR$F*!eR?RCm ]xPg\?MC{j@t?n[%4MGܕrM6?u#6Bđ(ӂ?l6JAQ$cq"I$mVՍڡ׻qWDn >8L;cSS\ 4QWxo>958&.^wMEs=m 1wǙ_Kp086C}j! +Tmi{\ORLJ= esd*I 6wgϓJV>kF³@̝iƊ_ +8#K8DeD@`P @̕wo>ȅ&cqY! +8ft&>T9|~6wЌ4!\p-=T,; 5!g6F$ $]uCU4k4Heo sH{Hs""Ti!`IGMt#I |q_u jn #hx佝*@QF–FPl.Me̕"Q1qE3U2g +*rkk&q"/EfЃVR[>#24WqX($>寊0-dg*JAG^>f+T䪚[Y@iGL TZq=)3UE(۹ (p'֦O]k_I*N,nϼlfyS]PƷ! LJb\JLó8O'WX~xx}_Lu!#h0/Ed0xMݗ@FbMKNDYȒ]Nد%>zaȒK}Y@ +B# dl$vȚ:BI9Yt0a&nFo>qcz.z._Wn bwLǃdcaWFTvF*^\ufkh,Àۯ><\m\iT $sOT9UwsF%Xte"Hq=|rkt}8 !džND9o3?Mq +$7T_u@׻ &(H%whf_ƩWᔺz\,pH= \FLq=m}<4z~"E:쫔?Q7͙&9ЙD\R,wec8g;Ɉ/ xچꆢq'FChL%h#Z$6U̗=3$t_`>Jf9Bi`"ɤi2MRvz)D0rsv0cNwvn ]&UGvco{K{m{־43Yi i1oN +g]3"'ڙ{e"daǣkFTJ,kg`4H/zjմf{ zg]ei\n|(<,KtTAdg a伖 #y@꟞`@)}M(V~Y7c쉛VQ.Ys]7ũj!eoz~@LGFȽS"5{:"j;Ee +,Q+ a;fnn.CV &CIu&opo&EB&sTbrengy[v LMš"e>{ta U`4*~'ŝ ;w\ɩL\6m\U-@O6-yOc8p8.P> endobj +628 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [454.6593 393.4331 495.8447 405.4429] +/Subtype /Link +/A << /S /GoTo /D (C64-1-FNAME) >> +>> endobj +629 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [142.4658 382.534 186.241 394.484] +/Subtype /Link +/A << /S /GoTo /D (KERNAL-FNAME) >> +>> endobj +635 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [362.6576 243.6986 417.6507 255.7084] +/Subtype /Link +/A << /S /GoTo /D (REF-LINK) >> +>> endobj +612 0 obj << +/D [610 0 R /XYZ 95.6414 729.2652 null] +>> endobj +385 0 obj << +/D [610 0 R /XYZ 95.6414 716.3138 null] +>> endobj +62 0 obj << +/D [610 0 R /XYZ 386.9554 705.6731 null] +>> endobj +613 0 obj << +/D [610 0 R /XYZ 95.6414 690.3878 null] +>> endobj +614 0 obj << +/D [610 0 R /XYZ 348.7883 682.4482 null] +>> endobj +386 0 obj << +/D [610 0 R /XYZ 95.6414 646.7621 null] +>> endobj +66 0 obj << +/D [610 0 R /XYZ 253.3567 615.0769 null] +>> endobj +615 0 obj << +/D [610 0 R /XYZ 95.6414 608.281 null] +>> endobj +616 0 obj << +/D [610 0 R /XYZ 293.5682 597.4878 null] +>> endobj +617 0 obj << +/D [610 0 R /XYZ 267.757 575.57 null] +>> endobj +618 0 obj << +/D [610 0 R /XYZ 95.6414 556.8204 null] +>> endobj +619 0 obj << +/D [610 0 R /XYZ 230.7507 548.6709 null] +>> endobj +620 0 obj << +/D [610 0 R /XYZ 95.6414 529.9212 null] +>> endobj +621 0 obj << +/D [610 0 R /XYZ 359.964 521.7717 null] +>> endobj +622 0 obj << +/D [610 0 R /XYZ 95.6414 492.0632 null] +>> endobj +623 0 obj << +/D [610 0 R /XYZ 399.1023 483.9137 null] +>> endobj +624 0 obj << +/D [610 0 R /XYZ 471.0337 472.9548 null] +>> endobj +625 0 obj << +/D [610 0 R /XYZ 95.6414 456.9847 null] +>> endobj +626 0 obj << +/D [610 0 R /XYZ 159.7706 424.1379 null] +>> endobj +627 0 obj << +/D [610 0 R /XYZ 95.6414 416.3471 null] +>> endobj +387 0 obj << +/D [610 0 R /XYZ 95.6414 378.549 null] +>> endobj +70 0 obj << +/D [610 0 R /XYZ 141.7999 346.7869 null] +>> endobj +630 0 obj << +/D [610 0 R /XYZ 95.6414 339.9911 null] +>> endobj +631 0 obj << +/D [610 0 R /XYZ 431.6594 318.239 null] +>> endobj +632 0 obj << +/D [610 0 R /XYZ 161.7453 307.2801 null] +>> endobj +633 0 obj << +/D [610 0 R /XYZ 95.6414 291.1257 null] +>> endobj +634 0 obj << +/D [610 0 R /XYZ 324.1142 280.381 null] +>> endobj +388 0 obj << +/D [610 0 R /XYZ 95.6414 244.6948 null] +>> endobj +74 0 obj << +/D [610 0 R /XYZ 243.0216 215.2402 null] +>> endobj +636 0 obj << +/D [610 0 R /XYZ 95.6414 209.0622 null] +>> endobj +637 0 obj << +/D [610 0 R /XYZ 369.1868 198.2539 null] +>> endobj +638 0 obj << +/D [610 0 R /XYZ 476.4135 198.2539 null] +>> endobj +639 0 obj << +/D [610 0 R /XYZ 210.699 187.295 null] +>> endobj +640 0 obj << +/D [610 0 R /XYZ 95.6414 179.5043 null] +>> endobj +641 0 obj << +/D [610 0 R /XYZ 95.6414 152.6052 null] +>> endobj +642 0 obj << +/D [610 0 R /XYZ 404.3795 144.4557 null] +>> endobj +643 0 obj << +/D [610 0 R /XYZ 469.4518 144.4557 null] +>> endobj +644 0 obj << +/D [610 0 R /XYZ 95.6414 128.3013 null] +>> endobj +645 0 obj << +/D [610 0 R /XYZ 406.8877 117.5566 null] +>> endobj +646 0 obj << +/D [610 0 R /XYZ 95.6414 93.8256 null] +>> endobj +609 0 obj << +/Font << /F23 242 0 R /F28 250 0 R /F36 315 0 R /F37 371 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +652 0 obj << +/Length 1074 +/Filter /FlateDecode +>> +stream +x}V͒6 S(D ER7ߒNJ\[]KtDj޾ A9с dQʬj&+v L:ŬTkYCd~i3Re>z3 +Vќ\0zkF6;3aߺWʭ[RU +Bkޏu#p)\x$(YM%UbcUHJ[;X-$܈v?/e܀)zr%բv@~@3Y +P)hn!`VO+V.Qg%$?gij~u,AG +$ָl״{2hH~.m4jb2;YFT Ώ+OmH9H#(n{{|xھrC[d`(% +F?&&y>>Õdͣw,RG\9,ĝeGZ0QNf Y2.4^`. +<~߹@a8a+ XUGOnIh(Ac=,M|5kq\T(qYzP7fpG48OPIK'8$楸U#]p!vUnaqoqݼ"툜gl/l2cF޴{=tGǓe9I %}+R@3d& Pn7ݥT}p#B 00ZՑDM!dE؇0[5חZ [H 3ߺfLiy_[ +ȉ=~ag)EJ415?Bqx!< ݰC|@i7i{bw?&.>%&P[R+HpE9Y.")Q'n4B1%)뤕\x$p EټA)^v %&vƧva/۽Mo׍tzAsnX)HP&_~D#L7Ton̼^endstream +endobj +651 0 obj << +/Type /Page +/Contents 652 0 R +/Resources 650 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 647 0 R +/Annots [ 662 0 R ] +>> endobj +662 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [142.4658 415.6653 186.7892 427.6752] +/Subtype /Link +/A << /S /GoTo /D (TUTOR3-FNAME) >> +>> endobj +653 0 obj << +/D [651 0 R /XYZ 95.6414 729.2652 null] +>> endobj +389 0 obj << +/D [651 0 R /XYZ 95.6414 646.9345 null] +>> endobj +78 0 obj << +/D [651 0 R /XYZ 248.2173 613.8879 null] +>> endobj +654 0 obj << +/D [651 0 R /XYZ 95.6414 607.7099 null] +>> endobj +655 0 obj << +/D [651 0 R /XYZ 95.6414 580.7472 null] +>> endobj +656 0 obj << +/D [651 0 R /XYZ 256.5364 559.0436 null] +>> endobj +657 0 obj << +/D [651 0 R /XYZ 95.6414 546.2716 null] +>> endobj +658 0 obj << +/D [651 0 R /XYZ 95.6414 518.0116 null] +>> endobj +659 0 obj << +/D [651 0 R /XYZ 471.2261 497.4745 null] +>> endobj +660 0 obj << +/D [651 0 R /XYZ 290.0105 486.5156 null] +>> endobj +390 0 obj << +/D [651 0 R /XYZ 95.6414 468.7622 null] +>> endobj +82 0 obj << +/D [651 0 R /XYZ 184.8157 437.06 null] +>> endobj +661 0 obj << +/D [651 0 R /XYZ 95.6414 427.6851 null] +>> endobj +663 0 obj << +/D [651 0 R /XYZ 204.2974 408.5121 null] +>> endobj +650 0 obj << +/Font << /F37 371 0 R /F36 315 0 R /F23 242 0 R /F28 250 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +667 0 obj << +/Length 3068 +/Filter /FlateDecode +>> +stream +xڍۖ۶_{$qdS'NMӴDbW)RewpI +ks4 ܰ|?"K.WȘ#ς}[S& m% S&<˷(ZIW7ſׯV$Z2U>c?7?t,1 KE"dB98[UEP^5E{ ܩ#;ݟïá)%OEG{vecI[^}}M*(mE) w^fV1OUu˃R[fZ[;6*Sm&ޮ}/;Θ]IvU"%Ul]xr84bE[P ¶7XEGa7rBd"aJDb&aS%&[-OT^Y'6Ʒچv @7&PNm#,#b [@| Wy 3tCGZhYY.?E4e9D˯f[.vnEE '={s3=!b&y&V1,a#vJFqfgD$H0/H.Ip %`UGQ^7hx 3c#`r;n< ˇ]%h)>p㌎p/u@G63.CwCYƶ  X: 88Xثj;%3ϹKŚlyVD!-f DT[[U*Uk o +]+#Skl/C ߫rpcΝ?bwֽiBAGY2wp889􄂭$A)iv(?o&*iːR mdQ/G1Qyݨ>j<L]tفt{HT08PF,p[X4'Rmd>_r9Z&< XAZy % PVG +6DD P,,,;H>/Hu.?sC?vk(bܔjU|Op,, Ss$bQ 5HK*iONΝںLa]&vOZU~%FH˼M6<a1p1:* ^i~nZ@k*߷*{$Ff@W2)^B`l 5 2<|!o @|lMId'Ka,ZkxC4t0γ9,P^rhbvGi8`bޢȯpuU5$)h0#c*|SzntX;6=P-\X08&?YOioˢ.Ζٵ:p״).r|83mnŹoiJًeg>6ߩJ}s"_;z6{"WA +KP^. SbeUCdi;Rmdc*z8,MKaCTr1r6jVώͲ;$e/si:tۈ&>` q8&:ECtNSBF7v4tbTDs :&04ϢJ˜=wJ.ܣYᆾPjG3V9ϓ\}oǟ__ε/F?nL24j){GkW&}KN5@S$4 ,3'IX-z^\ W/{CK"ՖN"0UZ +vO +i_0c<͋j;%$gܗBeL ;%7Hmb}{R1zy R)5sAnS[ x(YF; SU`)XQѩҾeF 5/dQdDl,d@KR[13[ǟ6pQl$n>{GX r^ዤQSEdHQC" R8d*T08˟h )&8+Р P2e\O|=d`JZ% K#%bmnƧScg)vHl:IIw./K@"|.Nd:}L#'.h8 oϢ!PŒE(_̄ȭM! ɔ +Yą酅Q"vUY|j1#&wpnR-]"!ʃOˉޫ׏;[[*aBJu4 ѹn-[grF?endstream +endobj +666 0 obj << +/Type /Page +/Contents 667 0 R +/Resources 665 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 647 0 R +/Annots [ 673 0 R 674 0 R 679 0 R 680 0 R 681 0 R 687 0 R 698 0 R ] +>> endobj +673 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [225.4229 607.9078 271.1284 619.9176] +/Subtype /Link +/A << /S /GoTo /D (CH5-LINK) >> +>> endobj +674 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [300.4205 596.9489 349.1673 608.9587] +/Subtype /Link +/A << /S /GoTo /D (TUTOR4A-FNAME) >> +>> endobj +679 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [344.7506 559.0909 390.7915 571.1007] +/Subtype /Link +/A << /S /GoTo /D (CH3-LINK) >> +>> endobj +680 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [497.5844 559.0909 515.0685 571.1007] +/Subtype /Link +/A << /S /GoTo /D (KERNAL-FNAME) >> +>> endobj +681 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.6451 548.1918 174.067 560.1418] +/Subtype /Link +/A << /S /GoTo /D (KERNAL-FNAME) >> +>> endobj +687 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [270.8329 327.4596 319.7689 339.4694] +/Subtype /Link +/A << /S /GoTo /D (TUTOR4B-FNAME) >> +>> endobj +698 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [230.1659 135.3799 278.544 147.3897] +/Subtype /Link +/A << /S /GoTo /D (TUTOR4C-FNAME) >> +>> endobj +668 0 obj << +/D [666 0 R /XYZ 95.6414 729.2652 null] +>> endobj +391 0 obj << +/D [666 0 R /XYZ 95.6414 716.3138 null] +>> endobj +86 0 obj << +/D [666 0 R /XYZ 281.2644 705.6731 null] +>> endobj +669 0 obj << +/D [666 0 R /XYZ 95.6414 690.3878 null] +>> endobj +670 0 obj << +/D [666 0 R /XYZ 427.9888 660.5304 null] +>> endobj +671 0 obj << +/D [666 0 R /XYZ 234.7129 649.5715 null] +>> endobj +672 0 obj << +/D [666 0 R /XYZ 95.6414 630.8219 null] +>> endobj +675 0 obj << +/D [666 0 R /XYZ 340.2019 589.7957 null] +>> endobj +676 0 obj << +/D [666 0 R /XYZ 95.6414 582.0049 null] +>> endobj +677 0 obj << +/D [666 0 R /XYZ 143.462 562.8965 null] +>> endobj +678 0 obj << +/D [666 0 R /XYZ 220.6904 562.8965 null] +>> endobj +682 0 obj << +/D [666 0 R /XYZ 422.6322 551.9376 null] +>> endobj +683 0 obj << +/D [666 0 R /XYZ 95.6414 539.2254 null] +>> endobj +684 0 obj << +/D [666 0 R /XYZ 95.6414 510.9056 null] +>> endobj +685 0 obj << +/D [666 0 R /XYZ 95.6414 480.1917 null] +>> endobj +686 0 obj << +/D [666 0 R /XYZ 95.6414 340.8434 null] +>> endobj +688 0 obj << +/D [666 0 R /XYZ 258.9382 309.3474 null] +>> endobj +689 0 obj << +/D [666 0 R /XYZ 451.4904 276.4707 null] +>> endobj +690 0 obj << +/D [666 0 R /XYZ 143.462 265.5118 null] +>> endobj +691 0 obj << +/D [666 0 R /XYZ 95.6414 259.1498 null] +>> endobj +692 0 obj << +/D [666 0 R /XYZ 163.8991 249.5716 null] +>> endobj +693 0 obj << +/D [666 0 R /XYZ 95.6414 203.9228 null] +>> endobj +694 0 obj << +/D [666 0 R /XYZ 95.6414 175.6628 null] +>> endobj +695 0 obj << +/D [666 0 R /XYZ 206.8683 166.0847 null] +>> endobj +696 0 obj << +/D [666 0 R /XYZ 425.5403 166.0847 null] +>> endobj +697 0 obj << +/D [666 0 R /XYZ 95.6414 147.3351 null] +>> endobj +699 0 obj << +/D [666 0 R /XYZ 95.6414 131.3948 null] +>> endobj +700 0 obj << +/D [666 0 R /XYZ 256.9699 123.2453 null] +>> endobj +701 0 obj << +/D [666 0 R /XYZ 187.6476 90.3686 null] +>> endobj +702 0 obj << +/D [666 0 R /XYZ 370.8438 90.3686 null] +>> endobj +703 0 obj << +/D [666 0 R /XYZ 441.6439 90.3686 null] +>> endobj +704 0 obj << +/D [666 0 R /XYZ 162.8194 79.4097 null] +>> endobj +665 0 obj << +/Font << /F23 242 0 R /F28 250 0 R /F36 315 0 R /F44 489 0 R /F37 371 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +710 0 obj << +/Length 163 +/Filter /FlateDecode +>> +stream +x}0 > endobj +711 0 obj << +/D [709 0 R /XYZ 95.6414 729.2652 null] +>> endobj +708 0 obj << +/Font << /F37 371 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +714 0 obj << +/Length 2744 +/Filter /FlateDecode +>> +stream +xڭk6{~?a͈}^irh(Kq%n~pdk(AÙpHΓ+~r"RRb?~zv@d%/uJ%VW^$$ +Vw<@n_7Əu(tIÕu[֥뜀T #!:LwW4HVH#?BT,ߋV?R JT'Wr&'LQgonǽ22UBd6#fF2UR@@uA2LPkZ߃2Y‰zkz1Y#afS2Q}QП'dC6L- P\z$tEv~jkjt۽!uSUM8)ӛ_߼aYl[>OQg君F)V^)<@"ulln3愔)էh'T퇶yayFti4*jFިS(8k)4 P>LLX'OgymMhWm;zWdϯzV5Ɓ4[D4U& wD E.J-y%<~eHb'kl 㦃ol=pW'3]g62?Ҙ It,ȜeC5}SI0Ym< ERgAZZ7t#x>ў㱁*_ZMn;<ϸpnJHĥ^.+jBc`Oh 91SW fL-{4$}ux{Kݙ%1\nFea31^̱ _T56*k h =_o 8*z ˧s]o'+KγT9s6 = 5#b=5&p☜ƧT~P5f۪ |6_ _aAQζB+`r[l&[9M/3H}Ir/d>6} zB`ީ{f !,;@(]^s2vy yS?9X!{`2qL.M5'AmM<N^=Rye;k❤揞9Xk$'#WDu%"~1ɿ*!3H7sIB~T9R^ +] lfsx(دFHa%y$y`:F[#PNA0lh{cs*0,ΔƂp]h cBЛR# 6/,ElPc;mz`(O$3fWw}&(]'9Vc%yD@nmQ8'!5mC3n\1P{Mi^/_.zREA"ifk;Ø$O=;.nݱ'S1̷#hıBw$S 肅 7['Z %"s-bV2T"1v5v3H8>֭f|NBS%ҟ]Lr0H#+$q<q2}/OmL]#H{\u'|гV~)hk4]/)P괨C Pc7u +v5bGGi4E]'<Dshn!T +9=blK]3|`}H.jk 6$@~ +"%WY(EBLk+,ԯ(K)`R*=BEؼHOchݒ򁈢[ո';Z~tQM +|߁.Y*X8^*D9_/;,c56Oe I֝\wt>Y>p/Pq; 7I_˛+Z8MiSԖW +U2oh뒱 tgK]?߼8kRUk)'Κx;7B#}. +* /1(ڕ8?gEKK|Lt< +qB)!=UDž;|A_Zendstream +endobj +713 0 obj << +/Type /Page +/Contents 714 0 R +/Resources 712 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 647 0 R +/Annots [ 717 0 R ] +>> endobj +717 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [218.1769 678.6425 263.4121 690.6524] +/Subtype /Link +/A << /S /GoTo /D (CH4-LINK) >> +>> endobj +715 0 obj << +/D [713 0 R /XYZ 95.6414 729.2652 null] +>> endobj +392 0 obj << +/D [713 0 R /XYZ 95.6414 716.3138 null] +>> endobj +90 0 obj << +/D [713 0 R /XYZ 439.0571 705.6731 null] +>> endobj +716 0 obj << +/D [713 0 R /XYZ 95.6414 690.1618 null] +>> endobj +718 0 obj << +/D [713 0 R /XYZ 487.1731 671.4893 null] +>> endobj +719 0 obj << +/D [713 0 R /XYZ 377.6531 660.3701 null] +>> endobj +720 0 obj << +/D [713 0 R /XYZ 495.8111 638.4523 null] +>> endobj +721 0 obj << +/D [713 0 R /XYZ 95.6414 619.7027 null] +>> endobj +722 0 obj << +/D [713 0 R /XYZ 95.6414 598.7811 null] +>> endobj +723 0 obj << +/D [713 0 R /XYZ 95.6414 443.5438 null] +>> endobj +724 0 obj << +/D [713 0 R /XYZ 383.4459 399.8472 null] +>> endobj +725 0 obj << +/D [713 0 R /XYZ 288.7855 366.9705 null] +>> endobj +726 0 obj << +/D [713 0 R /XYZ 332.1528 366.9705 null] +>> endobj +727 0 obj << +/D [713 0 R /XYZ 95.6414 354.1984 null] +>> endobj +728 0 obj << +/D [713 0 R /XYZ 95.6414 316.0754 null] +>> endobj +729 0 obj << +/D [713 0 R /XYZ 95.6414 265.8298 null] +>> endobj +730 0 obj << +/D [713 0 R /XYZ 282.7188 257.6803 null] +>> endobj +731 0 obj << +/D [713 0 R /XYZ 333.7347 257.6803 null] +>> endobj +732 0 obj << +/D [713 0 R /XYZ 439.2246 257.6803 null] +>> endobj +733 0 obj << +/D [713 0 R /XYZ 362.6798 246.7214 null] +>> endobj +734 0 obj << +/D [713 0 R /XYZ 487.1731 235.7625 null] +>> endobj +735 0 obj << +/D [713 0 R /XYZ 95.6414 219.6081 null] +>> endobj +736 0 obj << +/D [713 0 R /XYZ 95.6414 196.0913 null] +>> endobj +737 0 obj << +/D [713 0 R /XYZ 251.7728 168.1162 null] +>> endobj +738 0 obj << +/D [713 0 R /XYZ 350.14 157.1573 null] +>> endobj +739 0 obj << +/D [713 0 R /XYZ 248.7361 146.1984 null] +>> endobj +740 0 obj << +/D [713 0 R /XYZ 95.6414 138.4077 null] +>> endobj +741 0 obj << +/D [713 0 R /XYZ 420.7937 130.2582 null] +>> endobj +742 0 obj << +/D [713 0 R /XYZ 277.9079 119.2993 null] +>> endobj +743 0 obj << +/D [713 0 R /XYZ 320.5811 119.2993 null] +>> endobj +744 0 obj << +/D [713 0 R /XYZ 189.1402 108.3404 null] +>> endobj +745 0 obj << +/D [713 0 R /XYZ 260.5519 108.3404 null] +>> endobj +746 0 obj << +/D [713 0 R /XYZ 95.6414 100.5496 null] +>> endobj +747 0 obj << +/D [713 0 R /XYZ 231.2617 92.4001 null] +>> endobj +748 0 obj << +/D [713 0 R /XYZ 95.6414 81.0567 null] +>> endobj +712 0 obj << +/Font << /F23 242 0 R /F28 250 0 R /F36 315 0 R /F37 371 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +751 0 obj << +/Length 1182 +/Filter /FlateDecode +>> +stream +xڝWKs6W萙P&wzruNa _%@ʯ ʤ$۝X~]<&IDUr’Dsv :?9cr',Ymtd1V佖gq_:k$Pm-ny[ ȦH+kdW?l4"AQOVD}$J@Y0̺Ozi 2?'Y"_` GN,IjjZ|jڧ N*phf8ʀ9?:[`i4 BW n * bt2Y2/5 ϟ(jqxE^Hqjp=&%, O$ +EpIN[pSe<Ŷ1NqiNἽ< w @,L>Z$96R3f叼c qA9 YZI/>Ȏ(;OkQwCL<Sy un}sm6͘_;풀=jx{-WP8LY5N)CFhF'_\/9Z\,4qx>,?'ǣCl0IsE/Y0L=`_7endstream +endobj +750 0 obj << +/Type /Page +/Contents 751 0 R +/Resources 749 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 647 0 R +/Annots [ 759 0 R ] +>> endobj +759 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [308.3323 337.116 352.6557 349.1258] +/Subtype /Link +/A << /S /GoTo /D (TUTOR5-FNAME) >> +>> endobj +752 0 obj << +/D [750 0 R /XYZ 95.6414 729.2652 null] +>> endobj +753 0 obj << +/D [750 0 R /XYZ 95.6414 538.4415 null] +>> endobj +754 0 obj << +/D [750 0 R /XYZ 95.6414 492.9316 null] +>> endobj +755 0 obj << +/D [750 0 R /XYZ 95.6414 456.0504 null] +>> endobj +756 0 obj << +/D [750 0 R /XYZ 390.0325 423.3127 null] +>> endobj +757 0 obj << +/D [750 0 R /XYZ 95.6414 391.2181 null] +>> endobj +758 0 obj << +/D [750 0 R /XYZ 95.6414 350.4998 null] +>> endobj +749 0 obj << +/Font << /F37 371 0 R /F36 315 0 R /F28 250 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +763 0 obj << +/Length 1657 +/Filter /FlateDecode +>> +stream +xڥXm6 _C/^z +]>tC/C8Jձ3۹\Gt.N|w|LR$EJb +zxINIV͙_;#4,l^l␣Pwl͑kui햠%ރr.zGn.Nމ.&?^L?W}04|βz[Ź NjGپe^/.p#9~exy +zos'aU;vꅒ\ȇy}Rh2@U>sgFHDpﭟ-oڻsn1 I'>+8fd>PA%Q98sggNpRsܟg%'{sxʼn\ QN0 R(=﫝=·d\i@00;".lDҌnAИ)h}*+ }pQ%䋫HG"ISsn,Tw:wj0s4zES!V e#Ho^\%*\fL-u Naum\n @/LI#\p>Yr87]sgZw -kO4AneBu=/UVJ9TU661l]ۯGM 7_]:$dq׽30bxylzjK5V4Y[,='?UtݯyPG(%|S;xk_R=^ {t8*_v!TE#dpyQ +ζ샯脯H=.;uȖJEQ-k?c)=LfSƋ +Kȼ Ԍ!+B*MЋ"tk0uׁܺn4+؂{({nzg%`ϛNfr$1QbC% +S ,Nhendstream +endobj +762 0 obj << +/Type /Page +/Contents 763 0 R +/Resources 761 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 784 0 R +>> endobj +764 0 obj << +/D [762 0 R /XYZ 95.6414 729.2652 null] +>> endobj +393 0 obj << +/D [762 0 R /XYZ 95.6414 716.3138 null] +>> endobj +94 0 obj << +/D [762 0 R /XYZ 257.7662 705.6731 null] +>> endobj +765 0 obj << +/D [762 0 R /XYZ 95.6414 690.3878 null] +>> endobj +766 0 obj << +/D [762 0 R /XYZ 334.1403 660.5304 null] +>> endobj +767 0 obj << +/D [762 0 R /XYZ 95.6414 641.7808 null] +>> endobj +768 0 obj << +/D [762 0 R /XYZ 95.6414 620.8592 null] +>> endobj +769 0 obj << +/D [762 0 R /XYZ 95.6414 455.7589 null] +>> endobj +770 0 obj << +/D [762 0 R /XYZ 454.3123 444.939 null] +>> endobj +771 0 obj << +/D [762 0 R /XYZ 487.8227 433.9801 null] +>> endobj +775 0 obj << +/D [762 0 R /XYZ 143.462 423.0212 null] +>> endobj +776 0 obj << +/D [762 0 R /XYZ 456.4286 423.0212 null] +>> endobj +777 0 obj << +/D [762 0 R /XYZ 95.6414 401.8855 null] +>> endobj +778 0 obj << +/D [762 0 R /XYZ 95.6414 342.683 null] +>> endobj +779 0 obj << +/D [762 0 R /XYZ 95.6414 308.1321 null] +>> endobj +780 0 obj << +/D [762 0 R /XYZ 95.6414 122.2657 null] +>> endobj +781 0 obj << +/D [762 0 R /XYZ 294.8867 112.4858 null] +>> endobj +782 0 obj << +/D [762 0 R /XYZ 95.6414 96.3314 null] +>> endobj +783 0 obj << +/D [762 0 R /XYZ 95.6414 71.8184 null] +>> endobj +761 0 obj << +/Font << /F23 242 0 R /F28 250 0 R /F36 315 0 R /F52 774 0 R /F37 371 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +787 0 obj << +/Length 988 +/Filter /FlateDecode +>> +stream +xXM6WTm[$P6iͦ6[@kiWDl˕lgDJֲb ա0|=<<"#T̔dh zDR4ԺZ~12(`3%hބɮE$ ϗaVUVw($fz ƈ\R`-0[g-خwaV&uQv&'7q斠p +FK0 xL&2$o\ (s4vحxj*XC\cGtdb iWbf(XCThhaM!?R틬ZvWN1O+p<#VȠ]{Q\Q sSHCoZ;D +E oy20:O2= T,)y +MԶγ~R_Shm\4$RJg) + e'O)40:NPhc~`l\qI°G/CR:ͧt|FH.FE}sDa4 +AijiƯ#ǚG̴> endobj +793 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [325.4473 539.3384 369.7707 551.2883] +/Subtype /Link +/A << /S /GoTo /D (TUTOR6-FNAME) >> +>> endobj +788 0 obj << +/D [786 0 R /XYZ 95.6414 729.2652 null] +>> endobj +789 0 obj << +/D [786 0 R /XYZ 95.6414 693.8382 null] +>> endobj +790 0 obj << +/D [786 0 R /XYZ 95.6414 693.8382 null] +>> endobj +791 0 obj << +/D [786 0 R /XYZ 95.6414 588.9123 null] +>> endobj +792 0 obj << +/D [786 0 R /XYZ 95.6414 553.8289 null] +>> endobj +785 0 obj << +/Font << /F37 371 0 R /F35 258 0 R /F23 242 0 R /F36 315 0 R /F28 250 0 R /F52 774 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +797 0 obj << +/Length 2065 +/Filter /FlateDecode +>> +stream +xڥ]}EO1I4;)z{8(؁-Ovחe;nfKD)QČ_̲JY"3&H;>oQ"e*L&H(B>>@8=G]$[.d ~u+V@WYQ_fg*3(Kgb.Tx!ReNӶha%G5ԭ%Tkr[MoAld4BcU`n (eKyK ze_L`_8-ˢ׻PDl1܋n[[02hi}\VuEZ]h@vNV]weI\( [/v=U\n%g)JVDTD<̚v"υ<2UI|8s ]Pr4 FIk,`|V5/acE\*2x6j0<-Civb@$W[LXSr&Ciim3!3,Ms:[T)waÉ,a*M2p-\ #1f~{=R׵\OrDsגv08(\c.P \¬ +rܖ/BӈX0%k}܀0Qqh@n ՘~j_v˺,rWzEºnp1"SD$oh{:rSyRBb$bQ2ie1\Li P4lME]3I٭\j{pЕug9hEMh+df*bJ* +eM t4 xf>мW }߽•= S= ** z(xP njCrܐl8q)W,-U[!&^K$w&/uٹ.mYiBVJ 92uւ(ꕪ}"h,a"i!HK/MILK˄K_LOJb^(r$doәkbd&#(KI ]ʻ/Mͤy!kq)G +ʅㅣZts*`~c%>#Twdi$32nÖKޗ:ld-o,:κ XJ =ƵisMEMNh q0#(l΀v@Dlɠp IkM(}FQF',%.lq^-CS!$AtC!'BfCT4:`-y`nn_ϔ|!-gjL+@s'~Oljnu5e뿡xX-}CdA +Prr8|1|I@FBsziqo[z?\x҇K5Nz-q4<(,>PL<O3M#45A-p#<ĜI8,W߉yɷgX@M̈́8w}T`^[ GX 7AEmC?v3oflTt +c"إȺdJ^7|h4$fi Cz> endobj +804 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [259.1041 593.6821 303.4275 605.692] +/Subtype /Link +/A << /S /GoTo /D (TUTOR6-FNAME) >> +>> endobj +805 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [142.4658 571.7643 187.5499 583.7742] +/Subtype /Link +/A << /S /GoTo /D (CH5-LINK) >> +>> endobj +815 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [289.0744 96.7498 330.2598 108.7596] +/Subtype /Link +/A << /S /GoTo /D (C64-2-FNAME) >> +>> endobj +798 0 obj << +/D [796 0 R /XYZ 95.6414 729.2652 null] +>> endobj +394 0 obj << +/D [796 0 R /XYZ 95.6414 716.3138 null] +>> endobj +98 0 obj << +/D [796 0 R /XYZ 374.1057 705.6731 null] +>> endobj +799 0 obj << +/D [796 0 R /XYZ 95.6414 690.1618 null] +>> endobj +800 0 obj << +/D [796 0 R /XYZ 159.9395 660.5304 null] +>> endobj +801 0 obj << +/D [796 0 R /XYZ 209.0242 660.5304 null] +>> endobj +395 0 obj << +/D [796 0 R /XYZ 95.6414 649.3573 null] +>> endobj +102 0 obj << +/D [796 0 R /XYZ 175.5602 615.0769 null] +>> endobj +802 0 obj << +/D [796 0 R /XYZ 95.6414 608.281 null] +>> endobj +803 0 obj << +/D [796 0 R /XYZ 163.6926 597.4878 null] +>> endobj +396 0 obj << +/D [796 0 R /XYZ 95.6414 537.4978 null] +>> endobj +106 0 obj << +/D [796 0 R /XYZ 175.9448 503.2004 null] +>> endobj +806 0 obj << +/D [796 0 R /XYZ 95.6414 496.4046 null] +>> endobj +807 0 obj << +/D [796 0 R /XYZ 163.834 485.6113 null] +>> endobj +808 0 obj << +/D [796 0 R /XYZ 214.9895 485.6113 null] +>> endobj +809 0 obj << +/D [796 0 R /XYZ 362.5929 474.6524 null] +>> endobj +810 0 obj << +/D [796 0 R /XYZ 395.2862 474.6524 null] +>> endobj +811 0 obj << +/D [796 0 R /XYZ 95.6414 429.0037 null] +>> endobj +812 0 obj << +/D [796 0 R /XYZ 95.6414 400.7437 null] +>> endobj +813 0 obj << +/D [796 0 R /XYZ 95.6414 345.5168 null] +>> endobj +814 0 obj << +/D [796 0 R /XYZ 95.6414 111.3754 null] +>> endobj +816 0 obj << +/D [796 0 R /XYZ 95.6414 92.7647 null] +>> endobj +817 0 obj << +/D [796 0 R /XYZ 163.5461 84.6152 null] +>> endobj +795 0 obj << +/Font << /F23 242 0 R /F28 250 0 R /F36 315 0 R /F37 371 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +821 0 obj << +/Length 1256 +/Filter /FlateDecode +>> +stream +xڍWmo6_a``6KR٧kh146` +Zm6ITȣ&;CF~lE$Y8JxFxQ%~`^g+M.} +QFǣbg+$X:?Dmds='QT,\f\eef/>ζ"p:Э (qh0 a hLqiLow_goΨJn6ϻuW +@iH x^鈢O3>?=TVj*[ͱ(BQ*dBu-v1R6|fȮib'x ޻>ߚg6T( *tIOOx^7zM#j&s_Е;W6 + Ӳ>zy`G' >tASq9۲{l$qre4׺ U* +mJl暥㭇zZԹ0JW-2Wc=J3]?J V3>` + +se`֧\$#DU,%A:$8{{UI9үC( H +i|\ dڋfc(+`D/$q22%$ƬTD.m+ҍW箮_Up*YXRP0S$K@KQ Ѳ,nₖX;94O92$%2wf8ڮ]gCAGJ1AknG$ )6j|Y) EFCa + q};шF!J"('[zmߎp{uPn2vR31fe)xI> endobj +827 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [350.6823 442.5806 395.0058 454.5305] +/Subtype /Link +/A << /S /GoTo /D (TUTOR7-FNAME) >> +>> endobj +829 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [281.5947 374.4799 337.9331 386.4897] +/Subtype /Link +/A << /S /GoTo /D (REF-LINK) >> +>> endobj +822 0 obj << +/D [820 0 R /XYZ 95.6414 729.2652 null] +>> endobj +823 0 obj << +/D [820 0 R /XYZ 95.6414 716.3138 null] +>> endobj +824 0 obj << +/D [820 0 R /XYZ 95.6414 518.7154 null] +>> endobj +825 0 obj << +/D [820 0 R /XYZ 95.6414 485.3401 null] +>> endobj +826 0 obj << +/D [820 0 R /XYZ 95.6414 455.9045 null] +>> endobj +397 0 obj << +/D [820 0 R /XYZ 95.6414 438.5955 null] +>> endobj +110 0 obj << +/D [820 0 R /XYZ 236.835 406.8335 null] +>> endobj +828 0 obj << +/D [820 0 R /XYZ 95.6414 397.2531 null] +>> endobj +830 0 obj << +/D [820 0 R /XYZ 95.6414 359.5359 null] +>> endobj +819 0 obj << +/Font << /F37 371 0 R /F36 315 0 R /F28 250 0 R /F23 242 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +834 0 obj << +/Length 694 +/Filter /FlateDecode +>> +stream +xVo0~_Zh8N2( 41*!Д&ZI\bMl &$P|_d`3œFr:zkнcH#h]09n;ȳ 8rϙ-0GYqtV"OW۱Kpt:"zV)kk:8uXbC ;[Jq;e".2-TKBIhs5'́X8HNDnTidJ f8C +BP䱦;!TR$BTN"|xoRH~0(L1R]]B,X= +m5"͊GO r87~F)z.TʘDb2"ȆH^~kH})aE0ZPMӯqNeV[=}52) 0KcY&MmJQ/?trH~ovB5Z'UUt)ܲTΟ?NLneVYAƊ>茾Ld!nG+U.>GreBǗ2y5VqizTrSutw'ă< uoas3L8sBLgך}1=謍2js^zv}aBpIMh^/Tendstream +endobj +833 0 obj << +/Type /Page +/Contents 834 0 R +/Resources 832 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 784 0 R +>> endobj +835 0 obj << +/D [833 0 R /XYZ 95.6414 729.2652 null] +>> endobj +398 0 obj << +/D [833 0 R /XYZ 95.6414 716.3138 null] +>> endobj +114 0 obj << +/D [833 0 R /XYZ 316.6359 705.6731 null] +>> endobj +836 0 obj << +/D [833 0 R /XYZ 95.6414 690.1618 null] +>> endobj +399 0 obj << +/D [833 0 R /XYZ 95.6414 679.6388 null] +>> endobj +118 0 obj << +/D [833 0 R /XYZ 167.2468 647.9536 null] +>> endobj +837 0 obj << +/D [833 0 R /XYZ 95.6414 636.3739 null] +>> endobj +400 0 obj << +/D [833 0 R /XYZ 95.6414 449.1134 null] +>> endobj +122 0 obj << +/D [833 0 R /XYZ 167.2468 415.9826 null] +>> endobj +838 0 obj << +/D [833 0 R /XYZ 95.6414 404.4029 null] +>> endobj +401 0 obj << +/D [833 0 R /XYZ 95.6414 177.6904 null] +>> endobj +126 0 obj << +/D [833 0 R /XYZ 160.0862 144.5595 null] +>> endobj +839 0 obj << +/D [833 0 R /XYZ 95.6414 132.9798 null] +>> endobj +832 0 obj << +/Font << /F23 242 0 R /F28 250 0 R /F44 489 0 R /F36 315 0 R /F37 371 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +842 0 obj << +/Length 733 +/Filter /FlateDecode +>> +stream +xڍ0y +TUjrc@=mWڪc;6A93 ?d1b !",&a>.ȬR6( 21‚M"&o[jMpy^&ߺNjZ~m>-7cLQruhQfBCuol8CINϼ% % @uFAv jozcE4iR+eфaͅ +kJaϏ߿Ɲ:}Za3F ׉t5&v(xؽY.` nM P/@|/O9›N:]2p$;o|m|'4KZՋ˦iOFz[ O{c-^2FQqER)^~ƍ,妬%ϵRڨΛq͟䌀I IP6?Gn§}A;xkz7Suku9pSS{gxuxAsOggxYHɺÁ,>KqQ:kFPN{XN#w0Ρ0dl]9p4ڈ94u4C$ +l8q>fŘ4cf9Ƴݔж7[ z +N_ɯl +%gendstream +endobj +841 0 obj << +/Type /Page +/Contents 842 0 R +/Resources 840 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 784 0 R +>> endobj +843 0 obj << +/D [841 0 R /XYZ 95.6414 729.2652 null] +>> endobj +402 0 obj << +/D [841 0 R /XYZ 95.6414 655.5557 null] +>> endobj +130 0 obj << +/D [841 0 R /XYZ 167.2468 622.4249 null] +>> endobj +844 0 obj << +/D [841 0 R /XYZ 95.6414 610.8452 null] +>> endobj +840 0 obj << +/Font << /F37 371 0 R /F36 315 0 R /F44 489 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +847 0 obj << +/Length 735 +/Filter /FlateDecode +>> +stream +xڝs0`Ey"@ʮԺC۵u"v_0h|aB>cA?`Q6Z8?T Pש 슘 l?k"16 ,͏wEFuOw|rr{fS̗#:7p[J","E@0 ›ÂeOgv, "r R#|6ه +p +G60" +\i$<~2Ygoܠ?$KKOḶs)]hK0. $ lŇIϮ(6NM`aĀjR|gl"5oV!aJϳ4LVQ2BQT̃g\Y*3 ICepsH:>O4-%ų9t)-+ kЅsEDeęoٔޚ=ʊn8I2<4olཙ#.vQ?(0yq@ D@ dXlYm U1.v)y>{W'uN=+wBS)Pqʀ^7psxUn sݛF%Q)/xШ*/\u/-* })};nԚ*W5lwxr?*39sn> endobj +848 0 obj << +/D [846 0 R /XYZ 95.6414 729.2652 null] +>> endobj +403 0 obj << +/D [846 0 R /XYZ 95.6414 597.6195 null] +>> endobj +134 0 obj << +/D [846 0 R /XYZ 167.2468 563.2469 null] +>> endobj +849 0 obj << +/D [846 0 R /XYZ 95.6414 551.6672 null] +>> endobj +404 0 obj << +/D [846 0 R /XYZ 95.6414 98.1055 null] +>> endobj +845 0 obj << +/Font << /F37 371 0 R /F36 315 0 R /F44 489 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +853 0 obj << +/Length 748 +/Filter /FlateDecode +>> +stream +xVs@~E;z41A6vR"A3 0}8'}-(>H1QEae@e&l*0j Rk#s" eM_ L XsދgX:7C@ =TA=!!8/"*"*N3 +Հ!WTdr +Gp8Sen& |Z I,d9.d*'907usZy +xyW$ ]sq^WO_xsTd wٞW,38r6KLΊ\x&*?<acP |2x_͕w 1̂6 DۀXoڀ6 U2k*,IW]9OYRWR> endobj +854 0 obj << +/D [852 0 R /XYZ 95.6414 729.2652 null] +>> endobj +138 0 obj << +/D [852 0 R /XYZ 174.4073 706.3512 null] +>> endobj +855 0 obj << +/D [852 0 R /XYZ 95.6414 694.7715 null] +>> endobj +851 0 obj << +/Font << /F37 371 0 R /F44 489 0 R /F36 315 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +858 0 obj << +/Length 773 +/Filter /FlateDecode +>> +stream +xڵV]o0}Wda05tOLiT0mS29a ~Nд*MH`r9>/r '`SDsh5BǮ-Wsp̝/pgwfdYc38;-:ύ#$*\㟳l79C@w(E"Es !!\[gpVkE7>'uL+J@@(%zBJB*:r4'Sz }@AdƒVj:ea*hhϝUsG հ! e6~+Vɿj\;° ()WvjIl&I$[dS;b9j)e|R؞dra$׳qJOm[͖8&sayzZk*#քO?Mau<%i)M!ra:!ND!ˍE3#"f'"[MMom{?u7B ZlCYs>|mڶrhkw R`wRՌ-3peendstream +endobj +857 0 obj << +/Type /Page +/Contents 858 0 R +/Resources 856 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 850 0 R +>> endobj +859 0 obj << +/D [857 0 R /XYZ 95.6414 729.2652 null] +>> endobj +405 0 obj << +/D [857 0 R /XYZ 95.6414 686.3866 null] +>> endobj +142 0 obj << +/D [857 0 R /XYZ 174.4073 652.0139 null] +>> endobj +860 0 obj << +/D [857 0 R /XYZ 95.6414 640.4342 null] +>> endobj +856 0 obj << +/Font << /F37 371 0 R /F36 315 0 R /F44 489 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +863 0 obj << +/Length 728 +/Filter /FlateDecode +>> +stream +xڭr0y +\fbEei4҆tN"lږ#L>}Sv3. 9&Ěv6N:d +sxjX6[20MdkCGogo s&arm D@f6rZ ^X]S? ɐEAyػlzn<az>i2{/öUA/_x?] ?2+QeR]@`BbE!3Uw_=@,ce=K!FRf~ѸQMTHȉ^cSe*f/F΅ U+ZN컣 +shAvG.|M]oV6;髠,3q k5endstream +endobj +862 0 obj << +/Type /Page +/Contents 863 0 R +/Resources 861 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 850 0 R +>> endobj +864 0 obj << +/D [862 0 R /XYZ 95.6414 729.2652 null] +>> endobj +406 0 obj << +/D [862 0 R /XYZ 95.6414 617.3455 null] +>> endobj +146 0 obj << +/D [862 0 R /XYZ 174.4073 582.9729 null] +>> endobj +865 0 obj << +/D [862 0 R /XYZ 95.6414 571.3932 null] +>> endobj +861 0 obj << +/Font << /F37 371 0 R /F36 315 0 R /F44 489 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +868 0 obj << +/Length 695 +/Filter /FlateDecode +>> +stream +xV]o0}Wxt05wOlvEiڔx)$Y09qŒ,{{||e `8 3 Dp 4Gn +*A4PP;⯃Q4^nh0wVyݟI1 [j=>s WGH +%bF!% CR)|; B7,Yjb|c% $sFA! +WloTxG#燉MdJf K 9V0ʍuk5&V@DCxH/S82J|MӘfyB>=LwǓϩve +c[Ba*^0l~N g@YG2djfc,q9dI+N22'^?̚%,WbD +aV,\6!i[E"syLim;<&Y7N%Ls}=gBԒ_aZP6O0>NGi'_ K { k?f8b#%T8BO>OZV ZUendstream +endobj +867 0 obj << +/Type /Page +/Contents 868 0 R +/Resources 866 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 850 0 R +>> endobj +869 0 obj << +/D [867 0 R /XYZ 95.6414 729.2652 null] +>> endobj +407 0 obj << +/D [867 0 R /XYZ 95.6414 518.7154 null] +>> endobj +150 0 obj << +/D [867 0 R /XYZ 167.2468 484.3428 null] +>> endobj +870 0 obj << +/D [867 0 R /XYZ 95.6414 472.7631 null] +>> endobj +866 0 obj << +/Font << /F37 371 0 R /F36 315 0 R /F44 489 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +873 0 obj << +/Length 895 +/Filter /FlateDecode +>> +stream +xڍVms6_!E r͵ʹTo&ɯF?}v !͵& 2 ږ_ 7JzWֿ`N4ak`4c!GÿȹʶI.~Ba'j)ښڸf ͍A2 )ud@x<3Nj'Ը;mv +yy6-GX^LgoݨKeEJߞ?[.Fj>NQA˹aO{s|'4ϋzC#Lt=*H2>FKU#o,I^TIbrR<⎺7 RBg!}6q !ۉFYr%eTFT9 dh,Ʌq7`)CJF~E|*);$Y$%%+g){4k)/8/0HByAU-AnZgy9ᠡ i;QpXk.`X|I"}zyR(> +Ex$Ѱo`I(GENjp[.ƃ*jw|c5YOc@Nc'XΓw |'0GEpaIQUCuT/:O9+X{mԙ9ŘQʆ:$e!ˣ'j-ޗÇ ~궠TMx'ҰW8yG +ƫ=uo8;5/=8kqeiy:K>f i\"h6so> endobj +874 0 obj << +/D [872 0 R /XYZ 95.6414 729.2652 null] +>> endobj +408 0 obj << +/D [872 0 R /XYZ 95.6414 379.3915 null] +>> endobj +154 0 obj << +/D [872 0 R /XYZ 167.2468 346.2607 null] +>> endobj +875 0 obj << +/D [872 0 R /XYZ 95.6414 334.681 null] +>> endobj +871 0 obj << +/Font << /F37 371 0 R /F36 315 0 R /F44 489 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +878 0 obj << +/Length 957 +/Filter /FlateDecode +>> +stream +xڍW[w6~ϯ}HX+qaD`ݜmOJ@r񂼍+,6⛙of43)bHWTlJ\@eލ/ *Р.>  XXŊP4SXc롦@_az=P xe?zuLc~̫lIqb 8T k"VLF%Edb`@(B 4;ߊz! +Vy%v`k;?˜1ϗ> H> 42^ +Y`X&#\R,'7g|boH!v(iDD"~4Tg{( :)$twڕq>ryt܈ *R!M,dq)aH=R:c~x +Qg_uhCRI~L&Yi]&=M{8wg52 MXj&P&N6esgj|={qdjrs%lȝ.O6QwėeR*f/,9 vlMv74zD܅E%@WKn[XDտ ?g a$ҐhE%M>kg4Y=e7JC*uvu-E +0 m}`F"'!kyQhպ5E=}A70"&kLu5DXh4ktM>|z:WeKqĀὛ71RpKa[c{Rv[.Gw2+VFwqTq_[EUG5 75q2 S*O dQ䣤*z\= +ںX4/&w{ag5+xU/3Rd2frvQ{!ő T6ݼW:?8ukUuX]Mendstream +endobj +877 0 obj << +/Type /Page +/Contents 878 0 R +/Resources 876 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 880 0 R +>> endobj +879 0 obj << +/D [877 0 R /XYZ 95.6414 729.2652 null] +>> endobj +876 0 obj << +/Font << /F37 371 0 R /F36 315 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +883 0 obj << +/Length 721 +/Filter /FlateDecode +>> +stream +xڥVQo0~ϯ@Y%Sqmc tOiNj2MS倛 iliHjC Y (Ap0uzZ*2mw~xV5k|9.ys82.x3 ct)*M."z'Eu0RR2D>. pE1eXOB(vmUV8:>mnT"wP_GJJCxÇ,AcnQ+X͟+B,@L&J&tCJl ^ohA1k>22QT. ;vyf2t(يq+8kGK~Lzu0õ\zCsa ReOg*zJu7RčiM8-âG&B +](ciP.KUUȿp.EYVވ2ar<2y.\F%+nj\ٮ [$w3EM6xTC8`f?L^9\Gp9}=LʊŢ`$yʓERb-T2M@Geħx\FH26nnxeVwiO9LiuVN;=!aߞ}i|t|W,vES^_UUGo-F *cz+endstream +endobj +882 0 obj << +/Type /Page +/Contents 883 0 R +/Resources 881 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 880 0 R +>> endobj +884 0 obj << +/D [882 0 R /XYZ 95.6414 729.2652 null] +>> endobj +409 0 obj << +/D [882 0 R /XYZ 95.6414 625.9667 null] +>> endobj +158 0 obj << +/D [882 0 R /XYZ 160.0862 592.8359 null] +>> endobj +885 0 obj << +/D [882 0 R /XYZ 95.6414 581.2562 null] +>> endobj +410 0 obj << +/D [882 0 R /XYZ 95.6414 178.2514 null] +>> endobj +162 0 obj << +/D [882 0 R /XYZ 167.2468 143.8787 null] +>> endobj +886 0 obj << +/D [882 0 R /XYZ 95.6414 132.299 null] +>> endobj +881 0 obj << +/Font << /F37 371 0 R /F36 315 0 R /F44 489 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +889 0 obj << +/Length 908 +/Filter /FlateDecode +>> +stream +xڍWms6_As!:ċpo\2m'Ձlsܯl l`a}vPQ*  !SSBUL73A66x^8HCJPt[Hgk6_WfCqr=LlX\C*_8+ ?\xa܄P-M;ϰAI("fmLUeUtj;iGHU ӑl P.S- ɚAFTFm$pjQ"n!t9t.1IkW#H< JQ' L6Ѫ+*kP\, C@>d C@hAT%[z|O/pޛNrssTt).-Cc .;CfC.8Mf^kCf=&[?^IcğZ2O~0'lL <^;u?gUv8sf dB\U-/< (*4gf%'*I./j¢k3~dH +!{$Qn0PFHǘb|N|1;hܭ=)y!WIq;a3QE(H=)bdd;UK$'p3NQu?8:b٣(̵`NݍѪ:!0tAv\ϧX|ڧy[jM hE9إ{Lf< Iu4}qaT}`2d~s\&%%­jzwCpIeû9ONy yϷ/e@ T٥v6fK"6Wendstream +endobj +888 0 obj << +/Type /Page +/Contents 889 0 R +/Resources 887 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 880 0 R +>> endobj +890 0 obj << +/D [888 0 R /XYZ 95.6414 729.2652 null] +>> endobj +887 0 obj << +/Font << /F37 371 0 R /F36 315 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +893 0 obj << +/Length 389 +/Filter /FlateDecode +>> +stream +xڍS]O0}W4qO>fa۔A0kcRp9'bԃBF1!a.@`Gw'C]`>8I! ~1B$Y,\½H繰07MK-x2",MBJhSRIQ.X>iq(Cf?B"_ Y_DCI%eQ2Yb@*r8޽Q/euƇp5Cm*su TҸ3|E.U򭓯.@g}]Omk::{е"NƮcz@MO&zsdeOߏNkrE8;"Q9NH+ٓj{'Lc ɞendstream +endobj +892 0 obj << +/Type /Page +/Contents 893 0 R +/Resources 891 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 880 0 R +>> endobj +894 0 obj << +/D [892 0 R /XYZ 95.6414 729.2652 null] +>> endobj +891 0 obj << +/Font << /F37 371 0 R /F36 315 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +897 0 obj << +/Length 2236 +/Filter /FlateDecode +>> +stream +xڭ]s6WtUĭ;{&5$*eNC{ /pyyttA1W 匮^ý_mqwHpB֮?p"p{x2|Us+ZLP) J)-I@j?x Z_WMUGU(*#'e}!EP7^WƪtU I^ +ѶA!J#}ȫm|n Fy>;F,Z9Z<bߩ, EQ.̝ +X"=.;lʦnU =ʮӿ5xAA-uWNbFXI~I>0#$3ֶ̍RQ%0KьdN㣥B?51C2h uh> *CQQKc2N!V~H' $&2ܐ:vb>z9qxJ( ir "KU%n˼.>NqLM|b#Cu^TK$ʲe´^u&TVC~&]0;K^{E:b,Ͳf^ppuLgO,?{R-*u ± B[ᯛ$^;1r0S: `f00F%2<m7m;z2yc2S0UIl+?U`n`l( eIYmt*u :[/8uvdŁIm5X9.77Ёf=@ZLL'.Y +u ^YYYuLPŁm5XQ;.A=A=бL@^6mj +vx]B{,C{XfDɱ\}^@_!Fܶ!jD^u|+8Gu(5 +ܮi>^Q!Dmu +ry]k"kc6 R(Sh*IPOR@(k ]~A8{*Nm1kD|XV3h­2<873p9/~Y~jG12_o%Y8j8*m^mY-` Jԝ+81[jմؓ1[?'KuՍ8rbTA?yygL; =4 0SoN/տ^x2ǡ='`ܻ. wt$\ eͳ$O"]ċ1Of%fU +/ fm=oi[~l%zK8 "<3e@ ،'IODrKJ]ן 'P#zw垻R.CIFLm]z!|,D lԺp#DO7;"PpKtLJr'\ A6[ׂ q.`PoL&Rn NQ.CtȮd{۝qıwӔ9]wf纝H Es?!' ]~T<[t@?uP8<:"*t[ e1|@`2o,|0If3[:wXde5פּ(AiMYR}^z'y(Ӎ~PƂ6uͮWdzu߹M^HYϬ\+^j!מ(NAy-V3b.q5]I2YJhp6?9,X={fkMbcmOUI4;?.endstream +endobj +896 0 obj << +/Type /Page +/Contents 897 0 R +/Resources 895 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 880 0 R +>> endobj +898 0 obj << +/D [896 0 R /XYZ 95.6414 729.2652 null] +>> endobj +411 0 obj << +/D [896 0 R /XYZ 95.6414 716.3138 null] +>> endobj +166 0 obj << +/D [896 0 R /XYZ 375.9289 705.6731 null] +>> endobj +412 0 obj << +/D [896 0 R /XYZ 95.6414 697.6815 null] +>> endobj +170 0 obj << +/D [896 0 R /XYZ 206.1516 666.2061 null] +>> endobj +899 0 obj << +/D [896 0 R /XYZ 95.6414 659.4103 null] +>> endobj +900 0 obj << +/D [896 0 R /XYZ 258.7809 648.6171 null] +>> endobj +901 0 obj << +/D [896 0 R /XYZ 95.6414 623.8899 null] +>> endobj +902 0 obj << +/D [896 0 R /XYZ 95.6414 618.9085 null] +>> endobj +903 0 obj << +/D [896 0 R /XYZ 153.4247 600.7964 null] +>> endobj +904 0 obj << +/D [896 0 R /XYZ 153.4247 600.7964 null] +>> endobj +905 0 obj << +/D [896 0 R /XYZ 188.8513 600.7964 null] +>> endobj +906 0 obj << +/D [896 0 R /XYZ 95.6414 598.0468 null] +>> endobj +907 0 obj << +/D [896 0 R /XYZ 153.4247 584.8562 null] +>> endobj +908 0 obj << +/D [896 0 R /XYZ 153.4247 584.8562 null] +>> endobj +909 0 obj << +/D [896 0 R /XYZ 211.3467 584.8562 null] +>> endobj +910 0 obj << +/D [896 0 R /XYZ 95.6414 584.7172 null] +>> endobj +911 0 obj << +/D [896 0 R /XYZ 153.4247 568.916 null] +>> endobj +912 0 obj << +/D [896 0 R /XYZ 153.4247 568.916 null] +>> endobj +913 0 obj << +/D [896 0 R /XYZ 200.4676 568.916 null] +>> endobj +914 0 obj << +/D [896 0 R /XYZ 95.6414 567.7369 null] +>> endobj +915 0 obj << +/D [896 0 R /XYZ 153.4247 552.9757 null] +>> endobj +916 0 obj << +/D [896 0 R /XYZ 153.4247 552.9757 null] +>> endobj +917 0 obj << +/D [896 0 R /XYZ 198.9037 552.9757 null] +>> endobj +918 0 obj << +/D [896 0 R /XYZ 95.6414 550.2262 null] +>> endobj +919 0 obj << +/D [896 0 R /XYZ 153.4247 537.0355 null] +>> endobj +920 0 obj << +/D [896 0 R /XYZ 153.4247 537.0355 null] +>> endobj +921 0 obj << +/D [896 0 R /XYZ 211.078 537.0355 null] +>> endobj +922 0 obj << +/D [896 0 R /XYZ 95.6414 534.2859 null] +>> endobj +923 0 obj << +/D [896 0 R /XYZ 153.4247 521.0953 null] +>> endobj +924 0 obj << +/D [896 0 R /XYZ 153.4247 521.0953 null] +>> endobj +925 0 obj << +/D [896 0 R /XYZ 209.7927 521.0953 null] +>> endobj +926 0 obj << +/D [896 0 R /XYZ 95.6414 518.3457 null] +>> endobj +927 0 obj << +/D [896 0 R /XYZ 153.4247 505.1551 null] +>> endobj +928 0 obj << +/D [896 0 R /XYZ 153.4247 505.1551 null] +>> endobj +929 0 obj << +/D [896 0 R /XYZ 194.0118 505.1551 null] +>> endobj +930 0 obj << +/D [896 0 R /XYZ 95.6414 503.976 null] +>> endobj +931 0 obj << +/D [896 0 R /XYZ 153.4247 489.2148 null] +>> endobj +932 0 obj << +/D [896 0 R /XYZ 153.4247 489.2148 null] +>> endobj +933 0 obj << +/D [896 0 R /XYZ 206.1861 489.2148 null] +>> endobj +934 0 obj << +/D [896 0 R /XYZ 95.6414 487.7753 null] +>> endobj +935 0 obj << +/D [896 0 R /XYZ 153.4247 473.2746 null] +>> endobj +936 0 obj << +/D [896 0 R /XYZ 153.4247 473.2746 null] +>> endobj +937 0 obj << +/D [896 0 R /XYZ 204.9009 473.2746 null] +>> endobj +938 0 obj << +/D [896 0 R /XYZ 95.6414 471.8351 null] +>> endobj +939 0 obj << +/D [896 0 R /XYZ 153.4247 457.3344 null] +>> endobj +940 0 obj << +/D [896 0 R /XYZ 153.4247 457.3344 null] +>> endobj +941 0 obj << +/D [896 0 R /XYZ 251.7549 457.3344 null] +>> endobj +942 0 obj << +/D [896 0 R /XYZ 95.6414 454.5848 null] +>> endobj +943 0 obj << +/D [896 0 R /XYZ 153.4247 441.3942 null] +>> endobj +944 0 obj << +/D [896 0 R /XYZ 153.4247 441.3942 null] +>> endobj +945 0 obj << +/D [896 0 R /XYZ 250.4697 441.3942 null] +>> endobj +946 0 obj << +/D [896 0 R /XYZ 95.6414 438.6446 null] +>> endobj +947 0 obj << +/D [896 0 R /XYZ 153.4247 425.4539 null] +>> endobj +948 0 obj << +/D [896 0 R /XYZ 153.4247 425.4539 null] +>> endobj +949 0 obj << +/D [896 0 R /XYZ 234.6887 425.4539 null] +>> endobj +950 0 obj << +/D [896 0 R /XYZ 95.6414 424.2749 null] +>> endobj +951 0 obj << +/D [896 0 R /XYZ 153.4247 409.5137 null] +>> endobj +952 0 obj << +/D [896 0 R /XYZ 153.4247 409.5137 null] +>> endobj +953 0 obj << +/D [896 0 R /XYZ 191.0629 409.5137 null] +>> endobj +954 0 obj << +/D [896 0 R /XYZ 95.6414 408.133 null] +>> endobj +955 0 obj << +/D [896 0 R /XYZ 153.4247 393.5735 null] +>> endobj +956 0 obj << +/D [896 0 R /XYZ 153.4247 393.5735 null] +>> endobj +957 0 obj << +/D [896 0 R /XYZ 246.8631 393.5735 null] +>> endobj +958 0 obj << +/D [896 0 R /XYZ 95.6414 390.7641 null] +>> endobj +959 0 obj << +/D [896 0 R /XYZ 153.4247 377.6333 null] +>> endobj +960 0 obj << +/D [896 0 R /XYZ 153.4247 377.6333 null] +>> endobj +961 0 obj << +/D [896 0 R /XYZ 239.5806 377.6333 null] +>> endobj +413 0 obj << +/D [896 0 R /XYZ 95.6414 369.8425 null] +>> endobj +174 0 obj << +/D [896 0 R /XYZ 202.2926 338.1404 null] +>> endobj +962 0 obj << +/D [896 0 R /XYZ 95.6414 328.5599 null] +>> endobj +414 0 obj << +/D [896 0 R /XYZ 95.6414 317.7419 null] +>> endobj +178 0 obj << +/D [896 0 R /XYZ 226.5306 288.2873 null] +>> endobj +963 0 obj << +/D [896 0 R /XYZ 95.6414 285.792 null] +>> endobj +964 0 obj << +/D [896 0 R /XYZ 95.6414 279.7646 null] +>> endobj +965 0 obj << +/D [896 0 R /XYZ 153.4247 259.2462 null] +>> endobj +966 0 obj << +/D [896 0 R /XYZ 153.4247 259.2462 null] +>> endobj +967 0 obj << +/D [896 0 R /XYZ 175.0135 259.2462 null] +>> endobj +968 0 obj << +/D [896 0 R /XYZ 95.6414 257.1591 null] +>> endobj +969 0 obj << +/D [896 0 R /XYZ 153.4247 243.306 null] +>> endobj +970 0 obj << +/D [896 0 R /XYZ 153.4247 243.306 null] +>> endobj +971 0 obj << +/D [896 0 R /XYZ 191.8001 243.306 null] +>> endobj +972 0 obj << +/D [896 0 R /XYZ 95.6414 240.4966 null] +>> endobj +973 0 obj << +/D [896 0 R /XYZ 153.4247 227.3658 null] +>> endobj +974 0 obj << +/D [896 0 R /XYZ 153.4247 227.3658 null] +>> endobj +975 0 obj << +/D [896 0 R /XYZ 180.7219 227.3658 null] +>> endobj +976 0 obj << +/D [896 0 R /XYZ 95.6414 225.2786 null] +>> endobj +977 0 obj << +/D [896 0 R /XYZ 153.4247 211.4255 null] +>> endobj +978 0 obj << +/D [896 0 R /XYZ 153.4247 211.4255 null] +>> endobj +979 0 obj << +/D [896 0 R /XYZ 186.0819 211.4255 null] +>> endobj +980 0 obj << +/D [896 0 R /XYZ 95.6414 208.676 null] +>> endobj +981 0 obj << +/D [896 0 R /XYZ 153.4247 195.4853 null] +>> endobj +982 0 obj << +/D [896 0 R /XYZ 153.4247 195.4853 null] +>> endobj +983 0 obj << +/D [896 0 R /XYZ 197.8774 195.4853 null] +>> endobj +415 0 obj << +/D [896 0 R /XYZ 95.6414 187.6946 null] +>> endobj +182 0 obj << +/D [896 0 R /XYZ 209.7868 157.3184 null] +>> endobj +984 0 obj << +/D [896 0 R /XYZ 95.6414 148.7958 null] +>> endobj +985 0 obj << +/D [896 0 R /XYZ 306.832 129.3732 null] +>> endobj +986 0 obj << +/D [896 0 R /XYZ 169.2533 118.4143 null] +>> endobj +987 0 obj << +/D [896 0 R /XYZ 314.954 118.4143 null] +>> endobj +988 0 obj << +/D [896 0 R /XYZ 200.2063 107.4554 null] +>> endobj +989 0 obj << +/D [896 0 R /XYZ 95.6414 91.301 null] +>> endobj +990 0 obj << +/D [896 0 R /XYZ 222.3263 80.5563 null] +>> endobj +991 0 obj << +/D [896 0 R /XYZ 143.462 69.5974 null] +>> endobj +992 0 obj << +/D [896 0 R /XYZ 499.3339 69.5974 null] +>> endobj +895 0 obj << +/Font << /F23 242 0 R /F28 250 0 R /F37 371 0 R /F36 315 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +995 0 obj << +/Length 2451 +/Filter /FlateDecode +>> +stream +xڵYm۸_fDR$Eo)ZűpHIEa$Crp8~*Y*9I,Mx_pdzL9ׇ7~UD$Ww\R,]9x鶬_DmQmI{YB_ۛOw1X +q^ؑ르"I#ɢ& &c.w׹tj|xjAஶ"Wh"Xk)D7^P989U^KVnzvIhBiPLEq1LFSpH/?O_u>C~ Za=T갣r~ũՎos +XY[Ң% q\%(Kxf;p{۵кn V phYكD՝! p0G&s0(Q4$~`dbP@ YPK/n]%CM1hfkǀaWfK nJwmlk'aö^jT-:2@/֕⏪nbm;:E.~̓Gq p>h{ |&W* 67Z@o,;G@J xE5NZmaGHEh4K6 +jb%[&E_!a)6Z fZoxt ߸e+JG +n㇘:o!wgZ͹3,ey3lwE3!yq9z)Ug+Qz( pFϙr42~ 8Ʉ^rT +xΔ 0L5>_(h{A" ﹴMo^M/bl]l`50Z=R8Sv<Ύ7{РZCHAִ,(Ᲊ` x6$76GFH)kQn?"}&3m3R-c7 `?@PpR*7?88p~J*.meaP[M {ZsmnYmŇm{`mĺ> endobj +996 0 obj << +/D [994 0 R /XYZ 95.6414 729.2652 null] +>> endobj +420 0 obj << +/D [994 0 R /XYZ 95.6414 741.2204 null] +>> endobj +997 0 obj << +/D [994 0 R /XYZ 95.6414 716.3138 null] +>> endobj +998 0 obj << +/D [994 0 R /XYZ 481.7933 706.3512 null] +>> endobj +416 0 obj << +/D [994 0 R /XYZ 95.6414 679.2379 null] +>> endobj +186 0 obj << +/D [994 0 R /XYZ 213.1258 646.2665 null] +>> endobj +999 0 obj << +/D [994 0 R /XYZ 95.6414 637.557 null] +>> endobj +1000 0 obj << +/D [994 0 R /XYZ 438.7548 618.3213 null] +>> endobj +1001 0 obj << +/D [994 0 R /XYZ 143.462 596.4035 null] +>> endobj +1002 0 obj << +/D [994 0 R /XYZ 95.6414 590.4359 null] +>> endobj +1003 0 obj << +/D [994 0 R /XYZ 211.8151 569.5043 null] +>> endobj +1004 0 obj << +/D [994 0 R /XYZ 451.3544 569.5043 null] +>> endobj +1005 0 obj << +/D [994 0 R /XYZ 95.6414 561.7136 null] +>> endobj +417 0 obj << +/D [994 0 R /XYZ 95.6414 505.5293 null] +>> endobj +190 0 obj << +/D [994 0 R /XYZ 239.09 471.2319 null] +>> endobj +1006 0 obj << +/D [994 0 R /XYZ 95.6414 461.6514 null] +>> endobj +1010 0 obj << +/D [994 0 R /XYZ 95.6414 412.9754 null] +>> endobj +1011 0 obj << +/D [994 0 R /XYZ 95.6414 386.0762 null] +>> endobj +1012 0 obj << +/D [994 0 R /XYZ 95.6414 375.1173 null] +>> endobj +1013 0 obj << +/D [994 0 R /XYZ 95.6414 370.136 null] +>> endobj +1014 0 obj << +/D [994 0 R /XYZ 153.4247 352.0239 null] +>> endobj +1015 0 obj << +/D [994 0 R /XYZ 153.4247 352.0239 null] +>> endobj +1016 0 obj << +/D [994 0 R /XYZ 95.6414 350.8234 null] +>> endobj +1017 0 obj << +/D [994 0 R /XYZ 153.4247 336.0837 null] +>> endobj +1018 0 obj << +/D [994 0 R /XYZ 153.4247 336.0837 null] +>> endobj +1019 0 obj << +/D [994 0 R /XYZ 95.6414 334.8832 null] +>> endobj +1020 0 obj << +/D [994 0 R /XYZ 153.4247 320.1434 null] +>> endobj +1021 0 obj << +/D [994 0 R /XYZ 153.4247 320.1434 null] +>> endobj +1022 0 obj << +/D [994 0 R /XYZ 95.6414 318.943 null] +>> endobj +1023 0 obj << +/D [994 0 R /XYZ 153.4247 304.2032 null] +>> endobj +1024 0 obj << +/D [994 0 R /XYZ 153.4247 304.2032 null] +>> endobj +1025 0 obj << +/D [994 0 R /XYZ 95.6414 303.0028 null] +>> endobj +1026 0 obj << +/D [994 0 R /XYZ 153.4247 288.263 null] +>> endobj +1027 0 obj << +/D [994 0 R /XYZ 153.4247 288.263 null] +>> endobj +1028 0 obj << +/D [994 0 R /XYZ 95.6414 287.0625 null] +>> endobj +1029 0 obj << +/D [994 0 R /XYZ 153.4247 272.3228 null] +>> endobj +1030 0 obj << +/D [994 0 R /XYZ 153.4247 272.3228 null] +>> endobj +1031 0 obj << +/D [994 0 R /XYZ 95.6414 271.1223 null] +>> endobj +1032 0 obj << +/D [994 0 R /XYZ 153.4247 256.3825 null] +>> endobj +1033 0 obj << +/D [994 0 R /XYZ 153.4247 256.3825 null] +>> endobj +418 0 obj << +/D [994 0 R /XYZ 95.6414 250.2008 null] +>> endobj +194 0 obj << +/D [994 0 R /XYZ 188.6081 216.8896 null] +>> endobj +1034 0 obj << +/D [994 0 R /XYZ 95.6414 207.5147 null] +>> endobj +419 0 obj << +/D [994 0 R /XYZ 95.6414 174.5734 null] +>> endobj +198 0 obj << +/D [994 0 R /XYZ 245.7216 145.1188 null] +>> endobj +1035 0 obj << +/D [994 0 R /XYZ 95.6414 136.4093 null] +>> endobj +1036 0 obj << +/D [994 0 R /XYZ 314.8495 128.1325 null] +>> endobj +1037 0 obj << +/D [994 0 R /XYZ 95.6414 98.4239 null] +>> endobj +1038 0 obj << +/D [994 0 R /XYZ 232.9273 90.2744 null] +>> endobj +1039 0 obj << +/D [994 0 R /XYZ 443.385 90.2744 null] +>> endobj +1040 0 obj << +/D [994 0 R /XYZ 334.0895 79.3155 null] +>> endobj +993 0 obj << +/Font << /F37 371 0 R /F28 250 0 R /F36 315 0 R /F23 242 0 R /F11 1009 0 R /F52 774 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1043 0 obj << +/Length 2885 +/Filter /FlateDecode +>> +stream +xڥˎ5Dz ,!բCק^lI*V"Y6 ?cD&ZA$EF/@gZ_s}|xS.r'Ax-8P&6" &[C,%_|(`a(gz!+A8e3탺Gv6v]2 2fԧ V #e/7O'+Ϫ2İa@G\d؄Bhk'SǠI`$N1U'av< r[0Uw^1 mdl3&Ty,IV )$Ps¶Y5UXEA5GHOVߚlմd&KUCvscCI*FǘM/p@.LԯtA#6o:Sge%˓{XtQP1Eѹ#cc%|آ0~hΏϹ`Qm -q0. +s@ 0J Z};Rޑ*nԎ+W=@3=5 5<~G=}㤢]1w2njTuiPnW"29GY1 DUbQNOWz<0J#jܺK'ޛ3n$rKҕ*KS64gfsg4&gg5dl؃k*Q[auVpvC2#xU$Pq,UT=($@{|VeҏSelœ)W<'b?6{{L3P$Be wNCHEysuq*!/f8ǕΪyaFn٢S2E~b?ZY?],W\Z)M>Qk.Bs No- JMu-}3tv3T]^}yY-wZpEsB: $w%p9 /< <⣿g%+ћQNQJJ_'K}E_萳d~kbS{#etLKޡy̎@l+endstream +endobj +1042 0 obj << +/Type /Page +/Contents 1043 0 R +/Resources 1041 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 1075 0 R +>> endobj +1044 0 obj << +/D [1042 0 R /XYZ 95.6414 729.2652 null] +>> endobj +1045 0 obj << +/D [1042 0 R /XYZ 143.462 706.3512 null] +>> endobj +202 0 obj << +/D [1042 0 R /XYZ 322.0759 657.2254 null] +>> endobj +1046 0 obj << +/D [1042 0 R /XYZ 95.6414 648.5159 null] +>> endobj +1047 0 obj << +/D [1042 0 R /XYZ 95.6414 588.6127 null] +>> endobj +1048 0 obj << +/D [1042 0 R /XYZ 351.4345 580.4632 null] +>> endobj +1049 0 obj << +/D [1042 0 R /XYZ 95.6414 550.7547 null] +>> endobj +1050 0 obj << +/D [1042 0 R /XYZ 157.392 531.6463 null] +>> endobj +1051 0 obj << +/D [1042 0 R /XYZ 295.9245 531.6463 null] +>> endobj +1052 0 obj << +/D [1042 0 R /XYZ 95.6414 501.9378 null] +>> endobj +1053 0 obj << +/D [1042 0 R /XYZ 162.8524 493.7883 null] +>> endobj +1054 0 obj << +/D [1042 0 R /XYZ 212.0445 493.7883 null] +>> endobj +1055 0 obj << +/D [1042 0 R /XYZ 310.5527 471.8705 null] +>> endobj +1056 0 obj << +/D [1042 0 R /XYZ 426.8449 471.8705 null] +>> endobj +1057 0 obj << +/D [1042 0 R /XYZ 169.2957 460.9116 null] +>> endobj +1058 0 obj << +/D [1042 0 R /XYZ 465.6539 449.9527 null] +>> endobj +1059 0 obj << +/D [1042 0 R /XYZ 95.6414 431.203 null] +>> endobj +1060 0 obj << +/D [1042 0 R /XYZ 292.4494 412.0946 null] +>> endobj +1061 0 obj << +/D [1042 0 R /XYZ 411.1336 401.1357 null] +>> endobj +1062 0 obj << +/D [1042 0 R /XYZ 479.5303 401.1357 null] +>> endobj +1063 0 obj << +/D [1042 0 R /XYZ 95.6414 371.4272 null] +>> endobj +1064 0 obj << +/D [1042 0 R /XYZ 143.462 352.3188 null] +>> endobj +1065 0 obj << +/D [1042 0 R /XYZ 95.6414 347.1985 null] +>> endobj +1066 0 obj << +/D [1042 0 R /XYZ 164.133 336.3786 null] +>> endobj +1067 0 obj << +/D [1042 0 R /XYZ 407.3489 325.4197 null] +>> endobj +421 0 obj << +/D [1042 0 R /XYZ 95.6414 317.6289 null] +>> endobj +206 0 obj << +/D [1042 0 R /XYZ 336.1436 287.2528 null] +>> endobj +1068 0 obj << +/D [1042 0 R /XYZ 95.6414 278.5433 null] +>> endobj +1069 0 obj << +/D [1042 0 R /XYZ 443.6094 259.3076 null] +>> endobj +1070 0 obj << +/D [1042 0 R /XYZ 487.1731 259.3076 null] +>> endobj +1071 0 obj << +/D [1042 0 R /XYZ 95.6414 240.5579 null] +>> endobj +1072 0 obj << +/D [1042 0 R /XYZ 95.6414 186.7597 null] +>> endobj +1073 0 obj << +/D [1042 0 R /XYZ 95.6414 119.0477 null] +>> endobj +1074 0 obj << +/D [1042 0 R /XYZ 95.6414 85.7386 null] +>> endobj +1041 0 obj << +/Font << /F37 371 0 R /F36 315 0 R /F28 250 0 R /F23 242 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1078 0 obj << +/Length 1682 +/Filter /FlateDecode +>> +stream +xڭk6{E ]TK_0]w{Æ!֡Ulcy}iHQrwkpEJߤ!EDrHEDE.3Wg/nt<b=b-˶MY_Do~>,y??=n=sTwH,26(- 0 \XiY}[,WI0D!^܊h#`Fxt%S0$Q۳?a`:w&x,ˮM},Us7;M+kUӚ>lV1!`^ neN_.^u?zKkxr/٤QPAļժ%h9b w`_5#`ބ(T_cA`PjRsmUQU*F za8O(أ@YEn+IJUum` +E v$N}U͢fyxCSE DO.@$Iwkځ.@1 c`MH[\_ktG|=舄Y J/L%AI1ԐF\IF!sC9oA鉄߇DȄ/YioC +*O .w$"4_, |0qcU;Vah tdEWUiJ3&8O^ַ>ޣHEX:7sp)es`t7lkН#̢(uzw(njkV J1:H@@+FaqE-!mpA C +7]]@\ƙoޠ2S4;CLyj3Av9Pz!OVuU ~ rCV,Tk,W> endobj +1079 0 obj << +/D [1077 0 R /XYZ 95.6414 729.2652 null] +>> endobj +422 0 obj << +/D [1077 0 R /XYZ 95.6414 685.0451 null] +>> endobj +210 0 obj << +/D [1077 0 R /XYZ 141.7999 651.9143 null] +>> endobj +1080 0 obj << +/D [1077 0 R /XYZ 95.6414 645.1185 null] +>> endobj +1081 0 obj << +/D [1077 0 R /XYZ 193.4217 612.4075 null] +>> endobj +423 0 obj << +/D [1077 0 R /XYZ 95.6414 598.6391 null] +>> endobj +214 0 obj << +/D [1077 0 R /XYZ 236.9944 569.1845 null] +>> endobj +1082 0 obj << +/D [1077 0 R /XYZ 95.6414 560.4751 null] +>> endobj +1083 0 obj << +/D [1077 0 R /XYZ 273.6031 552.1982 null] +>> endobj +1084 0 obj << +/D [1077 0 R /XYZ 329.4557 552.1982 null] +>> endobj +1085 0 obj << +/D [1077 0 R /XYZ 95.6414 531.0625 null] +>> endobj +424 0 obj << +/D [1077 0 R /XYZ 95.6414 481.7231 null] +>> endobj +218 0 obj << +/D [1077 0 R /XYZ 237.5007 448.6765 null] +>> endobj +1086 0 obj << +/D [1077 0 R /XYZ 95.6414 439.967 null] +>> endobj +1087 0 obj << +/D [1077 0 R /XYZ 294.8793 431.6902 null] +>> endobj +1088 0 obj << +/D [1077 0 R /XYZ 95.6414 399.5956 null] +>> endobj +1089 0 obj << +/D [1077 0 R /XYZ 95.6414 379.8451 null] +>> endobj +1090 0 obj << +/D [1077 0 R /XYZ 95.6414 358.8484 null] +>> endobj +1091 0 obj << +/D [1077 0 R /XYZ 95.6414 339.0979 null] +>> endobj +425 0 obj << +/D [1077 0 R /XYZ 95.6414 320.4872 null] +>> endobj +222 0 obj << +/D [1077 0 R /XYZ 316.1694 290.1111 null] +>> endobj +1092 0 obj << +/D [1077 0 R /XYZ 95.6414 281.4016 null] +>> endobj +1093 0 obj << +/D [1077 0 R /XYZ 455.3691 273.1248 null] +>> endobj +1094 0 obj << +/D [1077 0 R /XYZ 302.0579 251.207 null] +>> endobj +1095 0 obj << +/D [1077 0 R /XYZ 380.9756 251.207 null] +>> endobj +1096 0 obj << +/D [1077 0 R /XYZ 95.6414 227.476 null] +>> endobj +1097 0 obj << +/D [1077 0 R /XYZ 95.6414 161.0058 null] +>> endobj +1098 0 obj << +/D [1077 0 R /XYZ 457.1436 150.1859 null] +>> endobj +1099 0 obj << +/D [1077 0 R /XYZ 175.8324 139.227 null] +>> endobj +434 0 obj << +/D [1077 0 R /XYZ 95.6414 109.5184 null] +>> endobj +1076 0 obj << +/Font << /F37 371 0 R /F36 315 0 R /F23 242 0 R /F28 250 0 R /F52 774 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1102 0 obj << +/Length 3489 +/Filter /FlateDecode +>> +stream +x]~ P/fERG.פE-qɒ+ɻ eIw7y- r8$M?y2IU.TbMqxxX (FΑBƕb2"#OF%u>u_jR}9]m+ū4^V}Qü[ԵNҷ?yTЗd0Th)ahfu(dQIU:"v˿_)-,HO5v>:"䩪kO)V4\i`1rGCX޶! 0d;=^ hޕ0m~щ=:ޭg0wΦ+2sO_R +Z`w3 X/Yܞ06#Vj8 |Knط8P|EUPP<;S[>F/g:jy#mP #xmǫ>PT 4eVSp5kƁ82cf0Lvß9/fMDh5Y*4sPt尻Ѧ;-AT6iTd*JTi /qg"i|j û8劎,c>_c-8vm] McjxY(ny&ݷu>j#NLb)=9i;Ţ4'Ớd9#l妙Ww]~'TK2*Ntg `6۲ ÚEe#|Z(7  v>tr(DzIhJвc]62ʤ㴶{X78MFŋt:̅>uP)g_\y@ = AqYd%0;lƋ}Xҧ?xGߕ|$^<6 !(}?`9P|nصNLO)islhpޝV`8u\`~|HD,E91Z.PXmCiH/)u2bjZv}i cݴl?/WP ,+Il]2}\FaMhzL]LYײɚU4m\yPa,r%'1y^:"Z @uz1i1zA#[4bI!0Q\SH$ZbEd"2~MnIBИ*zZ( +xG +ׯ z]WPCt i86%q^,5Zu Ny"CY['jǏ,`Cu r=/Gj,2ѤSۇwFrꇠ_6[+^_8Ԧ~Ɲ],êauUT]}EߦXmzUv}]o3:3c&";H9q?|puT fA9H"9Hw K4j;ZקB*B:g@/ÒI@>iu'<;Tch bьǨ NFY2H/0y +4R%p<;וu2< l TCNHg F'Uހ0V|ji71cJV-eJ\=ڔmإhwkNEW) Z^]ߢK2h"j,H>uM1u989 +A{B;vPH6h|-6l`M =u){Ce-5WM{UhBS5Pvvc voqӻeV +X ʮo%WjJƚXTUa|4sXb$zMƒkj| &c6 +@ݙ@!e`?<^ 7XDQzaK}Ģ#U}I+w:Dhyf˦ nXʚ@ Pemu]FWemm76C$?$m: m~z@D >X^Ԟ{@σcb Pgɤa)/eY$[qpKRj\[sʹ\Jbe(1t[iA9q.J]`,L<>Βbv""Ih =j%$ȉ8Z& j03"ɗJ"Y"5 /W]}GXMur! Ǟ:5/ 5cǪ=pݗ +bpfILagG|\es:phΖG)49zc\KwFzAu-균M$fUluSʥ,! 2y+d&(Xv>9|g_2C\Ļ%а6(nk] DbͯP\l|Ȯ|G`aֹN_& 9]J].qU;]?& >%GʡU_6 BVQ[Gp:2?=Mri 'N;BȊH0yee@!j曇,x#> endobj +1103 0 obj << +/D [1101 0 R /XYZ 95.6414 729.2652 null] +>> endobj +226 0 obj << +/D [1101 0 R /XYZ 441.9715 706.3512 null] +>> endobj +1104 0 obj << +/D [1101 0 R /XYZ 95.6414 697.8285 null] +>> endobj +1105 0 obj << +/D [1101 0 R /XYZ 95.6414 651.2927 null] +>> endobj +1106 0 obj << +/D [1101 0 R /XYZ 265.3154 640.5479 null] +>> endobj +1107 0 obj << +/D [1101 0 R /XYZ 315.1886 629.589 null] +>> endobj +1108 0 obj << +/D [1101 0 R /XYZ 95.6414 588.9216 null] +>> endobj +1109 0 obj << +/D [1101 0 R /XYZ 304.8517 558.8543 null] +>> endobj +1110 0 obj << +/D [1101 0 R /XYZ 487.1731 558.8543 null] +>> endobj +1111 0 obj << +/D [1101 0 R /XYZ 143.462 536.9365 null] +>> endobj +1112 0 obj << +/D [1101 0 R /XYZ 491.5571 536.9365 null] +>> endobj +1113 0 obj << +/D [1101 0 R /XYZ 143.462 515.0187 null] +>> endobj +435 0 obj << +/D [1101 0 R /XYZ 95.6414 497.2653 null] +>> endobj +230 0 obj << +/D [1101 0 R /XYZ 228.9052 465.5631 null] +>> endobj +1114 0 obj << +/D [1101 0 R /XYZ 95.6414 458.7673 null] +>> endobj +1115 0 obj << +/D [1101 0 R /XYZ 95.6414 434.2058 null] +>> endobj +1116 0 obj << +/D [1101 0 R /XYZ 95.6414 429.2244 null] +>> endobj +1117 0 obj << +/D [1101 0 R /XYZ 153.4247 411.1123 null] +>> endobj +1118 0 obj << +/D [1101 0 R /XYZ 153.4247 411.1123 null] +>> endobj +1119 0 obj << +/D [1101 0 R /XYZ 198.96 411.1123 null] +>> endobj +1120 0 obj << +/D [1101 0 R /XYZ 381.6358 411.1123 null] +>> endobj +1121 0 obj << +/D [1101 0 R /XYZ 464.8012 411.1123 null] +>> endobj +1122 0 obj << +/D [1101 0 R /XYZ 175.9583 400.1534 null] +>> endobj +1123 0 obj << +/D [1101 0 R /XYZ 248.7619 389.1945 null] +>> endobj +1124 0 obj << +/D [1101 0 R /XYZ 95.6414 378.0214 null] +>> endobj +1125 0 obj << +/D [1101 0 R /XYZ 153.4247 362.2954 null] +>> endobj +1126 0 obj << +/D [1101 0 R /XYZ 153.4247 362.2954 null] +>> endobj +1127 0 obj << +/D [1101 0 R /XYZ 189.2445 362.2954 null] +>> endobj +1128 0 obj << +/D [1101 0 R /XYZ 211.2357 362.2954 null] +>> endobj +1129 0 obj << +/D [1101 0 R /XYZ 95.6414 337.5681 null] +>> endobj +1130 0 obj << +/D [1101 0 R /XYZ 153.4247 324.4373 null] +>> endobj +1131 0 obj << +/D [1101 0 R /XYZ 153.4247 324.4373 null] +>> endobj +1132 0 obj << +/D [1101 0 R /XYZ 184.056 324.4373 null] +>> endobj +1133 0 obj << +/D [1101 0 R /XYZ 214.1615 324.4373 null] +>> endobj +1134 0 obj << +/D [1101 0 R /XYZ 95.6414 299.7101 null] +>> endobj +1135 0 obj << +/D [1101 0 R /XYZ 153.4247 286.5793 null] +>> endobj +1136 0 obj << +/D [1101 0 R /XYZ 153.4247 286.5793 null] +>> endobj +1137 0 obj << +/D [1101 0 R /XYZ 200.1711 286.5793 null] +>> endobj +1138 0 obj << +/D [1101 0 R /XYZ 426.9285 275.6204 null] +>> endobj +1139 0 obj << +/D [1101 0 R /XYZ 95.6414 250.953 null] +>> endobj +1140 0 obj << +/D [1101 0 R /XYZ 153.4247 237.7624 null] +>> endobj +1141 0 obj << +/D [1101 0 R /XYZ 153.4247 237.7624 null] +>> endobj +1142 0 obj << +/D [1101 0 R /XYZ 182.2635 237.7624 null] +>> endobj +1143 0 obj << +/D [1101 0 R /XYZ 95.6414 223.9941 null] +>> endobj +1144 0 obj << +/D [1101 0 R /XYZ 153.4247 210.8632 null] +>> endobj +1145 0 obj << +/D [1101 0 R /XYZ 153.4247 210.8632 null] +>> endobj +1146 0 obj << +/D [1101 0 R /XYZ 193.9387 210.8632 null] +>> endobj +1147 0 obj << +/D [1101 0 R /XYZ 95.6414 197.0949 null] +>> endobj +1148 0 obj << +/D [1101 0 R /XYZ 153.4247 183.9641 null] +>> endobj +1149 0 obj << +/D [1101 0 R /XYZ 153.4247 183.9641 null] +>> endobj +1150 0 obj << +/D [1101 0 R /XYZ 200.2593 183.9641 null] +>> endobj +1151 0 obj << +/D [1101 0 R /XYZ 95.6414 170.1958 null] +>> endobj +1152 0 obj << +/D [1101 0 R /XYZ 153.4247 157.065 null] +>> endobj +1153 0 obj << +/D [1101 0 R /XYZ 153.4247 157.065 null] +>> endobj +1154 0 obj << +/D [1101 0 R /XYZ 177.9744 157.065 null] +>> endobj +1155 0 obj << +/D [1101 0 R /XYZ 439.1188 157.065 null] +>> endobj +1156 0 obj << +/D [1101 0 R /XYZ 312.8851 135.1472 null] +>> endobj +1157 0 obj << +/D [1101 0 R /XYZ 95.6414 132.3378 null] +>> endobj +1158 0 obj << +/D [1101 0 R /XYZ 153.4247 119.207 null] +>> endobj +1159 0 obj << +/D [1101 0 R /XYZ 153.4247 119.207 null] +>> endobj +1160 0 obj << +/D [1101 0 R /XYZ 200.2593 119.207 null] +>> endobj +1161 0 obj << +/D [1101 0 R /XYZ 230.8442 108.248 null] +>> endobj +1162 0 obj << +/D [1101 0 R /XYZ 413.8181 108.248 null] +>> endobj +1163 0 obj << +/D [1101 0 R /XYZ 238.9116 97.2891 null] +>> endobj +1164 0 obj << +/D [1101 0 R /XYZ 95.6414 72.5619 null] +>> endobj +1100 0 obj << +/Font << /F37 371 0 R /F23 242 0 R /F28 250 0 R /F36 315 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1167 0 obj << +/Length 3132 +/Filter /FlateDecode +>> +stream +xZͳ _[gVD}餝ti^M%>[]Yr,y_^)S2eis  HM?$#m1K)N%ڹT<d,6V(X*yy.?n?Ϫ)_ 0|:*=?P/[O~  ! &y 6;!Xx($Y(mF"$,K3dG!T4Ld<۸Yӯ#u/FoRPli1$!d,9)idx YU 䶫ka= k}RYъ}YQmvRҷմAVP9TV1D̰Q jLJX&̝P(mwVE]Q @1W{S4beZm_2?kpOf$>M9t2NO K9T@Ps +~aHXY_FWg2?dT[kCK#S{ / H/D~VZ-V&;!w +`ˁJjѣ,HelP}G% Tm'Z0 {&?jBqrВujx|p%#&$êi N֫An$pOת/G_-,J_kLT9C)PTPp]3Pr`(Kd}'b`w'ܤǓL/2Ɵh@/'.2`2-}nD2>f\Ul$15|ڼ{uDѿ;SךcJErMi&]Nv6-]Z~ d찡2_942_׶遘3jg,1uKFCs= ޹q&/KvʳpZ5U*TqFJ E# ŧ}aתSkPxz*yZ?`.ռUTVª[HVΙuĒ8[a֒IFg5ki&ܬq@0k4h,t$8#j  |`s! 5#ġzK51Wʽ7"B!!$"[YD"s,L#F$@a#' +*V }sӷ:rS ;f8tp2fpXv LBѡzFKF5h1FWW^8B!E&_=V9P@f3.kH7FuiHaȲ, @rR-u bɕuE{V(R$IO(bkj+h ݴ`bP{u*Br4#kS 7Ē ,m7Vʑ0YqhliRju9jniGCCD0}A‚,]8sR-u ަb͕4q +O~۔rE@?)C-_^ lJ ָPuuKumF@5.m8=ND}omҠیf0hn_g1K5j|>+w'|#9)/.88 ]'}4 8i81ߠ#먜hoCTjesVjas17|A1\y Tq];1 [W]/A/ TR-/%1 O3/1U`d jס& +pvqkt`3h!2T?C>zUO߽:hM0D.KXǓ=+ g"cCA5UӍ._u8/j gUßij{0ӻi{joT3/9ƹ?aZ|њgݹmJoP *ZhBN-H s%6/x&/ +Mms7N Æ<B*2G> ߨˏ0$^E}F!b'1^"$!FAg"X͛MkNnP'z"\4SEF5kMezhS҆t"47o|};ʧk(=^@E=*&v?Ƀ43dS4\ ;v Z+} h +y!n>`0= +Zfendstream +endobj +1166 0 obj << +/Type /Page +/Contents 1167 0 R +/Resources 1165 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 1075 0 R +>> endobj +1168 0 obj << +/D [1166 0 R /XYZ 95.6414 729.2652 null] +>> endobj +1169 0 obj << +/D [1166 0 R /XYZ 153.4247 706.3512 null] +>> endobj +1170 0 obj << +/D [1166 0 R /XYZ 153.4247 706.3512 null] +>> endobj +1171 0 obj << +/D [1166 0 R /XYZ 188.6429 706.3512 null] +>> endobj +1172 0 obj << +/D [1166 0 R /XYZ 210.0325 706.3512 null] +>> endobj +1173 0 obj << +/D [1166 0 R /XYZ 281.1685 684.4334 null] +>> endobj +1174 0 obj << +/D [1166 0 R /XYZ 213.6778 673.4745 null] +>> endobj +1175 0 obj << +/D [1166 0 R /XYZ 95.6414 670.665 null] +>> endobj +1176 0 obj << +/D [1166 0 R /XYZ 153.4247 657.5342 null] +>> endobj +1177 0 obj << +/D [1166 0 R /XYZ 153.4247 657.5342 null] +>> endobj +1178 0 obj << +/D [1166 0 R /XYZ 182.617 657.5342 null] +>> endobj +1179 0 obj << +/D [1166 0 R /XYZ 95.6414 643.7659 null] +>> endobj +1180 0 obj << +/D [1166 0 R /XYZ 153.4247 630.6351 null] +>> endobj +1181 0 obj << +/D [1166 0 R /XYZ 153.4247 630.6351 null] +>> endobj +1182 0 obj << +/D [1166 0 R /XYZ 184.1832 630.6351 null] +>> endobj +1183 0 obj << +/D [1166 0 R /XYZ 214.6706 630.6351 null] +>> endobj +1184 0 obj << +/D [1166 0 R /XYZ 278.2775 630.6351 null] +>> endobj +1185 0 obj << +/D [1166 0 R /XYZ 95.6414 606.6302 null] +>> endobj +1186 0 obj << +/D [1166 0 R /XYZ 153.4247 592.7771 null] +>> endobj +1187 0 obj << +/D [1166 0 R /XYZ 153.4247 592.7771 null] +>> endobj +1188 0 obj << +/D [1166 0 R /XYZ 188.1943 592.7771 null] +>> endobj +1189 0 obj << +/D [1166 0 R /XYZ 214.5752 592.7771 null] +>> endobj +1190 0 obj << +/D [1166 0 R /XYZ 270.2161 592.7771 null] +>> endobj +1191 0 obj << +/D [1166 0 R /XYZ 95.6414 590.0275 null] +>> endobj +1192 0 obj << +/D [1166 0 R /XYZ 153.4247 576.8368 null] +>> endobj +1193 0 obj << +/D [1166 0 R /XYZ 153.4247 576.8368 null] +>> endobj +1194 0 obj << +/D [1166 0 R /XYZ 193.1857 576.8368 null] +>> endobj +1195 0 obj << +/D [1166 0 R /XYZ 218.4017 576.8368 null] +>> endobj +1196 0 obj << +/D [1166 0 R /XYZ 272.8776 576.8368 null] +>> endobj +1197 0 obj << +/D [1166 0 R /XYZ 95.6414 563.0685 null] +>> endobj +1198 0 obj << +/D [1166 0 R /XYZ 153.4247 549.9377 null] +>> endobj +1199 0 obj << +/D [1166 0 R /XYZ 153.4247 549.9377 null] +>> endobj +1200 0 obj << +/D [1166 0 R /XYZ 198.9539 549.9377 null] +>> endobj +1201 0 obj << +/D [1166 0 R /XYZ 225.3348 549.9377 null] +>> endobj +1202 0 obj << +/D [1166 0 R /XYZ 280.9758 549.9377 null] +>> endobj +1203 0 obj << +/D [1166 0 R /XYZ 95.6414 547.1283 null] +>> endobj +1204 0 obj << +/D [1166 0 R /XYZ 153.4247 533.9975 null] +>> endobj +1205 0 obj << +/D [1166 0 R /XYZ 153.4247 533.9975 null] +>> endobj +1206 0 obj << +/D [1166 0 R /XYZ 367.8778 523.0386 null] +>> endobj +1207 0 obj << +/D [1166 0 R /XYZ 95.6414 520.2292 null] +>> endobj +1208 0 obj << +/D [1166 0 R /XYZ 153.4247 507.0984 null] +>> endobj +1209 0 obj << +/D [1166 0 R /XYZ 153.4247 507.0984 null] +>> endobj +1210 0 obj << +/D [1166 0 R /XYZ 153.4247 496.1395 null] +>> endobj +1211 0 obj << +/D [1166 0 R /XYZ 95.6414 493.3301 null] +>> endobj +1212 0 obj << +/D [1166 0 R /XYZ 153.4247 480.1992 null] +>> endobj +1213 0 obj << +/D [1166 0 R /XYZ 153.4247 480.1992 null] +>> endobj +1214 0 obj << +/D [1166 0 R /XYZ 189.3302 480.1992 null] +>> endobj +1215 0 obj << +/D [1166 0 R /XYZ 291.0398 469.2403 null] +>> endobj +1216 0 obj << +/D [1166 0 R /XYZ 302.7329 458.2814 null] +>> endobj +1217 0 obj << +/D [1166 0 R /XYZ 318.4738 458.2814 null] +>> endobj +1218 0 obj << +/D [1166 0 R /XYZ 95.6414 455.472 null] +>> endobj +1219 0 obj << +/D [1166 0 R /XYZ 153.4247 442.3412 null] +>> endobj +1220 0 obj << +/D [1166 0 R /XYZ 153.4247 442.3412 null] +>> endobj +1221 0 obj << +/D [1166 0 R /XYZ 95.6414 442.127 null] +>> endobj +1222 0 obj << +/D [1166 0 R /XYZ 153.4247 426.401 null] +>> endobj +1223 0 obj << +/D [1166 0 R /XYZ 153.4247 426.401 null] +>> endobj +1224 0 obj << +/D [1166 0 R /XYZ 193.2502 426.401 null] +>> endobj +1225 0 obj << +/D [1166 0 R /XYZ 217.1848 426.401 null] +>> endobj +1226 0 obj << +/D [1166 0 R /XYZ 266.4494 426.401 null] +>> endobj +1227 0 obj << +/D [1166 0 R /XYZ 216.4079 404.4832 null] +>> endobj +1228 0 obj << +/D [1166 0 R /XYZ 95.6414 396.6924 null] +>> endobj +1229 0 obj << +/D [1166 0 R /XYZ 190.0667 377.584 null] +>> endobj +1230 0 obj << +/D [1166 0 R /XYZ 246.6441 377.584 null] +>> endobj +1231 0 obj << +/D [1166 0 R /XYZ 95.6414 374.7746 null] +>> endobj +1232 0 obj << +/D [1166 0 R /XYZ 95.6414 369.7933 null] +>> endobj +1233 0 obj << +/D [1166 0 R /XYZ 153.4247 351.6812 null] +>> endobj +1234 0 obj << +/D [1166 0 R /XYZ 153.4247 351.6812 null] +>> endobj +1235 0 obj << +/D [1166 0 R /XYZ 252.2531 351.6812 null] +>> endobj +1236 0 obj << +/D [1166 0 R /XYZ 95.6414 348.8718 null] +>> endobj +1237 0 obj << +/D [1166 0 R /XYZ 153.4247 335.741 null] +>> endobj +1238 0 obj << +/D [1166 0 R /XYZ 153.4247 335.741 null] +>> endobj +1239 0 obj << +/D [1166 0 R /XYZ 246.8733 335.741 null] +>> endobj +1240 0 obj << +/D [1166 0 R /XYZ 95.6414 332.9315 null] +>> endobj +1241 0 obj << +/D [1166 0 R /XYZ 153.4247 319.8007 null] +>> endobj +1242 0 obj << +/D [1166 0 R /XYZ 153.4247 319.8007 null] +>> endobj +1243 0 obj << +/D [1166 0 R /XYZ 261.272 319.8007 null] +>> endobj +1244 0 obj << +/D [1166 0 R /XYZ 487.1731 319.8007 null] +>> endobj +1245 0 obj << +/D [1166 0 R /XYZ 172.782 308.8418 null] +>> endobj +1246 0 obj << +/D [1166 0 R /XYZ 95.6414 306.0324 null] +>> endobj +1247 0 obj << +/D [1166 0 R /XYZ 153.4247 292.9016 null] +>> endobj +1248 0 obj << +/D [1166 0 R /XYZ 153.4247 292.9016 null] +>> endobj +1249 0 obj << +/D [1166 0 R /XYZ 263.0128 292.9016 null] +>> endobj +1250 0 obj << +/D [1166 0 R /XYZ 95.6414 290.0922 null] +>> endobj +1251 0 obj << +/D [1166 0 R /XYZ 153.4247 276.9614 null] +>> endobj +1252 0 obj << +/D [1166 0 R /XYZ 153.4247 276.9614 null] +>> endobj +1253 0 obj << +/D [1166 0 R /XYZ 184.1566 276.9614 null] +>> endobj +1254 0 obj << +/D [1166 0 R /XYZ 312.8504 266.0025 null] +>> endobj +1255 0 obj << +/D [1166 0 R /XYZ 226.7496 244.0847 null] +>> endobj +1256 0 obj << +/D [1166 0 R /XYZ 359.8673 244.0847 null] +>> endobj +1257 0 obj << +/D [1166 0 R /XYZ 170.6387 233.1258 null] +>> endobj +1258 0 obj << +/D [1166 0 R /XYZ 446.0691 233.1258 null] +>> endobj +1259 0 obj << +/D [1166 0 R /XYZ 331.8829 222.1669 null] +>> endobj +1165 0 obj << +/Font << /F37 371 0 R /F28 250 0 R /F36 315 0 R /F35 258 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +831 0 obj +[234 0 R /Fit] +endobj +818 0 obj +[234 0 R /Fit] +endobj +794 0 obj +[234 0 R /Fit] +endobj +760 0 obj +[234 0 R /Fit] +endobj +707 0 obj +[234 0 R /Fit] +endobj +706 0 obj +[234 0 R /Fit] +endobj +705 0 obj +[234 0 R /Fit] +endobj +664 0 obj +[234 0 R /Fit] +endobj +649 0 obj +[234 0 R /Fit] +endobj +648 0 obj +[234 0 R /Fit] +endobj +608 0 obj +[234 0 R /Fit] +endobj +561 0 obj +[234 0 R /Fit] +endobj +1008 0 obj << +/Length1 771 +/Length2 1151 +/Length3 532 +/Length 1711 +/Filter /FlateDecode +>> +stream +xRiTS2j=,i !@2H̽!$28PIUElt(*JUE(*ie-R*N`]]?;f0ɂؐdPg.`Dq,@N"" `e@_& h 4YE7I@r +P5r5(B@V7Z$ !2M +l@Qƙ)q xoSFn2 Z`DIƩn!kjqiZZ(?Կr 5$B#6'C`4]35LըB%h"p(J*T@)W!8SPMHH¢d]*'c2@ r!H)$Q,@Nr"*,hsNRWLPm_=F&7p'fropmkx|w'9 *  z+QS" +Sjr%UGi zrF4|Vcv%!_q`%~Jm +l7:1+xOv=́wM ͩ~r}z'uݪ{>\8捗sS6vl]Kh eWA~Ste~ ^/͍z;喭A/Y]7xej4hBSLpeh|kQ`񾷋!Ƨ)D́.pnwp~NIPtpȼyjj%RߺE](0ׇ;w򼋡=Ic/,1I^-Y.ǧE{psbsW?3U_%žA6+m|Ge Fx=Ƒ\M<=јfou_7wK؋GآK&~|UcmcTZi&37ql;q9v.tkf;y~5cIqǂ\RvG,\Hmӳ9K٬)jBjit?ʳ>7},#@[ƧKmkvE+DVDz2xg֬{'9`u֮\`zȦg@HO|ZzHO`=΄=j}*|}wW}Zu]+#XBq\ubNK~d7Qmg؜&%^*{Vp!WVK-ݞ>tj|'{"tHŸ<Å?^&S^DžIi;d6uγ+ܶ^9SMs7mEjB-ّ|ws +W`u}uA#;.fF_`\*)yeU7nY'rhT4w_,(JOF+n%n^9$k8f;tP]5y~rz$#u>Qg>Yߺ.,RpbΉ"I仒g߽c0qCasgyqN݌.uSuinj,j罫I} UɥN_뒊nU0v]u]9JlV3@o7  +fJ$U FKZ|>C”a&nӆ'p_B ȉڟ-endstream +endobj +1009 0 obj << +/Type /Font +/Subtype /Type1 +/Encoding 1260 0 R +/FirstChar 60 +/LastChar 62 +/Widths 1261 0 R +/BaseFont /FGOEQW+CMMI10 +/FontDescriptor 1007 0 R +>> endobj +1007 0 obj << +/Ascent 694 +/CapHeight 683 +/Descent -194 +/FontName /FGOEQW+CMMI10 +/ItalicAngle -14.04 +/StemV 72 +/XHeight 431 +/FontBBox [-32 -250 1048 750] +/Flags 4 +/CharSet (/less/greater) +/FontFile 1008 0 R +>> endobj +1261 0 obj +[778 0 778 ] +endobj +1260 0 obj << +/Type /Encoding +/Differences [ 0 /.notdef 60/less 61/.notdef 62/greater 63/.notdef] +>> endobj +773 0 obj << +/Length1 768 +/Length2 1151 +/Length3 532 +/Length 1721 +/Filter /FlateDecode +>> +stream +xR{</l9Kr"fdA.庼3/3wfdTuv6Z]88!6'j-{,ɭ-}q?|}X[sށ2{\yL`!JH H*OQLFD0I@᤹[eRE Ks@ȹG7\\D{:(*X jҿrQ!X"R$}LWV=uQVj!vÑN'NkcGg^zTP"Fq5g[C65_i#k+[VI2Ubk}VO*=h㗙0s_{VhR3MpakC & fTMcgg)yۦWPmE?th1U_w92O +]Q1`ݴ``D#ݝG{{QhYᲜSOrnj=68^Ux:aߜZ +7}ERY{Wxg4H6W-=/2ѵ))p '}!aĴ\g-qOJkDslQcu}JC`OV~[cH@ҩR\7yMVه>HWJwrfNw]ujN{{Rġv۾ewM<|BؖT|]eizTDN(m^GY̪Π@+뜟Lnƌ󻃍f{15y67dg2jL塐b:jruNwR4Tϵ_}P1~ L`Ys˝Jӣ/.ޱ3ALs#'/ғr/nI[jjH Cϐ檪hDìFVn<]m5թC÷2գ$˯F"N$9XejgM[O};u0N> endobj +772 0 obj << +/Ascent 694 +/CapHeight 683 +/Descent -194 +/FontName /RKTUMC+CMMI9 +/ItalicAngle -14.04 +/StemV 74 +/XHeight 431 +/FontBBox [-29 -250 1075 750] +/Flags 4 +/CharSet (/less/greater) +/FontFile 773 0 R +>> endobj +1263 0 obj +[799 0 799 ] +endobj +1262 0 obj << +/Type /Encoding +/Differences [ 0 /.notdef 60/less 61/.notdef 62/greater 63/.notdef] +>> endobj +1264 0 obj << +/Type /Encoding +/Differences [ 0 /.notdef 1/dotaccent/fi/fl/fraction/hungarumlaut/Lslash/lslash/ogonek/ring 10/.notdef 11/breve/minus 13/.notdef 14/Zcaron/zcaron/caron/dotlessi/dotlessj/ff/ffi/ffl/notequal/infinity/lessequal/greaterequal/partialdiff/summation/product/pi/grave/quotesingle/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde 127/.notdef 128/Euro/integral/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl/circumflex/perthousand/Scaron/guilsinglleft/OE/Omega/radical/approxequal 144/.notdef 147/quotedblleft/quotedblright/bullet/endash/emdash/tilde/trademark/scaron/guilsinglright/oe/Delta/lozenge/Ydieresis 160/.notdef 161/exclamdown/cent/sterling/currency/yen/brokenbar/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered/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] +>> endobj +488 0 obj << +/Length1 1606 +/Length2 10979 +/Length3 532 +/Length 11834 +/Filter /FlateDecode +>> +stream +xweP^]-!˃;w'< [p73wuOթ:սzCA bjg uf`ad(l]lDMF8 + +1G3V ā&VV @dn VWѤǿ{>v:m@k;{{*p@@ZJA :Y\A&9 H0sXc05Ud4}lr쁎6 'o `hdg;/v3 ;}D|>윜LA΀JlaWn'Ї`gijgWI>`>F ['3\@)##o.N [28͍MNN0uuSF;?8fp,9M?rli[3; ?.s: f惄hǤ`@SOW_&j<+|0v9_wkd/5PGDl?`fd$ r*M,fF=ۮnk +t?fYLlj:?\@[e!߼5e6;JCug5bV,sx1X,n."0,\9;%3]\} [;ӿDcCϿG{ā@w 7˔Tj쬁1qݞ.Eujv~)a[d4ݹ딭\tLE'Q^sr:c*/Pl04dwH&ɵ1m(`hy'wT}ÃW{t1|B:e^?GƬO;o8WX|α UH\N=㧻Zw(I+Z_1/\d VPܳS]ã3?9*چE2 ="\5=A^C^eXҕţ;<#y(;1j AqUG&%,[a[ݷ [1Mڃ:>UCߎA=~AW]tF +Zc}ECBds6%)!t8> *Ns~0s_FM-ނB645.soPNHoTFcaM B"N2`-K@~29\%joݣU ++瘦j7&(X0I5C[hBzc}G)p٦̃T}SmR wY+hoB+&a553깗 Vߔ8,cՇ;ֶ/.H hurA<.v`[e n?qj8h-loHN?>A L5{Ѿ1l, ZmX#}R)T3PX'lrZ;6tyh8\|[Fs5j N@ˍ7g:rym,T.u+֜0_lD/J=rw>N[Ɵ;% ..}&.Ӏ@Չ˚"2mQNEU +Z` cR3RcFPX +OuX_,6|-Ԇ:"ޤ.m(kZ>XnPG.$\m~ޅz^ɼ,`V*5/l"I4vdG颏fx[zDt&Yd*{i/ݚtѬl*^EP2uuo=a=N&jwZxS ]vKԇxa-dk9*q!b}_\#&y5x5G۔:ɡ:8-`*Rk,Ͻ.6g (fNDYL [!^ΰ~ XlKCzchlPǒgCMHR/XGs>Yc)b$yJ48{ :96$CG[BeNkȪQ;r7gr~J h.WlEN3<}VZ ǚ7~:>k'gbEoXBOĨ|P80MN%flRWu21̤r`ƾsa-iuְzf̗dž9 + J`גynZe5횇v%)Gȅy] M2h[#A  ~s)" 3˞~(<[D8_?Mgzk@߾Oz,Vͮ|s]S/KØ t[?4nn}ECi!י !dH pdIzݐ7ط k~RF|/y:/ji9;d#Z_%Eˍawzm|'4>"6V*-#;WDQ?){1+[%7w\3LAi:6^q{^0Ca1/ Zq@?ۀ:qksw0s)d+I)Z i˟5J (M#h,i(}s '~Ċ6Ԡ s+/xj bm5>V)ʷ.1Χ,;;sX~b-ɜVj ˁ'Dd +,.7D?G˻DjNPJ\x{e =qOa6dT‘)#C +&]mޑ7+}M̶̘}j+#/IiP:M6:ES}ԭ啖ϋ(ǢK_ng7ҲR%JGn?#cSV8}E]8MV=oIZ0+r$d޹F$ DOaN!JEʖ߁4o )aY7Y rQP0[B[OV»y(m_C (Cڗk֣6$:c5i)}GeInҡZ(bm誴*뀩e5Xq*yǑI{^(+4mCi3X}㚧s6'o/]L2/4όwgU{*xESE T嵲[ l z }|iD2R>}?>H-ȓD鏘yvg;K:+͗PcXG-"V,4ٸ.'j: ѽZOk{N;(mHASZ؋Q6F+Z T^n/"+qKï𚛿t֟oWgq5o7&m% `/Z`7fva]aެ+>i?X{eHvI8Gc]kpH9Z@sz)޶fF ͤP1Hg!/8Ҧ @.ߕqY!$j[Copڼ=U=_ Mzx+$R~|o!XR2*i>6ʸJ803&ή„nJFo^Y-1fyɂ8]me3jxZeaxg wo~;Յi6O?Gq% YbsLd,K`Q( |}lo˜wE2F1}ߘ B+~@ e +EҀ6SLƆSe RvKY Sq݀? Y:J@{LOUr$ )!k8j~r?jF' ՍS#Ҡl&w'/,`Ս@ I4ᦙ*ڞ`K2p3}C \P +?w ëyysjgsl€1dGs*9!ywqxHydqZ./S71g795v(9!z?S#I#*^Lk{g4YRoM-_:RJ^CDzqI72b_=JmNzk^i.BZ؈k!)ZppdGK)vxӸsO+hV*lqte963JSuĴ}kCnph2%7yG攝rKv񳞓gH(5+9B٠3 +Aqdn­-`O]eRb M7zɉa;P2 C V~aBvp%.j sӍbp]%VvķZ'b(4Z&^f-198W#ξۑSJc'B O|(Yl].u`d ^`!{<2ӻ<# ueL{E#,`6~54G`f )VMdZYA`KAS eq'ϚTx ~Lu.S11QWʨ /#[nrx!.a JsDo4d@)uLBMF=$m?}~ z+уjSF-ND&Dr؈za6xT<)<Y`n{%1HZopgjί)Z]cf|!HgV!+ܒTKwP._J|RyP6 ! J/zt)g}yIH}4+= (YlS lBd) + YاVQp<6 ?Uсx=IUV@ 8@WfxQ@?}yU3Aӈ0AHck ϴ Rv.8:Ev Y2qq. ;^0Cؽ_B^|A gгk!1GýUZJQ~P9@5:o-I1FXv6̚X}jE. P0cũ^iwAIFw=J#& +^ +[ygG4:$0$x H@q w!-74\`J#@o&) 9wA͠MGLL\~sF?0>$o2 'oQ[Ofu-Zb#-l%Ũl *r!^M3tӔn>IȚ૆n4YbMK30Ob19~3TVƪBڅC a!/mmeX>+d9g^D|GCcɬA*E!ǑQO> ȿWI^1Ɉ5kSe`o7D2p [#A`=ha D scd)֡vR,ؕa#cgQW-P'SlݭDB5'_ 'C' Q!d_ Coq[\U܊o?]ğx¨ rM}ՀHɆsnd"7G&JjLD!WVv$6V`g;[t3.%EJW-Nj'~J61 #hUZ"]jl'4Sk`kfcz=_)fVϱSa9x<QV~ k};<Znد䵅.VO}񐉟b0GxTߚ>.v A.~lc[`y7|{"3DIHҕasu#kj +[4:&=ݺOI9 fD"Uӎ5v1VPs]i<}g(6&:O>sSI` wU.;h`7N6Ieٯ% V]e rP{%!FGQ97'xn,Ǻk/6[94w2zo^{M\ J$+^dHYBD>\(-PA$m7clgn,l5JjE2Vݮ%gyOZ:۞eLLk$~dHHISE"j I '\肈U\:ݍwl-`&\ +#/M%rAwjS'ڟ3+NږoxE 65* z O ŌqՓU:-g̗u94mCRBU4ܱez6cRuxߗe $jK GHn1ը|RQ=kMow+ ?hlXRD2xȥYmJ[0OH Jbk0{ׅVN!^[0BW^ fMh: +{j5G9ܪ1- hq9Lc<`,~NTAʅ}`E k,BSڕv'Z 1n6/^ r:f5w"ܨ?_MIOf+ΉBMܺ{F+V)b7NN#y TPU9[omnLgAm0W-H'Ctk GU^6 "9.oe+AJL*O_ .Z8/1)q*TV\94t9u+s쎘BNȧ D ~yE%yR7g"0Hqg5jp ~V7d=r2S4*u"lbpp-il%ilOGZFIV Ɍ3FsnrHVXVڔ@Oc@?=*g0{K1#&WiIzZw[̑YE0zW.J: + +YO~t1CWiBxR eTG 1,E<Sq&]iØv̏fjQasHGK[ۦ}N355rCځ;:zg@;s"y,th]),vw *h +YpY^KvA#jmX& n#JE©PĊ!jA +c EO0R~{͕?Nz#N!,52LZ Ri?I=ZMXLg 'o`$z؈{>O>*ۃ'ue>lYe~R'+ 0ֿe٭͟]9QrR"RX(څ_:6TY" *IkE3fz8cwo*xG+%amw]c<ϻP}jҀr#π+QuŁˆK?۟ Q{`P=ZC@HK$&L׬B(Bʘ]Z>Bϸ&kT/&T+ 椇z`<4DvX/K"27{atхOb27P̷/)\ DNړz]ZfP`9+fzM>0.o;5^h!RSȕM!Ϯq`_1҄;_+xde7@ }s(y+,pi36wM=ȎW0ZfP|?Ĉ{l ^*j2M]~_h.[&\P(FMT.ʵ@3$o}-_Ҏ/'ǰ? bhtLmtHFXJO+u >E6;Uic}9*V' = ;vƃICͷ}N~GnK?8Ѝ:C +jy\ڋ|,[kUBM_'^F~) 9sʞ5Av1 +aMGR~'T4FB@ 3dSxLHh6[*8v.G)cո <X.ԍFib ic=j#\R2hhsywid+Nct'g R+񗒼H穞Oʽ(ZѽZF ԑ $Ku"$ M +e%o9"YpfAF` Z`|b"bV \d _^ǐb7e9$fښvϛ]`CEft MEf)2{ ?^ϤĤ ΄ ( +. f +yf |CO<|y!@K*Wr0;h}$8[;!T,ɝ7ćĴRZD^"W51^҃l6m)hG~")m`t= NDYOfti+FFEdeOoYodKWhm44^ˣ@A,M!.Jf3#4X!6*4ϸE#GvRP1RJQC>b==Q +UJ)Ϥ!@^A g X.2&1+u?t_Gp \EV5ƻQ(P|L׵*8)J`+'&7F> +>C>vSLRVq& t4{gkW$*×#X]s(ϸIMPp3]Su?jEr`̱wW=J-YPhhxʤ?Քֵ&̟j,-/429aX?ECS!RTE%YV.N-E5N}yZSn)VHTAA ԢOn%s!D\q4]ÖJ>&<. ֊uN4&TVʻe«e&}V!Mz^*!;)^^Ju AVŗXӒ;ǖnl6}J?E39UZkk}e +[s?Lþo_w)F9 C'r7m)đ}Y(eF'J,[G\ou?=o6ּb[+?ilWgLb(ai.(B{3bbyK+6IĩU%,W dԔ\r> endobj +487 0 obj << +/Ascent 623 +/CapHeight 552 +/Descent -126 +/FontName /DWXYOJ+NimbusMonL-Bold +/ItalicAngle 0 +/StemV 101 +/XHeight 439 +/FontBBox [-43 -278 681 871] +/Flags 4 +/CharSet (/hyphen/period/one/two/three/four/five/six/seven/A/E/N/O/P/R/S/U/V/Y/a/b/c/e/h/j/k/l/n/o/p/r/s/t/u) +/FontFile 488 0 R +>> endobj +1265 0 obj +[600 600 0 0 600 600 600 600 600 600 600 0 0 0 0 0 0 0 0 0 600 0 0 0 600 0 0 0 0 0 0 0 0 600 600 600 0 600 600 0 600 600 0 0 600 0 0 0 0 0 0 0 600 600 600 0 600 0 0 600 0 600 600 600 0 600 600 600 0 600 600 600 600 ] +endobj +370 0 obj << +/Length1 1620 +/Length2 18249 +/Length3 532 +/Length 19166 +/Filter /FlateDecode +>> +stream +xڬctgo&۶m۶mb۶m'۬b;oY=i?νqm\{krb%Uza3+=3-_1; 93^C 0#1sssÐ:8z9[YXQŠ/?&D&^beaOD`hw  +Z̭lDJ +DT +D{"LlLL.j"sg"Lͬ)ͅ/ 1#lgʅo\MmI_ 9:; blJ7Ŀt4v'_5_K3SJ/_ +X&"3+G[c9:[+ 7+{ʀ`alf pq WDKƎ^v`5gafol +{FE܁r37й fof^DfsF׿!Xf#G#s,>wh 7[[c;!#璱2̍lOR,Un]oxa{s3[j"a 0Sr5$27۫ζVDLLMfiejcO؛ED4i{_vJwUrA4'=3'=+ߵxl̾b'.3w<9ǰK\R"oStq1gь^`8ڟRV1(bu~ u/ @#{rD3MkGFjB/:CtD9<16:w >pKMO+^)^36 +;~`!IZlVrhC+HcPZbZ+@qIT2Vi ۗ-jS~Z &zׂrrđ}!Ӵ[o^Bd4Ve15nf8J "].1 Es aC&\MT<+J2q@\c< uAKTsJƺS]:=I-X`ƤH:ч>/L(^0Yy>ӫy\:) 2]#ZΪYqi +s@^N'I1HN_O[ƫ%"Z{nAO-d + +P)OyvIS6Z#%#=W*Œ@nWwOp߁7; 0?>b"t$JU\kN*Wyzœ1AvBrd[+|NUZ,,t*nd&Z)|)Wz'PΞYyǮYwLo㖛ߙڶ͞OKfp|LX8Bsm<>*&-7]dYm.eqh>JQ$$#H*[{ILl֋B4&uq >%kP,ģ䱝VͲy]3>4|k*@si^?$Q0=en:;w3: 8Q~-m#X*6o +{90SzIJcH^na*4ĝՑs<h?/K`H#Zr,5Q3('=J!~O{ o$hl#JH?φ.~{s63)PqH0E8OXI5yKROlPVGw.>m啣 &=\E?цqgzL.@ P?Km n I R[d +<An2#DuYMleB5Mzb|s|۵qK%Piuŭ+fε3wt?wDSq]<;$uEDSd2|Iڞ|IFs9{o> +1lH6vojLINԠĻ4/eG8rM0򷆝eC| !8TY:V`֔ s]\bK-ADv١T̯ ~%y%e+8o[(")s*.'u9v١u# }Ro3fQ +a}Mf*_Z0"+,ZxC y9La?$ǧ- *nE"S˳QbttFaIFF|jLHZ,l*9H$9kkH>K< raO"2ނH‘n80kbwJxQa@ .rھ[<]u pX*k--OfS=H@+!'i L}#zjQ*P0 ?ص=K:vj-.?SiS K]j&,`z.+A'Bv &]pnMC؉_AB dd^~Y@^rx|4+7+ :%Vl2~ys-,p=* X}m*&3L"k>B1p%Y,zQ|N 6l5BQdJs]-N&l։xEWKm $O딡@6%+nh3dI*eVDlst0 b@/wO>4iP8!,*<_s&JOn3JA)Bז}); vv笜I +z BG栜]ߦ 1Ϸ6{qm9r{hYώ%y`/ y{~&}vd$(pr8gmW7pH H' >& .9=l0rc;qqr-ȕfuBx +S (fR(D\1D$?>%_{[ q~}b~U)Mv\݌!T@)<0sO mu*ìp +޾`e3~"_T,n\^`t$tSR< \Iwt38]t7 IFvԼ"ue{5f d`nTlY3{|g|~rJ="[!`#/js*ɥ90P/nҎIH8h 8Eb3ڹu%jKx鑆6@#(j6ra|9.# -hI0lڋ{nVSrR |@e.xh]Nh2@*EG~Z$.x_/[CL-Jr3)9~F(; dm:+SU&eW_ +d2GuTt$JI:wRjFDeV8xV-#ԫn59Qp/t_RwX@,ϐhϥbkWHn[)za6G$i'h ,TyN.ĤeCd!peHacLK5vRvsQRW\c@5c + TN0 d`lˉ<J5˿1e"+7tUU6[ +sa'ydƿ24I+2wد~#8 aɎaQlہgpx͡Exf;-5"u0r,Aec"+7)  +9 gOÉUk2 .eoOhDEok{+_b&`c|VZ$ \>|Wy@j;*wKjDd.S(_po !9s~9@$;ӄ::H+24$>qQh dRtQ#3~3hw<;x§3ǘCV>IW^HH+bn K)Vd-,Z*k'dӆt>= ~DLyQ;xB߸w~ IX#jXKbĝ C؉f³#ذ(USZ}ådOwnWj΂$bvƃ?&);M H7cXD 'UuYEҖh"K-~V&Z_+4/Rm _iVw~Ѱ ,NXg3Tb(*g +P^:y/XwYÃ} NL#mc/Ucd`6QuX7^'<þ].@RuZ-ijj[xnZ ع*UaĻnyW*~9;*Q "JwnnIl=#݂k+$'{`bS>AB,נ{ےb"e3]ЉD*-@CS|r8;XȬ)Ԫ2(%dXaÿ#x. $+Dϗ;ٻiI0u4L*(E1k;M*Rp5= ?m"">B۹7Ie ]^c%-elieVE}Tldq-Xa6 ġ'sxu'쩘r:#-%=NTa/U) q7]:9uiBY7VWj PdwPWԉ^)͞r#CCEaՕ=}f;+Bo +5!pc|O^XГhޚjN*p@ CgL!^w[S'$lK ZXgR},9v?"gh0:cQ:xΓѡz踡dܘQ`MKh@@3/ %CfJg^'15Ȼ)?J(-SM-[BĻE/).}>H,ΎSG<ײh:Ѐ&c'Rp~#}t@NM!I_OZq:>1SL8ܹGH|gaw"}K C`= +mu񋪢5g=ea7 ޽7jӟ +!s|Y!5֟]ilpO]LTZn#`H7\J讑DҤ +znK JJZdpOr8y\~VmNA[}܌.XVۢ+\Yܔ]]`U=E + JwIox2ܠnnSM"B4-JP&*_hKnOsG~)h ߺp>vZ_1M+)3B.iNjS4^/ҞNdJCHh\e]0R-GiARi:[r&z5 `U!d&i[de8O~9[K;X2jsL==[%*sN'`<]Pn)TnKT_u m8B9 An.b!Ň=U l|oRڗA9ɖ6r1zڧM>0^Y" r &LQnv +-u #g2 +#ϯi`@esLhvXqU&.B04@|$[QdJ-CkM "d4'nT Oڡe+RBa'$=$)^։p O,Hx`)e [aU _G/t6!Svm S|h8R4)ȠbY+({~!)$bX7r<$i|f1R`;J5U1V?ѣ(?FwK3#ĚABI8}*0!`RR[.LFH/_3 +SZwu9F'Ye_N,s$%F$U%X$n8 i ^ixXh-yf| 'ĬlbiwL`9hn @GͲfV1M;U(9V|ZpcavX^C |Ux#3Ulvle1JmR3 3׻򫴼bajL9#ҫ]В(7)M 2ŕ8VW)BLJ: ~`|WrE5*~eECք题6= |f7xMntìXe.غj-GP/-_;nѱv)|99BV w#wAHBRiCwZf#9h?UX+W*kD,h8uj7/e?TS`-%^]c "3jLSHJP~7?*S/ Jɢر +4.Gnd86e _i,`OC[=)ypKV7ӣh*K( @=}X"uQF}V;ƄQtE@o; +'}_?=,[物7Z$)}<š {d: ضzF ({C2^ep;ُY q;monꂰMp +珧INOQ:PŸ/-}|?_?³L̸~hZ)GC,ij*mxgxX~8E,*y vδfA|CMn}elumBA@ +)emտ`QC0 o[:L ĞCuٙVPx$'JdZ?Raw~/y0c \zQV>wF{ɜ1M͚a(u^*tj^F9Hr쮍d)`BcTe׶\脟Q+ym47q&kPkCfq<_픶 'Vrot/F G `npk9$fp.U=V-bc#mpo@BX~ĸ,nn&b;#IJ) 24x CK6pXbk8<JI(qu_s)ݎlҋKx4}N)H€/#)\5,]țx! haO0Z%h3 ΦPk%lmfՏ g]] 8yI]crYi@ß!U85[e٧Z\JD9zF.A1Ʈ̠3?7̦E:Qƣk~߈,D(ڱ,*L/E4c~x o 4r1Tu IZ_{QL(0ޔ"bt{IP5<*wȑ[M5S4LhGum"˺Ps5l|L,zUsӥbAI? !PmGqH6=](I#T{!N9x:Sq0*iRV[͉DVg/k-dzIy4vGqf3ëbR,sK8 ^i$!`Edk`K6e ٢%rwbt&5o\Zʙ=# υO[r9thpʷR7yǘA;;}4>MD.i>eɏDV .8RLis>!Y+&IzN,d b,7r|?E_٨Q>jHШwR +(X*䐢|NL)&_%WtCUY|9-(ZSJl PwL 9hxЊ݉%Y/deش__O8c+rb^ VV7L$W5U1yΰufGʆ>OxܚrqK)_t\p_ROˮ`BuGۮGO+3ҀEBExY79J|1X8Z#h ~_xiU[m]*t ,tfE[ nlJ(f~Tlȅ*`NKYQ1C%egVVN3:z|bªc|/yOHEm0œ#8swy +l{Z +Z`:YdIh~)PFΟ/eO%]3)&3%0bWF5a7qJAAKs1~ၦ"P Jtk|z +SJ`y]yd?b1B1\0ZcBCr@Gb'=XoО>UNa\gMDwFoGLYZ"41qV RB{+FX7~i5x썼L͋6kYGH+X63<4m8X`{T3Zީ2E|4ArYb?O.TîGw|U KAe5+ +b K)%[Y48akn h>ly*jpŀt7/">rOko;/s9"&w1D#mX/CaU:e95;N(>wRDtNe83Ϳ|ފ1]zOU+ +I +"?ͧI.K` cI0VeXZwh0=Gcoy ^z_WA|aX~i囹C{nxmyӻÿ㾱ɺFJK.zXY'Uip'<6HM$9M(IKAD\*=¥w`kIjCGK*%Ҋ~`{v||>HktS~߀)@#;Zx + I9WLxWM:c*ksV%~2vJkikLlIsAS3CL7OMmmEx,ePVKZ|e^sJUJ#˅c{۱kl^eorϞ*4f8Ȯ ARM0{,C;mI3^ZwFn{̘ mZo}- _ʍ~uG[;ܐ`~1[A#gq [5 +7Gu@PD ..+כh٤+++UAʢ&r획jg}E4f}STr$C/"c΍2b>@Ql$Ldwu`jBo(Mk2UЦx>]dY:ܖ,YiE^ي I̒7) +< ~!Wwnj|E0@-f.y+gEWgB.2!e7*xa˦L!?IoTu*(?DdǙoLAHY7^zG8F=mgmYH{~.ۚ1aF' T0nZڔFooLqA/ +:2Lch2mQm"xpO5tBN2_xl]3uKhurb~U K]a)zS hs7PlFa,ד 㐥B5ofoFP7,?W8 ݚ| l(QEX֭c;j'aixiU`7gө?s>2xz{XOt$C!~Ue$[7O62I +2 N `;5U@$_+Y^gMk/7#$zBb]qa&8gu;g^ix n7u__~ҍpG3)6OLUa z$FH} )(EZk?ʰ@RSLC^ߝ.@٢ծMS?lh,O0E@˃zIu|7sOpbT[e[.X=q9es%^,yv2檁.W}uCk)M<ڮrHŪŚ;7qN(iDn#4/o'tǢarhd/C"ģ@(<>$ 㨱9ϛ-ļM=n yf=? 3.2LFrE +ࢗ1MAW#ua r謮KmWFw#&~r^B6+(KVe*zxyKA)z v'z]rّ??nptC(SI7 9J\lx L2L;qC^|lQbcdž*T47&}'L Xu*DS9_њze6hƏ;SEuEuxÍZ` #st?8pXq/-{:D1jJQ~AA4f-K|CԱ5;T8o/}4XM{ܴQ^I?J;r8,볟 FaRll=mhmSb5Qj +*%JzתGRjFP"RĈUu;s}݄NēTԖ\Ζ( qlݷk:3Ae`sfU+{jGH7||۱8Qs8wkD,*Uԡ_5Ze +Hr PE:e@f^RK/ms/A Sc9sf{zFc 螮Kg^e'ҟȈ/4]W:?'y݋w'usL:R(%czSsjz4 T·K+ +2)>BQXLh>x<%00P{2ib0<'4 N*AGV-OleEl.asۨd8BX]n2 ~-kjR1<,syaw4Cu2cyHwDǪFT $PqȪ0 ڇrYh.\V.҇K +`fpt-H8ļ'Wt%NHv ڗ0q;!f\ n5=^S|:!KZ^mXy$b{([Dg7H˾V*uE"۩;'Ɔ +IYtpL+`xIRV-1hЏ]d7 ҁ>:]mŗhG{^d-Z/8ăoQ-7Ŀj\ 1*1M Qh밅d$`Nnwҥ:ҁllst?Rΰ1rפ؞f5f{ۑ61%^Y!G;,0Ooy5'PbPNУ&@Ր̺cECS)&:9?l\r/KLzADGiԛ +㸁2"Fꠑ +TfY_`80M;44 'R+] g<u8E,X6. S"7irK5VVl +%U8׏cy֣w,3:s%FܮcA+g,_Sεٷq Qe Q{}OJ`V&τ`Nh}L_4ZH{6/Ga=SV$ھ9EI!Bc_}fr^t8Iuz"bBȊIկ fBԩ=ˬ#|vН7"!f'ڼk~P^Z ]RfK~8&m2>Սk Jz m ᱍ!/h{3/ɥ v7|~0<[F{QO`pMM7_(vl(UZmn0hi"N;bx0}T;qXG;wX+Eb7qW5R9#ׯsDR%4~@*Ru}q1g Dz;w8l,s19, (K6=e:I ھT9&\B3^A?/R&ŝ\enoPXo Vvհ<㮿,W&{0РX`# \u 1 b9/ 4njN18**ҝ|OfrM'H/(.nɸOy\( ^i?PIwrwmAj5 x9H4ĊV'0ELj^<ԸTIn.W~N7_5Bn>1!dWPYbEME 3$" =soți(-Cf}YFpuk(1HNHD^G;`LS-> endobj +369 0 obj << +/Ascent 722 +/CapHeight 693 +/Descent -261 +/FontName /BHBNVE+URWPalladioL-Ital +/ItalicAngle -9.5 +/StemV 78 +/XHeight 482 +/FontBBox [-170 -305 1010 941] +/Flags 4 +/CharSet (/fi/parenleft/parenright/comma/hyphen/period/zero/one/two/three/four/five/six/seven/eight/nine/colon/A/B/C/D/E/F/H/I/L/M/O/P/R/S/T/X/Y/Z/bracketleft/bracketright/a/b/c/d/e/f/g/h/i/k/l/m/n/o/p/r/s/t/u/v/w/x/y/z) +/FontFile 370 0 R +>> endobj +1266 0 obj +[528 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 333 333 0 0 250 333 250 0 500 500 500 500 500 500 500 500 500 500 250 0 0 0 0 0 0 722 611 667 778 611 556 0 778 333 0 0 556 944 0 778 611 0 667 556 611 0 0 0 722 667 667 333 0 333 0 0 0 444 463 407 500 389 278 500 500 278 0 444 278 778 556 444 500 0 389 389 333 556 500 722 500 500 444 ] +endobj +314 0 obj << +/Length1 1612 +/Length2 18726 +/Length3 532 +/Length 19635 +/Filter /FlateDecode +>> +stream +xڬctf&WlN^~!C$o9d+FH;SZ݆bgT;؝PT+zŸjgqz'qG'}G5N@nA?=#O:~z쾁ǣɎ!q@ wR-Jkǻi$T!#%}U0]m}OLkMslٯJB&}2vƊ4h:[5eSWMk/iŎ:f}2F +D{'2Oeas{IVmρu#Y3Yߺ5 +Ma'' 7CAZ$gQ}x ЏLQpU;eUG +[ZH}II13´NݷlQx `/rIl4 +4XcKSb ކV2y0B_`umr!޴Ǭ^=E`cx;qG#Tڭ v&վj yDM5)'+\R +>ed%=0-ALI1 dvȘ +*(A?c _;nxjU^ח)Mu;+pEC`Э3jGKޫC eM'ꫝ%b4ϰRS ;hz)Y +9+[t =ٯ9Q~{ɥA;*~Ckl~fmÙ^nO==-&dN`^0WjYXECJ6檬?X1_20y b 9F;8K~cld4brHF+g)~pYS| n?x_t&YܤiVԒ%gR5t:pcY,XؘbflDJiBYW5ߓ}x6Kҗ=eaj MVņ9ת NT&:rGnq[U_RkA+mգL"7 Js߶HN| &"Uc9v%'/(; <e0r󵕵,¿$ Z잧Vo$-ˢMѤ=`Y?Rn7]0 _uu,0/6y^{a8A4q-u7㐣Y^\QӐS5 I~2(W)dО$ ݹQ(]:%3b'5&*myqr`]ɍSkC[,%E7gM]94=?je>7 ,t'ї=oNE6fa2Rd>tN.=qY`%Lq.W:ۓ{F6qiJ]ЭH-hŭI"^AM c,v߸E>L"0C<| @dpV@(GFQeg1kSw_`P8{ !_M)j6n"zvX:~_~0޾Tg9/)YQ̡O{p1eZԖqҋ2S!d!{¤!yѤ{tU5;:7xj:gԢ4$i!սݧR{5aN`n WFA@Mx4AsA]CU>I5t J#-`q{Xpj4x{IhM:գ;ps= 2glc< ]fn8xu0;?ԺpiKV%NȫC~ߨ&dHl~6 TO'җq7E,hO#,%#W,-_TpyRme|.-;H6Kfn O wv-9ѓcNh͂rg,(Q0=BmW17ѸFv3wh!po +X-(&qifBTQ!ԦTŰ*( AA |Y]:EصtGj5g,(7Ykd̩i4XD/ +ʵ%X]njy夨Q;6amʓ:.c^t8KjfhG*3w*0(g*:jiiQN$hkX9>r'U^fozEv2=O\30v +R0ڞL^ opȻy;0Dbh-CKѻ!}hQ{G|ӱe4?nKKeJ}mE7Y$(UUQ?yOf )[ +kfZfkZ͟po2~K3)NϝpeC8mj".^J)xpw " l[j4Tio|@w KmGj'd(ҋZFLAqLbuÁ~$Rakj}DIre[uwC»G)u\Ә-!g6 -ySRLý%I0u-U L=5M>ܺ[t@޲7:p]J&3= +ҦDAIUrl~&[!t@o9d椻:ϳ m3%)ZpGjhB^>nNqx% +^D/iHN jbBzKeNBaN6MnX3VJUԱI$H\ p]&J`D5ȟi' n؉WT YhGhpc=.ٷχWQ]-~7oUΗvu&ROe Z?1R-dQdh6̭k.Woal]o5QEe*eh袺1 ItdJgƣ5K]L ъz Uf?zC=4Hx(H Gxe&^ZxbJˌQ>s$$2H%_-=)RNeY*z0^Iӳ0<5H u^ -OO|j@!RbYF)w G \Xֹcç\ۚ@OG8cuRvڟȱf沓I_-{b+~J߱G,X?8B\z$to!Y+Cqʚ$zWv5-ac4@]'Zjz5E7< +pP$eϷ  I3ruPIC %eHKMo0KϢrǟ~!1iY鷵N2yJ79ͽ׀$7N%߮6^{ S0mVGG#"r Pm7!ޮaB.Po5 x^FUO 7mdjd9;"44;e\BMbw Ǹ󁃴H5VܟNdCHM膄s/S-3QPDxת;g$o4Y +ހL7A3=F 43HK4,?<4(i~KT%L쳻-zGݶb A)Wr)\%@Vdឝ0e,DQm4R +YcY7 &U-kvztT8`a=ꕊʾ_]{?T{RLe)-)κ17djl4FȥVlm[W)AiQ+}܊Lo]!__U6NYG!7k0 xܗ+eWإx)k,* c>eu55e $ow74G6zhJ/:;|~n-o;?Mx6bK K +(~/򌭲vԣ#`sx7"N*IK /ڊ qq4rޞדlV=.y_GƢSˣgt2#;h"+ +^Iթuj[:\?hm;uek|+x_%.qEV-lht Y%ŧ2.5@s `!eWA<e .@>xe9"t.wOv'h3=cJ,roxbքۭstAmڶ>@U/&7sRYߨT}oy \qP"Gk* )|ͅ>>DGE#զ -*"6l/h:7 =f ]νT׋٬ȽV {ݻG$(iNf2Z//qjK'׀ci&x1 +nΏ-h9G^+:\FF_ -ƁءʕZE{rL6:A=mⴭ+rt{n +Yh-߹ ]s% ,A9A~;Irtt "uXw@]TkޯkCM"ew4PÈ Rh+wַ(_-H9jU ?n'\:CuQ$c%\,=ض:R^#o2͍P RAC"ŰuQfNy3ƽ})ܭ@e$/u2 l~rKn6*qOr+PuPjŊg߶XضXZc0@v +-*J["23([Y<PVwNs8Q[jk:'(n +$ S ?33α%Ǫ,t䶬=+WTk`a}/QLXȤ*,59>/D- +WQS7d~r_x{;r); co֮je CPZ4V,jME:?iԔ?gf!Vɉ!kt#!pN-~ !| P}3\AKg0ߪS|Z^kq2 >:Cmeg65+a3Zl0Ex5nׅqqaq|!j M^/ ҧu>tdG'UR @ډb@婐$@i-Aqvuj&Ҷ%&u,:Ru-h,0,V<>.hE@4xc>i7Y"Ko¶>yJN֌Hq3Iﺋ~*~W埇ȃVoyZ2BXy_ 浍ff*'Ia﫵+mL.&qdjxXŖzMU7PsbK +;H飔q# "XEOdf¿760Q)i s2d590뫂{GNp@0(e&EK_K 62,ܺ*pvg[8݄AG#ѩO77n&!5GޔeI_jD*Swx%lDD(bfM1۬p>zxQ5h}#aHt8!$xHvLwAFWf&Edk/:²}j )SHxapܮd-5İ$u<`&7r#s *!g< ҎY AC&~z//[ $*"fdAroZߔf!^+ rChk0GJf)l6Ec ?u&qj=$r7/9/x=bpQЀIVꆶ-a{E T1_*4yz'[>FҐ'y:ݣoP; D. TE-m?'%*q^$q YeKZx<>\:HK]$nt"zqGgn O+8=%SjULJˬLRӖ!FM)KuU{:FkkqaE8-3̼"D9XݤCWFsD#3z d{rߨ\1BN '+.q@aBg ,"{i],,N`%tl&` [͏̫"Gke$yb5 A,rfsFn,d%*߅R '} +1 Dy\`)K5htǻ;8Za[}W$tm86 JY鸲>%fp, + ypϪ !Z2AS<Ľ6>~хݓ]\$ISl L'Gs +OiSzb#& [#KyrxsU jA\,AC"V~nT1cuW~ج@ǿS"tQ|WnuBި[X2UZBMu6<[;1l%RbțI!=R'Fԏh0B'[-`a~m.??GW*JO7jQ?ZsvBbدc㸝̞XfZqoJd%#V4U+/r |ƺ8z*= mmÜ`37Vcݭ +e?aOܹ,2_Lof(yyp2 E\DŽ=/U٥;>ceU[VJG2C*0`E-(PX:5<PqԢvn2ooz~},?:'m.')j `"8Ŀ5۵u})>w~Q^|H+9JiOq}! dA;Wyғr"{̠Bza(^s`.$N7kMHk<:i/:?ΏX*\'ayG"D02p%5ʶǬ7nOƩ 1'I +xX NT.D:8q CKD˟NmlKiuM^>[ǏtNZ:y8hU}\T Xb[F b鞁zO胅x6bb%^MiS;PjiFH +>$/50}</"S㳪%ˀE}a-_]Yj\z^iD͕͠*Cvz3Kr:sq +CIU>y~˓m?Dh?ՌW3t_ĊP+Wi(vebI}߼Pt ~C[df-C4B!F!pi Ggg3 0*<߀KgOZE/Qv@:]XMÜS4Io D3K8S"Hbg*ɀ/%&!Sľ:W$DhY&KbSV`PǮ ZDd2@6I,^v4ou!ԈRn K.lq&Kh՜M,=ȣzYdC?S0#8ؚ;JXUj"􌨄giu? @fEuJ=>ɵY1Üɑߘgy!-;٫+zv##"IWň?UVjDdW`KYayسR4 kBg(tM~1Z2=RVwZX5rp 0u\kc넮# b,(eOGzG|#rPLK~7cl"Xul 2Q\Q2޲1|U~m׺ Ƣ(:qpkWӃ$ w|71 )sm}܇*% aq*sPaLMTiNmX0hUQO>&rmҨ TY2> Nn@H*RVmQi{t↚{CWث<5k5O/A|mo'Oһ.7.tjFhT :!WáE@۹&^d}@q\}}OV]rMiVI{x%io&-_gpǜoer%ֹ-.ݷlPa '!F 1N D:-IdTeEBMI-(f'r5(3lџR mMI¸\MZ [Y:;f Pt-Fe32*+ЧMo[zBV':h*ڐ ⏄v%@' M '5by +{3}GGo|cFHhM^Ra*^YvEiB/\V_.z6P"J82MR<Ag ?33fkBl:N,}s/.3?StDؔ㙎jJ}?O>oƃ\LC쩨i넖&O΋rO%Єo+  +DV5`q˚>r&ˍ+}! {#vGv+]7=w`ԮfcS"l&o,N`9A=YY^Cvi8*]н'kZTRꤖj0vRHca"wͷt243<ώ2kLt<+VJ;4oc!hQGK H7cO$|ށWQ@\$v!^F%0xk](O[: %H9VBfA-@zI\!EynE5lCy xݐsOe9庅Vt]+BKM95^Tor X.ܪ +~5C9+ ss}&N|:O!*X/fU oL۟5/Y#s 4VY0`M>9򴟩؛>r}?t"yXO|ct9ҡ5k+_^ɋ҅CWa-hH<$!yQ޾P|N;fSsN z }ɲ$8FrKiZF Y,& OEXYM|{2?yљA#"Tد_d;3.7'Űє۳UwjG}[9LrH%;t&@O +-, +V6׷{=?th_ƞ* b|U!&w Ods1l5 +vrO}㨒z*qTXg[S +( >$0ԴNN7V{eƵSbTu@Omg͆,`$_+}Q ˅.]M3L7d$KæWD}t-").k(C]-"[qA5![e:Za"9-!!Dѷ~L[ʇz bY4aC9u^_6 KrЗF6x+@rbN[*†<.r)}g:h~AԢ:i\"I #Y}N1C#f*km>S 6FLx2[ɉ[nUpW*})X +5 vxjW{3@#R.KD!ؙ0]ǜIFФ. zEnK^U*AZh=pN|GfkjcSlTMNfΰ1Q{w; 񋂕TշHOp:7FG$>|lkX}z~ GS +S:Xyɩ3}lV]#EZѢ6vn]7I;26B*lm#$ܞwM-o`8=pZ,sCB/wn_-0kWߊk*_%l2lN_/bZ{'[(lg Ȯ 7P"yC8&쒞N#Nz#2{ɷ 8oR76I}q*<:doZF +;,v/@^~/0B,>Zɼ?h4g/:*[*#z7[F1c5f_s=QDbm:REo oF|3wа%W'v=.=G2WS P~`xkSq $'Sӆp#z6 lR_/hY 0ఢƞ(e 1 kٜr (o#,Do +(W`m71Ͼ|%k=,s%lBFM/&Q(4bE{vщh,4j>V +Zim'`:;G0l㜻`|Z X&G͙;LUj {w7lyj/d XdݩYKvyʠFgR9ѻ3e]~.PmT1)Qr2v:T`~?EܥȆ{S8-V $wGS]hWԯ{gǗ|_(pUɈ`jE4-=CF< + /bPżoym끺0׵LT։XHY쯘Š $,¤`|lɚY զ=]B7RjlV@W{Tstp{(d#Z>O?{i}CLKl.|6JG~m#jyC3~Ϛ϶qO3aI]&=k 0W27o*Nf)l칾v^{嘴+A/i)e}b; {[S0(v5oQԉ5&A`AU +HMHt=E yn'񳼋qbFtDl֗VQv+U&a\ +=&\S38ҟuqW#R1V uy} HƔt>e Ȁ[ =Yġ|d-\|9i6'jH/Ua; 9`=FItctͣ ^8Ph_3n }g3ʽP:ᤡM粶) MFa FQ@~ ]QlX#.M+ݞ>Olξ818w|" 7$Ym[eZ"IVfgAλ#)`LV6hLuPlPR#[ tdQ F3o2)uq!I:P8-HM:Ca]9u180XhgWe QCgmc_a[|eW^ϭNBꮳ6טtqONLE1{G38˄<4j%ajPw]C8m"5t31AI{dA!FL@6;k[{B>YO%ƯjX`cW*g8(0]dҞI3Bќ&cFi) zmx5OuWK0|5ί9r˶i#] &J$#_^DtWyJnEr1gmʏ6=?1}gpnWw&J!Σ2+HF<٨%4€=dYdkO.xnqe8ٝ~n;UЗuc?y4o3]zҪnhҨ&\Pl5r\ºzGkMnj^ށ? ?Bڊ4\=~$wdhIX[}ws{@z>I;C۱YJ':yʉEʈs }B; 2pzȨp58}7CJ.l{R:d/;w9 j3ǘ׶ ;ihv)u +Zu)ׯ;F&yeh{GpMDM[ e3|eUfIbȯݗC8Beͱj? ېc5@a~JÙF%sW^7N5{eֿ!Qo2=m3_=ƗYz{|v\o5Rۯ2B֞?T]rg7ME`=A@ݮ;5fg u^ɻGkTRǦN+"r-T +,KoJfJYgC>̃Z lqc2q,߁~smDkzAԝ̿lC`wL1*eaQ}kΕ@%t~7̈fmDLJF +=*n0)>N­lBBٛ"IH +ξXMIPN.ƛW=V>?np!/zS}PRp5[8@["175.| r5/Ow2ԴAI.z IoAPY,eX? B~)W6ZFO iUNLKُ:=yy qvHMjMzt[z/ Z[{ve72*#3C֍kjNDa(!THD :^m;Z~$>,}+K_C³Ki!$0kР7Ks!"%E|0mz?| 5Ӳ:cX*׌Y!Q "fOzJ <;B``C6t > endobj +313 0 obj << +/Ascent 625 +/CapHeight 557 +/Descent -147 +/FontName /TKWMPE+NimbusMonL-Regu +/ItalicAngle 0 +/StemV 41 +/XHeight 426 +/FontBBox [-12 -237 650 811] +/Flags 4 +/CharSet (/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/greater/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/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/bar) +/FontFile 314 0 R +>> endobj +1267 0 obj +[600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 0 600 0 0 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 0 600 ] +endobj +257 0 obj << +/Length1 1614 +/Length2 17248 +/Length3 532 +/Length 18157 +/Filter /FlateDecode +>> +stream +xڬct]%\IN*mTl۶Ol۶+m۬b6z۷oqx\sP^VDƉ&o`ee` 25 +98mm L8j&a# dk43wPŠ/?!Ct~XY8NT218LV&!9y Y1 +@ + lh4HLlM(8lmHK`p31M3q32E3q::f6Ngd Y9C_Bv#::99 O'sj;#mi__^'#Z&cpvژ_L/Ymotr42ad[om3 ?"acj `d\L?;C;^oItD Or-le%k`mo?4G 6Z{p?H8_1tV] +hcW ed`o>es?cgWӋ*kR/qwRvKt"ck? +ں̬1Y:7#[vEzO?n#g{6feֈ+"WS-FV/`|jߴm +`i6?vTV=)&yĔ}d?uKԢ<4Tv&u!;(]PI|Rc:%?= ܀PgBrEgiT6R_Ds7 g)a֐\5K,:+r¹ˠR 4OXPsu5GsCBA۾ݜM隧GA-nheebgzA=m$j<[}?@،㴚<2tj2FA!U Y] \&;蝘`qX\`Dmu9m:n?m s!_$>vuiȨ_sf.Z+nu}R^rJZ)I"6CO,*o+Gtn0Ȱf#;a@5ssVdPf+YmD:Kww럩[YVM[Ʈ' +? rh2eVl+"mmULQާԙ|# j3FsN,>4nP=JR:ڹk|ltgϻq+]JI%|!CI눠dbxr{fl]Xu5)V?P#< l<90fYFێ=Il&r[RttlM̳t3׎t} Q@[5{ +h~$M<Ő YdyG\J/7\yIEl .L4yI቟BˆA!oCN +Xh[/;(#gޱn|SR U4 Wׇ v1 Dou|N)d8US_Xz'0':lȭ%5cGxN;ǫZb`L;k3A/lo)s$ě CRLAɪ1 ,}sTaltzEQ |GtK07^9'Y2ܰ@|: c9_XE_wv,jUmF+>hfx6^(pEN2OoSrxf 4itU'zbMdzתR%H8{IC|M^13CaFTgLqZCkϣVsz&M0{9߳a'1ț -6bl9ď t=tEu̇;n@s5̲uL _cfI4ڊ"w ONs>9*1H୕*$;RKRQrcd׮ CUNac-hW=\NSBq5ݨP"7c~1+*u̪Oh*kVmR.01GfwLWo֌AyrO>Hr&_V, y n mw5{p1t4wXLc#A.^#ŷzY-1LU1ԜNKįUM<"uܟFdlW;U*"]mڹS_>96Gn8 cn(,/S͢>5Gadi='Hv¸PG3t]%C^/)׹PzP9 +2d2M3ܨo򕱉og"-N‰ZGڥ#,$1>UM'a$_¿Ok]Ʈ2-*3 ~nfLas!!ח x(bUh`8 lYbUd^,W(0uU%H.a#"yפmq816bYW_pה8N7v/n+^]˧IoV{j?E_q&.Yt12&@z_WCQV9Vm2}Ƣé |ĂЅYP˷|-p_wGi\Kl|!ŰeRMM;t3~EDSI4.UILX=9Ä}w\c&"eOdhxәD3ΉRXJހCnǟ1?frB9bo@jדG+$oO^_\$>VxaxnQ, +tK]uVʧcx[:K7|,Byʺ{ZJу$c&07v c̭/grB' 32%|B zȭx(r802-E"*9'QVB2H5/>鶻enuvwPbYh L21E>5ccZ1'QO+`G9Dyj}ĵvS$q(p.|]N2F<;.QHq?'6La8`4:C=ќnh}qwu) +"`˜o +lqu/B_M=uc(-y3Oo#a}nx8ۍ֤:|`iX7-c6s!$݆֡,޾886=i +K&D ([ pG>C |gZDa DTP+ԲC}&ɛ5|pՋBc*J2N1ݎ;x)izqcڱ6gfg$)iC se$Sm8XϧwC||jVXpW=1Z$|kTl 08/ H= Škx,^u'ھn-K;*hn 6)Ҋ6F!Dw{Ɖ4N#)AvFX4ly}p-ƣ7q*XHh>Y~Cpjw1iFIHܪa$B!;[zfAՇKW,!;&%ѬU2u)!r?<>P\o-:yD,yHcXYJ3&i"LU1*L]{,E}sZF?' ]_@ک#=& VF1etjW?HH2)ʍUڠIfuk1wbR`ݤێ%Hx~~c["SS_tKl{b TΦeD4r}[zDViSC4oq XhT{) +,t*V5+p?c|tJVwXP]e^R-Ehzi=Ef<"8@0DIeOLQ^5|g~d\ +%?} xw$Tdr}l06=VW=&3S+x墘7ĸr9*jD R2с84Dāl0:HK6ÛF4ȥBZEaGW c]|EʠΡ͛DPs'أqg|jAJpw{1pU-GK5g'{/79r=FUؤN3\dÖ;dku?LU]潬(ˇ.Hᶤp%:N\Œٴq6%xIld[yP%Qn׷G'na¾[9s@D@4Z&PIz(FP[#)&iw+r.P,bjJ=3}w9/ܲ"MHlF*^ΫrIT řf~H 3: IG]mT¶? +΂ds̻ʽ;Xi=Fdt4=NdLA:^܅8dյs;,ӈTrKv"ݎ@/g.úRb[(:OJ Smigbn57NˏZ-Lr[ʶs{]rM¶^io]:,aM:yFWRB$)-vǚXկc81Wu]K9LЬ#DpEZRcY[O3B].R>Wߍ,]_xn<됓5牦f]Zr7@V/Qd#j_/x^{t]JҶu tcWLnbQ"QHYIA: ;(ב&A#:bU|]ށ>t? >y'b}U>9-Ʀ2>"<ɱrIV{9^C_ Noab1o5CYrgޕAQlE,:gd+Zf̝٥㜻';IHslo)"S+6uQUAt8HVL)c!gewPj^ːvEQwXqWg5n$ԕ7uGͺ!^]v־BSd؎͑IClٶQњÜlšÙFCC[WGRN"~-v&VJy1!4%$Stl p^3P ein4gNÑ|xg0ܪϰJe@Hner%\أnnZsѷT([$N1vScٚS/楝co6:U:V)Tp6~@@*;X}D r̤|6M?nmlQi @Qx  fc+9R'0fyAġԟt'?onͧ+r^}$,sE Ou,:;`S7Yt (U՟8GiO \{f"ΣZ~AZ9wQn'ˀ>QIFW-8lʾe[(g9u9/QSaؼŎ蚫As@*(d@NK P>1BǼ6U)\M"Po?||~0$/WAzˬB]Q[vGU q00rY#'V(؃40ZluK^:+`=yu$ ICZNZTk;yAhɠn(ͤP9PBh^%yKvMhXF0) +u;X89{++ +S~mx:I@+Kjf]`mzQL2ĚPÄN" ͇ y/ZT}Z + 'OJa}>YCz)lG*R Lb{=R3A\%RBcR)<]K9k7̦vt?i~jKe"|Ϯ0DYu孢4K}1N~֐ у氙Ni.4T֜Ll +t1{Wty$5rmdAInULB,3E|DOgD eڪ"jS4fu]ꁲƌKF[e^Q>yA}o5{pzя&&( <]6'Z"0t^qrΠY@#05߿V25 tVKi 1d, +!F/73y6Y15Ҽ@1s,̩d\yEsKuEK%\xJ(u;ܭz0CO"1_AɆSNy"0aE~l`RsR d>E;3;čTS ?⩢ @q\W9ŁFW "?#ʤTwCm;XZ< Rd5v–j 9vn ug`rݧhCwm[+faD6C[:NW><4o[N0MXO"#7}QL( +vcP+oȽy #+voՉ-kN=o +^ +-OօFg>S@K/B(9 }HgE![DbDVdNu< v{0ZeMĘʢE],-,ʘT!2&(%0`71>6VYvsqBxsBnŽebjL8%țv달i7Pcٖ bp鱰ZYwvv"YEc:P[@ G P̆/8l{6.NPw~8$HY~>95Z⤾G$JׄïTnFg0tW/@  /ɗ +#\U>R u%HB.wG\{Q{lꃕ*~vqA(qN=iKKһ/f}* [D0svӮLZ dUgC72|t`Ad*ˁb}S]^J儶vzc,`FuhQXe'k}T*ޣQZXuZ`$]8W4~lM'+fz9.\%Vbnog"0':Y;Us≮[~=]_Lڈ1Zzs5>lU}8 +Vne>ޒp)>ʁ';5!16duRA*IWPQZw̎Y*V{e㳂thdD<șA:'+f-9kQ%۶id&C׾%q`Mn$Q 6iҥLL +J`/":mݻ))a!h 3!p+ST:H|WWZJ~SG)u ow]/U,g:bl R Jy9%_I{$ν}$6yĩ&>Q̘{tb0aGqk-Mm;o -AJEX>g}zVBV]Zi䟆j+3&ᰫ% +V!`+;B=u-JW:9??X I!]6FW摁F׵n3[RFdxF|,_WM Aam(ZB"k _u.inQc3 hϹ`_Ejz\9 뙧T]9WǦ:spU~J>UxIzځfH [88ds㢀RSX lXV); +a*F*hY;Vb"r ҶQrψU1ݿ[Ek6 ^KjZ(hoaln* $(|RÿYRnw +Ϻ%*l2]V@uA5h@8 m'*_M`VW!Mm9O_7hĥKΣgKO9Ms7:$9!.zB 9D+.e?5/҂8)̬>(cy3?k3 vQAT%mvs 1l\MCs;tkJ={y&A{ ~aB\MŠ }nT@lyR#UQ[ VN_bBՁ#wH[ >0XDb_OӤ+W7 dƝr!p H}z* x]:\6䱅宒׎eG;wxeR-y0 +wؔ†p9uMnvҾ[NjBQ2J8f=(3\$ke%@m~Qoԁ],T~w "g$~ӻ~FJ\! {3/Pgj]PМZ#*X@ްv! .b2<%r?ɘ {SE<;Kp^2r[, +EYWbtT*Xȵd:$(֑̾i&m>*bɒ!F(KTSbw{lz@f閠kRS=$>+=mz"P!l1J_'٤̗2EN92j(DwZ1nIlZn[kOBSo3J"}4Zw<05X6KU H%ŜyѭLƁSoXsBTUT5XCf]{τ]2PgMc5 ^Ƥd;^W5]]O3*: (HVKZ K'e7q͸\H]pwx *+̓ GFU d S w?ƘMWba+=Uh4{lhopp +֫5Md9> [Z`< +CkQ\:>Tx5ƨ02~ܰ1/ʿa=,43ÚxBfԼ9#%ڛbHEL'p65^ +dRh6{;âTY;#4SߠQw_0^#A>= +CY{ G'X9 D%Uv`^E}bYqIyT<-m&9Hl20mS +qx_@_y kC"WAσě +g=D5&M@,`oGPQ,ZS*HO!?"zk&bI<_uМ|f#3MS璕CsOr׶ c>>xH-qh.p" j"y +J%=[ +47ZşDSmD`0RzpNwR  +=x&dh% .=^,ĸ9sZ/;DPUHEvkH-^ޔiYqsfn v8|Lǒ$=zNNın Avq~!Lb gTjGXTξР"7l[[+Se=pv!'|({u- jhbY`_e.ʻ +@oW9Y2c1fǪ+$쟧/aVF6TX&[dKrnf"o!K6C-!8׸%u_0"!f:ֆz@R}QL5lٵ蕍,GMlcau򆵰nv)z̲}< ]0˩+3 Lr巳oh\%aZ7zLP3GBT˶͑Έ1vA(Wrt)72e:J/Ñ%\J'M1-0ъ+NPaJ /Z} } +ZJ+uZ N< p7#>>HTmDmZTuڤ +-d.:KAu3.1`7,hNT~EցT :.G;d* :?(b7fC{u7 KCTiQ0oΡ83'`F=?LA]7åf +JRz!7N_&e*"c侨Hǟn/3B9 yg |?A-}g?D>94깺%lM+V d&S$e v5fM_PKE7 گS&BzUP]$6~/ &g*̼L_;1f/)ֲDE_@pu**eq*(EVʒ3$y%qDF%4tƯS||Bo,H~4$$,B>pt G<!t;Eߐs/Y-tbV^$ER%T pЃFEV坮 *!BmFG +V 5C;{q㍲gчaq Oו3ܵbژջ]d]*? :3fCL&eպI&]}O8xv`ݲvsB+j@tp 0,)?Ua=>Oۚ'їG?VA +ĬJZjC79e@XͬfJ2IFpOHJwX87YlDn5`ڲQc۲OnѾXv~øtX +pC<&ñRk%l.}9PtB^7nw:LFDGb_QkJ`%7$wBO,ؔFF[]{'8@l)`l?[v_xE6rLR(m._y ;tR Ƣ!<oU~<,FFYa ō^-ɔ͘NpW/=h/g߀U(e}ϠhT ^r'X,wjPJ9V5zH+[&7p͌xx>Rˀ.{L﹔1+3)Hyi-`Ocp^n|u&<A -JEc&R9{oTa8ΥYԘ +CMƻ +ުS1%\=a"B3\Xp˘Ơ5hGŴG)䋱v$nܚr-5?!a،&Ǹ$_\sz* +#YW#~H-I(*LG«mVJEq;nKۤ +kD%vP'f1_"pr=@9{P/2>@/B͞PR*Q9C'%D$F02Qendstream +endobj +258 0 obj << +/Type /Font +/Subtype /Type1 +/Encoding 1264 0 R +/FirstChar 44 +/LastChar 121 +/Widths 1268 0 R +/BaseFont /FTZWMN+URWPalladioL-Bold +/FontDescriptor 256 0 R +>> endobj +256 0 obj << +/Ascent 708 +/CapHeight 672 +/Descent -266 +/FontName /FTZWMN+URWPalladioL-Bold +/ItalicAngle 0 +/StemV 123 +/XHeight 471 +/FontBBox [-152 -301 1000 935] +/Flags 4 +/CharSet (/comma/hyphen/period/one/two/three/four/five/six/seven/nine/A/B/C/E/H/I/L/M/O/P/R/S/T/a/b/c/d/e/f/g/h/i/k/l/m/n/o/p/r/s/t/v/w/x/y) +/FontFile 257 0 R +>> endobj +1268 0 obj +[250 333 250 0 0 500 500 500 500 500 500 500 0 500 0 0 0 0 0 0 0 778 667 722 0 611 0 0 833 389 0 0 611 1000 0 833 611 0 722 611 667 0 0 0 0 0 0 0 0 0 0 0 0 500 611 444 611 500 389 556 611 333 0 611 333 889 611 556 611 0 389 444 333 0 556 833 500 556 ] +endobj +249 0 obj << +/Length1 1616 +/Length2 24414 +/Length3 532 +/Length 25316 +/Filter /FlateDecode +>> +stream +xڬc]%\eRmtٶm6lU]m۶m}wYw|#zND;b9ZIJ(Hodk`,bkD@K PVPӷ72Q5@ +:;;sTBƆFF4)@ @, w c+[;kcNfs+c(\TF jlcos627H8SLlVS#_,~G>6c7Cc\;cksGǿsG8m !nb/!;ۿ}l  O'3}r;ulMF:Sҿ0N6'c7r f`/ gGsb@ p06w02vt Wz};;+w?9;9[B30i7 4?"ncb `\m?3C񗄾;NoJʴD Or-le%om&1)?omnA#6堧Do+;XVhOƳs+ѿDe;8;)?J5Pl4 FvG/˦g15gZm46tvpgowԍ݌ Wl ,R3Ҝj0r&4z@J +l}Sv8*>i8Z>$(GzЭȺp)z6QFz^/HmjҫN+M39@^?S<Šu 6!L8y~"=ʎ"rgë\.Ye[GdSB ;8yywy#d5wٓJt z& zۨ6˓* ΨN6i%[gaJB Am=>x7;P42Џ/kTzQX7%|E/l8B4}!5!=_mN3Y`ۼbs@;O#uvcBS ĹF唾(Kl9@Pʇ%*|k6J/o%0FQ 8OXz61Yc x)9}~Jb9Y +t(#;#kV[h Azg)8wY׬Պ:')F +_#6-,ƁMsȭp1IK[LeM1!f'"Ovd@z'h/*Uo҄Ϣ'Q ?Qab?Ӥ*vg4 qf㒝ll~qz`:rS-g 1c!!VGV +U1uƌb]^H:#cj6LPjI}!h fŅK UA Am@rؽ#;>:?l!;xp|m%J +aE+dX{l/JRu;C1/:4qq<,svoAMc,{#&m ds^T9q?{8N69 a-[h270V,Ihud+[OMPjƖaHJ-7/yUzZ1ec璨e$C,Y9ŖCǫAT$h'EIG]%T]}S%kZW@]ZsϙRJä4!wAfo/N?!3N'ؖjg5^MB $N\DP~0fƳc1 K4c+Dm(+903 +6{zCױ1:a &Di'Y0 mSbHz#?)t |:/ȫcgRHׯz2IcYVUC'ԱG,`Htэ/cmz볥J*],$DfVPDeRކ*ڠC$Q8] ꇬ0O{~hu?Q>sXS7@ե0!E;W3FMyn?G=dϛ:4bZ| ϣ5Q6R4q] Δayi?AbrrKp +Ω:m̭-&tƴQ7(I(ߞ)$,NFrc+S½(l2X>Bâ'yZI}{)1st$[1_s)qmG"h%yUi)-󵠅3os t0R|3ʾd9 Skb/feCYEn[#Ͷ$\*3f*p=h,qsRX(Oê>L5[5TSIJP]菴Bx!S䙳iQ>?Шj$ ,fcrcMp (7>J>RmZ./:-_ :Fo ,80jo;+&~^Ű#d @[~Gߥ>}0 J%]W9 +ߐBP&rB+ '8-( *(\sӑICeC+U(Ќ_*J: ,"uڻ1=)":HF#-/uN4<(sU.:zVͬha4-5|rV]ݭ58sC* 泽BgJQidÌ\G4M=!GՠSw2Kj6C+$fոesuYh_jS62he]dwe4 a "8)m x:r3qKX5x)!UV"ZZ?7߅ڔvWuM + +KBFDAkl\%´ti] ۯ &X@G+kLx6K_!xsdyȗAyo,dιᖾ"䁚AH_Zc L,/= 5+P߰;Wvc44Ź=Bq5ϴ`3OsQ B ڲ +w|徧dOŻn,;yg66&0ZxsR1y)i*#wU+C((D9 e$ +4 o np<)J9z=D5ǭ 4BHn7Eޖ|SY/5R]OCiJ ϲ {D|hHϡZ֣sGf*F@Yb#^ fidu`&z1y-eTGA-Ch'ƶiHɚވWl&"bf`8#ZK%?4E7 G 8Dd~:Oډ~aј.ϦgrcB#۵ +o %Y@Z!@̍\BUv9((^%0bqc[pR_V%KoSoYGN.l+n# +QvHg6ب5S66(lX Xy^caw8h}l+\x8!YwB":\%2\@oO!J"G}2* M=Bd~W-"JW)P}mz*cւE&ఊ;~&ލj^qXHC4kȑRj釐r258F=Oa1GC~]|rW-֑@κ!<jV3mD죌M\xs4Dl}zg0;bBc7~RK>_Կ~!(1RJ, +_duW=)сRDZh`^?E*6ƾ/}\V)}6~&oncL?? +*VFkR5L)ZCr<op",] i1ɒ+>UK pMS=w-SA }Zs/-qViLӻm +^ ިSe6k5 + aBZJO&#dv3\[U.Gq4jz{[CϷ/'g6(=-'GCcD 4pbwIx%o{g-3;"uwM 9(--m MeP?HkbOiCn|7h߫URTd7x-[t6 -l/2+L0݌ |@wU<?2\*\.^ENKuvmu-Y {Z!k8$;BP__;~͸VYgYl 5Efxeg7&fo_~] ڶѻ]h^<' ](p$󎞩/#PtpZ4MBDu0-Z @g?TYbNW8]G@S+]jX;^Tx h<{>YJʿȗf9|wI(z*("y{+9 lNJТcȝNߙIfGwc+d8 ΜD%yyՙ5E-TJ8dd>\YΩF ]Uzvϡ(8|k[Km?xYSuD@:mEŪ^- %*^ȩ(Jzg )1S{4[cDg}|YvJaFwˍ"Oс}1 +] +bN=$=ŕP|NY,]4!ǫs<3񁾂cG[&F8D9 +{3YUV'CQxUrڇ^[[B|ۚ8xƐxńұnc)že}Yqb),.cVm VC2 dJMfJc.}U >R.oKo1fJb}3E +nQh1iU+7oa̩aZh)_›j; "|brP,+,ӝZz?}ßOnkRWJrxL"fOLxT+,ާa0% W!0v CX-]زЊ-8r_q@ +uB!&Qtt2<Ƌ(Rz=ˈʶb`JуWO*Ebj8/2y(sȹnЉUݰq]RE)!fM8ٲmԿWc~ZA_+m49V1Ⱥ[ L˂-Jlm7<N'T}68p1gL*0sT~a_W%(F +mHФ z(XǽQܻCG~FK6I.mϜ@RqvInG@biWa=?1Zռ-厞Nf9Im +1`;气5ny!'Qnpz[n`01YzGZ9J.d)'P|8-4[ ¤ss~(>ڬS;\bqc? e| /8/gBӭCQ<bG󵝈<if{9 IR +(P6ipy7 GY?2 F+EzǞB́@ 4O#vNM-W_#l,M3J0HC)LlmN_ye=͜b,F=dl [cg~<6s`(p0^`E0?/z:b;*iREه.{ +0_ѕƸg @uGb5 8ڕzf6]xM+[$?) ŻRiDf- +MQоC B]IlYmw*u +!M bS[X6Y[.]GsBܮ=Wy=+Tgha$hP*3#;Jr,P0<u/bƊﲻБkYDSȠ8Y?>r=ؾ8 caUkUBa;9mμxCmzrG]n.f 3U~ë`TِO<+M' +{'VdߴU@p#+']DO&tS),n$!fil=M7k(_2%_cJSfT0Y4s ʋW]ʈݳwIwGI.w) v37vgN/ϯ&#hs^<>;)0Z-߫;oɨ2iK_ gXW']cZge5t^omKtQ+ܥٻn[Uؓ5jvq/_3t쮼iߵsq>rtXAP8= ZQL?1uLL +C$PF;x18j3I*iʚz +8龍&ҕ\qJ~~"1o +vYTD<߮jCi$pa=boXGxLIϑ[xx[%xu}u`1Ȏp/dz'*\hZNJcJS qlM/s9rOj tu-*OBtXꆑ}{0Ͻxe;&<8|>[\!hV Y*+mi6RK ;njQ B2|uN7h"OLyj辄6sW[?,z'ȈO%֣L[PQ9qoVhqEC6*z09m^N?.IN&cEu֋0JcmuZ[Svg&¤2؟lR` GD׊L\wjdGqc!] rW{PU9gӀ1e;"<(kcF}ƌ$U",feY_;)ʁ _){͟|(=~VT25] P3ZD-#)޵"U%>|`!+q?)Fs't#T#gj9ՎV7-9qH:I9" 0V+L{R #"Vr9C%_>j eQ6h6Rv@6#$Cw NNsvQo_khd%4k + +* (&@S.4hTZzI!I;bBhH{Gs0#9>hS\@SgY?dͳ7 -gߊo$FEg^"[YvCj(җedBӇ^B"E귪)r7ߒFVKb ՠH_^>-tJK Lw22B}8+UM?M|&I +9!O (u]= 8gQݳܚmY +|=F6ҚAJVR(u[Chp}ڄ|\5٦:83x: `% z `z M[Ӆ"ҀN_7ဦ8ncSPΆ/>IZMEG]D7T&aWa s%$f<{F9TV'=Հvu+6@8_S_ưzmrmKv^'㣥RU eul9Y_rRvzgWp;gfl>g S֙8+ tF)[atҔmPj~׳xh:,btiF{9GĉI{a|z&+ kN.!EڭAQYWӷHuf @1qo/9F⯘օs;D]Uv9S_¥53Zevi^ӽ \Z`mK|u6z˴>kAr[RD4vvlwk\X+ ܫwr90u\IS?c0}|/ f8ưfgSd2_*3i|\׿Nҳ:zEn>Έ`̓D]9STrK}Ԝȟ~3ʦ^yrsc1ˣ& @m^ya\8ehG*u[}蕏?Ɣ78H?|0`rXu ,&G)^:rwu/Su#hHM5h_ SK`D`f33qt q܁d>16ˆa*OPsW7U1dFmUv=^ߔ_]* ؎aԾVhHҬcL$3J8\" ;)ަINt%~%Oj!]ί.-0z:CGQ+">%D.^-U;ؑyġ5G@VBc>HoVh7VGe{@s*E{h&N3dLjW/ȁݫV] @XݻtU[T|f).LA Za?g?b\>\qZqxf=) .x}cׅMC )"4f"3/iĶ2TIs}5P|;ɉ1]Q*kڝsJ OWM'Iy)g8(@TJ &ݙҒkߡzvr_5l}Z+L!#&PbѸ?Z/L!4@{{ +wq'?lp(dzE)z6~,Mao-a؀y M |Eځٰ6j`ڟ5|/pF<떘&;E+ +]|8-ԾS"J8wj)@vU GwYsƜE.p O (]WAKKH 'Vu:31; +Hsq%᧩1Pݍ[sm 6 m +'ŋ^3^ Łus'UՅdt[Q3+{H7k"u3%vJO٩QrѬϿǕX 18?:^@ A$/ N^b|r{C~uPf:G ! 2 i}UݫEp6MtƑVE *B8i 퀪".f| l!PT":z|hIF;@II(w`1yI"{.|*^oP=*!Ifȥ-օ4mM"xU9c]x}/铄)rP*(]YR{>cOT6"a픍0緯f", rG4a#DŽ9~"=K(DPW_tc'dG&1X?KF, sY"NGˣȒ (ĨT5N:A@TuZm:VvjZ6L1I:aXZbSÿ[߿` +jPpnW̻Gw7a/ +xYn={Y[F>2u]xNjUn oC.i' , 纱*3}0ћȄ±Bg綽E;KsSc)F߅۪OuȓuD=6݈3Bil1NJCY*XNJX8a d۵IEDvZr1YIw e8/+1M\ΠBԜ`$!rg!'rڠ8򬪼2k& +Z|DP']zj^a@2^^WT$y!S ?T,'y%/ݶz) z*F6on?s<2k `V Jƿb#Fm +y0U3Axj/=wa3wKk2$g:L>!HAsbZ3{r9s$ǂf#q#Щ.y - c3k;@,r[_dD塿(ed4|G2#)bY<"`^ x#r 6"}_ЊlB#}3fO3`'׋9ǂF7ڊ?SgAN'ًX8)^~6a#aP$&tNq@8ĘBN̏M ,~-*4VǢ+Gп]'.WeETUϳ6 Z3,ɣ?b}8`"I:ɯWB|J<_6 +߬' =v%ؿFޖ 23NOifNGXjTF(C8V> ?qGY"E=[8bgDЬ?d + ' +#I, !6DϾ%L62\^b5q,N$ HW;+m 6gTEMPjQ};DىeRBX4{,|ITg99 +R=+  d\zW +,]3-?=V-)dՒ1p\ZÆyqtHv[[`17f){:P҇/^zY]KV|̍C_Ere +=B3wGyTh_밇 Aψ?q$ 4ve#r5#cHUBPTI-NH[Lގ(ç4d-Js_ {SyXmTţ(XķWx3/fhjyzdK'MQb2ťt׸‹&he]is Ril9#fS#Ǡy*_zh]XL?o)23LNbko#'"בUxCmίնJZVϗF;Q<&vw6C/[ٲΧX:L~)=aՉs Y>xBKGOMA&V܍O.mң.0''X8G= +]Ǎ]Lׁy:??~Q:Yըg0^ U|)%Q/6[))H_5ƀ)= `uGEBq&჉yӭt HanB5v +Sԗ hct|$_x5%/ܦ Ymʥ'F"RG:@u1ĞrnW΋C[t8ss`\[[rtTaW^4k|agggsp`H ډ꭪3.EͬE3w%< + +$Oԩ֐bP1,)dWh~f1v GXj`#j`vՖ*ĽQG'ic9 7M3=)EeY)n---?ySz DMХ#W X6?/5TU<R.N Dܮ8>@XH1/9a"?d,y6حD{|X -%YIe@]L}}y%֯D fIK"I/Nuʙ2c.D 3D@jS<MkMSlR ~ݗv柉P #بڝ_0z`T̨2Sj#nb鰚y\m#jrHd;άLy` L"x+Ayjl &gnVՆZkTtt3AXCfF N>"8Ud|@Y6k~#Ğ()5|PKlRl{&GRH3e8NC\ٴauv57̹jlje,HL&4'QLi%v)1V}MqD- ܋s%Wc΃AhG ^7ssΊrw(KҀwaUXj/UegHC @U9cGb=".lw[^aU5:{ >Xr|,NDmfSIw9Xޣ@"G<[ +C'r@nuϸ +iCV bžqR#a˼"4YOWjgby>Gr:`"|59@FE>_t'̔@E%ԩxiJ0w-.YX͖z!0yeA>k{Uq +tE5H /R*3v>R I-FHQRLv1Fb<>y 4O:~`KPW7f a:?p)<A`У6p|Kj;:L?5(tgd#JV揠 ,f Gh!IӢUW0j3 F$\I[ +~ ( Dn|lsUL* יWBWp&Hmo Cb_9yJ-c(5] !$_:½WY.[?W ڡQftm5M2 1ӓb\` +afM.c4m(4t޴ߍZ; ӡ|8~ٵ9'&,E7JEJydG)ٿ!z:b)ȵ Eб_1T#|鱪=oAc;q7)P l78le4Cj_ Td nZTƪOEV4dܒUo2duVݥ*AxQfrp7pnOMg![NUG!j4Ѯ> +-JOAZviw 9yC)D̞ޘT 9c]~ֲ9dZg l C ;7%gx%ȉF"6:Ǥt7})M";;MB ŢHuEvNWT1_t/v//p>':KoFl蠣VcN[MNS;[ I{wу@ħD5r0ZI7@Q;U2L!y2>?08z禎SD6Ip)2mC"8Dvv47HM>AW8ȥ_kB2 0y8KUߢwhN 焀j;L^ysQ`͊+|fI+{D+1@8&ksJ2d +G4Srn<HF<+cc oBd7?eMkhK(o[Uo*ɟ@E6YwC\7R,Y6]~xDʩQJ\GF=}c,^WCBG?YGϽwGD:T`LR? ښ%ZTMmrUg9.ZA ɟ6$4.H#))tY{`;f_+ҡKu j juqY+| ˠ*͡ &n)afT[ x_>Y_}f>Dk׆,ĿK\,.6М8ޣ3kw;J$܋{I;L/ \8lAVApOa9{5 'F5ڻ%(u*SA Y:uǺ.f:+n#oTOE0 +noVCnN0xBtᶙ JO 7߇(]v0ZG&^9zVH%)ɿEi𜈻 &*X !s\r= 8AzAm"{jTk2fϱ7u,)^ ^QA]o`pi؍;zjC2 +e +hS(J>$P3C_.F+GOuBV^ZG +AqG濖+IT E{ɮٚƁb[O 6#ʾt:h7[WA1w YZZH\YʃE00A_8^PP;ڟ$$J$\y5ߪ U `;!̜Vϳh%m[կ +>"Ua?5J!i``*Lx8Vql\ TYgL-!fEBQɶPzx48C*vO@y,+ۼ!c62P$QI4u/[̇%8mx ++n>i9TL$/S@jR{u_0%>x7jLgŒp +yHPcN6Dk5,9<9g6c]*SCgف#I_+J m{ox 8V5n 5FgQhyNziݮ&ggMz-Ǥ/~ +pұXw>:ƸXa~'7)P^ZVX!A!D,If ˣgSOwX pl҇ځ܈{Ca_zm3Phžqc 7+ޒH̯ݹkB lóg<DZ9:<|!!K4_8'uهJhݠnmPWʭh< 4PKs]v@e_#odj1. Ki!=zoqc61^7En: S U{ ;}EϒY.A1mv}6 bN&~[I'%!:AesCF <iv8#O\㾌k«{CtFU{ϕT%mU_Ū$ 5&dJ<6Ж^NaX O*5`@ ITMޢOm,8#wrbIg1Ǥ%n=iA'2F,J?g |,r7B~ aNoU~ijߚ) 's,l#B̄˫{s[՜Av(CnU!7" r#Y%M!jO;66NGm@L u5 a%y=&U/d)3־K_^-~$RPC{lBjK{µ15;b|׭F&g6a`Xd$i3W^i^ڗm3 +#FX+_wp h(9@&, Um>fiZmT̍VJ dT +'u&U/jw,j^kfuLŲ<)%J`2 ʬ>׌P8^b90Z->̚a&c55sKO~%;K&\S> 9+s(O"'#I8,,qjBkgK'nYmrbp?՝-CVͯ'~~=ve[ĵ_[$#K2^<ۍecRO#u +!L]=-, CH$Tţ,"),Ћ^}omXC=Z:U2AVK(PR]}RzAƘ@]Li7Rk +Ze'|cP>Q';Yht5y/UCZi ,˪ۅ R!NX`[ȣ ~χ clPJe"WǬ34&^Xz4i2!2T}^(PHk".PW%aP_a,} m,j1;KC,vl]|]pē9Mu: 88*m>dž?y(R0'@xp30u`. zt.+g~!'1b\K zxBjWM/ͣR7R$,V;lA{}}5i,6qlNPU~6nȼ|/{Ron)f Բ ;}!K},T~(üV9k[E52&ūZHڼ($ {w Wɦ,3 * +wW-4#liajx:f/i0KLs7:ɿ8!P6{0cS5ٵ$W&C>a)}r1 ک}sK) xG}j96_Q_6LИb1~PtާŠ PdZCxY:D5xEWJ2 ͱxTyPTj jhA e&泞ƸV+t؈E3Nεշ"?Ш2hhcw} }^B[~v_-f<9֣S"ס+m}gOW焟ZX$/ z*9e޽1qkKY+a?ESj} ?$XdЕT@)G=yKF6KqNRiAN^N3&QJ9B5WM?qbʬn129e)Sn +=]IKIL(zmP`eCr Rn5,h{aS\!.7pKϜ pBȴS.2+䮭4E̴pY?(Ga2,GO@ǷTI?(OoBb2QQ:k@:ڤ^,zGed+"5֛m=_LӣLO2?WMJS _lJa[ֿY^ˈm={fQ{Y 4*-`֔_$LQ ;XNzb=wb@|.CYeBT+gbs}~6NX>j_>؃7tr"P(/ XfXI+|R럝\ ?롎\v%8~A.5q9Da?R,MYx6H_ So >}B`lM#'HoQ~/\vb(}n2>Ve~.Z)K :i$Oe^q3*(~9ҜKÃ"~`,o eͳj A"pbꃹt%gyA9*g0g/wyP/1ד[ py( 33͜lxM*9(,sa 2:\Zi{HjG,ت@( :`]&$[%.s`1KIWP pf3.f7 ")VN"Cf:=ωqm+L5\Zo;tèH|s#@kQܐ?HYO< a掎lS1ߜ(Մ V KX)ѯMX8 v8D+o)[=}`UG +iષy +A`aU4FZj'6 @*ox3:YB3o B^WpρcmZJlpp*hG7K' ЁyZ[K;0&t>?W H֊d[? 1nͫk4SO l>ፓzϕ`S{kǦJGtҔ77SҦ,sd&yCHwzq)́]ξ^В +3XykMQ4)zF ">o$H7UϚ*$@.Rޞ1wa+ELӃ΍ aco— b{?=< .YL"vY _aek(s~U Xwhѯ!ؼ M$Cҵc|8>Ioeb!3=)OLpЌҥ&@ f8܍2MB+o97vn_ߍ].m'A0NɆȳb:)B ֚>[6/YOw6L6f9{t]zks/XD0L?eLdAV_z{3d/UjZ䘧g D+;4/[af>hOm[MIo26q-m.;b'M͋J;̛5G5-MtAl% 'P{3!^< +u҅w74ĭ-v&<Ȍ/m(^, +.P_N=k)hn@jb85)nLZ"cBߤ۽BLԸtL kf?/2?+R\=yZq;zV<ӜrQfiFFC7@cՌExh+&zZu 'O 7hy%ш0ȃOJ*H8C` +Kvl$ + +kƴ~v*eIw +-D1B'a.׏Fɂ"kJYgT9Ĕ%T}l5|RړѻXkM5a\Q,MU•RHDd;Lt[%?y1|JP5Bm52T +;0= D(˩;Y͏ua )X.tgV"n*)2ӝAuf`>P#t.}z8H6ZoG bS(=cO_A {nrq%> endobj +248 0 obj << +/Ascent 715 +/CapHeight 680 +/Descent -282 +/FontName /GBBMOS+URWPalladioL-Roma +/ItalicAngle 0 +/StemV 84 +/XHeight 469 +/FontBBox [-166 -283 1021 943] +/Flags 4 +/CharSet (/fi/fl/dollar/percent/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/equal/question/A/B/C/D/E/F/G/H/I/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/bracketleft/bracketright/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/asciitilde/quotedblleft/quotedblright/bullet/emdash/copyright) +/FontFile 249 0 R +>> endobj +1269 0 obj +[605 608 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 840 0 278 333 333 389 606 250 333 250 606 500 500 500 500 500 500 500 500 500 500 250 250 0 606 0 444 0 778 611 709 774 611 556 763 832 337 0 726 611 946 831 786 604 786 668 525 613 778 722 1000 667 667 0 333 0 333 0 0 0 500 553 444 611 479 333 556 582 291 234 556 291 883 582 546 601 560 395 424 326 603 565 834 516 556 500 0 0 0 606 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 500 606 0 1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 747 ] +endobj +241 0 obj << +/Length1 1608 +/Length2 10276 +/Length3 532 +/Length 11132 +/Filter /FlateDecode +>> +stream +xweP\.%8{ 44tN A;ݝ].wfL;f׭v^>K@!el w8x8ANnPm *5E) +0> xDDD02/W O_.KlƗw3 @j`rd44  + jttYTAV@0qv8CX9A|,P +r ieb@N (l]- _ mNb{t V  USVy,`ņ^gOkg+JbYP +%` B-^bA\Am;hkjB_`^?- GO;9`P 'KL+Kl[AQ8xvw$,^k 3%$2 B?]}Why7GGu ǂl(@׎|-@^:xi +nN(APy'ZX8o._؁5]Polw\zju:L ؿաl_Ξ!>efsy_{) 9цY_F?\]_Cz0gDC2>ê^g5Ƀ#w +玀59kG<5yMCY::>s)X[ض̾b}>Џ3d$ȭ>Nˬr5K {^ !*&*1SO][lYq HXQ.YFe>1Ezנ`{#NO^?@}jgz^ X JǁފEdM'C\Ui_D~mfTYrvsލ5ħ W'*}ZzI0%!8N$?mFWr]bj DBsE=!-E3T}j"A)XXt utB O׎K?ߍs:]훷YsVZ)ж T%DJOkXI,C &lDXR gB эxҦnjD3.4\*_p!vso47JgB42XDirW HT*F{uIk(oсHՎS2P7: W +T%VXPoԘ}9 $"}zbx%Έ=D`2_d|U[, +Mt/f]鬯LƐDEm齖>f xp +,좴+r$۔U]]QcQWO TSjKNA ;eؘPSqOG$mӕt)TΔJh_*Ύ5$*k;uaRysՄYyѧ7C]ԯ8 5ᒓ)m6(B+g{vkwh@ȫdi0,Ť8૝߾fDt7HƲmsqr5$FEca[L#*ȣ&i97 T4] S.cWbBԣC4mf3ϛ6$_K2΋h_~]j xo%jc 3($9`,p:BzI7.8Cx<{[A?ұɌ8p2 b.jh:萻J Z|H`-~ +7śD<^38{J0}^٨-]l+TƙV.@N\bdž]k:~[Iݡ'n\E/ѓhkxuU#QRxV\f/挟=|/\GϏRns+WyΟ:W;I];ܠi_W/-A@16CφZ0{zVl#&_iZHI/+i8'ް=gE 7ӊٞ +*sT3a萘`aG-FNӍl ),XJ ܟ u' +< xݨj%:i%ƪV8`q;=L$<Y.EG0nH6ܛÿ4_sifw! U֍=^n_b++SxK'7ȫ0̇`&b}Z{v`ð(xGdGQ'r׾{ M잢KrGtTA{_XI!>łkJRTEeF T.%xrS3B=4?(r" FdiT.>L4p2>P1DKqhYVݟ"'.L*Cr;)%y7/J?z|LnX)]ŋx=U EAenk T*`;Ƽ}dPa·9X7urF=uL=H>%}k4rN988Gί'\ܕx"G|I13B={ew2~c3&ަ)1DZ{*RvG|m=gTZG8R#fd ;x<6o5h٧׍H8*ӲowROw1ЫyFwGljgS +̯Rlm +@lgudT#FSSM t-@$ +&q=C޲OFyEj[l%Biۇ}[AfP}Q뎛z'c6cݾMw3O?gAڪh 4Uo3=d0cM{|B\c䃉}CKpIi*@ޏ)4~ +7!7xf%0]mjri3X_EgA!WCQİC%:̂O'qUPB'%2eVXj['0T +fMYޞ~lz=CMU5JEaEdٺdlyg_ǘtR - B({ 1t0MlnFkeVbhQE +7fbb|v9LCOo08Lɤͩߠ]N-"m# ?<(wuٙ:iqL C/X 7nv0~s_Va k6^AV]3K)wѡРAɏA)tf]zSxAk7W$wIKvD<8B ͅ1Q[=~Ϛ}U/.jf}E2'r[pU%,QiInGr/*CiHO_3 Z!P^~@[4sf - `ݎfO?t|߹d"MxO&Uȇ:Qj]xφ?؞CF7u'}݄[*fǾN$zىi%l=Sl-ZiubX<ԿM8V^nZ-Uapr טNU!m}_RHuU7^RSOVCd3+R$һ~L6:W%zAA~U41p}Eb O^ sW~eV35$marWE< +9)'dN( `HUͤt|T<O1=0f*9 IVw9;XVH볣&QqKƨ6g!%6wPSwZD ?39d7̑mk?_0gWW$14z6`Z N i?CY#*w܈8W +imƜL +L{[i_3wn>=h_sdK ǜc``eKN3dzAsJצ5!B u3,R N8a՛ϙOpܶgˑYqW2gR#0 6Pɏn<}]cgHi>*k&ƅ"1+ _SԉNwh +IiE"b1Z5뭂ᾍ)[t?uVH{ Ȍ\H^g eP=/_5OY .ﶰ5sAqY. '"_j#g?W,&Fy`7V[:D+ 6|]@c71ǯA>썱kUK#M3-(AL*ĺ"M$)l1eR=r uUP6FeG\=!O8, ]M5 1㸠fSMiJNM*)M.\4U\5a=9Ϊ v|ZrȯI-JN{ 189daXeHq_]ҕg*WW=|kƛ+@R($/%_˝dvg2[rYYxtrEFP\sK,զ$azuXt)+u>.rw4+owoޅ-Xq4n0rM Y)Z ׇ:dr'd^+VHAis%[mk˫26|NPE%Fx/E VC *֏za7ZLhqLiT-woo-՞3c[NTZ/3GE<(WJJ; +ϕ7~/L䙇wnH/?ԍ YG>ғ^4t ǀfZueճ GZq7NSkyu/.1˨l2ꋆhRǖ#Lm3C1O ? QGH4ja\"ޮ'- ߶`eQ ,Q3 Myn&45x5#P&d">gC+jpd]PcHu z;|FOǟ~J -6TsOW#'g:Ѩ1v _\|'<8rRi ~1%#DY|H^]9 )E)CE D6T9bdyqþCOCѿ +F7iR,t\ĵrZ0 55$>@E/ s&+5$E׽HoԬffkr>).|4Ǡ̽Xa"Gh+G@L'^HLl\}hɥ[hāZ;azDAv}hۉceQM'/>p4JSR߻eྋ!|,! _p9{^H4i]G˥-—KmQ'vo'UHUrĝC!7` ׵1RD܊okTܓɪo&;Y)dx&56ѵaf{Et?D I tczI{A(OEz_g_1,x.AdN=.+:(oW6VYL7kn J|=$IܶhmXR Uvp-/W f{I.W1v[gY^ǫ1HP5ݼ%[c$Eҿ,؏&@jL@׫Z@$e r[, + ++'9~Vzw)o켁.zw^եB-#f]E]Ktz;&BRfioYplu|vL Βgdp1w[dd T:>ޑ"lrM4jP]8ke{V,!Y[|=΃}ˏc/e@,v;$O=BфR1 +h#]}󮏙eЖ#ڄ:XV^tMv+:_%%MLfoq֮RM^ذpb:H)Ӏ/åI(}4j[4#*쀾zz ODjL}\ju*"hnH`E<B+U%VljSRټdVK\$1sNClvjrn71PdM^ +r+.Mw_cMy;x%W{߹ +l0a; +V]•!Ϻ|`>bA^pO(/t!\'Ky):'bBu& _#o6ד-zyp)bYc LdLTzmM:5?N3Yg˪*4tT Q%M4.eNzƋFia>4fa2{8N|1DWpނhVy3f?vdhBhQL2lPjvĕJ:A"PSKBWuwMM ;B G+CX7ď89D<rYQd;h5gJ$@ef͡^SO:ԙR=ՕsyvdxjH02xPDL5;7Q*,mo66(#f5~42VdWp|eRhZm$*kz(kwp>vSo?LФLpWJ!AK! PkO4{6уwSA΁=j{}Ӵ6V!%v zwQRir5۞fڃyRC\JyΎ9_!2ڕHP@nx/|N Q){t܉3AJz?1'_Qa/L9Hngmiن4u*":dq9<O7'Ŷ7<5tq4ghE#^YǢc+`&]#=]>BUSb3Ks9͙UtX];ަ3"8x5PX((7 C=MnV-_dUAi eˢ0nl:B3H]1̀VYzP{9&/*&<5A] ֵtQ/ƕmy +)R>d/Jv˴mqnMRHq#+P9orxW3!E헢( 1氷.ap'0<߂HT %E~^6yA'uɽFԞ\Xͩz.IQRѧI5U !.kDչ^Ny8l# j_i:+mXrC~rr 15J=\z +z%/uTR9@*˜T9WC) |'aj,-Sj&mc# aLiQykYY4)|-}}k\uj?G^L/ ݔۣV3v)IJfCN +QQiî8t{PN>+W1zE)0/(f$ԙž khH2(>x<7Uh? +Ҟ3F_iӉMP͇6έLIP^/]1" +xf4 ^~~&0@A*p]`(d 5_ +J5} 9gΈ8i#H 8OJ(͑[K9gBl+]Ieϒ:p-rSOߞFn)(ƋBu YGGd[8#[oYFA&y8N;0ױL Bv(Ĵpx&K*Xi4Wx k|dV}XXP~ 7ԍ ;RVB]nlզ=#M;@cb>̐N+0(eK[踻umH̍,ϕ y Cj'$:i&ӡܡn@'yk{~`>DWN%Tƪ2bjL.NAzK0QYnɘ+Q$: A}&bHUqOڛp){B +;_e\r)y#Zw.w CYDzm𒕂~|d +jRb ~w_p=06ʆ}5i!H{sLῘ͑y$;I+GUI / +kQi>Ձ,:R 8]!t5#B(b7xL{k]x'a~pKRZX@cwFV7gW)}-;ç + Ԛvt\۾6Ak£Z~Ca*|f'h]\9FJT["Hq*J[M:PAaíh\ո%n]TB4C}5]认"e&6i1],jzo#Fmf%!zqHt'Ui!'Zg67}sS ڌ?:LW֤~ϒAwZ"||Si&Qf" RLwz뻊[}YAvt4 " Tq!L_nI <1mGf7 SiصBt..PXhlzY/HJ  +Ɇ"l"gDBϺY))-dpBpO2kUr6!Qs9B+RVX_~T;mNqCcFۊ]oWwR:r 􄓠yi!IsoW*k="tWZrP\&2@QՒ'KuȲ2k'Ĺ**҉MB&lU$"'Ӹ&OkkT\Ũe03oT7lMz&(Kı)k!x{ &*"`~rZœ,\0zzendstream +endobj +242 0 obj << +/Type /Font +/Subtype /Type1 +/Encoding 1264 0 R +/FirstChar 2 +/LastChar 148 +/Widths 1270 0 R +/BaseFont /VMSQEA+NimbusSanL-Bold +/FontDescriptor 240 0 R +>> endobj +240 0 obj << +/Ascent 722 +/CapHeight 722 +/Descent -217 +/FontName /VMSQEA+NimbusSanL-Bold +/ItalicAngle 0 +/StemV 141 +/XHeight 532 +/FontBBox [-173 -307 1003 949] +/Flags 4 +/CharSet (/fi/comma/period/one/two/three/four/five/six/seven/question/A/B/C/D/E/F/G/H/I/L/M/N/O/P/R/S/T/V/W/a/b/c/d/e/f/g/h/i/k/l/m/n/o/p/r/s/t/u/v/w/x/y/quotedblleft/quotedblright) +/FontFile 241 0 R +>> endobj +1270 0 obj +[611 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 278 0 278 0 0 556 556 556 556 556 556 556 0 0 0 0 0 0 0 611 0 722 722 722 722 667 611 778 722 278 0 0 611 833 722 778 667 0 722 667 611 0 667 944 0 0 0 0 0 0 0 0 0 556 611 556 611 556 333 611 611 278 0 556 278 889 611 611 611 0 389 556 333 611 556 778 556 556 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 500 ] +endobj +243 0 obj << +/Type /Pages +/Count 6 +/Parent 1271 0 R +/Kids [234 0 R 245 0 R 252 0 R 427 0 R 437 0 R 459 0 R] +>> endobj +495 0 obj << +/Type /Pages +/Count 6 +/Parent 1271 0 R +/Kids [463 0 R 497 0 R 526 0 R 563 0 R 575 0 R 601 0 R] +>> endobj +647 0 obj << +/Type /Pages +/Count 6 +/Parent 1271 0 R +/Kids [610 0 R 651 0 R 666 0 R 709 0 R 713 0 R 750 0 R] +>> endobj +784 0 obj << +/Type /Pages +/Count 6 +/Parent 1271 0 R +/Kids [762 0 R 786 0 R 796 0 R 820 0 R 833 0 R 841 0 R] +>> endobj +850 0 obj << +/Type /Pages +/Count 6 +/Parent 1271 0 R +/Kids [846 0 R 852 0 R 857 0 R 862 0 R 867 0 R 872 0 R] +>> endobj +880 0 obj << +/Type /Pages +/Count 6 +/Parent 1271 0 R +/Kids [877 0 R 882 0 R 888 0 R 892 0 R 896 0 R 994 0 R] +>> endobj +1075 0 obj << +/Type /Pages +/Count 4 +/Parent 1272 0 R +/Kids [1042 0 R 1077 0 R 1101 0 R 1166 0 R] +>> endobj +1271 0 obj << +/Type /Pages +/Count 36 +/Parent 1273 0 R +/Kids [243 0 R 495 0 R 647 0 R 784 0 R 850 0 R 880 0 R] +>> endobj +1272 0 obj << +/Type /Pages +/Count 4 +/Parent 1273 0 R +/Kids [1075 0 R] +>> endobj +1273 0 obj << +/Type /Pages +/Count 40 +/Kids [1271 0 R 1272 0 R] +>> endobj +1274 0 obj << +/Type /Outlines +/First 3 0 R +/Last 167 0 R +/Count 12 +>> endobj +231 0 obj << +/Title 232 0 R +/A 229 0 R +/Parent 167 0 R +/Prev 211 0 R +>> endobj +227 0 obj << +/Title 228 0 R +/A 225 0 R +/Parent 211 0 R +/Prev 223 0 R +>> endobj +223 0 obj << +/Title 224 0 R +/A 221 0 R +/Parent 211 0 R +/Prev 219 0 R +/Next 227 0 R +>> endobj +219 0 obj << +/Title 220 0 R +/A 217 0 R +/Parent 211 0 R +/Prev 215 0 R +/Next 223 0 R +>> endobj +215 0 obj << +/Title 216 0 R +/A 213 0 R +/Parent 211 0 R +/Next 219 0 R +>> endobj +211 0 obj << +/Title 212 0 R +/A 209 0 R +/Parent 167 0 R +/Prev 195 0 R +/Next 231 0 R +/First 215 0 R +/Last 227 0 R +/Count -4 +>> endobj +207 0 obj << +/Title 208 0 R +/A 205 0 R +/Parent 195 0 R +/Prev 203 0 R +>> endobj +203 0 obj << +/Title 204 0 R +/A 201 0 R +/Parent 195 0 R +/Prev 199 0 R +/Next 207 0 R +>> endobj +199 0 obj << +/Title 200 0 R +/A 197 0 R +/Parent 195 0 R +/Next 203 0 R +>> endobj +195 0 obj << +/Title 196 0 R +/A 193 0 R +/Parent 167 0 R +/Prev 191 0 R +/Next 211 0 R +/First 199 0 R +/Last 207 0 R +/Count -3 +>> endobj +191 0 obj << +/Title 192 0 R +/A 189 0 R +/Parent 167 0 R +/Prev 175 0 R +/Next 195 0 R +>> endobj +187 0 obj << +/Title 188 0 R +/A 185 0 R +/Parent 175 0 R +/Prev 183 0 R +>> endobj +183 0 obj << +/Title 184 0 R +/A 181 0 R +/Parent 175 0 R +/Prev 179 0 R +/Next 187 0 R +>> endobj +179 0 obj << +/Title 180 0 R +/A 177 0 R +/Parent 175 0 R +/Next 183 0 R +>> endobj +175 0 obj << +/Title 176 0 R +/A 173 0 R +/Parent 167 0 R +/Prev 171 0 R +/Next 191 0 R +/First 179 0 R +/Last 187 0 R +/Count -3 +>> endobj +171 0 obj << +/Title 172 0 R +/A 169 0 R +/Parent 167 0 R +/Next 175 0 R +>> endobj +167 0 obj << +/Title 168 0 R +/A 165 0 R +/Parent 1274 0 R +/Prev 115 0 R +/First 171 0 R +/Last 231 0 R +/Count -6 +>> endobj +163 0 obj << +/Title 164 0 R +/A 161 0 R +/Parent 115 0 R +/Prev 159 0 R +>> endobj +159 0 obj << +/Title 160 0 R +/A 157 0 R +/Parent 115 0 R +/Prev 155 0 R +/Next 163 0 R +>> endobj +155 0 obj << +/Title 156 0 R +/A 153 0 R +/Parent 115 0 R +/Prev 151 0 R +/Next 159 0 R +>> endobj +151 0 obj << +/Title 152 0 R +/A 149 0 R +/Parent 115 0 R +/Prev 147 0 R +/Next 155 0 R +>> endobj +147 0 obj << +/Title 148 0 R +/A 145 0 R +/Parent 115 0 R +/Prev 143 0 R +/Next 151 0 R +>> endobj +143 0 obj << +/Title 144 0 R +/A 141 0 R +/Parent 115 0 R +/Prev 139 0 R +/Next 147 0 R +>> endobj +139 0 obj << +/Title 140 0 R +/A 137 0 R +/Parent 115 0 R +/Prev 135 0 R +/Next 143 0 R +>> endobj +135 0 obj << +/Title 136 0 R +/A 133 0 R +/Parent 115 0 R +/Prev 131 0 R +/Next 139 0 R +>> endobj +131 0 obj << +/Title 132 0 R +/A 129 0 R +/Parent 115 0 R +/Prev 127 0 R +/Next 135 0 R +>> endobj +127 0 obj << +/Title 128 0 R +/A 125 0 R +/Parent 115 0 R +/Prev 123 0 R +/Next 131 0 R +>> endobj +123 0 obj << +/Title 124 0 R +/A 121 0 R +/Parent 115 0 R +/Prev 119 0 R +/Next 127 0 R +>> endobj +119 0 obj << +/Title 120 0 R +/A 117 0 R +/Parent 115 0 R +/Next 123 0 R +>> endobj +115 0 obj << +/Title 116 0 R +/A 113 0 R +/Parent 1274 0 R +/Prev 99 0 R +/Next 167 0 R +/First 119 0 R +/Last 163 0 R +/Count -12 +>> endobj +111 0 obj << +/Title 112 0 R +/A 109 0 R +/Parent 99 0 R +/Prev 107 0 R +>> endobj +107 0 obj << +/Title 108 0 R +/A 105 0 R +/Parent 99 0 R +/Prev 103 0 R +/Next 111 0 R +>> endobj +103 0 obj << +/Title 104 0 R +/A 101 0 R +/Parent 99 0 R +/Next 107 0 R +>> endobj +99 0 obj << +/Title 100 0 R +/A 97 0 R +/Parent 1274 0 R +/Prev 95 0 R +/Next 115 0 R +/First 103 0 R +/Last 111 0 R +/Count -3 +>> endobj +95 0 obj << +/Title 96 0 R +/A 93 0 R +/Parent 1274 0 R +/Prev 91 0 R +/Next 99 0 R +>> endobj +91 0 obj << +/Title 92 0 R +/A 89 0 R +/Parent 1274 0 R +/Prev 87 0 R +/Next 95 0 R +>> endobj +87 0 obj << +/Title 88 0 R +/A 85 0 R +/Parent 1274 0 R +/Prev 63 0 R +/Next 91 0 R +>> endobj +83 0 obj << +/Title 84 0 R +/A 81 0 R +/Parent 63 0 R +/Prev 71 0 R +>> endobj +79 0 obj << +/Title 80 0 R +/A 77 0 R +/Parent 71 0 R +/Prev 75 0 R +>> endobj +75 0 obj << +/Title 76 0 R +/A 73 0 R +/Parent 71 0 R +/Next 79 0 R +>> endobj +71 0 obj << +/Title 72 0 R +/A 69 0 R +/Parent 63 0 R +/Prev 67 0 R +/Next 83 0 R +/First 75 0 R +/Last 79 0 R +/Count -2 +>> endobj +67 0 obj << +/Title 68 0 R +/A 65 0 R +/Parent 63 0 R +/Next 71 0 R +>> endobj +63 0 obj << +/Title 64 0 R +/A 61 0 R +/Parent 1274 0 R +/Prev 47 0 R +/Next 87 0 R +/First 67 0 R +/Last 83 0 R +/Count -3 +>> endobj +59 0 obj << +/Title 60 0 R +/A 57 0 R +/Parent 47 0 R +/Prev 55 0 R +>> endobj +55 0 obj << +/Title 56 0 R +/A 53 0 R +/Parent 47 0 R +/Prev 51 0 R +/Next 59 0 R +>> endobj +51 0 obj << +/Title 52 0 R +/A 49 0 R +/Parent 47 0 R +/Next 55 0 R +>> endobj +47 0 obj << +/Title 48 0 R +/A 45 0 R +/Parent 1274 0 R +/Prev 23 0 R +/Next 63 0 R +/First 51 0 R +/Last 59 0 R +/Count -3 +>> endobj +43 0 obj << +/Title 44 0 R +/A 41 0 R +/Parent 23 0 R +/Prev 39 0 R +>> endobj +39 0 obj << +/Title 40 0 R +/A 37 0 R +/Parent 23 0 R +/Prev 35 0 R +/Next 43 0 R +>> endobj +35 0 obj << +/Title 36 0 R +/A 33 0 R +/Parent 23 0 R +/Prev 31 0 R +/Next 39 0 R +>> endobj +31 0 obj << +/Title 32 0 R +/A 29 0 R +/Parent 23 0 R +/Prev 27 0 R +/Next 35 0 R +>> endobj +27 0 obj << +/Title 28 0 R +/A 25 0 R +/Parent 23 0 R +/Next 31 0 R +>> endobj +23 0 obj << +/Title 24 0 R +/A 21 0 R +/Parent 1274 0 R +/Prev 11 0 R +/Next 47 0 R +/First 27 0 R +/Last 43 0 R +/Count -5 +>> endobj +19 0 obj << +/Title 20 0 R +/A 17 0 R +/Parent 11 0 R +/Prev 15 0 R +>> endobj +15 0 obj << +/Title 16 0 R +/A 13 0 R +/Parent 11 0 R +/Next 19 0 R +>> endobj +11 0 obj << +/Title 12 0 R +/A 9 0 R +/Parent 1274 0 R +/Prev 7 0 R +/Next 23 0 R +/First 15 0 R +/Last 19 0 R +/Count -2 +>> endobj +7 0 obj << +/Title 8 0 R +/A 5 0 R +/Parent 1274 0 R +/Prev 3 0 R +/Next 11 0 R +>> endobj +3 0 obj << +/Title 4 0 R +/A 1 0 R +/Parent 1274 0 R +/Next 7 0 R +>> endobj +1275 0 obj << +/Names [(0) 239 0 R (1.0) 2 0 R (10.0) 98 0 R (10.14.1) 102 0 R (10.15.1) 106 0 R (10.16.1) 110 0 R (100) 507 0 R (101) 508 0 R (102) 509 0 R (103) 510 0 R (104) 511 0 R (105) 512 0 R (106) 513 0 R (107) 514 0 R (108) 515 0 R (109) 516 0 R (11) 440 0 R (11.0) 114 0 R (11.17.1) 118 0 R (11.18.1) 122 0 R (11.19.1) 126 0 R (11.20.1) 130 0 R (11.21.1) 134 0 R (11.22.1) 138 0 R (11.23.1) 142 0 R (11.24.1) 146 0 R (11.25.1) 150 0 R (11.26.1) 154 0 R (11.27.1) 158 0 R (11.28.1) 162 0 R (110) 517 0 R (111) 518 0 R (112) 519 0 R (113) 520 0 R (114) 521 0 R (115) 522 0 R (116) 523 0 R (117) 524 0 R (118) 378 0 R (12) 441 0 R (12.0) 166 0 R (12.29.1) 170 0 R (12.30.1) 174 0 R (12.30.3.2) 178 0 R (12.30.4.2) 182 0 R (12.30.5.2) 186 0 R (12.31.1) 190 0 R (12.32.1) 194 0 R (12.32.6.2) 198 0 R (12.32.7.2) 202 0 R (12.32.8.2) 206 0 R (12.33.1) 210 0 R (12.33.10.2) 218 0 R (12.33.11.2) 222 0 R (12.33.12.2) 226 0 R (12.33.9.2) 214 0 R (12.34.1) 230 0 R (120) 528 0 R (121) 529 0 R (122) 530 0 R (123) 531 0 R (124) 532 0 R (125) 533 0 R (126) 534 0 R (127) 535 0 R (128) 536 0 R (129) 537 0 R (13) 442 0 R (130) 538 0 R (131) 539 0 R (132) 540 0 R (133) 541 0 R (134) 542 0 R (135) 543 0 R (136) 544 0 R (137) 545 0 R (138) 546 0 R (139) 379 0 R (14) 373 0 R (141) 547 0 R (142) 548 0 R (143) 549 0 R (144) 550 0 R (145) 551 0 R (146) 552 0 R (148) 380 0 R (150) 554 0 R (151) 555 0 R (152) 556 0 R (153) 557 0 R (154) 558 0 R (156) 559 0 R (17) 443 0 R (18) 444 0 R (19) 445 0 R (190) 565 0 R (191) 566 0 R (192) 567 0 R (193) 568 0 R (194) 569 0 R (195) 570 0 R (196) 571 0 R (197) 572 0 R (198) 573 0 R (199) 381 0 R (2.0) 6 0 R (20) 446 0 R (201) 577 0 R (202) 578 0 R (203) 579 0 R (204) 580 0 R (205) 382 0 R (207) 581 0 R (208) 582 0 R (209) 583 0 R (21) 374 0 R (210) 584 0 R (211) 585 0 R (212) 586 0 R (213) 383 0 R (215) 587 0 R (216) 588 0 R (217) 589 0 R (218) 590 0 R (219) 591 0 R (220) 592 0 R (221) 593 0 R (222) 594 0 R (223) 595 0 R (224) 384 0 R (226) 596 0 R (227) 597 0 R (228) 598 0 R (229) 603 0 R (23) 447 0 R (230) 604 0 R (231) 599 0 R (232) 605 0 R (237) 613 0 R (238) 614 0 R (239) 386 0 R (24) 448 0 R (241) 615 0 R (242) 616 0 R (243) 617 0 R (244) 618 0 R (245) 619 0 R (246) 620 0 R (247) 621 0 R (248) 622 0 R (249) 623 0 R (25) 449 0 R (250) 624 0 R (251) 625 0 R (252) 626 0 R (253) 627 0 R (256) 387 0 R (258) 630 0 R (259) 631 0 R (26) 450 0 R (260) 632 0 R (261) 633 0 R (262) 634 0 R (264) 388 0 R (266) 636 0 R (267) 637 0 R (268) 638 0 R (269) 639 0 R (27) 451 0 R (270) 640 0 R (271) 641 0 R (272) 642 0 R (273) 643 0 R (274) 644 0 R (275) 645 0 R (276) 646 0 R (277) 389 0 R (279) 654 0 R (28) 452 0 R (280) 655 0 R (281) 656 0 R (282) 657 0 R (283) 658 0 R (284) 659 0 R (285) 660 0 R (286) 390 0 R (288) 661 0 R (29) 453 0 R (290) 663 0 R (293) 669 0 R (294) 670 0 R (295) 671 0 R (296) 672 0 R (299) 675 0 R (3.0) 10 0 R (3.1.1) 14 0 R (3.2.1) 18 0 R (30) 454 0 R (300) 676 0 R (301) 677 0 R (302) 678 0 R (305) 682 0 R (306) 683 0 R (307) 684 0 R (308) 685 0 R (309) 686 0 R (31) 455 0 R (311) 688 0 R (312) 689 0 R (313) 690 0 R (314) 691 0 R (315) 692 0 R (316) 693 0 R (317) 694 0 R (318) 695 0 R (319) 696 0 R (32) 456 0 R (320) 697 0 R (322) 699 0 R (323) 700 0 R (324) 701 0 R (325) 702 0 R (326) 703 0 R (327) 704 0 R (33) 457 0 R (330) 716 0 R (332) 718 0 R (333) 719 0 R (334) 720 0 R (335) 721 0 R (336) 722 0 R (337) 723 0 R (338) 724 0 R (339) 725 0 R (340) 726 0 R (341) 727 0 R (342) 728 0 R (343) 729 0 R (344) 730 0 R (345) 731 0 R (346) 732 0 R (347) 733 0 R (348) 734 0 R (349) 735 0 R (350) 736 0 R (351) 737 0 R (352) 738 0 R (353) 739 0 R (354) 740 0 R (355) 741 0 R (356) 742 0 R (357) 743 0 R (358) 744 0 R (359) 745 0 R (36) 465 0 R (360) 746 0 R (361) 747 0 R (362) 748 0 R (363) 753 0 R (364) 754 0 R (365) 755 0 R (366) 756 0 R (367) 757 0 R (368) 758 0 R (37) 466 0 R (370) 393 0 R (372) 765 0 R (373) 766 0 R (374) 767 0 R (375) 768 0 R (376) 769 0 R (377) 770 0 R (378) 771 0 R (379) 775 0 R (38) 467 0 R (380) 776 0 R (381) 777 0 R (382) 778 0 R (383) 779 0 R (384) 780 0 R (385) 781 0 R (386) 782 0 R (387) 783 0 R (389) 789 0 R (39) 468 0 R (4.0) 22 0 R (4.3.1) 26 0 R (4.4.1) 30 0 R (4.5.1) 34 0 R (4.6.1) 38 0 R (4.7.1) 42 0 R (40) 469 0 R (41) 470 0 R (415) 791 0 R (416) 792 0 R (418) 394 0 R (42) 471 0 R (420) 799 0 R (421) 800 0 R (422) 801 0 R (423) 395 0 R (425) 802 0 R (426) 803 0 R (429) 396 0 R (43) 472 0 R (431) 806 0 R (432) 807 0 R (433) 808 0 R (434) 809 0 R (435) 810 0 R (436) 811 0 R (437) 812 0 R (438) 813 0 R (439) 814 0 R (44) 473 0 R (441) 816 0 R (442) 817 0 R (443) 823 0 R (444) 824 0 R (445) 825 0 R (446) 826 0 R (448) 397 0 R (45) 474 0 R (450) 828 0 R (452) 830 0 R (453) 398 0 R (455) 836 0 R (459) 837 0 R (46) 475 0 R (463) 838 0 R (467) 839 0 R (47) 376 0 R (471) 844 0 R (475) 849 0 R (479) 855 0 R (483) 860 0 R (487) 865 0 R (49) 476 0 R (491) 870 0 R (495) 875 0 R (499) 885 0 R (5.0) 46 0 R (5.10.1) 58 0 R (5.8.1) 50 0 R (5.9.1) 54 0 R (50) 377 0 R (503) 886 0 R (506) 412 0 R (508) 899 0 R (509) 900 0 R (510) 901 0 R (511) 902 0 R (512) 903 0 R (513) 904 0 R (514) 905 0 R (515) 906 0 R (516) 907 0 R (517) 908 0 R (518) 909 0 R (519) 910 0 R (52) 477 0 R (520) 911 0 R (521) 912 0 R (522) 913 0 R (523) 914 0 R (524) 915 0 R (525) 916 0 R (526) 917 0 R (527) 918 0 R (528) 919 0 R (529) 920 0 R (53) 478 0 R (530) 921 0 R (531) 922 0 R (532) 923 0 R (533) 924 0 R (534) 925 0 R (535) 926 0 R (536) 927 0 R (537) 928 0 R (538) 929 0 R (539) 930 0 R (54) 479 0 R (540) 931 0 R (541) 932 0 R (542) 933 0 R (543) 934 0 R (544) 935 0 R (545) 936 0 R (546) 937 0 R (547) 938 0 R (548) 939 0 R (549) 940 0 R (55) 480 0 R (550) 941 0 R (551) 942 0 R (552) 943 0 R (553) 944 0 R (554) 945 0 R (555) 946 0 R (556) 947 0 R (557) 948 0 R (558) 949 0 R (559) 950 0 R (56) 481 0 R (560) 951 0 R (561) 952 0 R (562) 953 0 R (563) 954 0 R (564) 955 0 R (565) 956 0 R (566) 957 0 R (567) 958 0 R (568) 959 0 R (569) 960 0 R (57) 482 0 R (570) 961 0 R (571) 413 0 R (573) 962 0 R (574) 414 0 R (576) 963 0 R (577) 964 0 R (578) 965 0 R (579) 966 0 R (58) 483 0 R (580) 967 0 R (581) 968 0 R (582) 969 0 R (583) 970 0 R (584) 971 0 R (585) 972 0 R (586) 973 0 R (587) 974 0 R (588) 975 0 R (589) 976 0 R (59) 484 0 R (590) 977 0 R (591) 978 0 R (592) 979 0 R (593) 980 0 R (594) 981 0 R (595) 982 0 R (596) 983 0 R (597) 415 0 R (599) 984 0 R (6.0) 62 0 R (6.11.1) 66 0 R (6.12.1) 70 0 R (6.12.1.2) 74 0 R (6.12.2.2) 78 0 R (6.13.1) 82 0 R (60) 485 0 R (600) 985 0 R (601) 986 0 R (602) 987 0 R (603) 988 0 R (604) 989 0 R (605) 990 0 R (606) 991 0 R (607) 992 0 R (608) 997 0 R (609) 998 0 R (61) 486 0 R (610) 416 0 R (612) 999 0 R (613) 1000 0 R (614) 1001 0 R (615) 1002 0 R (616) 1003 0 R (617) 1004 0 R (618) 1005 0 R (619) 417 0 R (62) 490 0 R (621) 1006 0 R (622) 1010 0 R (623) 1011 0 R (624) 1012 0 R (625) 1013 0 R (626) 1014 0 R (627) 1015 0 R (628) 1016 0 R (629) 1017 0 R (63) 491 0 R (630) 1018 0 R (631) 1019 0 R (632) 1020 0 R (633) 1021 0 R (634) 1022 0 R (635) 1023 0 R (636) 1024 0 R (637) 1025 0 R (638) 1026 0 R (639) 1027 0 R (64) 492 0 R (640) 1028 0 R (641) 1029 0 R (642) 1030 0 R (643) 1031 0 R (644) 1032 0 R (645) 1033 0 R (646) 418 0 R (648) 1034 0 R (649) 419 0 R (651) 1035 0 R (652) 1036 0 R (653) 1037 0 R (654) 1038 0 R (655) 1039 0 R (656) 1040 0 R (657) 1045 0 R (658) 420 0 R (66) 493 0 R (660) 1046 0 R (661) 1047 0 R (662) 1048 0 R (663) 1049 0 R (664) 1050 0 R (665) 1051 0 R (666) 1052 0 R (667) 1053 0 R (668) 1054 0 R (669) 1055 0 R (670) 1056 0 R (671) 1057 0 R (672) 1058 0 R (673) 1059 0 R (674) 1060 0 R (675) 1061 0 R (676) 1062 0 R (677) 1063 0 R (678) 1064 0 R (679) 1065 0 R (680) 1066 0 R (681) 1067 0 R (682) 421 0 R (684) 1068 0 R (685) 1069 0 R (686) 1070 0 R (687) 1071 0 R (688) 1072 0 R (689) 1073 0 R (690) 1074 0 R (691) 422 0 R (693) 1080 0 R (694) 1081 0 R (695) 423 0 R (697) 1082 0 R (698) 1083 0 R (699) 1084 0 R (7.0) 86 0 R (700) 1085 0 R (701) 424 0 R (703) 1086 0 R (704) 1087 0 R (705) 1088 0 R (706) 1089 0 R (707) 1090 0 R (708) 1091 0 R (709) 425 0 R (711) 1092 0 R (712) 1093 0 R (713) 1094 0 R (714) 1095 0 R (715) 1096 0 R (716) 1097 0 R (717) 1098 0 R (718) 1099 0 R (719) 434 0 R (721) 1104 0 R (722) 1105 0 R (723) 1106 0 R (724) 1107 0 R (725) 1108 0 R (726) 1109 0 R (727) 1110 0 R (728) 1111 0 R (729) 1112 0 R (730) 1113 0 R (731) 435 0 R (733) 1114 0 R (734) 1115 0 R (735) 1116 0 R (736) 1117 0 R (737) 1118 0 R (738) 1119 0 R (739) 1120 0 R (740) 1121 0 R (741) 1122 0 R (742) 1123 0 R (743) 1124 0 R (744) 1125 0 R (745) 1126 0 R (746) 1127 0 R (747) 1128 0 R (748) 1129 0 R (749) 1130 0 R (750) 1131 0 R (751) 1132 0 R (752) 1133 0 R (753) 1134 0 R (754) 1135 0 R (755) 1136 0 R (756) 1137 0 R (757) 1138 0 R (758) 1139 0 R (759) 1140 0 R (760) 1141 0 R (761) 1142 0 R (762) 1143 0 R (763) 1144 0 R (764) 1145 0 R (765) 1146 0 R (766) 1147 0 R (767) 1148 0 R (768) 1149 0 R (769) 1150 0 R (770) 1151 0 R (771) 1152 0 R (772) 1153 0 R (773) 1154 0 R (774) 1155 0 R (775) 1156 0 R (776) 1157 0 R (777) 1158 0 R (778) 1159 0 R (779) 1160 0 R (780) 1161 0 R (781) 1162 0 R (782) 1163 0 R (783) 1164 0 R (784) 1169 0 R (785) 1170 0 R (786) 1171 0 R (787) 1172 0 R (788) 1173 0 R (789) 1174 0 R (790) 1175 0 R (791) 1176 0 R (792) 1177 0 R (793) 1178 0 R (794) 1179 0 R (795) 1180 0 R (796) 1181 0 R (797) 1182 0 R (798) 1183 0 R (799) 1184 0 R (8.0) 90 0 R (800) 1185 0 R (801) 1186 0 R (802) 1187 0 R (803) 1188 0 R (804) 1189 0 R (805) 1190 0 R (806) 1191 0 R (807) 1192 0 R (808) 1193 0 R (809) 1194 0 R (810) 1195 0 R (811) 1196 0 R (812) 1197 0 R (813) 1198 0 R (814) 1199 0 R (815) 1200 0 R (816) 1201 0 R (817) 1202 0 R (818) 1203 0 R (819) 1204 0 R (820) 1205 0 R (821) 1206 0 R (822) 1207 0 R (823) 1208 0 R (824) 1209 0 R (825) 1210 0 R (826) 1211 0 R (827) 1212 0 R (828) 1213 0 R (829) 1214 0 R (830) 1215 0 R (831) 1216 0 R (832) 1217 0 R (833) 1218 0 R (834) 1219 0 R (835) 1220 0 R (836) 1221 0 R (837) 1222 0 R (838) 1223 0 R (839) 1224 0 R (840) 1225 0 R (841) 1226 0 R (842) 1227 0 R (843) 1228 0 R (844) 1229 0 R (845) 1230 0 R (846) 1231 0 R (847) 1232 0 R (848) 1233 0 R (849) 1234 0 R (850) 1235 0 R (851) 1236 0 R (852) 1237 0 R (853) 1238 0 R (854) 1239 0 R (855) 1240 0 R (856) 1241 0 R (857) 1242 0 R (858) 1243 0 R (859) 1244 0 R (860) 1245 0 R (861) 1246 0 R (862) 1247 0 R (863) 1248 0 R (864) 1249 0 R (865) 1250 0 R (866) 1251 0 R (867) 1252 0 R (868) 1253 0 R (869) 1254 0 R (870) 1255 0 R (871) 1256 0 R (872) 1257 0 R (873) 1258 0 R (874) 1259 0 R (9) 372 0 R (9.0) 94 0 R (92) 499 0 R (93) 500 0 R (94) 501 0 R (95) 502 0 R (96) 503 0 R (97) 504 0 R (98) 505 0 R (99) 506 0 R (C64-1-FNAME) 648 0 R (C64-1-SRC) 401 0 R (C64-2-FNAME) 818 0 R (C64-2-SRC) 409 0 R (CH3-LINK) 385 0 R (CH4-LINK) 391 0 R (CH5-LINK) 392 0 R (Doc-Start) 238 0 R (KERNAL-FNAME) 649 0 R (KERNAL-SRC) 402 0 R (PART1) 375 0 R (REF-LINK) 411 0 R (TUTOR1-FNAME) 561 0 R (TUTOR1-SRC) 399 0 R (TUTOR2-FNAME) 608 0 R (TUTOR2-SRC) 400 0 R (TUTOR3-FNAME) 664 0 R (TUTOR3-SRC) 403 0 R (TUTOR4A-FNAME) 705 0 R (TUTOR4A-SRC) 404 0 R (TUTOR4B-FNAME) 706 0 R (TUTOR4B-SRC) 405 0 R (TUTOR4C-FNAME) 707 0 R (TUTOR4C-SRC) 406 0 R (TUTOR5-FNAME) 760 0 R (TUTOR5-SRC) 407 0 R (TUTOR6-FNAME) 794 0 R (TUTOR6-SRC) 408 0 R (TUTOR7-FNAME) 831 0 R (TUTOR7-SRC) 410 0 R (page.1) 237 0 R (page.10) 711 0 R (page.11) 715 0 R (page.12) 752 0 R (page.13) 764 0 R (page.14) 788 0 R (page.15) 798 0 R (page.16) 822 0 R (page.17) 835 0 R (page.18) 843 0 R (page.19) 848 0 R (page.2) 247 0 R (page.20) 854 0 R (page.21) 859 0 R (page.22) 864 0 R (page.23) 869 0 R (page.24) 874 0 R (page.25) 879 0 R (page.26) 884 0 R (page.27) 890 0 R (page.28) 894 0 R (page.29) 898 0 R (page.3) 254 0 R (page.30) 996 0 R (page.31) 1044 0 R (page.32) 1079 0 R (page.33) 1103 0 R (page.34) 1168 0 R (page.4) 429 0 R (page.5) 439 0 R (page.6) 461 0 R (page.7) 612 0 R (page.8) 653 0 R (page.9) 668 0 R (table.1) 494 0 R (table.2) 560 0 R (table.3) 790 0 R] +/Limits [(0) (table.3)] +>> endobj +1276 0 obj << +/Kids [1275 0 R] +>> endobj +1277 0 obj << +/Dests 1276 0 R +>> endobj +1278 0 obj << +/Type /Catalog +/Pages 1273 0 R +/Outlines 1274 0 R +/Names 1277 0 R +/PageMode /UseOutlines +/OpenAction 233 0 R +>> endobj +1279 0 obj << +/Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfeTeX-1.21a)/Keywords() +/CreationDate (D:20071003190612-07'00') +/PTEX.Fullbanner (This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) kpathsea version 3.5.4) +>> endobj +xref +0 1280 +0000000000 65535 f +0000000009 00000 n +0000005396 00000 n +0000329104 00000 n +0000000048 00000 n +0000000088 00000 n +0000079921 00000 n +0000329019 00000 n +0000000127 00000 n +0000000162 00000 n +0000085542 00000 n +0000328895 00000 n +0000000201 00000 n +0000000227 00000 n +0000085855 00000 n +0000328821 00000 n +0000000269 00000 n +0000000298 00000 n +0000086235 00000 n +0000328747 00000 n +0000000340 00000 n +0000000382 00000 n +0000090201 00000 n +0000328621 00000 n +0000000422 00000 n +0000000462 00000 n +0000091025 00000 n +0000328547 00000 n +0000000504 00000 n +0000000549 00000 n +0000091214 00000 n +0000328460 00000 n +0000000591 00000 n +0000000641 00000 n +0000099931 00000 n +0000328373 00000 n +0000000683 00000 n +0000000730 00000 n +0000101264 00000 n +0000328286 00000 n +0000000772 00000 n +0000000814 00000 n +0000101766 00000 n +0000328212 00000 n +0000000856 00000 n +0000000894 00000 n +0000107433 00000 n +0000328086 00000 n +0000000934 00000 n +0000000982 00000 n +0000107812 00000 n +0000328012 00000 n +0000001024 00000 n +0000001059 00000 n +0000108315 00000 n +0000327925 00000 n +0000001101 00000 n +0000001136 00000 n +0000109014 00000 n +0000327851 00000 n +0000001179 00000 n +0000001206 00000 n +0000114428 00000 n +0000327725 00000 n +0000001246 00000 n +0000001306 00000 n +0000114681 00000 n +0000327651 00000 n +0000001349 00000 n +0000001394 00000 n +0000115627 00000 n +0000327527 00000 n +0000001437 00000 n +0000001462 00000 n +0000116069 00000 n +0000327453 00000 n +0000001507 00000 n +0000001543 00000 n +0000118520 00000 n +0000327379 00000 n +0000001588 00000 n +0000001624 00000 n +0000119090 00000 n +0000327305 00000 n +0000001667 00000 n +0000001698 00000 n +0000123958 00000 n +0000327216 00000 n +0000001738 00000 n +0000001782 00000 n +0000129730 00000 n +0000327127 00000 n +0000001822 00000 n +0000001887 00000 n +0000136023 00000 n +0000327038 00000 n +0000001927 00000 n +0000001968 00000 n +0000141939 00000 n +0000326908 00000 n +0000002009 00000 n +0000002064 00000 n +0000142256 00000 n +0000326830 00000 n +0000002109 00000 n +0000002140 00000 n +0000142509 00000 n +0000326738 00000 n +0000002185 00000 n +0000002217 00000 n +0000145557 00000 n +0000326660 00000 n +0000002262 00000 n +0000002303 00000 n +0000146879 00000 n +0000326527 00000 n +0000002345 00000 n +0000002393 00000 n +0000147069 00000 n +0000326448 00000 n +0000002438 00000 n +0000002468 00000 n +0000147259 00000 n +0000326355 00000 n +0000002513 00000 n +0000002543 00000 n +0000147449 00000 n +0000326262 00000 n +0000002588 00000 n +0000002616 00000 n +0000148761 00000 n +0000326169 00000 n +0000002661 00000 n +0000002691 00000 n +0000150049 00000 n +0000326076 00000 n +0000002736 00000 n +0000002766 00000 n +0000151349 00000 n +0000325983 00000 n +0000002811 00000 n +0000002842 00000 n +0000152675 00000 n +0000325890 00000 n +0000002887 00000 n +0000002918 00000 n +0000153956 00000 n +0000325797 00000 n +0000002963 00000 n +0000002994 00000 n +0000155204 00000 n +0000325704 00000 n +0000003039 00000 n +0000003069 00000 n +0000156652 00000 n +0000325611 00000 n +0000003114 00000 n +0000003144 00000 n +0000159232 00000 n +0000325518 00000 n +0000003189 00000 n +0000003217 00000 n +0000159422 00000 n +0000325439 00000 n +0000003262 00000 n +0000003292 00000 n +0000164207 00000 n +0000325320 00000 n +0000003334 00000 n +0000003389 00000 n +0000164334 00000 n +0000325241 00000 n +0000003434 00000 n +0000003467 00000 n +0000168470 00000 n +0000325109 00000 n +0000003512 00000 n +0000003547 00000 n +0000168660 00000 n +0000325030 00000 n +0000003594 00000 n +0000003627 00000 n +0000170120 00000 n +0000324937 00000 n +0000003674 00000 n +0000003705 00000 n +0000173830 00000 n +0000324858 00000 n +0000003752 00000 n +0000003784 00000 n +0000174406 00000 n +0000324765 00000 n +0000003829 00000 n +0000003867 00000 n +0000176141 00000 n +0000324633 00000 n +0000003912 00000 n +0000003944 00000 n +0000176332 00000 n +0000324554 00000 n +0000003991 00000 n +0000004028 00000 n +0000180139 00000 n +0000324461 00000 n +0000004075 00000 n +0000004124 00000 n +0000181709 00000 n +0000324382 00000 n +0000004171 00000 n +0000004222 00000 n +0000184360 00000 n +0000324250 00000 n +0000004267 00000 n +0000004293 00000 n +0000184620 00000 n +0000324171 00000 n +0000004340 00000 n +0000004375 00000 n +0000185011 00000 n +0000324078 00000 n +0000004423 00000 n +0000004458 00000 n +0000185530 00000 n +0000323985 00000 n +0000004506 00000 n +0000004553 00000 n +0000190066 00000 n +0000323906 00000 n +0000004601 00000 n +0000004671 00000 n +0000190849 00000 n +0000323827 00000 n +0000004716 00000 n +0000004756 00000 n +0000005085 00000 n +0000005458 00000 n +0000004808 00000 n +0000005207 00000 n +0000005270 00000 n +0000005333 00000 n +0000321860 00000 n +0000310434 00000 n +0000321688 00000 n +0000322662 00000 n +0000006008 00000 n +0000005823 00000 n +0000005530 00000 n +0000005945 00000 n +0000309336 00000 n +0000283724 00000 n +0000309162 00000 n +0000079983 00000 n +0000062500 00000 n +0000006093 00000 n +0000079858 00000 n +0000063498 00000 n +0000283116 00000 n +0000264662 00000 n +0000282941 00000 n +0000063646 00000 n +0000063794 00000 n +0000063942 00000 n +0000064090 00000 n +0000064239 00000 n +0000064388 00000 n +0000064540 00000 n +0000064692 00000 n +0000064841 00000 n +0000064990 00000 n +0000065139 00000 n +0000065288 00000 n +0000065438 00000 n +0000065588 00000 n +0000065738 00000 n +0000065888 00000 n +0000066038 00000 n +0000066188 00000 n +0000066338 00000 n +0000066488 00000 n +0000066638 00000 n +0000066788 00000 n +0000066937 00000 n +0000067087 00000 n +0000067237 00000 n +0000067387 00000 n +0000067542 00000 n +0000067697 00000 n +0000067847 00000 n +0000067997 00000 n +0000068147 00000 n +0000068297 00000 n +0000068447 00000 n +0000068597 00000 n +0000068747 00000 n +0000068897 00000 n +0000069047 00000 n +0000069197 00000 n +0000069352 00000 n +0000069507 00000 n +0000069660 00000 n +0000069815 00000 n +0000069965 00000 n +0000070115 00000 n +0000070265 00000 n +0000070415 00000 n +0000070564 00000 n +0000070713 00000 n +0000070863 00000 n +0000071013 00000 n +0000071161 00000 n +0000071309 00000 n +0000071456 00000 n +0000071603 00000 n +0000263698 00000 n +0000243768 00000 n +0000263525 00000 n +0000071760 00000 n +0000071917 00000 n +0000072074 00000 n +0000072231 00000 n +0000072385 00000 n +0000072540 00000 n +0000072697 00000 n +0000072854 00000 n +0000073011 00000 n +0000073168 00000 n +0000073326 00000 n +0000073484 00000 n +0000073642 00000 n +0000073800 00000 n +0000073958 00000 n +0000074116 00000 n +0000074273 00000 n +0000074430 00000 n +0000074587 00000 n +0000074744 00000 n +0000074898 00000 n +0000075053 00000 n +0000075210 00000 n +0000075367 00000 n +0000075522 00000 n +0000075677 00000 n +0000075827 00000 n +0000075977 00000 n +0000076127 00000 n +0000076277 00000 n +0000076427 00000 n +0000076577 00000 n +0000076727 00000 n +0000076877 00000 n +0000077027 00000 n +0000077177 00000 n +0000077327 00000 n +0000077477 00000 n +0000077627 00000 n +0000077777 00000 n +0000077925 00000 n +0000078073 00000 n +0000078223 00000 n +0000078373 00000 n +0000078522 00000 n +0000078671 00000 n +0000078821 00000 n +0000078971 00000 n +0000079119 00000 n +0000079267 00000 n +0000079414 00000 n +0000079562 00000 n +0000079710 00000 n +0000242963 00000 n +0000223501 00000 n +0000242789 00000 n +0000085479 00000 n +0000085793 00000 n +0000086172 00000 n +0000090138 00000 n +0000090961 00000 n +0000091151 00000 n +0000096911 00000 n +0000101201 00000 n +0000101703 00000 n +0000107370 00000 n +0000107749 00000 n +0000108252 00000 n +0000108951 00000 n +0000114365 00000 n +0000114618 00000 n +0000115565 00000 n +0000116006 00000 n +0000118457 00000 n +0000119027 00000 n +0000123895 00000 n +0000129667 00000 n +0000135960 00000 n +0000141876 00000 n +0000142193 00000 n +0000142446 00000 n +0000145494 00000 n +0000146816 00000 n +0000147006 00000 n +0000147196 00000 n +0000147386 00000 n +0000148698 00000 n +0000149986 00000 n +0000150176 00000 n +0000152612 00000 n +0000153893 00000 n +0000155141 00000 n +0000156589 00000 n +0000159169 00000 n +0000159359 00000 n +0000164144 00000 n +0000164271 00000 n +0000168407 00000 n +0000168597 00000 n +0000170057 00000 n +0000173767 00000 n +0000174343 00000 n +0000176078 00000 n +0000176269 00000 n +0000173577 00000 n +0000181645 00000 n +0000184296 00000 n +0000184556 00000 n +0000184947 00000 n +0000185466 00000 n +0000082926 00000 n +0000082098 00000 n +0000080107 00000 n +0000082863 00000 n +0000082264 00000 n +0000082414 00000 n +0000082564 00000 n +0000082713 00000 n +0000186116 00000 n +0000190785 00000 n +0000086993 00000 n +0000085294 00000 n +0000083011 00000 n +0000085416 00000 n +0000085604 00000 n +0000085667 00000 n +0000085730 00000 n +0000085918 00000 n +0000085981 00000 n +0000086045 00000 n +0000086109 00000 n +0000086298 00000 n +0000086361 00000 n +0000086424 00000 n +0000086488 00000 n +0000086551 00000 n +0000086615 00000 n +0000086677 00000 n +0000086739 00000 n +0000086803 00000 n +0000086865 00000 n +0000086929 00000 n +0000087529 00000 n +0000087344 00000 n +0000087117 00000 n +0000087466 00000 n +0000092224 00000 n +0000090016 00000 n +0000087601 00000 n +0000090264 00000 n +0000090327 00000 n +0000090390 00000 n +0000090454 00000 n +0000090517 00000 n +0000090581 00000 n +0000090644 00000 n +0000090708 00000 n +0000090771 00000 n +0000090834 00000 n +0000090897 00000 n +0000091088 00000 n +0000091277 00000 n +0000091340 00000 n +0000091404 00000 n +0000091467 00000 n +0000091531 00000 n +0000091594 00000 n +0000091658 00000 n +0000091721 00000 n +0000091784 00000 n +0000091847 00000 n +0000222963 00000 n +0000210834 00000 n +0000222790 00000 n +0000091911 00000 n +0000091974 00000 n +0000092037 00000 n +0000092098 00000 n +0000092161 00000 n +0000322780 00000 n +0000096973 00000 n +0000095143 00000 n +0000092361 00000 n +0000095265 00000 n +0000095328 00000 n +0000095391 00000 n +0000095455 00000 n +0000095519 00000 n +0000095582 00000 n +0000095645 00000 n +0000095708 00000 n +0000095771 00000 n +0000095835 00000 n +0000095898 00000 n +0000095961 00000 n +0000096024 00000 n +0000096087 00000 n +0000096150 00000 n +0000096214 00000 n +0000096278 00000 n +0000096342 00000 n +0000096406 00000 n +0000096469 00000 n +0000096533 00000 n +0000096594 00000 n +0000096658 00000 n +0000096720 00000 n +0000096784 00000 n +0000096847 00000 n +0000102271 00000 n +0000099631 00000 n +0000097084 00000 n +0000099994 00000 n +0000100057 00000 n +0000100121 00000 n +0000100184 00000 n +0000100248 00000 n +0000100311 00000 n +0000100375 00000 n +0000100438 00000 n +0000100502 00000 n +0000100565 00000 n +0000100629 00000 n +0000100692 00000 n +0000100755 00000 n +0000100818 00000 n +0000100881 00000 n +0000100945 00000 n +0000101009 00000 n +0000101073 00000 n +0000101137 00000 n +0000101325 00000 n +0000101388 00000 n +0000101451 00000 n +0000101515 00000 n +0000101578 00000 n +0000101641 00000 n +0000099773 00000 n +0000101829 00000 n +0000101892 00000 n +0000101956 00000 n +0000102020 00000 n +0000102084 00000 n +0000102147 00000 n +0000102209 00000 n +0000204206 00000 n +0000104852 00000 n +0000104157 00000 n +0000102395 00000 n +0000104279 00000 n +0000104342 00000 n +0000104405 00000 n +0000104468 00000 n +0000104532 00000 n +0000104596 00000 n +0000104660 00000 n +0000104724 00000 n +0000104788 00000 n +0000109327 00000 n +0000107248 00000 n +0000104976 00000 n +0000107496 00000 n +0000107559 00000 n +0000107623 00000 n +0000107687 00000 n +0000107874 00000 n +0000107936 00000 n +0000107999 00000 n +0000108063 00000 n +0000108126 00000 n +0000108190 00000 n +0000108378 00000 n +0000108441 00000 n +0000108505 00000 n +0000108569 00000 n +0000108633 00000 n +0000108697 00000 n +0000108761 00000 n +0000108825 00000 n +0000108888 00000 n +0000109077 00000 n +0000109140 00000 n +0000109203 00000 n +0000109265 00000 n +0000110651 00000 n +0000109993 00000 n +0000109438 00000 n +0000110461 00000 n +0000110524 00000 n +0000110588 00000 n +0000110143 00000 n +0000110302 00000 n +0000204174 00000 n +0000116828 00000 n +0000113675 00000 n +0000110762 00000 n +0000114302 00000 n +0000114491 00000 n +0000114554 00000 n +0000114744 00000 n +0000114806 00000 n +0000114870 00000 n +0000114931 00000 n +0000114994 00000 n +0000115058 00000 n +0000115121 00000 n +0000115184 00000 n +0000115247 00000 n +0000115311 00000 n +0000115375 00000 n +0000115438 00000 n +0000115502 00000 n +0000113833 00000 n +0000113991 00000 n +0000115690 00000 n +0000115753 00000 n +0000115816 00000 n +0000115880 00000 n +0000115943 00000 n +0000114147 00000 n +0000116132 00000 n +0000116195 00000 n +0000116259 00000 n +0000116323 00000 n +0000116385 00000 n +0000116448 00000 n +0000116511 00000 n +0000116575 00000 n +0000116639 00000 n +0000116702 00000 n +0000116766 00000 n +0000322898 00000 n +0000204142 00000 n +0000204110 00000 n +0000119278 00000 n +0000118093 00000 n +0000116939 00000 n +0000118394 00000 n +0000118583 00000 n +0000118646 00000 n +0000118709 00000 n +0000118773 00000 n +0000118836 00000 n +0000118899 00000 n +0000118963 00000 n +0000119151 00000 n +0000118235 00000 n +0000119214 00000 n +0000204078 00000 n +0000125859 00000 n +0000122537 00000 n +0000119389 00000 n +0000123832 00000 n +0000124021 00000 n +0000124084 00000 n +0000124148 00000 n +0000124212 00000 n +0000122727 00000 n +0000122882 00000 n +0000124275 00000 n +0000124339 00000 n +0000124402 00000 n +0000124465 00000 n +0000123042 00000 n +0000123197 00000 n +0000123356 00000 n +0000124529 00000 n +0000124593 00000 n +0000124656 00000 n +0000124719 00000 n +0000124782 00000 n +0000123513 00000 n +0000124845 00000 n +0000124909 00000 n +0000124973 00000 n +0000125036 00000 n +0000125099 00000 n +0000125163 00000 n +0000125226 00000 n +0000125289 00000 n +0000125353 00000 n +0000125417 00000 n +0000123673 00000 n +0000125480 00000 n +0000125543 00000 n +0000125607 00000 n +0000125670 00000 n +0000125733 00000 n +0000125796 00000 n +0000204046 00000 n +0000204014 00000 n +0000203982 00000 n +0000126411 00000 n +0000126226 00000 n +0000125983 00000 n +0000126348 00000 n +0000131825 00000 n +0000129307 00000 n +0000126483 00000 n +0000129604 00000 n +0000129793 00000 n +0000129449 00000 n +0000129856 00000 n +0000129920 00000 n +0000129984 00000 n +0000130048 00000 n +0000130111 00000 n +0000130174 00000 n +0000130237 00000 n +0000130301 00000 n +0000130365 00000 n +0000130429 00000 n +0000130492 00000 n +0000130555 00000 n +0000130618 00000 n +0000130682 00000 n +0000130746 00000 n +0000130810 00000 n +0000130874 00000 n +0000130938 00000 n +0000131001 00000 n +0000131064 00000 n +0000131128 00000 n +0000131190 00000 n +0000131254 00000 n +0000131317 00000 n +0000131381 00000 n +0000131445 00000 n +0000131509 00000 n +0000131573 00000 n +0000131637 00000 n +0000131700 00000 n +0000131763 00000 n +0000133940 00000 n +0000133198 00000 n +0000131936 00000 n +0000133498 00000 n +0000133561 00000 n +0000133624 00000 n +0000133687 00000 n +0000133750 00000 n +0000133814 00000 n +0000133877 00000 n +0000133340 00000 n +0000203950 00000 n +0000137095 00000 n +0000135775 00000 n +0000134038 00000 n +0000135897 00000 n +0000136086 00000 n +0000136149 00000 n +0000136213 00000 n +0000136276 00000 n +0000136339 00000 n +0000136402 00000 n +0000136465 00000 n +0000208593 00000 n +0000206590 00000 n +0000208431 00000 n +0000136529 00000 n +0000136592 00000 n +0000136656 00000 n +0000136719 00000 n +0000136781 00000 n +0000136844 00000 n +0000136907 00000 n +0000136971 00000 n +0000137033 00000 n +0000323016 00000 n +0000138903 00000 n +0000138287 00000 n +0000137219 00000 n +0000138588 00000 n +0000138651 00000 n +0000138714 00000 n +0000138777 00000 n +0000138840 00000 n +0000138429 00000 n +0000203918 00000 n +0000143268 00000 n +0000141185 00000 n +0000139040 00000 n +0000141813 00000 n +0000142002 00000 n +0000142065 00000 n +0000142129 00000 n +0000142320 00000 n +0000142382 00000 n +0000141343 00000 n +0000141501 00000 n +0000142573 00000 n +0000142636 00000 n +0000142699 00000 n +0000142763 00000 n +0000142827 00000 n +0000142891 00000 n +0000142954 00000 n +0000143017 00000 n +0000143080 00000 n +0000141656 00000 n +0000143143 00000 n +0000143205 00000 n +0000203886 00000 n +0000145746 00000 n +0000144715 00000 n +0000143379 00000 n +0000145179 00000 n +0000145242 00000 n +0000145305 00000 n +0000145368 00000 n +0000145431 00000 n +0000144865 00000 n +0000145620 00000 n +0000145024 00000 n +0000145683 00000 n +0000203854 00000 n +0000147576 00000 n +0000146631 00000 n +0000145857 00000 n +0000146753 00000 n +0000146943 00000 n +0000147133 00000 n +0000147323 00000 n +0000147513 00000 n +0000148888 00000 n +0000148513 00000 n +0000147700 00000 n +0000148635 00000 n +0000148825 00000 n +0000150238 00000 n +0000149801 00000 n +0000148986 00000 n +0000149923 00000 n +0000150113 00000 n +0000323134 00000 n +0000151476 00000 n +0000151164 00000 n +0000150336 00000 n +0000151286 00000 n +0000151413 00000 n +0000152802 00000 n +0000152427 00000 n +0000151574 00000 n +0000152549 00000 n +0000152739 00000 n +0000154083 00000 n +0000153708 00000 n +0000152900 00000 n +0000153830 00000 n +0000154020 00000 n +0000155331 00000 n +0000154956 00000 n +0000154181 00000 n +0000155078 00000 n +0000155268 00000 n +0000156778 00000 n +0000156404 00000 n +0000155429 00000 n +0000156526 00000 n +0000156716 00000 n +0000158098 00000 n +0000157913 00000 n +0000156876 00000 n +0000158035 00000 n +0000323252 00000 n +0000159548 00000 n +0000158984 00000 n +0000158183 00000 n +0000159106 00000 n +0000159296 00000 n +0000159486 00000 n +0000160819 00000 n +0000160634 00000 n +0000159646 00000 n +0000160756 00000 n +0000161558 00000 n +0000161373 00000 n +0000160904 00000 n +0000161495 00000 n +0000170750 00000 n +0000163959 00000 n +0000161643 00000 n +0000164081 00000 n +0000164398 00000 n +0000164461 00000 n +0000164525 00000 n +0000164588 00000 n +0000164651 00000 n +0000164715 00000 n +0000164779 00000 n +0000164843 00000 n +0000164906 00000 n +0000164970 00000 n +0000165034 00000 n +0000165098 00000 n +0000165161 00000 n +0000165224 00000 n +0000165287 00000 n +0000165350 00000 n +0000165413 00000 n +0000165477 00000 n +0000165541 00000 n +0000165605 00000 n +0000165668 00000 n +0000165732 00000 n +0000165796 00000 n +0000165859 00000 n +0000165922 00000 n +0000165986 00000 n +0000166050 00000 n +0000166114 00000 n +0000166177 00000 n +0000166241 00000 n +0000166305 00000 n +0000166369 00000 n +0000166431 00000 n +0000166495 00000 n +0000166559 00000 n +0000166623 00000 n +0000166686 00000 n +0000166750 00000 n +0000166814 00000 n +0000166878 00000 n +0000166941 00000 n +0000167005 00000 n +0000167069 00000 n +0000167133 00000 n +0000167196 00000 n +0000167260 00000 n +0000167324 00000 n +0000167388 00000 n +0000167451 00000 n +0000167515 00000 n +0000167579 00000 n +0000167643 00000 n +0000167706 00000 n +0000167770 00000 n +0000167834 00000 n +0000167898 00000 n +0000167960 00000 n +0000168024 00000 n +0000168088 00000 n +0000168152 00000 n +0000168215 00000 n +0000168279 00000 n +0000168343 00000 n +0000168534 00000 n +0000168724 00000 n +0000168786 00000 n +0000168849 00000 n +0000168913 00000 n +0000168977 00000 n +0000169041 00000 n +0000169104 00000 n +0000169167 00000 n +0000169230 00000 n +0000169293 00000 n +0000169356 00000 n +0000169420 00000 n +0000169484 00000 n +0000169548 00000 n +0000169611 00000 n +0000169675 00000 n +0000169739 00000 n +0000169803 00000 n +0000169865 00000 n +0000169929 00000 n +0000169993 00000 n +0000170184 00000 n +0000170247 00000 n +0000170310 00000 n +0000170374 00000 n +0000170437 00000 n +0000170501 00000 n +0000170562 00000 n +0000170625 00000 n +0000170687 00000 n +0000176779 00000 n +0000173392 00000 n +0000170861 00000 n +0000173514 00000 n +0000173640 00000 n +0000173703 00000 n +0000173894 00000 n +0000173956 00000 n +0000174021 00000 n +0000174085 00000 n +0000174149 00000 n +0000174214 00000 n +0000174279 00000 n +0000174468 00000 n +0000206235 00000 n +0000204238 00000 n +0000206070 00000 n +0000174532 00000 n +0000174596 00000 n +0000174660 00000 n +0000174724 00000 n +0000174787 00000 n +0000174852 00000 n +0000174917 00000 n +0000174981 00000 n +0000175046 00000 n +0000175111 00000 n +0000175175 00000 n +0000175240 00000 n +0000175305 00000 n +0000175368 00000 n +0000175433 00000 n +0000175498 00000 n +0000175562 00000 n +0000175626 00000 n +0000175690 00000 n +0000175754 00000 n +0000175819 00000 n +0000175884 00000 n +0000175948 00000 n +0000176013 00000 n +0000176205 00000 n +0000176396 00000 n +0000176460 00000 n +0000176525 00000 n +0000176588 00000 n +0000176652 00000 n +0000176715 00000 n +0000182230 00000 n +0000179883 00000 n +0000176917 00000 n +0000180009 00000 n +0000180074 00000 n +0000180204 00000 n +0000180269 00000 n +0000180334 00000 n +0000180400 00000 n +0000180465 00000 n +0000180530 00000 n +0000180596 00000 n +0000180661 00000 n +0000180727 00000 n +0000180793 00000 n +0000180859 00000 n +0000180925 00000 n +0000180991 00000 n +0000181057 00000 n +0000181121 00000 n +0000181187 00000 n +0000181253 00000 n +0000181319 00000 n +0000181384 00000 n +0000181449 00000 n +0000181514 00000 n +0000181579 00000 n +0000181774 00000 n +0000181839 00000 n +0000181905 00000 n +0000181971 00000 n +0000182036 00000 n +0000182101 00000 n +0000182166 00000 n +0000323370 00000 n +0000186180 00000 n +0000184105 00000 n +0000182342 00000 n +0000184231 00000 n +0000184425 00000 n +0000184490 00000 n +0000184685 00000 n +0000184750 00000 n +0000184816 00000 n +0000184882 00000 n +0000185076 00000 n +0000185140 00000 n +0000185206 00000 n +0000185271 00000 n +0000185336 00000 n +0000185401 00000 n +0000185595 00000 n +0000185660 00000 n +0000185726 00000 n +0000185791 00000 n +0000185856 00000 n +0000185920 00000 n +0000185985 00000 n +0000186051 00000 n +0000194253 00000 n +0000189875 00000 n +0000186305 00000 n +0000190001 00000 n +0000190131 00000 n +0000190196 00000 n +0000190261 00000 n +0000190327 00000 n +0000190392 00000 n +0000190457 00000 n +0000190523 00000 n +0000190589 00000 n +0000190654 00000 n +0000190720 00000 n +0000190914 00000 n +0000190979 00000 n +0000191044 00000 n +0000191109 00000 n +0000191175 00000 n +0000191241 00000 n +0000191305 00000 n +0000191371 00000 n +0000191437 00000 n +0000191503 00000 n +0000191569 00000 n +0000191634 00000 n +0000191700 00000 n +0000191766 00000 n +0000191832 00000 n +0000191898 00000 n +0000191963 00000 n +0000192029 00000 n +0000192095 00000 n +0000192160 00000 n +0000192226 00000 n +0000192291 00000 n +0000192357 00000 n +0000192423 00000 n +0000192489 00000 n +0000192555 00000 n +0000192619 00000 n +0000192685 00000 n +0000192751 00000 n +0000192817 00000 n +0000192882 00000 n +0000192948 00000 n +0000193014 00000 n +0000193080 00000 n +0000193145 00000 n +0000193211 00000 n +0000193277 00000 n +0000193343 00000 n +0000193408 00000 n +0000193473 00000 n +0000193538 00000 n +0000193603 00000 n +0000193668 00000 n +0000193734 00000 n +0000193799 00000 n +0000193864 00000 n +0000193929 00000 n +0000193994 00000 n +0000194059 00000 n +0000194124 00000 n +0000194189 00000 n +0000203742 00000 n +0000197578 00000 n +0000194365 00000 n +0000197704 00000 n +0000197769 00000 n +0000197835 00000 n +0000197901 00000 n +0000197967 00000 n +0000198033 00000 n +0000198099 00000 n +0000198165 00000 n +0000198229 00000 n +0000198295 00000 n +0000198361 00000 n +0000198426 00000 n +0000198491 00000 n +0000198557 00000 n +0000198623 00000 n +0000198689 00000 n +0000198755 00000 n +0000198821 00000 n +0000198886 00000 n +0000198952 00000 n +0000199018 00000 n +0000199084 00000 n +0000199150 00000 n +0000199216 00000 n +0000199281 00000 n +0000199347 00000 n +0000199413 00000 n +0000199479 00000 n +0000199545 00000 n +0000199611 00000 n +0000199676 00000 n +0000199742 00000 n +0000199808 00000 n +0000199874 00000 n +0000199940 00000 n +0000200006 00000 n +0000200071 00000 n +0000200137 00000 n +0000200203 00000 n +0000200269 00000 n +0000200334 00000 n +0000200400 00000 n +0000200466 00000 n +0000200532 00000 n +0000200597 00000 n +0000200663 00000 n +0000200729 00000 n +0000200795 00000 n +0000200861 00000 n +0000200927 00000 n +0000200993 00000 n +0000201057 00000 n +0000201123 00000 n +0000201189 00000 n +0000201253 00000 n +0000201318 00000 n +0000201383 00000 n +0000201448 00000 n +0000201513 00000 n +0000201578 00000 n +0000201644 00000 n +0000201709 00000 n +0000201774 00000 n +0000201839 00000 n +0000201904 00000 n +0000201969 00000 n +0000202035 00000 n +0000202101 00000 n +0000202167 00000 n +0000202232 00000 n +0000202297 00000 n +0000202362 00000 n +0000202427 00000 n +0000202492 00000 n +0000202558 00000 n +0000202624 00000 n +0000202689 00000 n +0000202755 00000 n +0000202820 00000 n +0000202885 00000 n +0000202951 00000 n +0000203017 00000 n +0000203083 00000 n +0000203148 00000 n +0000203214 00000 n +0000203280 00000 n +0000203346 00000 n +0000203412 00000 n +0000203478 00000 n +0000203544 00000 n +0000203610 00000 n +0000203676 00000 n +0000206482 00000 n +0000206451 00000 n +0000208837 00000 n +0000208806 00000 n +0000208945 00000 n +0000223266 00000 n +0000243383 00000 n +0000264281 00000 n +0000283454 00000 n +0000309905 00000 n +0000322237 00000 n +0000323477 00000 n +0000323597 00000 n +0000323677 00000 n +0000323750 00000 n +0000329176 00000 n +0000341127 00000 n +0000341168 00000 n +0000341208 00000 n +0000341342 00000 n +trailer +<< +/Size 1280 +/Root 1278 0 R +/Info 1279 0 R +/ID [<13E30E24C2CD20DD25D45112E9A8367B> <13E30E24C2CD20DD25D45112E9A8367B>] +>> +startxref +341606 +%%EOF diff --git a/doc/petscii.map b/doc/petscii.map new file mode 100644 index 0000000..e4ae062 Binary files /dev/null and b/doc/petscii.map differ diff --git a/doc/tutor1.oph b/doc/tutor1.oph new file mode 100644 index 0000000..6789ce7 --- /dev/null +++ b/doc/tutor1.oph @@ -0,0 +1,18 @@ +.word $0801 +.org $0801 + + .word next, 10 ; Next line and current line number + .byte $9e," 2064",0 ; SYS 2064 +next: .word 0 ; End of program + +.advance 2064 + + ldx #0 +loop: lda hello, x + beq done + jsr $ffd2 + inx + bne loop +done: rts + +hello: .byte "HELLO, WORLD!", 0 \ No newline at end of file diff --git a/doc/tutor2.oph b/doc/tutor2.oph new file mode 100644 index 0000000..27c6682 --- /dev/null +++ b/doc/tutor2.oph @@ -0,0 +1,22 @@ +.word $0801 +.org $0801 + +.scope + .word _next, 10 ; Next line and current line number + .byte $9e," 2064",0 ; SYS 2064 +_next: .word 0 ; End of program +.scend + +.advance 2064 + +.alias chrout $ffd2 + + ldx #0 +* lda hello, x + beq + + jsr chrout + inx + bne - +* rts + +hello: .byte "HELLO, WORLD!", 0 \ No newline at end of file diff --git a/doc/tutor3.oph b/doc/tutor3.oph new file mode 100644 index 0000000..112e2bf --- /dev/null +++ b/doc/tutor3.oph @@ -0,0 +1,45 @@ +.include "c64-1.oph" + +.macro print + ldx #0 +_loop: lda _1, x + beq _done + jsr chrout + inx + bne _loop +_done: +.macend + +.macro greet + `print hello1 + `print _1 + `print hello2 +.macend + + lda #147 + jsr chrout + `greet target1 + `greet target2 + `greet target3 + `greet target4 + `greet target5 + `greet target6 + `greet target7 + `greet target8 + `greet target9 + `greet target10 + rts + +hello1: .byte "HELLO, ",0 +hello2: .byte "!", 13, 0 + +target1: .byte "PROGRAMMER", 0 +target2: .byte "ROOM", 0 +target3: .byte "BUILDING", 0 +target4: .byte "NEIGHBORHOOD", 0 +target5: .byte "CITY", 0 +target6: .byte "NATION", 0 +target7: .byte "WORLD", 0 +target8: .byte "SOLAR SYSTEM", 0 +target9: .byte "GALAXY", 0 +target10: .byte "UNIVERSE", 0 \ No newline at end of file diff --git a/doc/tutor4a.oph b/doc/tutor4a.oph new file mode 100644 index 0000000..d218a5f --- /dev/null +++ b/doc/tutor4a.oph @@ -0,0 +1,69 @@ +.include "c64-1.oph" + +.macro print + ldx #0 +_loop: lda _1, x + beq _done + jsr chrout + inx + bne _loop +_done: +.macend + +.macro greet + lda #30 + jsr delay + `print hello1 + `print _1 + `print hello2 +.macend + + lda #147 + jsr chrout + `greet target1 + `greet target2 + `greet target3 + `greet target4 + `greet target5 + `greet target6 + `greet target7 + `greet target8 + `greet target9 + `greet target10 + rts + +hello1: .byte "HELLO, ",0 +hello2: .byte "!", 13, 0 + +target1: .byte "PROGRAMMER", 0 +target2: .byte "ROOM", 0 +target3: .byte "BUILDING", 0 +target4: .byte "NEIGHBORHOOD", 0 +target5: .byte "CITY", 0 +target6: .byte "NATION", 0 +target7: .byte "WORLD", 0 +target8: .byte "SOLAR SYSTEM", 0 +target9: .byte "GALAXY", 0 +target10: .byte "UNIVERSE", 0 + +; DELAY routine. Executes 2,560*(A) NOP statements. +delay: tax + ldy #00 +* nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + iny + bne - + dex + bne - + + + rts + diff --git a/doc/tutor4b.oph b/doc/tutor4b.oph new file mode 100644 index 0000000..3926965 --- /dev/null +++ b/doc/tutor4b.oph @@ -0,0 +1,71 @@ +.include "c64-1.oph" + +.macro print + ldx #0 +_loop: lda _1, x + beq _done + jsr chrout + inx + bne _loop +_done: +.macend + +.macro greet + lda #30 + jsr delay + `print hello1 + `print _1 + `print hello2 +.macend + + lda #147 + jsr chrout + lda #lower'case + jsr chrout + `greet target1 + `greet target2 + `greet target3 + `greet target4 + `greet target5 + `greet target6 + `greet target7 + `greet target8 + `greet target9 + `greet target10 + rts + +hello1: .byte "Hello, ",0 +hello2: .byte "!", 13, 0 + +target1: .byte "programmer", 0 +target2: .byte "room", 0 +target3: .byte "building", 0 +target4: .byte "neighborhood", 0 +target5: .byte "city", 0 +target6: .byte "nation", 0 +target7: .byte "world", 0 +target8: .byte "Solar System", 0 +target9: .byte "Galaxy", 0 +target10: .byte "Universe", 0 + +; DELAY routine. Executes 2,560*(A) NOP statements. +delay: tax + ldy #00 +* nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + iny + bne - + dex + bne - + + + rts + diff --git a/doc/tutor4c.oph b/doc/tutor4c.oph new file mode 100644 index 0000000..f05d023 --- /dev/null +++ b/doc/tutor4c.oph @@ -0,0 +1,73 @@ +.include "c64-1.oph" + +.macro print + ldx #0 +_loop: lda _1, x + beq _done + jsr chrout + inx + bne _loop +_done: +.macend + +.macro greet + lda #30 + jsr delay + `print hello1 + `print _1 + `print hello2 +.macend + + lda #147 + jsr chrout + lda #lower'case + jsr chrout + `greet target1 + `greet target2 + `greet target3 + `greet target4 + `greet target5 + `greet target6 + `greet target7 + `greet target8 + `greet target9 + `greet target10 + rts + +.charmap 'A, "abcdefghijklmnopqrstuvwxyz" +.charmap 'a, "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + +hello1: .byte "Hello, ",0 +hello2: .byte "!", 13, 0 + +target1: .byte "programmer", 0 +target2: .byte "room", 0 +target3: .byte "building", 0 +target4: .byte "neighborhood", 0 +target5: .byte "city", 0 +target6: .byte "nation", 0 +target7: .byte "world", 0 +target8: .byte "Solar System", 0 +target9: .byte "Galaxy", 0 +target10: .byte "Universe", 0 + +; DELAY routine. Executes 2,560*(A) NOP statements. +delay: tax + ldy #00 +* nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + iny + bne - + dex + bne - + + + rts \ No newline at end of file diff --git a/doc/tutor5.oph b/doc/tutor5.oph new file mode 100644 index 0000000..8caf839 --- /dev/null +++ b/doc/tutor5.oph @@ -0,0 +1,75 @@ +.include "c64-1.oph" + +.data +.org $C000 +.text + +.macro print + ldx #0 +_loop: lda _1, x + beq _done + jsr chrout + inx + bne _loop +_done: +.macend + +.macro greet + lda #30 + jsr delay + `print hello1 + `print _1 + `print hello2 +.macend + + lda #147 + jsr chrout + `greet target1 + `greet target2 + `greet target3 + `greet target4 + `greet target5 + `greet target6 + `greet target7 + `greet target8 + `greet target9 + `greet target10 + rts + +hello1: .byte "HELLO, ",0 +hello2: .byte "!", 13, 0 + +target1: .byte "PROGRAMMER", 0 +target2: .byte "ROOM", 0 +target3: .byte "BUILDING", 0 +target4: .byte "NEIGHBORHOOD", 0 +target5: .byte "CITY", 0 +target6: .byte "NATION", 0 +target7: .byte "WORLD", 0 +target8: .byte "SOLAR SYSTEM", 0 +target9: .byte "GALAXY", 0 +target10: .byte "UNIVERSE", 0 + +; DELAY routine. Takes values from the Accumulator and pauses +; for that many jiffies (1/60th of a second). +.scope +.data +.space _tmp 1 +.space _target 1 + +.text + +delay: sta _tmp ; save argument (rdtim destroys it) + jsr rdtim + clc + adc _tmp ; add current time to get target + sta _target +* jsr rdtim + cmp _target + bmi - ; Buzz until target reached + rts +.scend + +.checkpc $A000 +.data +.checkpc $D000 \ No newline at end of file diff --git a/doc/tutor6.oph b/doc/tutor6.oph new file mode 100644 index 0000000..60ad8e9 --- /dev/null +++ b/doc/tutor6.oph @@ -0,0 +1,102 @@ +.include "c64-1.oph" + +.data +.org $C000 +.space cache 2 +.text + +.macro print + lda #<_1 + ldx #>_1 + jsr printstr +.macend + +.macro greet + lda #30 + jsr delay + `print hello1 + `print _1 + `print hello2 +.macend + + ; Save the zero page locations that PRINTSTR uses. + lda $10 + sta cache + lda $11 + sta cache+1 + + lda #147 + jsr chrout + `greet target1 + `greet target2 + `greet target3 + `greet target4 + `greet target5 + `greet target6 + `greet target7 + `greet target8 + `greet target9 + `greet target10 + + ; Restore the zero page values printstr uses. + lda cache + sta $10 + lda cache+1 + sta $11 + + rts + +hello1: .byte "HELLO, ",0 +hello2: .byte "!", 13, 0 + +target1: .byte "PROGRAMMER", 0 +target2: .byte "ROOM", 0 +target3: .byte "BUILDING", 0 +target4: .byte "NEIGHBORHOOD", 0 +target5: .byte "CITY", 0 +target6: .byte "NATION", 0 +target7: .byte "WORLD", 0 +target8: .byte "SOLAR SYSTEM", 0 +target9: .byte "GALAXY", 0 +target10: .byte "UNIVERSE", 0 + +; DELAY routine. Takes values from the Accumulator and pauses +; for that many jiffies (1/60th of a second). +.scope +.data +.space _tmp 1 +.space _target 1 + +.text + +delay: sta _tmp ; save argument (rdtim destroys it) + jsr rdtim + clc + adc _tmp ; add current time to get target + sta _target +* jsr rdtim + cmp _target + bmi - ; Buzz until target reached + rts +.scend + +; PRINTSTR routine. Accumulator stores the low byte of the address, +; X register stores the high byte. Destroys the values of $10 and +; $11. + +.scope +printstr: + sta $10 + stx $11 + ldy #$00 +_lp: lda ($10),y + beq _done + jsr chrout + iny + bne _lp +_done: rts +.scend + +.checkpc $A000 +.data +.checkpc $D000 \ No newline at end of file diff --git a/doc/tutor7.oph b/doc/tutor7.oph new file mode 100644 index 0000000..88ba5bf --- /dev/null +++ b/doc/tutor7.oph @@ -0,0 +1,96 @@ +.include "c64-2.oph" + +.data +.org $C000 +.text + +.macro print + lda #<_1 + ldx #>_1 + jsr printstr +.macend + +.macro greet + lda #30 + jsr delay + `print hello1 + `print _1 + `print hello2 +.macend + + lda #147 + jsr chrout + `greet target1 + `greet target2 + `greet target3 + `greet target4 + `greet target5 + `greet target6 + `greet target7 + `greet target8 + `greet target9 + `greet target10 + + rts + +hello1: .byte "HELLO, ",0 +hello2: .byte "!", 13, 0 + +target1: .byte "PROGRAMMER", 0 +target2: .byte "ROOM", 0 +target3: .byte "BUILDING", 0 +target4: .byte "NEIGHBORHOOD", 0 +target5: .byte "CITY", 0 +target6: .byte "NATION", 0 +target7: .byte "WORLD", 0 +target8: .byte "SOLAR SYSTEM", 0 +target9: .byte "GALAXY", 0 +target10: .byte "UNIVERSE", 0 + +; DELAY routine. Takes values from the Accumulator and pauses +; for that many jiffies (1/60th of a second). +.scope +.data +.space _tmp 1 +.space _target 1 + +.text + +delay: sta _tmp ; save argument (rdtim destroys it) + jsr rdtim + clc + adc _tmp ; add current time to get target + sta _target +* jsr rdtim + cmp _target + bmi - ; Buzz until target reached + rts +.scend + +; PRINTSTR routine. Accumulator stores the low byte of the address, +; X register stores the high byte. Destroys the values of $10 and +; $11. + +.scope +.data zp +.space _ptr 2 +.text +printstr: + sta _ptr + stx _ptr+1 + ldy #$00 +_lp: lda (_ptr),y + beq _done + jsr chrout + iny + bne _lp +_done: rts +.scend + +.checkpc $A000 + +.data +.checkpc $D000 + +.data zp +.checkpc $80 \ No newline at end of file diff --git a/site/index.html b/site/index.html new file mode 100644 index 0000000..6c47757 --- /dev/null +++ b/site/index.html @@ -0,0 +1,32 @@ + + + +The Ophis Assembler + +

The Ophis Assembler

+ +

Ophis is a cross-assembler for the 65xx series of chips. It supports the stock 6502 opcodes, the 65c02 extensions, and syntax for the "undocumented opcodes" in the 6510 chip used on the Commodore 64. (Syntax for these opcodes matches those given in the VICE team's documentation.)

+ +

Ophis is written in pure Python and should be highly portable.

+ +

If you have questions or comments, email me at mcmartin AT gmail DOT com.

+ +

Downloads

+
    +
  • Source distribution. For Unix and Mac. Untar, then run "python setup.py install" as root to install. Documentation and sample code is in the tarball but won't be placed anywhere special.
  • +
  • Win32 installer. Installs a standalone executable and support libraries. You will need to put the install directory into your PATH to run it conveniently, as it is a commandline program.
  • +
+ +

Documentation

+ +

The manual Programming with Ophis is distributed with each download. You can also get it alone.

+ + + + + diff --git a/site/manual/a454.html b/site/manual/a454.html new file mode 100644 index 0000000..0d16f71 --- /dev/null +++ b/site/manual/a454.html @@ -0,0 +1,184 @@ + +Example Programs
Programming with Ophis
<<< PreviousNext >>>

Example Programs

This Appendix collects all the programs referred to in the course + of this manual. +

tutor1.oph

.word $0801
+.org  $0801
+
+        .word next, 10          ; Next line and current line number
+        .byte $9e," 2064",0     ; SYS 2064
+next:   .word 0                 ; End of program
+
+.advance 2064
+
+        ldx #0
+loop:   lda hello, x
+        beq done
+        jsr $ffd2
+        inx
+        bne loop
+done:   rts
+
+hello:  .byte "HELLO, WORLD!", 0

<<< PreviousHomeNext >>>
Where to go from here tutor2.oph
\ No newline at end of file diff --git a/site/manual/a505.html b/site/manual/a505.html new file mode 100644 index 0000000..08cd6ca --- /dev/null +++ b/site/manual/a505.html @@ -0,0 +1,311 @@ + +Ophis Command Reference
Programming with Ophis
<<< PreviousNext >>>

Ophis Command Reference

Command Modes

These mostly follow the MOS Technology 6500 + Microprocessor Family Programming Manual, except + for the Accumulator mode. Accumulator instructions are written + and interpreted identically to Implied mode instructions. +

  • Implied: RTS

  • Accumulator: LSR

  • Immediate: LDA #$06

  • Zero Page: LDA $7C

  • Zero Page, X: LDA $7C,X

  • Zero Page, Y: LDA $7C,Y

  • Absolute: LDA $D020

  • Absolute, X: LDA $D000,X

  • Absolute, Y: LDA $D000,Y

  • (Zero Page Indirect, X): LDA ($80, X)

  • (Zero Page Indirect), Y: LDA ($80), Y

  • (Absolute Indirect): JMP ($A000)

  • Relative: BNE loop

  • (Absolute Indirect, X): JMP ($A000, X) — Only available with 65C02 extensions

  • (Zero Page Indirect): LDX ($80) — Only available with 65C02 extensions


<<< PreviousHomeNext >>>
tutor7.oph Basic arguments
\ No newline at end of file diff --git a/site/manual/book1.html b/site/manual/book1.html new file mode 100644 index 0000000..d7499af --- /dev/null +++ b/site/manual/book1.html @@ -0,0 +1,467 @@ + +Programming with Ophis

Programming with Ophis

Michael Martin

Copyright © 2006-7 Michael Martin


Table of Contents
Preface
Why "Ophis"?
Getting a copy of Ophis
The basics
A note on numeric notation
Producing Commodore 64 programs
Related commands and options
Writing the actual code
Assembling the code
Labels and aliases
Temporary labels
Anonymous labels
Aliasing
Headers, Libraries, and Macros
Header files and libraries
Macros
Macro definitions
Macro invocations
Example code
Character maps
Local variables and memory segments
Expressions
Advanced Memory Segments
The Problem
The Solution
Where to go from here
Example Programs
tutor1.oph
tutor2.oph
c64-1.oph
kernal.oph
tutor3.oph
tutor4a.oph
tutor4b.oph
tutor4c.oph
tutor5.oph
tutor6.oph
c64-2.oph
tutor7.oph
Ophis Command Reference
Command Modes
Basic arguments
Numeric types
Label types
String types
Compound Arguments
Memory Model
Basic PC tracking
Basic Segmentation simulation
General Segmentation Simulation
Macros
Defining Macros
Invoking Macros
Passing Arguments to Macros
Features and Restrictions of the Ophis Macro Model
Assembler directives

  Next >>>
  Preface
\ No newline at end of file diff --git a/site/manual/c200.html b/site/manual/c200.html new file mode 100644 index 0000000..d5f036d --- /dev/null +++ b/site/manual/c200.html @@ -0,0 +1,208 @@ + +Labels and aliases
Programming with Ophis
<<< PreviousNext >>>

Labels and aliases

Labels are an important part of your code. However, since each + label must normally be unique, this can lead to "namespace + pollution," and you'll find yourself going through ever + more contorted constructions to generate unique label names. + Ophis offers two solutions to this: anonymous + labels and temporary labels. This + tutorial will cover both of these facilities, and also introduce + the aliasing mechanism. +

Temporary labels

Temporary labels are the easiest to use. If a label begins with + an underscore, it will only be reachable from inside the + innermost enclosing scope. Scopes begin when + a .scope statement is encountered. This + produces a new, inner scope if there is another scope in use. + The .scend command ends the innermost + currently active scope. +

We can thus rewrite our header data using temporary labels, thus + allowing the main program to have a label + named next if it wants. +

.word $0801
+.org  $0801
+
+.scope
+        .word _next, 10      ; Next line and current line number
+        .byte $9e," 2064",0  ; SYS 2064
+_next:  .word 0              ; End of program
+.scend
+
+.advance 2064

<<< PreviousHomeNext >>>
Assembling the code Anonymous labels
\ No newline at end of file diff --git a/site/manual/c236.html b/site/manual/c236.html new file mode 100644 index 0000000..99e4546 --- /dev/null +++ b/site/manual/c236.html @@ -0,0 +1,226 @@ + +Headers, Libraries, and Macros
Programming with Ophis
<<< PreviousNext >>>

Headers, Libraries, and Macros

In this chapter we will split away parts of our "Hello + World" program into reusable header files and libraries. + We will also abstract away our string printing technique into a + macro which may be invoked at will, on arbitrary strings. We will + then multiply the output of our program tenfold. +

Header files and libraries

The prelude to our program—the PRG + information and the BASIC program—are going to be the same + in many, many programs. Thus, we should put them into a header + file to be included later. The .include + directive will load a file and insert it as source at the + designated point. +

A related directive, .require, will include + the file as long as it hasn't been included yet elsewhere. It + is useful for ensuring a library is linked in. +

For pre-assembled code or raw binary data, + the .incbin directive lets you include the + contents of a binary file directly in the output. This is handy + for linking in pre-created graphics or sound data. +

As a sample library, we will expand the definition of + the chrout routine to include the standard + names for every KERNAL routine. Our header file will + then .require it. +

We'll also add some convenience aliases for things like reverse + video, color changes, and shifting between upper case/graphics + and mixed case text. We'd feed those to + the chrout routine to get their effects. +

Since there have been no interesting changes to the prelude, and + the KERNAL values are standard, we do not reproduce them here. + (The files in question are c64-1.oph and kernal.oph.) +


<<< PreviousHomeNext >>>
Aliasing Macros
\ No newline at end of file diff --git a/site/manual/c292.html b/site/manual/c292.html new file mode 100644 index 0000000..b883874 --- /dev/null +++ b/site/manual/c292.html @@ -0,0 +1,344 @@ + +Character maps
Programming with Ophis
<<< PreviousNext >>>

Character maps

Now we will close the gap between the Commodore's + version of ASCII and the real one. We'll also add a time-delay + routine to slow down the output. This routine isn't really of + interest to us right now, so we'll add a subroutine + called delay that executes 2,560*(accumulator) + NOPs. By the time the program is finished, + we'll have executed 768,000 no-ops. +

There actually are better ways of getting a time-delay on the + Commodore 64; we'll deal with those in the Chapter called Local variables and memory segments. + As a result, there isn't really a lot to discuss here. The later + tutorials will be building off of tutor4a.oph, so you may want to get familiar with + that. Note also the change to the body of + the greet macro. +

On to the topic at hand. Let's change the code to use mixed case. + We defined the upper'case + and lower'case aliases back + in the Chapter called Headers, Libraries, and Macros as part of the + standard kernal.oph + header, so we can add this before our invocations of + the greet macro: +

          lda #lower'case
+          jsr chrout

And that will put us into mixed case mode. So, now we just need + to redefine the data so that it uses the mixed-case: +

hello1:   .byte "Hello, ",0
+hello2:   .byte "!", 13, 0
+
+target1:  .byte "programmer", 0
+target2:  .byte "room", 0
+target3:  .byte "building", 0
+target4:  .byte "neighborhood", 0
+target5:  .byte "city", 0
+target6:  .byte "nation", 0
+target7:  .byte "world", 0
+target8:  .byte "Solar System", 0
+target9:  .byte "Galaxy", 0
+target10: .byte "Universe", 0

The code that does this is in tutor4b.oph. If you assemble and run it, you will + notice that the output is not what we want. In particular, upper + and lowercase are reversed, so we have messages + like hELLO, sOLAR sYSTEM!. For + the specific case of PETSCII, we can just fix our strings, but + that's less of an option if we're writing for the Apple II's + character set, or targeting a game console that puts its letters + in arbitrary locations. We need to remap how strings are turned + into byte values. The .charmap + and .charmapbin directives do what we need. +

The .charmap directive usually takes two + arguments; a byte (usually in character form) indicating the ASCII + value to start remapping from, and then a string giving the new + values. To do our case-swapping, we write two directives before + defining any string constants: +

.charmap 'A, "abcdefghijklmnopqrstuvwxyz"
+.charmap 'a, "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

Note that the 'a constant in the second + directive refers to the "a" character in the source, + not in the current map. +

The fixed code is in tutor4c.oph, and will produce the expected results + when run. +

An alternative is to use a .charmapbin + directive to replace the entire character map directly. This + specifies an external file, 256 bytes long, that is loaded in at + that point. A binary character map for the Commodore 64 is + provided with the sample programs + as petscii.map. There are also three + files, a2normal.map, a2inverse.map, + and a2blink.map that handle the Apple II's + very nonstandard character encodings. +


<<< PreviousHomeNext >>>
Example code Local variables and memory segments
\ No newline at end of file diff --git a/site/manual/c329.html b/site/manual/c329.html new file mode 100644 index 0000000..784c66c --- /dev/null +++ b/site/manual/c329.html @@ -0,0 +1,402 @@ + +Local variables and memory segments
Programming with Ophis
<<< PreviousNext >>>

Local variables and memory segments

As mentioned in the Chapter called Character maps, there are better ways + to handle waiting than just executing vast numbers of NOPs. The + Commodore 64 KERNAL library includes a rdtim + routine that returns the uptime of the machine, in + 60ths of a second, as a 24-bit integer. + The Commodore 64 programmer's guide available online actually has + a bug in it, reversing the significance of the A and Y registers. + The accumulator holds the least significant + byte, not the most. +

Here's a first shot at a better delay routine: +

.scope
+        ; data used by the delay routine
+        _tmp:    .byte 0
+        _target: .byte 0
+
+delay:  sta _tmp        ; save argument (rdtim destroys it)
+        jsr rdtim
+        clc
+        adc _tmp        ; add current time to get target
+        sta _target
+*       jsr rdtim
+        cmp _target
+        bmi -           ; Buzz until target reached
+        rts
+.scend

This works, but it eats up two bytes of file space that don't + really need to be specified. Also, it's modifying data inside a + program text area, which isn't good if you're assembling to a ROM + chip. (Since the Commodore 64 stores its programs in RAM, it's + not an issue for us here.) A slightly better solution is to + use .alias to assign the names to chunks of RAM + somewhere. There's a 4K chunk of RAM from $C000 through $CFFF + between the BASIC ROM and the I/O ROM that should serve our + purposes nicely. We can replace the definitions + of _tmp and _target with: +

        ; data used by the delay routine
+        .alias _tmp    $C000
+        .alias _target $C001

This works better, but now we've just added a major bookkeeping + burden upon ourselves—we must ensure that no routines step on + each other. What we'd really like are two separate program + counters—one for the program text, and one for our variable + space. +

Ophis lets us do this with the .text + and .data commands. + The .text command switches to the program-text + counter, and the .data command switches to the + variable-data counter. When Ophis first starts assembling a file, + it starts in .text mode. +

To reserve space for a variable, use the .space command. This + takes the form: + +
.space varname size
+ + which assigns the name varname to the current + program counter, then advances the program counter by the amount + specified in size. Nothing is output to the + final binary as a result of the .space command. +

You may not put in any commands that produce output into + a .data segment. Generally, all you will be + using are .org and .space + commands. Ophis will not complain if you + use .space inside a .text + segment, but this is nearly always wrong. +

The final version of delay looks like this: +

; DELAY routine.  Takes values from the Accumulator and pauses
+; for that many jiffies (1/60th of a second).
+.scope
+.data
+.space _tmp 1
+.space _target 1
+
+.text
+
+delay:  sta _tmp        ; save argument (rdtim destroys it)
+        jsr rdtim
+        clc
+        adc _tmp        ; add current time to get target
+        sta _target
+*       jsr rdtim
+        cmp _target
+        bmi -                ; Buzz until target reached
+        rts
+.scend

We're not quite done yet, however, because we have to tell the + data segment where to begin. (If we don't, it starts at 0, which + is usually wrong.) We add a very brief data segment to the top of + our code: +

.data
+.org $C000
+.text

This will run. However, we also ought to make sure that we aren't + overstepping any boundaries. Our program text shouldn't run into + the BASIC chip at $A000, and our data shouldn't run into the I/O + region at $D000. The .checkpc command lets us + assert that the program counter hasn't reached a specific point + yet. We put, at the end of our code: +

.checkpc $A000
+.data
+.checkpc $D000

The final program is available as tutor5.oph. Note that we based this on the + all-uppercase version from the last section, not any of the + charmapped versions. +


<<< PreviousHomeNext >>>
Character maps Expressions
\ No newline at end of file diff --git a/site/manual/c35.html b/site/manual/c35.html new file mode 100644 index 0000000..cd82799 --- /dev/null +++ b/site/manual/c35.html @@ -0,0 +1,180 @@ + +The basics
Programming with Ophis
<<< PreviousNext >>>

The basics

In this first part of the tutorial we will create a + simple "Hello World" program to run on the Commodore + 64. This will cover: + +

  • How to make programs run on a Commodore 64

  • Writing simple code with labels

  • Numeric and string data

  • Invoking the assembler

+

A note on numeric notation

Throughout these tutorials, I will be using a lot of both + decimal and hexadecimal notation. Hex numbers will have a + dollar sign in front of them. Thus, 100 = $64, and $100 = 256. +


<<< PreviousHomeNext >>>
Getting a copy of Ophis Producing Commodore 64 programs
\ No newline at end of file diff --git a/site/manual/c371.html b/site/manual/c371.html new file mode 100644 index 0000000..05a57be --- /dev/null +++ b/site/manual/c371.html @@ -0,0 +1,348 @@ + +Expressions
Programming with Ophis
<<< PreviousNext >>>

Expressions

Ophis permits a reasonably rich set of arithmetic operations to be + done at assemble time. So far, all of our arguments and values + have either been constants or label names. In this chapter, we + will modify the print macro so that it calls a + subroutine to do the actual printing. This will shrink the final + code size a fair bit. +

Here's our printing routine. It's fairly straightforward. +

; PRINTSTR routine.  Accumulator stores the low byte of the address,
+; X register stores the high byte.  Destroys the values of $10 and
+; $11.
+
+.scope
+printstr:
+        sta $10
+        stx $11
+        ldy #$00
+_lp:    lda ($10), y
+        beq _done
+        jsr chrout
+        iny
+        bne _lp
+_done:  rts
+.scend

However, now we are faced with the problem of what to do with + the print macro. We need to take a 16-bit + value and store it in two 8-bit registers. We can use + the < and > operators + to take the low or high byte of a word, respectively. + The print macro becomes: +

.macro print
+        lda #<_1
+        ldx #>_1
+        jsr printstr
+.macend

Also, since BASIC uses the locations $10 and $11, we should really + cache them at the start of the program and restore them at the + end: +

.data
+.org $C000
+.space cache 2
+.text
+
+        ; Save the zero page locations that printstr uses.
+        lda $10
+        sta cache
+        lda $11
+        sta cache+1
+
+        ; ... main program goes here ...
+
+        ; Restore the zero page values printstr uses.
+        lda cache
+        sta $10
+        lda cache+1
+        sta $11

Note that we only have to name cache once, but + can use addition to refer to any offset from it. +

Ophis supports following operations, with the following precedence + levels (higher entries bind more tightly): +

Table 1. Ophis Operators

OperatorsDescription
[ ]Parenthesized expressions
< >Byte selection (low, high)
* /Multiply, divide
+ -Add, subtract
| & ^Bitwise OR, AND, XOR

Note that brackets, not parentheses, are used to group arithmetic + operations. This is because parentheses are used for the indirect + addressing modes, and it makes parsing much easier. +

The code for this version of the code is + in tutor6.oph. +


<<< PreviousHomeNext >>>
Local variables and memory segments Advanced Memory Segments
\ No newline at end of file diff --git a/site/manual/c419.html b/site/manual/c419.html new file mode 100644 index 0000000..674310a --- /dev/null +++ b/site/manual/c419.html @@ -0,0 +1,184 @@ + +Advanced Memory Segments
Programming with Ophis
<<< PreviousNext >>>

Advanced Memory Segments

This is the last section of the Ophis tutorial. By now we've + covered the basics of every command in the assembler; in this + final installment we show the full capabilities of + the .text and .data commands + as we produce a final set of Commodore 64 header files. +

The Problem

Our print'str routine + in tutor6.oph accesses + memory locations $10 and $11 directly. We'd prefer to have + symbolic names for them. This reprises our concerns back in + the Chapter called Local variables and memory segments when we concluded that we wanted two + separate program counters. Now we realize that we really need + three; one for the text, one for the data, and one for the zero + page data. And if we're going to allow three, we really should + allow any number. +


<<< PreviousHomeNext >>>
Expressions The Solution
\ No newline at end of file diff --git a/site/manual/f10.html b/site/manual/f10.html new file mode 100644 index 0000000..71c7cd2 --- /dev/null +++ b/site/manual/f10.html @@ -0,0 +1,186 @@ + +Preface
Programming with Ophis
<<< PreviousNext >>>

Preface

The Ophis project started on a lark back in 2001. My graduate + studies required me to learn Perl and Python, and I'd been playing + around with Commodore 64 emulators in my spare time, so I decided + to learn both languages by writing a simple cross-assembler for + the 6502 chip the C-64 used in both. +

The Perl version was quickly abandoned, but the Python one slowly + grew in scope and power over the years, and by 2005 was a very + powerful, flexible macro assembler that saw more use than I'd + expect. In 2007 I finally got around to implementing the last few + features I really wanted and polishing it up for general release. +

Part of that process has been formatting the various little + tutorials and references I'd created into a single, unified + document—the one you are now reading. +

Why "Ophis"?

It's actually a kind of a horrific pun. See, I was using Python + at the time, and one of the things I had been hoping to do with + the assembler was to produce working Apple II + programs. "Ophis" is Greek + for "snake", and a number of traditions also use it + as the actual name of the serpent in the + Garden of Eden. So, Pythons, snakes, and stories involving + really old Apples all combined to name the assembler. +


<<< PreviousHomeNext >>>
Programming with Ophis Getting a copy of Ophis
\ No newline at end of file diff --git a/site/manual/x119.html b/site/manual/x119.html new file mode 100644 index 0000000..a9b00ed --- /dev/null +++ b/site/manual/x119.html @@ -0,0 +1,206 @@ + +Related commands and options
Programming with Ophis
<<< PreviousThe basicsNext >>>

Related commands and options

This code includes constants that are both in decimal and in + hex. It is also possible to specify constants in octal, binary, + or with an ASCII character. + +

  • To specify decimal constants, simply write the number.

  • To specify hexadecimal constants, put a $ in front.

  • To specify octal constants, put a 0 (zero) in front.

  • To specify binary constants, put a % in front.

  • To specify ASCII constants, put an apostrophe in front.

+ + Example: 65 = $41 = 0101 = %1000001 = 'A +

There are other commands besides .byte + and .word to specify data. In particular, + the .dword command specifies four-byte values + which some applications will find useful. Also, some linking + formats (such as the SID format) have + header data in big-endian (high byte first) format. + The .wordbe and .dwordbe + directives provide a way to specify multibyte constants in + big-endian formats cleanly. +


<<< PreviousHomeNext >>>
Producing Commodore 64 programsUpWriting the actual code
\ No newline at end of file diff --git a/site/manual/x140.html b/site/manual/x140.html new file mode 100644 index 0000000..e6413c9 --- /dev/null +++ b/site/manual/x140.html @@ -0,0 +1,197 @@ + +Writing the actual code
Programming with Ophis
<<< PreviousThe basicsNext >>>

Writing the actual code

Now that we have our header information, let's actually write + the "Hello world" program. It's pretty + short—a simple loop that steps through a hardcoded array + until it reaches a 0 or outputs 256 characters. It then returns + control to BASIC with an RTS statement. +

Each character in the array is passed as an argument to a + subroutine at memory location $FFD2. This is part of the + Commodore 64's BIOS software, which its development + documentation calls the KERNAL. Location $FFD2 prints out the + character corresponding to the character code in the + accumulator. +

        ldx #0
+loop:   lda hello, x
+        beq done
+        jsr $ffd2
+        inx
+        bne loop
+done:   rts
+
+hello:  .byte "HELLO, WORLD!", 0
+    

The complete, final source is available in + the tutor1.oph file. +


<<< PreviousHomeNext >>>
Related commands and optionsUpAssembling the code
\ No newline at end of file diff --git a/site/manual/x149.html b/site/manual/x149.html new file mode 100644 index 0000000..656e0c0 --- /dev/null +++ b/site/manual/x149.html @@ -0,0 +1,317 @@ + +Assembling the code
Programming with Ophis
<<< PreviousThe basicsNext >>>

Assembling the code

The Ophis assembler is a collection of Python modules, + controlled by a master script. On Windows, this should all + have been combined into an executable + file ophis.exe; on other platforms, the + Ophis modules should be in the library and + the ophis script should be in your path. + Typing ophis with no arguments should give a + summary of available command line options. +

Table 2. Ophis Options

OptionEffect
-6510Allows the 6510 undocumented opcodes as listed in the VICE documentation.
-65c02Allows opcodes and addressing modes added by the 65C02.
-v 0Quiet operation. Only reports errors.
-v 1Default operation. Reports files as they are loaded, and gives statistics on the final output.
-v 2Verbose operation. Names each assembler pass as it runs.
-v 3Debug operation: Dumps the entire IR after each pass.
-v 4Full debug operation: Dumps the entire IR and symbol table after each pass.

The only options Ophis demands are an input file and an output + file. Here's a sample session, assembling the tutorial file + here: +

localhost$ ophis tutor1.oph tutor1.prg -v 2
+Loading tutor1.oph
+Running: Macro definition pass
+Running: Macro expansion pass
+Running: Label initialization pass
+Fixpoint failed, looping back
+Running: Label initialization pass
+Running: Circularity check pass
+Running: Expression checking pass
+Running: Easy addressing modes pass
+Running: Label Update Pass
+Fixpoint failed, looping back
+Running: Label Update Pass
+Running: Instruction Collapse Pass
+Running: Mode Normalization pass
+Running: Label Update Pass
+Running: Assembler
+Assembly complete: 45 bytes output (14 code, 29 data, 2 filler)
+    

If your emulator can run PRG files + directly, this file will now run (and + print HELLO, WORLD!) as many + times as you type RUN. Otherwise, use + a D64 management utility to put + the PRG on a D64, then + load and run the file off that. +


<<< PreviousHomeNext >>>
Writing the actual codeUpLabels and aliases
\ No newline at end of file diff --git a/site/manual/x214.html b/site/manual/x214.html new file mode 100644 index 0000000..ac408d2 --- /dev/null +++ b/site/manual/x214.html @@ -0,0 +1,198 @@ + +Anonymous labels
Programming with Ophis
<<< PreviousLabels and aliasesNext >>>

Anonymous labels

Anonymous labels are a way to handle short-ranged branches + without having to come up with names for the then and else + branches, for brief loops, and other such purposes. To define + an anonymous label, use an asterisk. To refer to an anonymous + label, use a series of + + or - signs. + refers to + the next anonymous label, ++ the label + after that, etc. Likewise, - is the most + recently defined label, -- the one before + that, and so on. The main body of the Hello World program + with anonymous labels would be: +

        ldx #0
+*       lda hello, x
+        beq +
+        jsr $ffd2
+        inx
+        bne -
+*       rts

It is worth noting that anonymous labels are globally available. + They are not temporary labels, and they ignore scoping + restrictions. +


<<< PreviousHomeNext >>>
Labels and aliasesUpAliasing
\ No newline at end of file diff --git a/site/manual/x22.html b/site/manual/x22.html new file mode 100644 index 0000000..1439651 --- /dev/null +++ b/site/manual/x22.html @@ -0,0 +1,197 @@ + +Getting a copy of Ophis
Programming with Ophis
<<< PreviousPrefaceNext >>>

Getting a copy of Ophis

If you're reading this as part of the Ophis install, you clearly + already have it. If not, as of this writing the homepage for + the Ophis assembler + is http://hkn.eecs.berkeley.edu/~mcmartin/ophis/. If + this is out-of-date, a Web search on "Ophis 6502 + assembler" (without the quotation marks) should yield its + page. +

Ophis is written entirely in Python and packaged using the + distutils. The default installation script on Unix and Mac OS X + systems should put the files where they need to go. If you are + running it locally, you will need to install + the Ophis package somewhere in your Python + package path, and then put the ophis script + somewhere in your path. +

Windows users that have Python installed can use the same source + distributions that the other operating systems + use; ophis.bat will arrange the environment + variables accordingly and invoke the main script. +

If you are on Windows and do not have Python installed, a + prepackaged system made with py2exe is also + available. The default Windows installer will use this. In + this case, all you need to do is + have ophis.exe in your path. +

\ No newline at end of file diff --git a/site/manual/x225.html b/site/manual/x225.html new file mode 100644 index 0000000..2809307 --- /dev/null +++ b/site/manual/x225.html @@ -0,0 +1,203 @@ + +Aliasing
Programming with Ophis
<<< PreviousLabels and aliasesNext >>>

Aliasing

Rather the reverse of anonymous labels, aliases are names + given to specific memory locations. These make it easier to + keep track of important constants or locations. The KERNAL + routines are a good example of constants that deserve names. + To assign the traditional name chrout to + the routine at $FFD2, simply give the directive: +

.alias chrout $ffd2

And change the jsr command + to:

        jsr chrout

The final version of the code is in tutor2.oph. It should + assemble to exactly the same program as tutor1.oph. +


<<< PreviousHomeNext >>>
Anonymous labelsUpHeaders, Libraries, and Macros
\ No newline at end of file diff --git a/site/manual/x257.html b/site/manual/x257.html new file mode 100644 index 0000000..1e6128a --- /dev/null +++ b/site/manual/x257.html @@ -0,0 +1,289 @@ + +Macros
Programming with Ophis
<<< PreviousHeaders, Libraries, and MacrosNext >>>

Macros

A macro is a way of expressing a lot of code or data with a + simple shorthand. It's also usually configurable. Traditional + macro systems such as C's #define mechanic + use textual replacement: a macro is + expanded before any evaluation or even parsing occurs. +

In contrast, Ophis's macro system uses a call by + value approach where the arguments to macros are + evaluated to bytes or words before being inserted into the macro + body. This produces effects much closer to those of a + traditional function call. A more detailed discussion of the + tradeoffs may be found in the Appendix called Ophis Command Reference. +

Macro definitions

A macro definition is a set of statements between + a .macro statement and + a .macend statement. + The .macro statement also names the macro + being defined. +

No global or anonymous labels may be defined inside a macro: + temporary labels only persist in the macro expansion itself. + (Each macro body has its own scope.) +

Arguments to macros are referred to by number: the first is + _1, the second _2, and so on. +

Here's a macro that encapsulates the printing routine in our + "Hello World" program, with an argument being the + address of the string to print: +

.macro print
+        ldx #0
+_loop:  lda _1, x
+        beq _done
+        jsr chrout
+        inx
+        bne _loop
+_done:
+.macend

Macro invocations

Macros may be invoked in two ways: one that looks like a + directive, and one that looks like an instruction. +

The most common way to invoke a macro is to backquote the name + of the macro. It is also possible to use + the .invoke command. These commands look + like this: +

`print msg
+.invoke print msg

Arguments are passed to the macro as a comma-separated list. + They must all be expressions that evaluate to byte or word + values—a mechanism similar to .alias + is used to assign their values to the _n + names. +


<<< PreviousHomeNext >>>
Headers, Libraries, and MacrosUpExample code
\ No newline at end of file diff --git a/site/manual/x287.html b/site/manual/x287.html new file mode 100644 index 0000000..e4c9395 --- /dev/null +++ b/site/manual/x287.html @@ -0,0 +1,161 @@ + +Example code
Programming with Ophis
<<< PreviousHeaders, Libraries, and MacrosNext >>>

Example code

tutor3.oph expands our + running example, including the code above and also defining a + new macro greet that takes a string argument + and prints a greeting to it. It then greets far too many + targets. +


<<< PreviousHomeNext >>>
MacrosUpCharacter maps
\ No newline at end of file diff --git a/site/manual/x430.html b/site/manual/x430.html new file mode 100644 index 0000000..8d0cb6a --- /dev/null +++ b/site/manual/x430.html @@ -0,0 +1,295 @@ + +The Solution
Programming with Ophis
<<< PreviousAdvanced Memory SegmentsNext >>>

The Solution

The .data and .text + commands can take a label name after them—this names a new + segment. We'll define a new segment + called zp (for "zero page") and + have our zero-page variables be placed there. We can't actually + use the default origin of $0000 here either, though, because the + Commodore 64 reserves memory locations 0 and 1 to control its + memory mappers: +

.data zp
+.org $0002

Now, actually, the rest of the zero page is reserved too: + locations $02-$7F are used by the BASIC interpreter, and + locations $80-$FF are used by the KERNAL. We don't need the + BASIC interpreter, though, so we can back up all of $02-$7F at + the start of our program and restore it all when we're done: +

.scope
+        ; Cache BASIC's zero page at top of available RAM.
+        ldx #$7E
+*       lda $01, x
+        sta $CF81, x
+        dex
+        bne -
+
+        jsr _main
+
+        ; Restore BASIC's zero page and return control.
+
+        ldx #$7E
+*       lda $CF81, x
+        sta $01, x
+        dex
+        bne -
+        rts
+
+_main:
+        ; _main points at the start of the real program,
+        ; which is actually outside of this scope
+.scend

The new, improved header file is c64-2.oph. +

Our print'str routine is then rewritten to + declare and use a zero-page variable, like so: +

; PRINTSTR routine.  Accumulator stores the low byte of the address,
+; X register stores the high byte.  Destroys the values of $10 and
+; $11.
+
+.scope
+.data zp
+.space _ptr 2
+.text
+printstr:
+        sta _ptr
+        stx _ptr+1
+        ldy #$00
+_lp:    lda (_ptr),y
+        beq _done
+        jsr chrout
+        iny
+        bne _lp
+_done:  rts
+.scend

Also, we ought to put in an extra check to make sure our + zero-page allocations don't overflow, either: +

.data zp
+.checkpc $80

That concludes our tour. The final source file + is tutor7.oph. +


<<< PreviousHomeNext >>>
Advanced Memory SegmentsUpWhere to go from here
\ No newline at end of file diff --git a/site/manual/x449.html b/site/manual/x449.html new file mode 100644 index 0000000..51ac5c9 --- /dev/null +++ b/site/manual/x449.html @@ -0,0 +1,162 @@ + +Where to go from here
Programming with Ophis
<<< PreviousAdvanced Memory SegmentsNext >>>

Where to go from here

This tutorial has touched on everything that the assembler can + do, but it's not really well organized as a + reference. the Appendix called Ophis Command Reference is a better place to look + up matters of syntax or consult lists of available commands. +

If you're looking for projects to undertake, the Commodore 64 + and Atari 2600 development communities are both very strong, and + the Apple II and NES development communities are still alive and + well as well. There's an annual Minigame Competition that's + always looking for new entries. +


<<< PreviousHomeNext >>>
The SolutionUpExample Programs
\ No newline at end of file diff --git a/site/manual/x461.html b/site/manual/x461.html new file mode 100644 index 0000000..f709075 --- /dev/null +++ b/site/manual/x461.html @@ -0,0 +1,183 @@ + +tutor2.oph
Programming with Ophis
<<< PreviousExample ProgramsNext >>>

tutor2.oph

.word $0801
+.org  $0801
+
+.scope
+        .word _next, 10         ; Next line and current line number
+        .byte $9e," 2064",0     ; SYS 2064
+_next:  .word 0                 ; End of program
+.scend
+
+.advance 2064
+
+.alias chrout $ffd2
+
+        ldx #0
+*       lda hello, x
+        beq +
+        jsr chrout
+        inx
+        bne -
+*       rts
+
+hello:  .byte "HELLO, WORLD!", 0

<<< PreviousHomeNext >>>
Example ProgramsUpc64-1.oph
\ No newline at end of file diff --git a/site/manual/x465.html b/site/manual/x465.html new file mode 100644 index 0000000..72ecc11 --- /dev/null +++ b/site/manual/x465.html @@ -0,0 +1,176 @@ + +c64-1.oph
Programming with Ophis
<<< PreviousExample ProgramsNext >>>

c64-1.oph

.word $0801
+.org  $0801
+
+.scope
+        .word _next, 10         ; Next line and current line number
+        .byte $9e," 2064",0     ; SYS 2064
+_next:  .word 0                 ; End of program
+.scend
+
+.advance 2064
+
+.require "kernal.oph"

<<< PreviousHomeNext >>>
tutor2.ophUpkernal.oph
\ No newline at end of file diff --git a/site/manual/x469.html b/site/manual/x469.html new file mode 100644 index 0000000..526cb88 --- /dev/null +++ b/site/manual/x469.html @@ -0,0 +1,231 @@ + +kernal.oph
Programming with Ophis
<<< PreviousExample ProgramsNext >>>

kernal.oph

; KERNAL routine aliases (C64)
+
+.alias acptr  $ffa5
+.alias chkin  $ffc6
+.alias chkout $ffc9
+.alias chrin  $ffcf
+.alias chrout $ffd2
+.alias ciout  $ffa8
+.alias cint   $ff81
+.alias clall  $ffe7
+.alias close  $ffc3
+.alias clrchn $ffcc
+.alias getin  $ffe4
+.alias iobase $fff3
+.alias ioinit $ff84
+.alias listen $ffb1
+.alias load   $ffd5
+.alias membot $ff9c
+.alias memtop $ff99
+.alias open   $ffc0
+.alias plot   $fff0
+.alias ramtas $ff87
+.alias rdtim  $ffde
+.alias readst $ffb7
+.alias restor $ff8a
+.alias save   $ffd8
+.alias scnkey $ff9f
+.alias screen $ffed
+.alias second $ff93
+.alias setlfs $ffba
+.alias setmsg $ff90
+.alias setnam $ffbd
+.alias settim $ffdb
+.alias settmo $ffa2
+.alias stop   $ffe1
+.alias talk   $ffb4
+.alias tksa   $ff96
+.alias udtim  $ffea
+.alias unlsn  $ffae
+.alias untlk  $ffab
+.alias vector $ff8d
+
+; Character codes for the colors.
+.alias color'0 144
+.alias color'1 5
+.alias color'2 28
+.alias color'3 159
+.alias color'4 156
+.alias color'5 30
+.alias color'6 31
+.alias color'7 158
+.alias color'8 129
+.alias color'9 149
+.alias color'10 150
+.alias color'11 151
+.alias color'12 152
+.alias color'13 153
+.alias color'14 154
+.alias color'15 155
+
+; ...and reverse video
+.alias reverse'on 18
+.alias reverse'off 146
+
+; ...and character set
+.alias upper'case 142
+.alias lower'case 14

<<< PreviousHomeNext >>>
c64-1.ophUptutor3.oph
\ No newline at end of file diff --git a/site/manual/x473.html b/site/manual/x473.html new file mode 100644 index 0000000..f349b39 --- /dev/null +++ b/site/manual/x473.html @@ -0,0 +1,209 @@ + +tutor3.oph
Programming with Ophis
<<< PreviousExample ProgramsNext >>>

tutor3.oph

.include "c64-1.oph"
+
+.macro print
+        ldx #0
+_loop:  lda _1, x
+        beq _done
+        jsr chrout
+        inx
+        bne _loop
+_done:
+.macend
+
+.macro greet
+        `print hello1
+        `print _1
+        `print hello2
+.macend
+
+        lda #147
+        jsr chrout
+        `greet target1
+        `greet target2
+        `greet target3
+        `greet target4
+        `greet target5
+        `greet target6
+        `greet target7
+        `greet target8
+        `greet target9
+        `greet target10
+        rts
+
+hello1: .byte "HELLO, ",0
+hello2: .byte "!", 13, 0
+
+target1:  .byte "PROGRAMMER", 0
+target2:  .byte "ROOM", 0
+target3:  .byte "BUILDING", 0
+target4:  .byte "NEIGHBORHOOD", 0
+target5:  .byte "CITY", 0
+target6:  .byte "NATION", 0
+target7:  .byte "WORLD", 0
+target8:  .byte "SOLAR SYSTEM", 0
+target9:  .byte "GALAXY", 0
+target10: .byte "UNIVERSE", 0

<<< PreviousHomeNext >>>
kernal.ophUptutor4a.oph
\ No newline at end of file diff --git a/site/manual/x477.html b/site/manual/x477.html new file mode 100644 index 0000000..8110a3a --- /dev/null +++ b/site/manual/x477.html @@ -0,0 +1,230 @@ + +tutor4a.oph
Programming with Ophis
<<< PreviousExample ProgramsNext >>>

tutor4a.oph

.include "c64-1.oph"
+
+.macro print
+        ldx #0
+_loop:  lda _1, x
+        beq _done
+        jsr chrout
+        inx
+        bne _loop
+_done:
+.macend
+
+.macro greet
+        lda #30
+        jsr delay
+        `print hello1
+        `print _1
+        `print hello2
+.macend
+
+        lda #147
+        jsr chrout
+        `greet target1
+        `greet target2
+        `greet target3
+        `greet target4
+        `greet target5
+        `greet target6
+        `greet target7
+        `greet target8
+        `greet target9
+        `greet target10
+        rts
+
+hello1: .byte "HELLO, ",0
+hello2: .byte "!", 13, 0
+
+target1:  .byte "PROGRAMMER", 0
+target2:  .byte "ROOM", 0
+target3:  .byte "BUILDING", 0
+target4:  .byte "NEIGHBORHOOD", 0
+target5:  .byte "CITY", 0
+target6:  .byte "NATION", 0
+target7:  .byte "WORLD", 0
+target8:  .byte "SOLAR SYSTEM", 0
+target9:  .byte "GALAXY", 0
+target10: .byte "UNIVERSE", 0
+
+; DELAY routine.  Executes 2,560*(A) NOP statements.
+delay:  tax
+        ldy #00
+*       nop
+        nop
+        nop
+        nop
+        nop
+        nop
+        nop
+        nop
+        nop
+        nop
+        iny
+        bne -
+        dex
+        bne -
+        rts

<<< PreviousHomeNext >>>
tutor3.ophUptutor4b.oph
\ No newline at end of file diff --git a/site/manual/x481.html b/site/manual/x481.html new file mode 100644 index 0000000..2fa5d2a --- /dev/null +++ b/site/manual/x481.html @@ -0,0 +1,232 @@ + +tutor4b.oph
Programming with Ophis
<<< PreviousExample ProgramsNext >>>

tutor4b.oph

.include "c64-1.oph"
+
+.macro print
+        ldx #0
+_loop:  lda _1, x
+        beq _done
+        jsr chrout
+        inx
+        bne _loop
+_done:
+.macend
+
+.macro greet
+        lda #30
+        jsr delay
+        `print hello1
+        `print _1
+        `print hello2
+.macend
+
+        lda #147
+        jsr chrout
+        lda #lower'case
+        jsr chrout
+        `greet target1
+        `greet target2
+        `greet target3
+        `greet target4
+        `greet target5
+        `greet target6
+        `greet target7
+        `greet target8
+        `greet target9
+        `greet target10
+        rts
+
+hello1: .byte "Hello, ",0
+hello2: .byte "!", 13, 0
+
+target1:  .byte "programmer", 0
+target2:  .byte "room", 0
+target3:  .byte "building", 0
+target4:  .byte "neighborhood", 0
+target5:  .byte "city", 0
+target6:  .byte "nation", 0
+target7:  .byte "world", 0
+target8:  .byte "Solar System", 0
+target9:  .byte "Galaxy", 0
+target10: .byte "Universe", 0
+
+; DELAY routine.  Executes 2,560*(A) NOP statements.
+delay:  tax
+        ldy #00
+*       nop
+        nop
+        nop
+        nop
+        nop
+        nop
+        nop
+        nop
+        nop
+        nop
+        iny
+        bne -
+        dex
+        bne -   
+        rts

<<< PreviousHomeNext >>>
tutor4a.ophUptutor4c.oph
\ No newline at end of file diff --git a/site/manual/x485.html b/site/manual/x485.html new file mode 100644 index 0000000..fa90f3e --- /dev/null +++ b/site/manual/x485.html @@ -0,0 +1,235 @@ + +tutor4c.oph
Programming with Ophis
<<< PreviousExample ProgramsNext >>>

tutor4c.oph

.include "c64-1.oph"
+
+.macro print
+        ldx #0
+_loop:  lda _1, x
+        beq _done
+        jsr chrout
+        inx
+        bne _loop
+_done:
+.macend
+
+.macro greet
+        lda #30
+        jsr delay
+        `print hello1
+        `print _1
+        `print hello2
+.macend
+
+        lda #147
+        jsr chrout
+        lda #lower'case
+        jsr chrout
+        `greet target1
+        `greet target2
+        `greet target3
+        `greet target4
+        `greet target5
+        `greet target6
+        `greet target7
+        `greet target8
+        `greet target9
+        `greet target10
+        rts
+
+.charmap 'A, "abcdefghijklmnopqrstuvwxyz"
+.charmap 'a, "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+
+hello1: .byte "Hello, ",0
+hello2: .byte "!", 13, 0
+
+target1:  .byte "programmer", 0
+target2:  .byte "room", 0
+target3:  .byte "building", 0
+target4:  .byte "neighborhood", 0
+target5:  .byte "city", 0
+target6:  .byte "nation", 0
+target7:  .byte "world", 0
+target8:  .byte "Solar System", 0
+target9:  .byte "Galaxy", 0
+target10: .byte "Universe", 0
+
+; DELAY routine.  Executes 2,560*(A) NOP statements.
+delay:  tax
+        ldy #00
+*       nop
+        nop
+        nop
+        nop
+        nop
+        nop
+        nop
+        nop
+        nop
+        nop
+        iny
+        bne -
+        dex
+        bne -
+        rts

<<< PreviousHomeNext >>>
tutor4b.ophUptutor5.oph
\ No newline at end of file diff --git a/site/manual/x489.html b/site/manual/x489.html new file mode 100644 index 0000000..7ca3855 --- /dev/null +++ b/site/manual/x489.html @@ -0,0 +1,239 @@ + +tutor5.oph
Programming with Ophis
<<< PreviousExample ProgramsNext >>>

tutor5.oph

.include "c64-1.oph"
+
+.data
+.org $C000
+.text
+
+.macro print
+        ldx #0
+_loop:  lda _1, x
+        beq _done
+        jsr chrout
+        inx
+        bne _loop
+_done:
+.macend
+
+.macro greet
+        lda #30
+        jsr delay
+        `print hello1
+        `print _1
+        `print hello2
+.macend
+
+        lda #147
+        jsr chrout
+        `greet target1
+        `greet target2
+        `greet target3
+        `greet target4
+        `greet target5
+        `greet target6
+        `greet target7
+        `greet target8
+        `greet target9
+        `greet target10
+        rts
+
+hello1: .byte "HELLO, ",0
+hello2: .byte "!", 13, 0
+
+target1:  .byte "PROGRAMMER", 0
+target2:  .byte "ROOM", 0
+target3:  .byte "BUILDING", 0
+target4:  .byte "NEIGHBORHOOD", 0
+target5:  .byte "CITY", 0
+target6:  .byte "NATION", 0
+target7:  .byte "WORLD", 0
+target8:  .byte "SOLAR SYSTEM", 0
+target9:  .byte "GALAXY", 0
+target10: .byte "UNIVERSE", 0
+
+; DELAY routine.  Takes values from the Accumulator and pauses
+; for that many jiffies (1/60th of a second).
+.scope
+.data
+.space _tmp 1
+.space _target 1
+
+.text
+
+delay:  sta _tmp        ; save argument (rdtim destroys it)
+        jsr rdtim
+        clc
+        adc _tmp        ; add current time to get target
+        sta _target
+*       jsr rdtim
+        cmp _target
+        bmi -           ; Buzz until target reached
+        rts
+.scend
+
+.checkpc $A000
+.data
+.checkpc $D000

<<< PreviousHomeNext >>>
tutor4c.ophUptutor6.oph
\ No newline at end of file diff --git a/site/manual/x493.html b/site/manual/x493.html new file mode 100644 index 0000000..28b3f1b --- /dev/null +++ b/site/manual/x493.html @@ -0,0 +1,266 @@ + +tutor6.oph
Programming with Ophis
<<< PreviousExample ProgramsNext >>>

tutor6.oph

.include "c64-1.oph"
+
+.data
+.org $C000
+.space cache 2
+.text
+
+.macro print
+        lda #<_1
+        ldx #>_1
+        jsr printstr
+.macend
+
+.macro greet
+        lda #30
+        jsr delay
+        `print hello1
+        `print _1
+        `print hello2
+.macend
+
+        ; Save the zero page locations that PRINTSTR uses.
+        lda $10
+        sta cache
+        lda $11
+        sta cache+1
+
+        lda #147
+        jsr chrout
+        `greet target1
+        `greet target2
+        `greet target3
+        `greet target4
+        `greet target5
+        `greet target6
+        `greet target7
+        `greet target8
+        `greet target9
+        `greet target10
+
+        ; Restore the zero page values printstr uses.
+        lda cache
+        sta $10
+        lda cache+1
+        sta $11
+
+        rts
+
+hello1: .byte "HELLO, ",0
+hello2: .byte "!", 13, 0
+
+target1:  .byte "PROGRAMMER", 0
+target2:  .byte "ROOM", 0
+target3:  .byte "BUILDING", 0
+target4:  .byte "NEIGHBORHOOD", 0
+target5:  .byte "CITY", 0
+target6:  .byte "NATION", 0
+target7:  .byte "WORLD", 0
+target8:  .byte "SOLAR SYSTEM", 0
+target9:  .byte "GALAXY", 0
+target10: .byte "UNIVERSE", 0
+
+; DELAY routine.  Takes values from the Accumulator and pauses
+; for that many jiffies (1/60th of a second).
+.scope
+.data
+.space _tmp 1
+.space _target 1
+
+.text
+
+delay:  sta _tmp        ; save argument (rdtim destroys it)
+        jsr rdtim
+        clc
+        adc _tmp        ; add current time to get target
+        sta _target
+*       jsr rdtim
+        cmp _target
+        bmi -           ; Buzz until target reached
+        rts
+.scend
+
+; PRINTSTR routine.  Accumulator stores the low byte of the address,
+; X register stores the high byte.  Destroys the values of $10 and
+; $11.
+
+.scope
+printstr:
+        sta $10
+        stx $11
+        ldy #$00
+_lp:    lda ($10),y
+        beq _done
+        jsr chrout
+        iny
+        bne _lp
+_done:  rts
+.scend
+
+.checkpc $A000
+.data
+.checkpc $D000

<<< PreviousHomeNext >>>
tutor5.ophUpc64-2.oph
\ No newline at end of file diff --git a/site/manual/x497.html b/site/manual/x497.html new file mode 100644 index 0000000..c07873f --- /dev/null +++ b/site/manual/x497.html @@ -0,0 +1,204 @@ + +c64-2.oph
Programming with Ophis
<<< PreviousExample ProgramsNext >>>

c64-2.oph

.word $0801
+.org  $0801
+
+.scope
+        .word _next, 10         ; Next line and current line number
+        .byte $9e," 2064",0     ; SYS 2064
+_next:  .word 0                 ; End of program
+.scend
+
+.advance $0810
+
+.require "kernal.oph"
+
+.data zp
+.org $0002
+
+.text
+
+.scope
+        ; Cache BASIC's zero page at top of available RAM.
+        ldx #$7E
+*       lda $01, x
+        sta $CF81, x
+        dex
+        bne -
+
+        jsr _main
+
+        ; Restore BASIC's zero page and return control.
+
+        ldx #$7E
+*       lda $CF81, x
+        sta $01, x
+        dex
+        bne -
+        rts
+
+_main:
+        ; Program follows...
+.scend

<<< PreviousHomeNext >>>
tutor6.ophUptutor7.oph
\ No newline at end of file diff --git a/site/manual/x501.html b/site/manual/x501.html new file mode 100644 index 0000000..2d51914 --- /dev/null +++ b/site/manual/x501.html @@ -0,0 +1,257 @@ + +tutor7.oph
Programming with Ophis
<<< PreviousExample ProgramsNext >>>

tutor7.oph

.include "c64-2.oph"
+
+.data
+.org $C000
+.text
+
+.macro print
+        lda #<_1
+        ldx #>_1
+        jsr printstr
+.macend
+
+.macro greet
+        lda #30
+        jsr delay
+        `print hello1
+        `print _1
+        `print hello2
+.macend
+
+        lda #147
+        jsr chrout
+        `greet target1
+        `greet target2
+        `greet target3
+        `greet target4
+        `greet target5
+        `greet target6
+        `greet target7
+        `greet target8
+        `greet target9
+        `greet target10
+
+        rts
+
+hello1: .byte "HELLO, ",0
+hello2: .byte "!", 13, 0
+
+target1:  .byte "PROGRAMMER", 0
+target2:  .byte "ROOM", 0
+target3:  .byte "BUILDING", 0
+target4:  .byte "NEIGHBORHOOD", 0
+target5:  .byte "CITY", 0
+target6:  .byte "NATION", 0
+target7:  .byte "WORLD", 0
+target8:  .byte "SOLAR SYSTEM", 0
+target9:  .byte "GALAXY", 0
+target10: .byte "UNIVERSE", 0
+
+; DELAY routine.  Takes values from the Accumulator and pauses
+; for that many jiffies (1/60th of a second).
+.scope
+.data
+.space _tmp 1
+.space _target 1
+
+.text
+
+delay:  sta _tmp        ; save argument (rdtim destroys it)
+        jsr rdtim
+        clc
+        adc _tmp        ; add current time to get target
+        sta _target
+*       jsr rdtim
+        cmp _target
+        bmi -           ; Buzz until target reached
+        rts
+.scend
+
+; PRINTSTR routine.  Accumulator stores the low byte of the address,
+; X register stores the high byte.  Destroys the values of $10 and
+; $11.
+
+.scope
+.data zp
+.space _ptr 2
+.text
+printstr:
+        sta _ptr
+        stx _ptr+1
+        ldy #$00
+_lp:    lda (_ptr),y
+        beq _done
+        jsr chrout
+        iny
+        bne _lp
+_done:  rts
+.scend
+
+.checkpc $A000
+
+.data
+.checkpc $D000
+
+.data zp
+.checkpc $80

<<< PreviousHomeNext >>>
c64-2.ophUpOphis Command Reference
\ No newline at end of file diff --git a/site/manual/x51.html b/site/manual/x51.html new file mode 100644 index 0000000..c45fb2d --- /dev/null +++ b/site/manual/x51.html @@ -0,0 +1,428 @@ + +Producing Commodore 64 programs
Programming with Ophis
<<< PreviousThe basicsNext >>>

Producing Commodore 64 programs

Commodore 64 programs are stored in + the PRG format on disk. Some emulators + (such as CCS64 or VICE) can run PRG + programs directly; others need them to be transferred to + a D64 image first. +

The PRG format is ludicrously simple. It + has two bytes of header data: This is a little-endian number + indicating the starting address. The rest of the file is a + single continuous chunk of data loaded into memory, starting at + that address. BASIC memory starts at memory location 2048, and + that's probably where we'll want to start. +

Well, not quite. We want our program to be callable from BASIC, + so we should have a BASIC program at the start. We guess the + size of a simple one line BASIC program to be about 16 bytes. + Thus, we start our program at memory location 2064 ($0810), and + the BASIC program looks like this: +

10 SYS 2064
+    

We SAVE this program to a file, then + study it in a debugger. It's 15 bytes long: +

1070:0100  01 08 0C 08 0A 00 9E 20-32 30 36 34 00 00 00
+    

The first two bytes are the memory location: $0801. The rest of + the data breaks down as follows: +

Table 1. BASIC program breakdown

Memory LocationsValue
$0801-$08022-byte pointer to the next line of BASIC code ($080C).
$0803-$08042-byte line number ($000A = 10).
$0805Byte code for the SYS command.
$0806-$080AThe rest of the line, which is just the string " 2064".
$080BNull byte, terminating the line.
$080C-$080D2-byte pointer to the next line of BASIC code ($0000 = end of program).

That's 13 bytes. We started at 2049, so we need 2 more bytes of + filler to make our code actually start at location 2064. These + 17 bytes will give us the file format and the BASIC code we need + to have our machine language program run. +

These are just bytes—indistinguishable from any other sort of + data. In Ophis, bytes of data are specified with + the .byte command. We'll also have to tell + Ophis what the program counter should be, so that it knows what + values to assign to our labels. The .org + (origin) command tells Ophis this. Thus, the Ophis code for our + header and linking info is: +

.byte $01, $08, $0C, $08, $0A, $00, $9E, $20
+.byte $32, $30, $36, $34, $00, $00, $00, $00
+.byte $00, $00
+.org $0810
+    

This gets the job done, but it's completely incomprehensible, + and it only uses two directives—not very good for a + tutorial. Here's a more complicated, but much clearer, way of + saying the same thing. +

.word $0801
+.org  $0801
+
+        .word next, 10       ; Next line and current line number
+        .byte $9e," 2064",0  ; SYS 2064
+next:   .word 0              ; End of program
+
+.advance 2064
+    

This code has many advantages over the first. + +

  • It describes better what is actually + happening. The .word directive at the + beginning indicates a 16-bit value stored in the typical + 65xx way (small byte first). This is followed by + an .org statement, so we let the + assembler know right away where everything is supposed to + be. +

  • Instead of hardcoding in the value $080C, we + instead use a label to identify the location it's pointing + to. Ophis will compute the address + of next and put that value in as data. + We also describe the line number in decimal since BASIC + line numbers generally are in decimal. + Labels are defined by putting their name, then a colon, as + seen in the definition of next. +

  • + Instead of putting in the hex codes for the string part of + the BASIC code, we included the string directly. Each + character in the string becomes one byte. +

  • + Instead of adding the buffer ourselves, we + used .advance, which outputs zeros until + the specified address is reached. Attempting + to .advance backwards produces an + assemble-time error. +

  • + It has comments that explain what the data are for. The + semicolon is the comment marker; everything from a semicolon + to the end of the line is ignored. +

+


<<< PreviousHomeNext >>>
The basicsUpRelated commands and options
\ No newline at end of file diff --git a/site/manual/x572.html b/site/manual/x572.html new file mode 100644 index 0000000..796dbc2 --- /dev/null +++ b/site/manual/x572.html @@ -0,0 +1,309 @@ + +Basic arguments
Programming with Ophis
<<< PreviousOphis Command ReferenceNext >>>

Basic arguments

Most arguments are just a number or label. The formats for + these are below. +

Numeric types

  • Hex: $41 (Prefixed with $)

  • Decimal: 65 (No markings)

  • Octal: 0101 (Prefixed with zero)

  • Binary: %01000001 (Prefixed with %)

  • Character: 'A (Prefixed with single quote)

Label types

Normal labels are simply referred to by name. Anonymous + labels may be referenced with strings of - or + signs (the + label - refers to the immediate + previous anonymous label, -- the + one before that, etc., while + + refers to the next anonymous label), and the special + label ^ refers to the program + counter at the start of the current instruction or directive. +

Normal labels are defined by + prefixing a line with the label name and then a colon + (e.g., label:). Anonymous labels + are defined by prefixing a line with an asterisk + (e.g., *). +

Temporary labels are only reachable from inside the + innermost enclosing .scope + statement. They are identical to normal labels in every + way, except that they start with an underscore. +

String types

Strings are enclosed in double quotation marks. Backslashed + characters (including backslashes and double quotes) are + treated literally, so the string "The man said, + \"The \\ character is the backslash.\"" produces + the ASCII sequence for The man said, "The \ + character is the backslash." +

Strings are generally only used as arguments to assembler + directives—usually for filenames + (e.g., .include) but also for string + data (in association with .byte). +

It is legal, though unusual, to attempt to pass a string to + the other data statements. This will produces a series of + words/dwords where all bytes that aren't least-significant + are zero. Endianness and size will match what the directive + itself indicated. +


<<< PreviousHomeNext >>>
Ophis Command ReferenceUpCompound Arguments
\ No newline at end of file diff --git a/site/manual/x620.html b/site/manual/x620.html new file mode 100644 index 0000000..753c8a4 --- /dev/null +++ b/site/manual/x620.html @@ -0,0 +1,212 @@ + +Compound Arguments
Programming with Ophis
<<< PreviousOphis Command ReferenceNext >>>

Compound Arguments

Compound arguments may be built up from simple ones, using the + standard +, -, *, and / operators, which carry the usual + precedence. Also, the unary operators > and <, which + bind more tightly than anything else, provide the high and low + bytes of 16-bit values, respectively. +

Use brackets [ ] instead of parentheses ( ) when grouping + arithmetic operations, as the parentheses are needed for the + indirect addressing modes. +

Examples: +

  • $D000 evaluates to $D000

  • $D000+32 evaluates to $D020

  • $D000+$20 also evaluates to $D020

  • <$D000+32 evaluates to $20

  • >$D000+32 evaluates to $F0

  • >[$D000+32] evaluates to $D0

  • >$D000-275 evaluates to $CE


<<< PreviousHomeNext >>>
Basic argumentsUpMemory Model
\ No newline at end of file diff --git a/site/manual/x647.html b/site/manual/x647.html new file mode 100644 index 0000000..61ac742 --- /dev/null +++ b/site/manual/x647.html @@ -0,0 +1,373 @@ + +Memory Model
Programming with Ophis
<<< PreviousOphis Command ReferenceNext >>>

Memory Model

In order to properly compute the locations of labels and the + like, Ophis must keep track of where assembled code will + actually be sitting in memory, and it strives to do this in a + way that is independent both of the target file and of the + target machine. +

Basic PC tracking

The primary technique Ophis uses is program counter + tracking. As it assembles the code, it keeps + track of a virtual program counter, and uses that to + determine where the labels should go. +

In the absence of an .org directive, it + assumes a starting PC of zero. .org + is a simple directive, setting the PC to the value + that .org specifies. In the simplest + case, one .org directive appears at the + beginning of the code and sets the location for the rest of + the code, which is one contiguous block. +

Basic Segmentation simulation

However, this isn't always practical. Often one wishes to + have a region of memory reserved for data without actually + mapping that memory to the file. On some systems (typically + cartridge-based systems where ROM and RAM are seperate, and + the target file only specifies the ROM image) this is + mandatory. In order to access these variables symbolically, + it's necessary to put the values into the label lookup + table. +

It is possible, but inconvenient, to do this + with .alias, assigning a specific + memory location to each variable. This requires careful + coordination through your code, and makes creating reusable + libraries all but impossible. +

A better approach is to reserve a section at the beginning + or end of your program, put an .org + directive in, then use the .space + directive to divide up the data area. This is still a bit + inconvenient, though, because all variables must be + assigned all at once. What we'd really like is to keep + multiple PC counters, one for data and one for code. +

The .text + and .data directives do this. Each + has its own PC that starts at zero, and you can switch + between the two at any point without corrupting the other's + counter. In this way each function can have + a .data section (filled + with .space commands) and + a .text section (that contains the + actual code). This lets our library routines be almost + completely self-contained - we can have one source file + that could be .included by multiple + projects without getting in anything's way. +

However, any given program may have its own ideas about + where data and code go, and it's good to ensure with + a .checkpc at the end of your code + that you haven't accidentally overwritten code with data or + vice versa. If your .data + segment did start at zero, it's + probably wise to make sure you aren't smashing the stack, + too (which is sitting in the region from $0100 to + $01FF). +

If you write code with no segment-defining statements in + it, the default segment + is text. +

The data segment is designed only + for organizing labels. As such, errors will be flagged if + you attempt to actually output information into + a data segment. +

General Segmentation Simulation

One text and data segment each is usually sufficient, but + for the cases where it is not, Ophis allows for user-defined + segments. Putting a label + after .text + or .data produces a new segment with + the specified name. +

Say, for example, that we have access to the RAM at the low + end of the address space, but want to reserve the zero page + for truly critical variables, and use the rest of RAM for + everything else. Let's also assume that this is a 6510 + chip, and locations $00 and $01 are reserved for the I/O + port. We could start our program off with: +

.data
+.org $200
+.data zp
+.org $2
+.text
+.org $800

And, to be safe, we would probably want to end our code + with checks to make sure we aren't overwriting anything: +

.data
+.checkpc $800
+.data zp
+.checkpc $100

<<< PreviousHomeNext >>>
Compound ArgumentsUpMacros
\ No newline at end of file diff --git a/site/manual/x692.html b/site/manual/x692.html new file mode 100644 index 0000000..263921a --- /dev/null +++ b/site/manual/x692.html @@ -0,0 +1,358 @@ + +Macros
Programming with Ophis
<<< PreviousOphis Command ReferenceNext >>>

Macros

Assembly language is a powerful tool—however, there are + many tasks that need to be done repeatedly, and with + mind-numbing minor modifications. Ophis includes a facility + for macros to allow this. Ophis macros + are very similar in form to function calls in higher level + languages. +

Defining Macros

Macros are defined with the .macro + and .macend commands. Here's a + simple one that will clear the screen on a Commodore + 64: +

.macro clr'screen
+    lda #147
+    jsr $FFD2
+.macend

Invoking Macros

To invoke a macro, either use + the .invoke command or backquote the + name of the routine. The previous macro may be expanded + out in either of two ways, at any point in the + source: +

.invoke clr'screen

or

`clr'screen

will work equally well.

Passing Arguments to Macros

Macros may take arguments. The arguments to a macro are + all of the "word" type, though byte values may + be passed and used as bytes as well. The first argument in + an invocation is bound to the label + _1, the second + to _2, and so on. Here's a macro + for storing a 16-bit value into a word pointer: +

.macro store16   ; `store16 dest, src
+	lda #<_2
+	sta _1
+	lda #>_2
+	sta _1+1
+.macend

Macro arguments behave, for the most part, as if they were + defined by .alias + commands in the calling context. + (They differ in that they will not produce duplicate-label + errors if those names already exist in the calling scope, + and in that they disappear after the call is + completed.) +

Features and Restrictions of the Ophis Macro Model

Unlike most macro systems (which do textual replacement), + Ophis macros evaluate their arguments and bind them into the + symbol table as temporary labels. This produces some + benefits, but it also puts some restrictions on what kinds of + macros may be defined. +

The primary benefit of this "expand-via-binding" + discipline is that there are no surprises in the semantics. + The expression _1+1 in the macro above + will always evaluate to one more than the value that was + passed as the first argument, even if that first argument is + some immensely complex expression that an + expand-via-substitution method may accidentally + mangle. +

The primary disadvantage of the expand-via-binding + discipline is that only fixed numbers of words and bytes + may be passed. A substitution-based system could define a + macro including the line LDA _1 and + accept as arguments both $C000 + (which would put the value of memory location $C000 into + the accumulator) and #$40 (which + would put the immediate value $40 into the accumulator). + If you really need this kind of + behavior, a run a C preprocessor over your Ophis source, + and use #define to your heart's + content. +


<<< PreviousHomeNext >>>
Memory ModelUpAssembler directives
\ No newline at end of file diff --git a/site/manual/x732.html b/site/manual/x732.html new file mode 100644 index 0000000..513e1fa --- /dev/null +++ b/site/manual/x732.html @@ -0,0 +1,595 @@ + +Assembler directives
Programming with Ophis
<<< PreviousOphis Command Reference 

Assembler directives

Assembler directives are all instructions to the assembler + that are not actual instructions. Ophis's set of directives + follow. +

  • .advance address: + Forces the program counter to + be address. Unlike + the .org + directive, .advance outputs zeroes until the + program counter reaches a specified address. Attempting + to .advance to a point behind the current + program counter is an assemble-time error.

  • .alias label value: The + .alias directive assigns an arbitrary value to a label. This + value may be an arbitrary argument, but cannot reference any + label that has not already been defined (this prevents + recursive label dependencies).

  • .byte arg [ , arg, ... ]: + Specifies a series of arguments, which are evaluated, and + strings, which are included as raw ASCII data. The final + results of these arguments must be one byte in size. Seperate + constants are seperated by comments.

  • .checkpc address: Ensures that the + program counter is less than or equal to the address + specified, and emits an assemble-time error if it is not. + This produces no code in the final binary - it is there to + ensure that linking a large amount of data together does not + overstep memory boundaries.

  • .data [label]: Sets the segment to + the segment name specified and disallows output. If no label + is given, switches to the default data segment.

  • .incbin filename: Inserts the + contents of the file specified as binary data. Use it to + include graphics information, precompiled code, or other + non-assembler data.

  • .include filename: Includes the + entirety of the file specified at that point in the program. + Use this to order your final sources.

  • .org address: Sets the program + counter to the address specified. This does not emit any + code in and of itself, nor does it overwrite anything that + previously existed. If you wish to jump ahead in memory, + use .advance.

  • .require filename: Includes the entirety + of the file specified at that point in the program. Unlike .include, + however, code included with .require will only be inserted once. + The .require directive is useful for ensuring that certain code libraries + are somewhere in the final binary. They are also very useful for guaranteeing that + macro libraries are available.

  • .space label size: This + directive is used to organize global variables. It defines the + label specified to be at the current location of the program + counter, and then advances the program counter size + steps ahead. No actual code is produced. This is equivalent + to label: .org ^+size.

  • .text [label]: Sets the segment to + the segment name specified and allows output. If no label is + given, switches to the default text segment.

  • .word arg [ , arg, ... ]: + Like .byte, but values are all treated as two-byte + values and stored low-end first (as is the 6502's wont). Use + this to create jump tables (an unadorned label will evaluate + to that label's location) or otherwise store 16-bit + data.

  • .dword arg [ , arg, ...]: + Like .word, but for 32-bit values.

  • .wordbe arg [ , arg, ...]: + Like .word, but stores the value in a big-endian format (high byte first).

  • .dwordbe arg [ , arg, ...]: + Like .dword, but stores the value high byte first.

  • .scope: Starts a new scope block. Labels + that begin with an underscore are only reachable from within + their innermost enclosing .scope statement.

  • .scend: Ends a scope block. Makes the + temporary labels defined since the last .scope + statement unreachable, and permits them to be redefined in a + new scope.

  • .macro name: Begins a macro + definition block. This is a scope block that can be inlined + at arbitrary points with .invoke. Arguments to the + macro will be bound to temporary labels with names like + _1, _2, etc.

  • .macend: Ends a macro definition + block.

  • .invoke label [argument [, + argument ...]]: invokes (inlines) the specified + macro, binding the values of the arguments to the ones the + macro definition intends to read. A shorthand for .invoke + is the name of the macro to invoke, backquoted.

The following directives are deprecated, added for + compatibility with the old Perl + assembler P65. Use + the -d option to Ophis to enable + them. +

  • .ascii: Equivalent to .byte, + which didn't used to be able to handle strings.

  • .code: Equivalent to .text.

  • .segment: Equivalent to .text, + from when there was no distinction between .text and + .data segments.

  • .address: Equivalent to + .word.

  • .link filename address: Assembles + the file specified as if it began at the address specified. + This is generally for use in "top-level" files, where there + is not necessarily a one-to-one correspondence between file + position and memory position. This is equivalent to an + .org directive followed by an .include. + With the introduction of the .org directive this one is + less useful (and in most cases, any .org statement + you use will actually be at the top of the .included + file).

\ No newline at end of file diff --git a/site/ophismanual.pdf b/site/ophismanual.pdf new file mode 100644 index 0000000..a399c66 --- /dev/null +++ b/site/ophismanual.pdf @@ -0,0 +1,7725 @@ +%PDF-1.4 +1 0 obj +<< /S /GoTo /D (1.0) >> +endobj +4 0 obj +(Programming with Ophis) +endobj +5 0 obj +<< /S /GoTo /D (2.0) >> +endobj +8 0 obj +(Table of Contents) +endobj +9 0 obj +<< /S /GoTo /D (3.0) >> +endobj +12 0 obj +(Preface) +endobj +13 0 obj +<< /S /GoTo /D (3.1.1) >> +endobj +16 0 obj +(Why Ophis?) +endobj +17 0 obj +<< /S /GoTo /D (3.2.1) >> +endobj +20 0 obj +(Getting a copy of Ophis) +endobj +21 0 obj +<< /S /GoTo /D (4.0) >> +endobj +24 0 obj +(Chapter 1. The basics) +endobj +25 0 obj +<< /S /GoTo /D (4.3.1) >> +endobj +28 0 obj +(A note on numeric notation) +endobj +29 0 obj +<< /S /GoTo /D (4.4.1) >> +endobj +32 0 obj +(Producing Commodore 64 programs) +endobj +33 0 obj +<< /S /GoTo /D (4.5.1) >> +endobj +36 0 obj +(Related commands and options) +endobj +37 0 obj +<< /S /GoTo /D (4.6.1) >> +endobj +40 0 obj +(Writing the actual code) +endobj +41 0 obj +<< /S /GoTo /D (4.7.1) >> +endobj +44 0 obj +(Assembling the code) +endobj +45 0 obj +<< /S /GoTo /D (5.0) >> +endobj +48 0 obj +(Chapter 2. Labels and aliases) +endobj +49 0 obj +<< /S /GoTo /D (5.8.1) >> +endobj +52 0 obj +(Temporary labels) +endobj +53 0 obj +<< /S /GoTo /D (5.9.1) >> +endobj +56 0 obj +(Anonymous labels) +endobj +57 0 obj +<< /S /GoTo /D (5.10.1) >> +endobj +60 0 obj +(Aliasing) +endobj +61 0 obj +<< /S /GoTo /D (6.0) >> +endobj +64 0 obj +(Chapter 3. Headers, Libraries, and Macros) +endobj +65 0 obj +<< /S /GoTo /D (6.11.1) >> +endobj +68 0 obj +(Header files and libraries) +endobj +69 0 obj +<< /S /GoTo /D (6.12.1) >> +endobj +72 0 obj +(Macros) +endobj +73 0 obj +<< /S /GoTo /D (6.12.1.2) >> +endobj +76 0 obj +(Macro definitions) +endobj +77 0 obj +<< /S /GoTo /D (6.12.2.2) >> +endobj +80 0 obj +(Macro invocations) +endobj +81 0 obj +<< /S /GoTo /D (6.13.1) >> +endobj +84 0 obj +(Example code) +endobj +85 0 obj +<< /S /GoTo /D (7.0) >> +endobj +88 0 obj +(Chapter 4. Character maps) +endobj +89 0 obj +<< /S /GoTo /D (8.0) >> +endobj +92 0 obj +(Chapter 5. Local variables and memory segments) +endobj +93 0 obj +<< /S /GoTo /D (9.0) >> +endobj +96 0 obj +(Chapter 6. Expressions) +endobj +97 0 obj +<< /S /GoTo /D (10.0) >> +endobj +100 0 obj +(Chapter 7. Advanced Memory Segments) +endobj +101 0 obj +<< /S /GoTo /D (10.14.1) >> +endobj +104 0 obj +(The Problem) +endobj +105 0 obj +<< /S /GoTo /D (10.15.1) >> +endobj +108 0 obj +(The Solution) +endobj +109 0 obj +<< /S /GoTo /D (10.16.1) >> +endobj +112 0 obj +(Where to go from here) +endobj +113 0 obj +<< /S /GoTo /D (11.0) >> +endobj +116 0 obj +(Appendix A. Example Programs) +endobj +117 0 obj +<< /S /GoTo /D (11.17.1) >> +endobj +120 0 obj +(tutor1.oph) +endobj +121 0 obj +<< /S /GoTo /D (11.18.1) >> +endobj +124 0 obj +(tutor2.oph) +endobj +125 0 obj +<< /S /GoTo /D (11.19.1) >> +endobj +128 0 obj +(c641.oph) +endobj +129 0 obj +<< /S /GoTo /D (11.20.1) >> +endobj +132 0 obj +(kernal.oph) +endobj +133 0 obj +<< /S /GoTo /D (11.21.1) >> +endobj +136 0 obj +(tutor3.oph) +endobj +137 0 obj +<< /S /GoTo /D (11.22.1) >> +endobj +140 0 obj +(tutor4a.oph) +endobj +141 0 obj +<< /S /GoTo /D (11.23.1) >> +endobj +144 0 obj +(tutor4b.oph) +endobj +145 0 obj +<< /S /GoTo /D (11.24.1) >> +endobj +148 0 obj +(tutor4c.oph) +endobj +149 0 obj +<< /S /GoTo /D (11.25.1) >> +endobj +152 0 obj +(tutor5.oph) +endobj +153 0 obj +<< /S /GoTo /D (11.26.1) >> +endobj +156 0 obj +(tutor6.oph) +endobj +157 0 obj +<< /S /GoTo /D (11.27.1) >> +endobj +160 0 obj +(c642.oph) +endobj +161 0 obj +<< /S /GoTo /D (11.28.1) >> +endobj +164 0 obj +(tutor7.oph) +endobj +165 0 obj +<< /S /GoTo /D (12.0) >> +endobj +168 0 obj +(Appendix B. Ophis Command Reference) +endobj +169 0 obj +<< /S /GoTo /D (12.29.1) >> +endobj +172 0 obj +(Command Modes) +endobj +173 0 obj +<< /S /GoTo /D (12.30.1) >> +endobj +176 0 obj +(Basic arguments) +endobj +177 0 obj +<< /S /GoTo /D (12.30.3.2) >> +endobj +180 0 obj +(Numeric types) +endobj +181 0 obj +<< /S /GoTo /D (12.30.4.2) >> +endobj +184 0 obj +(Label types) +endobj +185 0 obj +<< /S /GoTo /D (12.30.5.2) >> +endobj +188 0 obj +(String types) +endobj +189 0 obj +<< /S /GoTo /D (12.31.1) >> +endobj +192 0 obj +(Compound Arguments) +endobj +193 0 obj +<< /S /GoTo /D (12.32.1) >> +endobj +196 0 obj +(Memory Model) +endobj +197 0 obj +<< /S /GoTo /D (12.32.6.2) >> +endobj +200 0 obj +(Basic PC tracking) +endobj +201 0 obj +<< /S /GoTo /D (12.32.7.2) >> +endobj +204 0 obj +(Basic Segmentation simulation) +endobj +205 0 obj +<< /S /GoTo /D (12.32.8.2) >> +endobj +208 0 obj +(General Segmentation Simulation) +endobj +209 0 obj +<< /S /GoTo /D (12.33.1) >> +endobj +212 0 obj +(Macros) +endobj +213 0 obj +<< /S /GoTo /D (12.33.9.2) >> +endobj +216 0 obj +(Defining Macros) +endobj +217 0 obj +<< /S /GoTo /D (12.33.10.2) >> +endobj +220 0 obj +(Invoking Macros) +endobj +221 0 obj +<< /S /GoTo /D (12.33.11.2) >> +endobj +224 0 obj +(Passing Arguments to Macros) +endobj +225 0 obj +<< /S /GoTo /D (12.33.12.2) >> +endobj +228 0 obj +(Features and Restrictions of the Ophis Macro Model) +endobj +229 0 obj +<< /S /GoTo /D (12.34.1) >> +endobj +232 0 obj +(Assembler directives) +endobj +233 0 obj +<< /S /GoTo /D [234 0 R /Fit ] >> +endobj +236 0 obj << +/Length 197 +/Filter /FlateDecode +>> +stream +xڍ=k@ w +c @hB NnK AWzJ0ZXE{gF9Z6-+ 2Ud A(Ȑ6B潟qns͗a^?Yojr썦\ h []dpT2|AuuDq_:Eendstream +endobj +234 0 obj << +/Type /Page +/Contents 236 0 R +/Resources 235 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 243 0 R +>> endobj +237 0 obj << +/D [234 0 R /XYZ 95.6414 729.2652 null] +>> endobj +238 0 obj << +/D [234 0 R /XYZ 95.6414 716.3138 null] +>> endobj +239 0 obj << +/D [234 0 R /XYZ 95.6414 716.3138 null] +>> endobj +2 0 obj << +/D [234 0 R /XYZ 400.0898 704.6091 null] +>> endobj +235 0 obj << +/Font << /F23 242 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +246 0 obj << +/Length 213 +/Filter /FlateDecode +>> +stream +xڍ;O@ +pvAJۀ!-49Uŏ>fAYb/ܛ|a4{5U5Եd\ XQd6,ߞ˧*}ڴC)zui_Ev+b`|8[nj*Ҫk?.I3is|…1gv; |S$DV?]]^k#mы'kWendstream +endobj +245 0 obj << +/Type /Page +/Contents 246 0 R +/Resources 244 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 243 0 R +>> endobj +247 0 obj << +/D [245 0 R /XYZ 95.6414 729.2652 null] +>> endobj +244 0 obj << +/Font << /F23 242 0 R /F28 250 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +253 0 obj << +/Length 56327 +/Filter /FlateDecode +>> +stream +xڔͮdWzmSYplj! 5 ]X-@ _7TY Yޑg/7fAbclN&Ofqo|8s;w??/a=s>Χ}//wyO| ??yyO~oo??|/G|=~s}SC=P7z>~O.uwzaw^>{;-T܇ڕzNq䅺!?K*_OܩRzNݐv%(wk};]ϡ|&ynȏ~4ʝ!,?ҏ}FS7۹zN})?sNR79o|=rnȗsڟSzNݐ/ox?4ʝZ~X~4 uC1i;uC~~0v׷S~w|&ynȏ˗6~0/orI?qNݐ/|M(wkiy50a^v|y53Q j_Ʉè6kyP=NP7O?qNݐ_vߢaTs|]n3_O۩\g>NP7˫4ʝ!_^~4ʝ!_i;kP>NP79\ҏ}FS7o zNݐ/~?4ʝ!_[Qqw8MBݐ-i;uC=uFS7_rzN}-[9"f&ynȗs:8rn~4ʝ!_-QvcI^~N?qNݐvs(w{]}=rz piW|y;[*_OܩoTFS79zN}-?,o~4 uC(w|y;}(w|y;}Qqwҏ}&ynϻ+cQ m|yKi;uC~ݮc_Oܩ\>NP79ӏ}FS79]ҏ}FS79^SaT5ir|y5[(w;ӟZè6şzN}-w[?c4 uC~?Ϣ#qC>Q ^._Oܩ彤BI bNi4!_^~4ʝ!_^Mez|m-ofN?q܅!?.K(wۿ]|=rni;_o>NP7۹ҏ}FS798rnȗs?(wk}y;{$/ v6Q vcQ vc_Oܩ/aw{iW;|=rnȯtOi;uC~ߝc_Oܩ\.>NP79kbFS79/FS79}=rsH:MBݐ/og'Q uvO:rn߾ǾFS_O>i;5Nܩ\>Nܩ\5NܩO>NP79NܩANܩ.ǾFS_/٧b&ynϻ= ttNݐ_w4i;uC~oc_OܩvM&ynȗ8jcnWsNFS7˫9|=rߖW&37˛9iN۩YNܩcaTZB]nuNݐ_wt 3ژ#f4Z~_^%Mst䅺!_^M?è6yy3tMv|y5Ƿ3_Oܩ/jXA^:GQ v?+p?߶mw }x(4CN˯wN_˃m_m~wzӱǣ_Gy<ߖ?8ow>(M'9#܊/h+r;ܩ}䖹Gjcv-T.T2"7;2@mL2"7p;"H>#^^erEn w*Dn\ȝ +[&WrBg "L N-+rS!r@T2"7;"H>#^^erEn w*Dn\ȝ +[&WrBg "L N-+rS!r@T"zyBܩerEn w*Dn\ȝ +["ZyBܩerEn w*Dn\ȝ +[$[//T2"7;"L N-+rS!r3r +[&WrBܩerEn w*Dn|FnP!r@T2"7;2@mL"zwBܩ}䖹GjcB䖩۩EBm#LFn H-+rS!r@>r܊z3!rԊT2"7;2@mL"zwBܩerEn w*Dn\ȝ +[$[//T2"7;"L N-+rS!r3r +[&WrBܩerEn w*Dn)rk +[&WrBܩerEn w*Dn|FnP!r@T2"7;"L N-ȭ*Dn\ȝ +[&WrBܩEB-+rS!r@T2"7;"H>#^^erEn w*Dn\ȝ +[&WrBg "L N-+rS!r@T"zy[ [VnBܩ}jgB䖩۩erEn wjeژEB-+rS-s Ƅ-S+rS!r3rGn{Dn6&DnZ +[&WrBȟ"V^erEn w*DnM&r;ysܚz #iw8,Zm{<?|k6?o''o mGsGo/˃ܩ\(w*3 w*#B|&\N|&\N|&\N|$s^^0˃ܩ0˃ܩ0˃ܩ0OOsV^0˃ܩ0˃ܩ0˃ܩ0s. \sy;\sy;\sy;|{y\>k.r\>k.r\>k.r\>Ϲ|//TgrATgrA~.\Ƅ|s]0˃ܩ\>s< sL< +sH>P۹|^ H|&\N|&\N[s^LgjTgrA~.\Ƅ|s]0˃ܩ0˃ܩ0˃ܩ0s. \sy;\sy;\sy;|{y\>k.r\>k.r\>k.r\>?[y\>k.r\>k.r\>k.r\>Ϲ|//TgrATgrATgrATG9 +sL<ȝ +sL<ȝ +sL<ȝ +sH>Pa.5Sa.5Sa.5Sa.\*3 w*3 w*3 w*#B|&\N|&\N|&\N|$s^^\>s< sL< +sL<ȝ#ڙ0Ԛ˃۩0˃ܩ\>s< sH=Pa.5S|syPZsyp;|{ys=6&3v*3 w*\W*3 w*aw:sj}w헏1k~ sy=?v1yz蜎={/O~:_q~~˗a{3sF +Q mw;|=r-$/ vcQ ewx 32aTs|]NgFS_ˏ~4 uC~]͜ژ\.g>N۩՜鏵qNݸpjy50aqej]nv|8r|eq]u 4 . N//P.Ժ NK"䫗*\uȝ +|er]r%_\|ܩpW$|BK2.SᒯLK@T+/;. NK"{yBU-ܩpW&%_ w*T˙\2ȝ +r$r//T3e;LjNj9ZSZZ +r&W rBU-ܩP-grU w*TˉZn +r&W rBU-ܩP-grU w*Tˑ|V˽PZ䪖AT3e;LjNj9j*T˙\2ȝ +r&W rBU-ܩP-GY-Bj9ZSZ䪖AԾZܣZ1ZԳZ݅ +r&W rr2 rV nBg 3Z-#LjNj9ZSj9rZ΄j9SZSZ䪖AԾZܣZ1ZԳZ݅ +r&W rBU-ܩP-grU w*Tˑ|V˽PZ䪖AT3e;LjNj9j*T˙\2ȝ +r&W rBU-ܩP-'jW*T˙\2ȝ +r&W rBU-ܩP-GY-Bj9ZSZ䪖AT3e;H>^^P-grU w*T˙\2ȝ +r&W rBg LjNj9ZSZ䪖AT#{yBU-ܩP-grU w*T˙\2ȝ +r$r//T3e;LjNj9ZSZZW˙{Tˠ6&T˙Z2 +r&W rrVܫ rV nBU-ܩ}G jcBgܻ LjN=ePLjNj9jj_-gQ-ژP-gjUv*T˙\2ȝ +r"[yBU-ܩP-g4ʝ!}QԯF}l{q{pĖ_;&6=߳__~Y??~??b//{[~^}~~f/⁺p//T grAT grAT grAT 'p+T grAT grAT grAT G +{L0ȝ +{L0ȝ +{L0ȝ +{H>½Pa/ɵSa/ɵSa/ɵSa/^*3 w*3 wjc/ jc^8RϽp.T grA~/^Ƅp^Np${^^^8S{a$^8k/ j^8k/ r{ȭpv&3v*3 wjc/ jc^8RϽp.T grAT grAT grAT G +{L0ȝ +{L0ȝ +{L0ȝ +{H>½Pa/ɵSa/ɵSa/ɵSa/ȟ­Ra/ɵSa/ɵSa/ɵSa/^*3 w*3 w*3 w*# Bp&^Np&^Np&^Np${^^ ܩ ܩ ܩs/ ™\{a;™\{a;™\{a;‘|{y^8k/ r^8k/ r^8k/ r^8Ͻp//~/^Ƅp^Np&^N‘[{^L gjT grA~/^Ƅp{] ܩ^8s0 {L0 +{H>½Pp{aP™Z{ap;™\{a;‰i/+™\{a;™\{a;™\{a;y//o>^vˉǃ凿}/~ӗ×b_ϿZou8|;]6OCoc6Q}neԚ ȬQo6& "E٘(qQHiQˢVLEf͊z1QQ$ȫAQ/6&̉\fg[ȻNz "vDט"fcDQ5""Cؘ0fcˡHy}Z3a5ƄOdΧ7V>Y#lL$i΄}Odּ7=Y۞lLXDf {z1a֓窧5;6=YlLDfyz1a5Ƅ)ObK~nj~$ˆ'jӋ ȬOo6f?IZ^#v'jӋ ÝȬNo6fډc{?axb;:Ysl~V~$R'jӋ 39YlLeNg.LDfrz1aƄENd 78㕿}@sqd>_~/?ߖ?Z_߹pCus=ݷ8ۉO>7NtN No' +N,ۉܩ2ȝ +N,ۉܩ"vbPۉer};1;X&׷Sۉer@TE9 +SLȝ +kLȝ2Xژs׻ f\?;_e11aSaj;Ěک0Zܩ0rk ث sL= +LI ȝڏ3Xژ sػ \@;ց\@;\ A;6|{yL0k'rR0k*rX0k-r^0`//T frmATX frATfr-AT&`+TfrATXfrMATfrATF9$ +SL-!ȝ +kL9!ȝ +LE!ȝ +H>GPaVɵ+SaY5-Sa\ɵ.Sa_*L 36 w* 3f w* 3 w*l #Ba&Na&Na&Na$^^0=ܩ>ܩ0@Z ܩAs !fC1a5ESaɵFS=b W;&ZDp;V\D;&fL1a8w*3 wjPcjcH1SknN1ϡb//~VƄb\Nb&bNb"-Jb&nNb&tNb&zN}ȏfe! DZǣ۷~w};~OO?e˕1y1۸zx!߾S>}xz;6i%2zNݐv/.|=rnȗ䲏?4ʝZ>i|y;/SzNݐ/oxL?qNݐ3SH> +Wgr]1r\Wܩpx& w*\1ȟo +Wgr]1r\Mȝ +M@&WrBg L&N& S j@Th"lzyBܩdr5 w*4\Mȝ +M@$M@//Th2;L&N훀=PH=]dr5 wjdژdj5v*4|6P& SM? j@Th2;o"^Lh2p;L&N훀=PH=]dr5 w*4\Mȝ +M@&WrBg L&N& S j@Th"lzyBܩdr5 w*4\Mȝ +M@"jZyBܩdr5 w*4\Mȝ +M@$M@//Th2;L&N& S +M@&WrBܩdr5 w*4|6P j@Th2;L&N& &*4\Mȝ +M@&WrBܩDB& S j@Th2;H>^^}GjcB۩dr5 wjDn5ڙdj5v*4\Mȝ7{46&4z6P j@Ծ ܣ 1 jTh"lzyM@M M@VnBܩ$&W*4\Mȝ +M@&WrBܩi hwp1cG~~I `>!^_$~ؼHxݿDsT˟=,?z4ʝ!1Q mvOi;uCF|$wj~dr /># S#NӏP>;O?2j~~ܩ}GArG(ɝڧ\ O?BH?H># S#NӏH>ӏ^^}GArG(ɝڧ|$wj~dr /># S#NӏP>;O?2j~~ܩ}GArG(ɝڧ\ O?BH?H># S#t٧Z O?BH?H6kAjcGڧ\ K?B{A># S#Nmӏ=P;O?BH?># S#t٧Z O?BH?H># S#NӏLڧ|$wj~~ܩ}GArG&WBӏP>;O?BH?H># S#Wj~~ܩ}GArG(ɝڧ\ O?BH?H># S#NӏLڧ|$wj~~ܩ}GArG&WBӏP>;O?BH?H># S#+yG(ɝڧ|$wj~~ܩ}ɕ~P#NӏP>;O?BH?H>J?@^mӏP=r;O?BH?H6#3#TNӏP>;M?B~ژ}~P#Nmӏн6f~~۩}ɕ~P#t٧zvj~~ܩ}g+O?BH?H># S#Nӏt/>v|ڝ&/Ǔ.zLS{<ӟ>z /?ӏ~[ن./~yS-_N,N?N DZO\?~x]?2zNݐ_vC~?jcnoˏCj3I^\TFS79ҏ}FS79}=rnF/ +}Y&W_rB_՗ܩЗere w*e\}ȝ +}Y$}Y//T22;L N,/S// +}Y&W_rB_՗ܩЗere w*e|eP/@T22;L N,?eR/@T22;L N,Ͼ*e\}ȝ +}Y&W_rB_՗ܩЗEٗB,/S/@T22;H>^^Зere w*e\}ȝe{e6&ezeP/@Ծ/ܣ/1/T"zy}Y^2$B_՗کЗere wjߗEneڙЗejev*e\}ȝe{e6&ezeP/@T22;L N,Ͼ*e\}ȝ +}Y&W_rB_՗ܩЗEٗB,/S/@T22;DԗJ,/S/@T22;H>^^Зere w*e\}ȝ +}Y&W_rB_g_ L N,/S/@T"zyB_՗ܩЗere w*e\}ȝ +}Y$}Y//T22;L N,/S// +}Y&W_rB_՗ܩЗere w*e|eP,s Ƅ,S/S/@Ծ/z3/T22;2@mL"zwB_՗ܩ}_G_jcB_՗۩ЗEٗB=2PL N,/S/KO}Y+T22;L N,/Sv_4ZW _B` c>/~ޫSRv O.ͨLS + ^^^8erN w*N\ȝ +S&WrB8ܩ8E8B)+pS!p +@T2';H>^^8erN w*N\ȝ +S&WrBg L N)+pS!p +@TS+L N)+pS!p +@T" zyB8ܩ8erN w*N\ȝ +S$S//T2';L N)+pS!p3p +S&WrB8ܩ}GjcBgԻ L N='PL N)j8e5pG"NX +S&WrSVԫ SVnB8ܩ}GjcBgԻ L N)+pS!p +@T" zyB8ܩ8erN w*N\ȝ +S$S//T2';L N)+pS!pJOS+T2';L N)+pS!p3p +S&WrB8ܩ8erN w*N|NP!p +@T2';L N)*N\ȝ +S&WrB8ܩ8E8B)+pS!p +@T2';H>^^8erN w*N\ȝ +S&WrBg 2@mL2'p;L NȭW;L N)+pS)s Ƅ)Rw*N\ȝN{N6&NZ +S$S//>p#p1!p +T2';D8J)+pS!p +@T2';zNpP4=oyӂ9?d/?׭if>C!uȝ +O&WrBɕܩDB'+S!|@T|22;2LN'̧*d>\ȝ +O&WrBɕܩDB'+S!|@T|22;2H>3^^dre> w*d>\ȝ +O&WrBȟ2V^dre> w*d>\ȝ +O&WrBg 2LN'+S!|@T|"|zyBɕܩdre> w*d>\ȝ +O$O//T|22;2LN3=2P2H=3]dre> wjdژdje>v*d>|f>P'S?!|@T|22;|"2^L|22p;2LN3=2P2H=3]dre> w*d>\ȝ +O&WrBg 2LN'+S!|@T|"|zyBɕܩdre> w*d>\ȝ +O"|ZyBɕܩdre> w*d>\ȝ +O$O//T|22;2LN'+S!3 +O&WrBɕܩdre> w*d>|f>P!|@T|22;2LN'̧*d>\ȝ +O&WrBɕܩDB'+S!|@T|22;2H>3^^}擹GjcB擩۩dre> wjDne>ڙdje>v*d>\ȝg>{d>6&d>zf>P!|@>#1!|T|"|zyO OVnBɕܩ$̧W*d>\ȝ +O&WrBɕܩ4ߟOcW|ƱO?~_\+<]_^^%grE w*Də\Q2ȝ +Qr&W rBg L(N(9+JS!J䊒AT3d;H>^^%grE w*Də\Q2ȝ +Qr&W rBg L(N(9+JS!J䊒AT#{yB%ܩ%grE w*Də\Q2ȝ +Qr"[yB%ܩ%grE w*Də\Q2ȝ +Qr$Qr//T3d;L(N(9+JS!J3J +Qr&W rB%ܩ%grE w*Dɑ|FɽP!J䊒AT3d;3AmL#{wB%ܩ}G jcB%۩%G%BmLF H(9+JS!J䊒A>J܊{3!JԊT3d;3AmL#{wB%ܩ%grE w*Də\Q2ȝ +Qr$Qr//T3d;L(N(9+JS!J3J +Qr&W rB%ܩ%grE w*Dɉ)Jn +Qr&W rB%ܩ%grE w*Dɑ|FɽP!J䊒AT3d;L(N(9(*Də\Q2ȝ +Qr&W rB%ܩ%G%B(9+JS!J䊒AT3d;H>^^%grE w*Də\Q2ȝ +Qr&W rBg L(N(9+JS!J䊒AT#{yQrQ2 QrV nB%ܩ}%jgB%۩%grE wj%g%ژ%G%B(9+JS(9s(Ƅ(9S+JS!J3JGə{Dɠ6&DəZQ2 +Qr&W rBȟV^%grE w*Də\Q2ȝ +Qr&W rB$ߝn>Ӈpz%/פ߿dsөǃvW?/?OyO~LX>=@o7Obs&꦳ w*Lg3 w*LgtW*Lg3 w*Lg3 w*Lg3 w*Lg#Bl&tNl&tNl&tNl$^^0΂ܩ0΂ܩ0΂ܩ0s: \Y;\Y;f11a:tw*Lg3 wj?c: jct6Sk: nt6l//v:,?a:5Sa:5SltW;ZYp;\Y;f11a:tw*Lg3 w*Lg3 w*Lg3 w*Lg#Bl&tNl&tNl&tNl$^^0΂ܩ0΂ܩ0΂ܩ0MOV^0΂ܩ0΂ܩ0΂ܩ0s: \Y;\Y;\Y;|Ng{yt6k: rt6k: rt6k: rt6l//TfrMgATfrMgATfrMgATF9 +L,ȝ +L,ȝ +L,ȝ +H>Pa:5Sa:5Sa:5Sa:tj?c: jct6Sk: nt6k: rȭlv&Lg3v*Lg3 wj?c: jct6Rl.TfrMgA~:tƄltNl$^^t6s, L, +L,ȝ +D4m +L,ȝ +L,ȝ +L,ȝ߶>K>p[nzz|ƱǃOfws?7[4f(_yv^v~c7V~~+x+BoATʙ\XNoATʑ|~c^^32ȝ +Lu8ȝ +Lu8ȝ +Do +Lu8ȝ +Lu8ȝ +Lu8ȝ +H>ὼPaɵSaɵSaɵSa:*3 w*3 w*3 w*#\Bux&:Nux&:N{AmLXG݅ +Lu8ȝگ3XژZ۩s ]guDXgbATXgrA~΄ux:Nux&:N{AmLXG݅ +Lu8ȝ +Lu8ȝ +Lu8ȝ +H>ὼPaɵSaɵSaɵSa:*3 w*3 w*3 w*:W*3 w*3 w*3 w*#\Bux&:Nux&:Nux&:Nux$^^ZܩZܩZܩs \p;\p;\p;|{y:Nܩp?è6|=n~4 uC~]ژ\.g>N۩՜鏵qN}-?-&&37ǿ@bzNݐ/~4ʝ!_^~|m>/Q_Eq܅!?.}(wۿ]ژr;ğzN}-,zL?q䅺!_^@Q rΧcQ vNc_Oܩ,_Sq䅺!_~4ʝ!_qL&_Oܩ|zNݐ/-(wk;ҏ}&yn_~4ʝ!_~:NܩNgr w*ّ|ٽP! +AT3l;L N ; *ٙ\A6ȝ +Av&W rBdܩd' W*ٙ\A6ȝ +Av&W rBdܩdGdB ;+S! +AT3l;H>^^dgr w*ٙ\A6ȝ +Av&W rBg L N ;+S ;s Ƅ ;R w*ٙ\A6ȝٙ{٠6&ٙZA6 +Av$Av//6k D3lP;L Nȭ W;L N ;+S ;s Ƅ ;R w*ٙ\A6ȝ +Av&W rBdܩdGdB ;+S! +AT3l;H>^^dgr w*ٙ\A6ȝ +Av&W rBȟV^dgr w*ٙ\A6ȝ +Av&W rBg L N ;+S! +AT# {yBdܩdgr w*ٙ\A6ȝ +Av$Av//T3l;L N ;+S!Ȏ3 +Av&W rBdܩdgr w*ّ|ٽP! +AT3l;L N ; jdgdژdgjv*ٙ\A6ȝّ[Avv&ٙZA6 +Av&W rAvA6 AvAv.T3l;3AmL3lp;H>^^}G jcBd۩dgr w*ى)n +Av&W rBdܩdgr w*Mut{{ {G1e~ds:!~Ϗ[~Ro躾ϢhV +Vj*j_Qܩ}G@r@(ɝW\ BHԾ S + +N+L +W|T$wj_Qܩ}G@r@$@/Ծ S + +N+P>*;2*j_Qܩ}G@r@(ɝW\ BHԾ S + +N+L +W|T$wj_Qܩm ++L +܅W|T$wj[ 1 + T +N+L +U Gb_Qک}G@r@WzTvj_Qܩm ++L +܅W|T$wj_Qܩ}G@r@&WB+P>*;BHԾ S + y@(ɝW|T$wj_Qܩ}g+BHԾ S + +N+L +W|T$wj_Qܩ}G@r@&WB+P>*;BHԾ S + y@(ɝW|T$wj_Qܩ}UP + +N+P>*;BHԾ@^}G@r@(ɝW|T$wj_drU /Զk@jc@W|T$wj[dQڙ}G@n@(ɝV{Hm̾Ԫ]}G@r@^+RBԾ@^m ++P=*r;BHԾW|T$wj_Qܩ}G@r@+'ۑ"ԋ_^r'9N}k?WSSnm௯fkE1aƄ{bLGf-{1a5{Ƅ{d7y[3avƄ{dԽ7Y;lLX槑{g.LGf-{1a5oƄq{dֶ7y[3ajƄM{d֤7Y{lLX'9fo΄){d֒7vY3lLGfm{1a瀽5;YlLخGfM{1z$;Gؙ0YZfc{H<#W[^lLX'9Tolgw]<بGVM{1aOXkDG^-{1a5KGxl{G",bg=2kޛ [Ȭ)zo6& #v٘BOsޚ Ȭzo6&#٘0>ڞfc<1ykv&#V٘9̚fc<2koޛ k46̅ SȬyo6&#f٘02ژfc<1ρykv&#٘-̚fc°<2kWޛ .^~td~O߇sB_c<^]fq^v; g4ʝ!-?0|/?Gq܅!?.}(w?0a.Cj3I^\qNݐ//|J?qNݐ/ot?4ʝZ~]}(I^.>Nܩ,?0SzNݐvǾFS7VLZ@T%ϻZzy]-\ȝ +wdrrBժܩPEB`-XSY@T25;ʵH>ӵ^^erk w*k\ȝ + [&WrBŖȟ2V^erl w*l\1ȝ +9[&WrBg L N-+lS!mj@T"zyBUܩиerEn w*dn\ȝ +[$[//T2j7;zL N퓷=7PH=]ero wj߾eژejov*p|&pP.S? +@TH2Z8;"r^L28p;L(N=8PʸH=Ӹ]erq w*q\ȝ +\&W#rB%g& BLRNV.+S!@T("LzyB4Úܩers w*s\ȝ +\"ZyB@UЁܩerEt w*dt\ȝ +%]$)]//T2j:;zLN.S3 +a]&WYrB[ׁܩeru w*v|&vP!@T2B;;RLN.ܮ*w\ȝ +]&WtrBv݁ܩPEB.S +@TH2<;*H>3^^}GjcB۩erx wj_En%yڙejUyv*ty\aȝڧy{y6&yzyP!*@Ծ#1!T("Lzy^ ^VnBܩP%lW*{\ȝ +^&WrBܩP5]w~y;-?^'|5)xL Oo=S;۽˧_?}_ϟZ/k9vc!9ű/7'չZ7z~^(wFO[ cv&4Z # + c&Wr c # c c.Th3F;o3hAmLh3Fp;H>^^0fr5 w*4\ #ȝ + c&WrBg LN1aSajATh3F;H>^^0fr5 w*4\ #ȝ + c&WrBg LN1aSajATh#l{yBØ0ܩ0fr5 w*4\ #ȝ + c"j[yBØ0ܩ0fr5 w*4\ #ȝ + c$ c//Th3F;LN1aSaa + c&WrBØ0ܩ0fr5 w*4|6PajATh3F;o3hAmLh#l{wBØ0ܩ}ØGjcBØ0۩0F0BmL6 H1aSajAԾaj{3ajTh3F;o3hAmLh#l{wBØ0ܩ0fr5 w*4\ #ȝ + c$ c//Th3F;LN1aSaa + c&WrBØ0ܩ0fr5 w*4al + c&WrBØ0ܩ0fr5 w*4|6PajATh3F;LN1φ*4\ #ȝ + c&WrBØ0ܩ0F0B1aSajATh3F;H>^^0fr5 w*4\ #ȝ + c&WrBg LN1aSajATh#l{y c # cVnBØ0ܩ}0jgBØ0۩0fr5 wj0f0ژ0F0B1aS1sƄ1SaSaa7{46&4Z # + c&WrBØȟV^0fr5 w*4\ #ȝ + c&Wr>톱 q?  |O~ӟ~k/?h/ + F4uz"tS翛fyȝ +SH>NPa5uSa5uSSS'PNzNzw)krS=N6&L2Nv*L":BmNz:#NXS'P;N\S';:EnMz3aꔩ5uSa5uSSS'PNzNzw)kr)kr)kr)ϩS//T:erM@T:erM@T:erM@T:E9u +SLȝ +SLȝ +SLȝ +SD4uj +SLȝ +SLȝ +SLȝ +SH>NPa5uSa5uSa5uSaԩ*L2N w*L2N w*L2N w*L":BS& NS& NS& NS$S^^0u:ܩ0u:ܩ0u:ܩ0us N\S';N\S';N\S';N|NzyS=N6&L2Nv*L2N wj?uܚ:jg)Skn)krS=N6&L":BS& NN{L@mL:ejMT:E9uO2:ژ0uԚ:۩0u:ܩ0uJOSV^0u:ܩ᰽i1紜gzNP7wzNi;uC~S~0/?NgFS7=~w|&ynȏ763aTs +Wdr] r•\,ȝ +l&W' rB'g' :LNNN6SN6sNƄN6RNw*t\,ȝw{t6&tZ, +l$l//Զk' Dd3:YP;:LNN;ȭNW;:LNNN6SN6sNƄN6RNw*t\,ȝ +l&W' rB'ɂܩFBN6SdATd3:Y;:H>;^^fru w*t\,ȝ +l&W' rB'ȟ:V^fru w*t\,ȝ +l&W' rB'g' :LNNN6SdATd#d{yB'ɂܩfru w*t\,ȝ +l$l//Td3:Y;:LNNN6S䳓 +l&W' rB'ɂܩfru w*t|vPdATd3:Y;:LNNN6Njfɂژfjuv*t\,ȝw[lv&tZ, +l&W' rl, ll.Td3:Y;d3dAmLd3:Yp;:H>;^^}'G' jcB'ɂ۩fru w*tm +l&W' r~dO۝lݝQ ɎS'?~M7]~z"߶ٹm|uYxn rZ7ϵn//TXfruATXfruATXfruATX&n+TXfruATXfruATXfruATXF +kL.ȝ +kL.ȝ +kL.ȝ +kH>׺PaɵSaɵSaɵSaZ*u3ֺ w*u3ֺ wjc jcZ7Rϵn.TXfruA~ZƄnZNn$k^^Z7Sk]$Z7k jZ7k rkȭnv&u3ֺv*u3ֺ wjc jcZ7Rϵn.TXfruATXfruATXfruATXF +kL.ȝ +kL.ȝ +kL.ȝ +kH>׺PaɵSaɵSaɵSaȟֺRaɵSaɵSaɵSaZ*u3ֺ w*u3ֺ w*u3ֺ w*u#\Bn&ZNn&ZNn&ZNn$k^^ZܩZܩZܩ֍s ֺ\k];ֺ\k];ֺ\k];ֺ|u{yZ7k rZ7k rZ7k rZ7ϵn//~ZƄnZNn&ZN׺[k^LXfjuTXfruA~ZƄnk]ZܩZ7s. kL. +kH>׺Pnk]PֺZk]p;ֺ\k];ֺi+ֺ\k];Zmߝ/۵˧Ƴߞz?+.N˿$?csv張̝wn +wndrݹr\wnܩpF&ם w*ܹP΍L;7@Ts# ;sN;72S΍H> +wndrݹr\wnܩpF&ם w*ܹP΍L;7@Ts#S@T"zyBŗUܩPerU| w*T|\ȝ +_"ZyBŗUܩPerU| w*T|\ȝ +_$_//T2*>;*LN/S +_&WrBŗUܩPerU| w*T||V|P@T2*>;2@mL"zwBŗUܩ}ŗGjcBŗU۩PEYBm+LV| H/S@Ծܪz3ԪT2*>;2@mL"zwBŗUܩPerU| w*T|\ȝ +_$_//T2*>;*LN/S +_&WrBŗUܩPerU| w*T|k +_&WrBŗUܩPerU| w*T||V|P@T2*>;*LN/ϊ*T|\ȝ +_&WrBŗUܩPEYB/S@T2*>;*H>+^^PerU| w*T|\ȝ +_&WrBg *LN/S@T"zy_ _VnBŗUܩ}UjgBŗU۩PerU| wj_eQژPEYB/S/sƄ/SSW|{T|6&T|Z +_&WrBŗȟ*V^PerU| w*U|M\wU|e9L}Ǘ_~y-7Z]/t*ӹϷ]z#Sۂ/s P= +>r;/B(HԶ kGjc_VB P> +>;-BZژ}GGn_&WB P> +>;/B(HԾ #S/y_(ɝ|||$wj_Qܩ}GGr_&WB P> +>;/B(HԾ #S/y_(ɝ|||$wj_Qܩ}UP/N P> +>;/B(HԾ|||$wj_Qܩ}GGr_&WB P> +>;/B(HԾ #S/y_(ɝ|||$wj_Qܩ}UP/N P> +>;-BZژ}UP/Nm н|6f_Q۩}UP/T|$H P< +>R;/B(HԶܣ3/TN P> +>;-BZژ}UP/N P> +>;/B(HԾ*@^}GGr_(ɝ|||$wj_er| /Ծ #S/N P> +>;/",zy_(ɝ|||$wj_Qܩ}UP/N P> +>;/B(HԾ*@^}GGr_(ɝ|||$wj_er| /Ծ #S/N P> +>;/2 +>j_Qܩ}GGr_(ɝ|\ /B(HԾ #S/N L|{-Hm̾ գ#S/Nm = +>P;/B(Ծ #Sۂ/t|Z /B(HԶ kGjc_|\ -BZژ}GGn_(ɝ|||R/NovYAo{<ۿ ֎/?vΖEuKoܬB{ 翇fy>ȝ + H>PaɵSaɵSaɵSaB*,3 w*,3 w*,3 w*,#\B~&BN~&BN~&BN~"ZJ~&BN~&BN~&BN~$ ^^ZܩZܩZܩЏs \ };\ };\ };|.{yB?krB?kr =6&,#\B~&BN{,AmLXgj-TXG.3G",3v*,3 wjЏZjgB?SknB?kr =6&,#\B~&BN~&BN~&BN~$ ^^ZܩZܩZܩЏs \ };\ };\ };i+\ };\ };\ };|.{yB?krB?krB?krB?υ~//TXgr-ATXgr-ATXgr-ATXG + L>ȝ + L>ȝ + L>ȝ + H>PaɵSaɵSaɵSaB*,3 w*,3 w*,3 w*,#\B{,AmLXgj-TXgr-A~΄~BN~&BN{,AmLXG݅ + L>ȝ/3XژZ۩Џs _g1aSaɵSaȟRaɵS. f_V3iwZ> iw_G;]1z;^^eruF w*tF\ȝwF{tF6&tFzvFP3@Ծ3ܣ313T"zyQ^;#$BgکeruF wjEnuFڙejuFv*tF\ȝwF{tF6&tFzvFP3@T2:#;:LN(Ψ*tF\ȝ +Q&WgrBgܩEB(3S3@T2:#;:DJ(3S3@T2:#;:H>;^^eruF w*tF\ȝ +Q&WgrBggg :LN(3S3@T"zyBgܩeruF w*tF\ȝ +Q$Q//T2:#;:LN(3S33 +Q&WgrBgܩeruF w*tF|vFP(sƄ(S3S3@Ծ3z33T2:#;2@mL"zwBgܩ}gGgjcBg۩EB;=:#P:LN(3S3JOQ+T2:#;kgtd&37\vm>ٖ/"?2=_Rp{EVt?ofE7>~؇ew<8/it;uC~]ϏE2zN}-?wS7&37˛9bzNݐ/~4ʝ!_^cژ ~߯z&wnGɕ ܩ}6G6jcB6 ۩ F Bl0+S!AT3A;H>^^ fre w*d\ ȝ +`&W6rB6ɕ ܩ F Bl0+S!AT3A;H>^^ fre w*d\ fWh( ĈT!,6 +OUw=ZoպWsd[{d7ܻ|W6B6X+ +`+W!pe*dlp_lϲ𢡄 vA}W6B6U+|eV!pe*dlp_lÕ  V3B6U;\ +`+W! f|[lÕ  vA}5g= ж `El0*dlp_`gO6mB6U+|eVc6ѧlE;X о +`+Ws6X3훐 vA}W6l'6! f{[lÕ  vA}W6B6X+ +`+W!pe*dlp_lW6mW6B6U;\ +`eW!pe*dlp_lÕ  V3B6U;\ +`+W! f|[lÕ  vA}W6B6X+ +`+W!pe*dlp_lW6mW6B6U;\ +`l0*dlp_lÕ  vA} +_`Ʒ՜ vd@&dll_lÕ 9leM;Z ؾ +`+Ws6ٓ m VB6՜ vd@&dll_lW6m5g= ж `G+W!pe*d ~ F|_lÕ  $<xylx}JWBU*|}V!p5}*T}p_UU2BU(:\ +_We|[ԯPur?}WBW+ +_Wp*p_Wm5'= ж `G+W!pjn+[1`}rVBJvT@&tlov@}5ׁ=y ж `GW f|[͙`gO'mB)JU;\ +`W!p5jv5oClp;o_r6x6;A{lll_lÕ 9leM;Z ؾ +`+Ws6ٓ m VB6՜ vd@&dll_lW6mW6B6U;\ +`l0*dlp_lÕ  vA}W6B6X+ +`+W!pe*dlp_lW6mW6B6U;\ +`l0*dlp_lÕ  vA}?#B6U;\ +`+W! f|[lÕ  vA}W6B6X+ +`+W!pe*dlp_lW6mW6B6՜ vd@&dlo vA}5g= ж `G+W! f|[`GA/!`e@*dlp_`e+̴oB6U;\ ྚΞlhۄlW6mW6B6U;\ +`l0*dlp_lÕ  vA} +_`ƷU;\ +`+W!pe*d ~ F|_lÕ  vA}W6B6X+ +`+W!pe*dlp_lW6mW6B6U;\ +`l0*dlp_lÕ  vA} +_`ƷU;\ +`+W!pe*do vA}W6B6U+|eVs6ٓ m vA}W6l f7!he`*dlp_`gO6mB6X+ +`+Ws6ٓ m vA} +_`Ʒ՜ vd@&dll_lÕ  6Y6}W6~?ng!lቲyLw׻׻nk[ݠ9箼O2u9}W?~6e{[~瀶M:Zؾ +\~.*s~p_~u9} +_\ƷU:\ +\Wps*s~p_~W?mW?B?U:\ +\~.*s~p_~u9} +_\ƷU:\ +\Wps*s ~E|_~u9}W?B?W᫟ +\Wps*s~p_~W?mW?B?U:\ +\~.*s~p_~瀶M*zsVpsj:{9mV?B?W᫟>s_.B?U:\ྚV?i߄~ρu9}5s=ж \E~.*s~p_~u9} +_\ƷU:\ +\Wps*sou9}W?B?U +\Wps*s~p_~W?mW?B?U:\ +\~.*s~p_~u9} +_\ƷU:\ +\Wps*sou9}W?B?U*|sVps*s~p_~U2~6hs`*s~p_\e˴oB?U:\ྚΞ~hۄ~W?mW?~6hs`*so瀶M:Zؾ +\Wk~.*s~p_~.i;[-s绿^z?wj7ks7s?Wϑ+ϕ#6s?Vs?W+S?Gm~#Ws?Vs?W+ϕsj:\jJ|9}5s%>ᾚ~p_\O?G~~ħ#Ws?W+u9ϕsjJ|9}5s%>ᾚW?~p_\O?G~ħ#Ws?W᫟~p_\O?G~ħ#Ws?Vs?W+ϕsj:\jJ|9}5s%>ᾚ~p_\|[\O?G~ħ#Wc?Wڧ~h\G{[\O?G~OѶ~l_\|[M\I\\ O?G~ħ#Wc?훹+ϕsjJmhs`o+ϕsjJ|9}5s~m5s%>ᾚ~p_\O?G~~ħ#Ws?W+U2~ħ#Ws?W+u9ϕsjJ|9}5s%>ᾚW?~p_\O?G~ħ#Ws?Vs?W+ϕsj:\jJ|9}5s%>ᾚ~p_\|[\O?G~ħ#Ws?Wpso+S?Gm~#Ws?WϕsdjJ|9}5s}父u9ϕsjJm+u9ϕ#6s?Wϑ+U2~ħ#W~.iBs_.B?U:\ྚV?i߄~ρu9}5s=ж \E~.*s~p_~u9} +_\ƷU:\ +\Wps*sou9}W?B?U +\Wps*s~p_~W?mW?B?U:\ +\~.*s~p_~u9} +_\ƷU:\ +\Wps*sou9}W?B?U*|sVps*s~p_~U2~6hs`*s~p_\e˴oB?U:\ྚΞ~hۄ~W?mW?~6hs`*so瀶M:Zؾ +\Wk~.*s~p_=ByL|f|g|?<zc_f>=1~uЧ~lp_`e+̴oB6U;\ ྚΞlhۄlW6mW6l'6!he`*do vA}W6B6U+|eV!pe*dlp_lÕ  vA} +_`ƷU;\ +`+W!pe*do vA}W6B6U+|eV!pe*dlp_lÕ  6Y6}W6B6U;\ +`l0*dlp_lÕ  vA} +_`ƷU;\ +`+W!pe*do vA}W6l'6! f{[lÕ 9M;Z ؾ +`l0j; |`+W!pej+[`}V6B6՜ vd@&dlo vA}W6B6U+|eV!pe*dlp_lÕ  V3B6U;\ +`+W!ll0*dlp_lÕ  vA} +_`ƷU;\ +`+W!pe*do vA}W6B6U+|eV!pe*dlp_lÕ  V3B6U;\ +`+W! f|[lÕ  vA}W6B6X+Ξlhۄl vA}5gl0Ӿ `G+W!pej;{Am^`U;\ ྚΞlhۄl V3l'6!he`*dlp_lϲ𢡄 vA}K6t; I޷g/r*dל l_z6x^!:)W!pej+[`}V6B6՜ vd@&dlo vA}5g= ж `G+W! f|[lÕ  vA}W6B6X+ +`+W!pe*dlp_lÕ  V3B6U;\ +`+W! f|[lÕ  vA}W6B6X+ +`+W!pe*dlp_lϲ𢡄 vA}W6B6U+|eV!pe*dlp_lÕ  V3B6U;\ +`+W! f|[lÕ  vA}5g= ж `El0*dlp_`gO6mB6U+|eVc6ѧlE;X о +`+Ws6X3훐 vA}W6l'6! f{[lÕ  vA}W6B6X+ +`+W!pe*dlp_lW6mW6B6U;\ +`eW!pe*dlp_lÕ  V3B6U;\ +`+W! f|[lÕ  vA}W6B6X+ +`+W!pe*dlp_lW6mW6B6U;\ +`l0*dlp_lÕ  vA} +_`Ʒ՜ vd@&dll_lÕ 9leM;Z ؾ +`+Ws6ٓ m VB6՜ vd@&dll_lW6m5g= ж `G+W!pe*d ~ F|_lÕ _`H=|~;yn߿>j5rqg{5t+|x{}dy⽮{woWJwzm~*;{jImjɎV- B-%\KVjL&ԒZl_ZUK%M%+zՒVpՒj%;{jImjɎV- B-Y᫖ +dWpՒ*ԒZp_ZW-mjW- B-%U%;\$ +dWUKf|[ZUKPKvjI}jW- B-Y᫖ +dWpՒ*ԒZp_ZW-mjW- B-%U%;\$ +dՒWpՒ*ԒZp_ZUKPKV%3B-%U%;\$ +dWUKf|[ZUKPKvjI}jW- B-Y᫖ +dWpՒj%;{jImjɊ^dU%;\$ྚkΞZhۄZUKPKV%3ZO$PKvjI}jW- ZUKf7hՒ`*ԒZp_͵dgO- mB-Yѫ +dWpՒ*ԒZp_ZW-mjW- B-%U%;\$ +dZ2*ԒZp_ZUKPKvjI}j?%#B-%U%;\$ +dWUKf|[ZUKPKvjI}jW- B-Y᫖ +dWpՒ*ԒZp_ZW-mjW- B-%U%;\$ +dZ2*ԒZp_ZUKPKvjI}j +_dƷU%;\$ +dWpՒ*ԒjɌo%M%;Z$ؾ +dWs-Y٪%3PKvjI}jW- Z6UKf{[ZUK%M%;Z$ؾ +dZ2j%;{jImjɎV- B-%U% +dWԒkɐ"~{-vrN<Y|x6;?d_z6x^!:)W!pej+[`}V6B6՜ vd@&dlo vA}5g= ж `G+W! f|[lÕ  vA}W6B6X+ +`+W!pe*dlp_lÕ  V3B6U;\ +`+W! f|[lÕ  vA}W6B6X+ +`+W!pe*dlp_lϲ𢡄 vA}W6B6U+|eV!pe*dlp_lÕ  V3B6U;\ +`+W! f|[lÕ  vA}5g= ж `El0*dlp_`gO6mB6U+|eVc6ѧlE;X о +`+Ws6X3훐 vA}W6l'6! f{[lÕ  vA}W6B6X+ +`+W!pe*dlp_lW6mW6B6U;\ +`eW!pe*dlp_lÕ  V3B6U;\ +`+W! f|[lÕ  vA}W6B6X+ +`+W!pe*dlp_lW6mW6B6U;\ +`l0*dlp_lÕ  vA} +_`Ʒ՜ vd@&dll_lÕ 9leM;Z ؾ +`+Ws6ٓ m VB6՜ vd@&dll_lW6m5g= ж `G+W!pe*d ~ F|_lÕ  $Oo?z=|~{rYxt_٫czf|c_>؇o +н)|x{}3LÙJgʀ*)wΔU8Sp)p\L9*)wΔU8Sp)p:SWLΔ#™rLp_3י2 +g3e}Δ+|)g|[3י2 +g3e}Δ;\gʀ*)W:S +g3e}Δ;\gʀ*)wΔU8SumΔ;\gʀ*)wΔ|s m™rE3lop:SWrgϙ2ж g3e}Δ+|)g|[g}:SrΔ;Xg@*)wΔ|\:Sδo™rGLl_3י2ྚϔ;{ΔM8SumΔ;\gʀ*)wΔU8Sp)p\L9*)wΔU8Sp)p:SWLיrƷU8Sp)p:SWLu ™r)G|_3י2 +g3e}Δ;\gʀ*)W:S +g3e}Δ;\gʀ*)wΔU8SumΔ;\gʀ*)wΔU8Sp)p\L9*)wΔU8Sp)p:SWLיrƷU8Sp)p:SWLu ™r3op:SWLu ™rLp_3 +_gVrgϙ2ж g3e}Δ;\gʀj>Sl)g7Lu ™rLp_gʝ=g@&)W:S +g3e}5)w)mp:SWLיrƷ|s m™rGLl_3י2 +g ~v}Δ;\gʀ3gMҙtïWo\P79=u|O?㿔\ +woo7?d}@zQg> `AQMJ֧d63*Yeۄd,&F^??ʾ ?ls+Y??˶ ?3l+Y??˶ ?Ood,&JϲmOd,&F^L}™JV7eۄjd6!d3YMey2QMe*YLmJJV(eۄLUd6)D&&2>&˶ uL%+ɲmBS*cl4bT,&1 &˶ 9L%ɲmB +oBS`lPT",&$0&˶ K#%ʾ K%}ɲmBR +_l9{^{K%¾ K%wɲmڥ'v".%ö K#%ʾ#=5.Y؃¥Rd6!od-Yܶ4Җ"-%ö UK%+jɲm椥h",r&,%˶ %K%+dɲmBRɪXlа4JXT,&+x%˶ J%\ɲmB+[oBRjVlPT,&*Z%˶ J!*I6!Tdu*YMT*YJmJVeۄ>We߄8զd6Ld)YMR*YUJmF^IJ}JVeۄd6!Ed(YMPye(QMP*Y Jm +JVeۄUd6=i䕞D7!ᾚjp_N+|[NOCz'!WsSS)x՜t:\AᾚWp_aOOC涧'!Ws{VsS9)|>jN}*|>WsS9))~D?j~:\j.J|}5?%>ᾚp_ P|[PODħ"Ws T9p@o*ITAjJm9 hA`o*Ƀ"6s#T 9puBo*鯩9*ᩅ CjL:{!}3WC%=پárp_Pi!m3C~m5D%> ᾚ#p_QOHD攨暨''"WsPTS)*՜u"\EjJ|"}5E%>ᾚ +_Q\dFjJ|J#}5F%>ᾚsWop_QOuD'<"WszjVs}T9@*) DHjΐ:\j.J|R$}5H%>5ᾚ{ p_IRI|[UROD0ħL"WsT'9OpIoP*I)TJjJ|B%}5JV m5J}ʕ,KdjnJ|%}5fK=о˥tl_ROD~OѶV+p_!SiJ&m3L%=1پsW>%MDfJz&}5wM%>aᾚӦ +_mS\7M*Nr9N?߿\ɼ~G~xp?~4N\@ïmz?F۴8\\y\d|[\\t }WsBsj.Uh.*|5Vp5*4p_\\Tj.2Bsj.Uh.:\ +EW\d|[\\t }WsBsgEUh.:\ +EWp5*4o\t }WsBsj.Uh.*|5Vp5*4p_\\Tj.2Bsj.Uh.:\ྚΞhۄ梢WsmWs梳6h5`*4oSs"4h_\l5Mh.:Zؾ +EWss\m\Tj.Bsj.Uh.:\ +EW\d|[\\t }WsBsQ᫹ +EWp5*4p_Ϛ\t }WsBsj.Uh.*|5Vp5*4p_\\Tj.2Bsj.Uh.:\ +EW\d|[\\t }WsBsQ᫹ +EWp5*4p_WsmWsBsj.Uh.:\ +E"jn.:{ mVsBsj.\TL&4l_\i.Mh.*z5Vp5jn.:{ mVsBsQ᫹Ξhۄ梣\\t }?k."Bsj.Uj.BynT\~qg{qqXo}@+>hۄth} ؾ +R]2t>p_tp} +ኋU*|EV!.pE*Ep_u"} +_qQƷU:\q +qQ+.W!.pE*E⢌ou"}W\B\ኋU*|EV!.pE*Ep_5Y\}W\B\ኋU:\q +qQ(*Ep_u"} +_qQƷU:\q +qQ+.W!.pE*E⢌ou"}W\渨'.6!.e{[9.쉋M:Zqؾ +qQ(j:|qQ+.W!.pEj*[qQ}⢎V\B\ኋuE@&Elou"}W\B\ኋU*|EV!.pE*Ep_U2B\ኋU:\q +qQ+.W!.j(*Ep_u"} +_qQƷU:\q +qQ+.W!.pE*E⢌ou"}W\B\ኋU*|EV!.pE*Ep_U2B\ኋU:\q +qQ+.W!.e|[u"}W\B\T+.Ξhۄu"}5E(Ӿ qQG+.W!.pEj:{"m⢊^qQU:\qྚΞhۄU2渨'.6!.hE`*Ep_⢈u"}⢐|{\z'o A\4_?ĺq<=[y.ܪBsuRBS +OWp>*>p_§Wm +WB*|U(|:\ +OWUd|[§UPt +} +WBS +OWp>*>p_§Wm +WB*|U(|:\ +O>Wp>*>p_§UPT*|2B*|U(|:\ +OWUd|[§UPt +} +WBS +OWp>j.|:{ +m +^OU(|:\ྚ Ξhۄ§UPT*|2§OPt +} +W§Ud7h>`*>p_ͅOgOmBSѫ +OWp>*>p_§Wm +WB*|U(|:\ +O'*>p_§UPt +} +?+|"B*|U(|:\ +OWUd|[§UPt +} +WBS +OWp>*>p_§Wm +WB*|U(|:\ +O'*>p_§UPt +} + +_OƷU(|:\ +OWp>*> +o)|M(|:Zؾ +OWsS*|2Pt +} +W§6Ud{[§U)|M(|:Zؾ +O'j.|:{ +m +VB*|U(| +OW'd3~:oSv >~vrO?>kO?O[zzkM5J*\wUFp]p^=*\wUFp]pFW5zƷUFp]pFWu5z]G|_k5: +kt};\*\WF +kt};\*\wUFum;\*\wUFp]p^=*\wUFp]hۄk^VukΞktm;Z`*\WF;t"\wсUFp]ui߄k5:ؾ +kt}5_w\mp^=*\wUFp]pFW5zƷUFp]pFWu5zkopFWu5zp_k?F +kt};\*\wUFum;\*\wUFp]p^=*\wUFp]pFW5zƷUFp]pFWu5zkopFWu5zp_k +_Vu5zp_k5: +3kΞktm;Z`*\w|^ٺFϴo5zGl_k5:ྚ;{сMFum;\jFF6u5zkohۄk5:ؾ +kt}=*\wUF~~ĆWFǎO?~E"[K<n?ݽ~G7]ޕϛ8~Εϛ8=Mz{8OO#7qt|ж }>g|d|[p} +}>*|G +}>*|G3>Ug|oPUu*}WUBU᪪U*|UUVpUU*TU +p_UUPUU2BU᪪U:\U +UUWj**TU +p_UUPUu*} +_UUƷU:\U +UUWpUU*TUoPUu*}WUBU᪪U*|UUVpUU*TU +p_UUgOUmBUUѫ +UUWsUSUmPUu*} +_UUƷXUurVUBU᪪\UUL&TU +l_UU쩪M*zUUVpUU*TU +p_UUPUU2BU᪪U:\U +UUWUUe|[UUPUu*}WUBUgUUU:\U +UUWpUU*TUoPUu*}WUBU᪪U*|UUVpUU*TU +p_UUPUU2BU᪪U:\U +UUWUUe|[UUPUu*}WUBUU᫪ +UUWpUU*TU +p_WUm5WU=Uж UUGWpUUj*[UU}VUBU᪪\UuTU@&TUloPUu*}5WU=Uж UUGWUUe|[UUgOUmBUѪU:\U +UUUUWpUU*UU!Ur9UU?߿\~kxqjcw~Qտ?߽=qyF^N㛮S7 W^(g|[S)< +Sx}N;\*W: +Sx}N;\*wNU8u +mN;\*wNU8pp +gWu +)|p_S)< +N3)|p_S)< +Sx}N+|g|[S)< +Sx}N;\*W: +Sx}N;\j>96)|U8phۄS)<ؾ +N3S>|Sx}N;\j>lg7u +)|p_ͧ=@&W: +Sx}N;\*wNU8u +mN;\*wNU8pp +_>*wNU8pp +:WN#)|p_S)< +Sx}N+|g|[S)< +Sx}N;\*W: +Sx}N;\*wNU8u +mN;\*wNU8pp +_>*wNU8pp +:W)|ƷU8pp +:Wu +)|SohۄS)<ؾ +Sx}5WN3p +:Wu +SΞSxmN+zg{[S)<ྚO;{NၶM8hƒp +_>j>96u +)|p_S?; +Sx}NY?>=<)}~߿-c +L_r>n}qO|us }{*|d|[q +=}5tmpS'*t{|smqOGl_ +_=VqOG{\qо +=}5T{2p:WḧuΞm{*zd{[q +=}{:\=*T: +=}{:\=*t{U8uܓm{:\=*t{U8ppg=WḧuqOp_q +={2qOp_q +=}{*|d|[q +=}{:\=*T: +=}{:\=*t{U8uܓm{:\=*t{U8ppS'*t{U8pp:WḧqOƷ|smqOGl_qྚ{*[=M8hp:WqOgqж ={qOp_===@&t{U8uܓm5tmp:WḧuqOD|_qqO㞇+~ynO|[=zxq]vu:yN;<\yt擇ΞmN:Z'`*y9y6䡣uCo䡳hۄؾ +'}N!*=LmސJ0ɶy]>vx譓a}|?_ydۼ!=||O"amvw}r>=Lmސ}zdۼ.˯< oސ=l7f6!έdYM(s+YanmF^Un}JVeۄ f6ƭdŸYMHqyQMp+Ynm"JVeۄf6!mUF7dYMo+YmmJVteۄ䶑Wqe߄޶f6!dYM(m+Ymm2F^m}JVbeۄf6dŵYMHkyQVdٽ\rf6dY͜6j"6ö !m%Ͳm抶'"$ +&|6˶ +v6PV &d(fnf+x^.B0[e3lPVb,&|V&yۄNf6D# 7X˧}?|)ෛ/5^ ٛon%_֟-u~ۯLn6u{'u;ȶ+YY|smNvm3_w\luݞe< fnn6u{'u;ȶ+YY|smNvm3_w\lu{|smNvm3_w\luݞe< fnn6u{'u;ȶ+YY|smNvm3_w\luݞe< fnn6u{\핫 fnn6u{\;fnd]g7u{~nb/_w\kdی<ٵ|޹smNvm3^w|^nϰoNvm3_w\ld핬,fnn6u{'u;ȶ;yA|^ɺnϲoNvm3_w\ld퍼ۣmNvm3_w\ld핬,fnn6u{'u;ȶ;yA|^ɺnϲoNvm3_w\ld핬,fnn6u{'u;ȶ;yA|^ɺnϲoNvm3_w\ld핬,fnn6u{'u;ȶ;yA|^ɺnϲo>]{;w|sm +bnܹn6u{'u;ȶ;tbn\]g7u{'u;ȶ;tbnܹn6u{%=˾;tbnܹn6u{'u;ȶy]Gy< &\con?un_I;#E^nωy|I=vO̯M816y%<˾O;yNA|bsbmNsm3WN̳ļd'<' f>1916y%<˾O;yNA|bsbmNsm37:1O;yNA|bsbmNsm3WN̳ļd'<' f>1916y%<˾O;yNA|bsbmNsm3WN̳ļd'<' f<1Ӊ9ļruba'<' f<1Ӊ9ļs`'敬,f:1ܯ'^Nspm3w򜘃lļ{O+W'|bsbmNsm3w򜘃lļube'<' f>1916y'ω9ȶO+Y'Y|bsbmNsm3w򜘃lļ׉y|bsbmNsm3w򜘃lļube'<' f>1916y'ω9ȶO+Y'Y|bsbmNsm3w򜘃lļube'<' f>1916y'ω9ȶO+Y'Y|bsbmNsm3w򜘃lļube'<' f>1916y'ω9ȶO+Y'Yxbsp/yΉ9O;yNAxb^sb][';'f>1916yN\'敫 f>1916yN\';'f>1dg7yN\';'f>1916y#(oļdۄp'wOχ|b>O__W]ӗӧϿ?g:>z|{|}}<_c :yG6N'ȶp*Yg8Y|sm3N3m3t |S:ɰo3N3m3t |ӹsm3JN}3t3P/Np:yp@xSs][g8;g8f>96Np\g83 f>96N'ȶp:yp@|S:ɲo3N3m3tl dg83,f>96N'ȶp:yp@| 'f>96N'ȶp:yp@|S:ɲo3N3m3tl dg83,f>96N'ȶp:yp@|S:ɲo3N3m3tl dg83,f>96N'ȶp:yp@|S:ɲo3N3m3tl dg83,f< s `g8> endobj +255 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [142.4658 686.3098 177.6635 695.6148] +/Subtype /Link +/A << /S /GoTo /D (9) >> +>> endobj +259 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [507.5368 686.3098 515.0685 695.6148] +/Subtype /Link +/A << /S /GoTo /D (9) >> +>> endobj +260 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 670.265 233.2847 682.2748] +/Subtype /Link +/A << /S /GoTo /D (14) >> +>> endobj +261 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [507.4472 670.265 515.0685 682.2748] +/Subtype /Link +/A << /S /GoTo /D (14) >> +>> endobj +262 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 659.3061 273.3038 671.3159] +/Subtype /Link +/A << /S /GoTo /D (21) >> +>> endobj +263 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [507.4472 659.3061 515.0685 671.3159] +/Subtype /Link +/A << /S /GoTo /D (21) >> +>> endobj +264 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [142.4658 648.6511 202.2811 657.9561] +/Subtype /Link +/A << /S /GoTo /D (PART1) >> +>> endobj +265 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.0947 648.6511 515.0685 657.9561] +/Subtype /Link +/A << /S /GoTo /D (PART1) >> +>> endobj +266 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 635.2014 290.0607 644.3122] +/Subtype /Link +/A << /S /GoTo /D (47) >> +>> endobj +267 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.0947 635.2014 515.0685 644.3122] +/Subtype /Link +/A << /S /GoTo /D (47) >> +>> endobj +268 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 621.6473 330.0212 633.6571] +/Subtype /Link +/A << /S /GoTo /D (50) >> +>> endobj +269 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.0947 621.6473 515.0685 633.6571] +/Subtype /Link +/A << /S /GoTo /D (50) >> +>> endobj +270 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 610.6884 307.7048 622.6982] +/Subtype /Link +/A << /S /GoTo /D (118) >> +>> endobj +271 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.0947 610.6884 515.0685 622.6982] +/Subtype /Link +/A << /S /GoTo /D (118) >> +>> endobj +272 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 599.7295 270.4644 611.7393] +/Subtype /Link +/A << /S /GoTo /D (139) >> +>> endobj +273 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.0947 599.7295 515.0685 611.7393] +/Subtype /Link +/A << /S /GoTo /D (139) >> +>> endobj +274 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 588.7706 260.3027 600.7804] +/Subtype /Link +/A << /S /GoTo /D (148) >> +>> endobj +275 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.0947 588.7706 515.0685 600.7804] +/Subtype /Link +/A << /S /GoTo /D (148) >> +>> endobj +276 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [142.4658 578.1156 236.8614 587.4206] +/Subtype /Link +/A << /S /GoTo /D (199) >> +>> endobj +277 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.0947 578.1156 515.0685 587.4206] +/Subtype /Link +/A << /S /GoTo /D (199) >> +>> endobj +278 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 562.0707 244.7213 574.0806] +/Subtype /Link +/A << /S /GoTo /D (205) >> +>> endobj +279 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.0947 562.0707 515.0685 574.0806] +/Subtype /Link +/A << /S /GoTo /D (205) >> +>> endobj +280 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 551.1118 250.938 563.1216] +/Subtype /Link +/A << /S /GoTo /D (213) >> +>> endobj +281 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.0947 551.1118 515.0685 563.1216] +/Subtype /Link +/A << /S /GoTo /D (213) >> +>> endobj +282 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 540.1529 205.3594 552.1627] +/Subtype /Link +/A << /S /GoTo /D (224) >> +>> endobj +283 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.0947 540.1529 515.0685 552.1627] +/Subtype /Link +/A << /S /GoTo /D (224) >> +>> endobj +284 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [142.4658 527.9885 295.8098 538.8029] +/Subtype /Link +/A << /S /GoTo /D (CH3-LINK) >> +>> endobj +285 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.0947 527.9885 515.0685 538.8029] +/Subtype /Link +/A << /S /GoTo /D (CH3-LINK) >> +>> endobj +286 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 516.0483 279.5205 525.4629] +/Subtype /Link +/A << /S /GoTo /D (239) >> +>> endobj +287 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.0947 516.0483 515.0685 525.4629] +/Subtype /Link +/A << /S /GoTo /D (239) >> +>> endobj +288 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 505.0894 200.6175 514.2001] +/Subtype /Link +/A << /S /GoTo /D (256) >> +>> endobj +289 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.0947 505.0894 515.0685 514.2001] +/Subtype /Link +/A << /S /GoTo /D (256) >> +>> endobj +290 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [190.2864 494.1305 269.9867 503.5451] +/Subtype /Link +/A << /S /GoTo /D (264) >> +>> endobj +291 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.0947 494.1305 515.0685 503.5451] +/Subtype /Link +/A << /S /GoTo /D (264) >> +>> endobj +292 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [190.2864 483.1716 273.5732 492.2823] +/Subtype /Link +/A << /S /GoTo /D (277) >> +>> endobj +293 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.0947 483.1716 515.0685 492.2823] +/Subtype /Link +/A << /S /GoTo /D (277) >> +>> endobj +294 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 469.6174 230.2459 481.6273] +/Subtype /Link +/A << /S /GoTo /D (286) >> +>> endobj +295 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.0947 469.6174 515.0685 481.6273] +/Subtype /Link +/A << /S /GoTo /D (286) >> +>> endobj +296 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [142.4658 456.5265 224.9758 468.2674] +/Subtype /Link +/A << /S /GoTo /D (CH4-LINK) >> +>> endobj +297 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [508.0947 456.5265 515.0685 468.2674] +/Subtype /Link +/A << /S /GoTo /D (CH4-LINK) >> +>> endobj +298 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [142.4658 443.1766 327.65 454.9175] +/Subtype /Link +/A << /S /GoTo /D (CH5-LINK) >> +>> endobj +299 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 443.1766 515.0685 454.9175] +/Subtype /Link +/A << /S /GoTo /D (CH5-LINK) >> +>> endobj +300 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [142.4658 429.8267 208.6472 441.3434] +/Subtype /Link +/A << /S /GoTo /D (370) >> +>> endobj +301 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 429.8267 515.0685 441.3434] +/Subtype /Link +/A << /S /GoTo /D (370) >> +>> endobj +302 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [142.4658 416.4767 288.3677 428.2176] +/Subtype /Link +/A << /S /GoTo /D (418) >> +>> endobj +303 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 416.4767 515.0685 428.2176] +/Subtype /Link +/A << /S /GoTo /D (418) >> +>> endobj +304 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 405.463 224.7266 414.8776] +/Subtype /Link +/A << /S /GoTo /D (423) >> +>> endobj +305 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 405.463 515.0685 414.8776] +/Subtype /Link +/A << /S /GoTo /D (423) >> +>> endobj +306 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 394.5041 224.4973 403.9187] +/Subtype /Link +/A << /S /GoTo /D (429) >> +>> endobj +307 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 394.5041 515.0685 403.9187] +/Subtype /Link +/A << /S /GoTo /D (429) >> +>> endobj +308 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 380.95 267.4662 392.9598] +/Subtype /Link +/A << /S /GoTo /D (448) >> +>> endobj +309 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 380.95 515.0685 392.9598] +/Subtype /Link +/A << /S /GoTo /D (448) >> +>> endobj +310 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [142.4658 367.8591 242.1511 379.6] +/Subtype /Link +/A << /S /GoTo /D (453) >> +>> endobj +311 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 367.8591 515.0685 379.6] +/Subtype /Link +/A << /S /GoTo /D (453) >> +>> endobj +312 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 355.6788 222.1668 365.9561] +/Subtype /Link +/A << /S /GoTo /D (TUTOR1-SRC) >> +>> endobj +316 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 355.6788 515.0685 365.9561] +/Subtype /Link +/A << /S /GoTo /D (TUTOR1-SRC) >> +>> endobj +317 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 344.7199 222.1668 354.9972] +/Subtype /Link +/A << /S /GoTo /D (TUTOR2-SRC) >> +>> endobj +318 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 344.7199 515.0685 354.9972] +/Subtype /Link +/A << /S /GoTo /D (TUTOR2-SRC) >> +>> endobj +319 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 333.761 216.787 344.0383] +/Subtype /Link +/A << /S /GoTo /D (C64-1-SRC) >> +>> endobj +320 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 333.761 515.0685 344.0383] +/Subtype /Link +/A << /S /GoTo /D (C64-1-SRC) >> +>> endobj +321 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 322.8021 222.1668 333.0794] +/Subtype /Link +/A << /S /GoTo /D (KERNAL-SRC) >> +>> endobj +322 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 322.8021 515.0685 333.0794] +/Subtype /Link +/A << /S /GoTo /D (KERNAL-SRC) >> +>> endobj +323 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 311.8431 222.1668 322.1205] +/Subtype /Link +/A << /S /GoTo /D (TUTOR3-SRC) >> +>> endobj +324 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 311.8431 515.0685 322.1205] +/Subtype /Link +/A << /S /GoTo /D (TUTOR3-SRC) >> +>> endobj +325 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 300.8842 227.5466 311.1616] +/Subtype /Link +/A << /S /GoTo /D (TUTOR4A-SRC) >> +>> endobj +326 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 300.8842 515.0685 311.1616] +/Subtype /Link +/A << /S /GoTo /D (TUTOR4A-SRC) >> +>> endobj +327 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 289.9253 227.5466 300.2027] +/Subtype /Link +/A << /S /GoTo /D (TUTOR4B-SRC) >> +>> endobj +328 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 289.9253 515.0685 300.2027] +/Subtype /Link +/A << /S /GoTo /D (TUTOR4B-SRC) >> +>> endobj +329 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 278.9664 227.5466 289.2438] +/Subtype /Link +/A << /S /GoTo /D (TUTOR4C-SRC) >> +>> endobj +330 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 278.9664 515.0685 289.2438] +/Subtype /Link +/A << /S /GoTo /D (TUTOR4C-SRC) >> +>> endobj +331 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 268.0075 222.1668 278.2848] +/Subtype /Link +/A << /S /GoTo /D (TUTOR5-SRC) >> +>> endobj +332 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 268.0075 515.0685 278.2848] +/Subtype /Link +/A << /S /GoTo /D (TUTOR5-SRC) >> +>> endobj +333 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 257.0486 222.1668 267.3259] +/Subtype /Link +/A << /S /GoTo /D (TUTOR6-SRC) >> +>> endobj +334 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 257.0486 515.0685 267.3259] +/Subtype /Link +/A << /S /GoTo /D (TUTOR6-SRC) >> +>> endobj +335 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 246.0897 216.787 256.367] +/Subtype /Link +/A << /S /GoTo /D (C64-2-SRC) >> +>> endobj +336 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 246.0897 515.0685 256.367] +/Subtype /Link +/A << /S /GoTo /D (C64-2-SRC) >> +>> endobj +337 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 235.1308 222.1668 245.4081] +/Subtype /Link +/A << /S /GoTo /D (TUTOR7-SRC) >> +>> endobj +338 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 235.1308 515.0685 245.4081] +/Subtype /Link +/A << /S /GoTo /D (TUTOR7-SRC) >> +>> endobj +339 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [142.4658 220.6113 282.2606 232.3521] +/Subtype /Link +/A << /S /GoTo /D (REF-LINK) >> +>> endobj +340 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 220.6113 515.0685 232.3521] +/Subtype /Link +/A << /S /GoTo /D (REF-LINK) >> +>> endobj +341 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 209.5975 247.7704 219.0121] +/Subtype /Link +/A << /S /GoTo /D (506) >> +>> endobj +342 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 209.5975 515.0685 219.0121] +/Subtype /Link +/A << /S /GoTo /D (506) >> +>> endobj +343 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 196.0434 240.5971 207.7494] +/Subtype /Link +/A << /S /GoTo /D (571) >> +>> endobj +344 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 196.0434 515.0685 207.7494] +/Subtype /Link +/A << /S /GoTo /D (571) >> +>> endobj +345 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [190.2864 185.0845 257.6529 196.7905] +/Subtype /Link +/A << /S /GoTo /D (574) >> +>> endobj +346 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 185.0845 515.0685 196.7905] +/Subtype /Link +/A << /S /GoTo /D (574) >> +>> endobj +347 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [190.2864 174.1256 242.7889 186.1354] +/Subtype /Link +/A << /S /GoTo /D (597) >> +>> endobj +348 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 174.1256 515.0685 186.1354] +/Subtype /Link +/A << /S /GoTo /D (597) >> +>> endobj +349 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [190.2864 163.1667 245.1897 174.8727] +/Subtype /Link +/A << /S /GoTo /D (610) >> +>> endobj +350 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 163.1667 515.0685 174.8727] +/Subtype /Link +/A << /S /GoTo /D (610) >> +>> endobj +351 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 152.2078 271.3713 164.2176] +/Subtype /Link +/A << /S /GoTo /D (619) >> +>> endobj +352 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 152.2078 515.0685 164.2176] +/Subtype /Link +/A << /S /GoTo /D (619) >> +>> endobj +353 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 141.2489 237.3892 153.2587] +/Subtype /Link +/A << /S /GoTo /D (646) >> +>> endobj +354 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 141.2489 515.0685 153.2587] +/Subtype /Link +/A << /S /GoTo /D (646) >> +>> endobj +355 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [190.2864 130.29 269.3192 142.2998] +/Subtype /Link +/A << /S /GoTo /D (649) >> +>> endobj +356 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 130.29 515.0685 142.2998] +/Subtype /Link +/A << /S /GoTo /D (649) >> +>> endobj +357 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [190.2864 119.3311 327.5899 131.3409] +/Subtype /Link +/A << /S /GoTo /D (658) >> +>> endobj +358 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 119.3311 515.0685 131.3409] +/Subtype /Link +/A << /S /GoTo /D (658) >> +>> endobj +359 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [190.2864 108.3722 340.7402 120.382] +/Subtype /Link +/A << /S /GoTo /D (682) >> +>> endobj +360 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 108.3722 515.0685 120.382] +/Subtype /Link +/A << /S /GoTo /D (682) >> +>> endobj +361 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 100.0085 200.6175 109.1192] +/Subtype /Link +/A << /S /GoTo /D (691) >> +>> endobj +362 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 100.0085 515.0685 109.1192] +/Subtype /Link +/A << /S /GoTo /D (691) >> +>> endobj +363 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [190.2864 86.4543 265.5635 98.4642] +/Subtype /Link +/A << /S /GoTo /D (695) >> +>> endobj +364 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 86.4543 515.0685 98.4642] +/Subtype /Link +/A << /S /GoTo /D (695) >> +>> endobj +365 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [190.2864 75.4954 267.018 87.5053] +/Subtype /Link +/A << /S /GoTo /D (701) >> +>> endobj +366 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 75.4954 515.0685 87.5053] +/Subtype /Link +/A << /S /GoTo /D (701) >> +>> endobj +367 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [190.2864 64.5365 324.2627 76.2425] +/Subtype /Link +/A << /S /GoTo /D (709) >> +>> endobj +368 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 64.5365 515.0685 76.2425] +/Subtype /Link +/A << /S /GoTo /D (709) >> +>> endobj +254 0 obj << +/D [252 0 R /XYZ 95.6414 729.2652 null] +>> endobj +6 0 obj << +/D [252 0 R /XYZ 217.5089 705.6731 null] +>> endobj +251 0 obj << +/Font << /F23 242 0 R /F35 258 0 R /F28 250 0 R /F36 315 0 R /F37 371 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +428 0 obj << +/Length 1911 +/Filter /FlateDecode +>> +stream +xڍnEཟbMw}]DC,b秜$]}J,H󍫂=P'OSϮN5vKW헫02)47^1z9]/:uB[;r"tsëN钻n|^uw_qo~z{}o헚߽׫o~ѻ|<}HkQ&bAԆ>K([^>> +^\=X񑆸lU֛i5~ךZ<9 q٪ഝc4evrLV|!.[xЊ8>*8m8c4evb +N  +Nf\-9U ފ4eW9CZt*rwbGڲuӷΜZVFҢSi3GΜЖ +N<󑆸l]jB3~>*8-bG?⤇|'z]7cZ,S*}CS>_%~||OWS/>=| |@ңJ,:zwvb,@ZVh4eg}V|!.[:[񑆸lUpzVci5^KYiO +]u윆lUpNي4eӻdoHC\FI:vN#|jUpc4evb +NB_ɭHC\NuFԪɵc4eWꖬc4ewj6}!.[;J 6ܪഝ\iVHC\*8mh汏4eجc4§V턞HC\*8m'x9 q٪ci5l9UgzֱsUՊ4ewWaHC\񃶓uFԪഝc4evl;!.[>!-:rՄb9=*8W9 q٪Յn:]i<󑆶l]9Pa9U3Y;g!}Z7# i٪ഗi5^h/8h٩ȴ9Ж +Nu朆lUpZiCZtJ:sN#{jUr֙sU-w+> +] +^\G# q٪ݥci5h;9[iO +NIY񑆸lUpQc4evb5}!.[*    \@|j_@q@l_@q@l_@q@l_@    \@|j_@q@l_@q@l_@q@l_@ #Ȗ #  #Ȗ # =. -:6ruau{aEHe†_. >n/ @_@i@l_@q@l_@{|n_@q@lrqSˏ.\0篷'ׇ?'Cbendstream +endobj +427 0 obj << +/Type /Page +/Contents 428 0 R +/Resources 426 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 243 0 R +/Annots [ 430 0 R 431 0 R 432 0 R 433 0 R ] +>> endobj +430 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [190.2864 702.5455 421.6065 714.5553] +/Subtype /Link +/A << /S /GoTo /D (719) >> +>> endobj +431 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 702.5455 515.0685 714.5553] +/Subtype /Link +/A << /S /GoTo /D (719) >> +>> endobj +432 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.3761 694.1818 260.452 703.5964] +/Subtype /Link +/A << /S /GoTo /D (731) >> +>> endobj +433 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [503.1133 694.1818 515.0685 703.5964] +/Subtype /Link +/A << /S /GoTo /D (731) >> +>> endobj +429 0 obj << +/D [427 0 R /XYZ 95.6414 729.2652 null] +>> endobj +426 0 obj << +/Font << /F28 250 0 R /F37 371 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +438 0 obj << +/Length 2203 +/Filter /FlateDecode +>> +stream +xڅˎ_ѷUp { /lll3RZe޾S*UdXo*2$L6yTQFl^]k8(aBݧayoL@1-xr=+ so$_D%y/(IQmQGQRύ~V8N۰eea)ht"(*Z^AۅvN\?斀=/5 +ڇ_I1aE}SP䉡f4j=`kc'.JAן^vnMCT߫Z|D"~Q^g_hԣp<,LSjY5j'Fr3 +EC,^Q'؋D~c' U]ޯ-1 ŀN@AUӎğV9Z 0rdI]126'Bor-z]Yh‚TBqA;gCκݩcJ9ӾJrU5;`ޒY #%ʮreǗ IZ o_ "is ^&^e@-X:B:ir`*\ g ^4uWޅTIDMUwBCtM cA`~q.Hf`T]:]ヷAN !~L+sOjj%&D#L H'&Vͼk`fH;YIPI^&]Qo:3PVBѠAТZUs/%%8Cf洸LuV }[PHesrʼnInl#` ,ƒsc[H~澻״]TffoɩZUdMy%4j+ӂOp(2k2)\*"Hr5'ά >PBh9a5j$Qpb5Kr[٩ g5~Ԭ}8pXU3ry"4(E$qˎ.^0-֦0hHF@RDt&?ىX'_Π)+"EV:0r!pULpO'~(!_Ԛ)EuYI?4o{[cU'͂rK3V1-PBnHҥP#o% +޿[`S޻L#QI8ںb&pZ=C@-rq5wl6Y%qPfPfCz9g$4skT/Gh0 m#L-w2ҮMc4RV?u CZÓBOxRN`Z'j6{#h&&=Eb8q^Er?JPH&Oe5@cVF14a +.$0ӭ u81s#Z`> d~Uv%GKt+n0gy!s+:SF +}h5!9_Y@&*~DxEk8Mư H?Ӕ OKi +25;Sʚ%~sMލ +?ry2~߾ιK^߆:)R0BZVW'p xBMs -x,qJ'3TtK__C>b0)4M[3G:j~ӶĀ.",b፲z 9ع#,S?]UrŒza鱕腳3ȃ}eaYf7q Xʓٽ 'шrD]mvu'46l5FQLmKC?K$uyt~O-&MӜr}-bwh `g]d~M܃AV=4mGY[k8x!4w+p8/J$sy&I׭,|^iP~raR=?7endstream +endobj +437 0 obj << +/Type /Page +/Contents 438 0 R +/Resources 436 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 243 0 R +>> endobj +439 0 obj << +/D [437 0 R /XYZ 95.6414 729.2652 null] +>> endobj +372 0 obj << +/D [437 0 R /XYZ 95.6414 716.3138 null] +>> endobj +10 0 obj << +/D [437 0 R /XYZ 148.341 705.6731 null] +>> endobj +440 0 obj << +/D [437 0 R /XYZ 95.6414 693.2249 null] +>> endobj +441 0 obj << +/D [437 0 R /XYZ 95.6414 641.7808 null] +>> endobj +442 0 obj << +/D [437 0 R /XYZ 95.6414 592.9638 null] +>> endobj +373 0 obj << +/D [437 0 R /XYZ 95.6414 571.046 null] +>> endobj +14 0 obj << +/D [437 0 R /XYZ 185.9961 539.3608 null] +>> endobj +443 0 obj << +/D [437 0 R /XYZ 95.6414 529.9859 null] +>> endobj +444 0 obj << +/D [437 0 R /XYZ 200.9184 499.8539 null] +>> endobj +445 0 obj << +/D [437 0 R /XYZ 295.0594 499.8539 null] +>> endobj +446 0 obj << +/D [437 0 R /XYZ 188.4194 488.895 null] +>> endobj +374 0 obj << +/D [437 0 R /XYZ 95.6414 470.1454 null] +>> endobj +18 0 obj << +/D [437 0 R /XYZ 245.0166 438.4432 null] +>> endobj +447 0 obj << +/D [437 0 R /XYZ 95.6414 428.8628 null] +>> endobj +448 0 obj << +/D [437 0 R /XYZ 143.462 398.9364 null] +>> endobj +449 0 obj << +/D [437 0 R /XYZ 190.3158 387.9775 null] +>> endobj +450 0 obj << +/D [437 0 R /XYZ 95.6414 369.2278 null] +>> endobj +451 0 obj << +/D [437 0 R /XYZ 447.8526 339.1605 null] +>> endobj +452 0 obj << +/D [437 0 R /XYZ 407.69 328.2016 null] +>> endobj +453 0 obj << +/D [437 0 R /XYZ 95.6414 309.452 null] +>> endobj +454 0 obj << +/D [437 0 R /XYZ 293.0165 290.3436 null] +>> endobj +455 0 obj << +/D [437 0 R /XYZ 95.6414 271.594 null] +>> endobj +456 0 obj << +/D [437 0 R /XYZ 194.7867 252.4856 null] +>> endobj +457 0 obj << +/D [437 0 R /XYZ 300.6508 241.5267 null] +>> endobj +436 0 obj << +/Font << /F23 242 0 R /F28 250 0 R /F37 371 0 R /F36 315 0 R /F35 258 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +460 0 obj << +/Length 147 +/Filter /FlateDecode +>> +stream +x}0 |v'uV$@bbȆPi Ot!ӽ#pR($0pBa0BvIYm Sy<Rȗcwx4ǩ?7B]Qi>H;BoU_?endstream +endobj +459 0 obj << +/Type /Page +/Contents 460 0 R +/Resources 458 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 243 0 R +>> endobj +461 0 obj << +/D [459 0 R /XYZ 95.6414 729.2652 null] +>> endobj +458 0 obj << +/Font << /F37 371 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +464 0 obj << +/Length 2335 +/Filter /FlateDecode +>> +stream +xZ?X$6Hk\PAzl83d[/)#rHǙ!}b៘)fTL+>7Wx<1 +>&F;[y_(pga/D2mZ2]nS$Vqoah +dBIeRzʬu_,/tmh*r>r.&z)][Yc.6˩g]EqK1v7YG)iW\I=l6u\[#+`хLjTi|NqWET(vCbjE>^ݲ\rD~L15L\hOM#&P#)h֤ b1x_ȀEDfyFn05||'*% ::cUu٪~U'ĘXYE Ԣ"ǫ4oNڋ, s LgELuX)S{Wu&, {%q28D(:o1i\m3gJ q_~zSA.nX0C(pE~ȅtsHKo1_UK`3齀,qUɤV!x8mU LhRMơ{l0kjE]c]1@NNHGF$:"ۀGlϱ#êsB9H]JkƟRbJ*N\gmJϨ}D{-2T +`\n;mM +Αk~x4 |6 Yb8\BN5 +mC7"}FN @A iiVƘ "d_5{*^4GrT1үd~andaS`nRpF@ӄt~*iZ[;u]]a98ՔN)x)iBk({P>SV6W@߷ga:{݀t=^K^تJZ9@S]).А isbI=g=f G! sz4ԫ'q+~Gz'T,ÿ0ber]=kqtfûŤ#է< S%tf3:8IWfn~pߟ|ckg2QthpS  #jo%˫w$]rj)9ʗ$_P>堶}A*{@'`W/_m(=nncB2Z׉:YY]W2߇'\HaF e> y6Lᑑ +~ vgX <^BAQJנ;aW^$09tkf9bElvdh)qd7;$FΊ8`j$PCDz!WVph]\fN,Gθd > endobj +375 0 obj << +/D [463 0 R /XYZ 95.6414 716.3138 null] +>> endobj +22 0 obj << +/D [463 0 R /XYZ 246.4182 705.6731 null] +>> endobj +465 0 obj << +/D [463 0 R /XYZ 95.6414 690.3878 null] +>> endobj +466 0 obj << +/D [463 0 R /XYZ 379.766 682.4482 null] +>> endobj +467 0 obj << +/D [463 0 R /XYZ 319.2112 671.4893 null] +>> endobj +468 0 obj << +/D [463 0 R /XYZ 95.6414 663.9815 null] +>> endobj +469 0 obj << +/D [463 0 R /XYZ 153.4247 638.6495 null] +>> endobj +470 0 obj << +/D [463 0 R /XYZ 95.6414 635.8401 null] +>> endobj +471 0 obj << +/D [463 0 R /XYZ 153.4247 622.7092 null] +>> endobj +472 0 obj << +/D [463 0 R /XYZ 95.6414 619.8998 null] +>> endobj +473 0 obj << +/D [463 0 R /XYZ 153.4247 606.769 null] +>> endobj +474 0 obj << +/D [463 0 R /XYZ 95.6414 603.9596 null] +>> endobj +475 0 obj << +/D [463 0 R /XYZ 153.4247 590.8288 null] +>> endobj +376 0 obj << +/D [463 0 R /XYZ 100.6227 574.8886 null] +>> endobj +26 0 obj << +/D [463 0 R /XYZ 267.9037 540.3939 null] +>> endobj +476 0 obj << +/D [463 0 R /XYZ 95.6414 533.5981 null] +>> endobj +377 0 obj << +/D [463 0 R /XYZ 95.6414 494.7053 null] +>> endobj +30 0 obj << +/D [463 0 R /XYZ 325.7313 461.3942 null] +>> endobj +477 0 obj << +/D [463 0 R /XYZ 95.6414 451.8137 null] +>> endobj +478 0 obj << +/D [463 0 R /XYZ 330.4098 443.8051 null] +>> endobj +479 0 obj << +/D [463 0 R /XYZ 262.384 432.8462 null] +>> endobj +480 0 obj << +/D [463 0 R /XYZ 162.1119 421.8873 null] +>> endobj +481 0 obj << +/D [463 0 R /XYZ 95.6414 414.0966 null] +>> endobj +482 0 obj << +/D [463 0 R /XYZ 162.7329 405.9471 null] +>> endobj +483 0 obj << +/D [463 0 R /XYZ 95.6414 365.2796 null] +>> endobj +484 0 obj << +/D [463 0 R /XYZ 95.6414 311.4814 null] +>> endobj +485 0 obj << +/D [463 0 R /XYZ 95.6414 284.6021 null] +>> endobj +486 0 obj << +/D [463 0 R /XYZ 159.7709 273.6432 null] +>> endobj +490 0 obj << +/D [463 0 R /XYZ 95.6414 260.8712 null] +>> endobj +491 0 obj << +/D [463 0 R /XYZ 95.6414 233.9919 null] +>> endobj +492 0 obj << +/D [463 0 R /XYZ 95.6414 211.86 null] +>> endobj +493 0 obj << +/D [463 0 R /XYZ 95.6414 173.6583 null] +>> endobj +494 0 obj << +/D [463 0 R /XYZ 95.6414 173.6583 null] +>> endobj +462 0 obj << +/Font << /F23 242 0 R /F28 250 0 R /F36 315 0 R /F44 489 0 R /F35 258 0 R /F37 371 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +498 0 obj << +/Length 2702 +/Filter /FlateDecode +>> +stream +xZYJwk{AE"ŵ%GmpHYZmrEpDg~bX!ЋXLF\l7|'B뻛?YŋwdI(]cf:ܮdy3Dش?}{nX0XZHpX ŔNSǟ"oo8Si.™HSߨX7op d*鿘NZ1bY zH<SsBL`hGn՛+ +*0ZV}z3^W\ l?n#deo怐Dz'A h=JB~:bN"J&4'Eg\N2jC_?vfI$}QJcPa7rB{_\DS0Kg1feH}uMƚrjH3]KԝPET}Oׯ޿{;癳4LR;Ν/9GLV$Am=|!SB%đXaXnu_+PDǶަ20D]t&:]G'_/,̐$3ZHt">?p.oo}t}s,2 Mge)XqR t*]V&f4UQ&1:6|- n8i港_3Xu3!(>8O.{wgnmv*jg[sv.&A_Aj"O}eMAʸ.[NVۻIG"jyCd[7n.txY1"UaWђsf#h=Q'=M.!ja#*h= +Lr% |fvx)Y"FՕ"n%O +Mݻ /˜MȬ,.4(:|cK &۹O-ՔG֦lٜ@ސn3֖EVNsAۢ{_kՖάHv@1"v=ZcN%{EbgZFqA' ~!}jwh1*e VP z3{5PS[OI}T*(}>aTO㍕xgY4G;0r,p3ZSsdG糧PQӧEL/@E~N0+N`:Mx肁/0CD@ȶs)'k$0[I/QR!daoY$р{Blm;벬VAY5c>RLyMC'FgI4i"xBABmkkx+1uN \' N;4SlEPO{|Hu̸ϝґԕc꥞?3Ψ1wRzJ:LH8|9@kB*, 7fIrG+f$eJzn>5izW]~! t马}V>` 9u9fBNKGיAI[E3G=[g_'at"^Q[rN@ni?{}Ï +5mek*0N: Lu)>a:UPVA̞j@`|g[- +{a !S4įn[܊16uYWKǢz ;ɶ[cΓ:S8Іp%xd3,.^ +["TR lؚ[akN5 [Jr6-TΏ"p?VlE)f(|ylkqn(PqqTLK]z7373jfǀ֫"M0[!ZuGSP7)w]XN̤ I }Z#;! +t9-[jڽhYuI˓@&= 3x#:P\VW助P/z h6pJ߸OLi&'x΁$W]q |)NsI]z33jm"zގ`npPfT&T2_47х5}&Qz-DhϚyIAbnwoopg?M~v +Ŷ hLZ_X.i&ſEYWvendstream +endobj +497 0 obj << +/Type /Page +/Contents 498 0 R +/Resources 496 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 495 0 R +>> endobj +499 0 obj << +/D [497 0 R /XYZ 95.6414 648.1099 null] +>> endobj +500 0 obj << +/D [497 0 R /XYZ 95.6414 610.4313 null] +>> endobj +501 0 obj << +/D [497 0 R /XYZ 279.4522 591.3229 null] +>> endobj +502 0 obj << +/D [497 0 R /XYZ 162.3043 569.4051 null] +>> endobj +503 0 obj << +/D [497 0 R /XYZ 95.6414 545.6741 null] +>> endobj +504 0 obj << +/D [497 0 R /XYZ 95.6414 489.2058 null] +>> endobj +505 0 obj << +/D [497 0 R /XYZ 95.6414 443.5571 null] +>> endobj +506 0 obj << +/D [497 0 R /XYZ 95.6414 347.6368 null] +>> endobj +507 0 obj << +/D [497 0 R /XYZ 349.5073 336.6779 null] +>> endobj +508 0 obj << +/D [497 0 R /XYZ 95.6414 323.9058 null] +>> endobj +509 0 obj << +/D [497 0 R /XYZ 153.4247 295.831 null] +>> endobj +510 0 obj << +/D [497 0 R /XYZ 373.9014 295.831 null] +>> endobj +511 0 obj << +/D [497 0 R /XYZ 224.394 273.9132 null] +>> endobj +512 0 obj << +/D [497 0 R /XYZ 95.6414 260.1449 null] +>> endobj +513 0 obj << +/D [497 0 R /XYZ 153.4247 247.0141 null] +>> endobj +514 0 obj << +/D [497 0 R /XYZ 410.5161 236.0552 null] +>> endobj +515 0 obj << +/D [497 0 R /XYZ 197.0159 214.1374 null] +>> endobj +516 0 obj << +/D [497 0 R /XYZ 259.6848 203.1785 null] +>> endobj +517 0 obj << +/D [497 0 R /XYZ 95.6414 202.9643 null] +>> endobj +518 0 obj << +/D [497 0 R /XYZ 153.4247 187.2383 null] +>> endobj +519 0 obj << +/D [497 0 R /XYZ 95.6414 173.47 null] +>> endobj +520 0 obj << +/D [497 0 R /XYZ 153.4247 160.3391 null] +>> endobj +521 0 obj << +/D [497 0 R /XYZ 360.94 160.3391 null] +>> endobj +522 0 obj << +/D [497 0 R /XYZ 376.7792 149.3802 null] +>> endobj +523 0 obj << +/D [497 0 R /XYZ 95.6414 138.2072 null] +>> endobj +524 0 obj << +/D [497 0 R /XYZ 153.4247 122.4811 null] +>> endobj +378 0 obj << +/D [497 0 R /XYZ 95.6414 90.6007 null] +>> endobj +496 0 obj << +/Font << /F37 371 0 R /F23 242 0 R /F28 250 0 R /F36 315 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +527 0 obj << +/Length 2467 +/Filter /FlateDecode +>> +stream +xڭYKsW(B 0<37S;XUs$RG~}h$Jnb6@׍~PlF͒! g'tvs`gcw?}r$l\Pb&'*bjHoteG4`MnU{NjpbBB%b0 JҘq+ח]RjepP]^VzvZ6 \25˪ 9/f| FYl'ΝE[ᨮ6_2:sFI +XY?eƢFςgtq北ydR9;?Vnn rh{ +|1H&I{ -f$2c8U',<9­c,,1x(X\&<=w!ۺpM޹{ UK +F({d=Nd'ĘBv,Id}omoiUve$ el'N} bLa;$60Uo4Rߊu$ c=:"S)1&ޓ$. +3JP11񑯁X)DGBtNԐJ;DQw]<HR͓W>N)5ķC:E*DJ FT&3]cޖYrŖ<") -1%4pٜ,!Fd*8Ʊjҗ6zJ7Nߖu嫾6^!4bd %%l)""l(Ct]EJO?n-Vu]+'Eވ+\ +(ַٺ/LA5Ƒcv7"/UFB;4T*P@1Ed{3Y.Q sTcWke~?w=P9+^PZ6-U4E֟(ŴCD0.?q.z>Kyf(g1ꮺ; irl4 ~vHJ~۾r31u5E{1A, | +=-aMz[K,N_rz+|_% 3vʻ!%j +)Eֽm1EpE7!$7CVc"Z8d97zkEoԬqTMIM!oQU5R]i滬v[u<7L5EV4ؗ]^LIbz~gAt,1Ư%HuxoJ%V|w}w4ҔND! %8 ަ/ \-ql~ao I4i5;dti xf{s պm Muhޜ3Vm3mt)ǺͶU+91|7?~6JPdTUkA{H{UZ +ġ4j= +ICΓX4{ȊIa ZYP<wY +~O.Q]䪛+[%> +eg)5j +b aЎ†b8 +4ʥv#CYMTs# +nH.1) b{Mz)`+RpdN\f"GZb77uʏ阸4kvJfs Up`zn7>}v}Ӈ?|͇M֔*}mem]n.ᶮ[yk4t^hv`G@28C$n6L@rtDLp:>}Vႇl*!Q~5p qdTE + >ECMa.E(LyeXgx6/2C^*lشs-mkWM^(|.1l 9ih01s}a3p3Y6]BBH}´KdO٪;ŚhlSnlJ}V$ 2> -bEKt %7}r5DfOSIp鄖RAs:UXW +/fPLxb;g[Q 2smXFDEz|ėE*(+|ˊIc9'v=481wbI}}"KP!*­K(_M+ې͹;L}J DЯ?Bg)ĸ/( ^gK>^ɈR\bQ\Q vTh>$_Fșb3% U (pqnMa2j%7 ~ +T1Bnva]o%*XxN&%qe'/e+Qendstream +endobj +526 0 obj << +/Type /Page +/Contents 527 0 R +/Resources 525 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 495 0 R +/Annots [ 553 0 R ] +>> endobj +553 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [339.4146 235.3814 383.738 247.3913] +/Subtype /Link +/A << /S /GoTo /D (TUTOR1-FNAME) >> +>> endobj +34 0 obj << +/D [526 0 R /XYZ 296.0551 706.3512 null] +>> endobj +528 0 obj << +/D [526 0 R /XYZ 95.6414 696.9762 null] +>> endobj +529 0 obj << +/D [526 0 R /XYZ 415.0506 677.8032 null] +>> endobj +530 0 obj << +/D [526 0 R /XYZ 95.6414 668.3637 null] +>> endobj +531 0 obj << +/D [526 0 R /XYZ 153.4247 646.9539 null] +>> endobj +532 0 obj << +/D [526 0 R /XYZ 95.6414 644.1445 null] +>> endobj +533 0 obj << +/D [526 0 R /XYZ 153.4247 631.0137 null] +>> endobj +534 0 obj << +/D [526 0 R /XYZ 95.6414 628.2043 null] +>> endobj +535 0 obj << +/D [526 0 R /XYZ 153.4247 615.0735 null] +>> endobj +536 0 obj << +/D [526 0 R /XYZ 95.6414 612.2641 null] +>> endobj +537 0 obj << +/D [526 0 R /XYZ 153.4247 599.1332 null] +>> endobj +538 0 obj << +/D [526 0 R /XYZ 95.6414 596.3238 null] +>> endobj +539 0 obj << +/D [526 0 R /XYZ 153.4247 583.193 null] +>> endobj +540 0 obj << +/D [526 0 R /XYZ 95.6414 559.4621 null] +>> endobj +541 0 obj << +/D [526 0 R /XYZ 303.554 551.3126 null] +>> endobj +542 0 obj << +/D [526 0 R /XYZ 354.1796 551.3126 null] +>> endobj +543 0 obj << +/D [526 0 R /XYZ 160.7095 540.3537 null] +>> endobj +544 0 obj << +/D [526 0 R /XYZ 352.3458 529.3948 null] +>> endobj +545 0 obj << +/D [526 0 R /XYZ 300.6374 518.4359 null] +>> endobj +546 0 obj << +/D [526 0 R /XYZ 360.0899 518.4359 null] +>> endobj +379 0 obj << +/D [526 0 R /XYZ 95.6414 499.6862 null] +>> endobj +38 0 obj << +/D [526 0 R /XYZ 241.529 467.984 null] +>> endobj +547 0 obj << +/D [526 0 R /XYZ 95.6414 458.4036 null] +>> endobj +548 0 obj << +/D [526 0 R /XYZ 449.3519 450.395 null] +>> endobj +549 0 obj << +/D [526 0 R /XYZ 497.9328 428.4772 null] +>> endobj +550 0 obj << +/D [526 0 R /XYZ 95.6414 412.3228 null] +>> endobj +551 0 obj << +/D [526 0 R /XYZ 95.6414 355.9293 null] +>> endobj +552 0 obj << +/D [526 0 R /XYZ 95.6414 250.146 null] +>> endobj +380 0 obj << +/D [526 0 R /XYZ 95.6414 231.3964 null] +>> endobj +42 0 obj << +/D [526 0 R /XYZ 228.8791 199.6942 null] +>> endobj +554 0 obj << +/D [526 0 R /XYZ 95.6414 190.1138 null] +>> endobj +555 0 obj << +/D [526 0 R /XYZ 468.6926 171.1462 null] +>> endobj +556 0 obj << +/D [526 0 R /XYZ 461.1674 160.1873 null] +>> endobj +557 0 obj << +/D [526 0 R /XYZ 283.3219 149.2284 null] +>> endobj +558 0 obj << +/D [526 0 R /XYZ 95.6414 135.4601 null] +>> endobj +559 0 obj << +/D [526 0 R /XYZ 95.6414 99.8537 null] +>> endobj +560 0 obj << +/D [526 0 R /XYZ 95.6414 99.8537 null] +>> endobj +525 0 obj << +/Font << /F37 371 0 R /F23 242 0 R /F28 250 0 R /F36 315 0 R /F35 258 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +564 0 obj << +/Length 1682 +/Filter /FlateDecode +>> +stream +xYKs6W34cx[j;i2NNzHrH"Y>⨿ Hb[i3 @Ň X ds-zڂZjhw~9'S1J=pcN(˴ɶ\0ͥ =fٮƀs[<ǁxy%u;nfpڅ^$Ju+sMN,WQZE &4 +#O^zltKe44QRfs=C߀APr6@xh8G;*m#rЯfŌӨ,FFiO1Ysra8r8&gs鞐zĸt]o8 B&QyVTQ eE^C/ 3c^kN :ҋҫq@7A:B.ҳh1MXI3tC <ي7gYdͯptr$-[Wy];ЅK|~!80 Y#Jٜ:]guZjFp 訁@FhPWH4ɏR盫 IZ}C +,$/W'r@β}BN jdZT&N^HV"X L~~qqyҸmΘ#S8i`[PQ̶C)ǵb}+G"u)w K@zzȰ6"Z)͗抻Nk@Vl>lQ2+&@ֺ&h6ɔ%CzNߒ*od0'~* (A;kgdNZpi4t"[J>/>d3Kp,|"v>o4M Dvendstream +endobj +563 0 obj << +/Type /Page +/Contents 564 0 R +/Resources 562 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 495 0 R +>> endobj +565 0 obj << +/D [563 0 R /XYZ 95.6414 503.5526 null] +>> endobj +566 0 obj << +/D [563 0 R /XYZ 95.6414 471.8515 null] +>> endobj +567 0 obj << +/D [563 0 R /XYZ 95.6414 277.3011 null] +>> endobj +568 0 obj << +/D [563 0 R /XYZ 257.5312 266.3422 null] +>> endobj +569 0 obj << +/D [563 0 R /XYZ 481.7933 266.3422 null] +>> endobj +570 0 obj << +/D [563 0 R /XYZ 300.5933 255.3833 null] +>> endobj +571 0 obj << +/D [563 0 R /XYZ 397.5072 255.3833 null] +>> endobj +572 0 obj << +/D [563 0 R /XYZ 177.5038 244.4244 null] +>> endobj +573 0 obj << +/D [563 0 R /XYZ 217.3343 244.4244 null] +>> endobj +562 0 obj << +/Font << /F37 371 0 R /F23 242 0 R /F36 315 0 R /F28 250 0 R /F44 489 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +576 0 obj << +/Length 2192 +/Filter /FlateDecode +>> +stream +xڍk@=DӶ]E[$VΏο/)R3])H/)ڄE2Y%\BfTݛps& +a .2Lx iśu<6?yNE ?nGU_36j +M)Lf8E!l2)-Gj@@CB6 'B0ф9Uւ?~y$IA-N<2 j'TlBQq.o~ө PjZj`2q:=ULΦm1&Y;"jmym~u{4't4T$( :Xp"+l%V =^jd`K"j)mNd8w`Il9U*_*?U:3ꖼ/){$U s$F?TWgaV 'ݨNdF=4L':QxPU6S-!(hGCPO\酃EGNW'7c'X?HYhn 8I BI0`݁eWprԽ+es^h\cZ25U+H<(eJ?l03ջfޗ_fb0RI9,ѿJt8>꣹\85;V;qPtRNgڏ@#瀢539 N$ ̆vbֻ(E'KHP)e7q1m۰#"`τf[D9Efl"uF[?'TBmk!^ev=ɭIޖz!+~,G+;^Rɕ'/V2.ܖ~T[ JL 7 {h$T(jJJE cٵD|-Qs'lq?׺eV)m4dɭ}:@<#,blgF Pdk(z1/'Җh[c4pn_nm(A+km;_M#t<7P!FLaNGu txdv{už7GО_&z". ELdW{,$[eYl6֥Â;@dLXEIX:y4B."d.$qیjX,͊cR{gCԴ%PO S/ͨr+&s'C[=bر!muܝnO^> z[DYp6~I6v,Ɩz MT"mbvԂ9N4X8mT9B7ẘ!U$XRݪVHVq|/4˹á/ЕW&_2n ]B~b>DHv:lub:Qpl>ԣjZ xדglas+ғOckN&ihCz_hRJཻDch_P> endobj +381 0 obj << +/D [575 0 R /XYZ 95.6414 716.3138 null] +>> endobj +46 0 obj << +/D [575 0 R /XYZ 299.9345 705.6731 null] +>> endobj +577 0 obj << +/D [575 0 R /XYZ 95.6414 690.3878 null] +>> endobj +578 0 obj << +/D [575 0 R /XYZ 268.3395 671.4893 null] +>> endobj +579 0 obj << +/D [575 0 R /XYZ 269.7118 649.5715 null] +>> endobj +580 0 obj << +/D [575 0 R /XYZ 365.54 649.5715 null] +>> endobj +382 0 obj << +/D [575 0 R /XYZ 95.6414 635.8032 null] +>> endobj +50 0 obj << +/D [575 0 R /XYZ 204.7852 604.118 null] +>> endobj +581 0 obj << +/D [575 0 R /XYZ 95.6414 594.743 null] +>> endobj +582 0 obj << +/D [575 0 R /XYZ 143.462 564.6111 null] +>> endobj +583 0 obj << +/D [575 0 R /XYZ 221.1398 553.6522 null] +>> endobj +584 0 obj << +/D [575 0 R /XYZ 95.6414 545.8615 null] +>> endobj +585 0 obj << +/D [575 0 R /XYZ 283.1867 526.7531 null] +>> endobj +586 0 obj << +/D [575 0 R /XYZ 95.6414 513.981 null] +>> endobj +383 0 obj << +/D [575 0 R /XYZ 95.6414 408.0588 null] +>> endobj +54 0 obj << +/D [575 0 R /XYZ 213.2721 373.6861 null] +>> endobj +587 0 obj << +/D [575 0 R /XYZ 95.6414 364.3112 null] +>> endobj +588 0 obj << +/D [575 0 R /XYZ 235.9558 323.2204 null] +>> endobj +589 0 obj << +/D [575 0 R /XYZ 256.8599 323.2204 null] +>> endobj +590 0 obj << +/D [575 0 R /XYZ 293.5647 323.2204 null] +>> endobj +591 0 obj << +/D [575 0 R /XYZ 462.2844 323.2204 null] +>> endobj +592 0 obj << +/D [575 0 R /XYZ 252.5176 312.2615 null] +>> endobj +593 0 obj << +/D [575 0 R /XYZ 414.0426 312.2615 null] +>> endobj +594 0 obj << +/D [575 0 R /XYZ 95.6414 280.1669 null] +>> endobj +595 0 obj << +/D [575 0 R /XYZ 95.6414 201.2384 null] +>> endobj +384 0 obj << +/D [575 0 R /XYZ 95.6414 171.6688 null] +>> endobj +58 0 obj << +/D [575 0 R /XYZ 147.2231 139.9666 null] +>> endobj +596 0 obj << +/D [575 0 R /XYZ 95.6414 130.3862 null] +>> endobj +597 0 obj << +/D [575 0 R /XYZ 219.2071 89.5009 null] +>> endobj +598 0 obj << +/D [575 0 R /XYZ 95.6414 76.7288 null] +>> endobj +599 0 obj << +/D [575 0 R /XYZ 95.6414 46.8244 null] +>> endobj +574 0 obj << +/Font << /F23 242 0 R /F28 250 0 R /F37 371 0 R /F36 315 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +602 0 obj << +/Length 475 +/Filter /FlateDecode +>> +stream +x}T=0+T&tj%Ktp ;%8el9Ɖ|{! #UL@Remd}^C :G}(WOϲ Y sI`F CڝBm((7R5}q7:UY~]}*'v% k3(P21L*;䇺<=#50#0-1[߶SKRϒR,k 6:SU?"hB3 B]z?lHP"wcС~+,:&Ur 9?R 4'PF}Ӵ,@R_B}.|jXmC1εQ3@E2Bs6¬sٺ 7(VN(:}γMKP}B7γ^ߑ^ q_A3747/$endstream +endobj +601 0 obj << +/Type /Page +/Contents 602 0 R +/Resources 600 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 495 0 R +/Annots [ 606 0 R 607 0 R ] +>> endobj +606 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [294.1667 661.7983 338.4901 673.8081] +/Subtype /Link +/A << /S /GoTo /D (TUTOR2-FNAME) >> +>> endobj +607 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [195.0881 650.8394 239.4115 662.8393] +/Subtype /Link +/A << /S /GoTo /D (TUTOR1-FNAME) >> +>> endobj +603 0 obj << +/D [601 0 R /XYZ 95.6414 716.3138 null] +>> endobj +604 0 obj << +/D [601 0 R /XYZ 215.7004 706.3512 null] +>> endobj +605 0 obj << +/D [601 0 R /XYZ 95.6414 675.1821 null] +>> endobj +600 0 obj << +/Font << /F37 371 0 R /F28 250 0 R /F44 489 0 R /F36 315 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +611 0 obj << +/Length 2833 +/Filter /FlateDecode +>> +stream +xڍ]6=@֬D3oI뵇v{ڢBdPl~p4$=tTdIrY +r;VW1$q!0 |ݤq"\fɻW?HZ=/gE*^=T]?`̋4bt8]{Zo{u[/dGR$F*!eR?RCm ]xPg\?MC{j@t?n[%4MGܕrM6?u#6Bđ(ӂ?l6JAQ$cq"I$mVՍڡ׻qWDn >8L;cSS\ 4QWxo>958&.^wMEs=m 1wǙ_Kp086C}j! +Tmi{\ORLJ= esd*I 6wgϓJV>kF³@̝iƊ_ +8#K8DeD@`P @̕wo>ȅ&cqY! +8ft&>T9|~6wЌ4!\p-=T,; 5!g6F$ $]uCU4k4Heo sH{Hs""Ti!`IGMt#I |q_u jn #hx佝*@QF–FPl.Me̕"Q1qE3U2g +*rkk&q"/EfЃVR[>#24WqX($>寊0-dg*JAG^>f+T䪚[Y@iGL TZq=)3UE(۹ (p'֦O]k_I*N,nϼlfyS]PƷ! LJb\JLó8O'WX~xx}_Lu!#h0/Ed0xMݗ@FbMKNDYȒ]Nد%>zaȒK}Y@ +B# dl$vȚ:BI9Yt0a&nFo>qcz.z._Wn bwLǃdcaWFTvF*^\ufkh,Àۯ><\m\iT $sOT9UwsF%Xte"Hq=|rkt}8 !džND9o3?Mq +$7T_u@׻ &(H%whf_ƩWᔺz\,pH= \FLq=m}<4z~"E:쫔?Q7͙&9ЙD\R,wec8g;Ɉ/ xچꆢq'FChL%h#Z$6U̗=3$t_`>Jf9Bi`"ɤi2MRvz)D0rsv0cNwvn ]&UGvco{K{m{־43Yi i1oN +g]3"'ڙ{e"daǣkFTJ,kg`4H/zjմf{ zg]ei\n|(<,KtTAdg a伖 #y@꟞`@)}M(V~Y7c쉛VQ.Ys]7ũj!eoz~@LGFȽS"5{:"j;Ee +,Q+ a;fnn.CV &CIu&opo&EB&sTbrengy[v LMš"e>{ta U`4*~'ŝ ;w\ɩL\6m\U-@O6-yOc8p8.P> endobj +628 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [454.6593 393.4331 495.8447 405.4429] +/Subtype /Link +/A << /S /GoTo /D (C64-1-FNAME) >> +>> endobj +629 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [142.4658 382.534 186.241 394.484] +/Subtype /Link +/A << /S /GoTo /D (KERNAL-FNAME) >> +>> endobj +635 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [362.6576 243.6986 417.6507 255.7084] +/Subtype /Link +/A << /S /GoTo /D (REF-LINK) >> +>> endobj +612 0 obj << +/D [610 0 R /XYZ 95.6414 729.2652 null] +>> endobj +385 0 obj << +/D [610 0 R /XYZ 95.6414 716.3138 null] +>> endobj +62 0 obj << +/D [610 0 R /XYZ 386.9554 705.6731 null] +>> endobj +613 0 obj << +/D [610 0 R /XYZ 95.6414 690.3878 null] +>> endobj +614 0 obj << +/D [610 0 R /XYZ 348.7883 682.4482 null] +>> endobj +386 0 obj << +/D [610 0 R /XYZ 95.6414 646.7621 null] +>> endobj +66 0 obj << +/D [610 0 R /XYZ 253.3567 615.0769 null] +>> endobj +615 0 obj << +/D [610 0 R /XYZ 95.6414 608.281 null] +>> endobj +616 0 obj << +/D [610 0 R /XYZ 293.5682 597.4878 null] +>> endobj +617 0 obj << +/D [610 0 R /XYZ 267.757 575.57 null] +>> endobj +618 0 obj << +/D [610 0 R /XYZ 95.6414 556.8204 null] +>> endobj +619 0 obj << +/D [610 0 R /XYZ 230.7507 548.6709 null] +>> endobj +620 0 obj << +/D [610 0 R /XYZ 95.6414 529.9212 null] +>> endobj +621 0 obj << +/D [610 0 R /XYZ 359.964 521.7717 null] +>> endobj +622 0 obj << +/D [610 0 R /XYZ 95.6414 492.0632 null] +>> endobj +623 0 obj << +/D [610 0 R /XYZ 399.1023 483.9137 null] +>> endobj +624 0 obj << +/D [610 0 R /XYZ 471.0337 472.9548 null] +>> endobj +625 0 obj << +/D [610 0 R /XYZ 95.6414 456.9847 null] +>> endobj +626 0 obj << +/D [610 0 R /XYZ 159.7706 424.1379 null] +>> endobj +627 0 obj << +/D [610 0 R /XYZ 95.6414 416.3471 null] +>> endobj +387 0 obj << +/D [610 0 R /XYZ 95.6414 378.549 null] +>> endobj +70 0 obj << +/D [610 0 R /XYZ 141.7999 346.7869 null] +>> endobj +630 0 obj << +/D [610 0 R /XYZ 95.6414 339.9911 null] +>> endobj +631 0 obj << +/D [610 0 R /XYZ 431.6594 318.239 null] +>> endobj +632 0 obj << +/D [610 0 R /XYZ 161.7453 307.2801 null] +>> endobj +633 0 obj << +/D [610 0 R /XYZ 95.6414 291.1257 null] +>> endobj +634 0 obj << +/D [610 0 R /XYZ 324.1142 280.381 null] +>> endobj +388 0 obj << +/D [610 0 R /XYZ 95.6414 244.6948 null] +>> endobj +74 0 obj << +/D [610 0 R /XYZ 243.0216 215.2402 null] +>> endobj +636 0 obj << +/D [610 0 R /XYZ 95.6414 209.0622 null] +>> endobj +637 0 obj << +/D [610 0 R /XYZ 369.1868 198.2539 null] +>> endobj +638 0 obj << +/D [610 0 R /XYZ 476.4135 198.2539 null] +>> endobj +639 0 obj << +/D [610 0 R /XYZ 210.699 187.295 null] +>> endobj +640 0 obj << +/D [610 0 R /XYZ 95.6414 179.5043 null] +>> endobj +641 0 obj << +/D [610 0 R /XYZ 95.6414 152.6052 null] +>> endobj +642 0 obj << +/D [610 0 R /XYZ 404.3795 144.4557 null] +>> endobj +643 0 obj << +/D [610 0 R /XYZ 469.4518 144.4557 null] +>> endobj +644 0 obj << +/D [610 0 R /XYZ 95.6414 128.3013 null] +>> endobj +645 0 obj << +/D [610 0 R /XYZ 406.8877 117.5566 null] +>> endobj +646 0 obj << +/D [610 0 R /XYZ 95.6414 93.8256 null] +>> endobj +609 0 obj << +/Font << /F23 242 0 R /F28 250 0 R /F36 315 0 R /F37 371 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +652 0 obj << +/Length 1074 +/Filter /FlateDecode +>> +stream +x}V͒6 S(D ER7ߒNJ\[]KtDj޾ A9с dQʬj&+v L:ŬTkYCd~i3Re>z3 +Vќ\0zkF6;3aߺWʭ[RU +Bkޏu#p)\x$(YM%UbcUHJ[;X-$܈v?/e܀)zr%բv@~@3Y +P)hn!`VO+V.Qg%$?gij~u,AG +$ָl״{2hH~.m4jb2;YFT Ώ+OmH9H#(n{{|xھrC[d`(% +F?&&y>>Õdͣw,RG\9,ĝeGZ0QNf Y2.4^`. +<~߹@a8a+ XUGOnIh(Ac=,M|5kq\T(qYzP7fpG48OPIK'8$楸U#]p!vUnaqoqݼ"툜gl/l2cF޴{=tGǓe9I %}+R@3d& Pn7ݥT}p#B 00ZՑDM!dE؇0[5חZ [H 3ߺfLiy_[ +ȉ=~ag)EJ415?Bqx!< ݰC|@i7i{bw?&.>%&P[R+HpE9Y.")Q'n4B1%)뤕\x$p EټA)^v %&vƧva/۽Mo׍tzAsnX)HP&_~D#L7Ton̼^endstream +endobj +651 0 obj << +/Type /Page +/Contents 652 0 R +/Resources 650 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 647 0 R +/Annots [ 662 0 R ] +>> endobj +662 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [142.4658 415.6653 186.7892 427.6752] +/Subtype /Link +/A << /S /GoTo /D (TUTOR3-FNAME) >> +>> endobj +653 0 obj << +/D [651 0 R /XYZ 95.6414 729.2652 null] +>> endobj +389 0 obj << +/D [651 0 R /XYZ 95.6414 646.9345 null] +>> endobj +78 0 obj << +/D [651 0 R /XYZ 248.2173 613.8879 null] +>> endobj +654 0 obj << +/D [651 0 R /XYZ 95.6414 607.7099 null] +>> endobj +655 0 obj << +/D [651 0 R /XYZ 95.6414 580.7472 null] +>> endobj +656 0 obj << +/D [651 0 R /XYZ 256.5364 559.0436 null] +>> endobj +657 0 obj << +/D [651 0 R /XYZ 95.6414 546.2716 null] +>> endobj +658 0 obj << +/D [651 0 R /XYZ 95.6414 518.0116 null] +>> endobj +659 0 obj << +/D [651 0 R /XYZ 471.2261 497.4745 null] +>> endobj +660 0 obj << +/D [651 0 R /XYZ 290.0105 486.5156 null] +>> endobj +390 0 obj << +/D [651 0 R /XYZ 95.6414 468.7622 null] +>> endobj +82 0 obj << +/D [651 0 R /XYZ 184.8157 437.06 null] +>> endobj +661 0 obj << +/D [651 0 R /XYZ 95.6414 427.6851 null] +>> endobj +663 0 obj << +/D [651 0 R /XYZ 204.2974 408.5121 null] +>> endobj +650 0 obj << +/Font << /F37 371 0 R /F36 315 0 R /F23 242 0 R /F28 250 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +667 0 obj << +/Length 3068 +/Filter /FlateDecode +>> +stream +xڍۖ۶_{$qdS'NMӴDbW)RewpI +ks4 ܰ|?"K.WȘ#ς}[S& m% S&<˷(ZIW7ſׯV$Z2U>c?7?t,1 KE"dB98[UEP^5E{ ܩ#;ݟïá)%OEG{vecI[^}}M*(mE) w^fV1OUu˃R[fZ[;6*Sm&ޮ}/;Θ]IvU"%Ul]xr84bE[P ¶7XEGa7rBd"aJDb&aS%&[-OT^Y'6Ʒچv @7&PNm#,#b [@| Wy 3tCGZhYY.?E4e9D˯f[.vnEE '={s3=!b&y&V1,a#vJFqfgD$H0/H.Ip %`UGQ^7hx 3c#`r;n< ˇ]%h)>p㌎p/u@G63.CwCYƶ  X: 88Xثj;%3ϹKŚlyVD!-f DT[[U*Uk o +]+#Skl/C ߫rpcΝ?bwֽiBAGY2wp889􄂭$A)iv(?o&*iːR mdQ/G1Qyݨ>j<L]tفt{HT08PF,p[X4'Rmd>_r9Z&< XAZy % PVG +6DD P,,,;H>/Hu.?sC?vk(bܔjU|Op,, Ss$bQ 5HK*iONΝںLa]&vOZU~%FH˼M6<a1p1:* ^i~nZ@k*߷*{$Ff@W2)^B`l 5 2<|!o @|lMId'Ka,ZkxC4t0γ9,P^rhbvGi8`bޢȯpuU5$)h0#c*|SzntX;6=P-\X08&?YOioˢ.Ζٵ:p״).r|83mnŹoiJًeg>6ߩJ}s"_;z6{"WA +KP^. SbeUCdi;Rmdc*z8,MKaCTr1r6jVώͲ;$e/si:tۈ&>` q8&:ECtNSBF7v4tbTDs :&04ϢJ˜=wJ.ܣYᆾPjG3V9ϓ\}oǟ__ε/F?nL24j){GkW&}KN5@S$4 ,3'IX-z^\ W/{CK"ՖN"0UZ +vO +i_0c<͋j;%$gܗBeL ;%7Hmb}{R1zy R)5sAnS[ x(YF; SU`)XQѩҾeF 5/dQdDl,d@KR[13[ǟ6pQl$n>{GX r^ዤQSEdHQC" R8d*T08˟h )&8+Р P2e\O|=d`JZ% K#%bmnƧScg)vHl:IIw./K@"|.Nd:}L#'.h8 oϢ!PŒE(_̄ȭM! ɔ +Yą酅Q"vUY|j1#&wpnR-]"!ʃOˉޫ׏;[[*aBJu4 ѹn-[grF?endstream +endobj +666 0 obj << +/Type /Page +/Contents 667 0 R +/Resources 665 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 647 0 R +/Annots [ 673 0 R 674 0 R 679 0 R 680 0 R 681 0 R 687 0 R 698 0 R ] +>> endobj +673 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [225.4229 607.9078 271.1284 619.9176] +/Subtype /Link +/A << /S /GoTo /D (CH5-LINK) >> +>> endobj +674 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [300.4205 596.9489 349.1673 608.9587] +/Subtype /Link +/A << /S /GoTo /D (TUTOR4A-FNAME) >> +>> endobj +679 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [344.7506 559.0909 390.7915 571.1007] +/Subtype /Link +/A << /S /GoTo /D (CH3-LINK) >> +>> endobj +680 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [497.5844 559.0909 515.0685 571.1007] +/Subtype /Link +/A << /S /GoTo /D (KERNAL-FNAME) >> +>> endobj +681 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.6451 548.1918 174.067 560.1418] +/Subtype /Link +/A << /S /GoTo /D (KERNAL-FNAME) >> +>> endobj +687 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [270.8329 327.4596 319.7689 339.4694] +/Subtype /Link +/A << /S /GoTo /D (TUTOR4B-FNAME) >> +>> endobj +698 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [230.1659 135.3799 278.544 147.3897] +/Subtype /Link +/A << /S /GoTo /D (TUTOR4C-FNAME) >> +>> endobj +668 0 obj << +/D [666 0 R /XYZ 95.6414 729.2652 null] +>> endobj +391 0 obj << +/D [666 0 R /XYZ 95.6414 716.3138 null] +>> endobj +86 0 obj << +/D [666 0 R /XYZ 281.2644 705.6731 null] +>> endobj +669 0 obj << +/D [666 0 R /XYZ 95.6414 690.3878 null] +>> endobj +670 0 obj << +/D [666 0 R /XYZ 427.9888 660.5304 null] +>> endobj +671 0 obj << +/D [666 0 R /XYZ 234.7129 649.5715 null] +>> endobj +672 0 obj << +/D [666 0 R /XYZ 95.6414 630.8219 null] +>> endobj +675 0 obj << +/D [666 0 R /XYZ 340.2019 589.7957 null] +>> endobj +676 0 obj << +/D [666 0 R /XYZ 95.6414 582.0049 null] +>> endobj +677 0 obj << +/D [666 0 R /XYZ 143.462 562.8965 null] +>> endobj +678 0 obj << +/D [666 0 R /XYZ 220.6904 562.8965 null] +>> endobj +682 0 obj << +/D [666 0 R /XYZ 422.6322 551.9376 null] +>> endobj +683 0 obj << +/D [666 0 R /XYZ 95.6414 539.2254 null] +>> endobj +684 0 obj << +/D [666 0 R /XYZ 95.6414 510.9056 null] +>> endobj +685 0 obj << +/D [666 0 R /XYZ 95.6414 480.1917 null] +>> endobj +686 0 obj << +/D [666 0 R /XYZ 95.6414 340.8434 null] +>> endobj +688 0 obj << +/D [666 0 R /XYZ 258.9382 309.3474 null] +>> endobj +689 0 obj << +/D [666 0 R /XYZ 451.4904 276.4707 null] +>> endobj +690 0 obj << +/D [666 0 R /XYZ 143.462 265.5118 null] +>> endobj +691 0 obj << +/D [666 0 R /XYZ 95.6414 259.1498 null] +>> endobj +692 0 obj << +/D [666 0 R /XYZ 163.8991 249.5716 null] +>> endobj +693 0 obj << +/D [666 0 R /XYZ 95.6414 203.9228 null] +>> endobj +694 0 obj << +/D [666 0 R /XYZ 95.6414 175.6628 null] +>> endobj +695 0 obj << +/D [666 0 R /XYZ 206.8683 166.0847 null] +>> endobj +696 0 obj << +/D [666 0 R /XYZ 425.5403 166.0847 null] +>> endobj +697 0 obj << +/D [666 0 R /XYZ 95.6414 147.3351 null] +>> endobj +699 0 obj << +/D [666 0 R /XYZ 95.6414 131.3948 null] +>> endobj +700 0 obj << +/D [666 0 R /XYZ 256.9699 123.2453 null] +>> endobj +701 0 obj << +/D [666 0 R /XYZ 187.6476 90.3686 null] +>> endobj +702 0 obj << +/D [666 0 R /XYZ 370.8438 90.3686 null] +>> endobj +703 0 obj << +/D [666 0 R /XYZ 441.6439 90.3686 null] +>> endobj +704 0 obj << +/D [666 0 R /XYZ 162.8194 79.4097 null] +>> endobj +665 0 obj << +/Font << /F23 242 0 R /F28 250 0 R /F36 315 0 R /F44 489 0 R /F37 371 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +710 0 obj << +/Length 163 +/Filter /FlateDecode +>> +stream +x}0 > endobj +711 0 obj << +/D [709 0 R /XYZ 95.6414 729.2652 null] +>> endobj +708 0 obj << +/Font << /F37 371 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +714 0 obj << +/Length 2744 +/Filter /FlateDecode +>> +stream +xڭk6{~?a͈}^irh(Kq%n~pdk(AÙpHΓ+~r"RRb?~zv@d%/uJ%VW^$$ +Vw<@n_7Əu(tIÕu[֥뜀T #!:LwW4HVH#?BT,ߋV?R JT'Wr&'LQgonǽ22UBd6#fF2UR@@uA2LPkZ߃2Y‰zkz1Y#afS2Q}QП'dC6L- P\z$tEv~jkjt۽!uSUM8)ӛ_߼aYl[>OQg君F)V^)<@"ulln3愔)էh'T퇶yayFti4*jFިS(8k)4 P>LLX'OgymMhWm;zWdϯzV5Ɓ4[D4U& wD E.J-y%<~eHb'kl 㦃ol=pW'3]g62?Ҙ It,ȜeC5}SI0Ym< ERgAZZ7t#x>ў㱁*_ZMn;<ϸpnJHĥ^.+jBc`Oh 91SW fL-{4$}ux{Kݙ%1\nFea31^̱ _T56*k h =_o 8*z ˧s]o'+KγT9s6 = 5#b=5&p☜ƧT~P5f۪ |6_ _aAQζB+`r[l&[9M/3H}Ir/d>6} zB`ީ{f !,;@(]^s2vy yS?9X!{`2qL.M5'AmM<N^=Rye;k❤揞9Xk$'#WDu%"~1ɿ*!3H7sIB~T9R^ +] lfsx(دFHa%y$y`:F[#PNA0lh{cs*0,ΔƂp]h cBЛR# 6/,ElPc;mz`(O$3fWw}&(]'9Vc%yD@nmQ8'!5mC3n\1P{Mi^/_.zREA"ifk;Ø$O=;.nݱ'S1̷#hıBw$S 肅 7['Z %"s-bV2T"1v5v3H8>֭f|NBS%ҟ]Lr0H#+$q<q2}/OmL]#H{\u'|гV~)hk4]/)P괨C Pc7u +v5bGGi4E]'<Dshn!T +9=blK]3|`}H.jk 6$@~ +"%WY(EBLk+,ԯ(K)`R*=BEؼHOchݒ򁈢[ո';Z~tQM +|߁.Y*X8^*D9_/;,c56Oe I֝\wt>Y>p/Pq; 7I_˛+Z8MiSԖW +U2oh뒱 tgK]?߼8kRUk)'Κx;7B#}. +* /1(ڕ8?gEKK|Lt< +qB)!=UDž;|A_Zendstream +endobj +713 0 obj << +/Type /Page +/Contents 714 0 R +/Resources 712 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 647 0 R +/Annots [ 717 0 R ] +>> endobj +717 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [218.1769 678.6425 263.4121 690.6524] +/Subtype /Link +/A << /S /GoTo /D (CH4-LINK) >> +>> endobj +715 0 obj << +/D [713 0 R /XYZ 95.6414 729.2652 null] +>> endobj +392 0 obj << +/D [713 0 R /XYZ 95.6414 716.3138 null] +>> endobj +90 0 obj << +/D [713 0 R /XYZ 439.0571 705.6731 null] +>> endobj +716 0 obj << +/D [713 0 R /XYZ 95.6414 690.1618 null] +>> endobj +718 0 obj << +/D [713 0 R /XYZ 487.1731 671.4893 null] +>> endobj +719 0 obj << +/D [713 0 R /XYZ 377.6531 660.3701 null] +>> endobj +720 0 obj << +/D [713 0 R /XYZ 495.8111 638.4523 null] +>> endobj +721 0 obj << +/D [713 0 R /XYZ 95.6414 619.7027 null] +>> endobj +722 0 obj << +/D [713 0 R /XYZ 95.6414 598.7811 null] +>> endobj +723 0 obj << +/D [713 0 R /XYZ 95.6414 443.5438 null] +>> endobj +724 0 obj << +/D [713 0 R /XYZ 383.4459 399.8472 null] +>> endobj +725 0 obj << +/D [713 0 R /XYZ 288.7855 366.9705 null] +>> endobj +726 0 obj << +/D [713 0 R /XYZ 332.1528 366.9705 null] +>> endobj +727 0 obj << +/D [713 0 R /XYZ 95.6414 354.1984 null] +>> endobj +728 0 obj << +/D [713 0 R /XYZ 95.6414 316.0754 null] +>> endobj +729 0 obj << +/D [713 0 R /XYZ 95.6414 265.8298 null] +>> endobj +730 0 obj << +/D [713 0 R /XYZ 282.7188 257.6803 null] +>> endobj +731 0 obj << +/D [713 0 R /XYZ 333.7347 257.6803 null] +>> endobj +732 0 obj << +/D [713 0 R /XYZ 439.2246 257.6803 null] +>> endobj +733 0 obj << +/D [713 0 R /XYZ 362.6798 246.7214 null] +>> endobj +734 0 obj << +/D [713 0 R /XYZ 487.1731 235.7625 null] +>> endobj +735 0 obj << +/D [713 0 R /XYZ 95.6414 219.6081 null] +>> endobj +736 0 obj << +/D [713 0 R /XYZ 95.6414 196.0913 null] +>> endobj +737 0 obj << +/D [713 0 R /XYZ 251.7728 168.1162 null] +>> endobj +738 0 obj << +/D [713 0 R /XYZ 350.14 157.1573 null] +>> endobj +739 0 obj << +/D [713 0 R /XYZ 248.7361 146.1984 null] +>> endobj +740 0 obj << +/D [713 0 R /XYZ 95.6414 138.4077 null] +>> endobj +741 0 obj << +/D [713 0 R /XYZ 420.7937 130.2582 null] +>> endobj +742 0 obj << +/D [713 0 R /XYZ 277.9079 119.2993 null] +>> endobj +743 0 obj << +/D [713 0 R /XYZ 320.5811 119.2993 null] +>> endobj +744 0 obj << +/D [713 0 R /XYZ 189.1402 108.3404 null] +>> endobj +745 0 obj << +/D [713 0 R /XYZ 260.5519 108.3404 null] +>> endobj +746 0 obj << +/D [713 0 R /XYZ 95.6414 100.5496 null] +>> endobj +747 0 obj << +/D [713 0 R /XYZ 231.2617 92.4001 null] +>> endobj +748 0 obj << +/D [713 0 R /XYZ 95.6414 81.0567 null] +>> endobj +712 0 obj << +/Font << /F23 242 0 R /F28 250 0 R /F36 315 0 R /F37 371 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +751 0 obj << +/Length 1182 +/Filter /FlateDecode +>> +stream +xڝWKs6W萙P&wzruNa _%@ʯ ʤ$۝X~]<&IDUr’Dsv :?9cr',Ymtd1V佖gq_:k$Pm-ny[ ȦH+kdW?l4"AQOVD}$J@Y0̺Ozi 2?'Y"_` GN,IjjZ|jڧ N*phf8ʀ9?:[`i4 BW n * bt2Y2/5 ϟ(jqxE^Hqjp=&%, O$ +EpIN[pSe<Ŷ1NqiNἽ< w @,L>Z$96R3f叼c qA9 YZI/>Ȏ(;OkQwCL<Sy un}sm6͘_;풀=jx{-WP8LY5N)CFhF'_\/9Z\,4qx>,?'ǣCl0IsE/Y0L=`_7endstream +endobj +750 0 obj << +/Type /Page +/Contents 751 0 R +/Resources 749 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 647 0 R +/Annots [ 759 0 R ] +>> endobj +759 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [308.3323 337.116 352.6557 349.1258] +/Subtype /Link +/A << /S /GoTo /D (TUTOR5-FNAME) >> +>> endobj +752 0 obj << +/D [750 0 R /XYZ 95.6414 729.2652 null] +>> endobj +753 0 obj << +/D [750 0 R /XYZ 95.6414 538.4415 null] +>> endobj +754 0 obj << +/D [750 0 R /XYZ 95.6414 492.9316 null] +>> endobj +755 0 obj << +/D [750 0 R /XYZ 95.6414 456.0504 null] +>> endobj +756 0 obj << +/D [750 0 R /XYZ 390.0325 423.3127 null] +>> endobj +757 0 obj << +/D [750 0 R /XYZ 95.6414 391.2181 null] +>> endobj +758 0 obj << +/D [750 0 R /XYZ 95.6414 350.4998 null] +>> endobj +749 0 obj << +/Font << /F37 371 0 R /F36 315 0 R /F28 250 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +763 0 obj << +/Length 1657 +/Filter /FlateDecode +>> +stream +xڥXm6 _C/^z +]>tC/C8Jձ3۹\Gt.N|w|LR$EJb +zxINIV͙_;#4,l^l␣Pwl͑kui햠%ރr.zGn.Nމ.&?^L?W}04|βz[Ź NjGپe^/.p#9~exy +zos'aU;vꅒ\ȇy}Rh2@U>sgFHDpﭟ-oڻsn1 I'>+8fd>PA%Q98sggNpRsܟg%'{sxʼn\ QN0 R(=﫝=·d\i@00;".lDҌnAИ)h}*+ }pQ%䋫HG"ISsn,Tw:wj0s4zES!V e#Ho^\%*\fL-u Naum\n @/LI#\p>Yr87]sgZw -kO4AneBu=/UVJ9TU661l]ۯGM 7_]:$dq׽30bxylzjK5V4Y[,='?UtݯyPG(%|S;xk_R=^ {t8*_v!TE#dpyQ +ζ샯脯H=.;uȖJEQ-k?c)=LfSƋ +Kȼ Ԍ!+B*MЋ"tk0uׁܺn4+؂{({nzg%`ϛNfr$1QbC% +S ,Nhendstream +endobj +762 0 obj << +/Type /Page +/Contents 763 0 R +/Resources 761 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 784 0 R +>> endobj +764 0 obj << +/D [762 0 R /XYZ 95.6414 729.2652 null] +>> endobj +393 0 obj << +/D [762 0 R /XYZ 95.6414 716.3138 null] +>> endobj +94 0 obj << +/D [762 0 R /XYZ 257.7662 705.6731 null] +>> endobj +765 0 obj << +/D [762 0 R /XYZ 95.6414 690.3878 null] +>> endobj +766 0 obj << +/D [762 0 R /XYZ 334.1403 660.5304 null] +>> endobj +767 0 obj << +/D [762 0 R /XYZ 95.6414 641.7808 null] +>> endobj +768 0 obj << +/D [762 0 R /XYZ 95.6414 620.8592 null] +>> endobj +769 0 obj << +/D [762 0 R /XYZ 95.6414 455.7589 null] +>> endobj +770 0 obj << +/D [762 0 R /XYZ 454.3123 444.939 null] +>> endobj +771 0 obj << +/D [762 0 R /XYZ 487.8227 433.9801 null] +>> endobj +775 0 obj << +/D [762 0 R /XYZ 143.462 423.0212 null] +>> endobj +776 0 obj << +/D [762 0 R /XYZ 456.4286 423.0212 null] +>> endobj +777 0 obj << +/D [762 0 R /XYZ 95.6414 401.8855 null] +>> endobj +778 0 obj << +/D [762 0 R /XYZ 95.6414 342.683 null] +>> endobj +779 0 obj << +/D [762 0 R /XYZ 95.6414 308.1321 null] +>> endobj +780 0 obj << +/D [762 0 R /XYZ 95.6414 122.2657 null] +>> endobj +781 0 obj << +/D [762 0 R /XYZ 294.8867 112.4858 null] +>> endobj +782 0 obj << +/D [762 0 R /XYZ 95.6414 96.3314 null] +>> endobj +783 0 obj << +/D [762 0 R /XYZ 95.6414 71.8184 null] +>> endobj +761 0 obj << +/Font << /F23 242 0 R /F28 250 0 R /F36 315 0 R /F52 774 0 R /F37 371 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +787 0 obj << +/Length 988 +/Filter /FlateDecode +>> +stream +xXM6WTm[$P6iͦ6[@kiWDl˕lgDJֲb ա0|=<<"#T̔dh zDR4ԺZ~12(`3%hބɮE$ ϗaVUVw($fz ƈ\R`-0[g-خwaV&uQv&'7q斠p +FK0 xL&2$o\ (s4vحxj*XC\cGtdb iWbf(XCThhaM!?R틬ZvWN1O+p<#VȠ]{Q\Q sSHCoZ;D +E oy20:O2= T,)y +MԶγ~R_Shm\4$RJg) + e'O)40:NPhc~`l\qI°G/CR:ͧt|FH.FE}sDa4 +AijiƯ#ǚG̴> endobj +793 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [325.4473 539.3384 369.7707 551.2883] +/Subtype /Link +/A << /S /GoTo /D (TUTOR6-FNAME) >> +>> endobj +788 0 obj << +/D [786 0 R /XYZ 95.6414 729.2652 null] +>> endobj +789 0 obj << +/D [786 0 R /XYZ 95.6414 693.8382 null] +>> endobj +790 0 obj << +/D [786 0 R /XYZ 95.6414 693.8382 null] +>> endobj +791 0 obj << +/D [786 0 R /XYZ 95.6414 588.9123 null] +>> endobj +792 0 obj << +/D [786 0 R /XYZ 95.6414 553.8289 null] +>> endobj +785 0 obj << +/Font << /F37 371 0 R /F35 258 0 R /F23 242 0 R /F36 315 0 R /F28 250 0 R /F52 774 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +797 0 obj << +/Length 2065 +/Filter /FlateDecode +>> +stream +xڥ]}EO1I4;)z{8(؁-Ovחe;nfKD)QČ_̲JY"3&H;>oQ"e*L&H(B>>@8=G]$[.d ~u+V@WYQ_fg*3(Kgb.Tx!ReNӶha%G5ԭ%Tkr[MoAld4BcU`n (eKyK ze_L`_8-ˢ׻PDl1܋n[[02hi}\VuEZ]h@vNV]weI\( [/v=U\n%g)JVDTD<̚v"υ<2UI|8s ]Pr4 FIk,`|V5/acE\*2x6j0<-Civb@$W[LXSr&Ciim3!3,Ms:[T)waÉ,a*M2p-\ #1f~{=R׵\OrDsגv08(\c.P \¬ +rܖ/BӈX0%k}܀0Qqh@n ՘~j_v˺,rWzEºnp1"SD$oh{:rSyRBb$bQ2ie1\Li P4lME]3I٭\j{pЕug9hEMh+df*bJ* +eM t4 xf>мW }߽•= S= ** z(xP njCrܐl8q)W,-U[!&^K$w&/uٹ.mYiBVJ 92uւ(ꕪ}"h,a"i!HK/MILK˄K_LOJb^(r$doәkbd&#(KI ]ʻ/Mͤy!kq)G +ʅㅣZts*`~c%>#Twdi$32nÖKޗ:ld-o,:κ XJ =ƵisMEMNh q0#(l΀v@Dlɠp IkM(}FQF',%.lq^-CS!$AtC!'BfCT4:`-y`nn_ϔ|!-gjL+@s'~Oljnu5e뿡xX-}CdA +Prr8|1|I@FBsziqo[z?\x҇K5Nz-q4<(,>PL<O3M#45A-p#<ĜI8,W߉yɷgX@M̈́8w}T`^[ GX 7AEmC?v3oflTt +c"إȺdJ^7|h4$fi Cz> endobj +804 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [259.1041 593.6821 303.4275 605.692] +/Subtype /Link +/A << /S /GoTo /D (TUTOR6-FNAME) >> +>> endobj +805 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [142.4658 571.7643 187.5499 583.7742] +/Subtype /Link +/A << /S /GoTo /D (CH5-LINK) >> +>> endobj +815 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [289.0744 96.7498 330.2598 108.7596] +/Subtype /Link +/A << /S /GoTo /D (C64-2-FNAME) >> +>> endobj +798 0 obj << +/D [796 0 R /XYZ 95.6414 729.2652 null] +>> endobj +394 0 obj << +/D [796 0 R /XYZ 95.6414 716.3138 null] +>> endobj +98 0 obj << +/D [796 0 R /XYZ 374.1057 705.6731 null] +>> endobj +799 0 obj << +/D [796 0 R /XYZ 95.6414 690.1618 null] +>> endobj +800 0 obj << +/D [796 0 R /XYZ 159.9395 660.5304 null] +>> endobj +801 0 obj << +/D [796 0 R /XYZ 209.0242 660.5304 null] +>> endobj +395 0 obj << +/D [796 0 R /XYZ 95.6414 649.3573 null] +>> endobj +102 0 obj << +/D [796 0 R /XYZ 175.5602 615.0769 null] +>> endobj +802 0 obj << +/D [796 0 R /XYZ 95.6414 608.281 null] +>> endobj +803 0 obj << +/D [796 0 R /XYZ 163.6926 597.4878 null] +>> endobj +396 0 obj << +/D [796 0 R /XYZ 95.6414 537.4978 null] +>> endobj +106 0 obj << +/D [796 0 R /XYZ 175.9448 503.2004 null] +>> endobj +806 0 obj << +/D [796 0 R /XYZ 95.6414 496.4046 null] +>> endobj +807 0 obj << +/D [796 0 R /XYZ 163.834 485.6113 null] +>> endobj +808 0 obj << +/D [796 0 R /XYZ 214.9895 485.6113 null] +>> endobj +809 0 obj << +/D [796 0 R /XYZ 362.5929 474.6524 null] +>> endobj +810 0 obj << +/D [796 0 R /XYZ 395.2862 474.6524 null] +>> endobj +811 0 obj << +/D [796 0 R /XYZ 95.6414 429.0037 null] +>> endobj +812 0 obj << +/D [796 0 R /XYZ 95.6414 400.7437 null] +>> endobj +813 0 obj << +/D [796 0 R /XYZ 95.6414 345.5168 null] +>> endobj +814 0 obj << +/D [796 0 R /XYZ 95.6414 111.3754 null] +>> endobj +816 0 obj << +/D [796 0 R /XYZ 95.6414 92.7647 null] +>> endobj +817 0 obj << +/D [796 0 R /XYZ 163.5461 84.6152 null] +>> endobj +795 0 obj << +/Font << /F23 242 0 R /F28 250 0 R /F36 315 0 R /F37 371 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +821 0 obj << +/Length 1256 +/Filter /FlateDecode +>> +stream +xڍWmo6_a``6KR٧kh146` +Zm6ITȣ&;CF~lE$Y8JxFxQ%~`^g+M.} +QFǣbg+$X:?Dmds='QT,\f\eef/>ζ"p:Э (qh0 a hLqiLow_goΨJn6ϻuW +@iH x^鈢O3>?=TVj*[ͱ(BQ*dBu-v1R6|fȮib'x ޻>ߚg6T( *tIOOx^7zM#j&s_Е;W6 + Ӳ>zy`G' >tASq9۲{l$qre4׺ U* +mJl暥㭇zZԹ0JW-2Wc=J3]?J V3>` + +se`֧\$#DU,%A:$8{{UI9үC( H +i|\ dڋfc(+`D/$q22%$ƬTD.m+ҍW箮_Up*YXRP0S$K@KQ Ѳ,nₖX;94O92$%2wf8ڮ]gCAGJ1AknG$ )6j|Y) EFCa + q};шF!J"('[zmߎp{uPn2vR31fe)xI> endobj +827 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [350.6823 442.5806 395.0058 454.5305] +/Subtype /Link +/A << /S /GoTo /D (TUTOR7-FNAME) >> +>> endobj +829 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [281.5947 374.4799 337.9331 386.4897] +/Subtype /Link +/A << /S /GoTo /D (REF-LINK) >> +>> endobj +822 0 obj << +/D [820 0 R /XYZ 95.6414 729.2652 null] +>> endobj +823 0 obj << +/D [820 0 R /XYZ 95.6414 716.3138 null] +>> endobj +824 0 obj << +/D [820 0 R /XYZ 95.6414 518.7154 null] +>> endobj +825 0 obj << +/D [820 0 R /XYZ 95.6414 485.3401 null] +>> endobj +826 0 obj << +/D [820 0 R /XYZ 95.6414 455.9045 null] +>> endobj +397 0 obj << +/D [820 0 R /XYZ 95.6414 438.5955 null] +>> endobj +110 0 obj << +/D [820 0 R /XYZ 236.835 406.8335 null] +>> endobj +828 0 obj << +/D [820 0 R /XYZ 95.6414 397.2531 null] +>> endobj +830 0 obj << +/D [820 0 R /XYZ 95.6414 359.5359 null] +>> endobj +819 0 obj << +/Font << /F37 371 0 R /F36 315 0 R /F28 250 0 R /F23 242 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +834 0 obj << +/Length 694 +/Filter /FlateDecode +>> +stream +xVo0~_Zh8N2( 41*!Д&ZI\bMl &$P|_d`3œFr:zkнcH#h]09n;ȳ 8rϙ-0GYqtV"OW۱Kpt:"zV)kk:8uXbC ;[Jq;e".2-TKBIhs5'́X8HNDnTidJ f8C +BP䱦;!TR$BTN"|xoRH~0(L1R]]B,X= +m5"͊GO r87~F)z.TʘDb2"ȆH^~kH})aE0ZPMӯqNeV[=}52) 0KcY&MmJQ/?trH~ovB5Z'UUt)ܲTΟ?NLneVYAƊ>茾Ld!nG+U.>GreBǗ2y5VqizTrSutw'ă< uoas3L8sBLgך}1=謍2js^zv}aBpIMh^/Tendstream +endobj +833 0 obj << +/Type /Page +/Contents 834 0 R +/Resources 832 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 784 0 R +>> endobj +835 0 obj << +/D [833 0 R /XYZ 95.6414 729.2652 null] +>> endobj +398 0 obj << +/D [833 0 R /XYZ 95.6414 716.3138 null] +>> endobj +114 0 obj << +/D [833 0 R /XYZ 316.6359 705.6731 null] +>> endobj +836 0 obj << +/D [833 0 R /XYZ 95.6414 690.1618 null] +>> endobj +399 0 obj << +/D [833 0 R /XYZ 95.6414 679.6388 null] +>> endobj +118 0 obj << +/D [833 0 R /XYZ 167.2468 647.9536 null] +>> endobj +837 0 obj << +/D [833 0 R /XYZ 95.6414 636.3739 null] +>> endobj +400 0 obj << +/D [833 0 R /XYZ 95.6414 449.1134 null] +>> endobj +122 0 obj << +/D [833 0 R /XYZ 167.2468 415.9826 null] +>> endobj +838 0 obj << +/D [833 0 R /XYZ 95.6414 404.4029 null] +>> endobj +401 0 obj << +/D [833 0 R /XYZ 95.6414 177.6904 null] +>> endobj +126 0 obj << +/D [833 0 R /XYZ 160.0862 144.5595 null] +>> endobj +839 0 obj << +/D [833 0 R /XYZ 95.6414 132.9798 null] +>> endobj +832 0 obj << +/Font << /F23 242 0 R /F28 250 0 R /F44 489 0 R /F36 315 0 R /F37 371 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +842 0 obj << +/Length 733 +/Filter /FlateDecode +>> +stream +xڍ0y +TUjrc@=mWڪc;6A93 ?d1b !",&a>.ȬR6( 21‚M"&o[jMpy^&ߺNjZ~m>-7cLQruhQfBCuol8CINϼ% % @uFAv jozcE4iR+eфaͅ +kJaϏ߿Ɲ:}Za3F ׉t5&v(xؽY.` nM P/@|/O9›N:]2p$;o|m|'4KZՋ˦iOFz[ O{c-^2FQqER)^~ƍ,妬%ϵRڨΛq͟䌀I IP6?Gn§}A;xkz7Suku9pSS{gxuxAsOggxYHɺÁ,>KqQ:kFPN{XN#w0Ρ0dl]9p4ڈ94u4C$ +l8q>fŘ4cf9Ƴݔж7[ z +N_ɯl +%gendstream +endobj +841 0 obj << +/Type /Page +/Contents 842 0 R +/Resources 840 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 784 0 R +>> endobj +843 0 obj << +/D [841 0 R /XYZ 95.6414 729.2652 null] +>> endobj +402 0 obj << +/D [841 0 R /XYZ 95.6414 655.5557 null] +>> endobj +130 0 obj << +/D [841 0 R /XYZ 167.2468 622.4249 null] +>> endobj +844 0 obj << +/D [841 0 R /XYZ 95.6414 610.8452 null] +>> endobj +840 0 obj << +/Font << /F37 371 0 R /F36 315 0 R /F44 489 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +847 0 obj << +/Length 735 +/Filter /FlateDecode +>> +stream +xڝs0`Ey"@ʮԺC۵u"v_0h|aB>cA?`Q6Z8?T Pש 슘 l?k"16 ,͏wEFuOw|rr{fS̗#:7p[J","E@0 ›ÂeOgv, "r R#|6ه +p +G60" +\i$<~2Ygoܠ?$KKOḶs)]hK0. $ lŇIϮ(6NM`aĀjR|gl"5oV!aJϳ4LVQ2BQT̃g\Y*3 ICepsH:>O4-%ų9t)-+ kЅsEDeęoٔޚ=ʊn8I2<4olཙ#.vQ?(0yq@ D@ dXlYm U1.v)y>{W'uN=+wBS)Pqʀ^7psxUn sݛF%Q)/xШ*/\u/-* })};nԚ*W5lwxr?*39sn> endobj +848 0 obj << +/D [846 0 R /XYZ 95.6414 729.2652 null] +>> endobj +403 0 obj << +/D [846 0 R /XYZ 95.6414 597.6195 null] +>> endobj +134 0 obj << +/D [846 0 R /XYZ 167.2468 563.2469 null] +>> endobj +849 0 obj << +/D [846 0 R /XYZ 95.6414 551.6672 null] +>> endobj +404 0 obj << +/D [846 0 R /XYZ 95.6414 98.1055 null] +>> endobj +845 0 obj << +/Font << /F37 371 0 R /F36 315 0 R /F44 489 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +853 0 obj << +/Length 748 +/Filter /FlateDecode +>> +stream +xVs@~E;z41A6vR"A3 0}8'}-(>H1QEae@e&l*0j Rk#s" eM_ L XsދgX:7C@ =TA=!!8/"*"*N3 +Հ!WTdr +Gp8Sen& |Z I,d9.d*'907usZy +xyW$ ]sq^WO_xsTd wٞW,38r6KLΊ\x&*?<acP |2x_͕w 1̂6 DۀXoڀ6 U2k*,IW]9OYRWR> endobj +854 0 obj << +/D [852 0 R /XYZ 95.6414 729.2652 null] +>> endobj +138 0 obj << +/D [852 0 R /XYZ 174.4073 706.3512 null] +>> endobj +855 0 obj << +/D [852 0 R /XYZ 95.6414 694.7715 null] +>> endobj +851 0 obj << +/Font << /F37 371 0 R /F44 489 0 R /F36 315 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +858 0 obj << +/Length 773 +/Filter /FlateDecode +>> +stream +xڵV]o0}Wda05tOLiT0mS29a ~Nд*MH`r9>/r '`SDsh5BǮ-Wsp̝/pgwfdYc38;-:ύ#$*\㟳l79C@w(E"Es !!\[gpVkE7>'uL+J@@(%zBJB*:r4'Sz }@AdƒVj:ea*hhϝUsG հ! e6~+Vɿj\;° ()WvjIl&I$[dS;b9j)e|R؞dra$׳qJOm[͖8&sayzZk*#քO?Mau<%i)M!ra:!ND!ˍE3#"f'"[MMom{?u7B ZlCYs>|mڶrhkw R`wRՌ-3peendstream +endobj +857 0 obj << +/Type /Page +/Contents 858 0 R +/Resources 856 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 850 0 R +>> endobj +859 0 obj << +/D [857 0 R /XYZ 95.6414 729.2652 null] +>> endobj +405 0 obj << +/D [857 0 R /XYZ 95.6414 686.3866 null] +>> endobj +142 0 obj << +/D [857 0 R /XYZ 174.4073 652.0139 null] +>> endobj +860 0 obj << +/D [857 0 R /XYZ 95.6414 640.4342 null] +>> endobj +856 0 obj << +/Font << /F37 371 0 R /F36 315 0 R /F44 489 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +863 0 obj << +/Length 728 +/Filter /FlateDecode +>> +stream +xڭr0y +\fbEei4҆tN"lږ#L>}Sv3. 9&Ěv6N:d +sxjX6[20MdkCGogo s&arm D@f6rZ ^X]S? ɐEAyػlzn<az>i2{/öUA/_x?] ?2+QeR]@`BbE!3Uw_=@,ce=K!FRf~ѸQMTHȉ^cSe*f/F΅ U+ZN컣 +shAvG.|M]oV6;髠,3q k5endstream +endobj +862 0 obj << +/Type /Page +/Contents 863 0 R +/Resources 861 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 850 0 R +>> endobj +864 0 obj << +/D [862 0 R /XYZ 95.6414 729.2652 null] +>> endobj +406 0 obj << +/D [862 0 R /XYZ 95.6414 617.3455 null] +>> endobj +146 0 obj << +/D [862 0 R /XYZ 174.4073 582.9729 null] +>> endobj +865 0 obj << +/D [862 0 R /XYZ 95.6414 571.3932 null] +>> endobj +861 0 obj << +/Font << /F37 371 0 R /F36 315 0 R /F44 489 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +868 0 obj << +/Length 695 +/Filter /FlateDecode +>> +stream +xV]o0}Wxt05wOlvEiڔx)$Y09qŒ,{{||e `8 3 Dp 4Gn +*A4PP;⯃Q4^nh0wVyݟI1 [j=>s WGH +%bF!% CR)|; B7,Yjb|c% $sFA! +WloTxG#燉MdJf K 9V0ʍuk5&V@DCxH/S82J|MӘfyB>=LwǓϩve +c[Ba*^0l~N g@YG2djfc,q9dI+N22'^?̚%,WbD +aV,\6!i[E"syLim;<&Y7N%Ls}=gBԒ_aZP6O0>NGi'_ K { k?f8b#%T8BO>OZV ZUendstream +endobj +867 0 obj << +/Type /Page +/Contents 868 0 R +/Resources 866 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 850 0 R +>> endobj +869 0 obj << +/D [867 0 R /XYZ 95.6414 729.2652 null] +>> endobj +407 0 obj << +/D [867 0 R /XYZ 95.6414 518.7154 null] +>> endobj +150 0 obj << +/D [867 0 R /XYZ 167.2468 484.3428 null] +>> endobj +870 0 obj << +/D [867 0 R /XYZ 95.6414 472.7631 null] +>> endobj +866 0 obj << +/Font << /F37 371 0 R /F36 315 0 R /F44 489 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +873 0 obj << +/Length 895 +/Filter /FlateDecode +>> +stream +xڍVms6_!E r͵ʹTo&ɯF?}v !͵& 2 ږ_ 7JzWֿ`N4ak`4c!GÿȹʶI.~Ba'j)ښڸf ͍A2 )ud@x<3Nj'Ը;mv +yy6-GX^LgoݨKeEJߞ?[.Fj>NQA˹aO{s|'4ϋzC#Lt=*H2>FKU#o,I^TIbrR<⎺7 RBg!}6q !ۉFYr%eTFT9 dh,Ʌq7`)CJF~E|*);$Y$%%+g){4k)/8/0HByAU-AnZgy9ᠡ i;QpXk.`X|I"}zyR(> +Ex$Ѱo`I(GENjp[.ƃ*jw|c5YOc@Nc'XΓw |'0GEpaIQUCuT/:O9+X{mԙ9ŘQʆ:$e!ˣ'j-ޗÇ ~궠TMx'ҰW8yG +ƫ=uo8;5/=8kqeiy:K>f i\"h6so> endobj +874 0 obj << +/D [872 0 R /XYZ 95.6414 729.2652 null] +>> endobj +408 0 obj << +/D [872 0 R /XYZ 95.6414 379.3915 null] +>> endobj +154 0 obj << +/D [872 0 R /XYZ 167.2468 346.2607 null] +>> endobj +875 0 obj << +/D [872 0 R /XYZ 95.6414 334.681 null] +>> endobj +871 0 obj << +/Font << /F37 371 0 R /F36 315 0 R /F44 489 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +878 0 obj << +/Length 957 +/Filter /FlateDecode +>> +stream +xڍW[w6~ϯ}HX+qaD`ݜmOJ@r񂼍+,6⛙of43)bHWTlJ\@eލ/ *Р.>  XXŊP4SXc롦@_az=P xe?zuLc~̫lIqb 8T k"VLF%Edb`@(B 4;ߊz! +Vy%v`k;?˜1ϗ> H> 42^ +Y`X&#\R,'7g|boH!v(iDD"~4Tg{( :)$twڕq>ryt܈ *R!M,dq)aH=R:c~x +Qg_uhCRI~L&Yi]&=M{8wg52 MXj&P&N6esgj|={qdjrs%lȝ.O6QwėeR*f/,9 vlMv74zD܅E%@WKn[XDտ ?g a$ҐhE%M>kg4Y=e7JC*uvu-E +0 m}`F"'!kyQhպ5E=}A70"&kLu5DXh4ktM>|z:WeKqĀὛ71RpKa[c{Rv[.Gw2+VFwqTq_[EUG5 75q2 S*O dQ䣤*z\= +ںX4/&w{ag5+xU/3Rd2frvQ{!ő T6ݼW:?8ukUuX]Mendstream +endobj +877 0 obj << +/Type /Page +/Contents 878 0 R +/Resources 876 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 880 0 R +>> endobj +879 0 obj << +/D [877 0 R /XYZ 95.6414 729.2652 null] +>> endobj +876 0 obj << +/Font << /F37 371 0 R /F36 315 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +883 0 obj << +/Length 721 +/Filter /FlateDecode +>> +stream +xڥVQo0~ϯ@Y%Sqmc tOiNj2MS倛 iliHjC Y (Ap0uzZ*2mw~xV5k|9.ys82.x3 ct)*M."z'Eu0RR2D>. pE1eXOB(vmUV8:>mnT"wP_GJJCxÇ,AcnQ+X͟+B,@L&J&tCJl ^ohA1k>22QT. ;vyf2t(يq+8kGK~Lzu0õ\zCsa ReOg*zJu7RčiM8-âG&B +](ciP.KUUȿp.EYVވ2ar<2y.\F%+nj\ٮ [$w3EM6xTC8`f?L^9\Gp9}=LʊŢ`$yʓERb-T2M@Geħx\FH26nnxeVwiO9LiuVN;=!aߞ}i|t|W,vES^_UUGo-F *cz+endstream +endobj +882 0 obj << +/Type /Page +/Contents 883 0 R +/Resources 881 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 880 0 R +>> endobj +884 0 obj << +/D [882 0 R /XYZ 95.6414 729.2652 null] +>> endobj +409 0 obj << +/D [882 0 R /XYZ 95.6414 625.9667 null] +>> endobj +158 0 obj << +/D [882 0 R /XYZ 160.0862 592.8359 null] +>> endobj +885 0 obj << +/D [882 0 R /XYZ 95.6414 581.2562 null] +>> endobj +410 0 obj << +/D [882 0 R /XYZ 95.6414 178.2514 null] +>> endobj +162 0 obj << +/D [882 0 R /XYZ 167.2468 143.8787 null] +>> endobj +886 0 obj << +/D [882 0 R /XYZ 95.6414 132.299 null] +>> endobj +881 0 obj << +/Font << /F37 371 0 R /F36 315 0 R /F44 489 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +889 0 obj << +/Length 908 +/Filter /FlateDecode +>> +stream +xڍWms6_As!:ċpo\2m'Ձlsܯl l`a}vPQ*  !SSBUL73A66x^8HCJPt[Hgk6_WfCqr=LlX\C*_8+ ?\xa܄P-M;ϰAI("fmLUeUtj;iGHU ӑl P.S- ɚAFTFm$pjQ"n!t9t.1IkW#H< JQ' L6Ѫ+*kP\, C@>d C@hAT%[z|O/pޛNrssTt).-Cc .;CfC.8Mf^kCf=&[?^IcğZ2O~0'lL <^;u?gUv8sf dB\U-/< (*4gf%'*I./j¢k3~dH +!{$Qn0PFHǘb|N|1;hܭ=)y!WIq;a3QE(H=)bdd;UK$'p3NQu?8:b٣(̵`NݍѪ:!0tAv\ϧX|ڧy[jM hE9إ{Lf< Iu4}qaT}`2d~s\&%%­jzwCpIeû9ONy yϷ/e@ T٥v6fK"6Wendstream +endobj +888 0 obj << +/Type /Page +/Contents 889 0 R +/Resources 887 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 880 0 R +>> endobj +890 0 obj << +/D [888 0 R /XYZ 95.6414 729.2652 null] +>> endobj +887 0 obj << +/Font << /F37 371 0 R /F36 315 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +893 0 obj << +/Length 389 +/Filter /FlateDecode +>> +stream +xڍS]O0}W4qO>fa۔A0kcRp9'bԃBF1!a.@`Gw'C]`>8I! ~1B$Y,\½H繰07MK-x2",MBJhSRIQ.X>iq(Cf?B"_ Y_DCI%eQ2Yb@*r8޽Q/euƇp5Cm*su TҸ3|E.U򭓯.@g}]Omk::{е"NƮcz@MO&zsdeOߏNkrE8;"Q9NH+ٓj{'Lc ɞendstream +endobj +892 0 obj << +/Type /Page +/Contents 893 0 R +/Resources 891 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 880 0 R +>> endobj +894 0 obj << +/D [892 0 R /XYZ 95.6414 729.2652 null] +>> endobj +891 0 obj << +/Font << /F37 371 0 R /F36 315 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +897 0 obj << +/Length 2236 +/Filter /FlateDecode +>> +stream +xڭ]s6WtUĭ;{&5$*eNC{ /pyyttA1W 匮^ý_mqwHpB֮?p"p{x2|Us+ZLP) J)-I@j?x Z_WMUGU(*#'e}!EP7^WƪtU I^ +ѶA!J#}ȫm|n Fy>;F,Z9Z<bߩ, EQ.̝ +X"=.;lʦnU =ʮӿ5xAA-uWNbFXI~I>0#$3ֶ̍RQ%0KьdN㣥B?51C2h uh> *CQQKc2N!V~H' $&2ܐ:vb>z9qxJ( ir "KU%n˼.>NqLM|b#Cu^TK$ʲe´^u&TVC~&]0;K^{E:b,Ͳf^ppuLgO,?{R-*u ± B[ᯛ$^;1r0S: `f00F%2<m7m;z2yc2S0UIl+?U`n`l( eIYmt*u :[/8uvdŁIm5X9.77Ёf=@ZLL'.Y +u ^YYYuLPŁm5XQ;.A=A=бL@^6mj +vx]B{,C{XfDɱ\}^@_!Fܶ!jD^u|+8Gu(5 +ܮi>^Q!Dmu +ry]k"kc6 R(Sh*IPOR@(k ]~A8{*Nm1kD|XV3h­2<873p9/~Y~jG12_o%Y8j8*m^mY-` Jԝ+81[jմؓ1[?'KuՍ8rbTA?yygL; =4 0SoN/տ^x2ǡ='`ܻ. wt$\ eͳ$O"]ċ1Of%fU +/ fm=oi[~l%zK8 "<3e@ ،'IODrKJ]ן 'P#zw垻R.CIFLm]z!|,D lԺp#DO7;"PpKtLJr'\ A6[ׂ q.`PoL&Rn NQ.CtȮd{۝qıwӔ9]wf纝H Es?!' ]~T<[t@?uP8<:"*t[ e1|@`2o,|0If3[:wXde5פּ(AiMYR}^z'y(Ӎ~PƂ6uͮWdzu߹M^HYϬ\+^j!מ(NAy-V3b.q5]I2YJhp6?9,X={fkMbcmOUI4;?.endstream +endobj +896 0 obj << +/Type /Page +/Contents 897 0 R +/Resources 895 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 880 0 R +>> endobj +898 0 obj << +/D [896 0 R /XYZ 95.6414 729.2652 null] +>> endobj +411 0 obj << +/D [896 0 R /XYZ 95.6414 716.3138 null] +>> endobj +166 0 obj << +/D [896 0 R /XYZ 375.9289 705.6731 null] +>> endobj +412 0 obj << +/D [896 0 R /XYZ 95.6414 697.6815 null] +>> endobj +170 0 obj << +/D [896 0 R /XYZ 206.1516 666.2061 null] +>> endobj +899 0 obj << +/D [896 0 R /XYZ 95.6414 659.4103 null] +>> endobj +900 0 obj << +/D [896 0 R /XYZ 258.7809 648.6171 null] +>> endobj +901 0 obj << +/D [896 0 R /XYZ 95.6414 623.8899 null] +>> endobj +902 0 obj << +/D [896 0 R /XYZ 95.6414 618.9085 null] +>> endobj +903 0 obj << +/D [896 0 R /XYZ 153.4247 600.7964 null] +>> endobj +904 0 obj << +/D [896 0 R /XYZ 153.4247 600.7964 null] +>> endobj +905 0 obj << +/D [896 0 R /XYZ 188.8513 600.7964 null] +>> endobj +906 0 obj << +/D [896 0 R /XYZ 95.6414 598.0468 null] +>> endobj +907 0 obj << +/D [896 0 R /XYZ 153.4247 584.8562 null] +>> endobj +908 0 obj << +/D [896 0 R /XYZ 153.4247 584.8562 null] +>> endobj +909 0 obj << +/D [896 0 R /XYZ 211.3467 584.8562 null] +>> endobj +910 0 obj << +/D [896 0 R /XYZ 95.6414 584.7172 null] +>> endobj +911 0 obj << +/D [896 0 R /XYZ 153.4247 568.916 null] +>> endobj +912 0 obj << +/D [896 0 R /XYZ 153.4247 568.916 null] +>> endobj +913 0 obj << +/D [896 0 R /XYZ 200.4676 568.916 null] +>> endobj +914 0 obj << +/D [896 0 R /XYZ 95.6414 567.7369 null] +>> endobj +915 0 obj << +/D [896 0 R /XYZ 153.4247 552.9757 null] +>> endobj +916 0 obj << +/D [896 0 R /XYZ 153.4247 552.9757 null] +>> endobj +917 0 obj << +/D [896 0 R /XYZ 198.9037 552.9757 null] +>> endobj +918 0 obj << +/D [896 0 R /XYZ 95.6414 550.2262 null] +>> endobj +919 0 obj << +/D [896 0 R /XYZ 153.4247 537.0355 null] +>> endobj +920 0 obj << +/D [896 0 R /XYZ 153.4247 537.0355 null] +>> endobj +921 0 obj << +/D [896 0 R /XYZ 211.078 537.0355 null] +>> endobj +922 0 obj << +/D [896 0 R /XYZ 95.6414 534.2859 null] +>> endobj +923 0 obj << +/D [896 0 R /XYZ 153.4247 521.0953 null] +>> endobj +924 0 obj << +/D [896 0 R /XYZ 153.4247 521.0953 null] +>> endobj +925 0 obj << +/D [896 0 R /XYZ 209.7927 521.0953 null] +>> endobj +926 0 obj << +/D [896 0 R /XYZ 95.6414 518.3457 null] +>> endobj +927 0 obj << +/D [896 0 R /XYZ 153.4247 505.1551 null] +>> endobj +928 0 obj << +/D [896 0 R /XYZ 153.4247 505.1551 null] +>> endobj +929 0 obj << +/D [896 0 R /XYZ 194.0118 505.1551 null] +>> endobj +930 0 obj << +/D [896 0 R /XYZ 95.6414 503.976 null] +>> endobj +931 0 obj << +/D [896 0 R /XYZ 153.4247 489.2148 null] +>> endobj +932 0 obj << +/D [896 0 R /XYZ 153.4247 489.2148 null] +>> endobj +933 0 obj << +/D [896 0 R /XYZ 206.1861 489.2148 null] +>> endobj +934 0 obj << +/D [896 0 R /XYZ 95.6414 487.7753 null] +>> endobj +935 0 obj << +/D [896 0 R /XYZ 153.4247 473.2746 null] +>> endobj +936 0 obj << +/D [896 0 R /XYZ 153.4247 473.2746 null] +>> endobj +937 0 obj << +/D [896 0 R /XYZ 204.9009 473.2746 null] +>> endobj +938 0 obj << +/D [896 0 R /XYZ 95.6414 471.8351 null] +>> endobj +939 0 obj << +/D [896 0 R /XYZ 153.4247 457.3344 null] +>> endobj +940 0 obj << +/D [896 0 R /XYZ 153.4247 457.3344 null] +>> endobj +941 0 obj << +/D [896 0 R /XYZ 251.7549 457.3344 null] +>> endobj +942 0 obj << +/D [896 0 R /XYZ 95.6414 454.5848 null] +>> endobj +943 0 obj << +/D [896 0 R /XYZ 153.4247 441.3942 null] +>> endobj +944 0 obj << +/D [896 0 R /XYZ 153.4247 441.3942 null] +>> endobj +945 0 obj << +/D [896 0 R /XYZ 250.4697 441.3942 null] +>> endobj +946 0 obj << +/D [896 0 R /XYZ 95.6414 438.6446 null] +>> endobj +947 0 obj << +/D [896 0 R /XYZ 153.4247 425.4539 null] +>> endobj +948 0 obj << +/D [896 0 R /XYZ 153.4247 425.4539 null] +>> endobj +949 0 obj << +/D [896 0 R /XYZ 234.6887 425.4539 null] +>> endobj +950 0 obj << +/D [896 0 R /XYZ 95.6414 424.2749 null] +>> endobj +951 0 obj << +/D [896 0 R /XYZ 153.4247 409.5137 null] +>> endobj +952 0 obj << +/D [896 0 R /XYZ 153.4247 409.5137 null] +>> endobj +953 0 obj << +/D [896 0 R /XYZ 191.0629 409.5137 null] +>> endobj +954 0 obj << +/D [896 0 R /XYZ 95.6414 408.133 null] +>> endobj +955 0 obj << +/D [896 0 R /XYZ 153.4247 393.5735 null] +>> endobj +956 0 obj << +/D [896 0 R /XYZ 153.4247 393.5735 null] +>> endobj +957 0 obj << +/D [896 0 R /XYZ 246.8631 393.5735 null] +>> endobj +958 0 obj << +/D [896 0 R /XYZ 95.6414 390.7641 null] +>> endobj +959 0 obj << +/D [896 0 R /XYZ 153.4247 377.6333 null] +>> endobj +960 0 obj << +/D [896 0 R /XYZ 153.4247 377.6333 null] +>> endobj +961 0 obj << +/D [896 0 R /XYZ 239.5806 377.6333 null] +>> endobj +413 0 obj << +/D [896 0 R /XYZ 95.6414 369.8425 null] +>> endobj +174 0 obj << +/D [896 0 R /XYZ 202.2926 338.1404 null] +>> endobj +962 0 obj << +/D [896 0 R /XYZ 95.6414 328.5599 null] +>> endobj +414 0 obj << +/D [896 0 R /XYZ 95.6414 317.7419 null] +>> endobj +178 0 obj << +/D [896 0 R /XYZ 226.5306 288.2873 null] +>> endobj +963 0 obj << +/D [896 0 R /XYZ 95.6414 285.792 null] +>> endobj +964 0 obj << +/D [896 0 R /XYZ 95.6414 279.7646 null] +>> endobj +965 0 obj << +/D [896 0 R /XYZ 153.4247 259.2462 null] +>> endobj +966 0 obj << +/D [896 0 R /XYZ 153.4247 259.2462 null] +>> endobj +967 0 obj << +/D [896 0 R /XYZ 175.0135 259.2462 null] +>> endobj +968 0 obj << +/D [896 0 R /XYZ 95.6414 257.1591 null] +>> endobj +969 0 obj << +/D [896 0 R /XYZ 153.4247 243.306 null] +>> endobj +970 0 obj << +/D [896 0 R /XYZ 153.4247 243.306 null] +>> endobj +971 0 obj << +/D [896 0 R /XYZ 191.8001 243.306 null] +>> endobj +972 0 obj << +/D [896 0 R /XYZ 95.6414 240.4966 null] +>> endobj +973 0 obj << +/D [896 0 R /XYZ 153.4247 227.3658 null] +>> endobj +974 0 obj << +/D [896 0 R /XYZ 153.4247 227.3658 null] +>> endobj +975 0 obj << +/D [896 0 R /XYZ 180.7219 227.3658 null] +>> endobj +976 0 obj << +/D [896 0 R /XYZ 95.6414 225.2786 null] +>> endobj +977 0 obj << +/D [896 0 R /XYZ 153.4247 211.4255 null] +>> endobj +978 0 obj << +/D [896 0 R /XYZ 153.4247 211.4255 null] +>> endobj +979 0 obj << +/D [896 0 R /XYZ 186.0819 211.4255 null] +>> endobj +980 0 obj << +/D [896 0 R /XYZ 95.6414 208.676 null] +>> endobj +981 0 obj << +/D [896 0 R /XYZ 153.4247 195.4853 null] +>> endobj +982 0 obj << +/D [896 0 R /XYZ 153.4247 195.4853 null] +>> endobj +983 0 obj << +/D [896 0 R /XYZ 197.8774 195.4853 null] +>> endobj +415 0 obj << +/D [896 0 R /XYZ 95.6414 187.6946 null] +>> endobj +182 0 obj << +/D [896 0 R /XYZ 209.7868 157.3184 null] +>> endobj +984 0 obj << +/D [896 0 R /XYZ 95.6414 148.7958 null] +>> endobj +985 0 obj << +/D [896 0 R /XYZ 306.832 129.3732 null] +>> endobj +986 0 obj << +/D [896 0 R /XYZ 169.2533 118.4143 null] +>> endobj +987 0 obj << +/D [896 0 R /XYZ 314.954 118.4143 null] +>> endobj +988 0 obj << +/D [896 0 R /XYZ 200.2063 107.4554 null] +>> endobj +989 0 obj << +/D [896 0 R /XYZ 95.6414 91.301 null] +>> endobj +990 0 obj << +/D [896 0 R /XYZ 222.3263 80.5563 null] +>> endobj +991 0 obj << +/D [896 0 R /XYZ 143.462 69.5974 null] +>> endobj +992 0 obj << +/D [896 0 R /XYZ 499.3339 69.5974 null] +>> endobj +895 0 obj << +/Font << /F23 242 0 R /F28 250 0 R /F37 371 0 R /F36 315 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +995 0 obj << +/Length 2451 +/Filter /FlateDecode +>> +stream +xڵYm۸_fDR$Eo)ZűpHIEa$Crp8~*Y*9I,Mx_pdzL9ׇ7~UD$Ww\R,]9x鶬_DmQmI{YB_ۛOw1X +q^ؑ르"I#ɢ& &c.w׹tj|xjAஶ"Wh"Xk)D7^P989U^KVnzvIhBiPLEq1LFSpH/?O_u>C~ Za=T갣r~ũՎos +XY[Ң% q\%(Kxf;p{۵кn V phYكD՝! p0G&s0(Q4$~`dbP@ YPK/n]%CM1hfkǀaWfK nJwmlk'aö^jT-:2@/֕⏪nbm;:E.~̓Gq p>h{ |&W* 67Z@o,;G@J xE5NZmaGHEh4K6 +jb%[&E_!a)6Z fZoxt ߸e+JG +n㇘:o!wgZ͹3,ey3lwE3!yq9z)Ug+Qz( pFϙr42~ 8Ʉ^rT +xΔ 0L5>_(h{A" ﹴMo^M/bl]l`50Z=R8Sv<Ύ7{РZCHAִ,(Ᲊ` x6$76GFH)kQn?"}&3m3R-c7 `?@PpR*7?88p~J*.meaP[M {ZsmnYmŇm{`mĺ> endobj +996 0 obj << +/D [994 0 R /XYZ 95.6414 729.2652 null] +>> endobj +420 0 obj << +/D [994 0 R /XYZ 95.6414 741.2204 null] +>> endobj +997 0 obj << +/D [994 0 R /XYZ 95.6414 716.3138 null] +>> endobj +998 0 obj << +/D [994 0 R /XYZ 481.7933 706.3512 null] +>> endobj +416 0 obj << +/D [994 0 R /XYZ 95.6414 679.2379 null] +>> endobj +186 0 obj << +/D [994 0 R /XYZ 213.1258 646.2665 null] +>> endobj +999 0 obj << +/D [994 0 R /XYZ 95.6414 637.557 null] +>> endobj +1000 0 obj << +/D [994 0 R /XYZ 438.7548 618.3213 null] +>> endobj +1001 0 obj << +/D [994 0 R /XYZ 143.462 596.4035 null] +>> endobj +1002 0 obj << +/D [994 0 R /XYZ 95.6414 590.4359 null] +>> endobj +1003 0 obj << +/D [994 0 R /XYZ 211.8151 569.5043 null] +>> endobj +1004 0 obj << +/D [994 0 R /XYZ 451.3544 569.5043 null] +>> endobj +1005 0 obj << +/D [994 0 R /XYZ 95.6414 561.7136 null] +>> endobj +417 0 obj << +/D [994 0 R /XYZ 95.6414 505.5293 null] +>> endobj +190 0 obj << +/D [994 0 R /XYZ 239.09 471.2319 null] +>> endobj +1006 0 obj << +/D [994 0 R /XYZ 95.6414 461.6514 null] +>> endobj +1010 0 obj << +/D [994 0 R /XYZ 95.6414 412.9754 null] +>> endobj +1011 0 obj << +/D [994 0 R /XYZ 95.6414 386.0762 null] +>> endobj +1012 0 obj << +/D [994 0 R /XYZ 95.6414 375.1173 null] +>> endobj +1013 0 obj << +/D [994 0 R /XYZ 95.6414 370.136 null] +>> endobj +1014 0 obj << +/D [994 0 R /XYZ 153.4247 352.0239 null] +>> endobj +1015 0 obj << +/D [994 0 R /XYZ 153.4247 352.0239 null] +>> endobj +1016 0 obj << +/D [994 0 R /XYZ 95.6414 350.8234 null] +>> endobj +1017 0 obj << +/D [994 0 R /XYZ 153.4247 336.0837 null] +>> endobj +1018 0 obj << +/D [994 0 R /XYZ 153.4247 336.0837 null] +>> endobj +1019 0 obj << +/D [994 0 R /XYZ 95.6414 334.8832 null] +>> endobj +1020 0 obj << +/D [994 0 R /XYZ 153.4247 320.1434 null] +>> endobj +1021 0 obj << +/D [994 0 R /XYZ 153.4247 320.1434 null] +>> endobj +1022 0 obj << +/D [994 0 R /XYZ 95.6414 318.943 null] +>> endobj +1023 0 obj << +/D [994 0 R /XYZ 153.4247 304.2032 null] +>> endobj +1024 0 obj << +/D [994 0 R /XYZ 153.4247 304.2032 null] +>> endobj +1025 0 obj << +/D [994 0 R /XYZ 95.6414 303.0028 null] +>> endobj +1026 0 obj << +/D [994 0 R /XYZ 153.4247 288.263 null] +>> endobj +1027 0 obj << +/D [994 0 R /XYZ 153.4247 288.263 null] +>> endobj +1028 0 obj << +/D [994 0 R /XYZ 95.6414 287.0625 null] +>> endobj +1029 0 obj << +/D [994 0 R /XYZ 153.4247 272.3228 null] +>> endobj +1030 0 obj << +/D [994 0 R /XYZ 153.4247 272.3228 null] +>> endobj +1031 0 obj << +/D [994 0 R /XYZ 95.6414 271.1223 null] +>> endobj +1032 0 obj << +/D [994 0 R /XYZ 153.4247 256.3825 null] +>> endobj +1033 0 obj << +/D [994 0 R /XYZ 153.4247 256.3825 null] +>> endobj +418 0 obj << +/D [994 0 R /XYZ 95.6414 250.2008 null] +>> endobj +194 0 obj << +/D [994 0 R /XYZ 188.6081 216.8896 null] +>> endobj +1034 0 obj << +/D [994 0 R /XYZ 95.6414 207.5147 null] +>> endobj +419 0 obj << +/D [994 0 R /XYZ 95.6414 174.5734 null] +>> endobj +198 0 obj << +/D [994 0 R /XYZ 245.7216 145.1188 null] +>> endobj +1035 0 obj << +/D [994 0 R /XYZ 95.6414 136.4093 null] +>> endobj +1036 0 obj << +/D [994 0 R /XYZ 314.8495 128.1325 null] +>> endobj +1037 0 obj << +/D [994 0 R /XYZ 95.6414 98.4239 null] +>> endobj +1038 0 obj << +/D [994 0 R /XYZ 232.9273 90.2744 null] +>> endobj +1039 0 obj << +/D [994 0 R /XYZ 443.385 90.2744 null] +>> endobj +1040 0 obj << +/D [994 0 R /XYZ 334.0895 79.3155 null] +>> endobj +993 0 obj << +/Font << /F37 371 0 R /F28 250 0 R /F36 315 0 R /F23 242 0 R /F11 1009 0 R /F52 774 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1043 0 obj << +/Length 2885 +/Filter /FlateDecode +>> +stream +xڥˎ5Dz ,!բCק^lI*V"Y6 ?cD&ZA$EF/@gZ_s}|xS.r'Ax-8P&6" &[C,%_|(`a(gz!+A8e3탺Gv6v]2 2fԧ V #e/7O'+Ϫ2İa@G\d؄Bhk'SǠI`$N1U'av< r[0Uw^1 mdl3&Ty,IV )$Ps¶Y5UXEA5GHOVߚlմd&KUCvscCI*FǘM/p@.LԯtA#6o:Sge%˓{XtQP1Eѹ#cc%|آ0~hΏϹ`Qm -q0. +s@ 0J Z};Rޑ*nԎ+W=@3=5 5<~G=}㤢]1w2njTuiPnW"29GY1 DUbQNOWz<0J#jܺK'ޛ3n$rKҕ*KS64gfsg4&gg5dl؃k*Q[auVpvC2#xU$Pq,UT=($@{|VeҏSelœ)W<'b?6{{L3P$Be wNCHEysuq*!/f8ǕΪyaFn٢S2E~b?ZY?],W\Z)M>Qk.Bs No- JMu-}3tv3T]^}yY-wZpEsB: $w%p9 /< <⣿g%+ћQNQJJ_'K}E_萳d~kbS{#etLKޡy̎@l+endstream +endobj +1042 0 obj << +/Type /Page +/Contents 1043 0 R +/Resources 1041 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 1075 0 R +>> endobj +1044 0 obj << +/D [1042 0 R /XYZ 95.6414 729.2652 null] +>> endobj +1045 0 obj << +/D [1042 0 R /XYZ 143.462 706.3512 null] +>> endobj +202 0 obj << +/D [1042 0 R /XYZ 322.0759 657.2254 null] +>> endobj +1046 0 obj << +/D [1042 0 R /XYZ 95.6414 648.5159 null] +>> endobj +1047 0 obj << +/D [1042 0 R /XYZ 95.6414 588.6127 null] +>> endobj +1048 0 obj << +/D [1042 0 R /XYZ 351.4345 580.4632 null] +>> endobj +1049 0 obj << +/D [1042 0 R /XYZ 95.6414 550.7547 null] +>> endobj +1050 0 obj << +/D [1042 0 R /XYZ 157.392 531.6463 null] +>> endobj +1051 0 obj << +/D [1042 0 R /XYZ 295.9245 531.6463 null] +>> endobj +1052 0 obj << +/D [1042 0 R /XYZ 95.6414 501.9378 null] +>> endobj +1053 0 obj << +/D [1042 0 R /XYZ 162.8524 493.7883 null] +>> endobj +1054 0 obj << +/D [1042 0 R /XYZ 212.0445 493.7883 null] +>> endobj +1055 0 obj << +/D [1042 0 R /XYZ 310.5527 471.8705 null] +>> endobj +1056 0 obj << +/D [1042 0 R /XYZ 426.8449 471.8705 null] +>> endobj +1057 0 obj << +/D [1042 0 R /XYZ 169.2957 460.9116 null] +>> endobj +1058 0 obj << +/D [1042 0 R /XYZ 465.6539 449.9527 null] +>> endobj +1059 0 obj << +/D [1042 0 R /XYZ 95.6414 431.203 null] +>> endobj +1060 0 obj << +/D [1042 0 R /XYZ 292.4494 412.0946 null] +>> endobj +1061 0 obj << +/D [1042 0 R /XYZ 411.1336 401.1357 null] +>> endobj +1062 0 obj << +/D [1042 0 R /XYZ 479.5303 401.1357 null] +>> endobj +1063 0 obj << +/D [1042 0 R /XYZ 95.6414 371.4272 null] +>> endobj +1064 0 obj << +/D [1042 0 R /XYZ 143.462 352.3188 null] +>> endobj +1065 0 obj << +/D [1042 0 R /XYZ 95.6414 347.1985 null] +>> endobj +1066 0 obj << +/D [1042 0 R /XYZ 164.133 336.3786 null] +>> endobj +1067 0 obj << +/D [1042 0 R /XYZ 407.3489 325.4197 null] +>> endobj +421 0 obj << +/D [1042 0 R /XYZ 95.6414 317.6289 null] +>> endobj +206 0 obj << +/D [1042 0 R /XYZ 336.1436 287.2528 null] +>> endobj +1068 0 obj << +/D [1042 0 R /XYZ 95.6414 278.5433 null] +>> endobj +1069 0 obj << +/D [1042 0 R /XYZ 443.6094 259.3076 null] +>> endobj +1070 0 obj << +/D [1042 0 R /XYZ 487.1731 259.3076 null] +>> endobj +1071 0 obj << +/D [1042 0 R /XYZ 95.6414 240.5579 null] +>> endobj +1072 0 obj << +/D [1042 0 R /XYZ 95.6414 186.7597 null] +>> endobj +1073 0 obj << +/D [1042 0 R /XYZ 95.6414 119.0477 null] +>> endobj +1074 0 obj << +/D [1042 0 R /XYZ 95.6414 85.7386 null] +>> endobj +1041 0 obj << +/Font << /F37 371 0 R /F36 315 0 R /F28 250 0 R /F23 242 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1078 0 obj << +/Length 1682 +/Filter /FlateDecode +>> +stream +xڭk6{E ]TK_0]w{Æ!֡Ulcy}iHQrwkpEJߤ!EDrHEDE.3Wg/nt<b=b-˶MY_Do~>,y??=n=sTwH,26(- 0 \XiY}[,WI0D!^܊h#`Fxt%S0$Q۳?a`:w&x,ˮM},Us7;M+kUӚ>lV1!`^ neN_.^u?zKkxr/٤QPAļժ%h9b w`_5#`ބ(T_cA`PjRsmUQU*F za8O(أ@YEn+IJUum` +E v$N}U͢fyxCSE DO.@$Iwkځ.@1 c`MH[\_ktG|=舄Y J/L%AI1ԐF\IF!sC9oA鉄߇DȄ/YioC +*O .w$"4_, |0qcU;Vah tdEWUiJ3&8O^ַ>ޣHEX:7sp)es`t7lkН#̢(uzw(njkV J1:H@@+FaqE-!mpA C +7]]@\ƙoޠ2S4;CLyj3Av9Pz!OVuU ~ rCV,Tk,W> endobj +1079 0 obj << +/D [1077 0 R /XYZ 95.6414 729.2652 null] +>> endobj +422 0 obj << +/D [1077 0 R /XYZ 95.6414 685.0451 null] +>> endobj +210 0 obj << +/D [1077 0 R /XYZ 141.7999 651.9143 null] +>> endobj +1080 0 obj << +/D [1077 0 R /XYZ 95.6414 645.1185 null] +>> endobj +1081 0 obj << +/D [1077 0 R /XYZ 193.4217 612.4075 null] +>> endobj +423 0 obj << +/D [1077 0 R /XYZ 95.6414 598.6391 null] +>> endobj +214 0 obj << +/D [1077 0 R /XYZ 236.9944 569.1845 null] +>> endobj +1082 0 obj << +/D [1077 0 R /XYZ 95.6414 560.4751 null] +>> endobj +1083 0 obj << +/D [1077 0 R /XYZ 273.6031 552.1982 null] +>> endobj +1084 0 obj << +/D [1077 0 R /XYZ 329.4557 552.1982 null] +>> endobj +1085 0 obj << +/D [1077 0 R /XYZ 95.6414 531.0625 null] +>> endobj +424 0 obj << +/D [1077 0 R /XYZ 95.6414 481.7231 null] +>> endobj +218 0 obj << +/D [1077 0 R /XYZ 237.5007 448.6765 null] +>> endobj +1086 0 obj << +/D [1077 0 R /XYZ 95.6414 439.967 null] +>> endobj +1087 0 obj << +/D [1077 0 R /XYZ 294.8793 431.6902 null] +>> endobj +1088 0 obj << +/D [1077 0 R /XYZ 95.6414 399.5956 null] +>> endobj +1089 0 obj << +/D [1077 0 R /XYZ 95.6414 379.8451 null] +>> endobj +1090 0 obj << +/D [1077 0 R /XYZ 95.6414 358.8484 null] +>> endobj +1091 0 obj << +/D [1077 0 R /XYZ 95.6414 339.0979 null] +>> endobj +425 0 obj << +/D [1077 0 R /XYZ 95.6414 320.4872 null] +>> endobj +222 0 obj << +/D [1077 0 R /XYZ 316.1694 290.1111 null] +>> endobj +1092 0 obj << +/D [1077 0 R /XYZ 95.6414 281.4016 null] +>> endobj +1093 0 obj << +/D [1077 0 R /XYZ 455.3691 273.1248 null] +>> endobj +1094 0 obj << +/D [1077 0 R /XYZ 302.0579 251.207 null] +>> endobj +1095 0 obj << +/D [1077 0 R /XYZ 380.9756 251.207 null] +>> endobj +1096 0 obj << +/D [1077 0 R /XYZ 95.6414 227.476 null] +>> endobj +1097 0 obj << +/D [1077 0 R /XYZ 95.6414 161.0058 null] +>> endobj +1098 0 obj << +/D [1077 0 R /XYZ 457.1436 150.1859 null] +>> endobj +1099 0 obj << +/D [1077 0 R /XYZ 175.8324 139.227 null] +>> endobj +434 0 obj << +/D [1077 0 R /XYZ 95.6414 109.5184 null] +>> endobj +1076 0 obj << +/Font << /F37 371 0 R /F36 315 0 R /F23 242 0 R /F28 250 0 R /F52 774 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1102 0 obj << +/Length 3489 +/Filter /FlateDecode +>> +stream +x]~ P/fERG.פE-qɒ+ɻ eIw7y- r8$M?y2IU.TbMqxxX (FΑBƕb2"#OF%u>u_jR}9]m+ū4^V}Qü[ԵNҷ?yTЗd0Th)ahfu(dQIU:"v˿_)-,HO5v>:"䩪kO)V4\i`1rGCX޶! 0d;=^ hޕ0m~щ=:ޭg0wΦ+2sO_R +Z`w3 X/Yܞ06#Vj8 |Knط8P|EUPP<;S[>F/g:jy#mP #xmǫ>PT 4eVSp5kƁ82cf0Lvß9/fMDh5Y*4sPt尻Ѧ;-AT6iTd*JTi /qg"i|j û8劎,c>_c-8vm] McjxY(ny&ݷu>j#NLb)=9i;Ţ4'Ớd9#l妙Ww]~'TK2*Ntg `6۲ ÚEe#|Z(7  v>tr(DzIhJвc]62ʤ㴶{X78MFŋt:̅>uP)g_\y@ = AqYd%0;lƋ}Xҧ?xGߕ|$^<6 !(}?`9P|nصNLO)islhpޝV`8u\`~|HD,E91Z.PXmCiH/)u2bjZv}i cݴl?/WP ,+Il]2}\FaMhzL]LYײɚU4m\yPa,r%'1y^:"Z @uz1i1zA#[4bI!0Q\SH$ZbEd"2~MnIBИ*zZ( +xG +ׯ z]WPCt i86%q^,5Zu Ny"CY['jǏ,`Cu r=/Gj,2ѤSۇwFrꇠ_6[+^_8Ԧ~Ɲ],êauUT]}EߦXmzUv}]o3:3c&";H9q?|puT fA9H"9Hw K4j;ZקB*B:g@/ÒI@>iu'<;Tch bьǨ NFY2H/0y +4R%p<;וu2< l TCNHg F'Uހ0V|ji71cJV-eJ\=ڔmإhwkNEW) Z^]ߢK2h"j,H>uM1u989 +A{B;vPH6h|-6l`M =u){Ce-5WM{UhBS5Pvvc voqӻeV +X ʮo%WjJƚXTUa|4sXb$zMƒkj| &c6 +@ݙ@!e`?<^ 7XDQzaK}Ģ#U}I+w:Dhyf˦ nXʚ@ Pemu]FWemm76C$?$m: m~z@D >X^Ԟ{@σcb Pgɤa)/eY$[qpKRj\[sʹ\Jbe(1t[iA9q.J]`,L<>Βbv""Ih =j%$ȉ8Z& j03"ɗJ"Y"5 /W]}GXMur! Ǟ:5/ 5cǪ=pݗ +bpfILagG|\es:phΖG)49zc\KwFzAu-균M$fUluSʥ,! 2y+d&(Xv>9|g_2C\Ļ%а6(nk] DbͯP\l|Ȯ|G`aֹN_& 9]J].qU;]?& >%GʡU_6 BVQ[Gp:2?=Mri 'N;BȊH0yee@!j曇,x#> endobj +1103 0 obj << +/D [1101 0 R /XYZ 95.6414 729.2652 null] +>> endobj +226 0 obj << +/D [1101 0 R /XYZ 441.9715 706.3512 null] +>> endobj +1104 0 obj << +/D [1101 0 R /XYZ 95.6414 697.8285 null] +>> endobj +1105 0 obj << +/D [1101 0 R /XYZ 95.6414 651.2927 null] +>> endobj +1106 0 obj << +/D [1101 0 R /XYZ 265.3154 640.5479 null] +>> endobj +1107 0 obj << +/D [1101 0 R /XYZ 315.1886 629.589 null] +>> endobj +1108 0 obj << +/D [1101 0 R /XYZ 95.6414 588.9216 null] +>> endobj +1109 0 obj << +/D [1101 0 R /XYZ 304.8517 558.8543 null] +>> endobj +1110 0 obj << +/D [1101 0 R /XYZ 487.1731 558.8543 null] +>> endobj +1111 0 obj << +/D [1101 0 R /XYZ 143.462 536.9365 null] +>> endobj +1112 0 obj << +/D [1101 0 R /XYZ 491.5571 536.9365 null] +>> endobj +1113 0 obj << +/D [1101 0 R /XYZ 143.462 515.0187 null] +>> endobj +435 0 obj << +/D [1101 0 R /XYZ 95.6414 497.2653 null] +>> endobj +230 0 obj << +/D [1101 0 R /XYZ 228.9052 465.5631 null] +>> endobj +1114 0 obj << +/D [1101 0 R /XYZ 95.6414 458.7673 null] +>> endobj +1115 0 obj << +/D [1101 0 R /XYZ 95.6414 434.2058 null] +>> endobj +1116 0 obj << +/D [1101 0 R /XYZ 95.6414 429.2244 null] +>> endobj +1117 0 obj << +/D [1101 0 R /XYZ 153.4247 411.1123 null] +>> endobj +1118 0 obj << +/D [1101 0 R /XYZ 153.4247 411.1123 null] +>> endobj +1119 0 obj << +/D [1101 0 R /XYZ 198.96 411.1123 null] +>> endobj +1120 0 obj << +/D [1101 0 R /XYZ 381.6358 411.1123 null] +>> endobj +1121 0 obj << +/D [1101 0 R /XYZ 464.8012 411.1123 null] +>> endobj +1122 0 obj << +/D [1101 0 R /XYZ 175.9583 400.1534 null] +>> endobj +1123 0 obj << +/D [1101 0 R /XYZ 248.7619 389.1945 null] +>> endobj +1124 0 obj << +/D [1101 0 R /XYZ 95.6414 378.0214 null] +>> endobj +1125 0 obj << +/D [1101 0 R /XYZ 153.4247 362.2954 null] +>> endobj +1126 0 obj << +/D [1101 0 R /XYZ 153.4247 362.2954 null] +>> endobj +1127 0 obj << +/D [1101 0 R /XYZ 189.2445 362.2954 null] +>> endobj +1128 0 obj << +/D [1101 0 R /XYZ 211.2357 362.2954 null] +>> endobj +1129 0 obj << +/D [1101 0 R /XYZ 95.6414 337.5681 null] +>> endobj +1130 0 obj << +/D [1101 0 R /XYZ 153.4247 324.4373 null] +>> endobj +1131 0 obj << +/D [1101 0 R /XYZ 153.4247 324.4373 null] +>> endobj +1132 0 obj << +/D [1101 0 R /XYZ 184.056 324.4373 null] +>> endobj +1133 0 obj << +/D [1101 0 R /XYZ 214.1615 324.4373 null] +>> endobj +1134 0 obj << +/D [1101 0 R /XYZ 95.6414 299.7101 null] +>> endobj +1135 0 obj << +/D [1101 0 R /XYZ 153.4247 286.5793 null] +>> endobj +1136 0 obj << +/D [1101 0 R /XYZ 153.4247 286.5793 null] +>> endobj +1137 0 obj << +/D [1101 0 R /XYZ 200.1711 286.5793 null] +>> endobj +1138 0 obj << +/D [1101 0 R /XYZ 426.9285 275.6204 null] +>> endobj +1139 0 obj << +/D [1101 0 R /XYZ 95.6414 250.953 null] +>> endobj +1140 0 obj << +/D [1101 0 R /XYZ 153.4247 237.7624 null] +>> endobj +1141 0 obj << +/D [1101 0 R /XYZ 153.4247 237.7624 null] +>> endobj +1142 0 obj << +/D [1101 0 R /XYZ 182.2635 237.7624 null] +>> endobj +1143 0 obj << +/D [1101 0 R /XYZ 95.6414 223.9941 null] +>> endobj +1144 0 obj << +/D [1101 0 R /XYZ 153.4247 210.8632 null] +>> endobj +1145 0 obj << +/D [1101 0 R /XYZ 153.4247 210.8632 null] +>> endobj +1146 0 obj << +/D [1101 0 R /XYZ 193.9387 210.8632 null] +>> endobj +1147 0 obj << +/D [1101 0 R /XYZ 95.6414 197.0949 null] +>> endobj +1148 0 obj << +/D [1101 0 R /XYZ 153.4247 183.9641 null] +>> endobj +1149 0 obj << +/D [1101 0 R /XYZ 153.4247 183.9641 null] +>> endobj +1150 0 obj << +/D [1101 0 R /XYZ 200.2593 183.9641 null] +>> endobj +1151 0 obj << +/D [1101 0 R /XYZ 95.6414 170.1958 null] +>> endobj +1152 0 obj << +/D [1101 0 R /XYZ 153.4247 157.065 null] +>> endobj +1153 0 obj << +/D [1101 0 R /XYZ 153.4247 157.065 null] +>> endobj +1154 0 obj << +/D [1101 0 R /XYZ 177.9744 157.065 null] +>> endobj +1155 0 obj << +/D [1101 0 R /XYZ 439.1188 157.065 null] +>> endobj +1156 0 obj << +/D [1101 0 R /XYZ 312.8851 135.1472 null] +>> endobj +1157 0 obj << +/D [1101 0 R /XYZ 95.6414 132.3378 null] +>> endobj +1158 0 obj << +/D [1101 0 R /XYZ 153.4247 119.207 null] +>> endobj +1159 0 obj << +/D [1101 0 R /XYZ 153.4247 119.207 null] +>> endobj +1160 0 obj << +/D [1101 0 R /XYZ 200.2593 119.207 null] +>> endobj +1161 0 obj << +/D [1101 0 R /XYZ 230.8442 108.248 null] +>> endobj +1162 0 obj << +/D [1101 0 R /XYZ 413.8181 108.248 null] +>> endobj +1163 0 obj << +/D [1101 0 R /XYZ 238.9116 97.2891 null] +>> endobj +1164 0 obj << +/D [1101 0 R /XYZ 95.6414 72.5619 null] +>> endobj +1100 0 obj << +/Font << /F37 371 0 R /F23 242 0 R /F28 250 0 R /F36 315 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1167 0 obj << +/Length 3132 +/Filter /FlateDecode +>> +stream +xZͳ _[gVD}餝ti^M%>[]Yr,y_^)S2eis  HM?$#m1K)N%ڹT<d,6V(X*yy.?n?Ϫ)_ 0|:*=?P/[O~  ! &y 6;!Xx($Y(mF"$,K3dG!T4Ld<۸Yӯ#u/FoRPli1$!d,9)idx YU 䶫ka= k}RYъ}YQmvRҷմAVP9TV1D̰Q jLJX&̝P(mwVE]Q @1W{S4beZm_2?kpOf$>M9t2NO K9T@Ps +~aHXY_FWg2?dT[kCK#S{ / H/D~VZ-V&;!w +`ˁJjѣ,HelP}G% Tm'Z0 {&?jBqrВujx|p%#&$êi N֫An$pOת/G_-,J_kLT9C)PTPp]3Pr`(Kd}'b`w'ܤǓL/2Ɵh@/'.2`2-}nD2>f\Ul$15|ڼ{uDѿ;SךcJErMi&]Nv6-]Z~ d찡2_942_׶遘3jg,1uKFCs= ޹q&/KvʳpZ5U*TqFJ E# ŧ}aתSkPxz*yZ?`.ռUTVª[HVΙuĒ8[a֒IFg5ki&ܬq@0k4h,t$8#j  |`s! 5#ġzK51Wʽ7"B!!$"[YD"s,L#F$@a#' +*V }sӷ:rS ;f8tp2fpXv LBѡzFKF5h1FWW^8B!E&_=V9P@f3.kH7FuiHaȲ, @rR-u bɕuE{V(R$IO(bkj+h ݴ`bP{u*Br4#kS 7Ē ,m7Vʑ0YqhliRju9jniGCCD0}A‚,]8sR-u ަb͕4q +O~۔rE@?)C-_^ lJ ָPuuKumF@5.m8=ND}omҠیf0hn_g1K5j|>+w'|#9)/.88 ]'}4 8i81ߠ#먜hoCTjesVjas17|A1\y Tq];1 [W]/A/ TR-/%1 O3/1U`d jס& +pvqkt`3h!2T?C>zUO߽:hM0D.KXǓ=+ g"cCA5UӍ._u8/j gUßij{0ӻi{joT3/9ƹ?aZ|њgݹmJoP *ZhBN-H s%6/x&/ +Mms7N Æ<B*2G> ߨˏ0$^E}F!b'1^"$!FAg"X͛MkNnP'z"\4SEF5kMezhS҆t"47o|};ʧk(=^@E=*&v?Ƀ43dS4\ ;v Z+} h +y!n>`0= +Zfendstream +endobj +1166 0 obj << +/Type /Page +/Contents 1167 0 R +/Resources 1165 0 R +/MediaBox [0 0 609.7136 789.0411] +/Parent 1075 0 R +>> endobj +1168 0 obj << +/D [1166 0 R /XYZ 95.6414 729.2652 null] +>> endobj +1169 0 obj << +/D [1166 0 R /XYZ 153.4247 706.3512 null] +>> endobj +1170 0 obj << +/D [1166 0 R /XYZ 153.4247 706.3512 null] +>> endobj +1171 0 obj << +/D [1166 0 R /XYZ 188.6429 706.3512 null] +>> endobj +1172 0 obj << +/D [1166 0 R /XYZ 210.0325 706.3512 null] +>> endobj +1173 0 obj << +/D [1166 0 R /XYZ 281.1685 684.4334 null] +>> endobj +1174 0 obj << +/D [1166 0 R /XYZ 213.6778 673.4745 null] +>> endobj +1175 0 obj << +/D [1166 0 R /XYZ 95.6414 670.665 null] +>> endobj +1176 0 obj << +/D [1166 0 R /XYZ 153.4247 657.5342 null] +>> endobj +1177 0 obj << +/D [1166 0 R /XYZ 153.4247 657.5342 null] +>> endobj +1178 0 obj << +/D [1166 0 R /XYZ 182.617 657.5342 null] +>> endobj +1179 0 obj << +/D [1166 0 R /XYZ 95.6414 643.7659 null] +>> endobj +1180 0 obj << +/D [1166 0 R /XYZ 153.4247 630.6351 null] +>> endobj +1181 0 obj << +/D [1166 0 R /XYZ 153.4247 630.6351 null] +>> endobj +1182 0 obj << +/D [1166 0 R /XYZ 184.1832 630.6351 null] +>> endobj +1183 0 obj << +/D [1166 0 R /XYZ 214.6706 630.6351 null] +>> endobj +1184 0 obj << +/D [1166 0 R /XYZ 278.2775 630.6351 null] +>> endobj +1185 0 obj << +/D [1166 0 R /XYZ 95.6414 606.6302 null] +>> endobj +1186 0 obj << +/D [1166 0 R /XYZ 153.4247 592.7771 null] +>> endobj +1187 0 obj << +/D [1166 0 R /XYZ 153.4247 592.7771 null] +>> endobj +1188 0 obj << +/D [1166 0 R /XYZ 188.1943 592.7771 null] +>> endobj +1189 0 obj << +/D [1166 0 R /XYZ 214.5752 592.7771 null] +>> endobj +1190 0 obj << +/D [1166 0 R /XYZ 270.2161 592.7771 null] +>> endobj +1191 0 obj << +/D [1166 0 R /XYZ 95.6414 590.0275 null] +>> endobj +1192 0 obj << +/D [1166 0 R /XYZ 153.4247 576.8368 null] +>> endobj +1193 0 obj << +/D [1166 0 R /XYZ 153.4247 576.8368 null] +>> endobj +1194 0 obj << +/D [1166 0 R /XYZ 193.1857 576.8368 null] +>> endobj +1195 0 obj << +/D [1166 0 R /XYZ 218.4017 576.8368 null] +>> endobj +1196 0 obj << +/D [1166 0 R /XYZ 272.8776 576.8368 null] +>> endobj +1197 0 obj << +/D [1166 0 R /XYZ 95.6414 563.0685 null] +>> endobj +1198 0 obj << +/D [1166 0 R /XYZ 153.4247 549.9377 null] +>> endobj +1199 0 obj << +/D [1166 0 R /XYZ 153.4247 549.9377 null] +>> endobj +1200 0 obj << +/D [1166 0 R /XYZ 198.9539 549.9377 null] +>> endobj +1201 0 obj << +/D [1166 0 R /XYZ 225.3348 549.9377 null] +>> endobj +1202 0 obj << +/D [1166 0 R /XYZ 280.9758 549.9377 null] +>> endobj +1203 0 obj << +/D [1166 0 R /XYZ 95.6414 547.1283 null] +>> endobj +1204 0 obj << +/D [1166 0 R /XYZ 153.4247 533.9975 null] +>> endobj +1205 0 obj << +/D [1166 0 R /XYZ 153.4247 533.9975 null] +>> endobj +1206 0 obj << +/D [1166 0 R /XYZ 367.8778 523.0386 null] +>> endobj +1207 0 obj << +/D [1166 0 R /XYZ 95.6414 520.2292 null] +>> endobj +1208 0 obj << +/D [1166 0 R /XYZ 153.4247 507.0984 null] +>> endobj +1209 0 obj << +/D [1166 0 R /XYZ 153.4247 507.0984 null] +>> endobj +1210 0 obj << +/D [1166 0 R /XYZ 153.4247 496.1395 null] +>> endobj +1211 0 obj << +/D [1166 0 R /XYZ 95.6414 493.3301 null] +>> endobj +1212 0 obj << +/D [1166 0 R /XYZ 153.4247 480.1992 null] +>> endobj +1213 0 obj << +/D [1166 0 R /XYZ 153.4247 480.1992 null] +>> endobj +1214 0 obj << +/D [1166 0 R /XYZ 189.3302 480.1992 null] +>> endobj +1215 0 obj << +/D [1166 0 R /XYZ 291.0398 469.2403 null] +>> endobj +1216 0 obj << +/D [1166 0 R /XYZ 302.7329 458.2814 null] +>> endobj +1217 0 obj << +/D [1166 0 R /XYZ 318.4738 458.2814 null] +>> endobj +1218 0 obj << +/D [1166 0 R /XYZ 95.6414 455.472 null] +>> endobj +1219 0 obj << +/D [1166 0 R /XYZ 153.4247 442.3412 null] +>> endobj +1220 0 obj << +/D [1166 0 R /XYZ 153.4247 442.3412 null] +>> endobj +1221 0 obj << +/D [1166 0 R /XYZ 95.6414 442.127 null] +>> endobj +1222 0 obj << +/D [1166 0 R /XYZ 153.4247 426.401 null] +>> endobj +1223 0 obj << +/D [1166 0 R /XYZ 153.4247 426.401 null] +>> endobj +1224 0 obj << +/D [1166 0 R /XYZ 193.2502 426.401 null] +>> endobj +1225 0 obj << +/D [1166 0 R /XYZ 217.1848 426.401 null] +>> endobj +1226 0 obj << +/D [1166 0 R /XYZ 266.4494 426.401 null] +>> endobj +1227 0 obj << +/D [1166 0 R /XYZ 216.4079 404.4832 null] +>> endobj +1228 0 obj << +/D [1166 0 R /XYZ 95.6414 396.6924 null] +>> endobj +1229 0 obj << +/D [1166 0 R /XYZ 190.0667 377.584 null] +>> endobj +1230 0 obj << +/D [1166 0 R /XYZ 246.6441 377.584 null] +>> endobj +1231 0 obj << +/D [1166 0 R /XYZ 95.6414 374.7746 null] +>> endobj +1232 0 obj << +/D [1166 0 R /XYZ 95.6414 369.7933 null] +>> endobj +1233 0 obj << +/D [1166 0 R /XYZ 153.4247 351.6812 null] +>> endobj +1234 0 obj << +/D [1166 0 R /XYZ 153.4247 351.6812 null] +>> endobj +1235 0 obj << +/D [1166 0 R /XYZ 252.2531 351.6812 null] +>> endobj +1236 0 obj << +/D [1166 0 R /XYZ 95.6414 348.8718 null] +>> endobj +1237 0 obj << +/D [1166 0 R /XYZ 153.4247 335.741 null] +>> endobj +1238 0 obj << +/D [1166 0 R /XYZ 153.4247 335.741 null] +>> endobj +1239 0 obj << +/D [1166 0 R /XYZ 246.8733 335.741 null] +>> endobj +1240 0 obj << +/D [1166 0 R /XYZ 95.6414 332.9315 null] +>> endobj +1241 0 obj << +/D [1166 0 R /XYZ 153.4247 319.8007 null] +>> endobj +1242 0 obj << +/D [1166 0 R /XYZ 153.4247 319.8007 null] +>> endobj +1243 0 obj << +/D [1166 0 R /XYZ 261.272 319.8007 null] +>> endobj +1244 0 obj << +/D [1166 0 R /XYZ 487.1731 319.8007 null] +>> endobj +1245 0 obj << +/D [1166 0 R /XYZ 172.782 308.8418 null] +>> endobj +1246 0 obj << +/D [1166 0 R /XYZ 95.6414 306.0324 null] +>> endobj +1247 0 obj << +/D [1166 0 R /XYZ 153.4247 292.9016 null] +>> endobj +1248 0 obj << +/D [1166 0 R /XYZ 153.4247 292.9016 null] +>> endobj +1249 0 obj << +/D [1166 0 R /XYZ 263.0128 292.9016 null] +>> endobj +1250 0 obj << +/D [1166 0 R /XYZ 95.6414 290.0922 null] +>> endobj +1251 0 obj << +/D [1166 0 R /XYZ 153.4247 276.9614 null] +>> endobj +1252 0 obj << +/D [1166 0 R /XYZ 153.4247 276.9614 null] +>> endobj +1253 0 obj << +/D [1166 0 R /XYZ 184.1566 276.9614 null] +>> endobj +1254 0 obj << +/D [1166 0 R /XYZ 312.8504 266.0025 null] +>> endobj +1255 0 obj << +/D [1166 0 R /XYZ 226.7496 244.0847 null] +>> endobj +1256 0 obj << +/D [1166 0 R /XYZ 359.8673 244.0847 null] +>> endobj +1257 0 obj << +/D [1166 0 R /XYZ 170.6387 233.1258 null] +>> endobj +1258 0 obj << +/D [1166 0 R /XYZ 446.0691 233.1258 null] +>> endobj +1259 0 obj << +/D [1166 0 R /XYZ 331.8829 222.1669 null] +>> endobj +1165 0 obj << +/Font << /F37 371 0 R /F28 250 0 R /F36 315 0 R /F35 258 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +831 0 obj +[234 0 R /Fit] +endobj +818 0 obj +[234 0 R /Fit] +endobj +794 0 obj +[234 0 R /Fit] +endobj +760 0 obj +[234 0 R /Fit] +endobj +707 0 obj +[234 0 R /Fit] +endobj +706 0 obj +[234 0 R /Fit] +endobj +705 0 obj +[234 0 R /Fit] +endobj +664 0 obj +[234 0 R /Fit] +endobj +649 0 obj +[234 0 R /Fit] +endobj +648 0 obj +[234 0 R /Fit] +endobj +608 0 obj +[234 0 R /Fit] +endobj +561 0 obj +[234 0 R /Fit] +endobj +1008 0 obj << +/Length1 771 +/Length2 1151 +/Length3 532 +/Length 1711 +/Filter /FlateDecode +>> +stream +xRiTS2j=,i !@2H̽!$28PIUElt(*JUE(*ie-R*N`]]?;f0ɂؐdPg.`Dq,@N"" `e@_& h 4YE7I@r +P5r5(B@V7Z$ !2M +l@Qƙ)q xoSFn2 Z`DIƩn!kjqiZZ(?Կr 5$B#6'C`4]35LըB%h"p(J*T@)W!8SPMHH¢d]*'c2@ r!H)$Q,@Nr"*,hsNRWLPm_=F&7p'fropmkx|w'9 *  z+QS" +Sjr%UGi zrF4|Vcv%!_q`%~Jm +l7:1+xOv=́wM ͩ~r}z'uݪ{>\8捗sS6vl]Kh eWA~Ste~ ^/͍z;喭A/Y]7xej4hBSLpeh|kQ`񾷋!Ƨ)D́.pnwp~NIPtpȼyjj%RߺE](0ׇ;w򼋡=Ic/,1I^-Y.ǧE{psbsW?3U_%žA6+m|Ge Fx=Ƒ\M<=јfou_7wK؋GآK&~|UcmcTZi&37ql;q9v.tkf;y~5cIqǂ\RvG,\Hmӳ9K٬)jBjit?ʳ>7},#@[ƧKmkvE+DVDz2xg֬{'9`u֮\`zȦg@HO|ZzHO`=΄=j}*|}wW}Zu]+#XBq\ubNK~d7Qmg؜&%^*{Vp!WVK-ݞ>tj|'{"tHŸ<Å?^&S^DžIi;d6uγ+ܶ^9SMs7mEjB-ّ|ws +W`u}uA#;.fF_`\*)yeU7nY'rhT4w_,(JOF+n%n^9$k8f;tP]5y~rz$#u>Qg>Yߺ.,RpbΉ"I仒g߽c0qCasgyqN݌.uSuinj,j罫I} UɥN_뒊nU0v]u]9JlV3@o7  +fJ$U FKZ|>C”a&nӆ'p_B ȉڟ-endstream +endobj +1009 0 obj << +/Type /Font +/Subtype /Type1 +/Encoding 1260 0 R +/FirstChar 60 +/LastChar 62 +/Widths 1261 0 R +/BaseFont /FGOEQW+CMMI10 +/FontDescriptor 1007 0 R +>> endobj +1007 0 obj << +/Ascent 694 +/CapHeight 683 +/Descent -194 +/FontName /FGOEQW+CMMI10 +/ItalicAngle -14.04 +/StemV 72 +/XHeight 431 +/FontBBox [-32 -250 1048 750] +/Flags 4 +/CharSet (/less/greater) +/FontFile 1008 0 R +>> endobj +1261 0 obj +[778 0 778 ] +endobj +1260 0 obj << +/Type /Encoding +/Differences [ 0 /.notdef 60/less 61/.notdef 62/greater 63/.notdef] +>> endobj +773 0 obj << +/Length1 768 +/Length2 1151 +/Length3 532 +/Length 1721 +/Filter /FlateDecode +>> +stream +xR{</l9Kr"fdA.庼3/3wfdTuv6Z]88!6'j-{,ɭ-}q?|}X[sށ2{\yL`!JH H*OQLFD0I@᤹[eRE Ks@ȹG7\\D{:(*X jҿrQ!X"R$}LWV=uQVj!vÑN'NkcGg^zTP"Fq5g[C65_i#k+[VI2Ubk}VO*=h㗙0s_{VhR3MpakC & fTMcgg)yۦWPmE?th1U_w92O +]Q1`ݴ``D#ݝG{{QhYᲜSOrnj=68^Ux:aߜZ +7}ERY{Wxg4H6W-=/2ѵ))p '}!aĴ\g-qOJkDslQcu}JC`OV~[cH@ҩR\7yMVه>HWJwrfNw]ujN{{Rġv۾ewM<|BؖT|]eizTDN(m^GY̪Π@+뜟Lnƌ󻃍f{15y67dg2jL塐b:jruNwR4Tϵ_}P1~ L`Ys˝Jӣ/.ޱ3ALs#'/ғr/nI[jjH Cϐ檪hDìFVn<]m5թC÷2գ$˯F"N$9XejgM[O};u0N> endobj +772 0 obj << +/Ascent 694 +/CapHeight 683 +/Descent -194 +/FontName /RKTUMC+CMMI9 +/ItalicAngle -14.04 +/StemV 74 +/XHeight 431 +/FontBBox [-29 -250 1075 750] +/Flags 4 +/CharSet (/less/greater) +/FontFile 773 0 R +>> endobj +1263 0 obj +[799 0 799 ] +endobj +1262 0 obj << +/Type /Encoding +/Differences [ 0 /.notdef 60/less 61/.notdef 62/greater 63/.notdef] +>> endobj +1264 0 obj << +/Type /Encoding +/Differences [ 0 /.notdef 1/dotaccent/fi/fl/fraction/hungarumlaut/Lslash/lslash/ogonek/ring 10/.notdef 11/breve/minus 13/.notdef 14/Zcaron/zcaron/caron/dotlessi/dotlessj/ff/ffi/ffl/notequal/infinity/lessequal/greaterequal/partialdiff/summation/product/pi/grave/quotesingle/space/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft/bar/braceright/asciitilde 127/.notdef 128/Euro/integral/quotesinglbase/florin/quotedblbase/ellipsis/dagger/daggerdbl/circumflex/perthousand/Scaron/guilsinglleft/OE/Omega/radical/approxequal 144/.notdef 147/quotedblleft/quotedblright/bullet/endash/emdash/tilde/trademark/scaron/guilsinglright/oe/Delta/lozenge/Ydieresis 160/.notdef 161/exclamdown/cent/sterling/currency/yen/brokenbar/section/dieresis/copyright/ordfeminine/guillemotleft/logicalnot/hyphen/registered/macron/degree/plusminus/twosuperior/threesuperior/acute/mu/paragraph/periodcentered/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] +>> endobj +488 0 obj << +/Length1 1606 +/Length2 10979 +/Length3 532 +/Length 11834 +/Filter /FlateDecode +>> +stream +xweP^]-!˃;w'< [p73wuOթ:սzCA bjg uf`ad(l]lDMF8 + +1G3V ā&VV @dn VWѤǿ{>v:m@k;{{*p@@ZJA :Y\A&9 H0sXc05Ud4}lr쁎6 'o `hdg;/v3 ;}D|>윜LA΀JlaWn'Ї`gijgWI>`>F ['3\@)##o.N [28͍MNN0uuSF;?8fp,9M?rli[3; ?.s: f惄hǤ`@SOW_&j<+|0v9_wkd/5PGDl?`fd$ r*M,fF=ۮnk +t?fYLlj:?\@[e!߼5e6;JCug5bV,sx1X,n."0,\9;%3]\} [;ӿDcCϿG{ā@w 7˔Tj쬁1qݞ.Eujv~)a[d4ݹ딭\tLE'Q^sr:c*/Pl04dwH&ɵ1m(`hy'wT}ÃW{t1|B:e^?GƬO;o8WX|α UH\N=㧻Zw(I+Z_1/\d VPܳS]ã3?9*چE2 ="\5=A^C^eXҕţ;<#y(;1j AqUG&%,[a[ݷ [1Mڃ:>UCߎA=~AW]tF +Zc}ECBds6%)!t8> *Ns~0s_FM-ނB645.soPNHoTFcaM B"N2`-K@~29\%joݣU ++瘦j7&(X0I5C[hBzc}G)p٦̃T}SmR wY+hoB+&a553깗 Vߔ8,cՇ;ֶ/.H hurA<.v`[e n?qj8h-loHN?>A L5{Ѿ1l, ZmX#}R)T3PX'lrZ;6tyh8\|[Fs5j N@ˍ7g:rym,T.u+֜0_lD/J=rw>N[Ɵ;% ..}&.Ӏ@Չ˚"2mQNEU +Z` cR3RcFPX +OuX_,6|-Ԇ:"ޤ.m(kZ>XnPG.$\m~ޅz^ɼ,`V*5/l"I4vdG颏fx[zDt&Yd*{i/ݚtѬl*^EP2uuo=a=N&jwZxS ]vKԇxa-dk9*q!b}_\#&y5x5G۔:ɡ:8-`*Rk,Ͻ.6g (fNDYL [!^ΰ~ XlKCzchlPǒgCMHR/XGs>Yc)b$yJ48{ :96$CG[BeNkȪQ;r7gr~J h.WlEN3<}VZ ǚ7~:>k'gbEoXBOĨ|P80MN%flRWu21̤r`ƾsa-iuְzf̗dž9 + J`גynZe5횇v%)Gȅy] M2h[#A  ~s)" 3˞~(<[D8_?Mgzk@߾Oz,Vͮ|s]S/KØ t[?4nn}ECi!י !dH pdIzݐ7ط k~RF|/y:/ji9;d#Z_%Eˍawzm|'4>"6V*-#;WDQ?){1+[%7w\3LAi:6^q{^0Ca1/ Zq@?ۀ:qksw0s)d+I)Z i˟5J (M#h,i(}s '~Ċ6Ԡ s+/xj bm5>V)ʷ.1Χ,;;sX~b-ɜVj ˁ'Dd +,.7D?G˻DjNPJ\x{e =qOa6dT‘)#C +&]mޑ7+}M̶̘}j+#/IiP:M6:ES}ԭ啖ϋ(ǢK_ng7ҲR%JGn?#cSV8}E]8MV=oIZ0+r$d޹F$ DOaN!JEʖ߁4o )aY7Y rQP0[B[OV»y(m_C (Cڗk֣6$:c5i)}GeInҡZ(bm誴*뀩e5Xq*yǑI{^(+4mCi3X}㚧s6'o/]L2/4όwgU{*xESE T嵲[ l z }|iD2R>}?>H-ȓD鏘yvg;K:+͗PcXG-"V,4ٸ.'j: ѽZOk{N;(mHASZ؋Q6F+Z T^n/"+qKï𚛿t֟oWgq5o7&m% `/Z`7fva]aެ+>i?X{eHvI8Gc]kpH9Z@sz)޶fF ͤP1Hg!/8Ҧ @.ߕqY!$j[Copڼ=U=_ Mzx+$R~|o!XR2*i>6ʸJ803&ή„nJFo^Y-1fyɂ8]me3jxZeaxg wo~;Յi6O?Gq% YbsLd,K`Q( |}lo˜wE2F1}ߘ B+~@ e +EҀ6SLƆSe RvKY Sq݀? Y:J@{LOUr$ )!k8j~r?jF' ՍS#Ҡl&w'/,`Ս@ I4ᦙ*ڞ`K2p3}C \P +?w ëyysjgsl€1dGs*9!ywqxHydqZ./S71g795v(9!z?S#I#*^Lk{g4YRoM-_:RJ^CDzqI72b_=JmNzk^i.BZ؈k!)ZppdGK)vxӸsO+hV*lqte963JSuĴ}kCnph2%7yG攝rKv񳞓gH(5+9B٠3 +Aqdn­-`O]eRb M7zɉa;P2 C V~aBvp%.j sӍbp]%VvķZ'b(4Z&^f-198W#ξۑSJc'B O|(Yl].u`d ^`!{<2ӻ<# ueL{E#,`6~54G`f )VMdZYA`KAS eq'ϚTx ~Lu.S11QWʨ /#[nrx!.a JsDo4d@)uLBMF=$m?}~ z+уjSF-ND&Dr؈za6xT<)<Y`n{%1HZopgjί)Z]cf|!HgV!+ܒTKwP._J|RyP6 ! J/zt)g}yIH}4+= (YlS lBd) + YاVQp<6 ?Uсx=IUV@ 8@WfxQ@?}yU3Aӈ0AHck ϴ Rv.8:Ev Y2qq. ;^0Cؽ_B^|A gгk!1GýUZJQ~P9@5:o-I1FXv6̚X}jE. P0cũ^iwAIFw=J#& +^ +[ygG4:$0$x H@q w!-74\`J#@o&) 9wA͠MGLL\~sF?0>$o2 'oQ[Ofu-Zb#-l%Ũl *r!^M3tӔn>IȚ૆n4YbMK30Ob19~3TVƪBڅC a!/mmeX>+d9g^D|GCcɬA*E!ǑQO> ȿWI^1Ɉ5kSe`o7D2p [#A`=ha D scd)֡vR,ؕa#cgQW-P'SlݭDB5'_ 'C' Q!d_ Coq[\U܊o?]ğx¨ rM}ՀHɆsnd"7G&JjLD!WVv$6V`g;[t3.%EJW-Nj'~J61 #hUZ"]jl'4Sk`kfcz=_)fVϱSa9x<QV~ k};<Znد䵅.VO}񐉟b0GxTߚ>.v A.~lc[`y7|{"3DIHҕasu#kj +[4:&=ݺOI9 fD"Uӎ5v1VPs]i<}g(6&:O>sSI` wU.;h`7N6Ieٯ% V]e rP{%!FGQ97'xn,Ǻk/6[94w2zo^{M\ J$+^dHYBD>\(-PA$m7clgn,l5JjE2Vݮ%gyOZ:۞eLLk$~dHHISE"j I '\肈U\:ݍwl-`&\ +#/M%rAwjS'ڟ3+NږoxE 65* z O ŌqՓU:-g̗u94mCRBU4ܱez6cRuxߗe $jK GHn1ը|RQ=kMow+ ?hlXRD2xȥYmJ[0OH Jbk0{ׅVN!^[0BW^ fMh: +{j5G9ܪ1- hq9Lc<`,~NTAʅ}`E k,BSڕv'Z 1n6/^ r:f5w"ܨ?_MIOf+ΉBMܺ{F+V)b7NN#y TPU9[omnLgAm0W-H'Ctk GU^6 "9.oe+AJL*O_ .Z8/1)q*TV\94t9u+s쎘BNȧ D ~yE%yR7g"0Hqg5jp ~V7d=r2S4*u"lbpp-il%ilOGZFIV Ɍ3FsnrHVXVڔ@Oc@?=*g0{K1#&WiIzZw[̑YE0zW.J: + +YO~t1CWiBxR eTG 1,E<Sq&]iØv̏fjQasHGK[ۦ}N355rCځ;:zg@;s"y,th]),vw *h +YpY^KvA#jmX& n#JE©PĊ!jA +c EO0R~{͕?Nz#N!,52LZ Ri?I=ZMXLg 'o`$z؈{>O>*ۃ'ue>lYe~R'+ 0ֿe٭͟]9QrR"RX(څ_:6TY" *IkE3fz8cwo*xG+%amw]c<ϻP}jҀr#π+QuŁˆK?۟ Q{`P=ZC@HK$&L׬B(Bʘ]Z>Bϸ&kT/&T+ 椇z`<4DvX/K"27{atхOb27P̷/)\ DNړz]ZfP`9+fzM>0.o;5^h!RSȕM!Ϯq`_1҄;_+xde7@ }s(y+,pi36wM=ȎW0ZfP|?Ĉ{l ^*j2M]~_h.[&\P(FMT.ʵ@3$o}-_Ҏ/'ǰ? bhtLmtHFXJO+u >E6;Uic}9*V' = ;vƃICͷ}N~GnK?8Ѝ:C +jy\ڋ|,[kUBM_'^F~) 9sʞ5Av1 +aMGR~'T4FB@ 3dSxLHh6[*8v.G)cո <X.ԍFib ic=j#\R2hhsywid+Nct'g R+񗒼H穞Oʽ(ZѽZF ԑ $Ku"$ M +e%o9"YpfAF` Z`|b"bV \d _^ǐb7e9$fښvϛ]`CEft MEf)2{ ?^ϤĤ ΄ ( +. f +yf |CO<|y!@K*Wr0;h}$8[;!T,ɝ7ćĴRZD^"W51^҃l6m)hG~")m`t= NDYOfti+FFEdeOoYodKWhm44^ˣ@A,M!.Jf3#4X!6*4ϸE#GvRP1RJQC>b==Q +UJ)Ϥ!@^A g X.2&1+u?t_Gp \EV5ƻQ(P|L׵*8)J`+'&7F> +>C>vSLRVq& t4{gkW$*×#X]s(ϸIMPp3]Su?jEr`̱wW=J-YPhhxʤ?Քֵ&̟j,-/429aX?ECS!RTE%YV.N-E5N}yZSn)VHTAA ԢOn%s!D\q4]ÖJ>&<. ֊uN4&TVʻe«e&}V!Mz^*!;)^^Ju AVŗXӒ;ǖnl6}J?E39UZkk}e +[s?Lþo_w)F9 C'r7m)đ}Y(eF'J,[G\ou?=o6ּb[+?ilWgLb(ai.(B{3bbyK+6IĩU%,W dԔ\r> endobj +487 0 obj << +/Ascent 623 +/CapHeight 552 +/Descent -126 +/FontName /DWXYOJ+NimbusMonL-Bold +/ItalicAngle 0 +/StemV 101 +/XHeight 439 +/FontBBox [-43 -278 681 871] +/Flags 4 +/CharSet (/hyphen/period/one/two/three/four/five/six/seven/A/E/N/O/P/R/S/U/V/Y/a/b/c/e/h/j/k/l/n/o/p/r/s/t/u) +/FontFile 488 0 R +>> endobj +1265 0 obj +[600 600 0 0 600 600 600 600 600 600 600 0 0 0 0 0 0 0 0 0 600 0 0 0 600 0 0 0 0 0 0 0 0 600 600 600 0 600 600 0 600 600 0 0 600 0 0 0 0 0 0 0 600 600 600 0 600 0 0 600 0 600 600 600 0 600 600 600 0 600 600 600 600 ] +endobj +370 0 obj << +/Length1 1620 +/Length2 18249 +/Length3 532 +/Length 19166 +/Filter /FlateDecode +>> +stream +xڬctgo&۶m۶mb۶m'۬b;oY=i?νqm\{krb%Uza3+=3-_1; 93^C 0#1sssÐ:8z9[YXQŠ/?&D&^beaOD`hw  +Z̭lDJ +DT +D{"LlLL.j"sg"Lͬ)ͅ/ 1#lgʅo\MmI_ 9:; blJ7Ŀt4v'_5_K3SJ/_ +X&"3+G[c9:[+ 7+{ʀ`alf pq WDKƎ^v`5gafol +{FE܁r37й fof^DfsF׿!Xf#G#s,>wh 7[[c;!#璱2̍lOR,Un]oxa{s3[j"a 0Sr5$27۫ζVDLLMfiejcO؛ED4i{_vJwUrA4'=3'=+ߵxl̾b'.3w<9ǰK\R"oStq1gь^`8ڟRV1(bu~ u/ @#{rD3MkGFjB/:CtD9<16:w >pKMO+^)^36 +;~`!IZlVrhC+HcPZbZ+@qIT2Vi ۗ-jS~Z &zׂrrđ}!Ӵ[o^Bd4Ve15nf8J "].1 Es aC&\MT<+J2q@\c< uAKTsJƺS]:=I-X`ƤH:ч>/L(^0Yy>ӫy\:) 2]#ZΪYqi +s@^N'I1HN_O[ƫ%"Z{nAO-d + +P)OyvIS6Z#%#=W*Œ@nWwOp߁7; 0?>b"t$JU\kN*Wyzœ1AvBrd[+|NUZ,,t*nd&Z)|)Wz'PΞYyǮYwLo㖛ߙڶ͞OKfp|LX8Bsm<>*&-7]dYm.eqh>JQ$$#H*[{ILl֋B4&uq >%kP,ģ䱝VͲy]3>4|k*@si^?$Q0=en:;w3: 8Q~-m#X*6o +{90SzIJcH^na*4ĝՑs<h?/K`H#Zr,5Q3('=J!~O{ o$hl#JH?φ.~{s63)PqH0E8OXI5yKROlPVGw.>m啣 &=\E?цqgzL.@ P?Km n I R[d +<An2#DuYMleB5Mzb|s|۵qK%Piuŭ+fε3wt?wDSq]<;$uEDSd2|Iڞ|IFs9{o> +1lH6vojLINԠĻ4/eG8rM0򷆝eC| !8TY:V`֔ s]\bK-ADv١T̯ ~%y%e+8o[(")s*.'u9v١u# }Ro3fQ +a}Mf*_Z0"+,ZxC y9La?$ǧ- *nE"S˳QbttFaIFF|jLHZ,l*9H$9kkH>K< raO"2ނH‘n80kbwJxQa@ .rھ[<]u pX*k--OfS=H@+!'i L}#zjQ*P0 ?ص=K:vj-.?SiS K]j&,`z.+A'Bv &]pnMC؉_AB dd^~Y@^rx|4+7+ :%Vl2~ys-,p=* X}m*&3L"k>B1p%Y,zQ|N 6l5BQdJs]-N&l։xEWKm $O딡@6%+nh3dI*eVDlst0 b@/wO>4iP8!,*<_s&JOn3JA)Bז}); vv笜I +z BG栜]ߦ 1Ϸ6{qm9r{hYώ%y`/ y{~&}vd$(pr8gmW7pH H' >& .9=l0rc;qqr-ȕfuBx +S (fR(D\1D$?>%_{[ q~}b~U)Mv\݌!T@)<0sO mu*ìp +޾`e3~"_T,n\^`t$tSR< \Iwt38]t7 IFvԼ"ue{5f d`nTlY3{|g|~rJ="[!`#/js*ɥ90P/nҎIH8h 8Eb3ڹu%jKx鑆6@#(j6ra|9.# -hI0lڋ{nVSrR |@e.xh]Nh2@*EG~Z$.x_/[CL-Jr3)9~F(; dm:+SU&eW_ +d2GuTt$JI:wRjFDeV8xV-#ԫn59Qp/t_RwX@,ϐhϥbkWHn[)za6G$i'h ,TyN.ĤeCd!peHacLK5vRvsQRW\c@5c + TN0 d`lˉ<J5˿1e"+7tUU6[ +sa'ydƿ24I+2wد~#8 aɎaQlہgpx͡Exf;-5"u0r,Aec"+7)  +9 gOÉUk2 .eoOhDEok{+_b&`c|VZ$ \>|Wy@j;*wKjDd.S(_po !9s~9@$;ӄ::H+24$>qQh dRtQ#3~3hw<;x§3ǘCV>IW^HH+bn K)Vd-,Z*k'dӆt>= ~DLyQ;xB߸w~ IX#jXKbĝ C؉f³#ذ(USZ}ådOwnWj΂$bvƃ?&);M H7cXD 'UuYEҖh"K-~V&Z_+4/Rm _iVw~Ѱ ,NXg3Tb(*g +P^:y/XwYÃ} NL#mc/Ucd`6QuX7^'<þ].@RuZ-ijj[xnZ ع*UaĻnyW*~9;*Q "JwnnIl=#݂k+$'{`bS>AB,נ{ےb"e3]ЉD*-@CS|r8;XȬ)Ԫ2(%dXaÿ#x. $+Dϗ;ٻiI0u4L*(E1k;M*Rp5= ?m"">B۹7Ie ]^c%-elieVE}Tldq-Xa6 ġ'sxu'쩘r:#-%=NTa/U) q7]:9uiBY7VWj PdwPWԉ^)͞r#CCEaՕ=}f;+Bo +5!pc|O^XГhޚjN*p@ CgL!^w[S'$lK ZXgR},9v?"gh0:cQ:xΓѡz踡dܘQ`MKh@@3/ %CfJg^'15Ȼ)?J(-SM-[BĻE/).}>H,ΎSG<ײh:Ѐ&c'Rp~#}t@NM!I_OZq:>1SL8ܹGH|gaw"}K C`= +mu񋪢5g=ea7 ޽7jӟ +!s|Y!5֟]ilpO]LTZn#`H7\J讑DҤ +znK JJZdpOr8y\~VmNA[}܌.XVۢ+\Yܔ]]`U=E + JwIox2ܠnnSM"B4-JP&*_hKnOsG~)h ߺp>vZ_1M+)3B.iNjS4^/ҞNdJCHh\e]0R-GiARi:[r&z5 `U!d&i[de8O~9[K;X2jsL==[%*sN'`<]Pn)TnKT_u m8B9 An.b!Ň=U l|oRڗA9ɖ6r1zڧM>0^Y" r &LQnv +-u #g2 +#ϯi`@esLhvXqU&.B04@|$[QdJ-CkM "d4'nT Oڡe+RBa'$=$)^։p O,Hx`)e [aU _G/t6!Svm S|h8R4)ȠbY+({~!)$bX7r<$i|f1R`;J5U1V?ѣ(?FwK3#ĚABI8}*0!`RR[.LFH/_3 +SZwu9F'Ye_N,s$%F$U%X$n8 i ^ixXh-yf| 'ĬlbiwL`9hn @GͲfV1M;U(9V|ZpcavX^C |Ux#3Ulvle1JmR3 3׻򫴼bajL9#ҫ]В(7)M 2ŕ8VW)BLJ: ~`|WrE5*~eECք题6= |f7xMntìXe.غj-GP/-_;nѱv)|99BV w#wAHBRiCwZf#9h?UX+W*kD,h8uj7/e?TS`-%^]c "3jLSHJP~7?*S/ Jɢر +4.Gnd86e _i,`OC[=)ypKV7ӣh*K( @=}X"uQF}V;ƄQtE@o; +'}_?=,[物7Z$)}<š {d: ضzF ({C2^ep;ُY q;monꂰMp +珧INOQ:PŸ/-}|?_?³L̸~hZ)GC,ij*mxgxX~8E,*y vδfA|CMn}elumBA@ +)emտ`QC0 o[:L ĞCuٙVPx$'JdZ?Raw~/y0c \zQV>wF{ɜ1M͚a(u^*tj^F9Hr쮍d)`BcTe׶\脟Q+ym47q&kPkCfq<_픶 'Vrot/F G `npk9$fp.U=V-bc#mpo@BX~ĸ,nn&b;#IJ) 24x CK6pXbk8<JI(qu_s)ݎlҋKx4}N)H€/#)\5,]țx! haO0Z%h3 ΦPk%lmfՏ g]] 8yI]crYi@ß!U85[e٧Z\JD9zF.A1Ʈ̠3?7̦E:Qƣk~߈,D(ڱ,*L/E4c~x o 4r1Tu IZ_{QL(0ޔ"bt{IP5<*wȑ[M5S4LhGum"˺Ps5l|L,zUsӥbAI? !PmGqH6=](I#T{!N9x:Sq0*iRV[͉DVg/k-dzIy4vGqf3ëbR,sK8 ^i$!`Edk`K6e ٢%rwbt&5o\Zʙ=# υO[r9thpʷR7yǘA;;}4>MD.i>eɏDV .8RLis>!Y+&IzN,d b,7r|?E_٨Q>jHШwR +(X*䐢|NL)&_%WtCUY|9-(ZSJl PwL 9hxЊ݉%Y/deش__O8c+rb^ VV7L$W5U1yΰufGʆ>OxܚrqK)_t\p_ROˮ`BuGۮGO+3ҀEBExY79J|1X8Z#h ~_xiU[m]*t ,tfE[ nlJ(f~Tlȅ*`NKYQ1C%egVVN3:z|bªc|/yOHEm0œ#8swy +l{Z +Z`:YdIh~)PFΟ/eO%]3)&3%0bWF5a7qJAAKs1~ၦ"P Jtk|z +SJ`y]yd?b1B1\0ZcBCr@Gb'=XoО>UNa\gMDwFoGLYZ"41qV RB{+FX7~i5x썼L͋6kYGH+X63<4m8X`{T3Zީ2E|4ArYb?O.TîGw|U KAe5+ +b K)%[Y48akn h>ly*jpŀt7/">rOko;/s9"&w1D#mX/CaU:e95;N(>wRDtNe83Ϳ|ފ1]zOU+ +I +"?ͧI.K` cI0VeXZwh0=Gcoy ^z_WA|aX~i囹C{nxmyӻÿ㾱ɺFJK.zXY'Uip'<6HM$9M(IKAD\*=¥w`kIjCGK*%Ҋ~`{v||>HktS~߀)@#;Zx + I9WLxWM:c*ksV%~2vJkikLlIsAS3CL7OMmmEx,ePVKZ|e^sJUJ#˅c{۱kl^eorϞ*4f8Ȯ ARM0{,C;mI3^ZwFn{̘ mZo}- _ʍ~uG[;ܐ`~1[A#gq [5 +7Gu@PD ..+כh٤+++UAʢ&r획jg}E4f}STr$C/"c΍2b>@Ql$Ldwu`jBo(Mk2UЦx>]dY:ܖ,YiE^ي I̒7) +< ~!Wwnj|E0@-f.y+gEWgB.2!e7*xa˦L!?IoTu*(?DdǙoLAHY7^zG8F=mgmYH{~.ۚ1aF' T0nZڔFooLqA/ +:2Lch2mQm"xpO5tBN2_xl]3uKhurb~U K]a)zS hs7PlFa,ד 㐥B5ofoFP7,?W8 ݚ| l(QEX֭c;j'aixiU`7gө?s>2xz{XOt$C!~Ue$[7O62I +2 N `;5U@$_+Y^gMk/7#$zBb]qa&8gu;g^ix n7u__~ҍpG3)6OLUa z$FH} )(EZk?ʰ@RSLC^ߝ.@٢ծMS?lh,O0E@˃zIu|7sOpbT[e[.X=q9es%^,yv2檁.W}uCk)M<ڮrHŪŚ;7qN(iDn#4/o'tǢarhd/C"ģ@(<>$ 㨱9ϛ-ļM=n yf=? 3.2LFrE +ࢗ1MAW#ua r謮KmWFw#&~r^B6+(KVe*zxyKA)z v'z]rّ??nptC(SI7 9J\lx L2L;qC^|lQbcdž*T47&}'L Xu*DS9_њze6hƏ;SEuEuxÍZ` #st?8pXq/-{:D1jJQ~AA4f-K|CԱ5;T8o/}4XM{ܴQ^I?J;r8,볟 FaRll=mhmSb5Qj +*%JzתGRjFP"RĈUu;s}݄NēTԖ\Ζ( qlݷk:3Ae`sfU+{jGH7||۱8Qs8wkD,*Uԡ_5Ze +Hr PE:e@f^RK/ms/A Sc9sf{zFc 螮Kg^e'ҟȈ/4]W:?'y݋w'usL:R(%czSsjz4 T·K+ +2)>BQXLh>x<%00P{2ib0<'4 N*AGV-OleEl.asۨd8BX]n2 ~-kjR1<,syaw4Cu2cyHwDǪFT $PqȪ0 ڇrYh.\V.҇K +`fpt-H8ļ'Wt%NHv ڗ0q;!f\ n5=^S|:!KZ^mXy$b{([Dg7H˾V*uE"۩;'Ɔ +IYtpL+`xIRV-1hЏ]d7 ҁ>:]mŗhG{^d-Z/8ăoQ-7Ŀj\ 1*1M Qh밅d$`Nnwҥ:ҁllst?Rΰ1rפ؞f5f{ۑ61%^Y!G;,0Ooy5'PbPNУ&@Ր̺cECS)&:9?l\r/KLzADGiԛ +㸁2"Fꠑ +TfY_`80M;44 'R+] g<u8E,X6. S"7irK5VVl +%U8׏cy֣w,3:s%FܮcA+g,_Sεٷq Qe Q{}OJ`V&τ`Nh}L_4ZH{6/Ga=SV$ھ9EI!Bc_}fr^t8Iuz"bBȊIկ fBԩ=ˬ#|vН7"!f'ڼk~P^Z ]RfK~8&m2>Սk Jz m ᱍ!/h{3/ɥ v7|~0<[F{QO`pMM7_(vl(UZmn0hi"N;bx0}T;qXG;wX+Eb7qW5R9#ׯsDR%4~@*Ru}q1g Dz;w8l,s19, (K6=e:I ھT9&\B3^A?/R&ŝ\enoPXo Vvհ<㮿,W&{0РX`# \u 1 b9/ 4njN18**ҝ|OfrM'H/(.nɸOy\( ^i?PIwrwmAj5 x9H4ĊV'0ELj^<ԸTIn.W~N7_5Bn>1!dWPYbEME 3$" =soți(-Cf}YFpuk(1HNHD^G;`LS-> endobj +369 0 obj << +/Ascent 722 +/CapHeight 693 +/Descent -261 +/FontName /BHBNVE+URWPalladioL-Ital +/ItalicAngle -9.5 +/StemV 78 +/XHeight 482 +/FontBBox [-170 -305 1010 941] +/Flags 4 +/CharSet (/fi/parenleft/parenright/comma/hyphen/period/zero/one/two/three/four/five/six/seven/eight/nine/colon/A/B/C/D/E/F/H/I/L/M/O/P/R/S/T/X/Y/Z/bracketleft/bracketright/a/b/c/d/e/f/g/h/i/k/l/m/n/o/p/r/s/t/u/v/w/x/y/z) +/FontFile 370 0 R +>> endobj +1266 0 obj +[528 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 333 333 0 0 250 333 250 0 500 500 500 500 500 500 500 500 500 500 250 0 0 0 0 0 0 722 611 667 778 611 556 0 778 333 0 0 556 944 0 778 611 0 667 556 611 0 0 0 722 667 667 333 0 333 0 0 0 444 463 407 500 389 278 500 500 278 0 444 278 778 556 444 500 0 389 389 333 556 500 722 500 500 444 ] +endobj +314 0 obj << +/Length1 1612 +/Length2 18726 +/Length3 532 +/Length 19635 +/Filter /FlateDecode +>> +stream +xڬctf&WlN^~!C$o9d+FH;SZ݆bgT;؝PT+zŸjgqz'qG'}G5N@nA?=#O:~z쾁ǣɎ!q@ wR-Jkǻi$T!#%}U0]m}OLkMslٯJB&}2vƊ4h:[5eSWMk/iŎ:f}2F +D{'2Oeas{IVmρu#Y3Yߺ5 +Ma'' 7CAZ$gQ}x ЏLQpU;eUG +[ZH}II13´NݷlQx `/rIl4 +4XcKSb ކV2y0B_`umr!޴Ǭ^=E`cx;qG#Tڭ v&վj yDM5)'+\R +>ed%=0-ALI1 dvȘ +*(A?c _;nxjU^ח)Mu;+pEC`Э3jGKޫC eM'ꫝ%b4ϰRS ;hz)Y +9+[t =ٯ9Q~{ɥA;*~Ckl~fmÙ^nO==-&dN`^0WjYXECJ6檬?X1_20y b 9F;8K~cld4brHF+g)~pYS| n?x_t&YܤiVԒ%gR5t:pcY,XؘbflDJiBYW5ߓ}x6Kҗ=eaj MVņ9ת NT&:rGnq[U_RkA+mգL"7 Js߶HN| &"Uc9v%'/(; <e0r󵕵,¿$ Z잧Vo$-ˢMѤ=`Y?Rn7]0 _uu,0/6y^{a8A4q-u7㐣Y^\QӐS5 I~2(W)dО$ ݹQ(]:%3b'5&*myqr`]ɍSkC[,%E7gM]94=?je>7 ,t'ї=oNE6fa2Rd>tN.=qY`%Lq.W:ۓ{F6qiJ]ЭH-hŭI"^AM c,v߸E>L"0C<| @dpV@(GFQeg1kSw_`P8{ !_M)j6n"zvX:~_~0޾Tg9/)YQ̡O{p1eZԖqҋ2S!d!{¤!yѤ{tU5;:7xj:gԢ4$i!սݧR{5aN`n WFA@Mx4AsA]CU>I5t J#-`q{Xpj4x{IhM:գ;ps= 2glc< ]fn8xu0;?ԺpiKV%NȫC~ߨ&dHl~6 TO'җq7E,hO#,%#W,-_TpyRme|.-;H6Kfn O wv-9ѓcNh͂rg,(Q0=BmW17ѸFv3wh!po +X-(&qifBTQ!ԦTŰ*( AA |Y]:EصtGj5g,(7Ykd̩i4XD/ +ʵ%X]njy夨Q;6amʓ:.c^t8KjfhG*3w*0(g*:jiiQN$hkX9>r'U^fozEv2=O\30v +R0ڞL^ opȻy;0Dbh-CKѻ!}hQ{G|ӱe4?nKKeJ}mE7Y$(UUQ?yOf )[ +kfZfkZ͟po2~K3)NϝpeC8mj".^J)xpw " l[j4Tio|@w KmGj'd(ҋZFLAqLbuÁ~$Rakj}DIre[uwC»G)u\Ә-!g6 -ySRLý%I0u-U L=5M>ܺ[t@޲7:p]J&3= +ҦDAIUrl~&[!t@o9d椻:ϳ m3%)ZpGjhB^>nNqx% +^D/iHN jbBzKeNBaN6MnX3VJUԱI$H\ p]&J`D5ȟi' n؉WT YhGhpc=.ٷχWQ]-~7oUΗvu&ROe Z?1R-dQdh6̭k.Woal]o5QEe*eh袺1 ItdJgƣ5K]L ъz Uf?zC=4Hx(H Gxe&^ZxbJˌQ>s$$2H%_-=)RNeY*z0^Iӳ0<5H u^ -OO|j@!RbYF)w G \Xֹcç\ۚ@OG8cuRvڟȱf沓I_-{b+~J߱G,X?8B\z$to!Y+Cqʚ$zWv5-ac4@]'Zjz5E7< +pP$eϷ  I3ruPIC %eHKMo0KϢrǟ~!1iY鷵N2yJ79ͽ׀$7N%߮6^{ S0mVGG#"r Pm7!ޮaB.Po5 x^FUO 7mdjd9;"44;e\BMbw Ǹ󁃴H5VܟNdCHM膄s/S-3QPDxת;g$o4Y +ހL7A3=F 43HK4,?<4(i~KT%L쳻-zGݶb A)Wr)\%@Vdឝ0e,DQm4R +YcY7 &U-kvztT8`a=ꕊʾ_]{?T{RLe)-)κ17djl4FȥVlm[W)AiQ+}܊Lo]!__U6NYG!7k0 xܗ+eWإx)k,* c>eu55e $ow74G6zhJ/:;|~n-o;?Mx6bK K +(~/򌭲vԣ#`sx7"N*IK /ڊ qq4rޞדlV=.y_GƢSˣgt2#;h"+ +^Iթuj[:\?hm;uek|+x_%.qEV-lht Y%ŧ2.5@s `!eWA<e .@>xe9"t.wOv'h3=cJ,roxbքۭstAmڶ>@U/&7sRYߨT}oy \qP"Gk* )|ͅ>>DGE#զ -*"6l/h:7 =f ]νT׋٬ȽV {ݻG$(iNf2Z//qjK'׀ci&x1 +nΏ-h9G^+:\FF_ -ƁءʕZE{rL6:A=mⴭ+rt{n +Yh-߹ ]s% ,A9A~;Irtt "uXw@]TkޯkCM"ew4PÈ Rh+wַ(_-H9jU ?n'\:CuQ$c%\,=ض:R^#o2͍P RAC"ŰuQfNy3ƽ})ܭ@e$/u2 l~rKn6*qOr+PuPjŊg߶XضXZc0@v +-*J["23([Y<PVwNs8Q[jk:'(n +$ S ?33α%Ǫ,t䶬=+WTk`a}/QLXȤ*,59>/D- +WQS7d~r_x{;r); co֮je CPZ4V,jME:?iԔ?gf!Vɉ!kt#!pN-~ !| P}3\AKg0ߪS|Z^kq2 >:Cmeg65+a3Zl0Ex5nׅqqaq|!j M^/ ҧu>tdG'UR @ډb@婐$@i-Aqvuj&Ҷ%&u,:Ru-h,0,V<>.hE@4xc>i7Y"Ko¶>yJN֌Hq3Iﺋ~*~W埇ȃVoyZ2BXy_ 浍ff*'Ia﫵+mL.&qdjxXŖzMU7PsbK +;H飔q# "XEOdf¿760Q)i s2d590뫂{GNp@0(e&EK_K 62,ܺ*pvg[8݄AG#ѩO77n&!5GޔeI_jD*Swx%lDD(bfM1۬p>zxQ5h}#aHt8!$xHvLwAFWf&Edk/:²}j )SHxapܮd-5İ$u<`&7r#s *!g< ҎY AC&~z//[ $*"fdAroZߔf!^+ rChk0GJf)l6Ec ?u&qj=$r7/9/x=bpQЀIVꆶ-a{E T1_*4yz'[>FҐ'y:ݣoP; D. TE-m?'%*q^$q YeKZx<>\:HK]$nt"zqGgn O+8=%SjULJˬLRӖ!FM)KuU{:FkkqaE8-3̼"D9XݤCWFsD#3z d{rߨ\1BN '+.q@aBg ,"{i],,N`%tl&` [͏̫"Gke$yb5 A,rfsFn,d%*߅R '} +1 Dy\`)K5htǻ;8Za[}W$tm86 JY鸲>%fp, + ypϪ !Z2AS<Ľ6>~хݓ]\$ISl L'Gs +OiSzb#& [#KyrxsU jA\,AC"V~nT1cuW~ج@ǿS"tQ|WnuBި[X2UZBMu6<[;1l%RbțI!=R'Fԏh0B'[-`a~m.??GW*JO7jQ?ZsvBbدc㸝̞XfZqoJd%#V4U+/r |ƺ8z*= mmÜ`37Vcݭ +e?aOܹ,2_Lof(yyp2 E\DŽ=/U٥;>ceU[VJG2C*0`E-(PX:5<PqԢvn2ooz~},?:'m.')j `"8Ŀ5۵u})>w~Q^|H+9JiOq}! dA;Wyғr"{̠Bza(^s`.$N7kMHk<:i/:?ΏX*\'ayG"D02p%5ʶǬ7nOƩ 1'I +xX NT.D:8q CKD˟NmlKiuM^>[ǏtNZ:y8hU}\T Xb[F b鞁zO胅x6bb%^MiS;PjiFH +>$/50}</"S㳪%ˀE}a-_]Yj\z^iD͕͠*Cvz3Kr:sq +CIU>y~˓m?Dh?ՌW3t_ĊP+Wi(vebI}߼Pt ~C[df-C4B!F!pi Ggg3 0*<߀KgOZE/Qv@:]XMÜS4Io D3K8S"Hbg*ɀ/%&!Sľ:W$DhY&KbSV`PǮ ZDd2@6I,^v4ou!ԈRn K.lq&Kh՜M,=ȣzYdC?S0#8ؚ;JXUj"􌨄giu? @fEuJ=>ɵY1Üɑߘgy!-;٫+zv##"IWň?UVjDdW`KYayسR4 kBg(tM~1Z2=RVwZX5rp 0u\kc넮# b,(eOGzG|#rPLK~7cl"Xul 2Q\Q2޲1|U~m׺ Ƣ(:qpkWӃ$ w|71 )sm}܇*% aq*sPaLMTiNmX0hUQO>&rmҨ TY2> Nn@H*RVmQi{t↚{CWث<5k5O/A|mo'Oһ.7.tjFhT :!WáE@۹&^d}@q\}}OV]rMiVI{x%io&-_gpǜoer%ֹ-.ݷlPa '!F 1N D:-IdTeEBMI-(f'r5(3lџR mMI¸\MZ [Y:;f Pt-Fe32*+ЧMo[zBV':h*ڐ ⏄v%@' M '5by +{3}GGo|cFHhM^Ra*^YvEiB/\V_.z6P"J82MR<Ag ?33fkBl:N,}s/.3?StDؔ㙎jJ}?O>oƃ\LC쩨i넖&O΋rO%Єo+  +DV5`q˚>r&ˍ+}! {#vGv+]7=w`ԮfcS"l&o,N`9A=YY^Cvi8*]н'kZTRꤖj0vRHca"wͷt243<ώ2kLt<+VJ;4oc!hQGK H7cO$|ށWQ@\$v!^F%0xk](O[: %H9VBfA-@zI\!EynE5lCy xݐsOe9庅Vt]+BKM95^Tor X.ܪ +~5C9+ ss}&N|:O!*X/fU oL۟5/Y#s 4VY0`M>9򴟩؛>r}?t"yXO|ct9ҡ5k+_^ɋ҅CWa-hH<$!yQ޾P|N;fSsN z }ɲ$8FrKiZF Y,& OEXYM|{2?yљA#"Tد_d;3.7'Űє۳UwjG}[9LrH%;t&@O +-, +V6׷{=?th_ƞ* b|U!&w Ods1l5 +vrO}㨒z*qTXg[S +( >$0ԴNN7V{eƵSbTu@Omg͆,`$_+}Q ˅.]M3L7d$KæWD}t-").k(C]-"[qA5![e:Za"9-!!Dѷ~L[ʇz bY4aC9u^_6 KrЗF6x+@rbN[*†<.r)}g:h~AԢ:i\"I #Y}N1C#f*km>S 6FLx2[ɉ[nUpW*})X +5 vxjW{3@#R.KD!ؙ0]ǜIFФ. zEnK^U*AZh=pN|GfkjcSlTMNfΰ1Q{w; 񋂕TշHOp:7FG$>|lkX}z~ GS +S:Xyɩ3}lV]#EZѢ6vn]7I;26B*lm#$ܞwM-o`8=pZ,sCB/wn_-0kWߊk*_%l2lN_/bZ{'[(lg Ȯ 7P"yC8&쒞N#Nz#2{ɷ 8oR76I}q*<:doZF +;,v/@^~/0B,>Zɼ?h4g/:*[*#z7[F1c5f_s=QDbm:REo oF|3wа%W'v=.=G2WS P~`xkSq $'Sӆp#z6 lR_/hY 0ఢƞ(e 1 kٜr (o#,Do +(W`m71Ͼ|%k=,s%lBFM/&Q(4bE{vщh,4j>V +Zim'`:;G0l㜻`|Z X&G͙;LUj {w7lyj/d XdݩYKvyʠFgR9ѻ3e]~.PmT1)Qr2v:T`~?EܥȆ{S8-V $wGS]hWԯ{gǗ|_(pUɈ`jE4-=CF< + /bPżoym끺0׵LT։XHY쯘Š $,¤`|lɚY զ=]B7RjlV@W{Tstp{(d#Z>O?{i}CLKl.|6JG~m#jyC3~Ϛ϶qO3aI]&=k 0W27o*Nf)l칾v^{嘴+A/i)e}b; {[S0(v5oQԉ5&A`AU +HMHt=E yn'񳼋qbFtDl֗VQv+U&a\ +=&\S38ҟuqW#R1V uy} HƔt>e Ȁ[ =Yġ|d-\|9i6'jH/Ua; 9`=FItctͣ ^8Ph_3n }g3ʽP:ᤡM粶) MFa FQ@~ ]QlX#.M+ݞ>Olξ818w|" 7$Ym[eZ"IVfgAλ#)`LV6hLuPlPR#[ tdQ F3o2)uq!I:P8-HM:Ca]9u180XhgWe QCgmc_a[|eW^ϭNBꮳ6טtqONLE1{G38˄<4j%ajPw]C8m"5t31AI{dA!FL@6;k[{B>YO%ƯjX`cW*g8(0]dҞI3Bќ&cFi) zmx5OuWK0|5ί9r˶i#] &J$#_^DtWyJnEr1gmʏ6=?1}gpnWw&J!Σ2+HF<٨%4€=dYdkO.xnqe8ٝ~n;UЗuc?y4o3]zҪnhҨ&\Pl5r\ºzGkMnj^ށ? ?Bڊ4\=~$wdhIX[}ws{@z>I;C۱YJ':yʉEʈs }B; 2pzȨp58}7CJ.l{R:d/;w9 j3ǘ׶ ;ihv)u +Zu)ׯ;F&yeh{GpMDM[ e3|eUfIbȯݗC8Beͱj? ېc5@a~JÙF%sW^7N5{eֿ!Qo2=m3_=ƗYz{|v\o5Rۯ2B֞?T]rg7ME`=A@ݮ;5fg u^ɻGkTRǦN+"r-T +,KoJfJYgC>̃Z lqc2q,߁~smDkzAԝ̿lC`wL1*eaQ}kΕ@%t~7̈fmDLJF +=*n0)>N­lBBٛ"IH +ξXMIPN.ƛW=V>?np!/zS}PRp5[8@["175.| r5/Ow2ԴAI.z IoAPY,eX? B~)W6ZFO iUNLKُ:=yy qvHMjMzt[z/ Z[{ve72*#3C֍kjNDa(!THD :^m;Z~$>,}+K_C³Ki!$0kР7Ks!"%E|0mz?| 5Ӳ:cX*׌Y!Q "fOzJ <;B``C6t > endobj +313 0 obj << +/Ascent 625 +/CapHeight 557 +/Descent -147 +/FontName /TKWMPE+NimbusMonL-Regu +/ItalicAngle 0 +/StemV 41 +/XHeight 426 +/FontBBox [-12 -237 650 811] +/Flags 4 +/CharSet (/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/greater/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/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/bar) +/FontFile 314 0 R +>> endobj +1267 0 obj +[600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 0 600 0 0 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 0 600 ] +endobj +257 0 obj << +/Length1 1614 +/Length2 17248 +/Length3 532 +/Length 18157 +/Filter /FlateDecode +>> +stream +xڬct]%\IN*mTl۶Ol۶+m۬b6z۷oqx\sP^VDƉ&o`ee` 25 +98mm L8j&a# dk43wPŠ/?!Ct~XY8NT218LV&!9y Y1 +@ + lh4HLlM(8lmHK`p31M3q32E3q::f6Ngd Y9C_Bv#::99 O'sj;#mi__^'#Z&cpvژ_L/Ymotr42ad[om3 ?"acj `d\L?;C;^oItD Or-le%k`mo?4G 6Z{p?H8_1tV] +hcW ed`o>es?cgWӋ*kR/qwRvKt"ck? +ں̬1Y:7#[vEzO?n#g{6feֈ+"WS-FV/`|jߴm +`i6?vTV=)&yĔ}d?uKԢ<4Tv&u!;(]PI|Rc:%?= ܀PgBrEgiT6R_Ds7 g)a֐\5K,:+r¹ˠR 4OXPsu5GsCBA۾ݜM隧GA-nheebgzA=m$j<[}?@،㴚<2tj2FA!U Y] \&;蝘`qX\`Dmu9m:n?m s!_$>vuiȨ_sf.Z+nu}R^rJZ)I"6CO,*o+Gtn0Ȱf#;a@5ssVdPf+YmD:Kww럩[YVM[Ʈ' +? rh2eVl+"mmULQާԙ|# j3FsN,>4nP=JR:ڹk|ltgϻq+]JI%|!CI눠dbxr{fl]Xu5)V?P#< l<90fYFێ=Il&r[RttlM̳t3׎t} Q@[5{ +h~$M<Ő YdyG\J/7\yIEl .L4yI቟BˆA!oCN +Xh[/;(#gޱn|SR U4 Wׇ v1 Dou|N)d8US_Xz'0':lȭ%5cGxN;ǫZb`L;k3A/lo)s$ě CRLAɪ1 ,}sTaltzEQ |GtK07^9'Y2ܰ@|: c9_XE_wv,jUmF+>hfx6^(pEN2OoSrxf 4itU'zbMdzתR%H8{IC|M^13CaFTgLqZCkϣVsz&M0{9߳a'1ț -6bl9ď t=tEu̇;n@s5̲uL _cfI4ڊ"w ONs>9*1H୕*$;RKRQrcd׮ CUNac-hW=\NSBq5ݨP"7c~1+*u̪Oh*kVmR.01GfwLWo֌AyrO>Hr&_V, y n mw5{p1t4wXLc#A.^#ŷzY-1LU1ԜNKįUM<"uܟFdlW;U*"]mڹS_>96Gn8 cn(,/S͢>5Gadi='Hv¸PG3t]%C^/)׹PzP9 +2d2M3ܨo򕱉og"-N‰ZGڥ#,$1>UM'a$_¿Ok]Ʈ2-*3 ~nfLas!!ח x(bUh`8 lYbUd^,W(0uU%H.a#"yפmq816bYW_pה8N7v/n+^]˧IoV{j?E_q&.Yt12&@z_WCQV9Vm2}Ƣé |ĂЅYP˷|-p_wGi\Kl|!ŰeRMM;t3~EDSI4.UILX=9Ä}w\c&"eOdhxәD3ΉRXJހCnǟ1?frB9bo@jדG+$oO^_\$>VxaxnQ, +tK]uVʧcx[:K7|,Byʺ{ZJу$c&07v c̭/grB' 32%|B zȭx(r802-E"*9'QVB2H5/>鶻enuvwPbYh L21E>5ccZ1'QO+`G9Dyj}ĵvS$q(p.|]N2F<;.QHq?'6La8`4:C=ќnh}qwu) +"`˜o +lqu/B_M=uc(-y3Oo#a}nx8ۍ֤:|`iX7-c6s!$݆֡,޾886=i +K&D ([ pG>C |gZDa DTP+ԲC}&ɛ5|pՋBc*J2N1ݎ;x)izqcڱ6gfg$)iC se$Sm8XϧwC||jVXpW=1Z$|kTl 08/ H= Škx,^u'ھn-K;*hn 6)Ҋ6F!Dw{Ɖ4N#)AvFX4ly}p-ƣ7q*XHh>Y~Cpjw1iFIHܪa$B!;[zfAՇKW,!;&%ѬU2u)!r?<>P\o-:yD,yHcXYJ3&i"LU1*L]{,E}sZF?' ]_@ک#=& VF1etjW?HH2)ʍUڠIfuk1wbR`ݤێ%Hx~~c["SS_tKl{b TΦeD4r}[zDViSC4oq XhT{) +,t*V5+p?c|tJVwXP]e^R-Ehzi=Ef<"8@0DIeOLQ^5|g~d\ +%?} xw$Tdr}l06=VW=&3S+x墘7ĸr9*jD R2с84Dāl0:HK6ÛF4ȥBZEaGW c]|EʠΡ͛DPs'أqg|jAJpw{1pU-GK5g'{/79r=FUؤN3\dÖ;dku?LU]潬(ˇ.Hᶤp%:N\Œٴq6%xIld[yP%Qn׷G'na¾[9s@D@4Z&PIz(FP[#)&iw+r.P,bjJ=3}w9/ܲ"MHlF*^ΫrIT řf~H 3: IG]mT¶? +΂ds̻ʽ;Xi=Fdt4=NdLA:^܅8dյs;,ӈTrKv"ݎ@/g.úRb[(:OJ Smigbn57NˏZ-Lr[ʶs{]rM¶^io]:,aM:yFWRB$)-vǚXկc81Wu]K9LЬ#DpEZRcY[O3B].R>Wߍ,]_xn<됓5牦f]Zr7@V/Qd#j_/x^{t]JҶu tcWLnbQ"QHYIA: ;(ב&A#:bU|]ށ>t? >y'b}U>9-Ʀ2>"<ɱrIV{9^C_ Noab1o5CYrgޕAQlE,:gd+Zf̝٥㜻';IHslo)"S+6uQUAt8HVL)c!gewPj^ːvEQwXqWg5n$ԕ7uGͺ!^]v־BSd؎͑IClٶQњÜlšÙFCC[WGRN"~-v&VJy1!4%$Stl p^3P ein4gNÑ|xg0ܪϰJe@Hner%\أnnZsѷT([$N1vScٚS/楝co6:U:V)Tp6~@@*;X}D r̤|6M?nmlQi @Qx  fc+9R'0fyAġԟt'?onͧ+r^}$,sE Ou,:;`S7Yt (U՟8GiO \{f"ΣZ~AZ9wQn'ˀ>QIFW-8lʾe[(g9u9/QSaؼŎ蚫As@*(d@NK P>1BǼ6U)\M"Po?||~0$/WAzˬB]Q[vGU q00rY#'V(؃40ZluK^:+`=yu$ ICZNZTk;yAhɠn(ͤP9PBh^%yKvMhXF0) +u;X89{++ +S~mx:I@+Kjf]`mzQL2ĚPÄN" ͇ y/ZT}Z + 'OJa}>YCz)lG*R Lb{=R3A\%RBcR)<]K9k7̦vt?i~jKe"|Ϯ0DYu孢4K}1N~֐ у氙Ni.4T֜Ll +t1{Wty$5rmdAInULB,3E|DOgD eڪ"jS4fu]ꁲƌKF[e^Q>yA}o5{pzя&&( <]6'Z"0t^qrΠY@#05߿V25 tVKi 1d, +!F/73y6Y15Ҽ@1s,̩d\yEsKuEK%\xJ(u;ܭz0CO"1_AɆSNy"0aE~l`RsR d>E;3;čTS ?⩢ @q\W9ŁFW "?#ʤTwCm;XZ< Rd5v–j 9vn ug`rݧhCwm[+faD6C[:NW><4o[N0MXO"#7}QL( +vcP+oȽy #+voՉ-kN=o +^ +-OօFg>S@K/B(9 }HgE![DbDVdNu< v{0ZeMĘʢE],-,ʘT!2&(%0`71>6VYvsqBxsBnŽebjL8%țv달i7Pcٖ bp鱰ZYwvv"YEc:P[@ G P̆/8l{6.NPw~8$HY~>95Z⤾G$JׄïTnFg0tW/@  /ɗ +#\U>R u%HB.wG\{Q{lꃕ*~vqA(qN=iKKһ/f}* [D0svӮLZ dUgC72|t`Ad*ˁb}S]^J儶vzc,`FuhQXe'k}T*ޣQZXuZ`$]8W4~lM'+fz9.\%Vbnog"0':Y;Us≮[~=]_Lڈ1Zzs5>lU}8 +Vne>ޒp)>ʁ';5!16duRA*IWPQZw̎Y*V{e㳂thdD<șA:'+f-9kQ%۶id&C׾%q`Mn$Q 6iҥLL +J`/":mݻ))a!h 3!p+ST:H|WWZJ~SG)u ow]/U,g:bl R Jy9%_I{$ν}$6yĩ&>Q̘{tb0aGqk-Mm;o -AJEX>g}zVBV]Zi䟆j+3&ᰫ% +V!`+;B=u-JW:9??X I!]6FW摁F׵n3[RFdxF|,_WM Aam(ZB"k _u.inQc3 hϹ`_Ejz\9 뙧T]9WǦ:spU~J>UxIzځfH [88ds㢀RSX lXV); +a*F*hY;Vb"r ҶQrψU1ݿ[Ek6 ^KjZ(hoaln* $(|RÿYRnw +Ϻ%*l2]V@uA5h@8 m'*_M`VW!Mm9O_7hĥKΣgKO9Ms7:$9!.zB 9D+.e?5/҂8)̬>(cy3?k3 vQAT%mvs 1l\MCs;tkJ={y&A{ ~aB\MŠ }nT@lyR#UQ[ VN_bBՁ#wH[ >0XDb_OӤ+W7 dƝr!p H}z* x]:\6䱅宒׎eG;wxeR-y0 +wؔ†p9uMnvҾ[NjBQ2J8f=(3\$ke%@m~Qoԁ],T~w "g$~ӻ~FJ\! {3/Pgj]PМZ#*X@ްv! .b2<%r?ɘ {SE<;Kp^2r[, +EYWbtT*Xȵd:$(֑̾i&m>*bɒ!F(KTSbw{lz@f閠kRS=$>+=mz"P!l1J_'٤̗2EN92j(DwZ1nIlZn[kOBSo3J"}4Zw<05X6KU H%ŜyѭLƁSoXsBTUT5XCf]{τ]2PgMc5 ^Ƥd;^W5]]O3*: (HVKZ K'e7q͸\H]pwx *+̓ GFU d S w?ƘMWba+=Uh4{lhopp +֫5Md9> [Z`< +CkQ\:>Tx5ƨ02~ܰ1/ʿa=,43ÚxBfԼ9#%ڛbHEL'p65^ +dRh6{;âTY;#4SߠQw_0^#A>= +CY{ G'X9 D%Uv`^E}bYqIyT<-m&9Hl20mS +qx_@_y kC"WAσě +g=D5&M@,`oGPQ,ZS*HO!?"zk&bI<_uМ|f#3MS璕CsOr׶ c>>xH-qh.p" j"y +J%=[ +47ZşDSmD`0RzpNwR  +=x&dh% .=^,ĸ9sZ/;DPUHEvkH-^ޔiYqsfn v8|Lǒ$=zNNın Avq~!Lb gTjGXTξР"7l[[+Se=pv!'|({u- jhbY`_e.ʻ +@oW9Y2c1fǪ+$쟧/aVF6TX&[dKrnf"o!K6C-!8׸%u_0"!f:ֆz@R}QL5lٵ蕍,GMlcau򆵰nv)z̲}< ]0˩+3 Lr巳oh\%aZ7zLP3GBT˶͑Έ1vA(Wrt)72e:J/Ñ%\J'M1-0ъ+NPaJ /Z} } +ZJ+uZ N< p7#>>HTmDmZTuڤ +-d.:KAu3.1`7,hNT~EցT :.G;d* :?(b7fC{u7 KCTiQ0oΡ83'`F=?LA]7åf +JRz!7N_&e*"c侨Hǟn/3B9 yg |?A-}g?D>94깺%lM+V d&S$e v5fM_PKE7 گS&BzUP]$6~/ &g*̼L_;1f/)ֲDE_@pu**eq*(EVʒ3$y%qDF%4tƯS||Bo,H~4$$,B>pt G<!t;Eߐs/Y-tbV^$ER%T pЃFEV坮 *!BmFG +V 5C;{q㍲gчaq Oו3ܵbژջ]d]*? :3fCL&eպI&]}O8xv`ݲvsB+j@tp 0,)?Ua=>Oۚ'їG?VA +ĬJZjC79e@XͬfJ2IFpOHJwX87YlDn5`ڲQc۲OnѾXv~øtX +pC<&ñRk%l.}9PtB^7nw:LFDGb_QkJ`%7$wBO,ؔFF[]{'8@l)`l?[v_xE6rLR(m._y ;tR Ƣ!<oU~<,FFYa ō^-ɔ͘NpW/=h/g߀U(e}ϠhT ^r'X,wjPJ9V5zH+[&7p͌xx>Rˀ.{L﹔1+3)Hyi-`Ocp^n|u&<A -JEc&R9{oTa8ΥYԘ +CMƻ +ުS1%\=a"B3\Xp˘Ơ5hGŴG)䋱v$nܚr-5?!a،&Ǹ$_\sz* +#YW#~H-I(*LG«mVJEq;nKۤ +kD%vP'f1_"pr=@9{P/2>@/B͞PR*Q9C'%D$F02Qendstream +endobj +258 0 obj << +/Type /Font +/Subtype /Type1 +/Encoding 1264 0 R +/FirstChar 44 +/LastChar 121 +/Widths 1268 0 R +/BaseFont /FTZWMN+URWPalladioL-Bold +/FontDescriptor 256 0 R +>> endobj +256 0 obj << +/Ascent 708 +/CapHeight 672 +/Descent -266 +/FontName /FTZWMN+URWPalladioL-Bold +/ItalicAngle 0 +/StemV 123 +/XHeight 471 +/FontBBox [-152 -301 1000 935] +/Flags 4 +/CharSet (/comma/hyphen/period/one/two/three/four/five/six/seven/nine/A/B/C/E/H/I/L/M/O/P/R/S/T/a/b/c/d/e/f/g/h/i/k/l/m/n/o/p/r/s/t/v/w/x/y) +/FontFile 257 0 R +>> endobj +1268 0 obj +[250 333 250 0 0 500 500 500 500 500 500 500 0 500 0 0 0 0 0 0 0 778 667 722 0 611 0 0 833 389 0 0 611 1000 0 833 611 0 722 611 667 0 0 0 0 0 0 0 0 0 0 0 0 500 611 444 611 500 389 556 611 333 0 611 333 889 611 556 611 0 389 444 333 0 556 833 500 556 ] +endobj +249 0 obj << +/Length1 1616 +/Length2 24414 +/Length3 532 +/Length 25316 +/Filter /FlateDecode +>> +stream +xڬc]%\eRmtٶm6lU]m۶m}wYw|#zND;b9ZIJ(Hodk`,bkD@K PVPӷ72Q5@ +:;;sTBƆFF4)@ @, w c+[;kcNfs+c(\TF jlcos627H8SLlVS#_,~G>6c7Cc\;cksGǿsG8m !nb/!;ۿ}l  O'3}r;ulMF:Sҿ0N6'c7r f`/ gGsb@ p06w02vt Wz};;+w?9;9[B30i7 4?"ncb `\m?3C񗄾;NoJʴD Or-le%om&1)?omnA#6堧Do+;XVhOƳs+ѿDe;8;)?J5Pl4 FvG/˦g15gZm46tvpgowԍ݌ Wl ,R3Ҝj0r&4z@J +l}Sv8*>i8Z>$(GzЭȺp)z6QFz^/HmjҫN+M39@^?S<Šu 6!L8y~"=ʎ"rgë\.Ye[GdSB ;8yywy#d5wٓJt z& zۨ6˓* ΨN6i%[gaJB Am=>x7;P42Џ/kTzQX7%|E/l8B4}!5!=_mN3Y`ۼbs@;O#uvcBS ĹF唾(Kl9@Pʇ%*|k6J/o%0FQ 8OXz61Yc x)9}~Jb9Y +t(#;#kV[h Azg)8wY׬Պ:')F +_#6-,ƁMsȭp1IK[LeM1!f'"Ovd@z'h/*Uo҄Ϣ'Q ?Qab?Ӥ*vg4 qf㒝ll~qz`:rS-g 1c!!VGV +U1uƌb]^H:#cj6LPjI}!h fŅK UA Am@rؽ#;>:?l!;xp|m%J +aE+dX{l/JRu;C1/:4qq<,svoAMc,{#&m ds^T9q?{8N69 a-[h270V,Ihud+[OMPjƖaHJ-7/yUzZ1ec璨e$C,Y9ŖCǫAT$h'EIG]%T]}S%kZW@]ZsϙRJä4!wAfo/N?!3N'ؖjg5^MB $N\DP~0fƳc1 K4c+Dm(+903 +6{zCױ1:a &Di'Y0 mSbHz#?)t |:/ȫcgRHׯz2IcYVUC'ԱG,`Htэ/cmz볥J*],$DfVPDeRކ*ڠC$Q8] ꇬ0O{~hu?Q>sXS7@ե0!E;W3FMyn?G=dϛ:4bZ| ϣ5Q6R4q] Δayi?AbrrKp +Ω:m̭-&tƴQ7(I(ߞ)$,NFrc+S½(l2X>Bâ'yZI}{)1st$[1_s)qmG"h%yUi)-󵠅3os t0R|3ʾd9 Skb/feCYEn[#Ͷ$\*3f*p=h,qsRX(Oê>L5[5TSIJP]菴Bx!S䙳iQ>?Шj$ ,fcrcMp (7>J>RmZ./:-_ :Fo ,80jo;+&~^Ű#d @[~Gߥ>}0 J%]W9 +ߐBP&rB+ '8-( *(\sӑICeC+U(Ќ_*J: ,"uڻ1=)":HF#-/uN4<(sU.:zVͬha4-5|rV]ݭ58sC* 泽BgJQidÌ\G4M=!GՠSw2Kj6C+$fոesuYh_jS62he]dwe4 a "8)m x:r3qKX5x)!UV"ZZ?7߅ڔvWuM + +KBFDAkl\%´ti] ۯ &X@G+kLx6K_!xsdyȗAyo,dιᖾ"䁚AH_Zc L,/= 5+P߰;Wvc44Ź=Bq5ϴ`3OsQ B ڲ +w|徧dOŻn,;yg66&0ZxsR1y)i*#wU+C((D9 e$ +4 o np<)J9z=D5ǭ 4BHn7Eޖ|SY/5R]OCiJ ϲ {D|hHϡZ֣sGf*F@Yb#^ fidu`&z1y-eTGA-Ch'ƶiHɚވWl&"bf`8#ZK%?4E7 G 8Dd~:Oډ~aј.ϦgrcB#۵ +o %Y@Z!@̍\BUv9((^%0bqc[pR_V%KoSoYGN.l+n# +QvHg6ب5S66(lX Xy^caw8h}l+\x8!YwB":\%2\@oO!J"G}2* M=Bd~W-"JW)P}mz*cւE&ఊ;~&ލj^qXHC4kȑRj釐r258F=Oa1GC~]|rW-֑@κ!<jV3mD죌M\xs4Dl}zg0;bBc7~RK>_Կ~!(1RJ, +_duW=)сRDZh`^?E*6ƾ/}\V)}6~&oncL?? +*VFkR5L)ZCr<op",] i1ɒ+>UK pMS=w-SA }Zs/-qViLӻm +^ ިSe6k5 + aBZJO&#dv3\[U.Gq4jz{[CϷ/'g6(=-'GCcD 4pbwIx%o{g-3;"uwM 9(--m MeP?HkbOiCn|7h߫URTd7x-[t6 -l/2+L0݌ |@wU<?2\*\.^ENKuvmu-Y {Z!k8$;BP__;~͸VYgYl 5Efxeg7&fo_~] ڶѻ]h^<' ](p$󎞩/#PtpZ4MBDu0-Z @g?TYbNW8]G@S+]jX;^Tx h<{>YJʿȗf9|wI(z*("y{+9 lNJТcȝNߙIfGwc+d8 ΜD%yyՙ5E-TJ8dd>\YΩF ]Uzvϡ(8|k[Km?xYSuD@:mEŪ^- %*^ȩ(Jzg )1S{4[cDg}|YvJaFwˍ"Oс}1 +] +bN=$=ŕP|NY,]4!ǫs<3񁾂cG[&F8D9 +{3YUV'CQxUrڇ^[[B|ۚ8xƐxńұnc)že}Yqb),.cVm VC2 dJMfJc.}U >R.oKo1fJb}3E +nQh1iU+7oa̩aZh)_›j; "|brP,+,ӝZz?}ßOnkRWJrxL"fOLxT+,ާa0% W!0v CX-]زЊ-8r_q@ +uB!&Qtt2<Ƌ(Rz=ˈʶb`JуWO*Ebj8/2y(sȹnЉUݰq]RE)!fM8ٲmԿWc~ZA_+m49V1Ⱥ[ L˂-Jlm7<N'T}68p1gL*0sT~a_W%(F +mHФ z(XǽQܻCG~FK6I.mϜ@RqvInG@biWa=?1Zռ-厞Nf9Im +1`;气5ny!'Qnpz[n`01YzGZ9J.d)'P|8-4[ ¤ss~(>ڬS;\bqc? e| /8/gBӭCQ<bG󵝈<if{9 IR +(P6ipy7 GY?2 F+EzǞB́@ 4O#vNM-W_#l,M3J0HC)LlmN_ye=͜b,F=dl [cg~<6s`(p0^`E0?/z:b;*iREه.{ +0_ѕƸg @uGb5 8ڕzf6]xM+[$?) ŻRiDf- +MQоC B]IlYmw*u +!M bS[X6Y[.]GsBܮ=Wy=+Tgha$hP*3#;Jr,P0<u/bƊﲻБkYDSȠ8Y?>r=ؾ8 caUkUBa;9mμxCmzrG]n.f 3U~ë`TِO<+M' +{'VdߴU@p#+']DO&tS),n$!fil=M7k(_2%_cJSfT0Y4s ʋW]ʈݳwIwGI.w) v37vgN/ϯ&#hs^<>;)0Z-߫;oɨ2iK_ gXW']cZge5t^omKtQ+ܥٻn[Uؓ5jvq/_3t쮼iߵsq>rtXAP8= ZQL?1uLL +C$PF;x18j3I*iʚz +8龍&ҕ\qJ~~"1o +vYTD<߮jCi$pa=boXGxLIϑ[xx[%xu}u`1Ȏp/dz'*\hZNJcJS qlM/s9rOj tu-*OBtXꆑ}{0Ͻxe;&<8|>[\!hV Y*+mi6RK ;njQ B2|uN7h"OLyj辄6sW[?,z'ȈO%֣L[PQ9qoVhqEC6*z09m^N?.IN&cEu֋0JcmuZ[Svg&¤2؟lR` GD׊L\wjdGqc!] rW{PU9gӀ1e;"<(kcF}ƌ$U",feY_;)ʁ _){͟|(=~VT25] P3ZD-#)޵"U%>|`!+q?)Fs't#T#gj9ՎV7-9qH:I9" 0V+L{R #"Vr9C%_>j eQ6h6Rv@6#$Cw NNsvQo_khd%4k + +* (&@S.4hTZzI!I;bBhH{Gs0#9>hS\@SgY?dͳ7 -gߊo$FEg^"[YvCj(җedBӇ^B"E귪)r7ߒFVKb ՠH_^>-tJK Lw22B}8+UM?M|&I +9!O (u]= 8gQݳܚmY +|=F6ҚAJVR(u[Chp}ڄ|\5٦:83x: `% z `z M[Ӆ"ҀN_7ဦ8ncSPΆ/>IZMEG]D7T&aWa s%$f<{F9TV'=Հvu+6@8_S_ưzmrmKv^'㣥RU eul9Y_rRvzgWp;gfl>g S֙8+ tF)[atҔmPj~׳xh:,btiF{9GĉI{a|z&+ kN.!EڭAQYWӷHuf @1qo/9F⯘օs;D]Uv9S_¥53Zevi^ӽ \Z`mK|u6z˴>kAr[RD4vvlwk\X+ ܫwr90u\IS?c0}|/ f8ưfgSd2_*3i|\׿Nҳ:zEn>Έ`̓D]9STrK}Ԝȟ~3ʦ^yrsc1ˣ& @m^ya\8ehG*u[}蕏?Ɣ78H?|0`rXu ,&G)^:rwu/Su#hHM5h_ SK`D`f33qt q܁d>16ˆa*OPsW7U1dFmUv=^ߔ_]* ؎aԾVhHҬcL$3J8\" ;)ަINt%~%Oj!]ί.-0z:CGQ+">%D.^-U;ؑyġ5G@VBc>HoVh7VGe{@s*E{h&N3dLjW/ȁݫV] @XݻtU[T|f).LA Za?g?b\>\qZqxf=) .x}cׅMC )"4f"3/iĶ2TIs}5P|;ɉ1]Q*kڝsJ OWM'Iy)g8(@TJ &ݙҒkߡzvr_5l}Z+L!#&PbѸ?Z/L!4@{{ +wq'?lp(dzE)z6~,Mao-a؀y M |Eځٰ6j`ڟ5|/pF<떘&;E+ +]|8-ԾS"J8wj)@vU GwYsƜE.p O (]WAKKH 'Vu:31; +Hsq%᧩1Pݍ[sm 6 m +'ŋ^3^ Łus'UՅdt[Q3+{H7k"u3%vJO٩QrѬϿǕX 18?:^@ A$/ N^b|r{C~uPf:G ! 2 i}UݫEp6MtƑVE *B8i 퀪".f| l!PT":z|hIF;@II(w`1yI"{.|*^oP=*!Ifȥ-օ4mM"xU9c]x}/铄)rP*(]YR{>cOT6"a픍0緯f", rG4a#DŽ9~"=K(DPW_tc'dG&1X?KF, sY"NGˣȒ (ĨT5N:A@TuZm:VvjZ6L1I:aXZbSÿ[߿` +jPpnW̻Gw7a/ +xYn={Y[F>2u]xNjUn oC.i' , 纱*3}0ћȄ±Bg綽E;KsSc)F߅۪OuȓuD=6݈3Bil1NJCY*XNJX8a d۵IEDvZr1YIw e8/+1M\ΠBԜ`$!rg!'rڠ8򬪼2k& +Z|DP']zj^a@2^^WT$y!S ?T,'y%/ݶz) z*F6on?s<2k `V Jƿb#Fm +y0U3Axj/=wa3wKk2$g:L>!HAsbZ3{r9s$ǂf#q#Щ.y - c3k;@,r[_dD塿(ed4|G2#)bY<"`^ x#r 6"}_ЊlB#}3fO3`'׋9ǂF7ڊ?SgAN'ًX8)^~6a#aP$&tNq@8ĘBN̏M ,~-*4VǢ+Gп]'.WeETUϳ6 Z3,ɣ?b}8`"I:ɯWB|J<_6 +߬' =v%ؿFޖ 23NOifNGXjTF(C8V> ?qGY"E=[8bgDЬ?d + ' +#I, !6DϾ%L62\^b5q,N$ HW;+m 6gTEMPjQ};DىeRBX4{,|ITg99 +R=+  d\zW +,]3-?=V-)dՒ1p\ZÆyqtHv[[`17f){:P҇/^zY]KV|̍C_Ere +=B3wGyTh_밇 Aψ?q$ 4ve#r5#cHUBPTI-NH[Lގ(ç4d-Js_ {SyXmTţ(XķWx3/fhjyzdK'MQb2ťt׸‹&he]is Ril9#fS#Ǡy*_zh]XL?o)23LNbko#'"בUxCmίնJZVϗF;Q<&vw6C/[ٲΧX:L~)=aՉs Y>xBKGOMA&V܍O.mң.0''X8G= +]Ǎ]Lׁy:??~Q:Yըg0^ U|)%Q/6[))H_5ƀ)= `uGEBq&჉yӭt HanB5v +Sԗ hct|$_x5%/ܦ Ymʥ'F"RG:@u1ĞrnW΋C[t8ss`\[[rtTaW^4k|agggsp`H ډ꭪3.EͬE3w%< + +$Oԩ֐bP1,)dWh~f1v GXj`#j`vՖ*ĽQG'ic9 7M3=)EeY)n---?ySz DMХ#W X6?/5TU<R.N Dܮ8>@XH1/9a"?d,y6حD{|X -%YIe@]L}}y%֯D fIK"I/Nuʙ2c.D 3D@jS<MkMSlR ~ݗv柉P #بڝ_0z`T̨2Sj#nb鰚y\m#jrHd;άLy` L"x+Ayjl &gnVՆZkTtt3AXCfF N>"8Ud|@Y6k~#Ğ()5|PKlRl{&GRH3e8NC\ٴauv57̹jlje,HL&4'QLi%v)1V}MqD- ܋s%Wc΃AhG ^7ssΊrw(KҀwaUXj/UegHC @U9cGb=".lw[^aU5:{ >Xr|,NDmfSIw9Xޣ@"G<[ +C'r@nuϸ +iCV bžqR#a˼"4YOWjgby>Gr:`"|59@FE>_t'̔@E%ԩxiJ0w-.YX͖z!0yeA>k{Uq +tE5H /R*3v>R I-FHQRLv1Fb<>y 4O:~`KPW7f a:?p)<A`У6p|Kj;:L?5(tgd#JV揠 ,f Gh!IӢUW0j3 F$\I[ +~ ( Dn|lsUL* יWBWp&Hmo Cb_9yJ-c(5] !$_:½WY.[?W ڡQftm5M2 1ӓb\` +afM.c4m(4t޴ߍZ; ӡ|8~ٵ9'&,E7JEJydG)ٿ!z:b)ȵ Eб_1T#|鱪=oAc;q7)P l78le4Cj_ Td nZTƪOEV4dܒUo2duVݥ*AxQfrp7pnOMg![NUG!j4Ѯ> +-JOAZviw 9yC)D̞ޘT 9c]~ֲ9dZg l C ;7%gx%ȉF"6:Ǥt7})M";;MB ŢHuEvNWT1_t/v//p>':KoFl蠣VcN[MNS;[ I{wу@ħD5r0ZI7@Q;U2L!y2>?08z禎SD6Ip)2mC"8Dvv47HM>AW8ȥ_kB2 0y8KUߢwhN 焀j;L^ysQ`͊+|fI+{D+1@8&ksJ2d +G4Srn<HF<+cc oBd7?eMkhK(o[Uo*ɟ@E6YwC\7R,Y6]~xDʩQJ\GF=}c,^WCBG?YGϽwGD:T`LR? ښ%ZTMmrUg9.ZA ɟ6$4.H#))tY{`;f_+ҡKu j juqY+| ˠ*͡ &n)afT[ x_>Y_}f>Dk׆,ĿK\,.6М8ޣ3kw;J$܋{I;L/ \8lAVApOa9{5 'F5ڻ%(u*SA Y:uǺ.f:+n#oTOE0 +noVCnN0xBtᶙ JO 7߇(]v0ZG&^9zVH%)ɿEi𜈻 &*X !s\r= 8AzAm"{jTk2fϱ7u,)^ ^QA]o`pi؍;zjC2 +e +hS(J>$P3C_.F+GOuBV^ZG +AqG濖+IT E{ɮٚƁb[O 6#ʾt:h7[WA1w YZZH\YʃE00A_8^PP;ڟ$$J$\y5ߪ U `;!̜Vϳh%m[կ +>"Ua?5J!i``*Lx8Vql\ TYgL-!fEBQɶPzx48C*vO@y,+ۼ!c62P$QI4u/[̇%8mx ++n>i9TL$/S@jR{u_0%>x7jLgŒp +yHPcN6Dk5,9<9g6c]*SCgف#I_+J m{ox 8V5n 5FgQhyNziݮ&ggMz-Ǥ/~ +pұXw>:ƸXa~'7)P^ZVX!A!D,If ˣgSOwX pl҇ځ܈{Ca_zm3Phžqc 7+ޒH̯ݹkB lóg<DZ9:<|!!K4_8'uهJhݠnmPWʭh< 4PKs]v@e_#odj1. Ki!=zoqc61^7En: S U{ ;}EϒY.A1mv}6 bN&~[I'%!:AesCF <iv8#O\㾌k«{CtFU{ϕT%mU_Ū$ 5&dJ<6Ж^NaX O*5`@ ITMޢOm,8#wrbIg1Ǥ%n=iA'2F,J?g |,r7B~ aNoU~ijߚ) 's,l#B̄˫{s[՜Av(CnU!7" r#Y%M!jO;66NGm@L u5 a%y=&U/d)3־K_^-~$RPC{lBjK{µ15;b|׭F&g6a`Xd$i3W^i^ڗm3 +#FX+_wp h(9@&, Um>fiZmT̍VJ dT +'u&U/jw,j^kfuLŲ<)%J`2 ʬ>׌P8^b90Z->̚a&c55sKO~%;K&\S> 9+s(O"'#I8,,qjBkgK'nYmrbp?՝-CVͯ'~~=ve[ĵ_[$#K2^<ۍecRO#u +!L]=-, CH$Tţ,"),Ћ^}omXC=Z:U2AVK(PR]}RzAƘ@]Li7Rk +Ze'|cP>Q';Yht5y/UCZi ,˪ۅ R!NX`[ȣ ~χ clPJe"WǬ34&^Xz4i2!2T}^(PHk".PW%aP_a,} m,j1;KC,vl]|]pē9Mu: 88*m>dž?y(R0'@xp30u`. zt.+g~!'1b\K zxBjWM/ͣR7R$,V;lA{}}5i,6qlNPU~6nȼ|/{Ron)f Բ ;}!K},T~(üV9k[E52&ūZHڼ($ {w Wɦ,3 * +wW-4#liajx:f/i0KLs7:ɿ8!P6{0cS5ٵ$W&C>a)}r1 ک}sK) xG}j96_Q_6LИb1~PtާŠ PdZCxY:D5xEWJ2 ͱxTyPTj jhA e&泞ƸV+t؈E3Nεշ"?Ш2hhcw} }^B[~v_-f<9֣S"ס+m}gOW焟ZX$/ z*9e޽1qkKY+a?ESj} ?$XdЕT@)G=yKF6KqNRiAN^N3&QJ9B5WM?qbʬn129e)Sn +=]IKIL(zmP`eCr Rn5,h{aS\!.7pKϜ pBȴS.2+䮭4E̴pY?(Ga2,GO@ǷTI?(OoBb2QQ:k@:ڤ^,zGed+"5֛m=_LӣLO2?WMJS _lJa[ֿY^ˈm={fQ{Y 4*-`֔_$LQ ;XNzb=wb@|.CYeBT+gbs}~6NX>j_>؃7tr"P(/ XfXI+|R럝\ ?롎\v%8~A.5q9Da?R,MYx6H_ So >}B`lM#'HoQ~/\vb(}n2>Ve~.Z)K :i$Oe^q3*(~9ҜKÃ"~`,o eͳj A"pbꃹt%gyA9*g0g/wyP/1ד[ py( 33͜lxM*9(,sa 2:\Zi{HjG,ت@( :`]&$[%.s`1KIWP pf3.f7 ")VN"Cf:=ωqm+L5\Zo;tèH|s#@kQܐ?HYO< a掎lS1ߜ(Մ V KX)ѯMX8 v8D+o)[=}`UG +iષy +A`aU4FZj'6 @*ox3:YB3o B^WpρcmZJlpp*hG7K' ЁyZ[K;0&t>?W H֊d[? 1nͫk4SO l>ፓzϕ`S{kǦJGtҔ77SҦ,sd&yCHwzq)́]ξ^В +3XykMQ4)zF ">o$H7UϚ*$@.Rޞ1wa+ELӃ΍ aco— b{?=< .YL"vY _aek(s~U Xwhѯ!ؼ M$Cҵc|8>Ioeb!3=)OLpЌҥ&@ f8܍2MB+o97vn_ߍ].m'A0NɆȳb:)B ֚>[6/YOw6L6f9{t]zks/XD0L?eLdAV_z{3d/UjZ䘧g D+;4/[af>hOm[MIo26q-m.;b'M͋J;̛5G5-MtAl% 'P{3!^< +u҅w74ĭ-v&<Ȍ/m(^, +.P_N=k)hn@jb85)nLZ"cBߤ۽BLԸtL kf?/2?+R\=yZq;zV<ӜrQfiFFC7@cՌExh+&zZu 'O 7hy%ш0ȃOJ*H8C` +Kvl$ + +kƴ~v*eIw +-D1B'a.׏Fɂ"kJYgT9Ĕ%T}l5|RړѻXkM5a\Q,MU•RHDd;Lt[%?y1|JP5Bm52T +;0= D(˩;Y͏ua )X.tgV"n*)2ӝAuf`>P#t.}z8H6ZoG bS(=cO_A {nrq%> endobj +248 0 obj << +/Ascent 715 +/CapHeight 680 +/Descent -282 +/FontName /GBBMOS+URWPalladioL-Roma +/ItalicAngle 0 +/StemV 84 +/XHeight 469 +/FontBBox [-166 -283 1021 943] +/Flags 4 +/CharSet (/fi/fl/dollar/percent/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/equal/question/A/B/C/D/E/F/G/H/I/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/bracketleft/bracketright/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/asciitilde/quotedblleft/quotedblright/bullet/emdash/copyright) +/FontFile 249 0 R +>> endobj +1269 0 obj +[605 608 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 840 0 278 333 333 389 606 250 333 250 606 500 500 500 500 500 500 500 500 500 500 250 250 0 606 0 444 0 778 611 709 774 611 556 763 832 337 0 726 611 946 831 786 604 786 668 525 613 778 722 1000 667 667 0 333 0 333 0 0 0 500 553 444 611 479 333 556 582 291 234 556 291 883 582 546 601 560 395 424 326 603 565 834 516 556 500 0 0 0 606 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 500 606 0 1000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 747 ] +endobj +241 0 obj << +/Length1 1608 +/Length2 10276 +/Length3 532 +/Length 11132 +/Filter /FlateDecode +>> +stream +xweP\.%8{ 44tN A;ݝ].wfL;f׭v^>K@!el w8x8ANnPm *5E) +0> xDDD02/W O_.KlƗw3 @j`rd44  + jttYTAV@0qv8CX9A|,P +r ieb@N (l]- _ mNb{t V  USVy,`ņ^gOkg+JbYP +%` B-^bA\Am;hkjB_`^?- GO;9`P 'KL+Kl[AQ8xvw$,^k 3%$2 B?]}Why7GGu ǂl(@׎|-@^:xi +nN(APy'ZX8o._؁5]Polw\zju:L ؿաl_Ξ!>efsy_{) 9цY_F?\]_Cz0gDC2>ê^g5Ƀ#w +玀59kG<5yMCY::>s)X[ض̾b}>Џ3d$ȭ>Nˬr5K {^ !*&*1SO][lYq HXQ.YFe>1Ezנ`{#NO^?@}jgz^ X JǁފEdM'C\Ui_D~mfTYrvsލ5ħ W'*}ZzI0%!8N$?mFWr]bj DBsE=!-E3T}j"A)XXt utB O׎K?ߍs:]훷YsVZ)ж T%DJOkXI,C &lDXR gB эxҦnjD3.4\*_p!vso47JgB42XDirW HT*F{uIk(oсHՎS2P7: W +T%VXPoԘ}9 $"}zbx%Έ=D`2_d|U[, +Mt/f]鬯LƐDEm齖>f xp +,좴+r$۔U]]QcQWO TSjKNA ;eؘPSqOG$mӕt)TΔJh_*Ύ5$*k;uaRysՄYyѧ7C]ԯ8 5ᒓ)m6(B+g{vkwh@ȫdi0,Ť8૝߾fDt7HƲmsqr5$FEca[L#*ȣ&i97 T4] S.cWbBԣC4mf3ϛ6$_K2΋h_~]j xo%jc 3($9`,p:BzI7.8Cx<{[A?ұɌ8p2 b.jh:萻J Z|H`-~ +7śD<^38{J0}^٨-]l+TƙV.@N\bdž]k:~[Iݡ'n\E/ѓhkxuU#QRxV\f/挟=|/\GϏRns+WyΟ:W;I];ܠi_W/-A@16CφZ0{zVl#&_iZHI/+i8'ް=gE 7ӊٞ +*sT3a萘`aG-FNӍl ),XJ ܟ u' +< xݨj%:i%ƪV8`q;=L$<Y.EG0nH6ܛÿ4_sifw! U֍=^n_b++SxK'7ȫ0̇`&b}Z{v`ð(xGdGQ'r׾{ M잢KrGtTA{_XI!>łkJRTEeF T.%xrS3B=4?(r" FdiT.>L4p2>P1DKqhYVݟ"'.L*Cr;)%y7/J?z|LnX)]ŋx=U EAenk T*`;Ƽ}dPa·9X7urF=uL=H>%}k4rN988Gί'\ܕx"G|I13B={ew2~c3&ަ)1DZ{*RvG|m=gTZG8R#fd ;x<6o5h٧׍H8*ӲowROw1ЫyFwGljgS +̯Rlm +@lgudT#FSSM t-@$ +&q=C޲OFyEj[l%Biۇ}[AfP}Q뎛z'c6cݾMw3O?gAڪh 4Uo3=d0cM{|B\c䃉}CKpIi*@ޏ)4~ +7!7xf%0]mjri3X_EgA!WCQİC%:̂O'qUPB'%2eVXj['0T +fMYޞ~lz=CMU5JEaEdٺdlyg_ǘtR - B({ 1t0MlnFkeVbhQE +7fbb|v9LCOo08Lɤͩߠ]N-"m# ?<(wuٙ:iqL C/X 7nv0~s_Va k6^AV]3K)wѡРAɏA)tf]zSxAk7W$wIKvD<8B ͅ1Q[=~Ϛ}U/.jf}E2'r[pU%,QiInGr/*CiHO_3 Z!P^~@[4sf - `ݎfO?t|߹d"MxO&Uȇ:Qj]xφ?؞CF7u'}݄[*fǾN$zىi%l=Sl-ZiubX<ԿM8V^nZ-Uapr טNU!m}_RHuU7^RSOVCd3+R$һ~L6:W%zAA~U41p}Eb O^ sW~eV35$marWE< +9)'dN( `HUͤt|T<O1=0f*9 IVw9;XVH볣&QqKƨ6g!%6wPSwZD ?39d7̑mk?_0gWW$14z6`Z N i?CY#*w܈8W +imƜL +L{[i_3wn>=h_sdK ǜc``eKN3dzAsJצ5!B u3,R N8a՛ϙOpܶgˑYqW2gR#0 6Pɏn<}]cgHi>*k&ƅ"1+ _SԉNwh +IiE"b1Z5뭂ᾍ)[t?uVH{ Ȍ\H^g eP=/_5OY .ﶰ5sAqY. '"_j#g?W,&Fy`7V[:D+ 6|]@c71ǯA>썱kUK#M3-(AL*ĺ"M$)l1eR=r uUP6FeG\=!O8, ]M5 1㸠fSMiJNM*)M.\4U\5a=9Ϊ v|ZrȯI-JN{ 189daXeHq_]ҕg*WW=|kƛ+@R($/%_˝dvg2[rYYxtrEFP\sK,զ$azuXt)+u>.rw4+owoޅ-Xq4n0rM Y)Z ׇ:dr'd^+VHAis%[mk˫26|NPE%Fx/E VC *֏za7ZLhqLiT-woo-՞3c[NTZ/3GE<(WJJ; +ϕ7~/L䙇wnH/?ԍ YG>ғ^4t ǀfZueճ GZq7NSkyu/.1˨l2ꋆhRǖ#Lm3C1O ? QGH4ja\"ޮ'- ߶`eQ ,Q3 Myn&45x5#P&d">gC+jpd]PcHu z;|FOǟ~J -6TsOW#'g:Ѩ1v _\|'<8rRi ~1%#DY|H^]9 )E)CE D6T9bdyqþCOCѿ +F7iR,t\ĵrZ0 55$>@E/ s&+5$E׽HoԬffkr>).|4Ǡ̽Xa"Gh+G@L'^HLl\}hɥ[hāZ;azDAv}hۉceQM'/>p4JSR߻eྋ!|,! _p9{^H4i]G˥-—KmQ'vo'UHUrĝC!7` ׵1RD܊okTܓɪo&;Y)dx&56ѵaf{Et?D I tczI{A(OEz_g_1,x.AdN=.+:(oW6VYL7kn J|=$IܶhmXR Uvp-/W f{I.W1v[gY^ǫ1HP5ݼ%[c$Eҿ,؏&@jL@׫Z@$e r[, + ++'9~Vzw)o켁.zw^եB-#f]E]Ktz;&BRfioYplu|vL Βgdp1w[dd T:>ޑ"lrM4jP]8ke{V,!Y[|=΃}ˏc/e@,v;$O=BфR1 +h#]}󮏙eЖ#ڄ:XV^tMv+:_%%MLfoq֮RM^ذpb:H)Ӏ/åI(}4j[4#*쀾zz ODjL}\ju*"hnH`E<B+U%VljSRټdVK\$1sNClvjrn71PdM^ +r+.Mw_cMy;x%W{߹ +l0a; +V]•!Ϻ|`>bA^pO(/t!\'Ky):'bBu& _#o6ד-zyp)bYc LdLTzmM:5?N3Yg˪*4tT Q%M4.eNzƋFia>4fa2{8N|1DWpނhVy3f?vdhBhQL2lPjvĕJ:A"PSKBWuwMM ;B G+CX7ď89D<rYQd;h5gJ$@ef͡^SO:ԙR=ՕsyvdxjH02xPDL5;7Q*,mo66(#f5~42VdWp|eRhZm$*kz(kwp>vSo?LФLpWJ!AK! PkO4{6уwSA΁=j{}Ӵ6V!%v zwQRir5۞fڃyRC\JyΎ9_!2ڕHP@nx/|N Q){t܉3AJz?1'_Qa/L9Hngmiن4u*":dq9<O7'Ŷ7<5tq4ghE#^YǢc+`&]#=]>BUSb3Ks9͙UtX];ަ3"8x5PX((7 C=MnV-_dUAi eˢ0nl:B3H]1̀VYzP{9&/*&<5A] ֵtQ/ƕmy +)R>d/Jv˴mqnMRHq#+P9orxW3!E헢( 1氷.ap'0<߂HT %E~^6yA'uɽFԞ\Xͩz.IQRѧI5U !.kDչ^Ny8l# j_i:+mXrC~rr 15J=\z +z%/uTR9@*˜T9WC) |'aj,-Sj&mc# aLiQykYY4)|-}}k\uj?G^L/ ݔۣV3v)IJfCN +QQiî8t{PN>+W1zE)0/(f$ԙž khH2(>x<7Uh? +Ҟ3F_iӉMP͇6έLIP^/]1" +xf4 ^~~&0@A*p]`(d 5_ +J5} 9gΈ8i#H 8OJ(͑[K9gBl+]Ieϒ:p-rSOߞFn)(ƋBu YGGd[8#[oYFA&y8N;0ױL Bv(Ĵpx&K*Xi4Wx k|dV}XXP~ 7ԍ ;RVB]nlզ=#M;@cb>̐N+0(eK[踻umH̍,ϕ y Cj'$:i&ӡܡn@'yk{~`>DWN%Tƪ2bjL.NAzK0QYnɘ+Q$: A}&bHUqOڛp){B +;_e\r)y#Zw.w CYDzm𒕂~|d +jRb ~w_p=06ʆ}5i!H{sLῘ͑y$;I+GUI / +kQi>Ձ,:R 8]!t5#B(b7xL{k]x'a~pKRZX@cwFV7gW)}-;ç + Ԛvt\۾6Ak£Z~Ca*|f'h]\9FJT["Hq*J[M:PAaíh\ո%n]TB4C}5]认"e&6i1],jzo#Fmf%!zqHt'Ui!'Zg67}sS ڌ?:LW֤~ϒAwZ"||Si&Qf" RLwz뻊[}YAvt4 " Tq!L_nI <1mGf7 SiصBt..PXhlzY/HJ  +Ɇ"l"gDBϺY))-dpBpO2kUr6!Qs9B+RVX_~T;mNqCcFۊ]oWwR:r 􄓠yi!IsoW*k="tWZrP\&2@QՒ'KuȲ2k'Ĺ**҉MB&lU$"'Ӹ&OkkT\Ũe03oT7lMz&(Kı)k!x{ &*"`~rZœ,\0zzendstream +endobj +242 0 obj << +/Type /Font +/Subtype /Type1 +/Encoding 1264 0 R +/FirstChar 2 +/LastChar 148 +/Widths 1270 0 R +/BaseFont /VMSQEA+NimbusSanL-Bold +/FontDescriptor 240 0 R +>> endobj +240 0 obj << +/Ascent 722 +/CapHeight 722 +/Descent -217 +/FontName /VMSQEA+NimbusSanL-Bold +/ItalicAngle 0 +/StemV 141 +/XHeight 532 +/FontBBox [-173 -307 1003 949] +/Flags 4 +/CharSet (/fi/comma/period/one/two/three/four/five/six/seven/question/A/B/C/D/E/F/G/H/I/L/M/N/O/P/R/S/T/V/W/a/b/c/d/e/f/g/h/i/k/l/m/n/o/p/r/s/t/u/v/w/x/y/quotedblleft/quotedblright) +/FontFile 241 0 R +>> endobj +1270 0 obj +[611 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 278 0 278 0 0 556 556 556 556 556 556 556 0 0 0 0 0 0 0 611 0 722 722 722 722 667 611 778 722 278 0 0 611 833 722 778 667 0 722 667 611 0 667 944 0 0 0 0 0 0 0 0 0 556 611 556 611 556 333 611 611 278 0 556 278 889 611 611 611 0 389 556 333 611 556 778 556 556 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 500 500 ] +endobj +243 0 obj << +/Type /Pages +/Count 6 +/Parent 1271 0 R +/Kids [234 0 R 245 0 R 252 0 R 427 0 R 437 0 R 459 0 R] +>> endobj +495 0 obj << +/Type /Pages +/Count 6 +/Parent 1271 0 R +/Kids [463 0 R 497 0 R 526 0 R 563 0 R 575 0 R 601 0 R] +>> endobj +647 0 obj << +/Type /Pages +/Count 6 +/Parent 1271 0 R +/Kids [610 0 R 651 0 R 666 0 R 709 0 R 713 0 R 750 0 R] +>> endobj +784 0 obj << +/Type /Pages +/Count 6 +/Parent 1271 0 R +/Kids [762 0 R 786 0 R 796 0 R 820 0 R 833 0 R 841 0 R] +>> endobj +850 0 obj << +/Type /Pages +/Count 6 +/Parent 1271 0 R +/Kids [846 0 R 852 0 R 857 0 R 862 0 R 867 0 R 872 0 R] +>> endobj +880 0 obj << +/Type /Pages +/Count 6 +/Parent 1271 0 R +/Kids [877 0 R 882 0 R 888 0 R 892 0 R 896 0 R 994 0 R] +>> endobj +1075 0 obj << +/Type /Pages +/Count 4 +/Parent 1272 0 R +/Kids [1042 0 R 1077 0 R 1101 0 R 1166 0 R] +>> endobj +1271 0 obj << +/Type /Pages +/Count 36 +/Parent 1273 0 R +/Kids [243 0 R 495 0 R 647 0 R 784 0 R 850 0 R 880 0 R] +>> endobj +1272 0 obj << +/Type /Pages +/Count 4 +/Parent 1273 0 R +/Kids [1075 0 R] +>> endobj +1273 0 obj << +/Type /Pages +/Count 40 +/Kids [1271 0 R 1272 0 R] +>> endobj +1274 0 obj << +/Type /Outlines +/First 3 0 R +/Last 167 0 R +/Count 12 +>> endobj +231 0 obj << +/Title 232 0 R +/A 229 0 R +/Parent 167 0 R +/Prev 211 0 R +>> endobj +227 0 obj << +/Title 228 0 R +/A 225 0 R +/Parent 211 0 R +/Prev 223 0 R +>> endobj +223 0 obj << +/Title 224 0 R +/A 221 0 R +/Parent 211 0 R +/Prev 219 0 R +/Next 227 0 R +>> endobj +219 0 obj << +/Title 220 0 R +/A 217 0 R +/Parent 211 0 R +/Prev 215 0 R +/Next 223 0 R +>> endobj +215 0 obj << +/Title 216 0 R +/A 213 0 R +/Parent 211 0 R +/Next 219 0 R +>> endobj +211 0 obj << +/Title 212 0 R +/A 209 0 R +/Parent 167 0 R +/Prev 195 0 R +/Next 231 0 R +/First 215 0 R +/Last 227 0 R +/Count -4 +>> endobj +207 0 obj << +/Title 208 0 R +/A 205 0 R +/Parent 195 0 R +/Prev 203 0 R +>> endobj +203 0 obj << +/Title 204 0 R +/A 201 0 R +/Parent 195 0 R +/Prev 199 0 R +/Next 207 0 R +>> endobj +199 0 obj << +/Title 200 0 R +/A 197 0 R +/Parent 195 0 R +/Next 203 0 R +>> endobj +195 0 obj << +/Title 196 0 R +/A 193 0 R +/Parent 167 0 R +/Prev 191 0 R +/Next 211 0 R +/First 199 0 R +/Last 207 0 R +/Count -3 +>> endobj +191 0 obj << +/Title 192 0 R +/A 189 0 R +/Parent 167 0 R +/Prev 175 0 R +/Next 195 0 R +>> endobj +187 0 obj << +/Title 188 0 R +/A 185 0 R +/Parent 175 0 R +/Prev 183 0 R +>> endobj +183 0 obj << +/Title 184 0 R +/A 181 0 R +/Parent 175 0 R +/Prev 179 0 R +/Next 187 0 R +>> endobj +179 0 obj << +/Title 180 0 R +/A 177 0 R +/Parent 175 0 R +/Next 183 0 R +>> endobj +175 0 obj << +/Title 176 0 R +/A 173 0 R +/Parent 167 0 R +/Prev 171 0 R +/Next 191 0 R +/First 179 0 R +/Last 187 0 R +/Count -3 +>> endobj +171 0 obj << +/Title 172 0 R +/A 169 0 R +/Parent 167 0 R +/Next 175 0 R +>> endobj +167 0 obj << +/Title 168 0 R +/A 165 0 R +/Parent 1274 0 R +/Prev 115 0 R +/First 171 0 R +/Last 231 0 R +/Count -6 +>> endobj +163 0 obj << +/Title 164 0 R +/A 161 0 R +/Parent 115 0 R +/Prev 159 0 R +>> endobj +159 0 obj << +/Title 160 0 R +/A 157 0 R +/Parent 115 0 R +/Prev 155 0 R +/Next 163 0 R +>> endobj +155 0 obj << +/Title 156 0 R +/A 153 0 R +/Parent 115 0 R +/Prev 151 0 R +/Next 159 0 R +>> endobj +151 0 obj << +/Title 152 0 R +/A 149 0 R +/Parent 115 0 R +/Prev 147 0 R +/Next 155 0 R +>> endobj +147 0 obj << +/Title 148 0 R +/A 145 0 R +/Parent 115 0 R +/Prev 143 0 R +/Next 151 0 R +>> endobj +143 0 obj << +/Title 144 0 R +/A 141 0 R +/Parent 115 0 R +/Prev 139 0 R +/Next 147 0 R +>> endobj +139 0 obj << +/Title 140 0 R +/A 137 0 R +/Parent 115 0 R +/Prev 135 0 R +/Next 143 0 R +>> endobj +135 0 obj << +/Title 136 0 R +/A 133 0 R +/Parent 115 0 R +/Prev 131 0 R +/Next 139 0 R +>> endobj +131 0 obj << +/Title 132 0 R +/A 129 0 R +/Parent 115 0 R +/Prev 127 0 R +/Next 135 0 R +>> endobj +127 0 obj << +/Title 128 0 R +/A 125 0 R +/Parent 115 0 R +/Prev 123 0 R +/Next 131 0 R +>> endobj +123 0 obj << +/Title 124 0 R +/A 121 0 R +/Parent 115 0 R +/Prev 119 0 R +/Next 127 0 R +>> endobj +119 0 obj << +/Title 120 0 R +/A 117 0 R +/Parent 115 0 R +/Next 123 0 R +>> endobj +115 0 obj << +/Title 116 0 R +/A 113 0 R +/Parent 1274 0 R +/Prev 99 0 R +/Next 167 0 R +/First 119 0 R +/Last 163 0 R +/Count -12 +>> endobj +111 0 obj << +/Title 112 0 R +/A 109 0 R +/Parent 99 0 R +/Prev 107 0 R +>> endobj +107 0 obj << +/Title 108 0 R +/A 105 0 R +/Parent 99 0 R +/Prev 103 0 R +/Next 111 0 R +>> endobj +103 0 obj << +/Title 104 0 R +/A 101 0 R +/Parent 99 0 R +/Next 107 0 R +>> endobj +99 0 obj << +/Title 100 0 R +/A 97 0 R +/Parent 1274 0 R +/Prev 95 0 R +/Next 115 0 R +/First 103 0 R +/Last 111 0 R +/Count -3 +>> endobj +95 0 obj << +/Title 96 0 R +/A 93 0 R +/Parent 1274 0 R +/Prev 91 0 R +/Next 99 0 R +>> endobj +91 0 obj << +/Title 92 0 R +/A 89 0 R +/Parent 1274 0 R +/Prev 87 0 R +/Next 95 0 R +>> endobj +87 0 obj << +/Title 88 0 R +/A 85 0 R +/Parent 1274 0 R +/Prev 63 0 R +/Next 91 0 R +>> endobj +83 0 obj << +/Title 84 0 R +/A 81 0 R +/Parent 63 0 R +/Prev 71 0 R +>> endobj +79 0 obj << +/Title 80 0 R +/A 77 0 R +/Parent 71 0 R +/Prev 75 0 R +>> endobj +75 0 obj << +/Title 76 0 R +/A 73 0 R +/Parent 71 0 R +/Next 79 0 R +>> endobj +71 0 obj << +/Title 72 0 R +/A 69 0 R +/Parent 63 0 R +/Prev 67 0 R +/Next 83 0 R +/First 75 0 R +/Last 79 0 R +/Count -2 +>> endobj +67 0 obj << +/Title 68 0 R +/A 65 0 R +/Parent 63 0 R +/Next 71 0 R +>> endobj +63 0 obj << +/Title 64 0 R +/A 61 0 R +/Parent 1274 0 R +/Prev 47 0 R +/Next 87 0 R +/First 67 0 R +/Last 83 0 R +/Count -3 +>> endobj +59 0 obj << +/Title 60 0 R +/A 57 0 R +/Parent 47 0 R +/Prev 55 0 R +>> endobj +55 0 obj << +/Title 56 0 R +/A 53 0 R +/Parent 47 0 R +/Prev 51 0 R +/Next 59 0 R +>> endobj +51 0 obj << +/Title 52 0 R +/A 49 0 R +/Parent 47 0 R +/Next 55 0 R +>> endobj +47 0 obj << +/Title 48 0 R +/A 45 0 R +/Parent 1274 0 R +/Prev 23 0 R +/Next 63 0 R +/First 51 0 R +/Last 59 0 R +/Count -3 +>> endobj +43 0 obj << +/Title 44 0 R +/A 41 0 R +/Parent 23 0 R +/Prev 39 0 R +>> endobj +39 0 obj << +/Title 40 0 R +/A 37 0 R +/Parent 23 0 R +/Prev 35 0 R +/Next 43 0 R +>> endobj +35 0 obj << +/Title 36 0 R +/A 33 0 R +/Parent 23 0 R +/Prev 31 0 R +/Next 39 0 R +>> endobj +31 0 obj << +/Title 32 0 R +/A 29 0 R +/Parent 23 0 R +/Prev 27 0 R +/Next 35 0 R +>> endobj +27 0 obj << +/Title 28 0 R +/A 25 0 R +/Parent 23 0 R +/Next 31 0 R +>> endobj +23 0 obj << +/Title 24 0 R +/A 21 0 R +/Parent 1274 0 R +/Prev 11 0 R +/Next 47 0 R +/First 27 0 R +/Last 43 0 R +/Count -5 +>> endobj +19 0 obj << +/Title 20 0 R +/A 17 0 R +/Parent 11 0 R +/Prev 15 0 R +>> endobj +15 0 obj << +/Title 16 0 R +/A 13 0 R +/Parent 11 0 R +/Next 19 0 R +>> endobj +11 0 obj << +/Title 12 0 R +/A 9 0 R +/Parent 1274 0 R +/Prev 7 0 R +/Next 23 0 R +/First 15 0 R +/Last 19 0 R +/Count -2 +>> endobj +7 0 obj << +/Title 8 0 R +/A 5 0 R +/Parent 1274 0 R +/Prev 3 0 R +/Next 11 0 R +>> endobj +3 0 obj << +/Title 4 0 R +/A 1 0 R +/Parent 1274 0 R +/Next 7 0 R +>> endobj +1275 0 obj << +/Names [(0) 239 0 R (1.0) 2 0 R (10.0) 98 0 R (10.14.1) 102 0 R (10.15.1) 106 0 R (10.16.1) 110 0 R (100) 507 0 R (101) 508 0 R (102) 509 0 R (103) 510 0 R (104) 511 0 R (105) 512 0 R (106) 513 0 R (107) 514 0 R (108) 515 0 R (109) 516 0 R (11) 440 0 R (11.0) 114 0 R (11.17.1) 118 0 R (11.18.1) 122 0 R (11.19.1) 126 0 R (11.20.1) 130 0 R (11.21.1) 134 0 R (11.22.1) 138 0 R (11.23.1) 142 0 R (11.24.1) 146 0 R (11.25.1) 150 0 R (11.26.1) 154 0 R (11.27.1) 158 0 R (11.28.1) 162 0 R (110) 517 0 R (111) 518 0 R (112) 519 0 R (113) 520 0 R (114) 521 0 R (115) 522 0 R (116) 523 0 R (117) 524 0 R (118) 378 0 R (12) 441 0 R (12.0) 166 0 R (12.29.1) 170 0 R (12.30.1) 174 0 R (12.30.3.2) 178 0 R (12.30.4.2) 182 0 R (12.30.5.2) 186 0 R (12.31.1) 190 0 R (12.32.1) 194 0 R (12.32.6.2) 198 0 R (12.32.7.2) 202 0 R (12.32.8.2) 206 0 R (12.33.1) 210 0 R (12.33.10.2) 218 0 R (12.33.11.2) 222 0 R (12.33.12.2) 226 0 R (12.33.9.2) 214 0 R (12.34.1) 230 0 R (120) 528 0 R (121) 529 0 R (122) 530 0 R (123) 531 0 R (124) 532 0 R (125) 533 0 R (126) 534 0 R (127) 535 0 R (128) 536 0 R (129) 537 0 R (13) 442 0 R (130) 538 0 R (131) 539 0 R (132) 540 0 R (133) 541 0 R (134) 542 0 R (135) 543 0 R (136) 544 0 R (137) 545 0 R (138) 546 0 R (139) 379 0 R (14) 373 0 R (141) 547 0 R (142) 548 0 R (143) 549 0 R (144) 550 0 R (145) 551 0 R (146) 552 0 R (148) 380 0 R (150) 554 0 R (151) 555 0 R (152) 556 0 R (153) 557 0 R (154) 558 0 R (156) 559 0 R (17) 443 0 R (18) 444 0 R (19) 445 0 R (190) 565 0 R (191) 566 0 R (192) 567 0 R (193) 568 0 R (194) 569 0 R (195) 570 0 R (196) 571 0 R (197) 572 0 R (198) 573 0 R (199) 381 0 R (2.0) 6 0 R (20) 446 0 R (201) 577 0 R (202) 578 0 R (203) 579 0 R (204) 580 0 R (205) 382 0 R (207) 581 0 R (208) 582 0 R (209) 583 0 R (21) 374 0 R (210) 584 0 R (211) 585 0 R (212) 586 0 R (213) 383 0 R (215) 587 0 R (216) 588 0 R (217) 589 0 R (218) 590 0 R (219) 591 0 R (220) 592 0 R (221) 593 0 R (222) 594 0 R (223) 595 0 R (224) 384 0 R (226) 596 0 R (227) 597 0 R (228) 598 0 R (229) 603 0 R (23) 447 0 R (230) 604 0 R (231) 599 0 R (232) 605 0 R (237) 613 0 R (238) 614 0 R (239) 386 0 R (24) 448 0 R (241) 615 0 R (242) 616 0 R (243) 617 0 R (244) 618 0 R (245) 619 0 R (246) 620 0 R (247) 621 0 R (248) 622 0 R (249) 623 0 R (25) 449 0 R (250) 624 0 R (251) 625 0 R (252) 626 0 R (253) 627 0 R (256) 387 0 R (258) 630 0 R (259) 631 0 R (26) 450 0 R (260) 632 0 R (261) 633 0 R (262) 634 0 R (264) 388 0 R (266) 636 0 R (267) 637 0 R (268) 638 0 R (269) 639 0 R (27) 451 0 R (270) 640 0 R (271) 641 0 R (272) 642 0 R (273) 643 0 R (274) 644 0 R (275) 645 0 R (276) 646 0 R (277) 389 0 R (279) 654 0 R (28) 452 0 R (280) 655 0 R (281) 656 0 R (282) 657 0 R (283) 658 0 R (284) 659 0 R (285) 660 0 R (286) 390 0 R (288) 661 0 R (29) 453 0 R (290) 663 0 R (293) 669 0 R (294) 670 0 R (295) 671 0 R (296) 672 0 R (299) 675 0 R (3.0) 10 0 R (3.1.1) 14 0 R (3.2.1) 18 0 R (30) 454 0 R (300) 676 0 R (301) 677 0 R (302) 678 0 R (305) 682 0 R (306) 683 0 R (307) 684 0 R (308) 685 0 R (309) 686 0 R (31) 455 0 R (311) 688 0 R (312) 689 0 R (313) 690 0 R (314) 691 0 R (315) 692 0 R (316) 693 0 R (317) 694 0 R (318) 695 0 R (319) 696 0 R (32) 456 0 R (320) 697 0 R (322) 699 0 R (323) 700 0 R (324) 701 0 R (325) 702 0 R (326) 703 0 R (327) 704 0 R (33) 457 0 R (330) 716 0 R (332) 718 0 R (333) 719 0 R (334) 720 0 R (335) 721 0 R (336) 722 0 R (337) 723 0 R (338) 724 0 R (339) 725 0 R (340) 726 0 R (341) 727 0 R (342) 728 0 R (343) 729 0 R (344) 730 0 R (345) 731 0 R (346) 732 0 R (347) 733 0 R (348) 734 0 R (349) 735 0 R (350) 736 0 R (351) 737 0 R (352) 738 0 R (353) 739 0 R (354) 740 0 R (355) 741 0 R (356) 742 0 R (357) 743 0 R (358) 744 0 R (359) 745 0 R (36) 465 0 R (360) 746 0 R (361) 747 0 R (362) 748 0 R (363) 753 0 R (364) 754 0 R (365) 755 0 R (366) 756 0 R (367) 757 0 R (368) 758 0 R (37) 466 0 R (370) 393 0 R (372) 765 0 R (373) 766 0 R (374) 767 0 R (375) 768 0 R (376) 769 0 R (377) 770 0 R (378) 771 0 R (379) 775 0 R (38) 467 0 R (380) 776 0 R (381) 777 0 R (382) 778 0 R (383) 779 0 R (384) 780 0 R (385) 781 0 R (386) 782 0 R (387) 783 0 R (389) 789 0 R (39) 468 0 R (4.0) 22 0 R (4.3.1) 26 0 R (4.4.1) 30 0 R (4.5.1) 34 0 R (4.6.1) 38 0 R (4.7.1) 42 0 R (40) 469 0 R (41) 470 0 R (415) 791 0 R (416) 792 0 R (418) 394 0 R (42) 471 0 R (420) 799 0 R (421) 800 0 R (422) 801 0 R (423) 395 0 R (425) 802 0 R (426) 803 0 R (429) 396 0 R (43) 472 0 R (431) 806 0 R (432) 807 0 R (433) 808 0 R (434) 809 0 R (435) 810 0 R (436) 811 0 R (437) 812 0 R (438) 813 0 R (439) 814 0 R (44) 473 0 R (441) 816 0 R (442) 817 0 R (443) 823 0 R (444) 824 0 R (445) 825 0 R (446) 826 0 R (448) 397 0 R (45) 474 0 R (450) 828 0 R (452) 830 0 R (453) 398 0 R (455) 836 0 R (459) 837 0 R (46) 475 0 R (463) 838 0 R (467) 839 0 R (47) 376 0 R (471) 844 0 R (475) 849 0 R (479) 855 0 R (483) 860 0 R (487) 865 0 R (49) 476 0 R (491) 870 0 R (495) 875 0 R (499) 885 0 R (5.0) 46 0 R (5.10.1) 58 0 R (5.8.1) 50 0 R (5.9.1) 54 0 R (50) 377 0 R (503) 886 0 R (506) 412 0 R (508) 899 0 R (509) 900 0 R (510) 901 0 R (511) 902 0 R (512) 903 0 R (513) 904 0 R (514) 905 0 R (515) 906 0 R (516) 907 0 R (517) 908 0 R (518) 909 0 R (519) 910 0 R (52) 477 0 R (520) 911 0 R (521) 912 0 R (522) 913 0 R (523) 914 0 R (524) 915 0 R (525) 916 0 R (526) 917 0 R (527) 918 0 R (528) 919 0 R (529) 920 0 R (53) 478 0 R (530) 921 0 R (531) 922 0 R (532) 923 0 R (533) 924 0 R (534) 925 0 R (535) 926 0 R (536) 927 0 R (537) 928 0 R (538) 929 0 R (539) 930 0 R (54) 479 0 R (540) 931 0 R (541) 932 0 R (542) 933 0 R (543) 934 0 R (544) 935 0 R (545) 936 0 R (546) 937 0 R (547) 938 0 R (548) 939 0 R (549) 940 0 R (55) 480 0 R (550) 941 0 R (551) 942 0 R (552) 943 0 R (553) 944 0 R (554) 945 0 R (555) 946 0 R (556) 947 0 R (557) 948 0 R (558) 949 0 R (559) 950 0 R (56) 481 0 R (560) 951 0 R (561) 952 0 R (562) 953 0 R (563) 954 0 R (564) 955 0 R (565) 956 0 R (566) 957 0 R (567) 958 0 R (568) 959 0 R (569) 960 0 R (57) 482 0 R (570) 961 0 R (571) 413 0 R (573) 962 0 R (574) 414 0 R (576) 963 0 R (577) 964 0 R (578) 965 0 R (579) 966 0 R (58) 483 0 R (580) 967 0 R (581) 968 0 R (582) 969 0 R (583) 970 0 R (584) 971 0 R (585) 972 0 R (586) 973 0 R (587) 974 0 R (588) 975 0 R (589) 976 0 R (59) 484 0 R (590) 977 0 R (591) 978 0 R (592) 979 0 R (593) 980 0 R (594) 981 0 R (595) 982 0 R (596) 983 0 R (597) 415 0 R (599) 984 0 R (6.0) 62 0 R (6.11.1) 66 0 R (6.12.1) 70 0 R (6.12.1.2) 74 0 R (6.12.2.2) 78 0 R (6.13.1) 82 0 R (60) 485 0 R (600) 985 0 R (601) 986 0 R (602) 987 0 R (603) 988 0 R (604) 989 0 R (605) 990 0 R (606) 991 0 R (607) 992 0 R (608) 997 0 R (609) 998 0 R (61) 486 0 R (610) 416 0 R (612) 999 0 R (613) 1000 0 R (614) 1001 0 R (615) 1002 0 R (616) 1003 0 R (617) 1004 0 R (618) 1005 0 R (619) 417 0 R (62) 490 0 R (621) 1006 0 R (622) 1010 0 R (623) 1011 0 R (624) 1012 0 R (625) 1013 0 R (626) 1014 0 R (627) 1015 0 R (628) 1016 0 R (629) 1017 0 R (63) 491 0 R (630) 1018 0 R (631) 1019 0 R (632) 1020 0 R (633) 1021 0 R (634) 1022 0 R (635) 1023 0 R (636) 1024 0 R (637) 1025 0 R (638) 1026 0 R (639) 1027 0 R (64) 492 0 R (640) 1028 0 R (641) 1029 0 R (642) 1030 0 R (643) 1031 0 R (644) 1032 0 R (645) 1033 0 R (646) 418 0 R (648) 1034 0 R (649) 419 0 R (651) 1035 0 R (652) 1036 0 R (653) 1037 0 R (654) 1038 0 R (655) 1039 0 R (656) 1040 0 R (657) 1045 0 R (658) 420 0 R (66) 493 0 R (660) 1046 0 R (661) 1047 0 R (662) 1048 0 R (663) 1049 0 R (664) 1050 0 R (665) 1051 0 R (666) 1052 0 R (667) 1053 0 R (668) 1054 0 R (669) 1055 0 R (670) 1056 0 R (671) 1057 0 R (672) 1058 0 R (673) 1059 0 R (674) 1060 0 R (675) 1061 0 R (676) 1062 0 R (677) 1063 0 R (678) 1064 0 R (679) 1065 0 R (680) 1066 0 R (681) 1067 0 R (682) 421 0 R (684) 1068 0 R (685) 1069 0 R (686) 1070 0 R (687) 1071 0 R (688) 1072 0 R (689) 1073 0 R (690) 1074 0 R (691) 422 0 R (693) 1080 0 R (694) 1081 0 R (695) 423 0 R (697) 1082 0 R (698) 1083 0 R (699) 1084 0 R (7.0) 86 0 R (700) 1085 0 R (701) 424 0 R (703) 1086 0 R (704) 1087 0 R (705) 1088 0 R (706) 1089 0 R (707) 1090 0 R (708) 1091 0 R (709) 425 0 R (711) 1092 0 R (712) 1093 0 R (713) 1094 0 R (714) 1095 0 R (715) 1096 0 R (716) 1097 0 R (717) 1098 0 R (718) 1099 0 R (719) 434 0 R (721) 1104 0 R (722) 1105 0 R (723) 1106 0 R (724) 1107 0 R (725) 1108 0 R (726) 1109 0 R (727) 1110 0 R (728) 1111 0 R (729) 1112 0 R (730) 1113 0 R (731) 435 0 R (733) 1114 0 R (734) 1115 0 R (735) 1116 0 R (736) 1117 0 R (737) 1118 0 R (738) 1119 0 R (739) 1120 0 R (740) 1121 0 R (741) 1122 0 R (742) 1123 0 R (743) 1124 0 R (744) 1125 0 R (745) 1126 0 R (746) 1127 0 R (747) 1128 0 R (748) 1129 0 R (749) 1130 0 R (750) 1131 0 R (751) 1132 0 R (752) 1133 0 R (753) 1134 0 R (754) 1135 0 R (755) 1136 0 R (756) 1137 0 R (757) 1138 0 R (758) 1139 0 R (759) 1140 0 R (760) 1141 0 R (761) 1142 0 R (762) 1143 0 R (763) 1144 0 R (764) 1145 0 R (765) 1146 0 R (766) 1147 0 R (767) 1148 0 R (768) 1149 0 R (769) 1150 0 R (770) 1151 0 R (771) 1152 0 R (772) 1153 0 R (773) 1154 0 R (774) 1155 0 R (775) 1156 0 R (776) 1157 0 R (777) 1158 0 R (778) 1159 0 R (779) 1160 0 R (780) 1161 0 R (781) 1162 0 R (782) 1163 0 R (783) 1164 0 R (784) 1169 0 R (785) 1170 0 R (786) 1171 0 R (787) 1172 0 R (788) 1173 0 R (789) 1174 0 R (790) 1175 0 R (791) 1176 0 R (792) 1177 0 R (793) 1178 0 R (794) 1179 0 R (795) 1180 0 R (796) 1181 0 R (797) 1182 0 R (798) 1183 0 R (799) 1184 0 R (8.0) 90 0 R (800) 1185 0 R (801) 1186 0 R (802) 1187 0 R (803) 1188 0 R (804) 1189 0 R (805) 1190 0 R (806) 1191 0 R (807) 1192 0 R (808) 1193 0 R (809) 1194 0 R (810) 1195 0 R (811) 1196 0 R (812) 1197 0 R (813) 1198 0 R (814) 1199 0 R (815) 1200 0 R (816) 1201 0 R (817) 1202 0 R (818) 1203 0 R (819) 1204 0 R (820) 1205 0 R (821) 1206 0 R (822) 1207 0 R (823) 1208 0 R (824) 1209 0 R (825) 1210 0 R (826) 1211 0 R (827) 1212 0 R (828) 1213 0 R (829) 1214 0 R (830) 1215 0 R (831) 1216 0 R (832) 1217 0 R (833) 1218 0 R (834) 1219 0 R (835) 1220 0 R (836) 1221 0 R (837) 1222 0 R (838) 1223 0 R (839) 1224 0 R (840) 1225 0 R (841) 1226 0 R (842) 1227 0 R (843) 1228 0 R (844) 1229 0 R (845) 1230 0 R (846) 1231 0 R (847) 1232 0 R (848) 1233 0 R (849) 1234 0 R (850) 1235 0 R (851) 1236 0 R (852) 1237 0 R (853) 1238 0 R (854) 1239 0 R (855) 1240 0 R (856) 1241 0 R (857) 1242 0 R (858) 1243 0 R (859) 1244 0 R (860) 1245 0 R (861) 1246 0 R (862) 1247 0 R (863) 1248 0 R (864) 1249 0 R (865) 1250 0 R (866) 1251 0 R (867) 1252 0 R (868) 1253 0 R (869) 1254 0 R (870) 1255 0 R (871) 1256 0 R (872) 1257 0 R (873) 1258 0 R (874) 1259 0 R (9) 372 0 R (9.0) 94 0 R (92) 499 0 R (93) 500 0 R (94) 501 0 R (95) 502 0 R (96) 503 0 R (97) 504 0 R (98) 505 0 R (99) 506 0 R (C64-1-FNAME) 648 0 R (C64-1-SRC) 401 0 R (C64-2-FNAME) 818 0 R (C64-2-SRC) 409 0 R (CH3-LINK) 385 0 R (CH4-LINK) 391 0 R (CH5-LINK) 392 0 R (Doc-Start) 238 0 R (KERNAL-FNAME) 649 0 R (KERNAL-SRC) 402 0 R (PART1) 375 0 R (REF-LINK) 411 0 R (TUTOR1-FNAME) 561 0 R (TUTOR1-SRC) 399 0 R (TUTOR2-FNAME) 608 0 R (TUTOR2-SRC) 400 0 R (TUTOR3-FNAME) 664 0 R (TUTOR3-SRC) 403 0 R (TUTOR4A-FNAME) 705 0 R (TUTOR4A-SRC) 404 0 R (TUTOR4B-FNAME) 706 0 R (TUTOR4B-SRC) 405 0 R (TUTOR4C-FNAME) 707 0 R (TUTOR4C-SRC) 406 0 R (TUTOR5-FNAME) 760 0 R (TUTOR5-SRC) 407 0 R (TUTOR6-FNAME) 794 0 R (TUTOR6-SRC) 408 0 R (TUTOR7-FNAME) 831 0 R (TUTOR7-SRC) 410 0 R (page.1) 237 0 R (page.10) 711 0 R (page.11) 715 0 R (page.12) 752 0 R (page.13) 764 0 R (page.14) 788 0 R (page.15) 798 0 R (page.16) 822 0 R (page.17) 835 0 R (page.18) 843 0 R (page.19) 848 0 R (page.2) 247 0 R (page.20) 854 0 R (page.21) 859 0 R (page.22) 864 0 R (page.23) 869 0 R (page.24) 874 0 R (page.25) 879 0 R (page.26) 884 0 R (page.27) 890 0 R (page.28) 894 0 R (page.29) 898 0 R (page.3) 254 0 R (page.30) 996 0 R (page.31) 1044 0 R (page.32) 1079 0 R (page.33) 1103 0 R (page.34) 1168 0 R (page.4) 429 0 R (page.5) 439 0 R (page.6) 461 0 R (page.7) 612 0 R (page.8) 653 0 R (page.9) 668 0 R (table.1) 494 0 R (table.2) 560 0 R (table.3) 790 0 R] +/Limits [(0) (table.3)] +>> endobj +1276 0 obj << +/Kids [1275 0 R] +>> endobj +1277 0 obj << +/Dests 1276 0 R +>> endobj +1278 0 obj << +/Type /Catalog +/Pages 1273 0 R +/Outlines 1274 0 R +/Names 1277 0 R +/PageMode /UseOutlines +/OpenAction 233 0 R +>> endobj +1279 0 obj << +/Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfeTeX-1.21a)/Keywords() +/CreationDate (D:20071003190612-07'00') +/PTEX.Fullbanner (This is pdfeTeX, Version 3.141592-1.21a-2.2 (Web2C 7.5.4) kpathsea version 3.5.4) +>> endobj +xref +0 1280 +0000000000 65535 f +0000000009 00000 n +0000005396 00000 n +0000329104 00000 n +0000000048 00000 n +0000000088 00000 n +0000079921 00000 n +0000329019 00000 n +0000000127 00000 n +0000000162 00000 n +0000085542 00000 n +0000328895 00000 n +0000000201 00000 n +0000000227 00000 n +0000085855 00000 n +0000328821 00000 n +0000000269 00000 n +0000000298 00000 n +0000086235 00000 n +0000328747 00000 n +0000000340 00000 n +0000000382 00000 n +0000090201 00000 n +0000328621 00000 n +0000000422 00000 n +0000000462 00000 n +0000091025 00000 n +0000328547 00000 n +0000000504 00000 n +0000000549 00000 n +0000091214 00000 n +0000328460 00000 n +0000000591 00000 n +0000000641 00000 n +0000099931 00000 n +0000328373 00000 n +0000000683 00000 n +0000000730 00000 n +0000101264 00000 n +0000328286 00000 n +0000000772 00000 n +0000000814 00000 n +0000101766 00000 n +0000328212 00000 n +0000000856 00000 n +0000000894 00000 n +0000107433 00000 n +0000328086 00000 n +0000000934 00000 n +0000000982 00000 n +0000107812 00000 n +0000328012 00000 n +0000001024 00000 n +0000001059 00000 n +0000108315 00000 n +0000327925 00000 n +0000001101 00000 n +0000001136 00000 n +0000109014 00000 n +0000327851 00000 n +0000001179 00000 n +0000001206 00000 n +0000114428 00000 n +0000327725 00000 n +0000001246 00000 n +0000001306 00000 n +0000114681 00000 n +0000327651 00000 n +0000001349 00000 n +0000001394 00000 n +0000115627 00000 n +0000327527 00000 n +0000001437 00000 n +0000001462 00000 n +0000116069 00000 n +0000327453 00000 n +0000001507 00000 n +0000001543 00000 n +0000118520 00000 n +0000327379 00000 n +0000001588 00000 n +0000001624 00000 n +0000119090 00000 n +0000327305 00000 n +0000001667 00000 n +0000001698 00000 n +0000123958 00000 n +0000327216 00000 n +0000001738 00000 n +0000001782 00000 n +0000129730 00000 n +0000327127 00000 n +0000001822 00000 n +0000001887 00000 n +0000136023 00000 n +0000327038 00000 n +0000001927 00000 n +0000001968 00000 n +0000141939 00000 n +0000326908 00000 n +0000002009 00000 n +0000002064 00000 n +0000142256 00000 n +0000326830 00000 n +0000002109 00000 n +0000002140 00000 n +0000142509 00000 n +0000326738 00000 n +0000002185 00000 n +0000002217 00000 n +0000145557 00000 n +0000326660 00000 n +0000002262 00000 n +0000002303 00000 n +0000146879 00000 n +0000326527 00000 n +0000002345 00000 n +0000002393 00000 n +0000147069 00000 n +0000326448 00000 n +0000002438 00000 n +0000002468 00000 n +0000147259 00000 n +0000326355 00000 n +0000002513 00000 n +0000002543 00000 n +0000147449 00000 n +0000326262 00000 n +0000002588 00000 n +0000002616 00000 n +0000148761 00000 n +0000326169 00000 n +0000002661 00000 n +0000002691 00000 n +0000150049 00000 n +0000326076 00000 n +0000002736 00000 n +0000002766 00000 n +0000151349 00000 n +0000325983 00000 n +0000002811 00000 n +0000002842 00000 n +0000152675 00000 n +0000325890 00000 n +0000002887 00000 n +0000002918 00000 n +0000153956 00000 n +0000325797 00000 n +0000002963 00000 n +0000002994 00000 n +0000155204 00000 n +0000325704 00000 n +0000003039 00000 n +0000003069 00000 n +0000156652 00000 n +0000325611 00000 n +0000003114 00000 n +0000003144 00000 n +0000159232 00000 n +0000325518 00000 n +0000003189 00000 n +0000003217 00000 n +0000159422 00000 n +0000325439 00000 n +0000003262 00000 n +0000003292 00000 n +0000164207 00000 n +0000325320 00000 n +0000003334 00000 n +0000003389 00000 n +0000164334 00000 n +0000325241 00000 n +0000003434 00000 n +0000003467 00000 n +0000168470 00000 n +0000325109 00000 n +0000003512 00000 n +0000003547 00000 n +0000168660 00000 n +0000325030 00000 n +0000003594 00000 n +0000003627 00000 n +0000170120 00000 n +0000324937 00000 n +0000003674 00000 n +0000003705 00000 n +0000173830 00000 n +0000324858 00000 n +0000003752 00000 n +0000003784 00000 n +0000174406 00000 n +0000324765 00000 n +0000003829 00000 n +0000003867 00000 n +0000176141 00000 n +0000324633 00000 n +0000003912 00000 n +0000003944 00000 n +0000176332 00000 n +0000324554 00000 n +0000003991 00000 n +0000004028 00000 n +0000180139 00000 n +0000324461 00000 n +0000004075 00000 n +0000004124 00000 n +0000181709 00000 n +0000324382 00000 n +0000004171 00000 n +0000004222 00000 n +0000184360 00000 n +0000324250 00000 n +0000004267 00000 n +0000004293 00000 n +0000184620 00000 n +0000324171 00000 n +0000004340 00000 n +0000004375 00000 n +0000185011 00000 n +0000324078 00000 n +0000004423 00000 n +0000004458 00000 n +0000185530 00000 n +0000323985 00000 n +0000004506 00000 n +0000004553 00000 n +0000190066 00000 n +0000323906 00000 n +0000004601 00000 n +0000004671 00000 n +0000190849 00000 n +0000323827 00000 n +0000004716 00000 n +0000004756 00000 n +0000005085 00000 n +0000005458 00000 n +0000004808 00000 n +0000005207 00000 n +0000005270 00000 n +0000005333 00000 n +0000321860 00000 n +0000310434 00000 n +0000321688 00000 n +0000322662 00000 n +0000006008 00000 n +0000005823 00000 n +0000005530 00000 n +0000005945 00000 n +0000309336 00000 n +0000283724 00000 n +0000309162 00000 n +0000079983 00000 n +0000062500 00000 n +0000006093 00000 n +0000079858 00000 n +0000063498 00000 n +0000283116 00000 n +0000264662 00000 n +0000282941 00000 n +0000063646 00000 n +0000063794 00000 n +0000063942 00000 n +0000064090 00000 n +0000064239 00000 n +0000064388 00000 n +0000064540 00000 n +0000064692 00000 n +0000064841 00000 n +0000064990 00000 n +0000065139 00000 n +0000065288 00000 n +0000065438 00000 n +0000065588 00000 n +0000065738 00000 n +0000065888 00000 n +0000066038 00000 n +0000066188 00000 n +0000066338 00000 n +0000066488 00000 n +0000066638 00000 n +0000066788 00000 n +0000066937 00000 n +0000067087 00000 n +0000067237 00000 n +0000067387 00000 n +0000067542 00000 n +0000067697 00000 n +0000067847 00000 n +0000067997 00000 n +0000068147 00000 n +0000068297 00000 n +0000068447 00000 n +0000068597 00000 n +0000068747 00000 n +0000068897 00000 n +0000069047 00000 n +0000069197 00000 n +0000069352 00000 n +0000069507 00000 n +0000069660 00000 n +0000069815 00000 n +0000069965 00000 n +0000070115 00000 n +0000070265 00000 n +0000070415 00000 n +0000070564 00000 n +0000070713 00000 n +0000070863 00000 n +0000071013 00000 n +0000071161 00000 n +0000071309 00000 n +0000071456 00000 n +0000071603 00000 n +0000263698 00000 n +0000243768 00000 n +0000263525 00000 n +0000071760 00000 n +0000071917 00000 n +0000072074 00000 n +0000072231 00000 n +0000072385 00000 n +0000072540 00000 n +0000072697 00000 n +0000072854 00000 n +0000073011 00000 n +0000073168 00000 n +0000073326 00000 n +0000073484 00000 n +0000073642 00000 n +0000073800 00000 n +0000073958 00000 n +0000074116 00000 n +0000074273 00000 n +0000074430 00000 n +0000074587 00000 n +0000074744 00000 n +0000074898 00000 n +0000075053 00000 n +0000075210 00000 n +0000075367 00000 n +0000075522 00000 n +0000075677 00000 n +0000075827 00000 n +0000075977 00000 n +0000076127 00000 n +0000076277 00000 n +0000076427 00000 n +0000076577 00000 n +0000076727 00000 n +0000076877 00000 n +0000077027 00000 n +0000077177 00000 n +0000077327 00000 n +0000077477 00000 n +0000077627 00000 n +0000077777 00000 n +0000077925 00000 n +0000078073 00000 n +0000078223 00000 n +0000078373 00000 n +0000078522 00000 n +0000078671 00000 n +0000078821 00000 n +0000078971 00000 n +0000079119 00000 n +0000079267 00000 n +0000079414 00000 n +0000079562 00000 n +0000079710 00000 n +0000242963 00000 n +0000223501 00000 n +0000242789 00000 n +0000085479 00000 n +0000085793 00000 n +0000086172 00000 n +0000090138 00000 n +0000090961 00000 n +0000091151 00000 n +0000096911 00000 n +0000101201 00000 n +0000101703 00000 n +0000107370 00000 n +0000107749 00000 n +0000108252 00000 n +0000108951 00000 n +0000114365 00000 n +0000114618 00000 n +0000115565 00000 n +0000116006 00000 n +0000118457 00000 n +0000119027 00000 n +0000123895 00000 n +0000129667 00000 n +0000135960 00000 n +0000141876 00000 n +0000142193 00000 n +0000142446 00000 n +0000145494 00000 n +0000146816 00000 n +0000147006 00000 n +0000147196 00000 n +0000147386 00000 n +0000148698 00000 n +0000149986 00000 n +0000150176 00000 n +0000152612 00000 n +0000153893 00000 n +0000155141 00000 n +0000156589 00000 n +0000159169 00000 n +0000159359 00000 n +0000164144 00000 n +0000164271 00000 n +0000168407 00000 n +0000168597 00000 n +0000170057 00000 n +0000173767 00000 n +0000174343 00000 n +0000176078 00000 n +0000176269 00000 n +0000173577 00000 n +0000181645 00000 n +0000184296 00000 n +0000184556 00000 n +0000184947 00000 n +0000185466 00000 n +0000082926 00000 n +0000082098 00000 n +0000080107 00000 n +0000082863 00000 n +0000082264 00000 n +0000082414 00000 n +0000082564 00000 n +0000082713 00000 n +0000186116 00000 n +0000190785 00000 n +0000086993 00000 n +0000085294 00000 n +0000083011 00000 n +0000085416 00000 n +0000085604 00000 n +0000085667 00000 n +0000085730 00000 n +0000085918 00000 n +0000085981 00000 n +0000086045 00000 n +0000086109 00000 n +0000086298 00000 n +0000086361 00000 n +0000086424 00000 n +0000086488 00000 n +0000086551 00000 n +0000086615 00000 n +0000086677 00000 n +0000086739 00000 n +0000086803 00000 n +0000086865 00000 n +0000086929 00000 n +0000087529 00000 n +0000087344 00000 n +0000087117 00000 n +0000087466 00000 n +0000092224 00000 n +0000090016 00000 n +0000087601 00000 n +0000090264 00000 n +0000090327 00000 n +0000090390 00000 n +0000090454 00000 n +0000090517 00000 n +0000090581 00000 n +0000090644 00000 n +0000090708 00000 n +0000090771 00000 n +0000090834 00000 n +0000090897 00000 n +0000091088 00000 n +0000091277 00000 n +0000091340 00000 n +0000091404 00000 n +0000091467 00000 n +0000091531 00000 n +0000091594 00000 n +0000091658 00000 n +0000091721 00000 n +0000091784 00000 n +0000091847 00000 n +0000222963 00000 n +0000210834 00000 n +0000222790 00000 n +0000091911 00000 n +0000091974 00000 n +0000092037 00000 n +0000092098 00000 n +0000092161 00000 n +0000322780 00000 n +0000096973 00000 n +0000095143 00000 n +0000092361 00000 n +0000095265 00000 n +0000095328 00000 n +0000095391 00000 n +0000095455 00000 n +0000095519 00000 n +0000095582 00000 n +0000095645 00000 n +0000095708 00000 n +0000095771 00000 n +0000095835 00000 n +0000095898 00000 n +0000095961 00000 n +0000096024 00000 n +0000096087 00000 n +0000096150 00000 n +0000096214 00000 n +0000096278 00000 n +0000096342 00000 n +0000096406 00000 n +0000096469 00000 n +0000096533 00000 n +0000096594 00000 n +0000096658 00000 n +0000096720 00000 n +0000096784 00000 n +0000096847 00000 n +0000102271 00000 n +0000099631 00000 n +0000097084 00000 n +0000099994 00000 n +0000100057 00000 n +0000100121 00000 n +0000100184 00000 n +0000100248 00000 n +0000100311 00000 n +0000100375 00000 n +0000100438 00000 n +0000100502 00000 n +0000100565 00000 n +0000100629 00000 n +0000100692 00000 n +0000100755 00000 n +0000100818 00000 n +0000100881 00000 n +0000100945 00000 n +0000101009 00000 n +0000101073 00000 n +0000101137 00000 n +0000101325 00000 n +0000101388 00000 n +0000101451 00000 n +0000101515 00000 n +0000101578 00000 n +0000101641 00000 n +0000099773 00000 n +0000101829 00000 n +0000101892 00000 n +0000101956 00000 n +0000102020 00000 n +0000102084 00000 n +0000102147 00000 n +0000102209 00000 n +0000204206 00000 n +0000104852 00000 n +0000104157 00000 n +0000102395 00000 n +0000104279 00000 n +0000104342 00000 n +0000104405 00000 n +0000104468 00000 n +0000104532 00000 n +0000104596 00000 n +0000104660 00000 n +0000104724 00000 n +0000104788 00000 n +0000109327 00000 n +0000107248 00000 n +0000104976 00000 n +0000107496 00000 n +0000107559 00000 n +0000107623 00000 n +0000107687 00000 n +0000107874 00000 n +0000107936 00000 n +0000107999 00000 n +0000108063 00000 n +0000108126 00000 n +0000108190 00000 n +0000108378 00000 n +0000108441 00000 n +0000108505 00000 n +0000108569 00000 n +0000108633 00000 n +0000108697 00000 n +0000108761 00000 n +0000108825 00000 n +0000108888 00000 n +0000109077 00000 n +0000109140 00000 n +0000109203 00000 n +0000109265 00000 n +0000110651 00000 n +0000109993 00000 n +0000109438 00000 n +0000110461 00000 n +0000110524 00000 n +0000110588 00000 n +0000110143 00000 n +0000110302 00000 n +0000204174 00000 n +0000116828 00000 n +0000113675 00000 n +0000110762 00000 n +0000114302 00000 n +0000114491 00000 n +0000114554 00000 n +0000114744 00000 n +0000114806 00000 n +0000114870 00000 n +0000114931 00000 n +0000114994 00000 n +0000115058 00000 n +0000115121 00000 n +0000115184 00000 n +0000115247 00000 n +0000115311 00000 n +0000115375 00000 n +0000115438 00000 n +0000115502 00000 n +0000113833 00000 n +0000113991 00000 n +0000115690 00000 n +0000115753 00000 n +0000115816 00000 n +0000115880 00000 n +0000115943 00000 n +0000114147 00000 n +0000116132 00000 n +0000116195 00000 n +0000116259 00000 n +0000116323 00000 n +0000116385 00000 n +0000116448 00000 n +0000116511 00000 n +0000116575 00000 n +0000116639 00000 n +0000116702 00000 n +0000116766 00000 n +0000322898 00000 n +0000204142 00000 n +0000204110 00000 n +0000119278 00000 n +0000118093 00000 n +0000116939 00000 n +0000118394 00000 n +0000118583 00000 n +0000118646 00000 n +0000118709 00000 n +0000118773 00000 n +0000118836 00000 n +0000118899 00000 n +0000118963 00000 n +0000119151 00000 n +0000118235 00000 n +0000119214 00000 n +0000204078 00000 n +0000125859 00000 n +0000122537 00000 n +0000119389 00000 n +0000123832 00000 n +0000124021 00000 n +0000124084 00000 n +0000124148 00000 n +0000124212 00000 n +0000122727 00000 n +0000122882 00000 n +0000124275 00000 n +0000124339 00000 n +0000124402 00000 n +0000124465 00000 n +0000123042 00000 n +0000123197 00000 n +0000123356 00000 n +0000124529 00000 n +0000124593 00000 n +0000124656 00000 n +0000124719 00000 n +0000124782 00000 n +0000123513 00000 n +0000124845 00000 n +0000124909 00000 n +0000124973 00000 n +0000125036 00000 n +0000125099 00000 n +0000125163 00000 n +0000125226 00000 n +0000125289 00000 n +0000125353 00000 n +0000125417 00000 n +0000123673 00000 n +0000125480 00000 n +0000125543 00000 n +0000125607 00000 n +0000125670 00000 n +0000125733 00000 n +0000125796 00000 n +0000204046 00000 n +0000204014 00000 n +0000203982 00000 n +0000126411 00000 n +0000126226 00000 n +0000125983 00000 n +0000126348 00000 n +0000131825 00000 n +0000129307 00000 n +0000126483 00000 n +0000129604 00000 n +0000129793 00000 n +0000129449 00000 n +0000129856 00000 n +0000129920 00000 n +0000129984 00000 n +0000130048 00000 n +0000130111 00000 n +0000130174 00000 n +0000130237 00000 n +0000130301 00000 n +0000130365 00000 n +0000130429 00000 n +0000130492 00000 n +0000130555 00000 n +0000130618 00000 n +0000130682 00000 n +0000130746 00000 n +0000130810 00000 n +0000130874 00000 n +0000130938 00000 n +0000131001 00000 n +0000131064 00000 n +0000131128 00000 n +0000131190 00000 n +0000131254 00000 n +0000131317 00000 n +0000131381 00000 n +0000131445 00000 n +0000131509 00000 n +0000131573 00000 n +0000131637 00000 n +0000131700 00000 n +0000131763 00000 n +0000133940 00000 n +0000133198 00000 n +0000131936 00000 n +0000133498 00000 n +0000133561 00000 n +0000133624 00000 n +0000133687 00000 n +0000133750 00000 n +0000133814 00000 n +0000133877 00000 n +0000133340 00000 n +0000203950 00000 n +0000137095 00000 n +0000135775 00000 n +0000134038 00000 n +0000135897 00000 n +0000136086 00000 n +0000136149 00000 n +0000136213 00000 n +0000136276 00000 n +0000136339 00000 n +0000136402 00000 n +0000136465 00000 n +0000208593 00000 n +0000206590 00000 n +0000208431 00000 n +0000136529 00000 n +0000136592 00000 n +0000136656 00000 n +0000136719 00000 n +0000136781 00000 n +0000136844 00000 n +0000136907 00000 n +0000136971 00000 n +0000137033 00000 n +0000323016 00000 n +0000138903 00000 n +0000138287 00000 n +0000137219 00000 n +0000138588 00000 n +0000138651 00000 n +0000138714 00000 n +0000138777 00000 n +0000138840 00000 n +0000138429 00000 n +0000203918 00000 n +0000143268 00000 n +0000141185 00000 n +0000139040 00000 n +0000141813 00000 n +0000142002 00000 n +0000142065 00000 n +0000142129 00000 n +0000142320 00000 n +0000142382 00000 n +0000141343 00000 n +0000141501 00000 n +0000142573 00000 n +0000142636 00000 n +0000142699 00000 n +0000142763 00000 n +0000142827 00000 n +0000142891 00000 n +0000142954 00000 n +0000143017 00000 n +0000143080 00000 n +0000141656 00000 n +0000143143 00000 n +0000143205 00000 n +0000203886 00000 n +0000145746 00000 n +0000144715 00000 n +0000143379 00000 n +0000145179 00000 n +0000145242 00000 n +0000145305 00000 n +0000145368 00000 n +0000145431 00000 n +0000144865 00000 n +0000145620 00000 n +0000145024 00000 n +0000145683 00000 n +0000203854 00000 n +0000147576 00000 n +0000146631 00000 n +0000145857 00000 n +0000146753 00000 n +0000146943 00000 n +0000147133 00000 n +0000147323 00000 n +0000147513 00000 n +0000148888 00000 n +0000148513 00000 n +0000147700 00000 n +0000148635 00000 n +0000148825 00000 n +0000150238 00000 n +0000149801 00000 n +0000148986 00000 n +0000149923 00000 n +0000150113 00000 n +0000323134 00000 n +0000151476 00000 n +0000151164 00000 n +0000150336 00000 n +0000151286 00000 n +0000151413 00000 n +0000152802 00000 n +0000152427 00000 n +0000151574 00000 n +0000152549 00000 n +0000152739 00000 n +0000154083 00000 n +0000153708 00000 n +0000152900 00000 n +0000153830 00000 n +0000154020 00000 n +0000155331 00000 n +0000154956 00000 n +0000154181 00000 n +0000155078 00000 n +0000155268 00000 n +0000156778 00000 n +0000156404 00000 n +0000155429 00000 n +0000156526 00000 n +0000156716 00000 n +0000158098 00000 n +0000157913 00000 n +0000156876 00000 n +0000158035 00000 n +0000323252 00000 n +0000159548 00000 n +0000158984 00000 n +0000158183 00000 n +0000159106 00000 n +0000159296 00000 n +0000159486 00000 n +0000160819 00000 n +0000160634 00000 n +0000159646 00000 n +0000160756 00000 n +0000161558 00000 n +0000161373 00000 n +0000160904 00000 n +0000161495 00000 n +0000170750 00000 n +0000163959 00000 n +0000161643 00000 n +0000164081 00000 n +0000164398 00000 n +0000164461 00000 n +0000164525 00000 n +0000164588 00000 n +0000164651 00000 n +0000164715 00000 n +0000164779 00000 n +0000164843 00000 n +0000164906 00000 n +0000164970 00000 n +0000165034 00000 n +0000165098 00000 n +0000165161 00000 n +0000165224 00000 n +0000165287 00000 n +0000165350 00000 n +0000165413 00000 n +0000165477 00000 n +0000165541 00000 n +0000165605 00000 n +0000165668 00000 n +0000165732 00000 n +0000165796 00000 n +0000165859 00000 n +0000165922 00000 n +0000165986 00000 n +0000166050 00000 n +0000166114 00000 n +0000166177 00000 n +0000166241 00000 n +0000166305 00000 n +0000166369 00000 n +0000166431 00000 n +0000166495 00000 n +0000166559 00000 n +0000166623 00000 n +0000166686 00000 n +0000166750 00000 n +0000166814 00000 n +0000166878 00000 n +0000166941 00000 n +0000167005 00000 n +0000167069 00000 n +0000167133 00000 n +0000167196 00000 n +0000167260 00000 n +0000167324 00000 n +0000167388 00000 n +0000167451 00000 n +0000167515 00000 n +0000167579 00000 n +0000167643 00000 n +0000167706 00000 n +0000167770 00000 n +0000167834 00000 n +0000167898 00000 n +0000167960 00000 n +0000168024 00000 n +0000168088 00000 n +0000168152 00000 n +0000168215 00000 n +0000168279 00000 n +0000168343 00000 n +0000168534 00000 n +0000168724 00000 n +0000168786 00000 n +0000168849 00000 n +0000168913 00000 n +0000168977 00000 n +0000169041 00000 n +0000169104 00000 n +0000169167 00000 n +0000169230 00000 n +0000169293 00000 n +0000169356 00000 n +0000169420 00000 n +0000169484 00000 n +0000169548 00000 n +0000169611 00000 n +0000169675 00000 n +0000169739 00000 n +0000169803 00000 n +0000169865 00000 n +0000169929 00000 n +0000169993 00000 n +0000170184 00000 n +0000170247 00000 n +0000170310 00000 n +0000170374 00000 n +0000170437 00000 n +0000170501 00000 n +0000170562 00000 n +0000170625 00000 n +0000170687 00000 n +0000176779 00000 n +0000173392 00000 n +0000170861 00000 n +0000173514 00000 n +0000173640 00000 n +0000173703 00000 n +0000173894 00000 n +0000173956 00000 n +0000174021 00000 n +0000174085 00000 n +0000174149 00000 n +0000174214 00000 n +0000174279 00000 n +0000174468 00000 n +0000206235 00000 n +0000204238 00000 n +0000206070 00000 n +0000174532 00000 n +0000174596 00000 n +0000174660 00000 n +0000174724 00000 n +0000174787 00000 n +0000174852 00000 n +0000174917 00000 n +0000174981 00000 n +0000175046 00000 n +0000175111 00000 n +0000175175 00000 n +0000175240 00000 n +0000175305 00000 n +0000175368 00000 n +0000175433 00000 n +0000175498 00000 n +0000175562 00000 n +0000175626 00000 n +0000175690 00000 n +0000175754 00000 n +0000175819 00000 n +0000175884 00000 n +0000175948 00000 n +0000176013 00000 n +0000176205 00000 n +0000176396 00000 n +0000176460 00000 n +0000176525 00000 n +0000176588 00000 n +0000176652 00000 n +0000176715 00000 n +0000182230 00000 n +0000179883 00000 n +0000176917 00000 n +0000180009 00000 n +0000180074 00000 n +0000180204 00000 n +0000180269 00000 n +0000180334 00000 n +0000180400 00000 n +0000180465 00000 n +0000180530 00000 n +0000180596 00000 n +0000180661 00000 n +0000180727 00000 n +0000180793 00000 n +0000180859 00000 n +0000180925 00000 n +0000180991 00000 n +0000181057 00000 n +0000181121 00000 n +0000181187 00000 n +0000181253 00000 n +0000181319 00000 n +0000181384 00000 n +0000181449 00000 n +0000181514 00000 n +0000181579 00000 n +0000181774 00000 n +0000181839 00000 n +0000181905 00000 n +0000181971 00000 n +0000182036 00000 n +0000182101 00000 n +0000182166 00000 n +0000323370 00000 n +0000186180 00000 n +0000184105 00000 n +0000182342 00000 n +0000184231 00000 n +0000184425 00000 n +0000184490 00000 n +0000184685 00000 n +0000184750 00000 n +0000184816 00000 n +0000184882 00000 n +0000185076 00000 n +0000185140 00000 n +0000185206 00000 n +0000185271 00000 n +0000185336 00000 n +0000185401 00000 n +0000185595 00000 n +0000185660 00000 n +0000185726 00000 n +0000185791 00000 n +0000185856 00000 n +0000185920 00000 n +0000185985 00000 n +0000186051 00000 n +0000194253 00000 n +0000189875 00000 n +0000186305 00000 n +0000190001 00000 n +0000190131 00000 n +0000190196 00000 n +0000190261 00000 n +0000190327 00000 n +0000190392 00000 n +0000190457 00000 n +0000190523 00000 n +0000190589 00000 n +0000190654 00000 n +0000190720 00000 n +0000190914 00000 n +0000190979 00000 n +0000191044 00000 n +0000191109 00000 n +0000191175 00000 n +0000191241 00000 n +0000191305 00000 n +0000191371 00000 n +0000191437 00000 n +0000191503 00000 n +0000191569 00000 n +0000191634 00000 n +0000191700 00000 n +0000191766 00000 n +0000191832 00000 n +0000191898 00000 n +0000191963 00000 n +0000192029 00000 n +0000192095 00000 n +0000192160 00000 n +0000192226 00000 n +0000192291 00000 n +0000192357 00000 n +0000192423 00000 n +0000192489 00000 n +0000192555 00000 n +0000192619 00000 n +0000192685 00000 n +0000192751 00000 n +0000192817 00000 n +0000192882 00000 n +0000192948 00000 n +0000193014 00000 n +0000193080 00000 n +0000193145 00000 n +0000193211 00000 n +0000193277 00000 n +0000193343 00000 n +0000193408 00000 n +0000193473 00000 n +0000193538 00000 n +0000193603 00000 n +0000193668 00000 n +0000193734 00000 n +0000193799 00000 n +0000193864 00000 n +0000193929 00000 n +0000193994 00000 n +0000194059 00000 n +0000194124 00000 n +0000194189 00000 n +0000203742 00000 n +0000197578 00000 n +0000194365 00000 n +0000197704 00000 n +0000197769 00000 n +0000197835 00000 n +0000197901 00000 n +0000197967 00000 n +0000198033 00000 n +0000198099 00000 n +0000198165 00000 n +0000198229 00000 n +0000198295 00000 n +0000198361 00000 n +0000198426 00000 n +0000198491 00000 n +0000198557 00000 n +0000198623 00000 n +0000198689 00000 n +0000198755 00000 n +0000198821 00000 n +0000198886 00000 n +0000198952 00000 n +0000199018 00000 n +0000199084 00000 n +0000199150 00000 n +0000199216 00000 n +0000199281 00000 n +0000199347 00000 n +0000199413 00000 n +0000199479 00000 n +0000199545 00000 n +0000199611 00000 n +0000199676 00000 n +0000199742 00000 n +0000199808 00000 n +0000199874 00000 n +0000199940 00000 n +0000200006 00000 n +0000200071 00000 n +0000200137 00000 n +0000200203 00000 n +0000200269 00000 n +0000200334 00000 n +0000200400 00000 n +0000200466 00000 n +0000200532 00000 n +0000200597 00000 n +0000200663 00000 n +0000200729 00000 n +0000200795 00000 n +0000200861 00000 n +0000200927 00000 n +0000200993 00000 n +0000201057 00000 n +0000201123 00000 n +0000201189 00000 n +0000201253 00000 n +0000201318 00000 n +0000201383 00000 n +0000201448 00000 n +0000201513 00000 n +0000201578 00000 n +0000201644 00000 n +0000201709 00000 n +0000201774 00000 n +0000201839 00000 n +0000201904 00000 n +0000201969 00000 n +0000202035 00000 n +0000202101 00000 n +0000202167 00000 n +0000202232 00000 n +0000202297 00000 n +0000202362 00000 n +0000202427 00000 n +0000202492 00000 n +0000202558 00000 n +0000202624 00000 n +0000202689 00000 n +0000202755 00000 n +0000202820 00000 n +0000202885 00000 n +0000202951 00000 n +0000203017 00000 n +0000203083 00000 n +0000203148 00000 n +0000203214 00000 n +0000203280 00000 n +0000203346 00000 n +0000203412 00000 n +0000203478 00000 n +0000203544 00000 n +0000203610 00000 n +0000203676 00000 n +0000206482 00000 n +0000206451 00000 n +0000208837 00000 n +0000208806 00000 n +0000208945 00000 n +0000223266 00000 n +0000243383 00000 n +0000264281 00000 n +0000283454 00000 n +0000309905 00000 n +0000322237 00000 n +0000323477 00000 n +0000323597 00000 n +0000323677 00000 n +0000323750 00000 n +0000329176 00000 n +0000341127 00000 n +0000341168 00000 n +0000341208 00000 n +0000341342 00000 n +trailer +<< +/Size 1280 +/Root 1278 0 R +/Info 1279 0 R +/ID [<13E30E24C2CD20DD25D45112E9A8367B> <13E30E24C2CD20DD25D45112E9A8367B>] +>> +startxref +341606 +%%EOF diff --git a/src/Ophis/CmdLine.py b/src/Ophis/CmdLine.py new file mode 100644 index 0000000..b3e3a54 --- /dev/null +++ b/src/Ophis/CmdLine.py @@ -0,0 +1,17 @@ +"""Command line options data. + + verbose: + 0: Only report errors + 1: Announce each file as it is read, and data count (default) + 2: As above, but also announce each pass. + 3: As above, but print the IR after each pass. + 4: As above, but print the labels after each pass. + + 6510 compatibility and deprecation are handled in Ophis.Main.""" + +# Copyright 2002 Michael C. Martin. +# You may use, modify, and distribute this file under the BSD +# license: See LICENSE.txt for details. + +verbose = 1; + diff --git a/src/Ophis/CorePragmas.py b/src/Ophis/CorePragmas.py new file mode 100644 index 0000000..f4737f5 --- /dev/null +++ b/src/Ophis/CorePragmas.py @@ -0,0 +1,202 @@ +"""Core pragmas + + Provides the core assembler directives. It does not guarantee + compatibility with older versions of P65-Perl.""" + +# Copyright 2002 Michael C. Martin. +# You may use, modify, and distribute this file under the BSD +# license: See LICENSE.txt for details. + +from __future__ import nested_scopes + +import Ophis.IR as IR +import Ophis.Frontend as FE +import Ophis.Errors as Err + +loadedfiles={} +basecharmap = "".join([chr(x) for x in range(256)]) +currentcharmap = basecharmap + +def reset(): + global loadedfiles, currentcharmap, basecharmap + loadedfiles={} + currentcharmap = basecharmap + +def pragmaInclude(ppt, line, result): + "Includes a source file" + filename = line.expect("STRING").value + line.expect("EOL") + if type(filename)==str: result.append(FE.parse_file(ppt, filename)) + +def pragmaRequire(ppt, line, result): + "Includes a source file at most one time" + filename = line.expect("STRING").value + line.expect("EOL") + if type(filename)==str: + global loadedfiles + if filename not in loadedfiles: + loadedfiles[filename]=1 + result.append(FE.parse_file(ppt, filename)) + +def pragmaIncbin(ppt, line, result): + "Includes a binary file" + filename = line.expect("STRING").value + line.expect("EOL") + if type(filename)==str: + f = file(filename, "rb") + bytes = f.read() + f.close() + bytes = [IR.ConstantExpr(ord(x)) for x in bytes] + result.append(IR.Node(ppt, "Byte", *bytes)) + +def pragmaCharmap(ppt, line, result): + "Modify the character map." + global currentcharmap, basecharmap + bytes = readData(line) + if len(bytes) == 0: + currentcharmap = basecharmap + else: + try: + base = bytes[0].data + newsubstr = "".join([chr(x.data) for x in bytes[1:]]) + currentcharmap = currentcharmap[:base] + newsubstr + currentcharmap[base+len(newsubstr):] + if len(currentcharmap) != 256 or base < 0 or base > 255: + Err.log("Charmap replacement out of range") + currentcharmap = currentcharmap[:256] + except ValueError: + Err.log("Illegal character in .charmap directive") + +def pragmaCharmapbin(ppt, line, result): + "Load a new character map from a file" + global currentcharmap + filename = line.expect("STRING").value + line.expect("EOL") + if type(filename)==str: + f = file(filename, "rb") + bytes = f.read() + f.close() + if len(bytes)==256: + currentcharmap = bytes + else: + Err.log("Character map "+filename+" not 256 bytes long") + +def pragmaOrg(ppt, line, result): + "Relocates the PC with no output" + newPC = FE.parse_expr(line) + line.expect("EOL") + result.append(IR.Node(ppt, "SetPC", newPC)) + +def pragmaAdvance(ppt, line, result): + "Outputs filler until reaching the target PC" + newPC = FE.parse_expr(line) + line.expect("EOL") + result.append(IR.Node(ppt, "Advance", newPC)) + +def pragmaCheckpc(ppt, line, result): + "Enforces that the PC has not exceeded a certain point" + target = FE.parse_expr(line) + line.expect("EOL") + result.append(IR.Node(ppt, "CheckPC", target)) + +def pragmaAlias(ppt, line, result): + "Assigns an arbitrary label" + lbl = line.expect("LABEL").value + target = FE.parse_expr(line) + result.append(IR.Node(ppt, "Label", lbl, target)) + +def pragmaSpace(ppt, line, result): + "Reserves space in a data segment for a variable" + lbl = line.expect("LABEL").value + size = line.expect("NUM").value + line.expect("EOL") + result.append(IR.Node(ppt, "Label", lbl, IR.PCExpr())) + result.append(IR.Node(ppt, "SetPC", IR.SequenceExpr([IR.PCExpr(), "+", IR.ConstantExpr(size)]))) + +def pragmaText(ppt, line, result): + "Switches to a text segment" + next = line.expect("LABEL", "EOL") + if next.type == "LABEL": + line.expect("EOL") + segment = next.value + else: + segment = "*text-default*" + result.append(IR.Node(ppt, "TextSegment", segment)) + +def pragmaData(ppt, line, result): + "Switches to a data segment (no output allowed)" + next = line.expect("LABEL", "EOL") + if next.type == "LABEL": + line.expect("EOL") + segment = next.value + else: + segment = "*data-default*" + result.append(IR.Node(ppt, "DataSegment", segment)) + +def readData(line): + "Read raw data from a comma-separated list" + if line.lookahead(0).type == "STRING": + data = [IR.ConstantExpr(ord(x)) for x in line.expect("STRING").value.translate(currentcharmap)] + else: + data = [FE.parse_expr(line)] + next = line.expect(',', 'EOL').type + while next == ',': + if line.lookahead(0).type == "STRING": + data.extend([IR.ConstantExpr(ord(x)) for x in line.expect("STRING").value]) + else: + data.append(FE.parse_expr(line)) + next = line.expect(',', 'EOL').type + return data + +def pragmaByte(ppt, line, result): + "Raw data, a byte at a time" + bytes = readData(line) + result.append(IR.Node(ppt, "Byte", *bytes)) + +def pragmaWord(ppt, line, result): + "Raw data, a word at a time, little-endian" + words = readData(line) + result.append(IR.Node(ppt, "Word", *words)) + +def pragmaDword(ppt, line, result): + "Raw data, a double-word at a time, little-endian" + dwords = readData(line) + result.append(IR.Node(ppt, "Dword", *dwords)) + +def pragmaWordbe(ppt, line, result): + "Raw data, a word at a time, big-endian" + words = readData(line) + result.append(IR.Node(ppt, "WordBE", *words)) + +def pragmaDwordbe(ppt, line, result): + "Raw data, a dword at a time, big-endian" + dwords = readData(line) + result.append(IR.Node(ppt, "DwordBE", *dwords)) + +def pragmaScope(ppt, line, result): + "Create a new lexical scoping block" + line.expect("EOL") + result.append(IR.Node(ppt, "ScopeBegin")) + +def pragmaScend(ppt, line, result): + "End the innermost lexical scoping block" + line.expect("EOL") + result.append(IR.Node(ppt, "ScopeEnd")) + +def pragmaMacro(ppt, line, result): + "Begin a macro definition" + lbl = line.expect("LABEL").value + line.expect("EOL") + result.append(IR.Node(ppt, "MacroBegin", lbl)) + +def pragmaMacend(ppt, line, result): + "End a macro definition" + line.expect("EOL") + result.append(IR.Node(ppt, "MacroEnd")) + +def pragmaInvoke(ppt, line, result): + macro = line.expect("LABEL").value + if line.lookahead(0).type == "EOL": + args = [] + else: + args = readData(line) + result.append(IR.Node(ppt, "MacroInvoke", macro, *args)) diff --git a/src/Ophis/Environment.py b/src/Ophis/Environment.py new file mode 100644 index 0000000..1308b3e --- /dev/null +++ b/src/Ophis/Environment.py @@ -0,0 +1,75 @@ +"""Symbol tables and environments for P65. + + Implements the symbol lookup, through nested environments - + any non-temporary variable is stored at the top level.""" + +# Copyright 2002 Michael C. Martin. +# You may use, modify, and distribute this file under the BSD +# license: See LICENSE.txt for details. + +from __future__ import nested_scopes +import Ophis.Errors as Err + +class Environment: + """Environment class. + Controls the various scopes and global abstract execution variables.""" + def __init__(self): + self.dicts = [{}] + self.stack = [0] + self.pc = 0 + self.segmentdict = {} + self.segment = "*text-default*" + self.scopecount = 0 + def __contains__(self, item): + if item[0] == '_': + for dict in [self.dicts[i] for i in self.stack]: + if item in dict: return 1 + return 0 + return item in self.dicts[0] + def __getitem__(self, item): + if item[0] == '_': + for dict in [self.dicts[i] for i in self.stack]: + if item in dict: return dict[item] + else: + if item in self.dicts[0]: return self.dicts[0][item] + Err.log("Unknown label '%s'" % item) + return 0 + def __setitem__(self, item, value): + if item[0] == '_': + self.dicts[self.stack[0]][item] = value + else: + self.dicts[0][item] = value + def __str__(self): + return str(self.dicts) + def getPC(self): + return self.pc + def setPC(self, value): + self.pc = value + def incPC(self, amount): + self.pc += amount + def getsegment(self): + return self.segment + def setsegment(self, segment): + self.segmentdict[self.segment] = self.pc + self.segment = segment + self.pc = self.segmentdict.get(segment, 0) + def reset(self): + "Clears out program counter, segment, and scoping information" + self.pc = 0 + self.segmentdict = {} + self.segment = "*text-default*" + self.scopecount = 0 + if len(self.stack) > 1: + Err.log("Unmatched .scope") + self.stack = [0] + def newscope(self): + "Enters a new scope for temporary labels." + self.scopecount += 1 + self.stack.insert(0, self.scopecount) + if len(self.dicts) <= self.scopecount: self.dicts.append({}) + def endscope(self): + "Leaves a scope." + if len(self.stack) == 1: + Err.log("Unmatched .scend") + self.stack.pop(0) + diff --git a/src/Ophis/Errors.py b/src/Ophis/Errors.py new file mode 100644 index 0000000..024d0f9 --- /dev/null +++ b/src/Ophis/Errors.py @@ -0,0 +1,24 @@ +"""Error logging + + Keeps track of the number of errors inflicted so far, and + where in the assembly the errors are occurring.""" + +# Copyright 2002 Michael C. Martin. +# You may use, modify, and distribute this file under the BSD +# license: See LICENSE.txt for details. + +count = 0 +currentpoint = "" + +def log(err): + """Reports an error at the current program point, and increases +the global error count.""" + global count + count = count+1 + print currentpoint+": "+err + +def report(): + "Print out the number of errors." + if count == 0: print "No errors" + elif count == 1: print "1 error" + else: print str(count)+" errors" \ No newline at end of file diff --git a/src/Ophis/Frontend.py b/src/Ophis/Frontend.py new file mode 100644 index 0000000..48e319b --- /dev/null +++ b/src/Ophis/Frontend.py @@ -0,0 +1,333 @@ +"""Lexer and Parser + + Constructs a list of IR nodes from a list of input strings.""" + +from __future__ import nested_scopes +import Ophis.Errors as Err +import Ophis.Opcodes as Ops +import Ophis.IR as IR +import Ophis.CmdLine as Cmd +import os + +# Copyright 2002 Michael C. Martin. +# You may use, modify, and distribute this file under the BSD +# license: See LICENSE.txt for details. + + +class Lexeme: + "Class for lexer tokens. Used by lexer and parser." + def __init__(self, type="UNKNOWN", value=None): + self.type = type.upper() + self.value = value + def __str__(self): + if self.value == None: + return self.type + else: + return self.type+":"+str(self.value) + def __repr__(self): + return "Lexeme("+`self.type`+", "+`self.value`+")" + def matches(self, other): + "1 if Lexemes a and b have the same type." + return self.type == other.type + +bases = {"$":("hexadecimal", 16), + "%":("binary", 2), + "0":("octal", 8)} + +punctuation = "#,`<>():.+-*/&|^[]" + +def lex(point, line): + """Turns a line of source into a sequence of lexemes.""" + Err.currentpoint = point + result = [] + def is_opcode(op): + "Tests whether a string is an opcode or an identifier" + return op in Ops.opcodes + def add_token(token): + "Converts a substring into a single lexeme" + if token == "": + return + if token == "0": + result.append(Lexeme("NUM", 0)) + return + firstchar = token[0] + rest = token[1:] + if firstchar == '"': + result.append(Lexeme("STRING", rest)) + return + elif firstchar in bases: + try: + result.append(Lexeme("NUM", long(rest, bases[firstchar][1]))) + return + except ValueError: + Err.log('Invalid '+bases[firstchar][0]+' constant: '+rest) + result.append(Lexeme("NUM", 0)) + return + elif firstchar.isdigit(): + try: + result.append(Lexeme("NUM", long(token))) + except ValueError: + Err.log('Identifiers may not begin with a number') + result.append(Lexeme("LABEL", "ERROR")) + return + elif firstchar == "'": + if len(rest) == 1: + result.append(Lexeme("NUM", ord(rest))) + else: + Err.log("Invalid character constant '"+rest+"'") + result.append(Lexeme("NUM", 0)) + return + elif firstchar in punctuation: + if rest != "": + Err.log("Internal lexer error! '"+token+"' can't happen!") + result.append(Lexeme(firstchar)) + return + else: # Label, opcode, or index register + id = token.lower() + if is_opcode(id): + result.append(Lexeme("OPCODE", id)) + elif id == "x": + result.append(Lexeme("X")) + elif id == "y": + result.append(Lexeme("Y")) + else: + result.append(Lexeme("LABEL", id)) + return + # should never reach here + Err.log("Internal lexer error: add_token fall-through") + def add_EOL(): + "Adds an end-of-line lexeme" + result.append(Lexeme("EOL")) + # Actual routine begins here + value = "" + quotemode = 0 + backslashmode = 0 + for c in line.strip(): + if backslashmode: + backslashmode = 0 + value = value + c + elif c == "\\": + backslashmode = 1 + elif quotemode: + if c == '"': + quotemode = 0 + else: + value = value + c + elif c == ';': + add_token(value) + value = "" + break + elif c.isspace(): + add_token(value) + value = "" + elif c in punctuation: + add_token(value) + add_token(c) + value = "" + elif c == '"': + add_token(value) + value = '"' + quotemode = 1 + else: + value = value + c + if backslashmode: + Err.log("Backslashed newline") + if quotemode: + Err.log("Unterminated string constant") + add_token(value) + add_EOL() + return result + +class ParseLine: + "Maintains the parse state of a line of code. Enables arbitrary lookahead." + def __init__(self, lexemes): + self.lexemes = lexemes + self.location = 0 + def lookahead(self, i): + """Returns the token i units ahead in the parse. + lookahead(0) returns the next token; trying to read off the end of + the sequence returns the last token in the sequence (usually EOL).""" + target = self.location+i + if target >= len(self.lexemes): target = -1 + return self.lexemes[target] + def pop(self): + "Returns and removes the next element in the line." + old = self.location + if self.location < len(self.lexemes)-1: self.location += 1 + return self.lexemes[old] + def expect(self, *tokens): + """Reads a token from the ParseLine line and returns it if it's of a type + in the sequence tokens. Otherwise, it logs an error.""" + token = self.pop() + if token.type not in tokens: + Err.log('Expected: "'+'", "'.join(tokens)+'"') + return token + +pragma_modules = [] + +def parse_expr(line): + "Parses an Ophis arithmetic expression." + def atom(): + "Parses lowest-priority expression components." + next = line.lookahead(0).type + if next == "NUM": + return IR.ConstantExpr(line.expect("NUM").value) + elif next == "LABEL": + return IR.LabelExpr(line.expect("LABEL").value) + elif next == "^": + line.expect("^") + return IR.PCExpr() + elif next == "[": + line.expect("[") + result = parse_expr(line) + line.expect("]") + return result + elif next == "+": + offset = 0 + while next == "+": + offset += 1 + line.expect("+") + next = line.lookahead(0).type + return IR.LabelExpr("*"+str(templabelcount+offset)) + elif next == "-": + offset = 1 + while next == "-": + offset -= 1 + line.expect("-") + next = line.lookahead(0).type + return IR.LabelExpr("*"+str(templabelcount+offset)) + elif next == ">": + line.expect(">") + return IR.HighByteExpr(atom()) + elif next == "<": + line.expect("<") + return IR.LowByteExpr(atom()) + else: + Err.log('Expected: expression') + def precedence_read(constructor, reader, separators): + """Handles precedence. The reader argument is a function that returns + expressions that bind more tightly than these; separators is a list + of strings naming the operators at this precedence level. The + constructor argument is a class, indicating what node type holds + objects of this precedence level. + + Returns a list of Expr objects with separator strings between them.""" + result = [reader()] # first object + nextop = line.lookahead(0).type + while (nextop in separators): + line.expect(nextop) + result.append(nextop) + result.append(reader()) + nextop = line.lookahead(0).type + if len(result) == 1: return result[0] + return constructor(result) + def term(): + "Parses * and /" + return precedence_read(IR.SequenceExpr, atom, ["*", "/"]) + def arith(): + "Parses + and -" + return precedence_read(IR.SequenceExpr, term, ["+", "-"]) + def bits(): + "Parses &, |, and ^" + return precedence_read(IR.SequenceExpr, arith, ["&", "|", "^"]) + return bits() + +def parse_line(ppt, lexemelist): + "Turn a line of source into an IR Node." + Err.currentpoint = ppt + result = [] + line = ParseLine(lexemelist) + def aux(): + "Accumulates all IR nodes defined by this line." + if line.lookahead(0).type == "EOL": + pass + elif line.lookahead(1).type == ":": + newlabel=line.expect("LABEL").value + line.expect(":") + result.append(IR.Node(ppt, "Label", newlabel, IR.PCExpr())) + aux() + elif line.lookahead(0).type == "*": + global templabelcount + templabelcount = templabelcount + 1 + result.append(IR.Node(ppt, "Label", "*"+str(templabelcount), IR.PCExpr())) + line.expect("*") + aux() + elif line.lookahead(0).type == "." or line.lookahead(0).type == "`": + which = line.expect(".", "`").type + if (which == "."): pragma = line.expect("LABEL").value + else: pragma = "invoke" + pragmaFunction = "pragma"+pragma.title() + for mod in pragma_modules: + if hasattr(mod, pragmaFunction): + getattr(mod, pragmaFunction)(ppt, line, result) + break + else: + Err.log("Unknown pragma "+pragma) + + else: # Instruction + opcode = line.expect("OPCODE").value + if line.lookahead(0).type == "#": + mode = "Immediate" + line.expect("#") + arg = parse_expr(line) + line.expect("EOL") + elif line.lookahead(0).type == "(": + line.expect("(") + arg = parse_expr(line) + if line.lookahead(0).type == ",": + mode = "PointerX" + line.expect(",") + line.expect("X") + line.expect(")") + line.expect("EOL") + else: + line.expect(")") + tok = line.expect(",", "EOL").type + if tok == "EOL": + mode = "Pointer" + else: + mode = "PointerY" + line.expect("Y") + line.expect("EOL") + elif line.lookahead(0).type == "EOL": + mode = "Implied" + arg = None + else: + arg = parse_expr(line) + tok = line.expect("EOL", ",").type + if tok == ",": + tok = line.expect("X", "Y").type + if tok == "X": mode = "MemoryX" + else: mode = "MemoryY" + line.expect("EOL") + else: mode = "Memory" + result.append(IR.Node(ppt, mode, opcode, arg)) + aux() + result = [node for node in result if node is not IR.NullNode] + if len(result) == 0: return IR.NullNode + if len(result) == 1: return result[0] + return IR.SequenceNode(ppt, result) + +def parse_file(ppt, filename): + "Loads a .P65 source file, and returns an IR list." + Err.currentpoint = ppt + if Cmd.verbose > 0: print "Loading "+filename + try: + f = file(filename) + linelist = f.readlines() + f.close() + pptlist = ["%s:%d" % (filename, i+1) for i in range(len(linelist))] + lexlist = map(lex, pptlist, linelist) + IRlist = map(parse_line, pptlist, lexlist) + IRlist = [node for node in IRlist if node is not IR.NullNode] + return IR.SequenceNode(ppt, IRlist) + except IOError: + Err.log ("Could not read "+filename) + return IR.NullNode + +def parse(filename): + "Top level parsing routine, taking a source file name and returning an IR list." + global templabelcount + templabelcount = 0 + return parse_file("", filename) + diff --git a/src/Ophis/IR.py b/src/Ophis/IR.py new file mode 100644 index 0000000..a0164d1 --- /dev/null +++ b/src/Ophis/IR.py @@ -0,0 +1,161 @@ +"""P65 Intermediate Representation + + Classes for representing the Intermediate nodes upon which the + assembler passes operate.""" + +# Copyright 2002 Michael C. Martin. +# You may use, modify, and distribute this file under the BSD +# license: See LICENSE.txt for details. + +from __future__ import nested_scopes +import Ophis.Errors as Err + +class Node: + """The default IR Node + Instances of Node always have the three fields ppt(Program Point), + nodetype(a string), and data (a list).""" + def __init__(self, ppt, nodetype, *data): + self.ppt = ppt + self.nodetype = nodetype + self.data = list(data) + def accept(self, asmpass, env=None): + """Implements the Visitor pattern for an assembler pass. + Calls the routine 'asmpass.visitTYPE(self, env)' where + TYPE is the value of self.nodetype.""" + Err.currentpoint = self.ppt + routine = getattr(asmpass, "visit"+self.nodetype, asmpass.visitUnknown) + routine(self, env) + def __str__(self): + if self.nodetype != "SEQUENCE": + return str(self.ppt)+": "+self.nodetype+" - "+" ".join(map(str, self.data)) + else: + return "\n".join(map(str, self.data)) + def __repr__(self): + args = [self.ppt, self.nodetype] + self.data + return "Node(" + ", ".join(map(repr, args)) + ")" + +NullNode = Node("", "None") + +def SequenceNode(ppt, nodelist): + return Node(ppt, "SEQUENCE", *nodelist) + +class Expr: + """Base class for P65 expressions + All expressions have a field called "data" and a boolean field + called "hardcoded". An expression is hardcoded if it has no + symbolic values in it.""" + def __init__(self, data): + self.data = data + self.hardcoded = 0 + def __str__(self): + return "" + def valid(self, env=None, PCvalid=0): + """Returns true if the the expression can be successfully + evaluated in the specified environment.""" + return 0 + def value(self, env=None): + "Evaluates this expression in the given environment." + return None + +class ConstantExpr(Expr): + "Represents a numeric constant" + def __init__(self, data): + self.data = data + self.hardcoded = 1 + def __str__(self): + return str(self.data) + def valid(self, env=None, PCvalid=0): + return 1 + def value(self, env=None): + return self.data + +class LabelExpr(Expr): + "Represents a symbolic constant" + def __init__(self, data): + self.data = data + self.hardcoded = 0 + def __str__(self): + return self.data + def valid(self, env=None, PCvalid=0): + return (env is not None) and self.data in env + def value(self, env=None): + return env[self.data] + +class PCExpr(Expr): + "Represents the current program counter: ^" + def __init__(self): + self.hardcoded = 0 + def __str__(self): + return "^" + def valid(self, env=None, PCvalid=0): + return env is not None and PCvalid + def value(self, env=None): + return env.getPC() + +class HighByteExpr(Expr): + "Represents the expression >{data}" + def __init__(self, data): + self.data = data + self.hardcoded = data.hardcoded + def __str__(self): + return ">"+str(self.data) + def valid(self, env=None, PCvalid=0): + return self.data.valid(env, PCvalid) + def value(self, env=None): + val = self.data.value(env) + return (val >> 8) & 0xff + +class LowByteExpr(Expr): + "Represents the expression <{data}" + def __init__(self, data): + self.data = data + self.hardcoded = data.hardcoded + def __str__(self): + return "<"+str(self.data) + def valid(self, env=None, PCvalid=0): + return self.data.valid(env, PCvalid) + def value(self, env=None): + val = self.data.value(env) + return val & 0xff + +class SequenceExpr(Expr): + """Represents an interleaving of operands (of type Expr) and + operators (of type String). Subclasses must provide a routine + operate(self, firstarg, op, secondarg) that evaluates the + operator.""" + def __init__(self, data): + """Constructor for Sequence Expressions. Results will be + screwy if the data inpot isn't a list with types + [Expr, str, Expr, str, Expr, str, ... Expr, str, Expr].""" + self.data = data + self.operands = [x for x in data if isinstance(x, Expr)] + self.operators = [x for x in data if type(x)==str] + for i in self.operands: + if not i.hardcoded: + self.hardcoded = 0 + break + else: + self.hardcoded = 1 + def __str__(self): + return "["+" ".join(map(str, self.data))+"]" + def valid(self, env=None, PCvalid=0): + for i in self.operands: + if not i.valid(env, PCvalid): + return 0 + return 1 + def value(self, env=None): + subs = map((lambda x: x.value(env)), self.operands) + result = subs[0] + index = 1 + for op in self.operators: + result = self.operate(result, op, subs[index]) + index += 1 + return result + def operate(self, start, op, other): + if op=="*": return start * other + if op=="/": return start // other + if op=="+": return start + other + if op=="-": return start - other + if op=="&": return start & other + if op=="|": return start | other + if op=="^": return start ^ other diff --git a/src/Ophis/Macro.py b/src/Ophis/Macro.py new file mode 100644 index 0000000..384f47c --- /dev/null +++ b/src/Ophis/Macro.py @@ -0,0 +1,62 @@ +"""Macro support for P65. + + P65 Macros are cached SequenceNodes with arguments + set via .alias commands and prevented from escaping + with .scope and .scend commands.""" + +import sys + +import Ophis.IR as IR +import Ophis.CmdLine as Cmd +import Ophis.Errors as Err + +macros = {} +currentname = None +currentbody = None + +def newMacro(name): + "Start creating a new macro with the specified name." + global currentname + global currentbody + global macros + if currentname is not None: + Err.log("Internal error! Nested macro attempt!") + else: + if name in macros: + Err.log("Duplicate macro definition '%s'" % name) + currentname = name + currentbody = [] + +def registerNode(node): + global currentbody + currentbody.append(IR.Node(node.ppt, node.nodetype, *node.data)) + +def endMacro(): + global currentname + global currentbody + global macros + if currentname is None: + Err.log("Internal error! Ended a non-existent macro!") + else: + macros[currentname] = currentbody + currentname = None + currentbody = None + +def expandMacro(ppt, name, arglist): + global macros + if name not in macros: + Err.log("Undefined macro '%s'" % name) + return IR.NullNode + argexprs = [IR.Node(ppt, "Label", "_*%d" % i, arg) for (i, arg) in zip(xrange(1, sys.maxint), arglist)] + bindexprs = [IR.Node(ppt, "Label", "_%d" % i, IR.LabelExpr("_*%d" % i)) for i in range(1, len(arglist)+1)] + body = [IR.Node("%s->%s" % (ppt, node.ppt), node.nodetype, *node.data) for node in macros[name]] + invocation = [IR.Node(ppt, "ScopeBegin")] + argexprs + [IR.Node(ppt, "ScopeBegin")] + bindexprs + body + [IR.Node(ppt, "ScopeEnd"), IR.Node(ppt, "ScopeEnd")] + return IR.SequenceNode(ppt, invocation) + +def dump(): + global macros + for mac in macros: + body = macros[mac] + print "Macro: "+mac + for node in body: print node + print "" diff --git a/src/Ophis/Main.py b/src/Ophis/Main.py new file mode 100644 index 0000000..281c4a8 --- /dev/null +++ b/src/Ophis/Main.py @@ -0,0 +1,124 @@ +"""Main controller routines for the P65 assembler. + + When invoked as main, interprets its command line and goes from there. + Otherwise, use run_all to interpret a file set.""" + +# Copyright 2002 Michael C. Martin. +# You may use, modify, and distribute this file under the BSD +# license: See LICENSE.txt for details. + +from __future__ import nested_scopes +import sys +import Ophis.Frontend +import Ophis.IR +import Ophis.CorePragmas +import Ophis.OldPragmas +import Ophis.Passes +import Ophis.Errors as Err +import Ophis.Environment +import Ophis.CmdLine +import Ophis.Opcodes + + +def usage(): + "Prints a usage message and quits." + print "Usage:" + print "\tOphis [options] infile outfile" + print "" + print "Options:" + print "\t-6510 Allow 6510 undocumented opcodes" + print "\t-65c02 Enable 65c02 extensions" + print "\t-d Allow deprecated pragmas" + print "\t-v n Set verbosity to n (0-4, 1=default)" + sys.exit(1) + +def run_all(infile, outfile): + "Transforms the source infile to a binary outfile." + Err.count = 0 + z = Ophis.Frontend.parse(infile) + env = Ophis.Environment.Environment() + + m = Ophis.Passes.ExpandMacros() + i = Ophis.Passes.InitLabels() + l_basic = Ophis.Passes.UpdateLabels() + l = Ophis.Passes.FixPoint("label update", [l_basic], lambda: l_basic.changed == 0) + c = Ophis.Passes.Collapse() + a = Ophis.Passes.Assembler() + + passes = [] + passes.append(Ophis.Passes.DefineMacros()) + passes.append(Ophis.Passes.FixPoint("macro expansion", [m], lambda: m.changed == 0)) + passes.append(Ophis.Passes.FixPoint("label initialization", [i], lambda: i.changed == 0)) + passes.extend([Ophis.Passes.CircularityCheck(), Ophis.Passes.CheckExprs(), Ophis.Passes.EasyModes()]) + passes.append(Ophis.Passes.FixPoint("instruction selection", [l, c], lambda: c.collapsed == 0)) + passes.extend([Ophis.Passes.NormalizeModes(), Ophis.Passes.UpdateLabels(), a]) + + for p in passes: p.go(z, env) + + if Err.count == 0: + try: + output = file(outfile, 'wb') + output.write("".join(map(chr, a.output))) + except IOError: + print "Could not write to "+outfile + else: + Err.report() + +def run_ophis(): + infile = None + outfile = None + + p65_compatibility_mode = 0 + chip_extension = None + + reading_arg = 0 + + for x in sys.argv[1:]: + if reading_arg: + try: + Ophis.CmdLine.verbose = int(x) + reading_arg = 0 + except ValueError: + print "FATAL: Non-integer passed as argument to -v" + usage() + elif x[0] == '-': + if x == '-v': + reading_arg = 1 + elif x == '-6510': + chip_extension = Ophis.Opcodes.undocops + elif x == '-65c02': + chip_extension = Ophis.Opcodes.c02extensions + elif x == '-d': + p65_compatibility_mode = 1 + else: + print "FATAL: Unknown option "+x + usage() + elif infile == None: + infile = x + elif outfile == None: + outfile = x + else: + print "FATAL: Too many files specified" + usage() + + if infile is None: + print "FATAL: No files specified" + usage() + + if outfile is None: + print "FATAL: No output file specified" + usage() + + Ophis.Frontend.pragma_modules.append(Ophis.CorePragmas) + + if p65_compatibility_mode: + Ophis.Frontend.pragma_modules.append(Ophis.OldPragmas) + + if chip_extension is not None: + Ophis.Opcodes.opcodes.update(chip_extension) + + Ophis.CorePragmas.reset() + run_all(infile, outfile) + +if __name__ == '__main__': + run_ophis() diff --git a/src/Ophis/OldPragmas.py b/src/Ophis/OldPragmas.py new file mode 100644 index 0000000..9f110db --- /dev/null +++ b/src/Ophis/OldPragmas.py @@ -0,0 +1,28 @@ +"""P65-Perl compatibility pragmas + + Additional assembler directives to permit assembly of + old P65-Perl sources. This is not, in itself, sufficient, + as the precedence of < and > vs. + and - has changed + between P65-Perl and P65-Ophis. + + Supported pragmas are: .ascii (byte), .address (word), + .segment (text), .code (text), and .link.""" + +# Copyright 2002 Michael C. Martin. +# You may use, modify, and distribute this file under the BSD +# license: See LICENSE.txt for details. + +import Ophis.CorePragmas as core + +pragmaAscii = core.pragmaByte +pragmaAddress = core.pragmaWord +pragmaSegment = core.pragmaText +pragmaCode = core.pragmaText + +def pragmaLink(ppt, line, result): + "Load a file in a precise memory location." + filename = line.expect("STRING").value + newPC = FE.parse_expr(line) + line.expect("EOL") + result.append(IR.Node(ppt, "SetPC", newPC)) + if type(filename)==str: result.append(FE.parse_file(ppt, filename)) diff --git a/src/Ophis/Opcodes.py b/src/Ophis/Opcodes.py new file mode 100644 index 0000000..fd3bbfc --- /dev/null +++ b/src/Ophis/Opcodes.py @@ -0,0 +1,168 @@ +"""Opcodes file. + + Tables for the assembly of 6502-family instructions, mapping + opcodes and addressing modes to binary instructions.""" + +# Copyright 2002 Michael C. Martin. +# You may use, modify, and distribute this file under the BSD +# license: See LICENSE.txt for details. + +# Names of addressing modes +modes = ["Implied", # 0 + "Immediate", # 1 + "Zero Page", # 2 + "Zero Page, X", # 3 + "Zero Page, Y", # 4 + "Absolute", # 5 + "Absolute, X", # 6 + "Absolute, Y", # 7 + "(Absolute)", # 8 + "(Absolute, X)", # 9 + "(Absolute), Y", # 10 + "(Zero Page)", # 11 + "(Zero Page, X)", # 12 + "(Zero Page), Y", # 13 + "Relative"] # 14 + +# Lengths of the argument +lengths = [0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1] + +opcodes = { + 'adc': [None, 0x69, 0x65, 0x75, None, 0x6D, 0x7D, 0x79, None, None, None, None, 0x61, 0x71, None], + 'and': [None, 0x29, 0x25, 0x35, None, 0x2D, 0x3D, 0x39, None, None, None, None, 0x21, 0x31, None], + 'asl': [0x0A, None, 0x06, 0x16, None, 0x0E, 0x1E, None, None, None, None, None, None, None, None], + 'bcc': [None, None, None, None, None, None, None, None, None, None, None, None, None, None, 0x90], + 'bcs': [None, None, None, None, None, None, None, None, None, None, None, None, None, None, 0xB0], + 'beq': [None, None, None, None, None, None, None, None, None, None, None, None, None, None, 0xF0], + 'bit': [None, None, 0x24, None, None, 0x2C, None, None, None, None, None, None, None, None, None], + 'bmi': [None, None, None, None, None, None, None, None, None, None, None, None, None, None, 0x30], + 'bne': [None, None, None, None, None, None, None, None, None, None, None, None, None, None, 0xD0], + 'bpl': [None, None, None, None, None, None, None, None, None, None, None, None, None, None, 0x10], + 'brk': [0x00, None, None, None, None, None, None, None, None, None, None, None, None, None, None], + 'bvc': [None, None, None, None, None, None, None, None, None, None, None, None, None, None, 0x50], + 'bvs': [None, None, None, None, None, None, None, None, None, None, None, None, None, None, 0x70], + 'clc': [0x18, None, None, None, None, None, None, None, None, None, None, None, None, None, None], + 'cld': [0xD8, None, None, None, None, None, None, None, None, None, None, None, None, None, None], + 'cli': [0x58, None, None, None, None, None, None, None, None, None, None, None, None, None, None], + 'clv': [0xB8, None, None, None, None, None, None, None, None, None, None, None, None, None, None], + 'cmp': [None, 0xC9, 0xC5, 0xD5, None, 0xCD, 0xDD, 0xD9, None, None, None, None, 0xC1, 0xD1, None], + 'cpx': [None, 0xE0, 0xE4, None, None, 0xEC, None, None, None, None, None, None, None, None, None], + 'cpy': [None, 0xC0, 0xC4, None, None, 0xCC, None, None, None, None, None, None, None, None, None], + 'dec': [None, None, 0xC6, 0xD6, None, 0xCE, 0xDE, None, None, None, None, None, None, None, None], + 'dex': [0xCA, None, None, None, None, None, None, None, None, None, None, None, None, None, None], + 'dey': [0x88, None, None, None, None, None, None, None, None, None, None, None, None, None, None], + 'eor': [None, 0x49, 0x45, 0x55, None, 0x4D, 0x5D, 0x59, None, None, None, None, 0x41, 0x51, None], + 'inc': [None, None, 0xE6, 0xF6, None, 0xEE, 0xFE, None, None, None, None, None, None, None, None], + 'inx': [0xE8, None, None, None, None, None, None, None, None, None, None, None, None, None, None], + 'iny': [0xC8, None, None, None, None, None, None, None, None, None, None, None, None, None, None], + 'jmp': [None, None, None, None, None, 0x4C, None, None, 0x6C, None, None, None, None, None, None], + 'jsr': [None, None, None, None, None, 0x20, None, None, None, None, None, None, None, None, None], + 'lda': [None, 0xA9, 0xA5, 0xB5, None, 0xAD, 0xBD, 0xB9, None, None, None, None, 0xA1, 0xB1, None], + 'ldx': [None, 0xA2, 0xA6, None, 0xB6, 0xAE, None, 0xBE, None, None, None, None, None, None, None], + 'ldy': [None, 0xA0, 0xA4, 0xB4, None, 0xAC, 0xBC, None, None, None, None, None, None, None, None], + 'lsr': [0x4A, None, 0x46, 0x56, None, 0x4E, 0x5E, None, None, None, None, None, None, None, None], + 'nop': [0xEA, None, None, None, None, None, None, None, None, None, None, None, None, None, None], + 'ora': [None, 0x09, 0x05, 0x15, None, 0x0D, 0x1D, 0x19, None, None, None, None, 0x01, 0x11, None], + 'pha': [0x48, None, None, None, None, None, None, None, None, None, None, None, None, None, None], + 'php': [0x08, None, None, None, None, None, None, None, None, None, None, None, None, None, None], + 'pla': [0x68, None, None, None, None, None, None, None, None, None, None, None, None, None, None], + 'plp': [0x28, None, None, None, None, None, None, None, None, None, None, None, None, None, None], + 'rol': [0x2A, None, 0x26, 0x36, None, 0x2E, 0x3E, None, None, None, None, None, None, None, None], + 'ror': [0x6A, None, 0x66, 0x76, None, 0x6E, 0x7E, None, None, None, None, None, None, None, None], + 'rti': [0x40, None, None, None, None, None, None, None, None, None, None, None, None, None, None], + 'rts': [0x60, None, None, None, None, None, None, None, None, None, None, None, None, None, None], + 'sbc': [None, 0xE9, 0xE5, 0xF5, None, 0xED, 0xFD, 0xF9, None, None, None, None, 0xE1, 0xF1, None], + 'sec': [0x38, None, None, None, None, None, None, None, None, None, None, None, None, None, None], + 'sed': [0xF8, None, None, None, None, None, None, None, None, None, None, None, None, None, None], + 'sei': [0x78, None, None, None, None, None, None, None, None, None, None, None, None, None, None], + 'sta': [None, None, 0x85, 0x95, None, 0x8D, 0x9D, 0x99, None, None, None, None, 0x81, 0x91, None], + 'stx': [None, None, 0x86, None, 0x96, 0x8E, None, None, None, None, None, None, None, None, None], + 'sty': [None, None, 0x84, 0x94, None, 0x8C, None, None, None, None, None, None, None, None, None], + 'tax': [0xAA, None, None, None, None, None, None, None, None, None, None, None, None, None, None], + 'tay': [0xA8, None, None, None, None, None, None, None, None, None, None, None, None, None, None], + 'tsx': [0xBA, None, None, None, None, None, None, None, None, None, None, None, None, None, None], + 'txa': [0x8A, None, None, None, None, None, None, None, None, None, None, None, None, None, None], + 'txs': [0x9A, None, None, None, None, None, None, None, None, None, None, None, None, None, None], + 'tya': [0x98, None, None, None, None, None, None, None, None, None, None, None, None, None, None], + } + +undocops = { + 'anc': [None, 0x0B, None, None, None, None, None, None, None, None, None, None, None, None, None], + 'ane': [None, 0x8B, None, None, None, None, None, None, None, None, None, None, None, None, None], + 'arr': [None, 0x6B, None, None, None, None, None, None, None, None, None, None, None, None, None], + 'asr': [None, 0x4B, None, None, None, None, None, None, None, None, None, None, None, None, None], + 'dcp': [None, None, 0xC7, 0xD7, None, 0xCF, 0xDF, 0xDB, None, None, None, None, 0xC3, 0xD3, None], + 'isb': [None, None, 0xE7, 0xF7, None, 0xEF, 0xFF, 0xFB, None, None, None, None, 0xE3, 0xF3, None], + 'las': [None, None, None, None, None, None, None, 0xBB, None, None, None, None, None, None, None], + 'lax': [None, None, 0xA7, None, 0xB7, 0xAF, None, 0xBF, None, None, None, None, 0xA3, 0xB3, None], + 'lxa': [None, 0xAB, None, None, None, None, None, None, None, None, None, None, None, None, None], + 'rla': [None, None, 0x27, 0x37, None, 0x2F, 0x3F, 0x3B, None, None, None, None, 0x23, 0x33, None], + 'rra': [None, None, 0x67, 0x77, None, 0x6F, 0x7F, 0x7B, None, None, None, None, 0x63, 0x73, None], + 'sax': [None, None, 0x87, None, 0x97, 0x8F, None, None, None, None, None, None, 0x83, None, None], + 'sbx': [None, 0xCB, None, None, None, None, None, None, None, None, None, None, None, None, None], + 'sha': [None, None, None, None, None, None, None, 0x9F, None, None, None, None, None, 0x93, None], + 'shs': [None, None, None, None, None, None, None, 0x9B, None, None, None, None, None, None, None], + 'shx': [None, None, None, None, None, None, None, 0x9E, None, None, None, None, None, None, None], + 'slo': [None, None, 0x07, 0x17, None, 0x0F, 0x1F, 0x1B, None, None, None, None, 0x03, 0x13, None], + 'sre': [None, None, 0x47, 0x57, None, 0x4F, 0x5F, 0x5B, None, None, None, None, 0x43, 0x53, None], + } + +c02extensions = { + 'adc': [None, 0x69, 0x65, 0x75, None, 0x6D, 0x7D, 0x79, None, None, None, 0x72, 0x61, 0x71, None], + 'and': [None, 0x29, 0x25, 0x35, None, 0x2D, 0x3D, 0x39, None, None, None, 0x32, 0x21, 0x31, None], + 'bbr0': [None, None, None, None, None, None, None, None, None, None, None, None, None, None, 0x0F], + 'bbr1': [None, None, None, None, None, None, None, None, None, None, None, None, None, None, 0x1F], + 'bbr2': [None, None, None, None, None, None, None, None, None, None, None, None, None, None, 0x2F], + 'bbr3': [None, None, None, None, None, None, None, None, None, None, None, None, None, None, 0x3F], + 'bbr4': [None, None, None, None, None, None, None, None, None, None, None, None, None, None, 0x4F], + 'bbr5': [None, None, None, None, None, None, None, None, None, None, None, None, None, None, 0x5F], + 'bbr6': [None, None, None, None, None, None, None, None, None, None, None, None, None, None, 0x6F], + 'bbr7': [None, None, None, None, None, None, None, None, None, None, None, None, None, None, 0x7F], + 'bbs0': [None, None, None, None, None, None, None, None, None, None, None, None, None, None, 0x8F], + 'bbs1': [None, None, None, None, None, None, None, None, None, None, None, None, None, None, 0x9F], + 'bbs2': [None, None, None, None, None, None, None, None, None, None, None, None, None, None, 0xAF], + 'bbs3': [None, None, None, None, None, None, None, None, None, None, None, None, None, None, 0xBF], + 'bbs4': [None, None, None, None, None, None, None, None, None, None, None, None, None, None, 0xCF], + 'bbs5': [None, None, None, None, None, None, None, None, None, None, None, None, None, None, 0xDF], + 'bbs6': [None, None, None, None, None, None, None, None, None, None, None, None, None, None, 0xEF], + 'bbs7': [None, None, None, None, None, None, None, None, None, None, None, None, None, None, 0xFF], + 'bit': [None, 0x89, 0x24, 0x34, None, 0x2C, 0x3C, None, None, None, None, None, None, None, None], + 'bra': [None, None, None, None, None, None, None, None, None, None, None, None, None, None, 0x80], + 'cmp': [None, 0xC9, 0xC5, 0xD5, None, 0xCD, 0xDD, 0xD9, None, None, None, 0xD2, 0xC1, 0xD1, None], + 'dea': [0x3A, None, None, None, None, None, None, None, None, None, None, None, None, None, None], + 'dec': [0x3A, None, 0xC6, 0xD6, None, 0xCE, 0xDE, None, None, None, None, None, None, None, None], + 'eor': [None, 0x49, 0x45, 0x55, None, 0x4D, 0x5D, 0x59, None, None, None, 0x52, 0x41, 0x51, None], + 'ina': [0x1A, None, None, None, None, None, None, None, None, None, None, None, None, None, None], + 'inc': [0x1A, None, 0xE6, 0xF6, None, 0xEE, 0xFE, None, None, None, None, None, None, None, None], + 'jmp': [None, None, None, None, None, 0x4C, None, None, 0x6C, 0x7C, None, None, None, None, None], + 'lda': [None, 0xA9, 0xA5, 0xB5, None, 0xAD, 0xBD, 0xB9, None, None, None, 0xB2, 0xA1, 0xB1, None], + 'ora': [None, 0x09, 0x05, 0x15, None, 0x0D, 0x1D, 0x19, None, None, None, 0x12, 0x01, 0x11, None], + 'phx': [0xDA, None, None, None, None, None, None, None, None, None, None, None, None, None, None], + 'phy': [0x5A, None, None, None, None, None, None, None, None, None, None, None, None, None, None], + 'plx': [0xFA, None, None, None, None, None, None, None, None, None, None, None, None, None, None], + 'ply': [0x7A, None, None, None, None, None, None, None, None, None, None, None, None, None, None], + 'rmb0': [None, None, 0x07, None, None, None, None, None, None, None, None, None, None, None, None], + 'rmb1': [None, None, 0x17, None, None, None, None, None, None, None, None, None, None, None, None], + 'rmb2': [None, None, 0x27, None, None, None, None, None, None, None, None, None, None, None, None], + 'rmb3': [None, None, 0x37, None, None, None, None, None, None, None, None, None, None, None, None], + 'rmb4': [None, None, 0x47, None, None, None, None, None, None, None, None, None, None, None, None], + 'rmb5': [None, None, 0x57, None, None, None, None, None, None, None, None, None, None, None, None], + 'rmb6': [None, None, 0x67, None, None, None, None, None, None, None, None, None, None, None, None], + 'rmb7': [None, None, 0x77, None, None, None, None, None, None, None, None, None, None, None, None], + 'sbc': [None, 0xE9, 0xE5, 0xF5, None, 0xED, 0xFD, 0xF9, None, None, None, 0xF2, 0xE1, 0xF1, None], + 'smb0': [None, None, 0x87, None, None, None, None, None, None, None, None, None, None, None, None], + 'smb1': [None, None, 0x97, None, None, None, None, None, None, None, None, None, None, None, None], + 'smb2': [None, None, 0xA7, None, None, None, None, None, None, None, None, None, None, None, None], + 'smb3': [None, None, 0xB7, None, None, None, None, None, None, None, None, None, None, None, None], + 'smb4': [None, None, 0xC7, None, None, None, None, None, None, None, None, None, None, None, None], + 'smb5': [None, None, 0xD7, None, None, None, None, None, None, None, None, None, None, None, None], + 'smb6': [None, None, 0xE7, None, None, None, None, None, None, None, None, None, None, None, None], + 'smb7': [None, None, 0xF7, None, None, None, None, None, None, None, None, None, None, None, None], + 'sta': [None, None, 0x85, 0x95, None, 0x8D, 0x9D, 0x99, None, None, None, 0x92, 0x81, 0x91, None], + 'stp': [0xDB, None, None, None, None, None, None, None, None, None, None, None, None, None, None], + 'stz': [None, None, 0x64, 0x74, None, 0x9C, 0x9E, None, None, None, None, None, None, None, None], + 'trb': [None, None, 0x14, None, None, 0x1C, None, None, None, None, None, None, None, None, None], + 'tsb': [None, None, 0x04, None, None, 0x0C, None, None, None, None, None, None, None, None, None], + 'wai': [0xCB, None, None, None, None, None, None, None, None, None, None, None, None, None, None], + } + diff --git a/src/Ophis/Passes.py b/src/Ophis/Passes.py new file mode 100644 index 0000000..5901843 --- /dev/null +++ b/src/Ophis/Passes.py @@ -0,0 +1,518 @@ +"""The P65 Assembler passes + + P65's design philosophy is to build the IR once, then run a great + many assembler passes over the result. Thus, each pass does a + single, specialized job. When strung together, the full + translation occurs. This structure also makes the assembler + very extensible; additional analyses or optimizations may be + added as new subclasses of Pass.""" + + +# Copyright 2002 Michael C. Martin. +# You may use, modify, and distribute this file under the BSD +# license: See LICENSE.txt for details. + +from __future__ import nested_scopes +import Ophis.Errors as Err +import Ophis.IR as IR +import Ophis.Opcodes as Ops +import Ophis.CmdLine as Cmd +import Ophis.Macro as Macro + +# The passes themselves + +class Pass: + """Superclass for all assembler passes. Automatically handles IR + types that modify the environent's structure, and by default + raises an error on anything else. Override visitUnknown in your + extension pass to produce a pass that accepts everything.""" + name = "Default Pass" + def __init__(self): + self.writeOK = 1 + def visitNone(self, node, env): + pass + def visitSEQUENCE(self, node, env): + Err.currentpoint = node.ppt + for n in node.data: + n.accept(self, env) + def visitDataSegment(self, node, env): + self.writeOK = 0 + env.setsegment(node.data[0]) + def visitTextSegment(self, node, env): + self.writeOK = 1 + env.setsegment(node.data[0]) + def visitScopeBegin(self, node, env): + env.newscope() + def visitScopeEnd(self, node, env): + env.endscope() + def visitUnknown(self, node, env): + Err.log("Internal error! "+self.name+" cannot understand node type "+node.nodetype) + def prePass(self): + pass + def postPass(self): + pass + def go(self, node, env): + """Prepares the environment and runs this pass, possibly + printing debugging information.""" + if Err.count == 0: + if Cmd.verbose > 1: print "Running: "+self.name + env.reset() + self.prePass() + node.accept(self, env) + self.postPass() + env.reset() + if Cmd.verbose > 3: + print "Current labels:" + print env + if Cmd.verbose > 2: + print "Current IR:" + print node + +class FixPoint: + """A specialized class that is not a pass but can be run like one. + This class takes a list of passes and a "fixpoint" function.""" + def __init__(self, name, passes, fixpoint): + self.name = name + self.passes = passes + self.fixpoint = fixpoint + def go(self, node, env): + """Runs this FixPoint's passes, in order, until the fixpoint + is true. Always runs the passes at least once.""" + for i in xrange(100): + if Err.count != 0: break + for p in self.passes: + p.go(node, env) + if Err.count != 0: break + if self.fixpoint(): break + if Cmd.verbose > 1: print "Fixpoint failed, looping back" + else: + Err.log("Can't make %s converge! Maybe there's a recursive dependency somewhere?" % self.name) + +class DefineMacros(Pass): + "Extract macro definitions and remove them from the IR" + name = "Macro definition pass" + def prePass(self): + self.inDef = 0 + self.nestedError = 0 + def postPass(self): + if self.inDef: + Err.log("Unmatched .macro") + elif Cmd.verbose > 2: + print "Macro definitions:" + Macro.dump() + def visitMacroBegin(self, node, env): + if self.inDef: + Err.log("Nested macro definition") + self.nestedError = 1 + else: + Macro.newMacro(node.data[0]) + node.nodetype = "None" + node.data = [] + self.inDef = 1 + def visitMacroEnd(self, node, env): + if self.inDef: + Macro.endMacro() + node.nodetype = "None" + node.data = [] + self.inDef = 0 + elif not self.nestedError: + Err.log("Unmatched .macend") + def visitUnknown(self, node, env): + if self.inDef: + Macro.registerNode(node) + node.nodetype = "None" + node.data = [] + + +class ExpandMacros(Pass): + "Replace macro invocations with the appropriate text" + name = "Macro expansion pass" + def prePass(self): + self.changed = 0 + def visitMacroInvoke(self, node, env): + replacement = Macro.expandMacro(node.ppt, node.data[0], node.data[1:]) + node.nodetype = replacement.nodetype + node.data = replacement.data + self.changed = 1 + def visitUnknown(self, node, env): + pass + +class InitLabels(Pass): + "Finds all reachable labels" + name = "Label initialization pass" + def __init__(self): + Pass.__init__(self) + self.labelmap = {} + def prePass(self): + self.changed = 0 + self.PCvalid = 1 + def visitAdvance(self, node, env): + self.PCvalid=node.data[0].valid(env, self.PCvalid) + def visitSetPC(self, node, env): + self.PCvalid=node.data[0].valid(env, self.PCvalid) + def visitLabel(self, node, env): + (label, val) = node.data + fulllabel = "%d:%s" % (env.stack[0], label) + if fulllabel in self.labelmap and self.labelmap[fulllabel] is not node: + Err.log("Duplicate label definition '%s'" % label) + if fulllabel not in self.labelmap: + self.labelmap[fulllabel] = node + if val.valid(env, self.PCvalid) and label not in env: + env[label]=0 + self.changed=1 + def visitUnknown(self, node, env): + pass + +class CircularityCheck(Pass): + "Checks for circular label dependencies" + name = "Circularity check pass" + def prePass(self): + self.changed=0 + self.PCvalid=1 + def visitAdvance(self, node, env): + PCvalid = self.PCvalid + self.PCvalid=node.data[0].valid(env, self.PCvalid) + if not node.data[0].valid(env, PCvalid): + Err.log("Undefined or circular reference on .advance") + def visitSetPC(self, node, env): + PCvalid = self.PCvalid + self.PCvalid=node.data[0].valid(env, self.PCvalid) + if not node.data[0].valid(env, PCvalid): + Err.log("Undefined or circular reference on program counter set") + def visitCheckPC(self, node, env): + if not node.data[0].valid(env, self.PCvalid): + Err.log("Undefined or circular reference on program counter check") + def visitLabel(self, node, env): + (label, val) = node.data + if not val.valid(env, self.PCvalid): + Err.log("Undefined or circular dependency for label '%s'" % label) + def visitUnknown(self, node, env): + pass + +class CheckExprs(Pass): + "Ensures all expressions can resolve" + name = "Expression checking pass" + def visitUnknown(self, node, env): + for i in [x for x in node.data if isinstance(x, IR.Expr)]: + i.value(env) # Throw away result, just confirm validity of all expressions + +class EasyModes(Pass): + "Assigns address modes to hardcoded and branch instructions" + name = "Easy addressing modes pass" + def visitMemory(self, node, env): + if Ops.opcodes[node.data[0]][14] is not None: + node.nodetype = "Relative" + return + if node.data[1].hardcoded: + if not collapse_no_index(node, env): + node.nodetype = "Absolute" + def visitMemoryX(self, node, env): + if node.data[1].hardcoded: + if not collapse_x(node, env): + node.nodetype = "AbsoluteX" + def visitMemoryY(self, node, env): + if node.data[1].hardcoded: + if not collapse_y(node, env): + node.nodetype = "AbsoluteY" + def visitPointer(self, node, env): + if node.data[1].hardcoded: + if not collapse_no_index_ind(node, env): + node.nodetype = "Indirect" + def visitPointerX(self, node, env): + if node.data[1].hardcoded: + if not collapse_x_ind(node, env): + node.nodetype = "AbsIndX" + def visitPointerY(self, node, env): + if node.data[1].hardcoded: + if not collapse_y_ind(node, env): + node.nodetype = "AbsIndY" + def visitUnknown(self, node, env): + pass + +class UpdateLabels(Pass): + "Computes the new values for all entries in the symbol table" + name = "Label Update Pass" + def prePass(self): + self.changed = 0 + def visitSetPC(self, node, env): env.setPC(node.data[0].value(env)) + def visitAdvance(self, node, env): env.setPC(node.data[0].value(env)) + def visitImplied(self, node, env): env.incPC(1) + def visitImmediate(self, node, env): env.incPC(2) + def visitIndirectX(self, node, env): env.incPC(2) + def visitIndirectY(self, node, env): env.incPC(2) + def visitZPIndirect(self, node, env): env.incPC(2) + def visitZeroPage(self, node, env): env.incPC(2) + def visitZeroPageX(self, node, env): env.incPC(2) + def visitZeroPageY(self, node, env): env.incPC(2) + def visitRelative(self, node, env): env.incPC(2) + def visitIndirect(self, node, env): env.incPC(3) + def visitAbsolute(self, node, env): env.incPC(3) + def visitAbsoluteX(self, node, env): env.incPC(3) + def visitAbsoluteY(self, node, env): env.incPC(3) + def visitAbsIndX(self, node, env): env.incPC(3) + def visitAbsIndY(self, node, env): env.incPC(3) + def visitMemory(self, node, env): env.incPC(3) + def visitMemoryX(self, node, env): env.incPC(3) + def visitMemoryY(self, node, env): env.incPC(3) + def visitPointer(self, node, env): env.incPC(3) + def visitPointerX(self, node, env): env.incPC(3) + def visitPointerY(self, node, env): env.incPC(3) + def visitCheckPC(self, node, env): pass + def visitLabel(self, node, env): + (label, val) = node.data + old = env[label] + env[label] = val.value(env) + if old != env[label]: + self.changed = 1 + def visitByte(self, node, env): env.incPC(len(node.data)) + def visitWord(self, node, env): env.incPC(len(node.data)*2) + def visitDword(self, node, env): env.incPC(len(node.data)*4) + def visitWordBE(self, node, env): env.incPC(len(node.data)*2) + def visitDwordBE(self, node, env): env.incPC(len(node.data)*4) + +class Collapse(Pass): + """Selects as many zero-page instructions to convert as + possible, and tracks how many instructions have been + converted this pass.""" + name = "Instruction Collapse Pass" + def prePass(self): + self.collapsed = 0 + def visitMemory(self, node, env): + if collapse_no_index(node, env): self.collapsed += 1 + def visitMemoryX(self, node, env): + if collapse_x(node, env): self.collapsed += 1 + def visitMemoryY(self, node, env): + if collapse_y(node, env): self.collapsed += 1 + def visitPointer(self, node, env): + if collapse_no_index_ind(node, env): self.collapsed += 1 + def visitPointerX(self, node, env): + if collapse_x_ind(node, env): self.collapsed += 1 + def visitPointerY(self, node, env): + if collapse_y_ind(node, env): self.collapsed += 1 + def visitUnknown(self, node, env): + pass + +def collapse_no_index(node, env): + """Transforms a Memory node into a ZeroPage one if possible. + Returns 1 if it made the collapse, false otherwise.""" + if node.data[1].value(env) < 0x100 and Ops.opcodes[node.data[0]][2] is not None: + node.nodetype = "ZeroPage" + return 1 + else: + return 0 + +def collapse_x(node, env): + """Transforms a MemoryX node into a ZeroPageX one if possible. + Returns 1 if it made the collapse, false otherwise.""" + if node.data[1].value(env) < 0x100 and Ops.opcodes[node.data[0]][3] is not None: + node.nodetype = "ZeroPageX" + return 1 + else: + return 0 + +def collapse_y(node, env): + """Transforms a MemoryY node into a ZeroPageY one if possible. + Returns 1 if it made the collapse, false otherwise.""" + if node.data[1].value(env) < 0x100 and Ops.opcodes[node.data[0]][4] is not None: + node.nodetype = "ZeroPageY" + return 1 + else: + return 0 + +def collapse_no_index_ind(node, env): + """Transforms a Pointer node into a ZPIndirect one if possible. + Returns 1 if it made the collapse, false otherwise.""" + if node.data[1].value(env) < 0x100 and Ops.opcodes[node.data[0]][11] is not None: + node.nodetype = "ZPIndirect" + return 1 + else: + return 0 + +def collapse_x_ind(node, env): + """Transforms a PointerX node into an IndirectX one if possible. + Returns 1 if it made the collapse, false otherwise.""" + if node.data[1].value(env) < 0x100 and Ops.opcodes[node.data[0]][12] is not None: + node.nodetype = "IndirectX" + return 1 + else: + return 0 + +def collapse_y_ind(node, env): + """Transforms a PointerY node into an IndirectY one if possible. + Returns 1 if it made the collapse, false otherwise.""" + if node.data[1].value(env) < 0x100 and Ops.opcodes[node.data[0]][13] is not None: + node.nodetype = "IndirectY" + return 1 + else: + return 0 + + +class NormalizeModes(Pass): + """Eliminates the intermediate "Memory" and "Pointer" nodes, + converting them to "Absolute".""" + name = "Mode Normalization pass" + def visitMemory(self, node, env): node.nodetype = "Absolute" + def visitMemoryX(self, node, env): node.nodetype = "AbsoluteX" + def visitMemoryY(self, node, env): node.nodetype = "AbsoluteY" + def visitPointer(self, node, env): node.nodetype = "Indirect" + def visitPointerX(self, node, env): node.nodetype = "AbsIndX" + # If we ever hit a PointerY by this point, we have a bug. + def visitPointerY(self, node, env): node.nodetype = "AbsIndY" + def visitUnknown(self, node, env): pass + +class Assembler(Pass): + """Converts the IR into a list of bytes, suitable for writing to + a file.""" + name = "Assembler" + + def prePass(self): + self.output = [] + self.code = 0 + self.data = 0 + self.filler = 0 + + def postPass(self): + if Cmd.verbose > 0 and Err.count == 0: + print "Assembly complete: %s bytes output (%s code, %s data, %s filler)" \ + % (len(self.output), self.code, self.data, self.filler) + + def outputbyte(self, expr, env): + 'Outputs a byte, with range checking' + if self.writeOK: + val = expr.value(env) + if val < 0x00 or val > 0xff: + Err.log("Byte constant "+str(expr)+" out of range") + val = 0 + self.output.append(int(val)) + else: + Err.log("Attempt to write to data segment") + def outputword(self, expr, env): + 'Outputs a little-endian word, with range checking' + if self.writeOK: + val = expr.value(env) + if val < 0x0000 or val > 0xFFFF: + Err.log("Word constant "+str(expr)+" out of range") + val = 0 + self.output.append(int(val & 0xFF)) + self.output.append(int((val >> 8) & 0xFF)) + else: + Err.log("Attempt to write to data segment") + def outputdword(self, expr, env): + 'Outputs a little-endian dword, with range checking' + if self.writeOK: + val = expr.value(env) + if val < 0x00000000 or val > 0xFFFFFFFFL: + Err.log("DWord constant "+str(expr)+" out of range") + val = 0 + self.output.append(int(val & 0xFF)) + self.output.append(int((val >> 8) & 0xFF)) + self.output.append(int((val >> 16) & 0xFF)) + self.output.append(int((val >> 24) & 0xFF)) + else: + Err.log("Attempt to write to data segment") + + def outputword_be(self, expr, env): + 'Outputs a big-endian word, with range checking' + if self.writeOK: + val = expr.value(env) + if val < 0x0000 or val > 0xFFFF: + Err.log("Word constant "+str(expr)+" out of range") + val = 0 + self.output.append(int((val >> 8) & 0xFF)) + self.output.append(int(val & 0xFF)) + else: + Err.log("Attempt to write to data segment") + def outputdword_be(self, expr, env): + 'Outputs a big-endian dword, with range checking' + if self.writeOK: + val = expr.value(env) + if val < 0x00000000 or val > 0xFFFFFFFFL: + Err.log("DWord constant "+str(expr)+" out of range") + val = 0 + self.output.append(int((val >> 24) & 0xFF)) + self.output.append(int((val >> 16) & 0xFF)) + self.output.append(int((val >> 8) & 0xFF)) + self.output.append(int(val & 0xFF)) + else: + Err.log("Attempt to write to data segment") + + def assemble(self, node, mode, env): + "A generic instruction called by the visitor methods themselves" + (opcode, expr) = node.data + bin_op = Ops.opcodes[opcode][mode] + if bin_op is None: + Err.log('%s does not have mode "%s"' % (opcode.upper(), Ops.modes[mode])) + return + self.outputbyte(IR.ConstantExpr(bin_op), env) + arglen = Ops.lengths[mode] + if mode == 14: # Special handling for relative mode + arg = expr.value(env) + arg = arg-(env.getPC()+2) + if arg < -128 or arg > 127: + Err.log("Branch target out of bounds") + arg = 0 + if arg < 0: arg += 256 + expr = IR.ConstantExpr(arg) + if arglen == 1: self.outputbyte(expr, env) + if arglen == 2: self.outputword(expr, env) + env.incPC(1+arglen) + self.code += 1+arglen + + def visitImplied(self, node, env): self.assemble(node, 0, env) + def visitImmediate(self, node, env): self.assemble(node, 1, env) + def visitZeroPage(self, node, env): self.assemble(node, 2, env) + def visitZeroPageX(self, node, env): self.assemble(node, 3, env) + def visitZeroPageY(self, node, env): self.assemble(node, 4, env) + def visitAbsolute(self, node, env): self.assemble(node, 5, env) + def visitAbsoluteX(self, node, env): self.assemble(node, 6, env) + def visitAbsoluteY(self, node, env): self.assemble(node, 7, env) + def visitIndirect(self, node, env): self.assemble(node, 8, env) + def visitAbsIndX(self, node, env): self.assemble(node, 9, env) + def visitAbsIndY(self, node, env): self.assemble(node, 10, env) + def visitZPIndirect(self, node, env): self.assemble(node, 11, env) + def visitIndirectX(self, node, env): self.assemble(node, 12, env) + def visitIndirectY(self, node, env): self.assemble(node, 13, env) + def visitRelative(self, node, env): self.assemble(node, 14, env) + def visitLabel(self, node, env): pass + def visitByte(self, node, env): + for expr in node.data: + self.outputbyte(expr, env) + env.incPC(len(node.data)) + self.data += len(node.data) + def visitWord(self, node, env): + for expr in node.data: + self.outputword(expr, env) + env.incPC(len(node.data)*2) + self.data += len(node.data)*2 + def visitDword(self, node, env): + for expr in node.data: + self.outputdword(expr, env) + env.incPC(len(node.data)*4) + self.data += len(node.data)*4 + def visitWordBE(self, node, env): + for expr in node.data: + self.outputword_be(expr, env) + env.incPC(len(node.data)*2) + self.data += len(node.data)*2 + def visitDwordBE(self, node, env): + for expr in node.data: + self.outputdword_be(expr, env) + env.incPC(len(node.data)*4) + self.data += len(node.data)*4 + def visitSetPC(self, node, env): + env.setPC(node.data[0].value(env)) + def visitCheckPC(self, node, env): + pc = env.getPC() + target = node.data[0].value(env) + if (pc > target): + Err.log(".checkpc assertion failed: $%x > $%x" % (pc, target)) + def visitAdvance(self, node, env): + pc = env.getPC() + target = node.data[0].value(env) + if (pc > target): + Err.log("Attempted to .advance backwards: $%x to $%x" % (pc, target)) + else: + zero = IR.ConstantExpr(0) + for i in xrange(target-pc): self.outputbyte(zero, env) + self.filler += target-pc + env.setPC(target) diff --git a/src/Ophis/__init__.py b/src/Ophis/__init__.py new file mode 100644 index 0000000..0f35954 --- /dev/null +++ b/src/Ophis/__init__.py @@ -0,0 +1,5 @@ +"P65 - a cross-assembler for the 6502 series of chips" + +# Copyright 2002 Michael C. Martin. +# You may use, modify, and distribute this file under the BSD +# license: See LICENSE.txt for details. diff --git a/src/ophismain.py b/src/ophismain.py new file mode 100644 index 0000000..5ddbf88 --- /dev/null +++ b/src/ophismain.py @@ -0,0 +1,4 @@ +#!/usr/local/bin/python +import Ophis.Main + +Ophis.Main.run_ophis() diff --git a/tests/test6510.bin b/tests/test6510.bin new file mode 100644 index 0000000..bdc3d91 --- /dev/null +++ b/tests/test6510.bin @@ -0,0 +1 @@ + ##''///3377;;;???CCGGKKOOOSSWW[[[___ccggkkooossww{{{ \ No newline at end of file diff --git a/tests/test6510.oph b/tests/test6510.oph new file mode 100644 index 0000000..a22e3f6 --- /dev/null +++ b/tests/test6510.oph @@ -0,0 +1,78 @@ +; Test file for base 6510 undocumented opcode compliance +; This odd little source file uses every addressing mode +; of every opcode, and uses the opcode itself as the argument +; to each instruction that takes one. The resulting binary's +; bytes are thus in strictly increasing numerical order. + +; Many mnemonics have multiple opcodes with identical +; effects; Ophis chooses one of them and the arguments +; herein assume that any assembler will choose as Ophis +; does. + +; This file also doesn't include the 6502's *documented* +; opcodes - see testbase.oph for those. + + SLO ($03, X) + SLO $07 + ANC #$0B + SLO $0F0F + SLO ($13), Y + SLO $17, X + SLO $1B1B, Y + SLO $1F1F, X + RLA ($23, X) + RLA $27 + RLA $2F2F + RLA ($33), Y + RLA $37, X + RLA $3B3B, Y + RLA $3F3F, X + SRE ($43, X) + SRE $47 + ASR #$4B + SRE $4F4F + SRE ($53), Y + SRE $57, X + SRE $5B5B, Y + SRE $5F5F, X + RRA ($63, X) + RRA $67 + ARR #$6B + RRA $6F6F + RRA ($73), Y + RRA $77, X + RRA $7B7B, Y + RRA $7F7F, X + SAX ($83, X) + SAX $87 + ANE #$8B + SAX $8F8F + SHA ($93), Y + SAX $97, Y + SHS $9B9B, Y + SHX $9E9E, Y + SHA $9F9F, Y + LAX ($A3, X) + LAX $A7 + LXA #$AB + LAX $AFAF + LAX ($B3), Y + LAX $B7, Y + LAS $BBBB, Y + LAX $BFBF, Y + DCP ($C3, X) + DCP $C7 + SBX #$CB + DCP $CFCF + DCP ($D3), Y + DCP $D7, X + DCP $DBDB, Y + DCP $DFDF, X + ISB ($E3, X) + ISB $E7 + ISB $EFEF + ISB ($F3), Y + ISB $F7, X + ISB $FBFB, Y + ISB $FFFF, X + \ No newline at end of file diff --git a/tests/test65c02.bin b/tests/test65c02.bin new file mode 100644 index 0000000..90f1e85 --- /dev/null +++ b/tests/test65c02.bin @@ -0,0 +1 @@ + ''//224477::<< 0] + +def parse_chipset_file (fname): + result = [None] * 256 + ls = [[x.strip() for x in y] for y in [z.split(':', 1) for z in decomment_readlines (fname)]] + for l in ls: + if len(l) == 2: + try: + op = int (l[0], 16) + syns = l[1].split(';') + for s in syns: + s_p = s.split('-') + if len(s_p) == 2: + mnem = s_p[0].lower().strip() + mode = s_p[1].lower().strip() + if mode in flatmodes: + if result[op] == None: + result[op] = [] + result[op].append((mnem, flatmodes.index(mode))) + else: + print "Unknown mode '%s'" % s_p[1] + except ValueError: + print "Illegal opcode '%s'" % l[0] + return result + +def collate_chipset_map (cs_list, base): + result = {} + for (opcode, insts) in zip (range(256), cs_list): + if insts != None: + for inst in insts: + (mnem, mode) = inst + if mnem not in result: + result[mnem] = [None] * len(modes) + if result[mnem][mode] is not None: + print "Warning: Reassigning %s - %s" % (mnem, modes[mode]) + result[mnem][mode] = opcode + if base is not None: + todel = [] + for x in result: + if x in base: + if result[x] == base[x]: + todel.append(x) + elif verbose != 0: + print "# Opcode %s changed" % x + elif verbose != 0: + print "# Opcode %s added" % x + for x in todel: + del result[x] + return result + +def mapval(x): + if x is None: + return "None" + else: + return "0x%02X" % x + +def dump_map (m, prologue = ''): + mnems = m.keys() + mnems.sort() + for mnem in mnems: + print "%s'%s': [%s]," % (prologue, mnem, ', '.join([mapval(x) for x in m[mnem]])) + +if __name__=='__main__': + if len(sys.argv) > 1: + chipsets = argv[1:] + else: + chipsets = ['chipsets.txt'] + archs = [] + for x in chipsets: + try: + ls = [[x.strip() for x in y] for y in [z.split(':', 1) for z in decomment_readlines (x)]] + for l in ls: + if len(l) != 2: + print "Could not parse the chipset line '%s'" % ":".join(l) + else: + archs.append((l[0], l[1])) + except IOError: + print "Could not read file %s" % x + print prologue + baseset = None + for (field, fname) in archs: + chipset_list = parse_chipset_file(fname) + instruction_map = collate_chipset_map (chipset_list, baseset) + if baseset == None: + baseset = instruction_map + print "%s = {" % field + dump_map (instruction_map, ' ' * (len(field) + 4)) + print "%s}" % (' ' * (len(field) + 3)) + print "" + diff --git a/tools/opcodes/op6502.txt b/tools/opcodes/op6502.txt new file mode 100644 index 0000000..5f9c2a5 --- /dev/null +++ b/tools/opcodes/op6502.txt @@ -0,0 +1,256 @@ + 00: BRK - Implied + 01: ORA - (Zero Page, X) + 02: + 03: + 04: + 05: ORA - Zero Page + 06: ASL - Zero Page + 07: + 08: PHP - Implied + 09: ORA - Immediate + 0A: ASL - Implied + 0B: + 0C: + 0D: ORA - Absolute + 0E: ASL - Absolute + 0F: + 10: BPL - Relative + 11: ORA - (Zero Page), Y + 12: + 13: + 14: + 15: ORA - Zero Page, X + 16: ASL - Zero Page, X + 17: + 18: CLC - Implied + 19: ORA - Absolute, Y + 1A: + 1B: + 1C: + 1D: ORA - Absolute, X + 1E: ASL - Absolute, X + 1F: + 20: JSR - Absolute + 21: AND - (Zero Page, X) + 22: + 23: + 24: BIT - Zero Page + 25: AND - Zero Page + 26: ROL - Zero Page + 27: + 28: PLP - Implied + 29: AND - Immediate + 2A: ROL - Implied + 2B: + 2C: BIT - Absolute + 2D: AND - Absolute + 2E: ROL - Absolute + 2F: + 30: BMI - Relative + 31: AND - (Zero Page), Y + 32: + 33: + 34: + 35: AND - Zero Page, X + 36: ROL - Zero Page, X + 37: + 38: SEC - Implied + 39: AND - Absolute, Y + 3A: + 3B: + 3C: + 3D: AND - Absolute, X + 3E: ROL - Absolute, X + 3F: + 40: RTI - Implied + 41: EOR - (Zero Page, X) + 42: + 43: + 44: + 45: EOR - Zero Page + 46: LSR - Zero Page + 47: + 48: PHA - Implied + 49: EOR - Immediate + 4A: LSR - Implied + 4B: + 4C: JMP - Absolute + 4D: EOR - Absolute + 4E: LSR - Absolute + 4F: + 50: BVC - Relative + 51: EOR - (Zero Page), Y + 52: + 53: + 54: + 55: EOR - Zero Page, X + 56: LSR - Zero Page, X + 57: + 58: CLI - Implied + 59: EOR - Absolute, Y + 5A: + 5B: + 5C: + 5D: EOR - Absolute, X + 5E: LSR - Absolute, X + 5F: + 60: RTS - Implied + 61: ADC - (Zero Page, X) + 62: + 63: + 64: + 65: ADC - Zero Page + 66: ROR - Zero Page + 67: + 68: PLA - Implied + 69: ADC - Immediate + 6A: ROR - Implied + 6B: + 6C: JMP - (Absolute) + 6D: ADC - Absolute + 6E: ROR - Absolute + 6F: + 70: BVS - Relative + 71: ADC - (Zero Page), Y + 72: + 73: + 74: + 75: ADC - Zero Page, X + 76: ROR - Zero Page, X + 77: + 78: SEI - Implied + 79: ADC - Absolute, Y + 7A: + 7B: + 7C: + 7D: ADC - Absolute, X + 7E: ROR - Absolute, X + 7F: + 80: + 81: STA - (Zero Page, X) + 82: + 83: + 84: STY - Zero Page + 85: STA - Zero Page + 86: STX - Zero Page + 87: + 88: DEY - Implied + 89: + 8A: TXA - Implied + 8B: + 8C: STY - Absolute + 8D: STA - Absolute + 8E: STX - Absolute + 8F: + 90: BCC - Relative + 91: STA - (Zero Page), Y + 92: + 93: + 94: STY - Zero Page, X + 95: STA - Zero Page, X + 96: STX - Zero Page, Y + 97: + 98: TYA - Implied + 99: STA - Absolute, Y + 9A: TXS - Implied + 9B: + 9C: + 9D: STA - Absolute, X + 9E: + 9F: + A0: LDY - Immediate + A1: LDA - (Zero Page, X) + A2: LDX - Immediate + A3: + A4: LDY - Zero Page + A5: LDA - Zero Page + A6: LDX - Zero Page + A7: + A8: TAY - Implied + A9: LDA - Immediate + AA: TAX - Implied + AB: + AC: LDY - Absolute + AD: LDA - Absolute + AE: LDX - Absolute + AF: + B0: BCS - Relative + B1: LDA - (Zero Page), Y + B2: + B3: + B4: LDY - Zero Page, X + B5: LDA - Zero Page, X + B6: LDX - Zero Page, Y + B7: + B8: CLV - Implied + B9: LDA - Absolute, Y + BA: TSX - Implied + BB: + BC: LDY - Absolute, X + BD: LDA - Absolute, X + BE: LDX - Absolute, Y + BF: + C0: CPY - Immediate + C1: CMP - (Zero Page, X) + C2: + C3: + C4: CPY - Zero Page + C5: CMP - Zero Page + C6: DEC - Zero Page + C7: + C8: INY - Implied + C9: CMP - Immediate + CA: DEX - Implied + CB: + CC: CPY - Absolute + CD: CMP - Absolute + CE: DEC - Absolute + CF: + D0: BNE - Relative + D1: CMP - (Zero Page), Y + D2: + D3: + D4: + D5: CMP - Zero Page, X + D6: DEC - Zero Page, X + D7: + D8: CLD - Implied + D9: CMP - Absolute, Y + DA: + DB: + DC: + DD: CMP - Absolute, X + DE: DEC - Absolute, X + DF: + E0: CPX - Immediate + E1: SBC - (Zero Page, X) + E2: + E3: + E4: CPX - Zero Page + E5: SBC - Zero Page + E6: INC - Zero Page + E7: + E8: INX - Implied + E9: SBC - Immediate + EA: NOP - Implied + EB: + EC: CPX - Absolute + ED: SBC - Absolute + EE: INC - Absolute + EF: + F0: BEQ - Relative + F1: SBC - (Zero Page), Y + F2: + F3: + F4: + F5: SBC - Zero Page, X + F6: INC - Zero Page, X + F7: + F8: SED - Implied + F9: SBC - Absolute, Y + FA: + FB: + FC: + FD: SBC - Absolute, X + FE: INC - Absolute, X + FF: diff --git a/tools/opcodes/op6510.txt b/tools/opcodes/op6510.txt new file mode 100644 index 0000000..84ee575 --- /dev/null +++ b/tools/opcodes/op6510.txt @@ -0,0 +1,256 @@ + 00: BRK - Implied + 01: ORA - (Zero Page, X) + 02: + 03: SLO - (Zero Page, X) + 04: + 05: ORA - Zero Page + 06: ASL - Zero Page + 07: SLO - Zero Page + 08: PHP - Implied + 09: ORA - Immediate + 0A: ASL - Implied + 0B: ANC - Immediate + 0C: + 0D: ORA - Absolute + 0E: ASL - Absolute + 0F: SLO - Absolute + 10: BPL - Relative + 11: ORA - (Zero Page), Y + 12: + 13: SLO - (Zero Page), Y + 14: + 15: ORA - Zero Page, X + 16: ASL - Zero Page, X + 17: SLO - Zero Page, X + 18: CLC - Implied + 19: ORA - Absolute, Y + 1A: + 1B: SLO - Absolute, Y + 1C: + 1D: ORA - Absolute, X + 1E: ASL - Absolute, X + 1F: SLO - Absolute, X + 20: JSR - Absolute + 21: AND - (Zero Page, X) + 22: + 23: RLA - (Zero Page, X) + 24: BIT - Zero Page + 25: AND - Zero Page + 26: ROL - Zero Page + 27: RLA - Zero Page + 28: PLP - Implied + 29: AND - Immediate + 2A: ROL - Implied + 2B: + 2C: BIT - Absolute + 2D: AND - Absolute + 2E: ROL - Absolute + 2F: RLA - Absolute + 30: BMI - Relative + 31: AND - (Zero Page), Y + 32: + 33: RLA - (Zero Page), Y + 34: + 35: AND - Zero Page, X + 36: ROL - Zero Page, X + 37: RLA - Zero Page, X + 38: SEC - Implied + 39: AND - Absolute, Y + 3A: + 3B: RLA - Absolute, Y + 3C: + 3D: AND - Absolute, X + 3E: ROL - Absolute, X + 3F: RLA - Absolute, X + 40: RTI - Implied + 41: EOR - (Zero Page, X) + 42: + 43: SRE - (Zero Page, X) + 44: + 45: EOR - Zero Page + 46: LSR - Zero Page + 47: SRE - Zero Page + 48: PHA - Implied + 49: EOR - Immediate + 4A: LSR - Implied + 4B: ASR - Immediate + 4C: JMP - Absolute + 4D: EOR - Absolute + 4E: LSR - Absolute + 4F: SRE - Absolute + 50: BVC - Relative + 51: EOR - (Zero Page), Y + 52: + 53: SRE - (Zero Page), Y + 54: + 55: EOR - Zero Page, X + 56: LSR - Zero Page, X + 57: SRE - Zero Page, X + 58: CLI - Implied + 59: EOR - Absolute, Y + 5A: + 5B: SRE - Absolute, Y + 5C: + 5D: EOR - Absolute, X + 5E: LSR - Absolute, X + 5F: SRE - Absolute, X + 60: RTS - Implied + 61: ADC - (Zero Page, X) + 62: + 63: RRA - (Zero Page, X) + 64: + 65: ADC - Zero Page + 66: ROR - Zero Page + 67: RRA - Zero Page + 68: PLA - Implied + 69: ADC - Immediate + 6A: ROR - Implied + 6B: ARR - Immediate + 6C: JMP - (Absolute) + 6D: ADC - Absolute + 6E: ROR - Absolute + 6F: RRA - Absolute + 70: BVS - Relative + 71: ADC - (Zero Page), Y + 72: + 73: RRA - (Zero Page), Y + 74: + 75: ADC - Zero Page, X + 76: ROR - Zero Page, X + 77: RRA - Zero Page, X + 78: SEI - Implied + 79: ADC - Absolute, Y + 7A: + 7B: RRA - Absolute, Y + 7C: + 7D: ADC - Absolute, X + 7E: ROR - Absolute, X + 7F: RRA - Absolute, X + 80: + 81: STA - (Zero Page, X) + 82: + 83: SAX - (Zero Page, X) + 84: STY - Zero Page + 85: STA - Zero Page + 86: STX - Zero Page + 87: SAX - Zero Page + 88: DEY - Implied + 89: + 8A: TXA - Implied + 8B: ANE - Immediate + 8C: STY - Absolute + 8D: STA - Absolute + 8E: STX - Absolute + 8F: SAX - Absolute + 90: BCC - Relative + 91: STA - (Zero Page), Y + 92: + 93: SHA - (Zero Page), Y + 94: STY - Zero Page, X + 95: STA - Zero Page, X + 96: STX - Zero Page, Y + 97: SAX - Zero Page, Y + 98: TYA - Implied + 99: STA - Absolute, Y + 9A: TXS - Implied + 9B: SHS - Absolute, Y + 9C: + 9D: STA - Absolute, X + 9E: SHX - Absolute, Y + 9F: SHA - Absolute, Y + A0: LDY - Immediate + A1: LDA - (Zero Page, X) + A2: LDX - Immediate + A3: LAX - (Zero Page, X) + A4: LDY - Zero Page + A5: LDA - Zero Page + A6: LDX - Zero Page + A7: LAX - Zero Page + A8: TAY - Implied + A9: LDA - Immediate + AA: TAX - Implied + AB: LXA - Immediate + AC: LDY - Absolute + AD: LDA - Absolute + AE: LDX - Absolute + AF: LAX - Absolute + B0: BCS - Relative + B1: LDA - (Zero Page), Y + B2: + B3: LAX - (Zero Page), Y + B4: LDY - Zero Page, X + B5: LDA - Zero Page, X + B6: LDX - Zero Page, Y + B7: LAX - Zero Page, Y + B8: CLV - Implied + B9: LDA - Absolute, Y + BA: TSX - Implied + BB: LAS - Absolute, Y + BC: LDY - Absolute, X + BD: LDA - Absolute, X + BE: LDX - Absolute, Y + BF: LAX - Absolute, Y + C0: CPY - Immediate + C1: CMP - (Zero Page, X) + C2: + C3: DCP - (Zero Page, X) + C4: CPY - Zero Page + C5: CMP - Zero Page + C6: DEC - Zero Page + C7: DCP - Zero Page + C8: INY - Implied + C9: CMP - Immediate + CA: DEX - Implied + CB: SBX - Immediate + CC: CPY - Absolute + CD: CMP - Absolute + CE: DEC - Absolute + CF: DCP - Absolute + D0: BNE - Relative + D1: CMP - (Zero Page), Y + D2: + D3: DCP - (Zero Page), Y + D4: + D5: CMP - Zero Page, X + D6: DEC - Zero Page, X + D7: DCP - Zero Page, X + D8: CLD - Implied + D9: CMP - Absolute, Y + DA: + DB: DCP - Absolute, Y + DC: + DD: CMP - Absolute, X + DE: DEC - Absolute, X + DF: DCP - Absolute, X + E0: CPX - Immediate + E1: SBC - (Zero Page, X) + E2: + E3: ISB - (Zero Page, X) + E4: CPX - Zero Page + E5: SBC - Zero Page + E6: INC - Zero Page + E7: ISB - Zero Page + E8: INX - Implied + E9: SBC - Immediate + EA: NOP - Implied + EB: + EC: CPX - Absolute + ED: SBC - Absolute + EE: INC - Absolute + EF: ISB - Absolute + F0: BEQ - Relative + F1: SBC - (Zero Page), Y + F2: + F3: ISB - (Zero Page), Y + F4: + F5: SBC - Zero Page, X + F6: INC - Zero Page, X + F7: ISB - Zero Page, X + F8: SED - Implied + F9: SBC - Absolute, Y + FA: + FB: ISB - Absolute, Y + FC: + FD: SBC - Absolute, X + FE: INC - Absolute, X + FF: ISB - Absolute, X diff --git a/tools/opcodes/op65c02.txt b/tools/opcodes/op65c02.txt new file mode 100644 index 0000000..a672a2e --- /dev/null +++ b/tools/opcodes/op65c02.txt @@ -0,0 +1,256 @@ + 00: BRK - Implied + 01: ORA - (Zero Page, X) + 02: + 03: + 04: TSB - Zero Page + 05: ORA - Zero Page + 06: ASL - Zero Page + 07: RMB0 - Zero Page + 08: PHP - Implied + 09: ORA - Immediate + 0A: ASL - Implied + 0B: + 0C: TSB - Absolute + 0D: ORA - Absolute + 0E: ASL - Absolute + 0F: BBR0 - Relative + 10: BPL - Relative + 11: ORA - (Zero Page), Y + 12: ORA - (Zero Page) + 13: + 14: TRB - Zero Page + 15: ORA - Zero Page, X + 16: ASL - Zero Page, X + 17: RMB1 - Zero Page + 18: CLC - Implied + 19: ORA - Absolute, Y + 1A: INA - Implied; INC - Implied + 1B: + 1C: TRB - Absolute + 1D: ORA - Absolute, X + 1E: ASL - Absolute, X + 1F: BBR1 - Relative + 20: JSR - Absolute + 21: AND - (Zero Page, X) + 22: + 23: + 24: BIT - Zero Page + 25: AND - Zero Page + 26: ROL - Zero Page + 27: RMB2 - Zero Page + 28: PLP - Implied + 29: AND - Immediate + 2A: ROL - Implied + 2B: + 2C: BIT - Absolute + 2D: AND - Absolute + 2E: ROL - Absolute + 2F: BBR2 - Relative + 30: BMI - Relative + 31: AND - (Zero Page), Y + 32: AND - (Zero Page) + 33: + 34: BIT - Zero Page, X + 35: AND - Zero Page, X + 36: ROL - Zero Page, X + 37: RMB3 - Zero Page + 38: SEC - Implied + 39: AND - Absolute, Y + 3A: DEA - Implied; DEC - Implied + 3B: + 3C: BIT - Absolute, X + 3D: AND - Absolute, X + 3E: ROL - Absolute, X + 3F: BBR3 - Relative + 40: RTI - Implied + 41: EOR - (Zero Page, X) + 42: + 43: + 44: + 45: EOR - Zero Page + 46: LSR - Zero Page + 47: RMB4 - Zero Page + 48: PHA - Implied + 49: EOR - Immediate + 4A: LSR - Implied + 4B: + 4C: JMP - Absolute + 4D: EOR - Absolute + 4E: LSR - Absolute + 4F: BBR4 - Relative + 50: BVC - Relative + 51: EOR - (Zero Page), Y + 52: EOR - (Zero Page) + 53: + 54: + 55: EOR - Zero Page, X + 56: LSR - Zero Page, X + 57: RMB5 - Zero Page + 58: CLI - Implied + 59: EOR - Absolute, Y + 5A: PHY - Implied + 5B: + 5C: + 5D: EOR - Absolute, X + 5E: LSR - Absolute, X + 5F: BBR5 - Relative + 60: RTS - Implied + 61: ADC - (Zero Page, X) + 62: + 63: + 64: STZ - Zero Page + 65: ADC - Zero Page + 66: ROR - Zero Page + 67: RMB6 - Zero Page + 68: PLA - Implied + 69: ADC - Immediate + 6A: ROR - Implied + 6B: + 6C: JMP - (Absolute) + 6D: ADC - Absolute + 6E: ROR - Absolute + 6F: BBR6 - Relative + 70: BVS - Relative + 71: ADC - (Zero Page), Y + 72: ADC - (Zero Page) + 73: + 74: STZ - Zero Page, X + 75: ADC - Zero Page, X + 76: ROR - Zero Page, X + 77: RMB7 - Zero Page + 78: SEI - Implied + 79: ADC - Absolute, Y + 7A: PLY - Implied + 7B: + 7C: JMP - (Absolute, X) + 7D: ADC - Absolute, X + 7E: ROR - Absolute, X + 7F: BBR7 - Relative + 80: BRA - Relative + 81: STA - (Zero Page, X) + 82: + 83: + 84: STY - Zero Page + 85: STA - Zero Page + 86: STX - Zero Page + 87: SMB0 - Zero Page + 88: DEY - Implied + 89: BIT - Immediate + 8A: TXA - Implied + 8B: + 8C: STY - Absolute + 8D: STA - Absolute + 8E: STX - Absolute + 8F: BBS0 - Relative + 90: BCC - Relative + 91: STA - (Zero Page), Y + 92: STA - (Zero Page) + 93: + 94: STY - Zero Page, X + 95: STA - Zero Page, X + 96: STX - Zero Page, Y + 97: SMB1 - Zero Page + 98: TYA - Implied + 99: STA - Absolute, Y + 9A: TXS - Implied + 9B: + 9C: STZ - Absolute + 9D: STA - Absolute, X + 9E: STZ - Absolute, X + 9F: BBS1 - Relative + A0: LDY - Immediate + A1: LDA - (Zero Page, X) + A2: LDX - Immediate + A3: + A4: LDY - Zero Page + A5: LDA - Zero Page + A6: LDX - Zero Page + A7: SMB2 - Zero Page + A8: TAY - Implied + A9: LDA - Immediate + AA: TAX - Implied + AB: + AC: LDY - Absolute + AD: LDA - Absolute + AE: LDX - Absolute + AF: BBS2 - Relative + B0: BCS - Relative + B1: LDA - (Zero Page), Y + B2: LDA - (Zero Page) + B3: + B4: LDY - Zero Page, X + B5: LDA - Zero Page, X + B6: LDX - Zero Page, Y + B7: SMB3 - Zero Page + B8: CLV - Implied + B9: LDA - Absolute, Y + BA: TSX - Implied + BB: + BC: LDY - Absolute, X + BD: LDA - Absolute, X + BE: LDX - Absolute, Y + BF: BBS3 - Relative + C0: CPY - Immediate + C1: CMP - (Zero Page, X) + C2: + C3: + C4: CPY - Zero Page + C5: CMP - Zero Page + C6: DEC - Zero Page + C7: SMB4 - Zero Page + C8: INY - Implied + C9: CMP - Immediate + CA: DEX - Implied + CB: WAI - Implied + CC: CPY - Absolute + CD: CMP - Absolute + CE: DEC - Absolute + CF: BBS4 - Relative + D0: BNE - Relative + D1: CMP - (Zero Page), Y + D2: CMP - (Zero Page) + D3: + D4: + D5: CMP - Zero Page, X + D6: DEC - Zero Page, X + D7: SMB5 - Zero Page + D8: CLD - Implied + D9: CMP - Absolute, Y + DA: PHX - Implied + DB: STP - Implied + DC: + DD: CMP - Absolute, X + DE: DEC - Absolute, X + DF: BBS5 - Relative + E0: CPX - Immediate + E1: SBC - (Zero Page, X) + E2: + E3: + E4: CPX - Zero Page + E5: SBC - Zero Page + E6: INC - Zero Page + E7: SMB6 - Zero Page + E8: INX - Implied + E9: SBC - Immediate + EA: NOP - Implied + EB: + EC: CPX - Absolute + ED: SBC - Absolute + EE: INC - Absolute + EF: BBS6 - Relative + F0: BEQ - Relative + F1: SBC - (Zero Page), Y + F2: SBC - (Zero Page) + F3: + F4: + F5: SBC - Zero Page, X + F6: INC - Zero Page, X + F7: SMB7 - Zero Page + F8: SED - Implied + F9: SBC - Absolute, Y + FA: PLX - Implied + FB: + FC: + FD: SBC - Absolute, X + FE: INC - Absolute, X + FF: BBS7 - Relative