From a7c7fc439430ce19c696e15b950919d8b083264b Mon Sep 17 00:00:00 2001 From: Kara Alexandra Date: Wed, 7 Jan 2026 13:32:09 -0600 Subject: [PATCH] Map tile updates --- LTTP_RND_GeneralBugfixes.asm | 8 +++++++ bin/src/compress.c | 20 ++++++++-------- bin/src/decompress.c | 32 ++++++++++++++++---------- bin/windows/decompress.exe | Bin 5120 -> 5120 bytes dungeon_map/data/supertile_shapes.asm | 22 +++++++++--------- dungeon_map/hooks.asm | 4 ++-- dungeon_map/main.asm | 6 ++++- menu/map_icons.3bpp | Bin 4608 -> 4608 bytes menu/map_icons_2.3bppc | Bin 623 -> 628 bytes menu/map_icons_3.3bppc | Bin 1026 -> 802 bytes menu/map_icons_4.3bppc | Bin 0 -> 533 bytes menu/map_icons_5.3bppc | Bin 0 -> 7 bytes menu/map_icons_6.3bppc | Bin 0 -> 7 bytes menu/map_icons_b.3bpp | Bin 0 -> 4608 bytes menu/map_sheet_d4.3bpp | Bin 0 -> 1536 bytes menu/map_sheet_d4.3bppc | Bin 0 -> 593 bytes 16 files changed, 56 insertions(+), 36 deletions(-) create mode 100644 menu/map_icons_4.3bppc create mode 100644 menu/map_icons_5.3bppc create mode 100644 menu/map_icons_6.3bppc create mode 100644 menu/map_icons_b.3bpp create mode 100644 menu/map_sheet_d4.3bpp create mode 100644 menu/map_sheet_d4.3bppc diff --git a/LTTP_RND_GeneralBugfixes.asm b/LTTP_RND_GeneralBugfixes.asm index 203a202..7306b72 100644 --- a/LTTP_RND_GeneralBugfixes.asm +++ b/LTTP_RND_GeneralBugfixes.asm @@ -318,8 +318,16 @@ DungeonMapIcons2: incbin "menu/map_icons_2.3bppc" DungeonMapIcons3: incbin "menu/map_icons_3.3bppc" +DungeonMapIcons4: +incbin "menu/map_icons_4.3bppc" +DungeonMapIcons5: +incbin "menu/map_icons_5.3bppc" +DungeonMapIcons6: +incbin "menu/map_icons_6.3bppc" DungeonMapDoorConnectors: incbin "menu/door_connectors.3bppc" +MapSheetD4: +incbin "menu/map_sheet_d4.3bppc" org $8CD7DF incsrc data/playernamecharmap.asm diff --git a/bin/src/compress.c b/bin/src/compress.c index 7baea45..0504ad0 100644 --- a/bin/src/compress.c +++ b/bin/src/compress.c @@ -8,11 +8,11 @@ const int MAXLENGTH = 0x300; struct section { int mode; int length; - char data[2]; + unsigned char data[2]; int datalength; }; -int find_duplicate(off_t loc, off_t size, char buf[], struct section *out) { +int find_duplicate(off_t loc, off_t size, unsigned char buf[], struct section *out) { int i, j; struct section result; result.mode = 4; @@ -40,7 +40,7 @@ int find_duplicate(off_t loc, off_t size, char buf[], struct section *out) { return 0; } -int find_repeat_byte(off_t loc, off_t size, char buf[], struct section *out) { +int find_repeat_byte(off_t loc, off_t size, unsigned char buf[], struct section *out) { int i; for (i = 0; i < MAXLENGTH && loc + i < size; i++) { if (buf[loc + i] != buf[loc]) { @@ -59,7 +59,7 @@ int find_repeat_byte(off_t loc, off_t size, char buf[], struct section *out) { return -1; } -int find_repeat_word(off_t loc, off_t size, char buf[], struct section *out) { +int find_repeat_word(off_t loc, off_t size, unsigned char buf[], struct section *out) { int i; for (i = 0; i < MAXLENGTH && loc + i + 1 < size; i += 1) { if (buf[loc + i] != buf[loc + (i & 1)]) { @@ -79,7 +79,7 @@ int find_repeat_word(off_t loc, off_t size, char buf[], struct section *out) { return -1; } -int find_incrementing_byte(off_t loc, off_t size, char buf[], struct section *out) { +int find_incrementing_byte(off_t loc, off_t size, unsigned char buf[], struct section *out) { int i; for (i = 0; i < MAXLENGTH && loc + i < size; i++) { if (buf[loc] + i < i) { @@ -101,7 +101,7 @@ int find_incrementing_byte(off_t loc, off_t size, char buf[], struct section *ou return -1; } -int get_section(off_t loc, off_t size, char buf[], struct section *out) { +int get_section(off_t loc, off_t size, unsigned char buf[], struct section *out) { struct section best, current; best.length = 0; if (!find_repeat_byte(loc, size, buf, ¤t)) { @@ -133,7 +133,7 @@ int get_section(off_t loc, off_t size, char buf[], struct section *out) { } } -int write_section(struct section section, char data[], char buf[], int loc) { +int write_section(struct section section, unsigned char data[], unsigned char buf[], int loc) { int nloc = loc; int len = section.length - 1; if (len > 0x1F) { @@ -181,7 +181,7 @@ int main(int argc, char *argv[]) { if (argc > 4) { size = strtol(argv[4], NULL, 0); } - char inbuf[size]; + unsigned char inbuf[size]; fseek(inptr, seek, SEEK_SET); @@ -192,8 +192,8 @@ int main(int argc, char *argv[]) { fclose(inptr); - char outbuf[size * 2]; - char m0data[MAXLENGTH]; + unsigned char outbuf[size * 2]; + unsigned char m0data[MAXLENGTH]; int oloc = 0; struct section m0; diff --git a/bin/src/decompress.c b/bin/src/decompress.c index 15dcbdd..e0d12ea 100644 --- a/bin/src/decompress.c +++ b/bin/src/decompress.c @@ -1,21 +1,20 @@ #include #include +#include #include struct section { int mode; int length; - char data[2]; + unsigned char data[2]; int datalength; }; -int read_section(char buf[], int loc, struct section *out) { +int read_section(unsigned char buf[], int loc, struct section *out) { int nloc = loc; - char header = buf[nloc++]; + unsigned char header = buf[nloc++]; - printf("%x: ", header & 0xff); - - if (header == -1) { + if (header == 0xFF) { return -1; } @@ -31,8 +30,6 @@ int read_section(char buf[], int loc, struct section *out) { result.length = (header & 0x1F) + 1; } - printf("%d: %x\n", result.mode, result.length); - switch (result.mode) { case 0: result.datalength = 0; @@ -61,10 +58,15 @@ int read_section(char buf[], int loc, struct section *out) { int main(int argc, char *argv[]) { if (argc < 3) { - printf("Usage: %s infile outfile\n", argv[0]); + printf("Usage: %s infile outfile [start [length]]\n", argv[0]); return 1; } + off_t seek = 0; + if (argc > 3) { + seek = strtol(argv[3], NULL, 0); + } + FILE *inptr; if ((inptr = fopen(argv[1], "rb")) == NULL) { printf("%s does not exist.\n", argv[1]); @@ -82,9 +84,15 @@ int main(int argc, char *argv[]) { printf("Error stating file: %s\n", argv[1]); return 1; } - off_t size = buf.st_size; - char inbuf[size]; + off_t size = buf.st_size - seek; + + if (argc > 4) { + size = strtol(argv[4], NULL, 0); + } + + fseek(inptr, seek, SEEK_SET); + unsigned char inbuf[size]; if (fread(inbuf, 1, size, inptr) < size) { printf("Error reading file: %s\n", argv[1]); @@ -93,7 +101,7 @@ int main(int argc, char *argv[]) { fclose(inptr); - char outbuf[size * 256]; + unsigned char outbuf[size * 256]; int oloc = 0; struct section section; diff --git a/bin/windows/decompress.exe b/bin/windows/decompress.exe index fa9200a491ef6accb43c9c569e473d6ffc2220ff..b3e66192f59470ac15676dfaec5286c541699e30 100644 GIT binary patch literal 5120 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 Yb0^@}_^SBUUyGke_z3^8{clF#Th+%>hyVZp diff --git a/dungeon_map/data/supertile_shapes.asm b/dungeon_map/data/supertile_shapes.asm index befdfc7..8d2434b 100644 --- a/dungeon_map/data/supertile_shapes.asm +++ b/dungeon_map/data/supertile_shapes.asm @@ -5,7 +5,7 @@ dw $FFFF, $FFFF, $438F, $FFFF ; 03 - Houlihan dw $039A, $038F, $4365, $C39B ; 04 dw $FFFF, $FFFF, $FFFF, $FFFF ; 05 - unused dw $FFFF, $FFFF, $438F, $FFFF ; 06 - Arrghus -dw $C340, $8370, $4340, $0340 ; 07 - Moldorm +dw $0100, $0101, $4111, $0111 ; 07 - Moldorm dw $FFFF, $FFFF, $43B2, $03B2 ; 08 - useless fairy entrance dw $C3A6, $837B, $FFFF, $FFFF ; 09 dw $C398, $835F, $FFFF, $FFFF ; 0A @@ -20,15 +20,15 @@ dw $C354, $8354, $4354, $0354 ; 12 dw $FFFF, $83B7, $FFFF, $03B7 ; 13 dw $C351, $8341, $4351, $0351 ; 14 dw $C374, $8340, $4341, $0340 ; 15 -dw $0361, $039A, $C3B2, $83B2 ; 16 - gross (add middle section if feasible) -dw $C370, $8370, $4340, $0340 ; 17 +dw $0108, $0109, $C3B2, $83B2 ; 16 - gross (add middle section if feasible) +dw $C104, $0103, $4104, $0104 ; 17 dw $C3B5, $FFFF, $43B4, $FFFF ; 18 - useless fairy drop dw $FFFF, $8369, $FFFF, $035A ; 19 dw $03E7, $03E8, $03F7, $0361 ; 1A dw $039B, $439C, $4361, $FFFF ; 1B dw $038F, $038F, $037E, $C39B ; 1C dw $C3B2, $83A7, $FFFF, $FFFF ; 1D -dw $FFFF, $4391, $8399, $0366 ; 1E +dw $FFFF, $4391, $0122, $0123 ; 1E dw $FFFF, $FFFF, $4360, $C399 ; 1F dw $FFFF, $FFFF, $438F, $FFFF ; 20 dw $4348, $0363, $C348, $8368 ; 21 @@ -37,7 +37,7 @@ dw $FFFF, $FFFF, $FFFF, $039B ; 23 dw $4365, $0365, $0364, $0365 ; 24 dw $FFFF, $FFFF, $FFFF, $FFFF ; 25 - unused dw $039B, $03E4, $4363, $0382 ; 26 -dw $C370, $8370, $4340, $0340 ; 27 +dw $C104, $0103, $4104, $0104 ; 27 dw $C3A5, $FFFF, $4358, $0348 ; 28 dw $FFFF, $FFFF, $FFFF, $0396 ; 29 - Mothula dw $C350, $8352, $4350, $03F8 ; 2A @@ -47,7 +47,7 @@ dw $FFFF, $FFFF, $FFFF, $FFFF ; 2D - unused dw $FFFF, $838F, $FFFF, $FFFF ; 2E dw $C3B4, $FFFF, $436E, $03B2 ; 2F - Kakariko well dw $C361, $FFFF, $839A, $FFFF ; 30 - inset stairs if possible -dw $43B2, $0397, $839B, $C399 ; 31 +dw $0124, $0125, $0134, $0135 ; 31 dw $43C4, $03C4, $43D4, $03D4 ; 32 dw $FFFF, $FFFF, $438F, $FFFF ; 33 dw $4348, $0368, $4349, $8368 ; 34 @@ -61,7 +61,7 @@ dw $C3A5, $FFFF, $43B5, $FFFF ; 3B - inset stairs if feasible dw $C340, $8350, $4340, $0350 ; 3C - hookshot cave front dw $039B, $439B, $0361, $838E ; 3D dw $FFFF, $438F, $43B2, $0373 ; 3E -dw $FFFF, $FFFF, $8399, $C399 ; 3F +dw $FFFF, $FFFF, $0130, $C399 ; 3F dw $C3A5, $FFFF, $4372, $C399 ; 40 - inset stairs if feasible dw $03C5, $03C6, $03D5, $03D6 ; 41 dw $03E9, $03EA, $FFFF, $FFFF ; 42 @@ -75,7 +75,7 @@ dw $839B, $8372, $039B, $0372 ; 49 dw $03E2, $03E3, $0386, $4386 ; 4A dw $C361, $4391, $4373, $0373 ; 4B dw $FFFF, $83A5, $FFFF, $03B7 ; 4C -dw $C350, $8370, $4341, $0340 ; 4D +dw $0102, $0103, $0112, $0113 ; 4D dw $839B, $439C, $FFFF, $FFFF ; 4E dw $FFFF, $8396, $838D, $FFFF ; 4F dw $FFFF, $83B7, $FFFF, $03B5 ; 50 @@ -92,7 +92,7 @@ dw $FFFF, $FFFF, $FFFF, $038F ; 5A - Helmasaur King dw $FFFF, $83B7, $FFFF, $03B5 ; 5B dw $C3B1, $83AA, $FFFF, $838F ; 5C dw $039B, $C399, $0361, $FFFF ; 5D -dw $FFFF, $4391, $839C, $0366 ; 5E +dw $FFFF, $0110, $839C, $0123 ; 5E dw $FFFF, $FFFF, $43BB, $FFFF ; 5F dw $FFFF, $8379, $FFFF, $036A ; 60 dw $C387, $8385, $4356, $0356 ; 61 @@ -121,7 +121,7 @@ dw $C370, $8340, $43A0, $03A0 ; 77 dw $FFFF, $FFFF, $FFFF, $FFFF ; 78 - unused dw $FFFF, $FFFF, $FFFF, $FFFF ; 79 - unused dw $FFFF, $FFFF, $FFFF, $FFFF ; 7A - unused -dw $C35E, $83B1, $438F, $4381 ; 7B +dw $0106, $0107, $438F, $4381 ; 7B dw $C3B7, $83B4, $43B7, $03B7 ; 7C dw $43B2, $835E, $034C, $0391 ; 7D dw $FFFF, $83B7, $4393, $438A ; 7E @@ -155,7 +155,7 @@ dw $FFFF, $038F, $434A, $0363 ; 99 dw $FFFF, $FFFF, $FFFF, $FFFF ; 9A - unused dw $839B, $0381, $435E, $0378 ; 9B dw $C350, $8350, $4341, $0341 ; 9C -dw $C35E, $83B2, $43B1, $035E ; 9D +dw $0116, $83B2, $43B1, $035E ; 9D dw $FFFF, $439A, $838D, $03B9 ; 9E dw $FFFF, $FFFF, $439B, $FFFF ; 9F dw $839B, $C39C, $FFFF, $FFFF ; A0 diff --git a/dungeon_map/hooks.asm b/dungeon_map/hooks.asm index 3afaecf..6aeb4b6 100644 --- a/dungeon_map/hooks.asm +++ b/dungeon_map/hooks.asm @@ -4,8 +4,8 @@ db $08 ; use AA1 = $1C for map stuff org $80E193 -skip 7 -db $D6 +skip 4 +db $61, $62, $62, $D6 org $8AE11D LDA.b #$1C diff --git a/dungeon_map/main.asm b/dungeon_map/main.asm index ffda36d..60d256f 100644 --- a/dungeon_map/main.asm +++ b/dungeon_map/main.asm @@ -11,15 +11,19 @@ macro WriteGFXSheetPointer(sheet, location) org $80D17E+ db >>0 - pullpc endmacro %WriteGFXSheetPointer($C9, DungeonMapIcons1) %WriteGFXSheetPointer($CA, DungeonMapIcons2) %WriteGFXSheetPointer($D5, DungeonMapIcons3) +%WriteGFXSheetPointer($D4, MapSheetD4) %WriteGFXSheetPointer($D6, DungeonMapDoorConnectors) +%WriteGFXSheetPointer($61, DungeonMapIcons4) +%WriteGFXSheetPointer($62, DungeonMapIcons5) +%WriteGFXSheetPointer($63, DungeonMapIcons6) + pullpc incsrc mappable_doors.asm diff --git a/menu/map_icons.3bpp b/menu/map_icons.3bpp index 00376944e3759c33ea14fd6fd1ce06d79a16b1d6..a8fa0d5ca06aaf330f079f31432a33f85e66d6ed 100644 GIT binary patch delta 112 zcmZorX;9hF!!4YylFm>Mgmnx+P!}EH;9NJ^kx_E80wc@hJ=||5J90Tr4&X9^VMd0@ l4ZJJRMJLNMvQB2P85)QXLNZe$VWn%?Iz-f{AA#7A=x3nBAJEOez`%&a+93ntD;SXI zh(y>jpr-F)TO{vUw$FK|dw0=N%a_gMtdu1&3j&IjQmew;1Q#X^BD0-*mm?Z7boiqo z*A7GhCA4(R5hjZ?oynYrlnzs<`w+dbrsfW1_OQ2vrWW!0!@MtUsdb?}n@-KI95?a! z>vzEdZN1l)Ve4F@x!n^S|Eq0>oqU#MIX!ko z8mj4&Dw6BBjhNr73U{Vv7l2Z#(m1(mn7nmPi9`a&-Lmd&2T->5-A}=fiznen a1T3>Z`8Y2F`)7G48WpIm%GaOdG&}$tig!2w diff --git a/menu/map_icons_2.3bppc b/menu/map_icons_2.3bppc index 6bce49614b891739f7c6d866c9b6f0961fd4d4c3..8cd42351fafae45026cc22b465f29fa129e0249f 100644 GIT binary patch delta 27 icmaFQ@`YuCEfYUW9YeZGdY3&TV|2u96PC&DOd0@qdIz%r delta 22 dcmeyu@}6abEfW`W9Yej!WIIMvhRHrm8URwJ1{nYV diff --git a/menu/map_icons_3.3bppc b/menu/map_icons_3.3bppc index 2defb51a2df2611959f4c0265b9f491d3198c450..77b77cbf674b190d20704d33351a01b7eb01083b 100644 GIT binary patch delta 296 zcmW-bze>YU7)O8Ky*Eikk&eZsSYs7je1OnOt!V0>$<-~~3hn4+k29<*W9D^p3FWPp|uv2mpU!1Ob6nc<=bT<^d z#E6TNa+F6L6^=ZPweB)F(zG_EA&!K3|FgcY)^$*UPC=EhM2>`S*)== SR!$s?KN95%8My0fMEnbM$YWpt delta 500 zcmWO2!E4iC7zXg?eUoP0EGx(kL4?vK^*`rqax=)Y+p45d=dj%!_y(iTWiL zb%)IyJqY6d0htG3!l0ra{13bc?ka5Hp+d~(cY6*mzvq45x5m@*-h+6k!Qo*JC(r>x zbrasKt5S8nUU#ga3&-Lbsw;r`VvhI}(_|JL!xM|7o0Tv3TFdB4jN8;iYSV_q3^1)2 zzs}a1=;i3Tm;-WMKd~$q;U*+P@ef8c0Va{PFSg?J5QvgTYU(DAv14}(O(9j(e0b;D zaKT2!yxg=c#o_2WTyYzC*RY;n;tdbU6)rip?PAAAUY+6;Kb2wypLfmH-A?Zqcx*%b zA+g7zOg)KofgqC`G*Ho_^!-I1FVVP6VvWWo?H+M@$eL=6UVdcW|6SL`3Q=~RmP%rc z4P+hKnvba;g8?l$BgENjx-*y$ia-YHydsLia3sYyR%M99HNqr$MLvG`6Z2V@=-{C7 ziJr*xFZJ57W-G{wC=A7Yq#qbE-OhYo;1fFz%ImB?kf)(q!{R>C{mW}2ZfFta%6=FxoFIA~?+=EuNJvH&Go_SVfqv0*lk+q0AJsc2p!q zNT(`A$~4Ir2z`LvBt>vzj951zEGoltH|y%2bGe)c_ofe6OmGS-OmptN_F$8lI-X1b z!Y%%`Xk~5&c{c}jch|SuZJ=NyVMoc3$=FxE6#=L-qSdHfupsl-J}o*p0=Y-n=XJn< zWJI+{njM&|(a5w0gkuo>N#8z%5GF~|C9oQ!l;A51_Z_Ye^$zM8nifOI`0&uz=(#bl zJi?C#p+Jyn|0&bYH=iI3OrW%En7|+aq-kl{%?G*3Dfx%3djY`THqRPu!mHt24a=HG zUJ19vjgasI_5gadm?DUakFR r8iv#Sq{rP@RI&IeCii=(RXBTj-sX%t=NUWS<6_Mlm-+7=e}eKq#j>)e literal 0 HcmV?d00001 diff --git a/menu/map_icons_5.3bppc b/menu/map_icons_5.3bppc new file mode 100644 index 0000000000000000000000000000000000000000..22451a7ef97eeedeb4ef064b5071ad5875439051 GIT binary patch literal 7 OcmaF%pW)emhW`K)-vr74 literal 0 HcmV?d00001 diff --git a/menu/map_icons_6.3bppc b/menu/map_icons_6.3bppc new file mode 100644 index 0000000000000000000000000000000000000000..22451a7ef97eeedeb4ef064b5071ad5875439051 GIT binary patch literal 7 OcmaF%pW)emhW`K)-vr74 literal 0 HcmV?d00001 diff --git a/menu/map_icons_b.3bpp b/menu/map_icons_b.3bpp new file mode 100644 index 0000000000000000000000000000000000000000..5646bdf4ef4c1429786908840d944f45cc1a36ed GIT binary patch literal 4608 zcmeH{v1;Q$5Qcy3;A;*GQn_-qT%97M5|*%vbas8Xu#02Wid>WAoY^M$A@Ue`0;30T z9w5z;Lg@~n@(`oUtdncqgd>FAAC}qG^6&09I|3Z$Si<$`%R0J>;EGjtKA!`OC;a)! zTlzhz$2E9-Ts}2TEbCogRU|5tXIbW)i@_t_s)ns9uFA4x=6^oor&6DuG=RW{k3@z< zplUFvtOfddqLcZFgKvE*3LkFKy~@vTWwHbGJU626B8LPfpH8i{-}F3pxc6eTh$}mr z&Fqi8=|}1b6kB5r#U!@@X|rZrPim^U_=`rVp=p|n!H{v8tdlP3B91z_FW_7kMZ#j- zPFfaG%WGXP=$UEHT>Cd4Wv@QUT=@H(kgT`1>h(&ENPPGFbp*qnmNLwf1i&M#W406 zc(z6|w68Dq*8EC+rD-nnul40KAV$6}_|x${bfF>WDEDk~&vSUaNYlmpy*JH^l3z*| z)YaH5UH#OE^pEB1!tX|9Z?Jp6eGlC`d=CTyfj}S-2m}IwKp+qZ1OkCT;C~Z%0c`)? AdH?_b literal 0 HcmV?d00001 diff --git a/menu/map_sheet_d4.3bpp b/menu/map_sheet_d4.3bpp new file mode 100644 index 0000000000000000000000000000000000000000..1534ef8f5ee0774caa1d980726d2bd413d56d3ad GIT binary patch literal 1536 zcmdT@yH4vs5IsB;D55}_D!9lupcElQp+hME$rMzPETwjCdN2F{1vTw${13?d!2JUx z^8t}uS|}vLnRV=I-zXBrO~Dy^cjnC5@p{$d2+r%95=^Jrm~%f&oR;>fVd z1ef^5d-6}kM_gfu0iMhJraB^J6_AIU^go@izAdApHO3PC*NorU0A`1{wl>U^#rT9f z+~NjL1w&`seG{JC>v`;`z0pMEJxOLW<-tR?GxtGWL#U=~vlS3vO3OzC)2Uv7fltdu zpP}#bqSHi&cV=CNohCu22ancZR#&0td5w-w$DoEfTG(T@$FNp!?Rj(>3D4D7>u}^i$XsNF05YbYet{KlDI@TM06WIWJkU%6`JOi+0HQZU0~Y GtNs_TdeMIX literal 0 HcmV?d00001 diff --git a/menu/map_sheet_d4.3bppc b/menu/map_sheet_d4.3bppc new file mode 100644 index 0000000000000000000000000000000000000000..6e4aaee1ff93b891f0de752333cbccfbc879df51 GIT binary patch literal 593 zcmWlVPiPZS5XQfK?`0D)#3KF)9^$g81Syq@QgeuD$)-^xpcbOwDXvIVbt_F!Q>6p9eoTxyV*j4y|o`SHzsFf)5o$j+Y}dBb23 z_M@mD4uYXK8Vv{iC=5Iki6vaaeHBaRka&R`sG@|8DZH71Ml_A~%Q5zXEzAH%UY`JV z&ft<}0@Vs`qN-eLxPx0*#9A+V54|f}un5}D+(KwryM{^PR}^)-V-2)GXl+0~V2pt4 zyGE|7!7ZcN-eeqZvnf9?26$ySE1#L}D0CdpbOew_{wmUkEsc zXxpj0X3J$ z$qU@FAuF8Qb=Q{1`FI~&a&9Fd;MulrCfob0{gBH(lO4`M^r%X~S&|+*PZlUkv48ZP zB9gaRj#!QSG9gy;{aVe>kshEAA2k!gFcJwv-eqy3upg>!Yo8~4su5@+^5q|Hf|s^I za*xB8M+HMP@pv6PGzLOFG!`1c{E&?m!e3n$#PgCktf|}MIE~B9gOWPy08MM{Wx)z? zD