From 2c4cba4276480e73577aa2404e761dcb714b1bc9 Mon Sep 17 00:00:00 2001 From: Antoine Vignau <34219772+antoinevignau@users.noreply.github.com> Date: Wed, 25 Oct 2023 23:03:15 +0200 Subject: [PATCH] Ca avance... --- lemanoirdudocteurgenius/apple2/ampersand | Bin 682 -> 689 bytes lemanoirdudocteurgenius/apple2/ampersand.s | 13 +- .../apple2/ampersand_Output.txt | 121 +++++++++--------- lemanoirdudocteurgenius/apple2/jeu.bas | 4 +- .../apple2/presentation2.bas | 8 +- .../lemanoirdudrgenius.dsk | Bin 143360 -> 143360 bytes 6 files changed, 78 insertions(+), 68 deletions(-) diff --git a/lemanoirdudocteurgenius/apple2/ampersand b/lemanoirdudocteurgenius/apple2/ampersand index 2322b93a8cf00b567bf79fb16f7ee05ec8ca5144..7f76d3e7538376f18e7952b2b58d74bb0927b2c4 100644 GIT binary patch delta 45 zcmV+|0Mh@e1+fK?b_YfpN*ZGtjFEw5k&pzj=1~C!&&0;mi4#~hJ_}^zbPG%iSQ_B7;?HDvrYrykYz{F1 diff --git a/lemanoirdudocteurgenius/apple2/ampersand.s b/lemanoirdudocteurgenius/apple2/ampersand.s index d77d6f1..fd10b0e 100644 --- a/lemanoirdudocteurgenius/apple2/ampersand.s +++ b/lemanoirdudocteurgenius/apple2/ampersand.s @@ -328,10 +328,15 @@ doW jsr FRMNUM ; eval expression jsr GETADR ; convert to int - lsr LINNUM+1 - ror LINNUM - lda LINNUM - jmp WAIT + ldx LINNUM+1 +doW1 ldy LINNUM +]lp lda #60 ; 1/100¸me de seconde + jsr WAIT + dey + bne ]lp + dex + bpl doW1 + rts *----------------------------------- EXPLODE diff --git a/lemanoirdudocteurgenius/apple2/ampersand_Output.txt b/lemanoirdudocteurgenius/apple2/ampersand_Output.txt index f3e62c7..f0660d7 100644 --- a/lemanoirdudocteurgenius/apple2/ampersand_Output.txt +++ b/lemanoirdudocteurgenius/apple2/ampersand_Output.txt @@ -132,9 +132,9 @@ 127 | 1 ampersand.s 127 | Data | 11 | | 2 | 00/1870 : 04 1A | da doP-1 128 | 1 ampersand.s 128 | Data | 11 | | 2 | 00/1872 : 13 1A | da doH-1 129 | 1 ampersand.s 129 | Data | 11 | | 2 | 00/1874 : 2D 1A | da doW-1 - 130 | 1 ampersand.s 130 | Data | 11 | | 2 | 00/1876 : 3F 1A | da doE-1 - 131 | 1 ampersand.s 131 | Data | 11 | | 2 | 00/1878 : 43 1A | da doR-1 - 132 | 1 ampersand.s 132 | Data | 11 | | 2 | 00/187A : 5C 1A | da doG-1 + 130 | 1 ampersand.s 130 | Data | 11 | | 2 | 00/1876 : 46 1A | da doE-1 + 131 | 1 ampersand.s 131 | Data | 11 | | 2 | 00/1878 : 4A 1A | da doR-1 + 132 | 1 ampersand.s 132 | Data | 11 | | 2 | 00/187A : 63 1A | da doG-1 133 | 1 ampersand.s 133 | Empty | 11 | | 0 | 00/187C | 134 | 1 ampersand.s 134 | Comment | 11 | | 0 | 00/187C | *----------------------------------- Data 135 | 1 ampersand.s 135 | Empty | 11 | | 0 | 00/187C | @@ -357,60 +357,65 @@ 328 | 1 ampersand.s 328 | Code | 11 | | 3 | 00/1A31 : 20 67 DD | jsr {$dd67} ; eval expression 329 | 1 ampersand.s 329 | Code | 11 | | 3 | 00/1A34 : 20 52 E7 | jsr {$e752} ; convert to int 330 | 1 ampersand.s 330 | Empty | 11 | | 0 | 00/1A37 | - 331 | 1 ampersand.s 331 | Code | 11 | | 2 | 00/1A37 : 46 51 | lsr {$50}+1 - 332 | 1 ampersand.s 332 | Code | 11 | | 2 | 00/1A39 : 66 50 | ror {$50} - 333 | 1 ampersand.s 333 | Code | 11 | | 2 | 00/1A3B : A5 50 | lda {$50} - 334 | 1 ampersand.s 334 | Code | 11 | | 3 | 00/1A3D : 4C A8 FC | jmp {$fca8} - 335 | 1 ampersand.s 335 | Empty | 11 | | 0 | 00/1A40 | - 336 | 1 ampersand.s 336 | Comment | 11 | | 0 | 00/1A40 | *----------------------------------- EXPLODE - 337 | 1 ampersand.s 337 | Empty | 11 | | 0 | 00/1A40 | - 338 | 1 ampersand.s 338 | Empty | 11 | | 0 | 00/1A40 | doE - 339 | 1 ampersand.s 339 | Code | 11 | | 3 | 00/1A40 : 20 B1 00 | jsr {$b1} - 340 | 1 ampersand.s 340 | Code | 11 | | 1 | 00/1A43 : 60 | rts - 341 | 1 ampersand.s 341 | Empty | 11 | | 0 | 00/1A44 | - 342 | 1 ampersand.s 342 | Comment | 11 | | 0 | 00/1A44 | *----------------------------------- RESTORE address - 343 | 1 ampersand.s 343 | Empty | 11 | | 0 | 00/1A44 | - 344 | 1 ampersand.s 344 | Empty | 11 | | 0 | 00/1A44 | doR - 345 | 1 ampersand.s 345 | Code | 11 | | 3 | 00/1A44 : 20 B1 00 | jsr {$b1} ; get next token - 346 | 1 ampersand.s 346 | Code | 11 | | 3 | 00/1A47 : 20 67 DD | jsr {$dd67} ; eval expression - 347 | 1 ampersand.s 347 | Code | 11 | | 3 | 00/1A4A : 20 52 E7 | jsr {$e752} ; convert to int - 348 | 1 ampersand.s 348 | Code | 11 | | 3 | 00/1A4D : 20 1A D6 | jsr {$d61a} ; find chosen line no. - 349 | 1 ampersand.s 349 | Empty | 11 | | 0 | 00/1A50 | - 350 | 1 ampersand.s 350 | Code | 11 | | 2 | 00/1A50 : A4 9C | ldy {$9b}+1 ; point DATPTR at byte before it - 351 | 1 ampersand.s 351 | Code | 11 | | 2 | 00/1A52 : A6 9B | ldx {$9b} - 352 | 1 ampersand.s 352 | Code | 11 | | 2 | 00/1A54 : D0 01 | bne dx - 353 | 1 ampersand.s 353 | Code | 11 | | 1 | 00/1A56 : 88 | dey - 354 | 1 ampersand.s 354 | Code | 11 | | 1 | 00/1A57 : CA | dx dex - 355 | 1 ampersand.s 355 | Code | 11 | | 2 | 00/1A58 : 84 7E | sty {$7d}+1 - 356 | 1 ampersand.s 356 | Code | 11 | | 2 | 00/1A5A : 86 7D | stx {$7d} - 357 | 1 ampersand.s 357 | Code | 11 | | 1 | 00/1A5C : 60 | rts - 358 | 1 ampersand.s 358 | Empty | 11 | | 0 | 00/1A5D | - 359 | 1 ampersand.s 359 | Comment | 11 | | 0 | 00/1A5D | *----------------------------------- GOSUB address - 360 | 1 ampersand.s 360 | Empty | 11 | | 0 | 00/1A5D | - 361 | 1 ampersand.s 361 | Empty | 11 | | 0 | 00/1A5D | doG - 362 | 1 ampersand.s 362 | Code | 11 | | 2 | 00/1A5D : A9 03 | lda #3 ; make sure there's enough stack - 363 | 1 ampersand.s 363 | Code | 11 | | 3 | 00/1A5F : 20 D6 D3 | jsr {$d3d6} - 364 | 1 ampersand.s 364 | Empty | 11 | | 0 | 00/1A62 | - 365 | 1 ampersand.s 365 | Code | 11 | | 2 | 00/1A62 : A5 B9 | lda {$b8}+1 ; push marker for RETURN - 366 | 1 ampersand.s 366 | Code | 11 | | 1 | 00/1A64 : 48 | pha - 367 | 1 ampersand.s 367 | Code | 11 | | 2 | 00/1A65 : A5 B8 | lda {$b8} - 368 | 1 ampersand.s 368 | Code | 11 | | 1 | 00/1A67 : 48 | pha - 369 | 1 ampersand.s 369 | Code | 11 | | 2 | 00/1A68 : A5 76 | lda {$75}+1 - 370 | 1 ampersand.s 370 | Code | 11 | | 1 | 00/1A6A : 48 | pha - 371 | 1 ampersand.s 371 | Code | 11 | | 2 | 00/1A6B : A5 75 | lda {$75} - 372 | 1 ampersand.s 372 | Code | 11 | | 1 | 00/1A6D : 48 | pha - 373 | 1 ampersand.s 373 | Code | 11 | | 2 | 00/1A6E : A9 B0 | lda #{$b0} - 374 | 1 ampersand.s 374 | Code | 11 | | 1 | 00/1A70 : 48 | pha - 375 | 1 ampersand.s 375 | Empty | 11 | | 0 | 00/1A71 | - 376 | 1 ampersand.s 376 | Code | 11 | | 3 | 00/1A71 : 20 B1 00 | jsr {$b1} ; get next token - 377 | 1 ampersand.s 377 | Code | 11 | | 3 | 00/1A74 : 20 67 DD | jsr {$dd67} ; parse numeric expr - 378 | 1 ampersand.s 378 | Code | 11 | | 3 | 00/1A77 : 20 52 E7 | jsr {$e752} ; convert it to int - 379 | 1 ampersand.s 379 | Code | 11 | | 3 | 00/1A7A : 20 41 D9 | jsr {$d93e}+3 ; point at chosen statement - 380 | 1 ampersand.s 380 | Code | 11 | | 3 | 00/1A7D : 4C D2 D7 | jmp {$d7d2} ; start running it - 381 | 1 ampersand.s 381 | Empty | 11 | | 0 | 00/1A80 | - 382 | 1 ampersand.s 382 | Comment | 11 | | 0 | 00/1A80 | *--- End of code - 383 | 1 ampersand.s 383 | Empty | 11 | | 0 | 00/1A80 | - 384 | 1 ampersand.s 384 | Data | 11 | | 42 | 00/1A80 : A8 E3 A9 A0 | asc "(c) 2023, Antoine Vignau & Olivier Zardini" + 331 | 1 ampersand.s 331 | Code | 11 | | 2 | 00/1A37 : A6 51 | ldx {$50}+1 + 332 | 1 ampersand.s 332 | Code | 11 | | 2 | 00/1A39 : A4 50 | doW1 ldy {$50} + 333 | 1 ampersand.s 333 | Code | 11 | | 2 | 00/1A3B : A9 3C | ozunid_2 lda #60 ; 1/100¸me de seconde + 334 | 1 ampersand.s 334 | Code | 11 | | 3 | 00/1A3D : 20 A8 FC | jsr {$fca8} + 335 | 1 ampersand.s 335 | Code | 11 | | 1 | 00/1A40 : 88 | dey + 336 | 1 ampersand.s 336 | Code | 11 | | 2 | 00/1A41 : D0 F8 | bne ozunid_2 + 337 | 1 ampersand.s 337 | Code | 11 | | 1 | 00/1A43 : CA | dex + 338 | 1 ampersand.s 338 | Code | 11 | | 2 | 00/1A44 : 10 F3 | bpl doW1 + 339 | 1 ampersand.s 339 | Code | 11 | | 1 | 00/1A46 : 60 | rts + 340 | 1 ampersand.s 340 | Empty | 11 | | 0 | 00/1A47 | + 341 | 1 ampersand.s 341 | Comment | 11 | | 0 | 00/1A47 | *----------------------------------- EXPLODE + 342 | 1 ampersand.s 342 | Empty | 11 | | 0 | 00/1A47 | + 343 | 1 ampersand.s 343 | Empty | 11 | | 0 | 00/1A47 | doE + 344 | 1 ampersand.s 344 | Code | 11 | | 3 | 00/1A47 : 20 B1 00 | jsr {$b1} + 345 | 1 ampersand.s 345 | Code | 11 | | 1 | 00/1A4A : 60 | rts + 346 | 1 ampersand.s 346 | Empty | 11 | | 0 | 00/1A4B | + 347 | 1 ampersand.s 347 | Comment | 11 | | 0 | 00/1A4B | *----------------------------------- RESTORE address + 348 | 1 ampersand.s 348 | Empty | 11 | | 0 | 00/1A4B | + 349 | 1 ampersand.s 349 | Empty | 11 | | 0 | 00/1A4B | doR + 350 | 1 ampersand.s 350 | Code | 11 | | 3 | 00/1A4B : 20 B1 00 | jsr {$b1} ; get next token + 351 | 1 ampersand.s 351 | Code | 11 | | 3 | 00/1A4E : 20 67 DD | jsr {$dd67} ; eval expression + 352 | 1 ampersand.s 352 | Code | 11 | | 3 | 00/1A51 : 20 52 E7 | jsr {$e752} ; convert to int + 353 | 1 ampersand.s 353 | Code | 11 | | 3 | 00/1A54 : 20 1A D6 | jsr {$d61a} ; find chosen line no. + 354 | 1 ampersand.s 354 | Empty | 11 | | 0 | 00/1A57 | + 355 | 1 ampersand.s 355 | Code | 11 | | 2 | 00/1A57 : A4 9C | ldy {$9b}+1 ; point DATPTR at byte before it + 356 | 1 ampersand.s 356 | Code | 11 | | 2 | 00/1A59 : A6 9B | ldx {$9b} + 357 | 1 ampersand.s 357 | Code | 11 | | 2 | 00/1A5B : D0 01 | bne dx + 358 | 1 ampersand.s 358 | Code | 11 | | 1 | 00/1A5D : 88 | dey + 359 | 1 ampersand.s 359 | Code | 11 | | 1 | 00/1A5E : CA | dx dex + 360 | 1 ampersand.s 360 | Code | 11 | | 2 | 00/1A5F : 84 7E | sty {$7d}+1 + 361 | 1 ampersand.s 361 | Code | 11 | | 2 | 00/1A61 : 86 7D | stx {$7d} + 362 | 1 ampersand.s 362 | Code | 11 | | 1 | 00/1A63 : 60 | rts + 363 | 1 ampersand.s 363 | Empty | 11 | | 0 | 00/1A64 | + 364 | 1 ampersand.s 364 | Comment | 11 | | 0 | 00/1A64 | *----------------------------------- GOSUB address + 365 | 1 ampersand.s 365 | Empty | 11 | | 0 | 00/1A64 | + 366 | 1 ampersand.s 366 | Empty | 11 | | 0 | 00/1A64 | doG + 367 | 1 ampersand.s 367 | Code | 11 | | 2 | 00/1A64 : A9 03 | lda #3 ; make sure there's enough stack + 368 | 1 ampersand.s 368 | Code | 11 | | 3 | 00/1A66 : 20 D6 D3 | jsr {$d3d6} + 369 | 1 ampersand.s 369 | Empty | 11 | | 0 | 00/1A69 | + 370 | 1 ampersand.s 370 | Code | 11 | | 2 | 00/1A69 : A5 B9 | lda {$b8}+1 ; push marker for RETURN + 371 | 1 ampersand.s 371 | Code | 11 | | 1 | 00/1A6B : 48 | pha + 372 | 1 ampersand.s 372 | Code | 11 | | 2 | 00/1A6C : A5 B8 | lda {$b8} + 373 | 1 ampersand.s 373 | Code | 11 | | 1 | 00/1A6E : 48 | pha + 374 | 1 ampersand.s 374 | Code | 11 | | 2 | 00/1A6F : A5 76 | lda {$75}+1 + 375 | 1 ampersand.s 375 | Code | 11 | | 1 | 00/1A71 : 48 | pha + 376 | 1 ampersand.s 376 | Code | 11 | | 2 | 00/1A72 : A5 75 | lda {$75} + 377 | 1 ampersand.s 377 | Code | 11 | | 1 | 00/1A74 : 48 | pha + 378 | 1 ampersand.s 378 | Code | 11 | | 2 | 00/1A75 : A9 B0 | lda #{$b0} + 379 | 1 ampersand.s 379 | Code | 11 | | 1 | 00/1A77 : 48 | pha + 380 | 1 ampersand.s 380 | Empty | 11 | | 0 | 00/1A78 | + 381 | 1 ampersand.s 381 | Code | 11 | | 3 | 00/1A78 : 20 B1 00 | jsr {$b1} ; get next token + 382 | 1 ampersand.s 382 | Code | 11 | | 3 | 00/1A7B : 20 67 DD | jsr {$dd67} ; parse numeric expr + 383 | 1 ampersand.s 383 | Code | 11 | | 3 | 00/1A7E : 20 52 E7 | jsr {$e752} ; convert it to int + 384 | 1 ampersand.s 384 | Code | 11 | | 3 | 00/1A81 : 20 41 D9 | jsr {$d93e}+3 ; point at chosen statement + 385 | 1 ampersand.s 385 | Code | 11 | | 3 | 00/1A84 : 4C D2 D7 | jmp {$d7d2} ; start running it + 386 | 1 ampersand.s 386 | Empty | 11 | | 0 | 00/1A87 | + 387 | 1 ampersand.s 387 | Comment | 11 | | 0 | 00/1A87 | *--- End of code + 388 | 1 ampersand.s 388 | Empty | 11 | | 0 | 00/1A87 | + 389 | 1 ampersand.s 389 | Data | 11 | | 42 | 00/1A87 : A8 E3 A9 A0 | asc "(c) 2023, Antoine Vignau & Olivier Zardini" | | | | | | B2 B0 B2 B3 | | | | | | | AC A0 C1 EE | | | | | | | F4 EF E9 EE | @@ -421,5 +426,5 @@ | | | | | | E5 F2 A0 DA | | | | | | | E1 F2 E4 E9 | | | | | | | EE E9 | - 385 | 1 ampersand.s 385 | Empty | 11 | | 0 | 00/1AAA | + 390 | 1 ampersand.s 390 | Empty | 11 | | 0 | 00/1AB1 | ------+-----------------------+-------------+----+---------+------+-----------------------+------------------------------------------------------------------- diff --git a/lemanoirdudocteurgenius/apple2/jeu.bas b/lemanoirdudocteurgenius/apple2/jeu.bas index cb7c2fe..99af19d 100644 --- a/lemanoirdudocteurgenius/apple2/jeu.bas +++ b/lemanoirdudocteurgenius/apple2/jeu.bas @@ -685,8 +685,8 @@ 11750 & S 74,93,1: & D 0,12,1: & D 3,0,1: & D 0,-19,1: & D 0,19,1 11755 & D 2,-7,1: & D 0,-18,1 11760 & S 184,86,1: & I 3:RETURN -11800 & H: & I 0: & S 15,199,1: & D 0,-160,1: & D 75,-30,1: & D 52,0,1 -11805 & D 90,30,1: & D 0,160,1: & S 15,199,1: & D 75,-140,1: & D 0,-50,1 +11800 & H: & I 0: & S 15,191,1: & D 0,-160,1: & D 75,-30,1: & D 52,0,1 +11805 & D 90,30,1: & D 0,160,1: & S 15,191,1: & D 75,-140,1: & D 0,-50,1 11810 & D 0,50,1: & D 15,0,1: & D 0,-30,1: & D 12,4,1: & D 0,30,1: & D -12,-4,1 11815 & D 0,-30,1: & D 15,0,1: & D 0,30,1: & D 22,0,1: & D 0,-50,1: & D 0,50,1 11820 & D 36,55,1: & D 21,0,1: & D -21,0,1: & D 0,-60,1: & D 21,15,1: & D 0,74,1 diff --git a/lemanoirdudocteurgenius/apple2/presentation2.bas b/lemanoirdudocteurgenius/apple2/presentation2.bas index 6317f5f..4273c80 100644 --- a/lemanoirdudocteurgenius/apple2/presentation2.bas +++ b/lemanoirdudocteurgenius/apple2/presentation2.bas @@ -29,9 +29,9 @@ 25 HTAB 3: VTAB 19: PRINT "@ @ @ @ @@ @ @ @ @" 26 HTAB 3: VTAB 20: PRINT "@@@@ @@@@ @ @@ @ @@@@ @@@@ @ @" -30 HTAB 6: VTAB 22: PRINT " VERSION APPLE II PAR ": & W 1000 -31 HTAB 6: VTAB 22: PRINT " BRUTAL DELUXE SOFTWARE ": & W 1000 -32 HTAB 6: VTAB 22: PRINT " MERCI FRED_72 ": & W 1000 +30 HTAB 6: VTAB 22: PRINT " VERSION APPLE II PAR ": & W 300 +31 HTAB 6: VTAB 22: PRINT " BRUTAL DELUXE SOFTWARE ": & W 300 +32 HTAB 6: VTAB 22: PRINT " MERCI FRED_72 ": & W 300 33 HTAB 6: VTAB 22: PRINT "(C) 1983, L. BENES & LORICIELS" 34 GOSUB 31000: GOSUB 51000 @@ -52,7 +52,7 @@ 57 PRINT: PRINT: PRINT: PRINT: PRINT " pressez une touche": GET X$ 58 HOME: PRINT: PRINT " Un dernier conseil:";: & W 200: PRINT "Il peut parfois": PRINT -59 PRINT "y avoir une porte derriere vous.": & W 1000 +59 PRINT "y avoir une porte derriere vous.": & W 200 60 HOME: HTAB 12: VTAB 12: FLASH: PRINT "VEUILLEZ PATIENTER": NORMAL 61 POKE 16384,0: POKE 103,1: POKE 104,64: REM $4001 diff --git a/lemanoirdudocteurgenius/lemanoirdudrgenius.dsk b/lemanoirdudocteurgenius/lemanoirdudrgenius.dsk index 6c2176531522260effc74a07b0881dcad117df80..e249b1afb99e9618d7fbdce2e3e0e3866d411186 100644 GIT binary patch delta 1396 zcmZuxU2GIp6uxJ=fl`WYsX$q!y&cwe3qw1zyX|hbLU*@2+x?l{Vq02}AZ*GKYL=gF zX>@`Cs!=rf(=sgQ0SoQg76=hqs{E`}!jIX=Q;CU^_#!cCG{Fari4R7-GsQRN&fM?Z z^UZwcoSQTE$oGXu*!?N|P;R<-`_|Xm;K~(O|0xHq&)q?*sM6LRZVAgu2T!QXlPQNJ zilS$#UI$Vu+X#Ac^Mh=aYe z^O)0Zp4{}87l+n;EDF-_<`eu()WY zD7XZt&}hsq!7h^J%58O;Y*293C{&qxmGybeovr3j!TqBkm~JadUK`Fni=U4|vFSIZ zE3eIFZPn)3jy!7$erK|u?n$H)y^?6i8o(w=B+h6?)uvBZaNSXC8iUFLHF_Qg$DmYO zG*Zl+isF$mparwh8Qod7xL&a9UpRc&y@Qf$|i9eS!l1kG8fv;-o% z)iuuq$e=D&s=ai&n0pk#`%I*|Bsye> zG_t5n#mM<_AO=O%va~DNZBuCZ562 zuuR;cRqC|oGHsVTI@{W1vMq$o_)}6g^GePJaKt*C;2L5SKlCyLO3@Le4RPmWMs-xG}VN zVt+DC2lg^+-$2jqB=5P@?PUL3s1@l12;5t(7@vS9Zl)EFO@M8IopIl_Vr~MegE0d9k(3@iQ?n(?Cpy}k^18Ej4#ad`zdS^P>&y%e| zv`#YlLqSYTLS@lZuz_6aW zBE7RW(KnFnujNT|?3KK>c&q~5H=vl?7sKEUs5N2iP+m)oS-CG`c=`qiWplAp`Agl# X8Tn1@qx>`>WC?p<_!d7o3;q8As;8w6 delta 1269 zcmZuxZA@EL7(VZ%NlWR+?H6MZ;Bu*>j0@a;KnoZtV5dj}6E@7;f;NuDE^G=7(HnK6 zo5>c33FT7WL>$mU>*68S?q&LG_ne&PzVCD1 z=R7(0oICN0Zi4nt;kODozQ1hqp9)|`eWBja0C#{3_w{#ob%(+OJgGMFWYy~yMX`0Y zNde+Ex(K%B_8J*7qI(MJ#8bwD?jcBTi1iA*RZNyHij*n}B^_z>);GnYRttlYn}yy4I=z&;1|#ZooAfI90}CtRl0` zt!a;^HOITUYB_gHz$mOK;cy85vRQKrhp#5p8=QtN268;WSs~))F;6SI&4frHKWtW zqbqiNH3?RldMgQC6mBP>2?{qKCZR}QDfk4pDEKL~sH0!-h@{m1wX{Y$?SZ^(PFEL@ zGj{A)gj#0Kjw6d8Xuh$B^Kv3x#zvxNV^MB&ye7hvzwCo~c`NOzu{&PQ)5E}@9FB2k z6m{Aac@@-<1Z+u3UYoCEj@!_mf-2@68@`wVu3*8of(t1qk;SW8X4{7IG|Akv;a4f( zHFo=!B*(87vp&H~ZBkJMh-gJanrb|2#l|!gGpDWiOq!Nmv0^k0mCSW3zL$my&3D$g zQf@;r1sZv1UdKGJ;$2!<5w;Yq?_ZKUV7_CF9s#j5?gGca*f+)JlKK3b+`@`j{ZR7io z_HxgKj`BocOQd!6XmOn#Pj~l*`nyBqNw!>CYhCC1LjykbV%suQJEN>qx^#?Q zEw)CA_wKm2Tm0lAD@d0*+(L&(=qm1QW_-(@}01@eGxRy|tmmNwNI z^+dhJA|taIC}VoeSe^laxopOs474$uX1tsM*WShZ*^C<*IKULJ_)`Wd3WmqWX0vp6 zhfG+NrIX_(9LmzKaMOhGEQriQ6W+{1P+x8ikQ~pAM7WKQpv_Wv==oEJGl#?1{>Glq z;j_e!cH;|R06xZo9K4}zFYPKlQ93EZ6Vc84IVgtxk&#F=Mo-c!k+GA}$msZRtbr$8 zj?;O$C{=0V#)f0Bzjihjspm<|ft|OYK{Mw#mzPIUPUc$&esBu}`>tayf8z!9C-H;h Q!~7Z{1QOePb_-(v0)GT(x&QzG