From 52275bd67b49fbf71b94d63d7d9e5d5a933744b7 Mon Sep 17 00:00:00 2001 From: sparky4 Date: Tue, 15 Jul 2014 14:32:58 -0500 Subject: [PATCH] modified: 16/DOS_GFX.EXE modified: 16/Project 16.bfproject new file: 16/chikyuu.pcx modified: 16/dos_gfx.cpp modified: 16/dos_gfx.h new file: 16/lib/MODEX16.C new file: 16/lib/MODEX16.H new file: 16/lib/TYPES.H modified: 16/lib/lib_com.cpp modified: 16/lib/lib_com.h deleted: 16/modex16/MODEX16.OBJ modified: 16/modex16/PCXTEST.C modified: 16/modex16/PCXTEST.EXE deleted: 16/modex16/PCXTEST.OBJ deleted: 16/modex16/TEST.OBJ modified: 16/x.bat --- 16/DOS_GFX.EXE | Bin 35906 -> 36530 bytes 16/Project 16.bfproject | 68 +++---- 16/chikyuu.pcx | Bin 0 -> 12071 bytes 16/dos_gfx.cpp | 14 +- 16/dos_gfx.h | 3 +- 16/lib/MODEX16.C | 420 ++++++++++++++++++++++++++++++++++++++++ 16/lib/MODEX16.H | 79 ++++++++ 16/lib/TYPES.H | 11 ++ 16/lib/lib_com.cpp | 3 +- 16/lib/lib_com.h | 9 +- 16/modex16/MODEX16.OBJ | Bin 12800 -> 0 bytes 16/modex16/PCXTEST.C | 6 +- 16/modex16/PCXTEST.EXE | Bin 32385 -> 32312 bytes 16/modex16/PCXTEST.OBJ | Bin 2439 -> 0 bytes 16/modex16/TEST.OBJ | Bin 2932 -> 0 bytes 16/x.bat | 3 +- 16 files changed, 566 insertions(+), 50 deletions(-) create mode 100644 16/chikyuu.pcx create mode 100644 16/lib/MODEX16.C create mode 100644 16/lib/MODEX16.H create mode 100644 16/lib/TYPES.H delete mode 100644 16/modex16/MODEX16.OBJ delete mode 100644 16/modex16/PCXTEST.OBJ delete mode 100644 16/modex16/TEST.OBJ diff --git a/16/DOS_GFX.EXE b/16/DOS_GFX.EXE index 08b7ecdf6a6a06dc3fce81201c4cdd5b25576554..586644a4d0ba3b37b0b9a01ffe98314a0b9b005f 100644 GIT binary patch delta 14939 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%0DBo@PQYNm74QIj0DmAD2nXVTB*2h{OD>=VmJtJ} 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 NKRqreLW2|M{{UWs`L+N6 delta 14126 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 S9J5f|tE~LA8A0K+vivWSO7QCd diff --git a/16/Project 16.bfproject b/16/Project 16.bfproject index b971d1a7..2e220aa5 100644 --- a/16/Project 16.bfproject +++ b/16/Project 16.bfproject @@ -1,23 +1,19 @@ c2e.convert_special: 0 e2c.convert_num: 0 -openfiles: /dos/z/16/16/dos_gfx.cpp:9835:9075:0: -openfiles: /dos/z/16/16/dos_gfx.h:391:285:0: +openfiles: /dos/z/16/16/dos_gfx.cpp:150:0:0: +openfiles: /dos/z/16/16/dos_gfx.h:156:0:0: openfiles: /dos/z/16/16/dos_kb.c:1039:46:0: openfiles: /dos/z/16/16/dos_kb.h:23:0:0: -openfiles: /dos/z/16/16/lib/lib_com.cpp:0:0:0: -openfiles: /dos/z/16/16/lib/lib_com.h:2503:1416:0: +openfiles: /dos/z/16/16/lib/lib_com.cpp:2:0:0: +openfiles: /dos/z/16/16/lib/lib_com.h:160:0:0: openfiles: /dos/z/16/16/scroll.txt:5256:4537:0: openfiles: /dos/z/16/16/project16.txt:8063:6091:0: openfiles: /dos/z/16/16/16.txt:0:0:0: -openfiles: /dos/z/16/16/lib/x/MODEX.H:3164:2733:0: -openfiles: /dos/z/16/16/lib/intro/lib.c:2412:1757:0: -openfiles: /dos/z/16/src/lib/dos_gfx.cpp:2364:1106:0: -openfiles: /dos/z/16/src/lib/dos_gfx.h:0:0:0: -openfiles: /dos/z/16/16/lib/x/MXBB.ASM:559:0:0: -openfiles: /dos/z/16/16/scrasm/MAIN.ASM:4251:1619:0: -openfiles: /dos/z/16/16/modex16/PCXTEST.C:1106:518:0: -openfiles: /dos/z/16/16/modex16/MODEX16.C:3919:3533:1: -openfiles: /dos/z/16/16/modex16/MODEX16.H:1533:436:0: +openfiles: /dos/z/16/16/lib/x/MODEX.H:5511:4684:0: +openfiles: /dos/z/16/16/modex16/PCXTEST.C:1143:421:0: +openfiles: /dos/z/16/16/lib/MODEX16.C:141:0:0: +openfiles: /dos/z/16/16/lib/MODEX16.H:444:0:0: +openfiles: /dos/z/16/16/lib/TYPES.H:277:0:1: snr_recursion_level: 0 convertcolumn_horizontally: 0 adv_open_matchname: 0 @@ -29,10 +25,10 @@ view_left_panel: 0 default_mime_type: text/plain e2c.convert_xml: 1 c2e.convert_iso: 0 -opendir: file:///dos/z/16/16/modex16 +opendir: file:///dos/z/16/16/lib wrap_text_default: 0 bookmarks_filename_mode: 1 -ssearch_text: modexDrawBm +ssearch_text: bitmap_t snr_casesens: 0 view_blocks: 1 name: project 16 @@ -52,11 +48,6 @@ ssearch_regex: 0 e2c.convert_iso: 0 ssearch_casesens: 0 charmap_block: 1 -recent_files: file:///dos/z/4x4_16/tauron/C_SRC/MAINC.CPP -recent_files: file:///dos/z/4x4_16/tauron/C_SRC/PALETTE.INC -recent_files: file:///dos/z/4x4_16/tauron/C_SRC/TAURON.H -recent_files: file:///dos/z/4x4_16/tauron/C_SRC/CLEAR.CPP -recent_files: file:///dos/z/4x4_16/tauron/C_SRC/MODES_C.INC recent_files: file:///dos/z/4x4_16/tauron/C_SRC/TESTS.CPP recent_files: file:///dos/z/4x4_16/tauron/C_SRC/MODES.CPP recent_files: file:///dos/z/4x4_16/tauron/C_SRC/FONT1.H @@ -102,8 +93,13 @@ recent_files: file:///dos/z/16/16/lib/intro/lib.c recent_files: file:///dos/z/16/src/lib/dos_gfx.cpp recent_files: file:///dos/z/16/16/modex16/MODEX16.H recent_files: file:///dos/z/16/16/modex16/MODEX16.C +recent_files: file:///dos/z/4x4_16/w_modex/MODEX.CPP +recent_files: file:///dos/z/16/16/TYPES.H +recent_files: file:///dos/z/16/16/lib/MODEX16.H +recent_files: file:///dos/z/16/16/lib/TYPES.H +recent_files: file:///dos/z/16/16/lib/MODEX16.C snr_replacetype: 0 -savedir: file:///dos/z/16/16/modex16 +savedir: file:///dos/z/16/16/lib spell_check_default: 1 spell_insert_entities: 0 last_filefilter: @@ -113,21 +109,21 @@ snr_escape_chars: 0 htmlbar_view: 0 spell_lang: en ssearch_dotmatchall: 0 -searchlist: q -searchlist: sx -searchlist: bit -searchlist: mxBitBlt -searchlist: #ifdef TESTING -searchlist: BUFFMX -searchlist: (TILEWH*2)) -searchlist: VH -searchlist: mxSetClipRegion -searchlist: mxFillBox( -searchlist: OP_SET -searchlist: mxBitBlt( MXSINT sx, MXSINT sy, MXUINT width, MXUINT height, MXSINT dx, MXSINT dy ); -searchlist: mxpt -searchlist: printf -searchlist: modexDrawBm +searchlist: main +searchlist: word +searchlist: syte +searchlist: unsigned short +searchlist: syte +searchlist: unsigned int +searchlist: #include "src\\lib\\lib_com.h" +searchlist: word +searchlist: sy +searchlist: word +searchlist: VGA +searchlist: Page +searchlist: modexll +searchlist: load +searchlist: bitmap_t autocomplete: 1 outputb_show_all_output: 0 bookmarks_show_mode: 0 diff --git a/16/chikyuu.pcx b/16/chikyuu.pcx new file mode 100644 index 0000000000000000000000000000000000000000..61eac4cca4a06694e7425fe70b7ec3e0e8c88cbc GIT binary patch literal 12071 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 #include #include "lib\lib_com.h" -#include "lib\x\modex.h" +#include "lib\x\modex.h" +//#include "lib\modex16.h" //____ #define NUM_COLORS 256 // number of colors in vga mode //static lgq=NUM_COLORS/(1/8) diff --git a/16/lib/MODEX16.C b/16/lib/MODEX16.C new file mode 100644 index 00000000..3bdc3fb7 --- /dev/null +++ b/16/lib/MODEX16.C @@ -0,0 +1,420 @@ +#include +#include +#include +#include +#include +#include +#include "lib\modex16.h" + + +byte far* VGA=(byte far*) 0xA0000000; /* this points to video memory. */ + +static void fadePalette(sbyte fade, sbyte start, word iter, byte *palette); +static byte tmppal[PAL_SIZE]; +static struct pcxHeader { + byte id; + byte version; + byte encoding; + byte bpp; + word xmin; + word ymin; + word xmax; + word ymax; + word hres; + word vres; + byte pal16[48]; + byte res1; + word bpplane; + word palType; + word hScreenSize; + word vScreenSize; + byte padding[54]; +}; + + +static void +vgaSetMode(byte mode) +{ + union REGS regs; + + regs.h.ah = SET_MODE; + regs.h.al = mode; + int86(VIDEO_INT, ®s, ®s); +} + + +/* -========================= Entry Points ==========================- */ +void +modexEnter() { + word i; + dword far*ptr=(dword far*)VGA; /* used for faster screen clearing */ + word CRTParms[] = { + 0x0d06, /* vertical total */ + 0x3e07, /* overflow (bit 8 of vertical counts) */ + 0x4109, /* cell height (2 to double-scan */ + 0xea10, /* v sync start */ + 0xac11, /* v sync end and protect cr0-cr7 */ + 0xdf12, /* vertical displayed */ + 0x0014, /* turn off dword mode */ + 0xe715, /* v blank start */ + 0x0616, /* v blank end */ + 0xe317 /* turn on byte mode */ + }; + int CRTParmCount = sizeof(CRTParms) / sizeof(CRTParms[0]); + + /* TODO save current video mode and palette */ + vgaSetMode(VGA_256_COLOR_MODE); + + /* disable chain4 mode */ + outpw(SC_INDEX, 0x0604); + + /* synchronous reset while setting Misc Output */ + outpw(SC_INDEX, 0x0100); + + /* select 25 MHz dot clock & 60 Hz scanning rate */ + outp(MISC_OUTPUT, 0xe3); + + /* undo reset (restart sequencer) */ + outpw(SC_INDEX, 0x0300); + + /* reprogram the CRT controller */ + outp(CRTC_INDEX, 0x11); /* VSync End reg contains register write prot */ + outp(CRTC_DATA, 0x7f); /* get current write protect on varios regs */ + + /* send the CRTParms */ + for(i=0; iwidth; px+=4) { + offset=px; + for(py=0; pyheight; py++) { + if(!sprite || bmp->data[offset]) + page[PAGE_OFFSET(x+px, y+py)] = bmp->data[offset]; + offset+=bmp->width; + } + } + } +} + + +/* fade and flash */ +void +modexFadeOn(word fade, byte *palette) { + fadePalette(-fade, 64, 64/fade+1, palette); +} + + +void +modexFadeOff(word fade, byte *palette) { + fadePalette(fade, 0, 64/fade+1, palette); +} + + +void +modexFlashOn(word fade, byte *palette) { + fadePalette(fade, -64, 64/fade+1, palette); +} + + +void +modexFlashOff(word fade, byte *palette) { + fadePalette(-fade, 0, 64/fade+1, palette); +} + + +static void +fadePalette(sbyte fade, sbyte start, word iter, byte *palette) { + word i; + byte dim = start; + + /* handle the case where we just update */ + if(iter == 0) { + modexPalUpdate(palette); + return; + } + + while(iter > 0) { /* FadeLoop */ + for(i=0; i 127) { + tmppal[i] = 0; + } else if(tmppal[i] > 63) { + tmppal[i] = 63; + } + } + modexPalUpdate(tmppal); + iter--; + dim += fade; + } +} + + +/* save and load */ +void +modexPalSave(byte *palette) { + int i; + + outp(PAL_READ_REG, 0); /* start at palette entry 0 */ + for(i=0; i> 2; + } + } else { + /* use the 16 color palette */ + for(index=0; index<48; index++) { + result.palette[index] = head.pal16[index]; + } + } + + fclose(file); + + return result; +} diff --git a/16/lib/MODEX16.H b/16/lib/MODEX16.H new file mode 100644 index 00000000..880f2c8b --- /dev/null +++ b/16/lib/MODEX16.H @@ -0,0 +1,79 @@ +/* + * Functions for handling modex and doing other basic graphics stuff. + */ +#ifndef MODEX16_H +#define MODEX16_H +#include +#include "lib\types.h" + +/* -========================== Types & Macros ==========================- */ +#define PAGE_OFFSET(x,y) (((y)<<6)+((y)<<4)+((x)>>2)) +#define PLANE(x) (1<< (x&3)) +typedef byte far* page_t; +#define SELECT_ALL_PLANES() outpw(0x03c4, 0xff02) +typedef struct { + byte *data; + word width; + word height; + byte *palette; +} bitmap_t; + +/* -============================ Functions =============================- */ +/* mode switching, page, and plane functions */ +void modexEnter(); +void modexLeave(); +void modexShowPage(page_t page); +void modexPanPage(page_t *page, int dx, int dy); +void modexSelectPlane(byte plane); +void modexClearRegion(page_t page, int x, int y, int w, int h, byte color); +void modexDrawBmp(page_t page, int x, int y, bitmap_t *bmp, byte sprite); + +/* Palette fade and flash effects */ +void modexFadeOn(word fade, byte *palette); +void modexFadeOff(word fade, byte *palette); +void modexFlashOn(word fade, byte *palette); +void modexFlashOff(word fade, byte *palette); + +/* palette loading and saving */ +void modexPalSave(byte *palette); +byte *modexNewPal(); +void modexLoadPalFile(char *filename, byte **palette); +void modexSavePalFile(char *filename, byte *palette); + +/* fixed palette functions */ +void modexPalBlack(); +void modexPalWhite(); + +/* utility functions */ +void modexPalUpdate(byte *p); +void modexWaitBorder(); + +/* bitmap functions */ +bitmap_t modexLoadPcx(char *filename); + +/* -======================= Constants & Vars ==========================- */ +extern byte far* VGA; /* The VGA Memory */ +#define VIDEO_INT 0x10 +#define SET_MODE 0x00 +#define VGA_256_COLOR_MODE 0x13 +#define TEXT_MODE 0x03 +#define SCREEN_WIDTH 320 +#define SCREEN_HEIGHT 240 +#define PAGE_SIZE (word)(SCREEN_WIDTH/4 * SCREEN_HEIGHT) + +#define SC_INDEX 0x03c4 +#define SC_DATA 0x03c5 +#define CRTC_INDEX 0x03d4 +#define CRTC_DATA 0x03d5 +#define MISC_OUTPUT 0x03c2 +#define HIGH_ADDRESS 0x0C +#define LOW_ADDRESS 0x0D +#define VRETRACE 0x08 +#define INPUT_STATUS_1 0x03da +#define DISPLAY_ENABLE 0x01 +#define MAP_MASK 0x02 +#define PAL_READ_REG 0x03C7 /* Color register, read address */ +#define PAL_WRITE_REG 0x03C8 /* Color register, write address */ +#define PAL_DATA_REG 0x03C9 /* Color register, data port */ +#define PAL_SIZE (256 * 3) +#endif diff --git a/16/lib/TYPES.H b/16/lib/TYPES.H new file mode 100644 index 00000000..f6443b1b --- /dev/null +++ b/16/lib/TYPES.H @@ -0,0 +1,11 @@ +/* + * Just some handy typedefs that make it easier to think about the low + * level code + */ + +typedef unsigned char byte; +typedef unsigned short word; +typedef unsigned long dword; +typedef signed char sbyte; +typedef signed short sword; +typedef signed long sdword; diff --git a/16/lib/lib_com.cpp b/16/lib/lib_com.cpp index b9851613..19ad2ddf 100644 --- a/16/lib/lib_com.cpp +++ b/16/lib/lib_com.cpp @@ -1,4 +1,5 @@ -#include "src\lib\lib_com.h" +//#include "src\lib\lib_com.h" +#include "lib\lib_com.h" /* local function */ void wait(clock_t wait); diff --git a/16/lib/lib_com.h b/16/lib/lib_com.h index 90392ec6..56c957ef 100644 --- a/16/lib/lib_com.h +++ b/16/lib/lib_com.h @@ -3,7 +3,8 @@ #include #include #include // just for wait -#include // just for wait +#include // just for wait +#include "lib\types.h" /* Control codes for all keys on the keyboard */ //here temperarly @@ -96,9 +97,9 @@ #define KEY_MENU (0x75) -typedef unsigned char byte; -typedef unsigned int word; -typedef unsigned short syte; +//typedef unsigned char byte; +//typedef unsigned int word; +//typedef unsigned short syte; void wait(clock_t wait); diff --git a/16/modex16/MODEX16.OBJ b/16/modex16/MODEX16.OBJ deleted file mode 100644 index 2d064b074259cbdafba0ef37c2c7f7d2fe21a788..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12800 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 diff --git a/16/modex16/PCXTEST.OBJ b/16/modex16/PCXTEST.OBJ deleted file mode 100644 index 7b6c1737eae8fc5caaf88139d49b3f9ca9ad9cfe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2439 zcmai0eT*B$75~ky*Is*l=kqz-g@lAlnm`g7b06k%Ktgh#Nt8>@oHv^<((T&bv#t0` z_TF8hs?m`cbVn`~Q7S`|L!66JP-%-0fAmx&6u^Q|Rftll6d_cE5>(WPMioN*0Zrd* z>?EM5U3q5S`~BX$eKYgst*4gbj{XN8+5bpKH~;M%85rD4W4M2>Iv7!d{kx|{OjXor z8B=H5iz8fm1W#iw0Z^C?^c+c_;^ z>OUjwT-gPwe`Hrg{eZY_>miHmld=q_jdec9LBK6CFE`Y==S$ZxkI0mA0Mfvo-q9f? z7&oKi2|bk^%bos(8*6{Z0I$NbWj}m1EAfb&ZMG$@Rfo6uO}je?O)n8gn` zy`1Pqg?(FYK;3mZl{H&9H%XjNVb7Jl@YJTJbFpKbA_h$gyS?l~L)~jMS}-TJarO+c zeuW*q>75xP#zX#y(-bk971nZ--=bAW)cpoHwFu3@J-urG$WFarj+q5B8#9Z4JCU5BbC+heC2gWuTgw1hg+u9Qf6(M+(F1UYU|@6>!YMECDUDCA7~>0V#)nW?^oV65PUcPQPBK#1 zWUdg$Q3BTSJz;V;iyM{!p?&2#;=9>oDsCkqbgpc-)ufq9BrOP`nw~e(rbRBlp1Tbf zwrD~%tg`ATwS&}jm94KdLOR03>9!qWXT<|)BLR<6J2m@bxbg*B@|cbW`_>NUjCeS9 zSchV(gIUWg=>-}ldD2$qkRE{>cJpU?f z2o~-FZBpdnQEkuenM;peZpH!-Cg^xoSP*e?;tP^z-}~A5lSjXz;co<-qi4Z)-6&9( z$Z%nCU0GOOmre|Q!G`ac|$!AHP*WA^YNPb0geLTClb_@drW3n%k*Wo-AO{Odz zP4?FAF;Z3^Weh(PXTr2%$@)PJo5lp4!0JjnB!0A%YAGvYLUU;Octg;Ip+S^9TfD293eNkBk=Z(qS{t7j_ zaB!tEC)qRG=-o~Zv{LJNlA>U>as}+?adD0x;yG?erH9uV#7J>*W(l=W<)@IjQluu( zR+A50b$F;e@occ472^M`=ptXANFh5VCW=f{BB8^gqbsyn6uUyJND`$3qVp%B1Qk;%1zFIZ>hXm?(_9K?`t~Ns~qp8)w)+f zlpj(Q1yossWZ0=}5B$(Kd$ z?E$K;K6KGks;U9oi{hhN+F;W?9*)1yLZof>hP}=;We_smZ;k{dpl%3 zRouVI_Mu6yLOQGc(?^;p`K%eb#>g DmC#rp diff --git a/16/modex16/TEST.OBJ b/16/modex16/TEST.OBJ deleted file mode 100644 index f0d58aec345347c594f139802129b2fede167e3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2932 zcmaJ@eQaA-6+hR{AJ2Yv>^NzftR;1-G#y>>oR22%7TSC`Ubm)88oRHhEqQvepA!?u zj%+7Q8SB!<(;S?NmQ5C$Gg^aIO#%dnKL`vYq*^Q>5E7L(x|aPBlB#3fRJ00;KndqO z=L@Ou^v-?foZq?U-h0mRJ)YbKRh>_rK6$#nncgEko~{%4^>_LF&Q5QdgUP%<&BJ8Q zmFQ7|Z=`Er@}t7{mpuP_QggZ%ZQh=`*@w zFuB~r-pU$4*V*&D&;LGRhuVPW*zdDE=v7_AcS#9gk+ng|DlW(6 z=%A8#pWs@AO9-~Wn(Ih7s#Fm60%BHyUCElkv^q5s3tS)w5wHoYDr*JHn%9AWxH5i- z&@7^*0=uwj%@H|3TfRjwL)b2`icNkK$@t)!-!g*A!R|cX?(gh5BE^-E5?7)DCGlG_ z(c|{p^ zqcKBSbJ+|q%s_LgCPb&T!vOmu0izK)svsP{h>ldv1WI39m(HRzPSPv0pM&`}krlc{ zHa{eCg$X|^d==?sq*weboBuiJ;^kSwgd#CH30iG&rHDM5P-wOO z&v3ep(Gn^$Do0Q|VZ-w4n|TdN)k~#2CI@@vh&LQjBrvP0=an<4k-(x#$ok}Q1dF0q z4k|sNkOU=bXh%d23`-!Wa#u8|#3j&5;xp~5CcdE<`ojaRuGkq-;3;6jxN8 zqIBizFED>F=Y_ifzN3BO@nh3V=kL|QyIwr#Me+U|5Q6Wt_hH8S5SfhlaE`4ii%_1> zg}esG#Y_c&%H5s(_2FspPNx4(M!Y-yC$yZ~1HE(ik=j^q{cq}TWyTjW;^Opug33@` zU8J9x;hj?01ZMhGJ93f14XJC-O{%{BI{O@?w4$c4t(<96)uJ|4BkEFnM187JG^CnE zKDA#ordmb5a8NWAx{$h&dPGwyAPT8-qB)gAx`zA@Ma!+3-K#O}R@C_Gz0Z33jvfX4 z9;dHiG>*S2%tT{;C+O-ht7}=NN*SdzhuU#ifWKj>wayx$P=Tde>1Y4Sn?To!f$l)~ z4_AK*Y;JQL)DTe|3e^C08N;;q!MomNfb-{;AFvmd|BDEMNy4Y=ts# zKsnUG7T60Fun#K14OQ?oY=Z-^9iD?7a1t#Pz-|va;Z4{DZ^Ps8V|W67hcn)TFJLa5 z@CiJL8F9fsp%FON1ZK7mtgIRAtOd3(H&nCzu%A7J7uI7}J=7}(LlaK=?e25A9HBUM zOh-8C*cEallt3&ROgKWZIEkUr1YUvwjq20TMm)5=)YgBM2W%J-q{TcoZOS@WsRp)U z4RoUP8L5eZ5>n&U2_BS|Nlgq`@^yHRBSQj?>Ibh^eA;Lr|LQX_TSGlUSK$3@-h|~= zg3+9}QJl-mnRdPchkxgHgMPyq&HFo2@s8huPStyy)UjEe>dk?>qC{Y10i2g`e{8kO z0GzyJ0j6E+K>(l73CNae-$D~9D74p`C>RKFAUX5rfhXY%k_OXDZDvJl!tOzBLVc>a z|KFWC3Im5H(d!t8uffN0J2>vi+FDmtWmPN39d=Jla$F0lIPOeSt9$!ij%##PR#v(u zeuN9%px@*dF;E?Tb}c^(YWDP{jFoY`OF3~ zuS