From 48882dd251aecc37181dd55d41a4ed3f660afc8b Mon Sep 17 00:00:00 2001 From: Andreev Gregory Date: Sat, 6 Sep 2025 19:14:46 +0300 Subject: [PATCH] Integrated libpng (still need to autogenerate some files + I had not checked for error handling) --- CMakeLists.txt | 4 +- src/l1/anne/geom.h | 1 + src/l1/core/util.h | 5 + src/l2/margaret/png_pixel_masses.h | 254 ++++++++++++++++++++++++ src/l2/tests/r0/r0_assets.h | 3 + src/l2/tests/r0/r0_tex_init_prep.c | 67 ++++--- src/l2/tests/r0/textures/log_10_2_6.png | Bin 16484 -> 18968 bytes src/l2/tests/r0/textures/test.png | Bin 33146 -> 25397 bytes 8 files changed, 307 insertions(+), 27 deletions(-) create mode 100644 src/l2/margaret/png_pixel_masses.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 9b7f92f..0d6175a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,8 +39,8 @@ add_executable(codegen_l1_5 src/l1_5/anne/codegen.c) add_executable(0_render_test src/l2/tests/r0/r0.c gen/l_wl_protocols/xdg-shell-private.c) target_link_libraries(0_render_test -lvulkan -lwayland-client -lm -lxkbcommon) -add_executable(0_render_test_tex_init_prep src/l2/tests/r0/r0_tex_init_prep.c) -target_link_libraries(0_render_test_tex_init_prep -lm) +add_executable(0r_tex_init_prep src/l2/tests/r0/r0_tex_init_prep.c) +target_link_libraries(0r_tex_init_prep -lm -lpng) add_executable(1_render_test src/l2/tests/r1/r1.c gen/l_wl_protocols/xdg-shell-private.c) target_link_libraries(1_render_test -lwayland-client -lrt -lm -lxkbcommon) diff --git a/src/l1/anne/geom.h b/src/l1/anne/geom.h index c6606f6..9829389 100644 --- a/src/l1/anne/geom.h +++ b/src/l1/anne/geom.h @@ -422,6 +422,7 @@ void generate_geom_header() { VecU8_append_span(&res.result, cstr("#include \"../../src/l1/core/int_primitives.h\"\n")); VecU8_append_span(&res.result, cstr("#include \n\n")); VecU8_append_vec(&res.result, generate_xvec234_structs_and_base_methods(cstr("cvec"), cstr("U8"))); + VecU8_append_vec(&res.result, generate_xvec234_structs_and_base_methods(cstr("uvec"), cstr("U32"))); VecU8_append_vec(&res.result, generate_xvec234_structs_and_base_methods(cstr("ivec"), cstr("S32"))); VecU8_append_vec(&res.result, generate_xvec234_structs_and_cool_methods(cstr("vec"), cstr("float"), cstr("sqrtf"))); diff --git a/src/l1/core/util.h b/src/l1/core/util.h index 6e546e5..1e99f56 100644 --- a/src/l1/core/util.h +++ b/src/l1/core/util.h @@ -80,4 +80,9 @@ float pow2f(float x) { return x * x; } +typedef struct { + U32 width; + U32 height; +} SizeOfRectangleU32; + #endif diff --git a/src/l2/margaret/png_pixel_masses.h b/src/l2/margaret/png_pixel_masses.h new file mode 100644 index 0000000..f335ddc --- /dev/null +++ b/src/l2/margaret/png_pixel_masses.h @@ -0,0 +1,254 @@ +#ifndef PROTOTYPE1_SRC_L2_MARGARET_PNG_PIXEL_MASSES_H +#define PROTOTYPE1_SRC_L2_MARGARET_PNG_PIXEL_MASSES_H + +#include "../../../gen/l1/pixel_masses.h" +#include "../../l1/core/util.h" +#include "../../l1/core/VecU8_as_str.h" +#include + +// todo: generate all of this automaticcally + +void margaret_libpng_h_error_cb(png_structp pngshka, png_const_charp err) { + printf("[!] %s\n", err); +} + +void margaret_libpng_h_warning_cb(png_structp pngshka, png_const_charp warning) { + printf("[.] %s\n", warning); +} + +typedef struct { + Result_variant variant; + VecU8 err; +} ResultVoidOrVecU8; + +void ResultVoidOrVecU8_drop(ResultVoidOrVecU8 self) { + if (self.variant == Result_Err) + VecU8_drop(self.err); +} + +ResultVoidOrVecU8 TextureDataR8G8B8A8_write_to_png(const TextureDataR8G8B8A8* self, SpanU8 filename) { + VecU8 nt_filename = VecU8_fmt("%s%c", filename, 0); + FILE *fp = fopen((CSTR)nt_filename.buf, "wb"); + VecU8_drop(nt_filename); + if (!fp) { + return (ResultVoidOrVecU8){.variant = Result_Err, .err = VecU8_fmt("Unable to open file %s", filename)}; + } + png_structp pngshka = png_create_write_struct(PNG_LIBPNG_VER_STRING, + NULL, margaret_libpng_h_error_cb, margaret_libpng_h_warning_cb); + if (!pngshka) + abortf("png_create_write_struct"); + png_infop info = png_create_info_struct(pngshka); + if (!info) + abortf("png_create_info_struct"); + + png_bytep* row_pointers = NULL; + + if (setjmp(png_jmpbuf(pngshka))){ + png_destroy_write_struct(&pngshka, &info); + fclose(fp); + free(row_pointers); + return (ResultVoidOrVecU8){.variant = Result_Err, .err = VecU8_from_cstr("Some png error happened")}; + } + png_init_io(pngshka, fp); + + U32 width = self->width; + U32 height = TextureDataR8G8B8A8_get_height(self); + + png_set_IHDR(pngshka, info, width, height, 8, PNG_COLOR_TYPE_RGBA, + PNG_INTERLACE_NONE, PNG_COMPRESSION_TYPE_DEFAULT, PNG_FILTER_TYPE_DEFAULT); + + row_pointers = calloc(height, sizeof(row_pointers)); + for (U32 y = 0; y < height; y++) { + row_pointers[height - 1 - y] = (png_bytep)((TextureDataR8G8B8A8_at(self, 0, y))); + } + png_set_rows(pngshka, info, row_pointers); + png_write_png(pngshka, info, 0, NULL); + /* No more errors */ + free(row_pointers); + png_destroy_write_struct(&pngshka, &info); + fclose(fp); + return (ResultVoidOrVecU8){.variant = Result_Ok}; +} + +/* Aborts on error */ +void TextureDataR8G8B8A8_write_to_png_nofail(const TextureDataR8G8B8A8* self, SpanU8 filename) { + ResultVoidOrVecU8 res = TextureDataR8G8B8A8_write_to_png(self, filename); + if (res.variant == Result_Err) { + SpanU8_fprint(VecU8_to_span(&res.err), stderr); + abortf("TextureDataR8G8B8A8_write_to_png"); + } +} + +/* This structure will be pinned */ +typedef struct { + FILE* fp; + png_structp pngshka; + png_infop info; + png_infop end_info; +} MargaretPromisedPngR8G8B8A8; + +void MargaretPromisedPngR8G8B8A8_drop(MargaretPromisedPngR8G8B8A8 self) { + png_destroy_read_struct(&self.pngshka, &self.info, &self.end_info); + fclose(self.fp); +} + +typedef struct { + Result_variant variant; + union { + MargaretPromisedPngR8G8B8A8 ok; + VecU8 err; + }; +} ResultMargaretPromisedPngR8G8B8A8OrVecU8; + +void ResultMargaretPromisedPngR8G8B8A8OrVecU8_drop(ResultMargaretPromisedPngR8G8B8A8OrVecU8 self) { + if (self.variant == Result_Ok) + MargaretPromisedPngR8G8B8A8_drop(self.ok); + else + VecU8_drop(self.err); +} + +ResultMargaretPromisedPngR8G8B8A8OrVecU8 MargaretPromisedPngR8G8B8A8_begin(SpanU8 filename) { + VecU8 nt_filename = VecU8_fmt("%s%c", filename, 0); + FILE* fp = fopen((CSTR)nt_filename.buf, "rb"); + VecU8_drop(nt_filename); + if (!fp) { + return (ResultMargaretPromisedPngR8G8B8A8OrVecU8){.variant = Result_Err, + .err = VecU8_fmt("Unable to open file %s", filename)}; + } + png_structp pngshka = png_create_read_struct(PNG_LIBPNG_VER_STRING, + NULL, margaret_libpng_h_error_cb, margaret_libpng_h_warning_cb); + if (!pngshka) + abortf("png_create_read_struct"); + png_infop info = png_create_info_struct(pngshka); + if (!info) + abortf("png_create_info_struct"); + png_infop end_info = png_create_info_struct(pngshka); + if (!end_info) + abortf("png_create_info_struct"); + if (setjmp(png_jmpbuf(pngshka))) { + png_destroy_read_struct(&pngshka, &info, &end_info); + fclose(fp); + return (ResultMargaretPromisedPngR8G8B8A8OrVecU8){.variant = Result_Err, + .err = VecU8_from_cstr("Some png error happened")}; + } + png_init_io(pngshka, fp); + png_read_info(pngshka, info); + U32 width, height; + int bit_depth, color_type; + assert(png_get_IHDR(pngshka, info, &width, &height, &bit_depth, &color_type, NULL, NULL, NULL)); + + if (bit_depth == 16) { + png_set_strip_16(pngshka); + } + if (color_type == PNG_COLOR_TYPE_GRAY) { + if (bit_depth == 1 || bit_depth == 2 || bit_depth == 4) { + png_set_expand_gray_1_2_4_to_8(pngshka); + } + png_set_gray_to_rgb(pngshka); + if (png_get_valid(pngshka, info, PNG_INFO_tRNS)) { + png_set_tRNS_to_alpha(pngshka); + } else { + png_set_add_alpha(pngshka, 0xFF, PNG_FILLER_AFTER); + } + } else if (color_type == PNG_COLOR_TYPE_GRAY_ALPHA) { + png_set_gray_to_rgb(pngshka); + } else if (color_type == PNG_COLOR_TYPE_RGB) { + if (png_get_valid(pngshka, info, PNG_INFO_tRNS)) { + png_set_tRNS_to_alpha(pngshka); + } else { + png_set_add_alpha(pngshka, 0xFF, PNG_FILLER_AFTER); + } + } else if (color_type == PNG_COLOR_TYPE_PALETTE) { + png_set_palette_to_rgb(pngshka); + + if (png_get_valid(pngshka, info, PNG_INFO_tRNS)) { + png_set_tRNS_to_alpha(pngshka); + } else { + png_set_add_alpha(pngshka, 0xFF, PNG_FILLER_AFTER); + } + } + png_read_update_info(pngshka, info); + + return (ResultMargaretPromisedPngR8G8B8A8OrVecU8){.variant = Result_Ok, + .ok = (MargaretPromisedPngR8G8B8A8){.fp = fp, .pngshka = pngshka, .info = info, .end_info = end_info}}; +} + +SizeOfRectangleU32 MargaretPromisedPngR8G8B8A8_get_extent(const MargaretPromisedPngR8G8B8A8* self) { + U32 width, height; + int bit_depth, color_type; + assert(png_get_IHDR(self->pngshka, self->info, &width, &height, &bit_depth, &color_type, NULL, NULL, NULL)); + return (SizeOfRectangleU32){width, height}; +} + + +size_t MargaretPromisedPngR8G8B8A8_get_needed_buffer_size(const MargaretPromisedPngR8G8B8A8* self) { + SizeOfRectangleU32 dim = MargaretPromisedPngR8G8B8A8_get_extent(self); + return 4 * dim.width * dim.height; +} + +ResultVoidOrVecU8 MargaretPromisedPngR8G8B8A8_finish(MargaretPromisedPngR8G8B8A8 self, void* buffer) { + SizeOfRectangleU32 dim = MargaretPromisedPngR8G8B8A8_get_extent(&self); + + png_bytep* row_pointers = NULL; + if (setjmp(png_jmpbuf(self.pngshka))) { + png_destroy_read_struct(&self.pngshka, &self.info, &self.end_info); + fclose(self.fp); + free(row_pointers); + return (ResultVoidOrVecU8){.variant = Result_Err, .err = VecU8_from_cstr("Some png error happened")}; + } + + row_pointers = calloc(dim.height, sizeof(row_pointers)); + for (U32 y = 0; y < dim.height; y++) { + row_pointers[y] = ((png_bytep)buffer) + 4 * dim.width * y; + } + png_read_image(self.pngshka, row_pointers); + png_read_end(self.pngshka, self.end_info); + /* No more errors */ + png_destroy_read_struct(&self.pngshka, &self.info, &self.end_info); + fclose(self.fp); + free(row_pointers); + return (ResultVoidOrVecU8){.variant = Result_Ok}; +} + +// todo: move it to pixel_masses.h (and also generate result types automatically +typedef struct { + Result_variant variant; + union { + TextureDataR8G8B8A8 ok; + VecU8 err; + }; +} ResultTextureDataR8G8B8A8OrVecU8; + +void ResultTextureDataR8G8B8A8OrVecU8_drop(ResultTextureDataR8G8B8A8OrVecU8 self) { + if (self.variant == Result_Ok) + TextureDataR8G8B8A8_drop(self.ok); + else + VecU8_drop(self.err); +} + +ResultTextureDataR8G8B8A8OrVecU8 MargaretPromisedPngR8G8B8A8_finish_into_TextureDataR8G8B8A8(MargaretPromisedPngR8G8B8A8 self) { + SizeOfRectangleU32 dim = MargaretPromisedPngR8G8B8A8_get_extent(&self); + TextureDataR8G8B8A8 tex = TextureDataR8G8B8A8_new(dim.width, dim.height); + ResultVoidOrVecU8 res = MargaretPromisedPngR8G8B8A8_finish(self, tex.pixels.buf); + if (res.variant == Result_Err) + return (ResultTextureDataR8G8B8A8OrVecU8){.variant = Result_Err, .err = res.err}; + return (ResultTextureDataR8G8B8A8OrVecU8){.variant = Result_Ok, .ok = tex}; +} + +/* aborts on error */ +TextureDataR8G8B8A8 TextureDataR8G8B8A8_read_from_png_nofail(SpanU8 name) { + ResultMargaretPromisedPngR8G8B8A8OrVecU8 res_1 = MargaretPromisedPngR8G8B8A8_begin(name); + if (res_1.variant == Result_Err) { + SpanU8_fprint(VecU8_to_span(&res_1.err), stderr); + abortf("MargaretPromisedPngR8G8B8A8_begin"); + } + /* res_1 invalidated, we moved ownership to _finish methos */ + ResultTextureDataR8G8B8A8OrVecU8 res_2 = MargaretPromisedPngR8G8B8A8_finish_into_TextureDataR8G8B8A8(res_1.ok); + if (res_2.variant == Result_Err) { + SpanU8_fprint(VecU8_to_span(&res_2.err), stderr); + abortf("MargaretPromisedPngR8G8B8A8_finish (into TextureData)"); + } + return res_2.ok; +} + +#endif \ No newline at end of file diff --git a/src/l2/tests/r0/r0_assets.h b/src/l2/tests/r0/r0_assets.h index fa21311..9a0bc3d 100644 --- a/src/l2/tests/r0/r0_assets.h +++ b/src/l2/tests/r0/r0_assets.h @@ -611,11 +611,13 @@ TextureDataR8 generate_tex_template_for_one_fourth_of_a_cylinder(float s_resol, *Vecvec2_mat(&P, i) = vec2_mul_vec2(*Vecvec2_at(&P, i), cord_resol); } TextureDataR8_draw_perimeter_maxing(&res, Vecvec2_to_span(&P)); + Vecvec2_drop(P); Bublazhuzhka crap_on_back_side = fill_rectangle_with_crap(w, r); // todo: draw bublazhuzhka pixel-by-pixel myself Bublazhuzhka_TextureDataR8_draw_maxing(&crap_on_back_side, &res, (mat3x2){.x.x = cord_resol.x, .y.y = cord_resol.y, .z = vec2_mul_vec2((vec2){r, r}, cord_resol)}); + Bublazhuzhka_drop(crap_on_back_side); return res; } @@ -648,6 +650,7 @@ TextureDataR8G8B8 generate_normal_tex_for_one_fourth_of_a_cylinder(float s_resol (FnHeightMapGradFlatSurfCallback){.fn = height_map_cb_that_uses_bublazhuzhka, .guest = &crap_on_the_back_side}); draw_polygon_on_normal_texture_flat_param_surf(&res, (vec2){0, 0}, (vec2){0, r}, (vec2){w, r}, trop_back_side, orient_back_side, (FnHeightMapGradFlatSurfCallback){.fn = height_map_cb_that_uses_bublazhuzhka, .guest = &crap_on_the_back_side}); + Bublazhuzhka_drop(crap_on_the_back_side); mat3x2 str = {.x.x = cord_resol.x, .y.y = cord_resol.y}; draw_polygon_on_normal_texture_absolutely_flat(&res, v0tex, v1tex, v4tex, str, (vec3){0, -1, 0}); diff --git a/src/l2/tests/r0/r0_tex_init_prep.c b/src/l2/tests/r0/r0_tex_init_prep.c index 834c96b..9ba97fe 100644 --- a/src/l2/tests/r0/r0_tex_init_prep.c +++ b/src/l2/tests/r0/r0_tex_init_prep.c @@ -1,44 +1,61 @@ #include "r0_assets.h" #include "../../marie/rasterization.h" +#include "../../margaret/png_pixel_masses.h" -void draw_cool_triangle_h_frag(void* ug, S32 x, S32 y, MarieVertAttr attr_col) { - TextureDataR8G8B8* tex = (TextureDataR8G8B8*)ug; - if (TextureDataR8G8B8_is_inside(tex, x, y)) { - *TextureDataR8G8B8_mat(tex, x, y) = (cvec3){255, (S32)roundf(attr_col.x * 255), (S32)roundf(attr_col.y * 255)}; +// todo: move it to some other file +void TextureDataR8G8B8A8_print(const TextureDataR8G8B8A8* self) { + U64 width = self->width; + U64 height = TextureDataR8G8B8A8_get_height(self); + U64 cell_width = MAX_U64(1, width / 350); + U64 cell_height = MAX_U64(1, cell_width * 14 / 8); + for (U64 CY = 0; CY < height; CY += cell_height) { + for (U64 CX = 0; CX < width; CX += cell_width) { + float lum = 0; + for (U64 j = 0; j < cell_height; j++) { + U64 y = cell_height * CY + j; + if (y >= height) + continue; + for (U64 i = 0; i < cell_width; i++) { + U64 x = cell_width * CX + i; + if (x >= width) + continue; + cvec4 pix = *TextureDataR8G8B8A8_at(self, x, y); + lum += (float)pix.x / 255 * 0.21f + (float)pix.y / 255 * 0.71f + (float)pix.z / 255 * 0.08f; + } + } + lum /= (float)cell_width * (float)cell_height; + printf("%s", lum > 0.95 ? "@" : (lum > 0.8 ? "#" : (lum > 0.65 ? "*" : (lum > 0.4 ? "_" : (lum > 0.2 ? "." : " "))))); + } + printf("\n"); } } -void draw_cool_triangle(TextureDataR8G8B8* tex, vec2 A, vec2 B, vec2 C) { - marie_rasterize_triangle_with_attr((MariePlaneVertAttr){.pos = A, .attr = {A.x / 1000, A.y / 1000, 0, 1}}, - (MariePlaneVertAttr){.pos = B, .attr = {B.x / 1000, B.y / 1000, 0, 1}}, - (MariePlaneVertAttr){.pos = C, .attr = {C.x / 1000, C.y / 1000, 0, 1}}, - (FnMarieRasterizerCallback){.fn = draw_cool_triangle_h_frag, .guest = (void*)tex}); +void model_1_template() { + TextureDataR8 tex_1 = generate_tex_template_for_one_fourth_of_a_cylinder(120, 10, 2, 6); + TextureDataR8G8B8A8 tex_1_big = TextureDataR8G8B8A8_new(tex_1.width, TextureDataR8_get_height(&tex_1)); + for (size_t i = 0; i < tex_1.pixels.len; i++) { + U8 g = *VecU8_at(&tex_1.pixels, i); + *Veccvec4_mat(&tex_1_big.pixels, i) = (cvec4){g, g, g, 255}; + } + TextureDataR8G8B8A8_write_to_png_nofail(&tex_1_big, cstr("textures/log_10_2_6_TEMPLATE.png")); + TextureDataR8G8B8A8_drop(tex_1_big); + TextureDataR8_drop(tex_1); } -int main() { - TextureDataR8 tex_1 = generate_tex_template_for_one_fourth_of_a_cylinder(120, 10, 2, 6); - TextureDataR8_write_to_file(&tex_1, "log_10_2_6_TEMPLATE.a8"); - TextureDataR8_drop(tex_1); +void model_1_normal() { TextureDataR8G8B8 tex_2 = generate_normal_tex_for_one_fourth_of_a_cylinder(120, 10, 2, 6); TextureDataR8G8B8A8 tex_2_big = TextureDataR8G8B8A8_new(tex_2.width, TextureDataR8G8B8_get_height(&tex_2)); for (size_t i = 0; i < tex_2.pixels.len; i++) { cvec3 rgb = *Veccvec3_at(&tex_2.pixels, i); *Veccvec4_mat(&tex_2_big.pixels, i) = (cvec4){rgb.x, rgb.y, rgb.z, 255}; } - TextureDataR8G8B8A8_write_to_file(&tex_2_big, "log_10_2_6_NORMAL.r8g8b8a8"); + TextureDataR8G8B8A8_write_to_png_nofail(&tex_2_big, cstr("textures/log_10_2_6_NORMAL.png")); TextureDataR8G8B8A8_drop(tex_2_big); TextureDataR8G8B8_drop(tex_2); +} - // TextureDataR8G8B8 t = TextureDataR8G8B8_new(1000, 1000);\ - // vec2 center = {500, 500}; - // for (int i = 0; i < 70; i++) { - // float a1 = (float)i * 2 * M_PIf / 70; - // float a2 = (float)(i + 1) * 2 * M_PIf / 70; - // vec2 A = vec2_add_vec2(center, vec2_mul_scal((vec2){cosf(a1), sinf(a1)}, 480)); - // vec2 B = vec2_add_vec2(center, vec2_mul_scal((vec2){cosf(a2), sinf(a2)}, 480)); - // draw_cool_triangle(&t, B, A, center); - // } - // TextureDataR8G8B8_write_to_file(&t, "experiment.r8g8b8"); - // TextureDataR8G8B8_drop(t); +int main() { + model_1_template(); + model_1_normal(); return 0; } diff --git a/src/l2/tests/r0/textures/log_10_2_6.png b/src/l2/tests/r0/textures/log_10_2_6.png index 7c307a2c9f13aa0d5f44ab3df92a762c877b1af2..1f54ae0d51cb557682c34c353c486955317d7b35 100644 GIT binary patch literal 18968 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 Tj~_sQ&LEhln=hdje~R%x?4n{5 literal 16484 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 diff --git a/src/l2/tests/r0/textures/test.png b/src/l2/tests/r0/textures/test.png index ccb49a0dab1659a0dc8e82d03a38f9e306122376..b120b8e5dd369b946ffcc2260e48ee170dae7cc7 100644 GIT binary patch literal 25397 zcmeHwc|4SD-#68jO3^0DR)|6_#MCP_#NNl?5=~I z<)#h0HV6p`ZL+pH;Upxq;l7a28m)D!fReK(A#*}PyM?Sz96fV2cXqfdrFg(AaSR#( zZf*rPPi)?Q{`budijNbvBnsaUJz`a5)zFdKeyv^U(xZ^gR!2i`CG353_x@|0LZwv( zhfL?wjz$<9Sfv~qg(@#!WO%*;zo_dcEcF>mpL^aFQ!WXN2mDGV=&3H6*LoxU7M2Ty zg!Cm8Oje#xoQPg|x^riK| zjCA~`ocNCwVny7j)4zOYS(`PaAzCO`NArK5;{7*Ro7lH{bi%8pK6=?o1v{B~{jID2 zQgS-aF9_*Fz%8vSEEC%N^>5`AXx_hZf1z%GU=hB?u6PBZ-JkdV?KlCp{bj7M%&ZU( zRJv;YKQK`EZ`iAU9UFaj1z@79<_g;sy#KevT>lMLemDI=Z~H`-nRV^X-vOF{ z6aOYoUk=c4sXw*^LR%T3KPv%H}f|2Fyp9{n2+`R4|4;sp@FwhU;v{B6ko zE7AICd+^-!cdC@YJxfN)6_)E5%6>rC%r)OL0Csf~u;ou3==y!gGiEtx)HFnzmCyxY1c zv3oLSc^7*1jpo*G39;W~6ihtBJib>HYFWn*=yauy-LvYp4qZu~z08PdQ0NI8HW*xP z=k1I!QL!o_MTT5jPPL5$oB2>L$AGq_<-xk2Z2aC+aJdPL@=FZJ5GX^BEeAir57#Ug zwC`CiXwwD?6w>lsVeQ+$x4PzY?OeC*o*u?@$gj(3tvQ)BG2WLIOsdx=DlU_#dHq~> zxkZuRe$wvcg3Rt4$g|zY6in3gSMr5!mX&^c(()c?i!Jx+diSioeGzFg?CJ6h=B}Kc zLEo8g(ZQ`)e$cMEyetZCT6n}FD{F&^PutDLsK+touE9;XDSKD@(QuQ+uNUDWjK%W= zZ{&^MN#5l>OifXf$1zl&9ijZ12TNHA9R52=#sr;ycdElCxIS74ap(B7Xk#wI#omo9 z!bpzOs5c-^y}-ibd|_{gjYp<><4ieBR%PGnMl2y8HAu1<4qR%f$HIef^^h8DVH_3A z_+VPV+$^|5g5!YJN-Rea|Eg26^ zebp6TWL?b{C*%{|k!i#4XvFTX{jqTix1`bS(catB@<>z0(WWIk$;50k16(zYF{Qg? zTI~~ed}wMm);ETIm^)_5L;yYH%aKHga5Ha{Y>!EwDOw6+GA?Dn=RFN%&sT&oO5{=H zW>@$#`exBl@lgxjpiF2U$`GeXW4u|Azm&+BNhRv0A|T=1<6jHMIiwgyU0+P2^9ZV9 zh3QCbW(uQxsRbfi%IjWY>YH%~SXiJ+5CI0JGHeEzH0LM$S)tgM*uo&WSq9ovp2{eU zA~9WPlP-`bUUYsnHS9Mt?l&*lYhk>1+~)3*rP!C<(3Ys7$_z;=9I~X3nqtyO+sOIp zXS>6;l37o4O*K2$Td<*z!7`-sw~e2Cn|ZgxnVf7*Ym(VgPCOK5pTZamiRYxYK4&Pz z#_&Gtqe62vz4%8Lhn)B5=hp_|a3pl!#nvFXpfG+dFn9m>iwnV^yR>(Ry!B^X!Rx4? zut-zCVPgX*TkY!yUGe%xRQKDrtWkY4&Jv5;*WS1ZSl;kBersd*2d)jxh*25W8q0An zFl>OLIVdJgH?`APO5cWDka*gUYitEtv>mXEY2+I7E+NxOAR zNk+9($|%J1%;agOhNl^3`VwW=u5Ib>c-Xde_br7J+Z8WuUhQ^l!{el*tHOnmP1ix6 zI&Y6kVM0&slr}oEckRtr8pBpn-t$kHy3D-VDAU|pds=T6q}i{jdpeHIEcfy%Y4&@z zm=hmu5>V+^8CPGUjl+gir7*r!f7<_gJ!>*H&`A7#tqHDQhokG4`djuUe$)C+9Zpp$ z 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 literal 33146 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 Hw_pAng{5!;